From 11c1594169e4661f780db7cea0e4db0a84a89c38 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Wed, 27 May 2026 16:41:57 +0800 Subject: [PATCH] =?UTF-8?q?fix(wms/material):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E9=92=A2=E5=8D=B7=E9=87=8D=E9=87=8F=E6=A0=A1=E9=AA=8C=EF=BC=8C?= =?UTF-8?q?=E9=98=B2=E6=AD=A2=E8=B6=85=E8=BF=87100=E5=90=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在WmsMaterialCoilServiceImpl的多个方法中新增validateCoilWeight私有方法,用于校验钢卷毛重是否超过100吨。在校验失败时抛出运行时异常提示具体重量。此校验已应用于新增、修改、拆分、合并、移库、入库等涉及钢卷重量变更的操作中,确保数据有效性。 --- .../service/impl/WmsMaterialCoilServiceImpl.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index c6114e3e..23c7a254 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -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 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;