fix(wms):复制新增修复

This commit is contained in:
zhaoqing
2026-08-14 09:39:41 +08:00
parent c80e4b3ca3
commit 63dcfaf028
2 changed files with 107 additions and 0 deletions
@@ -178,6 +178,51 @@ public class StockInOrderDomainService {
return maxSeq;
}
/**
* 新增入库单(含复制新建)时重置单据生命周期状态
*
* <p>前端「复制」入库单是取原单详情(getInfo)后按新单提交(/edit 不带 inOrderId),
* 若原单已审核,审核状态等字段会被原样带入新单,导致新单状态是「已创建」但审核时提示「已审核」等问题。
* 此处统一重置,保证新单从初始态开始。</p>
*/
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);
@@ -231,6 +231,62 @@ public class StockOutOrderDomainService {
return maxSeq;
}
/**
* 新增出库单(含复制新建)时重置单据生命周期状态
*
* <p>前端「复制」出库单是取原单详情(getInfo)后按新单提交(/edit 不带 outOrderId),
* 若原单已审核/已分配/已出库,审核状态、分配数量、复核/推送/作业任务等字段会被原样带入新单,
* 导致新单状态是「已创建」但审核时提示「已审核」等问题。此处统一重置,保证新单从初始态开始。</p>
*/
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);