fix(wms): 修复钢卷库区绑定清理逻辑

- 移除注释掉的库区绑定清理代码
- 将库区绑定清理逻辑移到新记录插入后执行
- 添加对实际库区ID为-1的条件判断避免无效操作
- 修复clearActualWarehouseBinding方法中的空指针检查逻辑
This commit is contained in:
2026-03-06 11:17:30 +08:00
parent 7bb102a17f
commit 1f6b3a9ace

View File

@@ -1194,11 +1194,6 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
newCoil.setDataType(1); // 设置为当前数据
newCoil.setQrcodeRecordId(oldCoil.getQrcodeRecordId()); // 继续使用原二维码
// // 如果实际库区id为-1则清空钢卷上的实际库区绑定
// if (bo.getActualWarehouseId() != null && bo.getActualWarehouseId().equals(-1L)) {
// clearActualWarehouseBinding(oldCoil.getActualWarehouseId(), bo.getCoilId());
// }
// 继承原记录的关键字段
if (newCoil.getEnterCoilNo() == null) {
newCoil.setEnterCoilNo(oldCoil.getEnterCoilNo());
@@ -1214,6 +1209,11 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
// 插入新记录
boolean flag = baseMapper.insert(newCoil) > 0;
// 如果实际库区id为-1则清空钢卷上的实际库区绑定
if (bo.getActualWarehouseId() != null && bo.getActualWarehouseId().equals(-1L)) {
clearActualWarehouseBinding(newCoil.getActualWarehouseId(), newCoil.getCoilId());
}
if (flag) {
// 3. 更新二维码内容添加更新步骤并更新current_coil_id
if (oldCoil.getQrcodeRecordId() != null) {
@@ -1266,7 +1266,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
}
// 禁用新的库区
if (newActualWarehouseId != null) {
if (newActualWarehouseId != null && newActualWarehouseId != -1L) {
WmsActualWarehouseBo newWarehouseBo = new WmsActualWarehouseBo();
newWarehouseBo.setActualWarehouseId(newActualWarehouseId);
newWarehouseBo.setIsEnabled(0); // 设置为禁用状态
@@ -1281,7 +1281,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
*/
private void clearActualWarehouseBinding(Long actualWarehouseId, Long coilId) {
// 启用原来的库区
if (actualWarehouseId != null) {
if (actualWarehouseId != null && actualWarehouseId != -1L) {
WmsActualWarehouseBo warehouseBo = new WmsActualWarehouseBo();
warehouseBo.setActualWarehouseId(actualWarehouseId);
warehouseBo.setIsEnabled(1); // 设置为启用状态