From c2a29490a809b84dd8c8638f904d285b889d78d1 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, 14 Mar 2026 20:07:30 +0800 Subject: [PATCH] =?UTF-8?q?PDA=E6=8B=A3=E8=B4=A7=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/PickingOrderDomainService.java | 12 ++++++++++-- .../service/StockOutTaskOrderDomainService.java | 10 +++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/PickingOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/PickingOrderDomainService.java index bfda2e67e..97bb41e56 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/PickingOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/PickingOrderDomainService.java @@ -405,11 +405,19 @@ public class PickingOrderDomainService { .eq(PickingOrder::getOrderNumber, pickingOrderPODb.getOrderNumber())); BigDecimal pickingQuantity = pickingOrderList.stream().map(PickingOrder::getPickingQuantity).reduce(BigDecimal.ZERO, BigDecimal::add); if (1 == pickingOrderPODb.getType()){ - int status = 7; + int status = 6; //不需要复核的单子 标记出库单完成 StockOutOrder stockOutOrderDb = stockOutOrderService.getOne(new QueryWrapper().lambda() .eq(StockOutOrder::getOutOrderNumber, pickingOrderPODb.getOrderNumber())); - if (pickingQuantity.compareTo(stockOutOrderDb.getQuantity()) >= 0){ + // 与下发拣货数量比较:只下发部分时用拣货计划数量,否则用出库单总数量 + List allPickingOrders = pickingOrderService.list(new QueryWrapper().lambda() + .eq(PickingOrder::getDelFlag, 1) + .eq(PickingOrder::getOrderNumber, pickingOrderPODb.getOrderNumber())); + BigDecimal totalPickingPlanQuantity = allPickingOrders.stream() + .map(PickingOrder::getQuantity).filter(java.util.Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal thresholdQuantity = (totalPickingPlanQuantity != null && totalPickingPlanQuantity.compareTo(BigDecimal.ZERO) > 0) + ? totalPickingPlanQuantity : (stockOutOrderDb.getQuantity() != null ? stockOutOrderDb.getQuantity() : BigDecimal.ZERO); + if (pickingQuantity.compareTo(thresholdQuantity) >= 0){ status = 7; if (pickingOrderPODb.getReview() == 2){ status = 9; diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/service/StockOutTaskOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/service/StockOutTaskOrderDomainService.java index e6f9a6c39..4a841264d 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/service/StockOutTaskOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutTaskOrder/service/StockOutTaskOrderDomainService.java @@ -535,7 +535,15 @@ public class StockOutTaskOrderDomainService { StockOutOrder stockOutOrderDb = stockOutOrderService.getOne(new QueryWrapper().lambda() .eq(StockOutOrder::getDelFlag, 1) .eq(StockOutOrder::getOutOrderNumber, pickingOrderPODb.getOrderNumber())); - if (pickingQuantity.compareTo(stockOutOrderDb.getQuantity()) >= 0){ + // 与下发拣货数量比较:只下发部分时用分配数量/拣货计划数量,否则用出库单总数量 + List allPickingOrders = pickingOrderService.list(new QueryWrapper().lambda() + .eq(PickingOrder::getDelFlag, 1) + .eq(PickingOrder::getOrderNumber, pickingOrderPODb.getOrderNumber())); + BigDecimal totalPickingPlanQuantity = allPickingOrders.stream() + .map(PickingOrder::getQuantity).filter(java.util.Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal thresholdQuantity = (totalPickingPlanQuantity != null && totalPickingPlanQuantity.compareTo(BigDecimal.ZERO) > 0) + ? totalPickingPlanQuantity : (stockOutOrderDb.getQuantity() != null ? stockOutOrderDb.getQuantity() : BigDecimal.ZERO); + if (pickingQuantity.compareTo(thresholdQuantity) >= 0){ status = 7; if (pickingOrderPODb.getReview() == 2){ status = 9;