From 57889781bbed7958b1c6c3f8de82e8b48115a675 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 16 Jan 2026 10:12:10 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=9B=B4=E6=96=B0=E9=92=A2?= =?UTF-8?q?=E5=8D=B7=E5=8F=B7=E9=87=8D=E5=A4=8D=E6=A3=80=E6=9F=A5=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E6=94=AF=E6=8C=81=E4=BF=AE=E6=94=B9=E5=9C=BA=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 checkCoilNoDuplicate 方法中添加 coilId 参数以支持修改操作 - 修改控制器层接口,增加可选的 coilId 请求参数 - 实现修改操作时排除自身的重复检查逻辑 - 添加历史数据类型验证,防止对已更新钢卷进行操作 - 在钢卷修改和删除方法中增加 dataType 为 0 的历史数据检查 --- .../controller/WmsMaterialCoilController.java | 3 ++- .../klp/service/IWmsMaterialCoilService.java | 2 +- .../impl/WmsMaterialCoilServiceImpl.java | 19 ++++++++++++++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java index 6cc72830..bcb7254e 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java @@ -266,9 +266,10 @@ public class WmsMaterialCoilController extends BaseController { */ @GetMapping("/checkCoilNoDuplicate") public R> checkCoilNoDuplicate( + @RequestParam(required = false) Long coilId, @RequestParam(required = false) String enterCoilNo, @RequestParam(required = false) String currentCoilNo) { - Map result = iWmsMaterialCoilService.checkCoilNoDuplicate(enterCoilNo, currentCoilNo); + Map result = iWmsMaterialCoilService.checkCoilNoDuplicate(coilId,enterCoilNo, currentCoilNo); return R.ok(result); } diff --git a/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java b/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java index 289c60da..3b3f4f91 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java @@ -125,7 +125,7 @@ public interface IWmsMaterialCoilService { * - enterCoilNoDuplicate: 入场钢卷号是否重复 (true/false) * - currentCoilNoDuplicate: 当前钢卷号是否重复 (true/false) */ - Map checkCoilNoDuplicate(String enterCoilNo, String currentCoilNo); + Map checkCoilNoDuplicate(Long coilId, String enterCoilNo, String currentCoilNo); /** * 根据入场钢卷号前缀查询最大的入场钢卷号 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 314038be..ecb2bf92 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,6 +984,10 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { if (oldCoil == null) { throw new RuntimeException("钢卷不存在"); } + // 判断数据类型 0=历史数据 1=正常数据 + if (oldCoil.getDataType() == 0) { + throw new RuntimeException("原钢卷已被更新"); + } // 若修改实际库位,先进行校验 if (bo.getActualWarehouseId() != null) { @@ -1033,6 +1037,11 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { throw new RuntimeException("原钢卷不存在"); } + // oldCoil 如果是历史卷也就是date_type=0 的时候就是历史钢卷 + if (oldCoil.getDataType() == 0) { + throw new RuntimeException("原钢卷已被更新"); + } + // 若修改实际库位,先进行校验 if (bo.getActualWarehouseId() != null) { Long ignoreOccupiedId = Objects.equals(bo.getActualWarehouseId(), oldCoil.getActualWarehouseId()) @@ -2590,7 +2599,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { * 根据入场钢卷号和当前钢卷号查询数据库,判断哪个钢卷号重复 */ @Override - public Map checkCoilNoDuplicate(String enterCoilNo, String currentCoilNo) { + public Map checkCoilNoDuplicate(Long coilId, String enterCoilNo, String currentCoilNo) { Map result = new HashMap<>(); boolean enterCoilNoDuplicate = false; @@ -2602,6 +2611,10 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { enterWrapper.eq(WmsMaterialCoil::getEnterCoilNo, enterCoilNo) .eq(WmsMaterialCoil::getDelFlag, 0) .eq(WmsMaterialCoil::getDataType, 1); + // 如果是修改操作,排除自身 + if (coilId != null) { + enterWrapper.ne(WmsMaterialCoil::getCoilId, coilId); + } long enterCount = baseMapper.selectCount(enterWrapper); enterCoilNoDuplicate = enterCount > 0; } @@ -2612,6 +2625,10 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { currentWrapper.eq(WmsMaterialCoil::getCurrentCoilNo, currentCoilNo) .eq(WmsMaterialCoil::getDelFlag, 0) .eq(WmsMaterialCoil::getDataType, 1); + // 如果是修改操作,排除自身 + if (coilId != null) { + currentWrapper.ne(WmsMaterialCoil::getCoilId, coilId); + } long currentCount = baseMapper.selectCount(currentWrapper); currentCoilNoDuplicate = currentCount > 0;