From 5917caacd383143e04fb49bf886f64f9d423e6c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Sat, 18 Apr 2026 16:11:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E8=B4=A7=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/StockInOrderDomainService.java | 8 ++++++-- .../service/StockReceiptOrderDomainService.java | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java index 12bcbbb7b..7341613b4 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java @@ -488,8 +488,12 @@ public class StockInOrderDomainService { // 复制特定字段:生产日期、过期日期、存货日期、批次参考号、单据参考号、箱号/卡板号、扩展属性1-4 // 这些字段可能使用驼峰命名或下划线命名,使用反射获取和设置 copySpecialFields(inMaterialDetailPO, receiptMaterialDetailDO); - //收货计划数量赋值 - receiptMaterialDetailDO.setQuantity(inMaterialDetailPO.getInboundQuantity()); + // 收货计划数量:与入库明细「计划数量」quantity 一致;inbound_quantity 常为空(仅占位或后置填报),不能单用它否则会变成 0 + BigDecimal planQty = inMaterialDetailPO.getQuantity(); + if (planQty == null) { + planQty = inMaterialDetailPO.getInboundQuantity(); + } + receiptMaterialDetailDO.setQuantity(planQty); receiptMaterialDetailDOList.add(receiptMaterialDetailDO); }); stockReceiptOrderDO.setMaterialDetailList(receiptMaterialDetailDOList); diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java index 21315bbfc..45a7f2257 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java @@ -1191,6 +1191,7 @@ public class StockReceiptOrderDomainService { shelfMaterialDetailDO.setExtAttr4(sdf.parse(receiptMaterialDetailDO.getExtAttr4())); } catch (Exception e) { } } + applyReceiptLotNoToShelfLotNumber(shelfMaterialDetailDO, receiptMaterialDetailDO.getLotNo()); shelfMaterialDetailDOList.add(shelfMaterialDetailDO); } // 子项有收货数量时,每个子项生成一条上架明细(一明细两子项 → 两条上架明细) @@ -1230,6 +1231,7 @@ public class StockReceiptOrderDomainService { shelfMaterialDetailDOChildren.setExtAttr4(sdf.parse(receiptMaterialDetailDOChildren.getExtAttr4())); } catch (Exception e) { } } + applyReceiptLotNoToShelfLotNumber(shelfMaterialDetailDOChildren, receiptMaterialDetailDOChildren.getLotNo()); shelfMaterialDetailDOList.add(shelfMaterialDetailDOChildren); }); } @@ -1329,6 +1331,7 @@ public class StockReceiptOrderDomainService { // 如果转换失败,不设置该字段 } } + applyReceiptLotNoToShelfLotNumber(shelfMaterialDetailDO, receiptMaterialDetailPO.getLotNo()); shelfMaterialDetailDOList.add(shelfMaterialDetailDO); receiptQuantity = receiptQuantity.add(receiptMaterialDetailPO.getReceiptQuantity()); } @@ -1370,6 +1373,7 @@ public class StockReceiptOrderDomainService { shelfMaterialDetailDOChildren.setExtAttr4(sdf.parse(receiptMaterialDetailPOChildren.getExtAttr4())); } catch (Exception e) { } } + applyReceiptLotNoToShelfLotNumber(shelfMaterialDetailDOChildren, receiptMaterialDetailPOChildren.getLotNo()); shelfMaterialDetailDOList.add(shelfMaterialDetailDOChildren); receiptQuantity = receiptQuantity.add(receiptMaterialDetailPOChildren.getReceiptQuantity()); } @@ -1450,6 +1454,7 @@ public class StockReceiptOrderDomainService { // 如果转换失败,不设置该字段 } } + applyReceiptLotNoToShelfLotNumber(shelfMaterialDetailDO, receiptMaterialDetailPO.getLotNo()); // 处理子项:如果子项的已收货数量为0,跳过该子项 if (receiptMaterialDetailPO.getChildren() != null && !receiptMaterialDetailPO.getChildren().isEmpty()) { receiptMaterialDetailPO.getChildren().forEach(receiptMaterialDetailDOChildren -> { @@ -1491,6 +1496,7 @@ public class StockReceiptOrderDomainService { // 如果转换失败,不设置该字段 } } + applyReceiptLotNoToShelfLotNumber(shelfMaterialDetailDOChildren, receiptMaterialDetailDOChildren.getLotNo()); shelfMaterialDetailDOList.add(shelfMaterialDetailDOChildren); }); } @@ -1958,4 +1964,13 @@ public class StockReceiptOrderDomainService { public List queryPrintInfo(StockReceiptOrderDTO stockReceiptOrderDTO) { return stockReceiptOrderService.queryPrintInfo(stockReceiptOrderDTO); } + + /** + * 收货明细为 lot_no,上架明细为 lot_number,字段名不同,BeanUtils.copyProperties 不会拷贝,生成上架明细时显式赋值。 + */ + private static void applyReceiptLotNoToShelfLotNumber(ShelfMaterialDetailDO shelf, String receiptLotNo) { + if (shelf != null) { + shelf.setLotNumber(receiptLotNo); + } + } } \ No newline at end of file