From 6029256b4214aa5918d9110d546418bd42851c4f Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Mon, 23 Mar 2026 14:04:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(WmsMaterialCoil):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=8E=92=E9=99=A4=E5=B7=B2=E6=89=93=E5=8C=85=E9=92=A2=E5=8D=B7?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 WmsMaterialCoilBo 中新增 excludePacked 字段用于控制是否排除已打包钢卷 - 在 WmsMaterialCoilServiceImpl 的查询逻辑中添加对已打包钢卷的过滤条件 - 实现通过 excludePacked 参数防止钢卷重复打包的业务需求 - 优化查询性能避免返回不必要的已打包钢卷数据 --- .../src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java | 5 +++++ .../com/klp/service/impl/WmsMaterialCoilServiceImpl.java | 5 +++++ 2 files changed, 10 insertions(+) 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 084f0719..382497c4 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 @@ -214,6 +214,11 @@ public class WmsMaterialCoilBo extends BaseEntity { */ private Boolean excludeBound; + /** + * 是否排除已打包的钢卷(true=列表不返回已打包钢卷) + */ + private Boolean excludePacked; + /** * 是否在列表中返回“发货单明细绑定信息”(true=返回 bound + 绑定来源信息) * 默认不返回,避免不需要的场景变慢。 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 969276a4..21f8f588 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 @@ -533,6 +533,11 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { qw.apply("NOT EXISTS (SELECT 1 FROM wms_delivery_waybill_detail d WHERE d.del_flag = 0 AND d.coil_id = mc.coil_id)"); } + // 排除已打包的钢卷(防止重复打包) + if (Boolean.TRUE.equals(bo.getExcludePacked())) { + qw.apply("NOT EXISTS (SELECT 1 FROM wms_coil_packing_detail pd WHERE pd.del_flag = 0 AND pd.coil_id = mc.coil_id)"); + } + // 组合 item_id 条件:改为使用 EXISTS 子查询,替代预查询 + IN boolean hasSelectType = StringUtils.isNotBlank(bo.getSelectType()); boolean hasAnyItemFilter = StringUtils.isNotBlank(bo.getItemMaterial())