fix(wms/material): 新增钢卷重量校验,防止超过100吨
在WmsMaterialCoilServiceImpl的多个方法中新增validateCoilWeight私有方法,用于校验钢卷毛重是否超过100吨。在校验失败时抛出运行时异常提示具体重量。此校验已应用于新增、修改、拆分、合并、移库、入库等涉及钢卷重量变更的操作中,确保数据有效性。
This commit is contained in:
@@ -1341,6 +1341,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
if (bo.getActualWarehouseId() != null) {
|
||||
validateActualWarehouseForAssign(bo.getActualWarehouseId(), null);
|
||||
}
|
||||
validateCoilWeight(bo.getGrossWeight());
|
||||
validEntityBeforeSave(add);
|
||||
// 在新增钢卷数据之前需要先看库区id是否被占用如果被占用则不能新增抛异常为实际库区已被占用 不能再当前库区修改或者新增
|
||||
int rows = baseMapper.insert(add);
|
||||
@@ -1544,6 +1545,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
throw new RuntimeException("已发货的钢卷不允许占用实际库区!");
|
||||
}
|
||||
}
|
||||
validateCoilWeight(bo.getGrossWeight());
|
||||
// 直接更新钢卷属性
|
||||
WmsMaterialCoil updateCoil = BeanUtil.toBean(bo, WmsMaterialCoil.class);
|
||||
validEntityBeforeSave(updateCoil);
|
||||
@@ -1651,6 +1653,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
newCoil.setSupplierCoilNo(oldCoil.getSupplierCoilNo());
|
||||
}
|
||||
|
||||
validateCoilWeight(newCoil.getGrossWeight());
|
||||
validEntityBeforeSave(newCoil);
|
||||
|
||||
// 把老记录的coilId赋值给新纪录的parentCoilId
|
||||
@@ -1909,6 +1912,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
// 在子卷的 parent_coil_nos 字段中记录母卷号
|
||||
newCoil.setParentCoilNos(oldCoil.getCurrentCoilNo());
|
||||
|
||||
validateCoilWeight(newCoil.getGrossWeight());
|
||||
// 为每个子钢卷生成独立二维码
|
||||
Long newQrcodeId = generateQrcodeForSplit(oldCoil, newCoilBo, allNewCoilNos);
|
||||
newCoil.setQrcodeRecordId(newQrcodeId);
|
||||
@@ -2039,6 +2043,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
}
|
||||
newCoil.setQrcodeRecordId(mergedQrcodeId);
|
||||
|
||||
validateCoilWeight(newCoil.getGrossWeight());
|
||||
validEntityBeforeSave(newCoil);
|
||||
// 收集所有参与合卷的原始钢卷ID并用逗号分隔
|
||||
List<Long> parentCoilIds = new ArrayList<>();
|
||||
@@ -2514,6 +2519,14 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
}
|
||||
|
||||
|
||||
private static final BigDecimal MAX_WEIGHT_TONS = new BigDecimal("100");
|
||||
|
||||
private void validateCoilWeight(BigDecimal grossWeight) {
|
||||
if (grossWeight != null && grossWeight.compareTo(MAX_WEIGHT_TONS) > 0) {
|
||||
throw new RuntimeException("钢卷重量不能超过100吨,当前重量:" + grossWeight + "吨");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
@@ -4869,6 +4882,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
childCoil.setQrcodeRecordId(childQrcodeId);
|
||||
|
||||
// 7. 校验并插入子钢卷
|
||||
validateCoilWeight(childCoil.getGrossWeight());
|
||||
validEntityBeforeSave(childCoil);
|
||||
childCoil.setParentCoilId(String.valueOf(parentCoilId));
|
||||
baseMapper.insert(childCoil);
|
||||
@@ -5141,6 +5155,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
newCoil.setCreateBy(LoginHelper.getUsername());
|
||||
newCoil.setUpdateBy(LoginHelper.getUsername());
|
||||
|
||||
validateCoilWeight(newCoil.getGrossWeight());
|
||||
validEntityBeforeSave(newCoil);
|
||||
boolean flag = baseMapper.insert(newCoil) > 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user