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,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 更新库存数量 |