fix(oms):下发过滤已删除明细,执行单不再残留已取消运输业务单号

This commit is contained in:
rcx
2026-08-18 10:19:40 +08:00
parent d74a28bceb
commit e489015e3e
2 changed files with 26 additions and 6 deletions
@@ -607,7 +607,8 @@ public class ReservationStockInOrderDomainService {
String inOrderNumber = stockInOrder.getInOrderNumber();
List<ReservationInMaterialDetail> materialDetailList = materialDetailService.list(
new QueryWrapper<ReservationInMaterialDetail>().lambda()
.eq(ReservationInMaterialDetail::getInOrderNumber, inOrderNumber));
.eq(ReservationInMaterialDetail::getInOrderNumber, inOrderNumber)
.eq(ReservationInMaterialDetail::getDelFlag, 1));
List<InMaterialDetail> inMaterialDetailList = new ArrayList<>();
for (ReservationInMaterialDetail reservationInMaterialDetail : materialDetailList) {
InMaterialDetail inMaterialDetail = new InMaterialDetail();
@@ -627,7 +628,10 @@ public class ReservationStockInOrderDomainService {
// Long inOrderId = stockInOrderDO.getInOrderId();
ReservationStockInOrder byId = stockInOrderService.getById(inOrderId);
String inOrderNumber = byId.getInOrderNumber();
List<ReservationInMaterialDetail> materialDetailList = materialDetailService.list(new QueryWrapper<ReservationInMaterialDetail>().lambda().eq(ReservationInMaterialDetail::getInOrderNumber, inOrderNumber));
List<ReservationInMaterialDetail> materialDetailList = materialDetailService.list(
new QueryWrapper<ReservationInMaterialDetail>().lambda()
.eq(ReservationInMaterialDetail::getInOrderNumber, inOrderNumber)
.eq(ReservationInMaterialDetail::getDelFlag, 1));
// 按照 warehouseId 分组
Map<Long, List<ReservationInMaterialDetail>> materialDetailGroupByWarehouse = materialDetailList.stream()
@@ -641,7 +645,8 @@ public class ReservationStockInOrderDomainService {
String warehouseName = reservationStockInOrderMapper.getWarehouseName(warehouseId);
ExecutionStockInOrder reservationStockInOrder = new ExecutionStockInOrder();
BeanUtils.copyProperties(byId, reservationStockInOrder,"inOrderId","issueStatus","issueTime","issueId","issueName","reservationAuditId","reservationAuditName","reservationAuditTime");
// 运输业务单号不直接从业务单头复制,避免历史已取消运输单号残留下发到执行单
BeanUtils.copyProperties(byId, reservationStockInOrder,"inOrderId","issueStatus","issueTime","issueId","issueName","reservationAuditId","reservationAuditName","reservationAuditTime","businessNumber","tmsOrderNumber");
reservationStockInOrder.setIssueStatus(0);
reservationStockInOrder.setOrderTypeCode("pu_tong_ru_ku");
reservationStockInOrder.setOrderTypeName("普通入库");
@@ -661,6 +666,18 @@ public class ReservationStockInOrderDomainService {
reservationStockInOrder.setWarehouseName(warehouseName);
reservationStockInOrder.setBusinessInOrderNumber(inOrderNumber);
// 仅当存在有效(未取消/未拦截/未删除)的运输业务单时,才回填运输业务单号
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.setBusinessNumber(activeTransportOrder.getGoodsNumber());
reservationStockInOrder.setTmsOrderNumber(byId.getTmsOrderNumber());
}
//设置入库单号
Long warehouseId1 = reservationStockInOrder.getWarehouseId();
@@ -815,7 +832,9 @@ public class ReservationStockInOrderDomainService {
// Long inOrderId = stockInOrderDO.getInOrderId();
ReservationStockInOrder byId = stockInOrderService.getById(inOrderId);
String inOrderNumber = byId.getInOrderNumber();
List<ReservationInMaterialDetail> materialDetailList = materialDetailService.list(new QueryWrapper<ReservationInMaterialDetail>().lambda().eq(ReservationInMaterialDetail::getInOrderNumber, inOrderNumber));
List<ReservationInMaterialDetail> materialDetailList = materialDetailService.list(new QueryWrapper<ReservationInMaterialDetail>().lambda()
.eq(ReservationInMaterialDetail::getInOrderNumber, inOrderNumber)
.eq(ReservationInMaterialDetail::getDelFlag, 1));
Long warehouseId1 = byId.getWarehouseId();
String warehouseCode1 = byId.getWarehouseCode();
String warehouseName1 = byId.getWarehouseName();
@@ -837,7 +856,8 @@ public class ReservationStockInOrderDomainService {
if (warehouseName == null) warehouseName = warehouseName1;
ExecutionStockInOrder reservationStockInOrder = new ExecutionStockInOrder();
BeanUtils.copyProperties(byId, reservationStockInOrder,"inOrderId","issueStatus","issueTime","issueId","issueName","reservationAuditId","reservationAuditName","reservationAuditTime");
// 运输业务单号不直接从业务单头复制,避免历史已取消运输单号残留下发到执行单
BeanUtils.copyProperties(byId, reservationStockInOrder,"inOrderId","issueStatus","issueTime","issueId","issueName","reservationAuditId","reservationAuditName","reservationAuditTime","businessNumber","tmsOrderNumber");
reservationStockInOrder.setIssueStatus(0);
reservationStockInOrder.setOrderTypeCode("pu_tong_ru_ku");
reservationStockInOrder.setOrderTypeName("普通入库");