From 63813ba130fbf87150397036347e614d7d172ad6 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Tue, 25 Nov 2025 16:10:01 +0800 Subject: [PATCH] =?UTF-8?q?fix(wms):=20=E4=BC=98=E5=8C=96=E5=BA=93?= =?UTF-8?q?=E5=8C=BA=E5=90=AF=E7=94=A8=E7=8A=B6=E6=80=81=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 当物料状态为1时,主动启用关联的实际库区 - 仅在新库区ID不为空且与原库区ID不同时更新库区状态 - 避免不必要的库区状态更新操作 --- .../impl/WmsMaterialCoilServiceImpl.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 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 911a6813..1b857154 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 @@ -562,10 +562,19 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { // 使用MyBatis-Plus的updateById方法直接更新 boolean flag = baseMapper.updateById(updateCoil) > 0; + if (bo.getStatus().equals(1)) { + WmsActualWarehouseBo disableWarehouseBo = new WmsActualWarehouseBo(); + disableWarehouseBo.setActualWarehouseId(oldCoil.getActualWarehouseId()); + disableWarehouseBo.setIsEnabled(1); // 设置为启用状态 + actualWarehouseService.updateByBo(disableWarehouseBo); + } // 更新实际库区的启用状态 if (flag) { - updateActualWarehouseEnableStatus(oldCoil.getActualWarehouseId(), bo.getActualWarehouseId()); + // 只有当新的库区ID不为空且与原库区ID不同时才更新库区状态 + if (bo.getActualWarehouseId() != null && !bo.getActualWarehouseId().equals(oldCoil.getActualWarehouseId())) { + updateActualWarehouseEnableStatus(oldCoil.getActualWarehouseId(), bo.getActualWarehouseId()); + } } return flag; @@ -612,8 +621,10 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { updateQrcodeContentForNormalUpdate(oldCoil, bo, newCoil.getCoilId()); } - // 4. 更新实际库区的启用状态 - updateActualWarehouseEnableStatus(oldCoil.getActualWarehouseId(), bo.getActualWarehouseId()); + // 只有当新的库区ID不为空且与原库区ID不同时才更新库区状态 + if (bo.getActualWarehouseId() != null && !bo.getActualWarehouseId().equals(oldCoil.getActualWarehouseId())) { + updateActualWarehouseEnableStatus(oldCoil.getActualWarehouseId(), bo.getActualWarehouseId()); + } } return flag;