From caf4c2ffdb34c87f9384e678e21647f85fc77994 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 29 Mar 2026 10:17:57 +0800 Subject: [PATCH] ✨ feat(mes): 新增获取批次详情接口,更新相关逻辑 --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/batch/MesWmBatchController.java | 24 ++++++++++++++++++++---- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockService.java | 3 ++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockServiceImpl.java | 4 ++-- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transaction/MesWmTransactionServiceImpl.java | 2 +- 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/batch/MesWmBatchController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/batch/MesWmBatchController.java index 04ae6e3..500d7e8 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/batch/MesWmBatchController.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/batch/MesWmBatchController.java @@ -61,12 +61,21 @@ public class MesWmBatchController { @Resource private MesMdWorkstationService workstationService; + @GetMapping("/get") + @Operation(summary = "获得批次详情") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:wm-batch:query')") + public CommonResult getBatch(@RequestParam("id") Long id) { + MesWmBatchDO batch = batchService.getBatch(id); + return success(buildBatchRespVO(batch)); + } + @GetMapping("/page") @Operation(summary = "获得批次分页") @PreAuthorize("@ss.hasPermission('mes:wm-batch:query')") public CommonResult> getBatchPage(@Valid MesWmBatchPageReqVO pageReqVO) { PageResult pageResult = batchService.getBatchPage(pageReqVO); - return success(new PageResult<>(buildRespVOList(pageResult.getList()), pageResult.getTotal())); + return success(new PageResult<>(buildBatchRespVOList(pageResult.getList()), pageResult.getTotal())); } @GetMapping("/forward-list") @@ -75,7 +84,7 @@ public class MesWmBatchController { @PreAuthorize("@ss.hasPermission('mes:wm-batch:query')") public CommonResult> getForwardList(@RequestParam("code") @Valid String code) { List list = batchService.getForwardBatchList(code); - return success(buildRespVOList(list)); + return success(buildBatchRespVOList(list)); } @GetMapping("/backward-list") @@ -84,12 +93,12 @@ public class MesWmBatchController { @PreAuthorize("@ss.hasPermission('mes:wm-batch:query')") public CommonResult> getBackwardList(@RequestParam("code") @Valid String code) { List list = batchService.getBackwardBatchList(code); - return success(buildRespVOList(list)); + return success(buildBatchRespVOList(list)); } // ==================== 拼接 VO ==================== - private List buildRespVOList(List list) { + private List buildBatchRespVOList(List list) { if (CollUtil.isEmpty(list)) { return Collections.emptyList(); } @@ -125,4 +134,11 @@ public class MesWmBatchController { }); } + private MesWmBatchRespVO buildBatchRespVO(MesWmBatchDO batch) { + if (batch == null) { + return null; + } + return buildBatchRespVOList(Collections.singletonList(batch)).get(0); + } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockService.java index 794298c..9f6b824 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockService.java @@ -116,12 +116,13 @@ public interface MesWmMaterialStockService { * @param locationId 库区编号 * @param areaId 库位编号 * @param batchId 批次编号 + * @param batchCode 批次号 * @param vendorId 供应商编号 * @param receiptTime 入库时间(为空则默认当前时间) * @return 库存记录 */ MesWmMaterialStockDO getOrCreateMaterialStock(Long itemId, Long warehouseId, Long locationId, Long areaId, - Long batchId, Long vendorId, LocalDateTime receiptTime); + Long batchId, String batchCode, Long vendorId, LocalDateTime receiptTime); /** * 更新库存数量 diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockServiceImpl.java index e134441..a30fdc6 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockServiceImpl.java +++ b/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 @Override public MesWmMaterialStockDO getOrCreateMaterialStock(Long itemId, Long warehouseId, Long locationId, Long areaId, - Long batchId, Long vendorId, LocalDateTime receiptTime) { + Long batchId, String batchCode, Long vendorId, LocalDateTime receiptTime) { // 1. 查找已有库存记录 MesWmMaterialStockDO stock = materialStockMapper.selectByCompositeKey( itemId, warehouseId, locationId, areaId, batchId); @@ -141,7 +141,7 @@ public class MesWmMaterialStockServiceImpl implements MesWmMaterialStockService MesWmMaterialStockDO newStock = MesWmMaterialStockDO.builder() .itemId(itemId).itemTypeId(item.getItemTypeId()) .warehouseId(warehouseId).locationId(locationId).areaId(areaId) - .batchId(batchId).vendorId(vendorId) + .batchId(batchId).batchCode(batchCode).vendorId(vendorId) .quantity(BigDecimal.ZERO) // 初始数量为 0,由 updateMaterialStockQuantity 更新 .receiptTime(receiptTime != null ? receiptTime : LocalDateTime.now()) .frozen(false) diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transaction/MesWmTransactionServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transaction/MesWmTransactionServiceImpl.java index c6c5ec7..c53d821 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transaction/MesWmTransactionServiceImpl.java +++ b/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 { // 2.1 获取或创建库存记录 MesWmMaterialStockDO materialStock = materialStockService.getOrCreateMaterialStock( reqDTO.getItemId(), reqDTO.getWarehouseId(), reqDTO.getLocationId(), reqDTO.getAreaId(), - reqDTO.getBatchId(), reqDTO.getVendorId(), reqDTO.getReceiptTime()); + reqDTO.getBatchId(), reqDTO.getBatchCode(), reqDTO.getVendorId(), reqDTO.getReceiptTime()); // 2.2 冻结校验(仓库、库区、库位、库存记录) checkFrozen(reqDTO, materialStock); // 2.3 更新库存数量 -- libgit2 0.21.4