From db18d4dc348a99e0c7e9b598a9558028254e05f6 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Mon, 27 Apr 2026 11:03:04 +0800 Subject: [PATCH] =?UTF-8?q?feat(WmsMaterialCoil):=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=8E=9F=E6=96=99=E6=9D=90=E8=B4=A8=E7=9A=84=E5=8C=B9=E9=85=8D?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 onlyEmptyPackingStatus 字段用于查询打包状态为空的钢卷 - 修改数据库查询逻辑增加打包状态非空条件 - 更新查询条件实现打包状态匹配优化 - 添加服务层业务逻辑支持打包状态筛选功能 --- .../com/klp/domain/bo/WmsMaterialCoilBo.java | 6 ++++++ .../impl/WmsMaterialCoilServiceImpl.java | 4 ++++ .../mapper/klp/WmsMaterialCoilMapper.xml | 17 +++++++++++------ 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java index d56334ea..bf74adc7 100644 --- a/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java @@ -372,5 +372,11 @@ public class WmsMaterialCoilBo extends BaseEntity { */ @TableField(exist = false) private Boolean exportTimeBy; + + /** + * 是否只查询打包状态为空的钢卷(true=只查询packing_status为NULL或空字符串的钢卷) + */ + @TableField(exist = false) + private Boolean onlyEmptyPackingStatus; } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index 61fa275a..c130a850 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -858,6 +858,10 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { qw.in("mc.create_by", createByList); } } + // 只查询打包状态为空的钢卷 + if (Boolean.TRUE.equals(bo.getOnlyEmptyPackingStatus())) { + qw.and(w -> w.isNull("mc.packing_status").or().eq("mc.packing_status", "")); + } //根据异常数量筛选(大于等于指定值) if (bo.getMinAbnormalCount() != null) { qw.apply("COALESCE(ca.abnormal_count, 0) >= {0}", bo.getMinAbnormalCount()); diff --git a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml index d15776d8..82fec970 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml @@ -1041,6 +1041,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM wms_material_coil mc WHERE mc.del_flag = 0 AND mc.enter_coil_no IS NOT NULL + AND mc.packing_status IS NOT NULL AND mc.enter_coil_no IN ( SELECT DISTINCT mci.enter_coil_no FROM wms_material_coil mci @@ -1049,18 +1050,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND mci.item_id IS NOT NULL AND (mci.item_type = 'raw_material' AND rm.raw_material_name LIKE '%热轧卷板%') ) - AND ( - mc.packing_status IS NULL - OR - EXISTS ( + AND EXISTS ( SELECT 1 FROM wms_material_coil mci2 LEFT JOIN wms_raw_material rm2 ON mci2.item_type = 'raw_material' AND mci2.item_id = rm2.raw_material_id AND rm2.del_flag = 0 WHERE mci2.del_flag = 0 AND mci2.enter_coil_no = mc.enter_coil_no - AND (mci2.item_type = 'raw_material' AND rm2.raw_material_name LIKE '%热轧卷板%' AND (mc.packing_status != rm2.material OR rm2.material IS NULL)) + AND mci2.item_type = 'raw_material' + AND rm2.raw_material_name LIKE '%热轧卷板%' + AND ( + rm2.material IS NULL + OR ( + mc.packing_status NOT LIKE CONCAT(rm2.material, '%') + AND rm2.material NOT LIKE CONCAT(mc.packing_status, '%') + ) + ) ) - )