fix(oms):入库执行单业务单号不随下发复制,执行并下发入口补充有效运输业务单回填

This commit is contained in:
rcx
2026-08-18 11:36:21 +08:00
parent e489015e3e
commit bca8b5fbed
@@ -645,8 +645,9 @@ public class ReservationStockInOrderDomainService {
String warehouseName = reservationStockInOrderMapper.getWarehouseName(warehouseId);
ExecutionStockInOrder reservationStockInOrder = new ExecutionStockInOrder();
// 运输业务单号不直接从业务单头复制,避免历史已取消运输单号残留下发到执行单
BeanUtils.copyProperties(byId, reservationStockInOrder,"inOrderId","issueStatus","issueTime","issueId","issueName","reservationAuditId","reservationAuditName","reservationAuditTime","businessNumber","tmsOrderNumber");
// 业务单号/运输业务单号不从业务单头复制:业务单的businessOrderNo=自身单号,直接复制会导致
// 执行单"运输业务单号"列永远显示入库业务单号(未选运输也显示)
BeanUtils.copyProperties(byId, reservationStockInOrder,"inOrderId","issueStatus","issueTime","issueId","issueName","reservationAuditId","reservationAuditName","reservationAuditTime","businessOrderNo","businessNumber","tmsOrderNumber");
reservationStockInOrder.setIssueStatus(0);
reservationStockInOrder.setOrderTypeCode("pu_tong_ru_ku");
reservationStockInOrder.setOrderTypeName("普通入库");
@@ -666,7 +667,8 @@ public class ReservationStockInOrderDomainService {
reservationStockInOrder.setWarehouseName(warehouseName);
reservationStockInOrder.setBusinessInOrderNumber(inOrderNumber);
// 仅当存在有效(未取消/未拦截/未删除)的运输业务单时才回填运输业务单号
// 仅当存在有效(未取消/未拦截/未删除)的运输业务单时才回填运输业务单号
// businessOrderNo与businessNumber同值,兼容前端绑定任一字段
BusinessDocumentOrder activeTransportOrder = businessDocumentOrderMapper.selectOne(new LambdaQueryWrapper<BusinessDocumentOrder>()
.eq(BusinessDocumentOrder::getInOrderNumber, inOrderNumber)
.eq(BusinessDocumentOrder::getDelFlag, 1)
@@ -674,6 +676,7 @@ public class ReservationStockInOrderDomainService {
.orderByDesc(BusinessDocumentOrder::getCreateTime)
.last("limit 1"));
if (activeTransportOrder != null) {
reservationStockInOrder.setBusinessOrderNo(activeTransportOrder.getGoodsNumber());
reservationStockInOrder.setBusinessNumber(activeTransportOrder.getGoodsNumber());
reservationStockInOrder.setTmsOrderNumber(byId.getTmsOrderNumber());
}
@@ -857,7 +860,7 @@ public class ReservationStockInOrderDomainService {
ExecutionStockInOrder reservationStockInOrder = new ExecutionStockInOrder();
// 运输业务单号不直接从业务单头复制,避免历史已取消运输单号残留下发到执行单
BeanUtils.copyProperties(byId, reservationStockInOrder,"inOrderId","issueStatus","issueTime","issueId","issueName","reservationAuditId","reservationAuditName","reservationAuditTime","businessNumber","tmsOrderNumber");
BeanUtils.copyProperties(byId, reservationStockInOrder,"inOrderId","issueStatus","issueTime","issueId","issueName","reservationAuditId","reservationAuditName","reservationAuditTime","businessOrderNo","businessNumber","tmsOrderNumber");
reservationStockInOrder.setIssueStatus(0);
reservationStockInOrder.setOrderTypeCode("pu_tong_ru_ku");
reservationStockInOrder.setOrderTypeName("普通入库");
@@ -871,6 +874,20 @@ public class ReservationStockInOrderDomainService {
reservationStockInOrder.setWarehouseName(warehouseName);
reservationStockInOrder.setBusinessInOrderNumber(inOrderNumber);
// 仅当存在有效(未取消/未拦截/未删除)的运输业务单时才回填运输业务单号,
// businessOrderNo与businessNumber同值,兼容前端绑定任一字段
BusinessDocumentOrder activeTransportOrder = businessDocumentOrderMapper.selectOne(new LambdaQueryWrapper<BusinessDocumentOrder>()
.eq(BusinessDocumentOrder::getInOrderNumber, inOrderNumber)
.eq(BusinessDocumentOrder::getDelFlag, 1)
.notIn(BusinessDocumentOrder::getOrderStatus, 4L, 5L)
.orderByDesc(BusinessDocumentOrder::getCreateTime)
.last("limit 1"));
if (activeTransportOrder != null) {
reservationStockInOrder.setBusinessOrderNo(activeTransportOrder.getGoodsNumber());
reservationStockInOrder.setBusinessNumber(activeTransportOrder.getGoodsNumber());
reservationStockInOrder.setTmsOrderNumber(byId.getTmsOrderNumber());
}
//设置入库单号
// Long warehouseId1 = reservationStockInOrder.getWarehouseId();