From 830f0c38ee23b5dff50974400ac7e6563a69b6df Mon Sep 17 00:00:00 2001 From: zhou-hongcheng <1064771933@qq.com> Date: Wed, 18 Mar 2026 22:12:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E6=B6=88=E5=88=86=E9=85=8D=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=90=A7=E7=AC=AC=E4=B8=80=E6=9D=A1=E5=85=A8=E9=83=A8?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E7=AC=AC=E4=BA=8C=E6=9D=A1=E8=BF=98=E6=9C=89?= =?UTF-8?q?=E5=80=BC=E7=8A=B6=E6=80=81=E5=BA=94=E8=AF=A5=E4=B8=BA=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=88=86=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StockOutOrderApplicationService.java | 4 ++++ .../repository/todo/StockOutOrderDO.java | 3 +++ .../service/StockOutOrderDomainService.java | 13 ++++++++++--- 3 files changed, 17 insertions(+), 3 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 b3bf9bde4..e30e3e674 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 @@ -835,6 +835,10 @@ public class StockOutOrderApplicationService { * @return Boolean */ public Boolean cancelAssign(StockOutOrderDO stockOutOrderDO){ + StockOutOrderPO infoChildren = getInfoChildren(stockOutOrderDO.getOutOrderId()); + BigDecimal alreadyAllocationQuantityAll = infoChildren.getMaterialDetailList().stream().map(OutMaterialDetailPO::getAlreadyAllocationQuantity) + .filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); + stockOutOrderDO.setAlreadyAllocationQuantityAll(alreadyAllocationQuantityAll); return stockOutOrderDomainService.cancelAssign(stockOutOrderDO); } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java index 226def69c..13106f741 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java @@ -406,4 +406,7 @@ public class StockOutOrderDO extends BaseVOEntity { @ApiModelProperty(name = "审核时间查询条件结束日期") private String auditTimeEnd; + + @ApiModelProperty(name = "已分配数量总数量") + private BigDecimal alreadyAllocationQuantityAll; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java index f0787d31f..eb4358d18 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java @@ -408,6 +408,8 @@ public class StockOutOrderDomainService { //修改物料明细信息 StockOutOrderPO stockOutOrderPO = outMaterialDetailService.batchCancelAssignUpdate(stockOutOrderDb.getOutOrderNumber(), stockOutOrderDO.getMaterialDetailList()); //修改出库单 + + stockOutOrderPO.setAlreadyAllocationQuantity(stockOutOrderDO.getAlreadyAllocationQuantityAll());//全部的已分配数量 return updateStockOutOrderByAllocation(stockOutOrderDb, stockOutOrderPO, 2); } @@ -445,13 +447,18 @@ public class StockOutOrderDomainService { // 如果出库单的已分配数量小于要取消的数量,说明数据不一致,使用要取消的数量作为基准 alreadyAllocationQuantity = cancelAlreadyAllocationQuantity; } - alreadyAllocationQuantity = alreadyAllocationQuantity.subtract(cancelAlreadyAllocationQuantity); + alreadyAllocationQuantity = alreadyAllocationQuantity.subtract(cancelQuantity); // 确保不会变成负数 if (alreadyAllocationQuantity.compareTo(BigDecimal.ZERO) < 0) { alreadyAllocationQuantity = BigDecimal.ZERO; } - - status = judgeAllocationQuantityByManualAssign(stockOutOrderPO.getAllocationQuantity(), stockOutOrderPO.getAlreadyAllocationQuantity(),type); + BigDecimal subtract = stockOutOrderPO.getAlreadyAllocationQuantity().subtract(alreadyAllocationQuantity); + if (subtract.compareTo(BigDecimal.ZERO) == 0) { + status = 2; + } else { + status = 3; + } +// status = judgeAllocationQuantityByManualAssign(stockOutOrderPO.getAllocationQuantity(), stockOutOrderPO.getAlreadyAllocationQuantity(),type); }else { allocationQuantity = stockOutOrderPO.getAllocationQuantity();//直接使用返回的分配数量