fix(wms): 优化库区启用状态更新逻辑

- 当物料状态为1时,主动启用关联的实际库区
- 仅在新库区ID不为空且与原库区ID不同时更新库区状态
- 避免不必要的库区状态更新操作
This commit is contained in:
2025-11-25 16:10:01 +08:00
parent c23a0380e0
commit 63813ba130

View File

@@ -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;