From 20d2ab1725550e465db4c73499e1b864ccf3179d Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 16 Jan 2026 11:17:00 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix(wms):=20=E8=A7=A3=E5=86=B3=E5=8E=86?= =?UTF-8?q?=E5=8F=B2=E6=95=B0=E6=8D=AE=E9=92=A2=E5=8D=B7=E5=8F=91=E8=B4=A7?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 ServiceException 导入用于异常处理 - 增加历史数据校验逻辑,防止历史数据钢卷被发货 - 当检测到历史数据时抛出运行时异常并提示相应信息 --- .../com/klp/service/impl/WmsMaterialCoilServiceImpl.java | 5 +++++ 1 file changed, 5 insertions(+) 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 ecb2bf92..5673312d 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 @@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.klp.common.exception.ServiceException; import com.klp.common.helper.LoginHelper; import com.klp.common.utils.StringUtils; import com.klp.common.utils.spring.SpringUtils; @@ -2225,6 +2226,10 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { WmsMaterialCoilVo wmsMaterialCoilVo = queryById(coilId); Long oldActualWarehouseId = wmsMaterialCoilVo != null ? wmsMaterialCoilVo.getActualWarehouseId() : null; + // 如果当前钢卷为历史数据应该抛异常 + if (wmsMaterialCoilVo != null && wmsMaterialCoilVo.getDataType() == 0) { + throw new RuntimeException("当前数据为历史数据,请勿发货!"); + } // 1. 更新钢卷为已发货,并记录发货时间,同时清空实际库区占用(改用Wrapper实现) int rows = 0; //获取当前调用接口的这个人的username From a643b25f9f0584e2c4aedf0479f14bce53acce24 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 16 Jan 2026 11:30:41 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix(wms):=20=E4=BF=AE=E5=A4=8D=E7=89=A9?= =?UTF-8?q?=E6=96=99=E5=8D=B7=E6=9D=90=E6=9F=A5=E8=AF=A2=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E5=88=A4=E6=96=AD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复了当 hasSelectType 为 true 但 hasAnyItemFilter 为 false 时的条件判断问题 - 调整了筛选逻辑的位置,确保只在满足双重条件时执行相关筛选 - 移除了多余的右大括号,优化了代码结构 --- .../com/klp/service/impl/WmsMaterialCoilServiceImpl.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) 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 5673312d..ecd10735 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 @@ -432,9 +432,9 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { } // 使用 EXISTS 针对 selectType 的细粒度筛选(使用参数占位符防注入) - if (hasSelectType) { - qw.eq("mc.item_type", bo.getSelectType()); - if (hasAnyItemFilter) { + if (hasSelectType && hasAnyItemFilter) { + // 执行筛选逻辑(和上面完全一样) + qw.eq("mc.item_type", bo.getSelectType()); StringBuilder existsSql = new StringBuilder(); List existsArgs = new ArrayList<>(); if ("product".equals(bo.getSelectType())) { @@ -474,7 +474,6 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { qw.apply(existsSql.toString(), existsArgs.toArray()); } } - } // 显式 itemId 条件:与 EXISTS 共存时,语义为交集 if (CollectionUtils.isNotEmpty(explicitItemIds)) { From a3a04efd1aea5b79465c450b41a868b307cd3317 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 16 Jan 2026 11:53:21 +0800 Subject: [PATCH 3/3] =?UTF-8?q?refactor(wms):=20=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E9=92=A2=E5=8D=B7=E6=95=B0=E6=8D=AE=E7=B1=BB=E5=9E=8B=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除了对历史数据类型的验证逻辑 - 简化了钢卷更新时的数据校验流程 - 移除了 dataType 等于 0 时的异常抛出机制 --- .../java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java | 4 ---- 1 file changed, 4 deletions(-) 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 ecd10735..eb946d68 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 @@ -984,10 +984,6 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { if (oldCoil == null) { throw new RuntimeException("钢卷不存在"); } - // 判断数据类型 0=历史数据 1=正常数据 - if (oldCoil.getDataType() == 0) { - throw new RuntimeException("原钢卷已被更新"); - } // 若修改实际库位,先进行校验 if (bo.getActualWarehouseId() != null) {