From 4ff70dc152040b512a3bab40e1780e620b0dba57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Sun, 15 Mar 2026 13:31:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E5=BA=93=E4=BA=A4=E6=8E=A5=E8=AF=A6?= =?UTF-8?q?=E6=83=85=EF=BC=8C=E7=89=A9=E6=96=99=E6=98=8E=E7=BB=86=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E5=A4=8D=E6=A0=B8=E5=8D=95=E7=94=9F=E6=88=901?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StockOutOrderApplicationService.java | 3 +++ .../persistence/DeliveTaskImpl.java | 27 ++++++++++++------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java index 90447f556..b3bf9bde4 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java @@ -303,6 +303,9 @@ public class StockOutOrderApplicationService { } if (pickQty.compareTo(BigDecimal.ZERO) <= 0) { detailList.remove(i); + } else if (Integer.valueOf(1).equals(review) && d.getUniqueId() != null) { + // 需要复核时:用 picking_material_detail 的拣货数量覆盖展示,保证已拣货数量正确 + d.setPickingQuantity(pickQty); } } } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/persistence/DeliveTaskImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/persistence/DeliveTaskImpl.java index d5a7da647..d5a07e167 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/persistence/DeliveTaskImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/persistence/DeliveTaskImpl.java @@ -125,15 +125,6 @@ public class DeliveTaskImpl extends ServiceImpl im } deliveTaskPO.setHandoverStatus(handoverTaskOrder.getStatus());//交接状态: 1-未交接 2-已交接,与PC端保持一致 String orderNumber = handoverTaskOrder.getOrderNumber();//出库单号 - PickingOrderDTO pickingOrderDTO = new PickingOrderDTO(); - pickingOrderDTO.setOrderNumber(orderNumber); - PickingOrderDO pickingOrderDO = pickingOrderAssembler.toDO(pickingOrderDTO); - List pickingList = pickingOrderService.queryList(pickingOrderDO); - if (!pickingList.isEmpty()) { - PickingOrderPO pickingOrderPOS = pickingList.get(0); - BigDecimal pickingQuantity = pickingOrderPOS.getPickingQuantity();//已拣货数量 - deliveTaskPO.setPickingQuantity(pickingQuantity); - } // 已复核数量、出库单信息:直接从出库单获取(需在物料统计前获取,用于判断是否需要复核) StockOutOrder stockOutOrder = stockOutOrderService.getOne(new LambdaQueryWrapper() .eq(StockOutOrder::getOutOrderNumber, orderNumber)); @@ -143,6 +134,24 @@ public class DeliveTaskImpl extends ServiceImpl im deliveTaskPO.setShipperName(stockOutOrder.getShipperName()); deliveTaskPO.setCarrier(stockOutOrder.getCarrier()); deliveTaskPO.setCheckQuantity(stockOutOrder.getCheckQuantity());//已复核数量 + // 已拣货数量:需要复核时用 picking_material_detail 汇总(与交接详情一致),否则用 picking_order + BigDecimal pickingQuantity; + if (Integer.valueOf(1).equals(stockOutOrder.getReview())) { + pickingQuantity = pickingMaterialDetailMapper.sumPickingQuantityByOutOrderNumber(orderNumber); + } else { + PickingOrderDTO pickingOrderDTO = new PickingOrderDTO(); + pickingOrderDTO.setOrderNumber(orderNumber); + List pickingList = pickingOrderService.queryList(pickingOrderAssembler.toDO(pickingOrderDTO)); + pickingQuantity = pickingList.isEmpty() ? BigDecimal.ZERO : (pickingList.get(0).getPickingQuantity() != null ? pickingList.get(0).getPickingQuantity() : BigDecimal.ZERO); + } + deliveTaskPO.setPickingQuantity(pickingQuantity != null ? pickingQuantity : BigDecimal.ZERO); + } else { + // 无出库单时仍从拣货单取已拣货数量 + PickingOrderDTO pickingOrderDTO = new PickingOrderDTO(); + pickingOrderDTO.setOrderNumber(orderNumber); + List pickingList = pickingOrderService.queryList(pickingOrderAssembler.toDO(pickingOrderDTO)); + BigDecimal pickingQuantity = pickingList.isEmpty() ? BigDecimal.ZERO : (pickingList.get(0).getPickingQuantity() != null ? pickingList.get(0).getPickingQuantity() : BigDecimal.ZERO); + deliveTaskPO.setPickingQuantity(pickingQuantity); } // 物料种类数:从出库明细按料号去重统计,pickingQuantity 为 0 的过滤掉(与交接详情一致) List omdList = outMaterialDetailService.list(new LambdaQueryWrapper()