From 57a62fcf048b951852bb295f678e6acc953ef1e8 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Sat, 17 Jan 2026 09:06:33 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E4=BC=98=E5=8C=96=E9=92=A2?= =?UTF-8?q?=E5=8D=B7=E5=8F=B7=E9=87=8D=E5=A4=8D=E6=A3=80=E6=9F=A5=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增历史记录数据类型判断,避免对历史数据进行重复检查 - 修改操作时根据coilId查询数据类型,历史记录直接返回无重复 - 钢卷号重复检查增加数据类型过滤条件,仅对当前数据生效 - 完善方法注释说明历史记录处理逻辑 --- .../service/impl/WmsMaterialCoilServiceImpl.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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 925a44ad..0a1c3bc5 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 @@ -2601,11 +2601,25 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { /** * 检查钢卷号是否重复 * 根据入场钢卷号和当前钢卷号查询数据库,判断哪个钢卷号重复 + * 新增逻辑:修改历史记录时不检查重复 */ @Override public Map checkCoilNoDuplicate(Long coilId, String enterCoilNo, String currentCoilNo) { Map result = new HashMap<>(); + // 新增核心逻辑:先判断是否操作的是历史记录 + // 1. 如果coilId不为空(修改操作),先查询该钢卷的dataType + if (coilId != null) { + WmsMaterialCoil coil = baseMapper.selectById(coilId); + // 2. 如果查询到钢卷且dataType!=1(说明是历史记录),直接返回无重复 + if (coil != null && coil.getDataType() != 1) { + result.put("duplicateType", "none"); + result.put("enterCoilNoDuplicate", false); + result.put("currentCoilNoDuplicate", false); + return result; // 直接返回,不执行后续检查 + } + } + boolean enterCoilNoDuplicate = false; boolean currentCoilNoDuplicate = false; @@ -2614,7 +2628,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { LambdaQueryWrapper enterWrapper = Wrappers.lambdaQuery(); enterWrapper.eq(WmsMaterialCoil::getEnterCoilNo, enterCoilNo) .eq(WmsMaterialCoil::getDelFlag, 0) - .eq(WmsMaterialCoil::getDataType, 1); + .eq(WmsMaterialCoil::getDataType, 1); // 过滤历史数据 // 如果是修改操作,排除自身 if (coilId != null) { enterWrapper.ne(WmsMaterialCoil::getCoilId, coilId);