fix(wms): 解决实际库区ID为-1时的数据同步问题
- 添加实际库区ID为-1的判断条件并设置为null - 更新对应库区为启用状态确保数据一致性 - 清空钢卷上残留的实际库区绑定避免数据错误 - 修复库区状态更新逻辑中的潜在数据同步问题
This commit is contained in:
@@ -915,6 +915,19 @@ 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(-1)) {
|
||||
WmsActualWarehouseBo disableWarehouseBo = new WmsActualWarehouseBo();
|
||||
disableWarehouseBo.setActualWarehouseId(oldCoil.getActualWarehouseId());
|
||||
disableWarehouseBo.setIsEnabled(1); // 设置为启用状态
|
||||
actualWarehouseService.updateByBo(disableWarehouseBo);
|
||||
|
||||
// 同步清空钢卷上的实际库区绑定,避免残留绑定
|
||||
LambdaUpdateWrapper<WmsMaterialCoil> 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());
|
||||
@@ -968,6 +981,20 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
newCoil.setDataType(1); // 设置为当前数据
|
||||
newCoil.setQrcodeRecordId(oldCoil.getQrcodeRecordId()); // 继续使用原二维码
|
||||
|
||||
// 如果实际库区id为-1,则将实际库区id设置为null
|
||||
if (bo.getActualWarehouseId() != null && bo.getActualWarehouseId().equals(-1)) {
|
||||
WmsActualWarehouseBo disableWarehouseBo = new WmsActualWarehouseBo();
|
||||
disableWarehouseBo.setActualWarehouseId(oldCoil.getActualWarehouseId());
|
||||
disableWarehouseBo.setIsEnabled(1); // 设置为启用状态
|
||||
actualWarehouseService.updateByBo(disableWarehouseBo);
|
||||
|
||||
// 同步清空钢卷上的实际库区绑定,避免残留绑定
|
||||
LambdaUpdateWrapper<WmsMaterialCoil> clearAwWrapper = new LambdaUpdateWrapper<>();
|
||||
clearAwWrapper.eq(WmsMaterialCoil::getCoilId, bo.getCoilId());
|
||||
clearAwWrapper.set(WmsMaterialCoil::getActualWarehouseId, (Long) null);
|
||||
baseMapper.update(null, clearAwWrapper);
|
||||
}
|
||||
|
||||
// 继承原记录的关键字段
|
||||
if (newCoil.getEnterCoilNo() == null) {
|
||||
newCoil.setEnterCoilNo(oldCoil.getEnterCoilNo());
|
||||
|
||||
Reference in New Issue
Block a user