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();//直接使用返回的分配数量