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(); String inOrderNumber = stockInOrder.getInOrderNumber();
List<ReservationInMaterialDetail> materialDetailList = materialDetailService.list( List<ReservationInMaterialDetail> materialDetailList = materialDetailService.list(
new QueryWrapper<ReservationInMaterialDetail>().lambda() new QueryWrapper<ReservationInMaterialDetail>().lambda()
.eq(ReservationInMaterialDetail::getInOrderNumber, inOrderNumber)); .eq(ReservationInMaterialDetail::getInOrderNumber, inOrderNumber)
.eq(ReservationInMaterialDetail::getDelFlag, 1));
List<InMaterialDetail> inMaterialDetailList = new ArrayList<>(); List<InMaterialDetail> inMaterialDetailList = new ArrayList<>();
for (ReservationInMaterialDetail reservationInMaterialDetail : materialDetailList) { for (ReservationInMaterialDetail reservationInMaterialDetail : materialDetailList) {
InMaterialDetail inMaterialDetail = new InMaterialDetail(); InMaterialDetail inMaterialDetail = new InMaterialDetail();
@@ -627,7 +628,10 @@ public class ReservationStockInOrderDomainService {
// Long inOrderId = stockInOrderDO.getInOrderId(); // Long inOrderId = stockInOrderDO.getInOrderId();
ReservationStockInOrder byId = stockInOrderService.getById(inOrderId); ReservationStockInOrder byId = stockInOrderService.getById(inOrderId);
String inOrderNumber = byId.getInOrderNumber(); 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 分组 // 按照 warehouseId 分组
Map<Long, List<ReservationInMaterialDetail>> materialDetailGroupByWarehouse = materialDetailList.stream() Map<Long, List<ReservationInMaterialDetail>> materialDetailGroupByWarehouse = materialDetailList.stream()
@@ -641,7 +645,8 @@ public class ReservationStockInOrderDomainService {
String warehouseName = reservationStockInOrderMapper.getWarehouseName(warehouseId); String warehouseName = reservationStockInOrderMapper.getWarehouseName(warehouseId);
ExecutionStockInOrder reservationStockInOrder = new ExecutionStockInOrder(); 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.setIssueStatus(0);
reservationStockInOrder.setOrderTypeCode("pu_tong_ru_ku"); reservationStockInOrder.setOrderTypeCode("pu_tong_ru_ku");
reservationStockInOrder.setOrderTypeName("普通入库"); reservationStockInOrder.setOrderTypeName("普通入库");
@@ -661,6 +666,18 @@ public class ReservationStockInOrderDomainService {
reservationStockInOrder.setWarehouseName(warehouseName); reservationStockInOrder.setWarehouseName(warehouseName);
reservationStockInOrder.setBusinessInOrderNumber(inOrderNumber); 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(); Long warehouseId1 = reservationStockInOrder.getWarehouseId();
@@ -815,7 +832,9 @@ public class ReservationStockInOrderDomainService {
// Long inOrderId = stockInOrderDO.getInOrderId(); // Long inOrderId = stockInOrderDO.getInOrderId();
ReservationStockInOrder byId = stockInOrderService.getById(inOrderId); ReservationStockInOrder byId = stockInOrderService.getById(inOrderId);
String inOrderNumber = byId.getInOrderNumber(); 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(); Long warehouseId1 = byId.getWarehouseId();
String warehouseCode1 = byId.getWarehouseCode(); String warehouseCode1 = byId.getWarehouseCode();
String warehouseName1 = byId.getWarehouseName(); String warehouseName1 = byId.getWarehouseName();
@@ -837,7 +856,8 @@ public class ReservationStockInOrderDomainService {
if (warehouseName == null) warehouseName = warehouseName1; if (warehouseName == null) warehouseName = warehouseName1;
ExecutionStockInOrder reservationStockInOrder = new ExecutionStockInOrder(); 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.setIssueStatus(0);
reservationStockInOrder.setOrderTypeCode("pu_tong_ru_ku"); reservationStockInOrder.setOrderTypeCode("pu_tong_ru_ku");
reservationStockInOrder.setOrderTypeName("普通入库"); reservationStockInOrder.setOrderTypeName("普通入库");
@@ -116,7 +116,7 @@
a.audit_status, a.audit_remark, a.audit_by, a.audit_by_name, a.audit_time, a.warehouse_id, a.warehouse_code, a.warehouse_name, a.shipper_id, a.shipper_code, a.audit_status, a.audit_remark, a.audit_by, a.audit_by_name, a.audit_time, a.warehouse_id, a.warehouse_code, a.warehouse_name, a.shipper_id, a.shipper_code,
a.shipper_name, a.order_type_code, a.order_type_name, a.supplier_id, a.supplier_code, a.supplier_name, a.expect_time, a.supply_chain_number, a.shipper_name, a.order_type_code, a.order_type_name, a.supplier_id, a.supplier_code, a.supplier_name, a.expect_time, a.supply_chain_number,
a.priority_level_code, a.priority_level_name, a.direct_warehouse, a.annex_url, a.material_quantity, a.quantity,a.business_order_no,a.amount, a.priority_level_code, a.priority_level_name, a.direct_warehouse, a.annex_url, a.material_quantity, a.quantity,a.business_order_no,a.amount,
a.business_price_way,a.business_charge_type,a.total_warehouse_rent,a.manpower_fee,a.fire_insure_fee,a.discount,a.is_free_manpower_fee, a.business_price_way,a.business_charge_type,a.total_warehouse_rent,a.manpower_fee,a.fire_insure_fee,a.discount,a.is_free_manpower_fee,a.business_number,
-- 计划入库数量:入库明细表 in_material_detail 的 quantity 汇总 -- 计划入库数量:入库明细表 in_material_detail 的 quantity 汇总
<!-- (select ifnull(sum(imd.quantity), 0)--> <!-- (select ifnull(sum(imd.quantity), 0)-->
<!-- from in_material_detail imd--> <!-- from in_material_detail imd-->