From f0a4b9ffc5664c1f7c180cded610b1dd1d348326 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Wed, 14 Jan 2026 08:31:52 +0800 Subject: [PATCH] =?UTF-8?q?fix(wms):=20=E8=A7=A3=E5=86=B3=E5=AE=9E?= =?UTF-8?q?=E9=99=85=E5=BA=93=E5=8C=BAID=E4=B8=BA-1=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=90=8C=E6=AD=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加实际库区ID为-1的判断条件并设置为null - 更新对应库区为启用状态确保数据一致性 - 清空钢卷上残留的实际库区绑定避免数据错误 - 修复库区状态更新逻辑中的潜在数据同步问题 --- .../impl/WmsMaterialCoilServiceImpl.java | 27 +++++++++++++++++++ 1 file changed, 27 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 62295b60..067aa0d4 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 @@ -915,6 +915,19 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { updateWrapper.set(WmsMaterialCoil::getSaleId, (Long)null); baseMapper.update(null, updateWrapper); } + // 如果实际库区id为-1,则将实际库区id设置为null + if (bo.getActualWarehouseId() != null && bo.getActualWarehouseId().equals(-1)) { + WmsActualWarehouseBo disableWarehouseBo = new WmsActualWarehouseBo(); + disableWarehouseBo.setActualWarehouseId(oldCoil.getActualWarehouseId()); + disableWarehouseBo.setIsEnabled(1); // 设置为启用状态 + actualWarehouseService.updateByBo(disableWarehouseBo); + + // 同步清空钢卷上的实际库区绑定,避免残留绑定 + LambdaUpdateWrapper clearAwWrapper = new LambdaUpdateWrapper<>(); + clearAwWrapper.eq(WmsMaterialCoil::getCoilId, bo.getCoilId()); + clearAwWrapper.set(WmsMaterialCoil::getActualWarehouseId, (Long) null); + baseMapper.update(null, clearAwWrapper); + } if (bo.getStatus() != null && bo.getStatus().equals(1)) { WmsActualWarehouseBo disableWarehouseBo = new WmsActualWarehouseBo(); disableWarehouseBo.setActualWarehouseId(oldCoil.getActualWarehouseId()); @@ -968,6 +981,20 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { newCoil.setDataType(1); // 设置为当前数据 newCoil.setQrcodeRecordId(oldCoil.getQrcodeRecordId()); // 继续使用原二维码 + // 如果实际库区id为-1,则将实际库区id设置为null + if (bo.getActualWarehouseId() != null && bo.getActualWarehouseId().equals(-1)) { + WmsActualWarehouseBo disableWarehouseBo = new WmsActualWarehouseBo(); + disableWarehouseBo.setActualWarehouseId(oldCoil.getActualWarehouseId()); + disableWarehouseBo.setIsEnabled(1); // 设置为启用状态 + actualWarehouseService.updateByBo(disableWarehouseBo); + + // 同步清空钢卷上的实际库区绑定,避免残留绑定 + LambdaUpdateWrapper clearAwWrapper = new LambdaUpdateWrapper<>(); + clearAwWrapper.eq(WmsMaterialCoil::getCoilId, bo.getCoilId()); + clearAwWrapper.set(WmsMaterialCoil::getActualWarehouseId, (Long) null); + baseMapper.update(null, clearAwWrapper); + } + // 继承原记录的关键字段 if (newCoil.getEnterCoilNo() == null) { newCoil.setEnterCoilNo(oldCoil.getEnterCoilNo());