feat(wms): 添加钢卷长度厚度偏差自动告警功能
- 在IWmsMaterialWarningService接口中新增checkAndInsertWarnings方法定义 - 在WmsMaterialCoilServiceImpl中注入materialWarningService依赖 - 在钢卷新增、更新、拆分等操作后自动触发偏差检查和告警插入 - 实现doCheckAndInsertWarnings方法进行长度和厚度偏差计算 - 添加checkLength方法验证长度偏差是否超过10% - 添加checkThickness方法验证厚度偏差包括偏薄ERROR和偏厚WARNING - 实现批量插入告警记录并添加异常处理和日志记录
This commit is contained in:
@@ -78,6 +78,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
// private final WmsDeliveryPlanMapper deliveryPlanMapper;
|
||||
private final WmsProductMapper productMapper;
|
||||
private final WmsRawMaterialMapper rawMaterialMapper;
|
||||
private final IWmsMaterialWarningService materialWarningService;
|
||||
private final WmsDeliveryWaybillDetailMapper deliveryWaybillDetailMapper;
|
||||
private final WmsCoilWarehouseOperationLogMapper wmsCoilWarehouseOperationLogMapper;
|
||||
private final IWmsCoilAbnormalService coilAbnormalService;
|
||||
@@ -1521,6 +1522,9 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
throw new RuntimeException("新增钢卷失败");
|
||||
}
|
||||
|
||||
// 检查长度/厚度偏差并插入告警
|
||||
materialWarningService.checkAndInsertWarnings(add);
|
||||
|
||||
// 设置返回用的ID并更新二维码内容中的coilId
|
||||
bo.setCoilId(add.getCoilId());
|
||||
updateQrcodeCoilId(qrcodeRecordId, add.getCoilId());
|
||||
@@ -1732,6 +1736,10 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
updateWrapper.set(WmsMaterialCoil::getSaleId, (Long)null);
|
||||
baseMapper.update(null, updateWrapper);
|
||||
}
|
||||
|
||||
// 检查长度/厚度偏差并插入告警
|
||||
materialWarningService.checkAndInsertWarnings(updateCoil);
|
||||
|
||||
// 如果实际库区id为-1或状态为1,则清空钢卷上的实际库区绑定
|
||||
if ((bo.getActualWarehouseId() != null && bo.getActualWarehouseId().equals(-1L))
|
||||
|| (bo.getStatus() != null && bo.getStatus().equals(1))) {
|
||||
@@ -1839,6 +1847,9 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
throw new RuntimeException("创建新钢卷失败");
|
||||
}
|
||||
|
||||
// 检查长度/厚度偏差并插入告警
|
||||
materialWarningService.checkAndInsertWarnings(newCoil);
|
||||
|
||||
// 如果实际库区id为-1,则清空钢卷上的实际库区绑定
|
||||
if (bo.getActualWarehouseId() != null && bo.getActualWarehouseId().equals(-1L)) {
|
||||
clearActualWarehouseBinding(newCoil.getActualWarehouseId(), newCoil.getCoilId());
|
||||
@@ -2096,6 +2107,10 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
// 把老记录的coilId赋值给新纪录的parentCoilId
|
||||
newCoil.setParentCoilId(String.valueOf(oldCoil.getCoilId()));
|
||||
baseMapper.insert(newCoil);
|
||||
|
||||
// 检查长度/厚度偏差并插入告警
|
||||
materialWarningService.checkAndInsertWarnings(newCoil);
|
||||
|
||||
newCoils.add(newCoil);
|
||||
|
||||
// 更新二维码内容中的coilId
|
||||
@@ -2234,6 +2249,10 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
newCoil.setParentCoilId(parentCoilIdsStr);
|
||||
|
||||
baseMapper.insert(newCoil);
|
||||
|
||||
// 检查长度/厚度偏差并插入告警
|
||||
materialWarningService.checkAndInsertWarnings(newCoil);
|
||||
|
||||
newCoils.add(newCoil);
|
||||
|
||||
// 更新二维码内容中的coilId
|
||||
@@ -5085,6 +5104,9 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
childCoil.setParentCoilId(String.valueOf(parentCoilId));
|
||||
baseMapper.insert(childCoil);
|
||||
|
||||
// 检查长度/厚度偏差并插入告警
|
||||
materialWarningService.checkAndInsertWarnings(childCoil);
|
||||
|
||||
// 插入子钢卷的异常信息
|
||||
if (childCoilBo.getAbnormals() != null && !childCoilBo.getAbnormals().isEmpty()) {
|
||||
for (WmsCoilAbnormalBo abnormalBo : childCoilBo.getAbnormals()) {
|
||||
|
||||
Reference in New Issue
Block a user