From baf58c9658e7c12c13b20bf0ef6c9e032103f61d Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Wed, 14 Jan 2026 11:26:49 +0800 Subject: [PATCH] =?UTF-8?q?refactor(WmsMaterialCoil):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=AE=9E=E9=99=85=E5=BA=93=E5=8C=BA=E7=BB=91=E5=AE=9A=E6=B8=85?= =?UTF-8?q?=E7=A9=BA=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在WmsMaterialCoilMapper.xml中添加export_by字段到查询结果 - 提取清空实际库区绑定逻辑为独立方法clearActualWarehouseBinding - 合并重复的实际库区清空条件判断逻辑 - 简化状态为1或实际库区id为-1时的处理流程 - 添加方法注释说明实际库区绑定清空功能 --- .../impl/WmsMaterialCoilServiceImpl.java | 62 ++++++++----------- .../mapper/klp/WmsMaterialCoilMapper.xml | 1 + 2 files changed, 28 insertions(+), 35 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 b9ee9134..a5376a71 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 @@ -918,30 +918,10 @@ 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(-1L)) { - 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()); - 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); + // 如果实际库区id为-1或状态为1,则清空钢卷上的实际库区绑定 + if ((bo.getActualWarehouseId() != null && bo.getActualWarehouseId().equals(-1L)) + || (bo.getStatus() != null && bo.getStatus().equals(1))) { + clearActualWarehouseBinding(oldCoil.getActualWarehouseId(), bo.getCoilId()); } // 更新实际库区的启用状态 @@ -984,18 +964,9 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { newCoil.setDataType(1); // 设置为当前数据 newCoil.setQrcodeRecordId(oldCoil.getQrcodeRecordId()); // 继续使用原二维码 - // 如果实际库区id为-1,则将实际库区id设置为null + // 如果实际库区id为-1,则清空钢卷上的实际库区绑定 if (bo.getActualWarehouseId() != null && bo.getActualWarehouseId().equals(-1L)) { - 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); + clearActualWarehouseBinding(oldCoil.getActualWarehouseId(), bo.getCoilId()); } // 继承原记录的关键字段 @@ -1053,6 +1024,27 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { } } + /** + * 清空钢卷上的实际库区绑定 + * @param actualWarehouseId 实际库区ID + * @param coilId 钢卷ID + */ + private void clearActualWarehouseBinding(Long actualWarehouseId, Long coilId) { + // 启用原来的库区 + if (actualWarehouseId != null) { + WmsActualWarehouseBo warehouseBo = new WmsActualWarehouseBo(); + warehouseBo.setActualWarehouseId(actualWarehouseId); + warehouseBo.setIsEnabled(1); // 设置为启用状态 + actualWarehouseService.updateByBo(warehouseBo); + } + + // 清空钢卷上的实际库区绑定 + LambdaUpdateWrapper clearAwWrapper = new LambdaUpdateWrapper<>(); + clearAwWrapper.eq(WmsMaterialCoil::getCoilId, coilId); + clearAwWrapper.set(WmsMaterialCoil::getActualWarehouseId, (Long) null); + baseMapper.update(null, clearAwWrapper); + } + /** * 生成二维码(更新时库区变化) diff --git a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml index 69c2f123..d74429fe 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml @@ -68,6 +68,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT mc.coil_id, mc.export_time, + mc.export_by, mc.enter_coil_no, mc.current_coil_no, mc.supplier_coil_no,