Commit caf4c2ffdb34c87f9384e678e21647f85fc77994
1 parent
21acea42
✨ feat(mes): 新增获取批次详情接口,更新相关逻辑
Showing
4 changed files
with
25 additions
and
8 deletions
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 更新库存数量 | ... | ... |