From a76ee52afbd6f1e55ff48a42c318b57bd8c1d203 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Wed, 18 Mar 2026 18:42:49 +0800 Subject: [PATCH] =?UTF-8?q?feat(inventory):=20=E6=B7=BB=E5=8A=A0=E5=82=A8?= =?UTF-8?q?=E4=BD=8D=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在OutDifferenceItemVO中新增推荐储位和扫码储位字段 - 修改OutMaterialScanRecord添加基于储位的唯一键生成 - 更新InventoryController中的库存出库逻辑,增加储位信息传递 - 在扫描记录控制器中实现储位匹配和差异对比功能 - 修复注释中的布尔值说明错误 - 优化代码格式和空行清理 --- .../controller/InCostCenterBackController.java | 5 ++++- .../wms/admin/controller/InventoryController.java | 5 +++-- .../wms/admin/controller/ScanRecordController.java | 14 ++++++++++---- .../pojo/document/OutMaterialScanRecord.java | 7 +++++++ .../wms/common/pojo/vo/OutDifferenceItemVO.java | 10 ++++++++++ .../nflg/wms/common/pojo/vo/OutProduceItemVO.java | 2 +- 6 files changed, 35 insertions(+), 8 deletions(-) diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InCostCenterBackController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InCostCenterBackController.java index 326608ce..c24c9289 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InCostCenterBackController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InCostCenterBackController.java @@ -81,6 +81,9 @@ public class InCostCenterBackController extends BaseController { @Resource private IWmsQrCodeMasterService qrCodeMasterService; +// @Resource +// private IWmsWarehouseService + /** * 查询SAP领料订单数据 */ @@ -183,7 +186,7 @@ public class InCostCenterBackController extends BaseController { vo.setLgort2(CollectionUtil.get(storageService.getWarehouseNo(order.getWerks(), item.getMatnr()), 0)); } vo.setLgpbe(storageService.getBinNo(item.getMatnr(), order.getWerks(), vo.getLgort2())); - +// vo.setIsDisableLocation(); return vo; }).toList() ) diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InventoryController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InventoryController.java index 3894d55b..c5bea70c 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InventoryController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InventoryController.java @@ -285,7 +285,8 @@ public class InventoryController extends BaseController { @PostMapping("getForOut") public ApiResult> getForOut(@Valid @RequestBody @NotNull InventoryForOutQO qo) { List inventories = inventoryService.getForOutFIFO(qo.getFactoryNo(), qo.getWarehouseNo() - , qo.getItems().stream().map(InventoryForOutItemQO::getMaterialNo).collect(Collectors.toSet())); + , qo.getItems().stream().map(InventoryForOutItemQO::getMaterialNo).collect(Collectors.toSet()) + ); List vos = new ArrayList<>(); qo.getItems().forEach(item -> { InventoryForOutVO vo = new InventoryForOutVO() @@ -298,7 +299,7 @@ public class InventoryController extends BaseController { BigDecimal num = item.getNum(); for (WmsInventory inventory : mis) { BigDecimal outNum = NumberUtil.min(num, inventory.getNum()); - vo.getItems().add(new InventoryForOutItemVO(inventory.getBatchNo(), inventory.getSerialNo(), outNum)); + vo.getItems().add(new InventoryForOutItemVO(inventory.getBatchNo(), inventory.getSerialNo(), inventory.getBinLocation(), outNum)); num = num.subtract(outNum); if (num.compareTo(BigDecimal.ZERO) == 0) { break; diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ScanRecordController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ScanRecordController.java index 3653b88c..30003260 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ScanRecordController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ScanRecordController.java @@ -103,15 +103,19 @@ public class ScanRecordController extends BaseController { OutDifferenceItemVO itemVO = new OutDifferenceItemVO() .setRecommendbatchNo(item.getBatchNo()) .setRecommendSerialNo(item.getSerialNo()) + .setRecommendBinNo(item.getBinNo()) .setRecommendNum(item.getNum()); List mrecords = records.stream() .filter(r -> StrUtil.equals(r.getMaterialNo(), dto.getMaterialNo()) && StrUtil.equals(r.getBatchNo(), item.getBatchNo()) - && StrUtil.equals(r.getSerialNo(), item.getSerialNo())) + && StrUtil.equals(r.getSerialNo(), item.getSerialNo()) + && StrUtil.equals(r.getBinNo(), item.getBinNo()) + ) .toList(); if (CollectionUtil.isNotEmpty(mrecords)) { itemVO.setScanBatchNo(item.getBatchNo()); itemVO.setScanSerialNo(item.getSerialNo()); + itemVO.setScanBinNo(item.getBinNo()); itemVO.setScanNum(mrecords.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add)); records.removeAll(mrecords); } @@ -126,8 +130,8 @@ public class ScanRecordController extends BaseController { OutDifferenceVO vo = vos.stream() .filter(it -> StrUtil.equals(it.getMaterialNo(), k)) .findFirst() - .orElseGet(()-> { - OutDifferenceVO tv=new OutDifferenceVO().setMaterialNo(k); + .orElseGet(() -> { + OutDifferenceVO tv = new OutDifferenceVO().setMaterialNo(k); vos.add(tv); return tv; }); @@ -137,9 +141,11 @@ public class ScanRecordController extends BaseController { vo.getItems().add(new OutDifferenceItemVO() .setRecommendbatchNo("") .setRecommendSerialNo("") - .setRecommendNum(BigDecimal.ZERO) + .setRecommendBinNo("") +// .setRecommendNum(BigDecimal.ZERO) .setScanBatchNo(StrUtil.split(key, "|").get(1)) .setScanSerialNo(StrUtil.split(key, "|").get(2)) + .setScanBinNo(StrUtil.split(key, "|").get(3)) .setScanNum(vv.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add))); }); }); diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/document/OutMaterialScanRecord.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/document/OutMaterialScanRecord.java index d4be24b7..bec7fa6c 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/document/OutMaterialScanRecord.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/document/OutMaterialScanRecord.java @@ -176,4 +176,11 @@ public class OutMaterialScanRecord { public String getKey8() { return materialNo + "|" + batchNo + "|" + this.serialNo; } + + @Transient + private String key9; + + public String getKey9() { + return materialNo + "|" + batchNo + "|" + this.serialNo + "|" + this.binNo; + } } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutDifferenceItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutDifferenceItemVO.java index 994cd8f1..418f4025 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutDifferenceItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutDifferenceItemVO.java @@ -19,6 +19,11 @@ public class OutDifferenceItemVO { */ private String recommendSerialNo; + /** + * 推荐储位 + */ + private String recommendBinNo; + /** * 推荐数量 */ @@ -34,6 +39,11 @@ public class OutDifferenceItemVO { */ private String scanSerialNo; + /** + * 扫码储位 + */ + private String scanBinNo; + /** * 扫码数量 */ diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutProduceItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutProduceItemVO.java index 613f00f1..1a0a8f68 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutProduceItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutProduceItemVO.java @@ -78,7 +78,7 @@ public class OutProduceItemVO { } /** - * 是否启用储位管理 + * 是否启用储位管理,true为启用,false为不启用 */ @JsonProperty("isDisableLocation") private Boolean isDisableLocation = true;