Commit caf4c2ffdb34c87f9384e678e21647f85fc77994

Authored by YunaiV
1 parent 21acea42

✨ feat(mes): 新增获取批次详情接口,更新相关逻辑

yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/batch/MesWmBatchController.java
... ... @@ -61,12 +61,21 @@ public class MesWmBatchController {
61 61 @Resource
62 62 private MesMdWorkstationService workstationService;
63 63  
  64 + @GetMapping("/get")
  65 + @Operation(summary = "获得批次详情")
  66 + @Parameter(name = "id", description = "编号", required = true, example = "1024")
  67 + @PreAuthorize("@ss.hasPermission('mes:wm-batch:query')")
  68 + public CommonResult<MesWmBatchRespVO> getBatch(@RequestParam("id") Long id) {
  69 + MesWmBatchDO batch = batchService.getBatch(id);
  70 + return success(buildBatchRespVO(batch));
  71 + }
  72 +
64 73 @GetMapping("/page")
65 74 @Operation(summary = "获得批次分页")
66 75 @PreAuthorize("@ss.hasPermission('mes:wm-batch:query')")
67 76 public CommonResult<PageResult<MesWmBatchRespVO>> getBatchPage(@Valid MesWmBatchPageReqVO pageReqVO) {
68 77 PageResult<MesWmBatchDO> pageResult = batchService.getBatchPage(pageReqVO);
69   - return success(new PageResult<>(buildRespVOList(pageResult.getList()), pageResult.getTotal()));
  78 + return success(new PageResult<>(buildBatchRespVOList(pageResult.getList()), pageResult.getTotal()));
70 79 }
71 80  
72 81 @GetMapping("/forward-list")
... ... @@ -75,7 +84,7 @@ public class MesWmBatchController {
75 84 @PreAuthorize("@ss.hasPermission('mes:wm-batch:query')")
76 85 public CommonResult<List<MesWmBatchRespVO>> getForwardList(@RequestParam("code") @Valid String code) {
77 86 List<MesWmBatchDO> list = batchService.getForwardBatchList(code);
78   - return success(buildRespVOList(list));
  87 + return success(buildBatchRespVOList(list));
79 88 }
80 89  
81 90 @GetMapping("/backward-list")
... ... @@ -84,12 +93,12 @@ public class MesWmBatchController {
84 93 @PreAuthorize("@ss.hasPermission('mes:wm-batch:query')")
85 94 public CommonResult<List<MesWmBatchRespVO>> getBackwardList(@RequestParam("code") @Valid String code) {
86 95 List<MesWmBatchDO> list = batchService.getBackwardBatchList(code);
87   - return success(buildRespVOList(list));
  96 + return success(buildBatchRespVOList(list));
88 97 }
89 98  
90 99 // ==================== 拼接 VO ====================
91 100  
92   - private List<MesWmBatchRespVO> buildRespVOList(List<MesWmBatchDO> list) {
  101 + private List<MesWmBatchRespVO> buildBatchRespVOList(List<MesWmBatchDO> list) {
93 102 if (CollUtil.isEmpty(list)) {
94 103 return Collections.emptyList();
95 104 }
... ... @@ -125,4 +134,11 @@ public class MesWmBatchController {
125 134 });
126 135 }
127 136  
  137 + private MesWmBatchRespVO buildBatchRespVO(MesWmBatchDO batch) {
  138 + if (batch == null) {
  139 + return null;
  140 + }
  141 + return buildBatchRespVOList(Collections.singletonList(batch)).get(0);
  142 + }
  143 +
128 144 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockService.java
... ... @@ -116,12 +116,13 @@ public interface MesWmMaterialStockService {
116 116 * @param locationId 库区编号
117 117 * @param areaId 库位编号
118 118 * @param batchId 批次编号
  119 + * @param batchCode 批次号
119 120 * @param vendorId 供应商编号
120 121 * @param receiptTime 入库时间(为空则默认当前时间)
121 122 * @return 库存记录
122 123 */
123 124 MesWmMaterialStockDO getOrCreateMaterialStock(Long itemId, Long warehouseId, Long locationId, Long areaId,
124   - Long batchId, Long vendorId, LocalDateTime receiptTime);
  125 + Long batchId, String batchCode, Long vendorId, LocalDateTime receiptTime);
125 126  
126 127 /**
127 128 * 更新库存数量
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockServiceImpl.java
... ... @@ -128,7 +128,7 @@ public class MesWmMaterialStockServiceImpl implements MesWmMaterialStockService
128 128  
129 129 @Override
130 130 public MesWmMaterialStockDO getOrCreateMaterialStock(Long itemId, Long warehouseId, Long locationId, Long areaId,
131   - Long batchId, Long vendorId, LocalDateTime receiptTime) {
  131 + Long batchId, String batchCode, Long vendorId, LocalDateTime receiptTime) {
132 132 // 1. 查找已有库存记录
133 133 MesWmMaterialStockDO stock = materialStockMapper.selectByCompositeKey(
134 134 itemId, warehouseId, locationId, areaId, batchId);
... ... @@ -141,7 +141,7 @@ public class MesWmMaterialStockServiceImpl implements MesWmMaterialStockService
141 141 MesWmMaterialStockDO newStock = MesWmMaterialStockDO.builder()
142 142 .itemId(itemId).itemTypeId(item.getItemTypeId())
143 143 .warehouseId(warehouseId).locationId(locationId).areaId(areaId)
144   - .batchId(batchId).vendorId(vendorId)
  144 + .batchId(batchId).batchCode(batchCode).vendorId(vendorId)
145 145 .quantity(BigDecimal.ZERO) // 初始数量为 0,由 updateMaterialStockQuantity 更新
146 146 .receiptTime(receiptTime != null ? receiptTime : LocalDateTime.now())
147 147 .frozen(false)
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transaction/MesWmTransactionServiceImpl.java
... ... @@ -74,7 +74,7 @@ public class MesWmTransactionServiceImpl implements MesWmTransactionService {
74 74 // 2.1 获取或创建库存记录
75 75 MesWmMaterialStockDO materialStock = materialStockService.getOrCreateMaterialStock(
76 76 reqDTO.getItemId(), reqDTO.getWarehouseId(), reqDTO.getLocationId(), reqDTO.getAreaId(),
77   - reqDTO.getBatchId(), reqDTO.getVendorId(), reqDTO.getReceiptTime());
  77 + reqDTO.getBatchId(), reqDTO.getBatchCode(), reqDTO.getVendorId(), reqDTO.getReceiptTime());
78 78 // 2.2 冻结校验(仓库、库区、库位、库存记录)
79 79 checkFrozen(reqDTO, materialStock);
80 80 // 2.3 更新库存数量
... ...