fix(wms): 解决已发货钢卷占用实际库区的问题
- 添加了对已发货钢卷的状态检查,防止其占用实际库区 - 实现了已发货钢卷释放旧库区的功能 - 优化了库区状态更新逻辑,增加了对-1标识的判断 - 在钢卷占用库区时添加了发货状态验证 refactor(da): 优化酸轧OEE月度任务初始化方式 - 将@PostConstruct替换为ApplicationRunner接口实现 - 添加@Async注解实现异步执行,避免阻塞项目启动 - 重构了启动时OEE汇总计算的执行时机和方式
This commit is contained in:
@@ -1167,6 +1167,13 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
throw new RuntimeException("历史钢卷不允许占用实际库区!");
|
||||
}
|
||||
}
|
||||
|
||||
// 2. 已发货的钢卷不能占用实际库区,给出提醒
|
||||
if (bo.getStatus() != null && bo.getStatus().equals(1)) {
|
||||
if (bo.getActualWarehouseId() != null && !bo.getActualWarehouseId().equals(-1L)) {
|
||||
throw new RuntimeException("已发货的钢卷不允许占用实际库区!");
|
||||
}
|
||||
}
|
||||
// 直接更新钢卷属性
|
||||
WmsMaterialCoil updateCoil = BeanUtil.toBean(bo, WmsMaterialCoil.class);
|
||||
validEntityBeforeSave(updateCoil);
|
||||
@@ -1188,8 +1195,14 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
|
||||
// 更新实际库区的启用状态
|
||||
if (flag) {
|
||||
// 只有当新的库区ID不为空且与原库区ID不同时才更新库区状态
|
||||
if (bo.getActualWarehouseId() != null && !bo.getActualWarehouseId().equals(oldCoil.getActualWarehouseId())) {
|
||||
// 已发货的钢卷不能占用实际库区,释放旧库区
|
||||
if (bo.getStatus() != null && bo.getStatus().equals(1)) {
|
||||
if (oldCoil.getActualWarehouseId() != null) {
|
||||
updateActualWarehouseEnableStatus(oldCoil.getActualWarehouseId(), null);
|
||||
}
|
||||
} else if (bo.getActualWarehouseId() != null && !bo.getActualWarehouseId().equals(-1L)
|
||||
&& !bo.getActualWarehouseId().equals(oldCoil.getActualWarehouseId())) {
|
||||
// 只有当新的库区ID不为空(且不为-1)且与原库区ID不同时才更新库区状态
|
||||
updateActualWarehouseEnableStatus(oldCoil.getActualWarehouseId(), bo.getActualWarehouseId());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user