From 8ee5ab0a8dfc268868e8a245fa2f5f7b47a88f91 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 10 Jul 2026 15:39:55 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0=E9=80=80?= =?UTF-8?q?=E7=81=AB=E6=80=A7=E8=83=BD=E6=9F=A5=E8=AF=A2=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E5=8F=8C=E9=87=8D=E5=BA=93=E5=8C=BA=E7=AD=9B=E9=80=89=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 WmsAnnealPerformanceBo 中新增 coilWarehouseId 字段用于钢卷本身库区筛选 - 更新数据库查询映射,支持出炉时逻辑库区和钢卷本身库区的分别筛选 - 修改服务实现逻辑,区分出炉时逻辑库区和钢卷本身库区的数据处理 - 优化查询条件判断,支持多种筛选条件组合的统计信息重新计算 --- .../klp/domain/bo/WmsAnnealPerformanceBo.java | 5 +++- .../impl/WmsAnnealPerformanceServiceImpl.java | 30 ++++++++++++------- .../mapper/WmsAnnealPerformanceMapper.xml | 11 +++++-- 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsAnnealPerformanceBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsAnnealPerformanceBo.java index f2e94362d..b57d97a30 100644 --- a/klp-wms/src/main/java/com/klp/domain/bo/WmsAnnealPerformanceBo.java +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsAnnealPerformanceBo.java @@ -35,6 +35,9 @@ public class WmsAnnealPerformanceBo { // 当前钢卷号 private String currentCoilNo; - // 逻辑库区id + // 逻辑库区id(出炉时的逻辑库区,对应wms_furnace_plan_coil.logic_warehouse_id) private Long warehouseId; + + // 钢卷所在库区id(钢卷本身的逻辑库区,对应wms_material_coil.warehouse_id) + private Long coilWarehouseId; } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsAnnealPerformanceServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsAnnealPerformanceServiceImpl.java index e1fcaa204..59917f106 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsAnnealPerformanceServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsAnnealPerformanceServiceImpl.java @@ -118,7 +118,16 @@ public class WmsAnnealPerformanceServiceImpl implements IWmsAnnealPerformanceSer continue; } - // 为每个钢卷设置逻辑库区ID、层级和钢卷信息 + // 设置出炉时的逻辑库区到detail级别(取第一个非空的logicWarehouseId) + for (WmsFurnacePlanCoil planCoil : planCoils) { + if (planCoil.getLogicWarehouseId() != null) { + detail.setLogicWarehouseId(planCoil.getLogicWarehouseId()); + detail.setLogicWarehouseName(logicWarehouseNameMap.get(planCoil.getLogicWarehouseId())); + break; + } + } + + // 为每个钢卷设置炉火层级和钢卷信息(不覆盖钢卷本身的逻辑库区) List coilVos = new ArrayList<>(); for (WmsFurnacePlanCoil planCoil : planCoils) { Long coilId = planCoil.getCoilId(); @@ -132,11 +141,8 @@ public class WmsAnnealPerformanceServiceImpl implements IWmsAnnealPerformanceSer coilVo.setCoilId(coilId); } - // 设置逻辑库区ID和层级(每个钢卷可能不同) - if (planCoil.getLogicWarehouseId() != null) { - coilVo.setWarehouseId(planCoil.getLogicWarehouseId()); - coilVo.setWarehouseName(logicWarehouseNameMap.get(planCoil.getLogicWarehouseId())); - } + // 保持钢卷本身的warehouseId/warehouseName不变,不覆盖 + // 设置炉火层级 coilVo.setFurnaceLevel(planCoil.getFurnaceLevel()); @@ -153,9 +159,10 @@ public class WmsAnnealPerformanceServiceImpl implements IWmsAnnealPerformanceSer continue; // 跳过不匹配的钢卷 } } - if (bo.getWarehouseId() != null) { + // 钢卷本身的逻辑库区筛选(coilVo.warehouseId保持不变) + if (bo.getCoilWarehouseId() != null) { if (coilVo.getWarehouseId() == null || - !coilVo.getWarehouseId().equals(bo.getWarehouseId())) { + !coilVo.getWarehouseId().equals(bo.getCoilWarehouseId())) { continue; // 跳过不匹配的钢卷 } } @@ -178,8 +185,11 @@ public class WmsAnnealPerformanceServiceImpl implements IWmsAnnealPerformanceSer // 移除没有钢卷的计划 details.removeIf(detail -> detail.getCoils() == null || detail.getCoils().isEmpty()); - // 如果传入了enterCoilNo筛选条件,重新计算统计信息 - if (bo.getEnterCoilNo() != null && !bo.getEnterCoilNo().isEmpty()) { + // 如果传入了筛选条件,重新计算统计信息 + if ((bo.getEnterCoilNo() != null && !bo.getEnterCoilNo().isEmpty()) + || (bo.getCurrentCoilNo() != null && !bo.getCurrentCoilNo().isEmpty()) + || bo.getWarehouseId() != null + || bo.getCoilWarehouseId() != null) { summary.setPlanCount(filteredPlanCount); summary.setCoilCount(filteredCoilCount); summary.setTotalWeight(filteredTotalWeight); diff --git a/klp-wms/src/main/resources/mapper/WmsAnnealPerformanceMapper.xml b/klp-wms/src/main/resources/mapper/WmsAnnealPerformanceMapper.xml index fea6bdbf7..7f9831ef7 100644 --- a/klp-wms/src/main/resources/mapper/WmsAnnealPerformanceMapper.xml +++ b/klp-wms/src/main/resources/mapper/WmsAnnealPerformanceMapper.xml @@ -20,12 +20,17 @@ AND mc.enter_coil_no LIKE CONCAT('%', #{enterCoilNo}, '%') - + AND mc.current_coil_no LIKE CONCAT('%', #{currentCoilNo}, '%') + - AND mc.warehouse_id = #{warehouseId} + AND pc.logic_warehouse_id = #{warehouseId} + + + + AND mc.warehouse_id = #{coilWarehouseId} @@ -49,7 +54,7 @@ p.end_time AS endTime FROM wms_furnace_plan p LEFT JOIN wms_furnace f ON f.furnace_id = p.target_furnace_id - + INNER JOIN wms_furnace_plan_coil pc ON pc.plan_id = p.plan_id AND pc.del_flag = 0 INNER JOIN wms_material_coil mc ON mc.coil_id = pc.coil_id AND mc.del_flag = 0