feat(wms): 钢卷加工时添加异常信息

- 在 WmsMaterialCoilBo 中新增 abnormals 字段用于存储钢卷异常信息列表
- 注入 IWmsCoilAbnormalService 服务用于处理异常信息插入操作
- 在更新钢卷时同步插入关联的异常信息记录
- 在分卷操作中为子钢卷插入对应的异常信息
- 在合卷操作中为新钢卷插入合并的异常信息
- 在创建子钢卷时同时插入其异常信息记录
This commit is contained in:
2026-03-19 11:52:35 +08:00
parent 7f35c77590
commit 2a4fc70b72
2 changed files with 40 additions and 0 deletions

View File

@@ -314,5 +314,10 @@ public class WmsMaterialCoilBo extends BaseEntity {
* 操作记录ID列表逗号分隔用于根据actionIds查询钢卷
*/
private String actionIds;
/**
* 钢卷异常信息列表(用于更新钢卷时同时插入异常信息)
*/
private List<WmsCoilAbnormalBo> abnormals;
}

View File

@@ -42,6 +42,7 @@ import com.klp.service.IWmsRawMaterialService;
import com.klp.service.IWmsBomItemService;
import com.klp.service.IWmsCoilPendingActionService;
import com.klp.service.IWmsProductService;
import com.klp.service.IWmsCoilAbnormalService;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.*;
@@ -78,6 +79,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
// private final WmsRawMaterialMapper rawMaterialMapper;
private final WmsDeliveryWaybillDetailMapper deliveryWaybillDetailMapper;
private final WmsCoilWarehouseOperationLogMapper wmsCoilWarehouseOperationLogMapper;
private final IWmsCoilAbnormalService coilAbnormalService;
/**
* 查询钢卷物料表
@@ -1323,6 +1325,14 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
// 有新库区,算入库
recordWarehouseOperationLog(newCoil.getCoilId(), newActualWarehouseId, 2, 1, "单个更新-加工入库");
}
// 插入钢卷异常信息
if (bo.getAbnormals() != null && !bo.getAbnormals().isEmpty()) {
for (WmsCoilAbnormalBo abnormalBo : bo.getAbnormals()) {
abnormalBo.setCoilId(newCoil.getCoilId());
coilAbnormalService.insertByBo(abnormalBo);
}
}
}
return flag;
@@ -1536,6 +1546,14 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
// 更新实际库区的启用状态
updateActualWarehouseEnableStatus(oldCoil.getActualWarehouseId(), newCoilBo.getActualWarehouseId());
// 插入子钢卷的异常信息
if (newCoilBo.getAbnormals() != null && !newCoilBo.getAbnormals().isEmpty()) {
for (WmsCoilAbnormalBo abnormalBo : newCoilBo.getAbnormals()) {
abnormalBo.setCoilId(newCoil.getCoilId());
coilAbnormalService.insertByBo(abnormalBo);
}
}
}
// 更新所有子钢卷二维码中的分卷步骤child_coil_ids
List<Long> newCoilIds = newCoils.stream()
@@ -1682,6 +1700,15 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
if (mergeNewActualWarehouseId != null && mergeNewActualWarehouseId != -1L) {
recordWarehouseOperationLog(newCoil.getCoilId(), mergeNewActualWarehouseId, 2, 1, "合卷操作-加工入库");
}
// 插入合卷钢卷的异常信息
if (bo.getAbnormals() != null && !bo.getAbnormals().isEmpty()) {
for (WmsCoilAbnormalBo abnormalBo : bo.getAbnormals()) {
abnormalBo.setCoilId(newCoil.getCoilId());
coilAbnormalService.insertByBo(abnormalBo);
}
}
// 合卷完成后设置新钢卷ID到bo对象中方便外部获取
bo.setMergedCoilId(newCoil.getCoilId());
}
@@ -4130,6 +4157,14 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
childCoil.setParentCoilId(String.valueOf(parentCoilId));
baseMapper.insert(childCoil);
// 插入子钢卷的异常信息
if (childCoilBo.getAbnormals() != null && !childCoilBo.getAbnormals().isEmpty()) {
for (WmsCoilAbnormalBo abnormalBo : childCoilBo.getAbnormals()) {
abnormalBo.setCoilId(childCoil.getCoilId());
coilAbnormalService.insertByBo(abnormalBo);
}
}
updateActualWarehouseEnableStatus(null, childCoilBo.getActualWarehouseId());
// 8. 更新二维码中的coilId