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