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 05a15484b..bfdc6b5c2 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 @@ -178,6 +178,51 @@ public class StockInOrderDomainService { return maxSeq; } + /** + * 新增入库单(含复制新建)时重置单据生命周期状态 + * + *

前端「复制」入库单是取原单详情(getInfo)后按新单提交(/edit 不带 inOrderId), + * 若原单已审核,审核状态等字段会被原样带入新单,导致新单状态是「已创建」但审核时提示「已审核」等问题。 + * 此处统一重置,保证新单从初始态开始。

+ */ + private void resetNewOrderState(StockInOrderDO stockInOrderDO) { + //单据状态回到已创建 + stockInOrderDO.setStatus(1); + //审核状态回到未审核,清空审核信息 + stockInOrderDO.setAuditStatus(1); + stockInOrderDO.setAuditRemark(null); + stockInOrderDO.setAuditBy(null); + stockInOrderDO.setAuditByName(null); + stockInOrderDO.setAuditTime(null); + //取消/关闭复位 + stockInOrderDO.setCancelOrder(2); + stockInOrderDO.setCancelRemark(null); + stockInOrderDO.setCancelBy(null); + stockInOrderDO.setCancelByName(null); + stockInOrderDO.setCancelTime(null); + stockInOrderDO.setCloseOrder(2); + stockInOrderDO.setCloseRemark(null); + stockInOrderDO.setCloseBy(null); + stockInOrderDO.setCloseByName(null); + stockInOrderDO.setCloseTime(null); + //推送状态复位 + stockInOrderDO.setPushStatus(1); + stockInOrderDO.setPushTime(null); + stockInOrderDO.setPushBy(null); + stockInOrderDO.setPushByName(null); + //作业任务复位 + stockInOrderDO.setWorkUserId(null); + stockInOrderDO.setWorkUserName(null); + stockInOrderDO.setWorkTaskReceiveStatus(null); + stockInOrderDO.setTaskIssueUserId(null); + //签名状态复位 + stockInOrderDO.setSignatureStatus(null); + stockInOrderDO.setSignatureTime(null); + stockInOrderDO.setSignaturePic(null); + stockInOrderDO.setEvidencePics(null); + stockInOrderDO.setSignatureRemark(null); + } + /** * 新增入库单 @@ -186,6 +231,9 @@ public class StockInOrderDomainService { public Boolean insert(StockInOrderDO stockInOrderDO) { // stockInOrderDO.setInOrderNumber(OrderSequence.getOrderCode("RK")); + //新增单必须从「已创建/未审核」初始态开始(复制新建时原单状态不能带入新单) + resetNewOrderState(stockInOrderDO); + //设置入库单号 Long warehouseId = stockInOrderDO.getWarehouseId(); AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(warehouseId); 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 427055070..4de4955b9 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 @@ -231,6 +231,62 @@ public class StockOutOrderDomainService { return maxSeq; } + /** + * 新增出库单(含复制新建)时重置单据生命周期状态 + * + *

前端「复制」出库单是取原单详情(getInfo)后按新单提交(/edit 不带 outOrderId), + * 若原单已审核/已分配/已出库,审核状态、分配数量、复核/推送/作业任务等字段会被原样带入新单, + * 导致新单状态是「已创建」但审核时提示「已审核」等问题。此处统一重置,保证新单从初始态开始。

+ */ + private void resetNewOrderState(StockOutOrderDO stockOutOrderDO) { + //单据状态回到已创建 + stockOutOrderDO.setStatus(1); + //审核状态回到未审核,清空审核信息 + stockOutOrderDO.setAuditStatus(1); + stockOutOrderDO.setAuditRemark(null); + stockOutOrderDO.setAuditBy(null); + stockOutOrderDO.setAuditByName(null); + stockOutOrderDO.setAuditTime(null); + //清空分配/拣货/复核数量,等待重新分配产生 + stockOutOrderDO.setAllocationQuantity(BigDecimal.ZERO); + stockOutOrderDO.setAlreadyAllocationQuantity(BigDecimal.ZERO); + stockOutOrderDO.setPickingQuantity(BigDecimal.ZERO); + stockOutOrderDO.setCheckQuantity(BigDecimal.ZERO); + //复核状态复位 + stockOutOrderDO.setCheckStatus(1); + stockOutOrderDO.setCheckTaskDistribution(2); + stockOutOrderDO.setCheckTaskDistributionTime(null); + stockOutOrderDO.setCheckOperatorsBy(null); + stockOutOrderDO.setCheckOperatorsName(null); + //推送状态复位 + stockOutOrderDO.setPushStatus(1); + stockOutOrderDO.setPushTime(null); + stockOutOrderDO.setPushBy(null); + stockOutOrderDO.setPushByName(null); + //取消/关闭复位 + stockOutOrderDO.setCancelOrder(2); + stockOutOrderDO.setCancelRemark(null); + stockOutOrderDO.setCancelBy(null); + stockOutOrderDO.setCancelByName(null); + stockOutOrderDO.setCancelTime(null); + stockOutOrderDO.setCloseOrder(2); + stockOutOrderDO.setCloseRemark(null); + stockOutOrderDO.setCloseBy(null); + stockOutOrderDO.setCloseByName(null); + stockOutOrderDO.setCloseTime(null); + //作业任务复位 + stockOutOrderDO.setWorkUserId(null); + stockOutOrderDO.setWorkUserName(null); + stockOutOrderDO.setWorkTaskReceiveStatus(null); + stockOutOrderDO.setTaskIssueUserId(null); + //签名状态复位 + stockOutOrderDO.setSignatureStatus(null); + stockOutOrderDO.setSignatureTime(null); + stockOutOrderDO.setSignaturePic(null); + stockOutOrderDO.setEvidencePics(null); + stockOutOrderDO.setSignatureRemark(null); + } + /** * 新增出库单 @@ -239,6 +295,9 @@ public class StockOutOrderDomainService { public Boolean insert(StockOutOrderDO stockOutOrderDO) { // stockOutOrderDO.setOutOrderNumber(OrderSequence.getOrderCode("CK")); + //新增单必须从「已创建/未审核」初始态开始(复制新建时原单状态不能带入新单) + resetNewOrderState(stockOutOrderDO); + //设置单号 Long warehouseId = stockOutOrderDO.getWarehouseId(); AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(warehouseId);