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,