From b59bb1789e5513c30f9ca9c6d8255a388a62b9a8 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Tue, 2 Jun 2026 11:48:44 +0800 Subject: [PATCH] =?UTF-8?q?fix(wms/coil):=20=E4=BF=AE=E5=A4=8D=E7=90=86?= =?UTF-8?q?=E8=AE=BA=E5=8E=9A=E5=BA=A6=E4=B8=8E=E9=95=BF=E5=BA=A6=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E4=B8=AD=E5=AE=BD=E5=BA=A6=E4=B8=BA=E9=9B=B6=E7=9A=84?= =?UTF-8?q?=E9=99=A4=E9=9B=B6=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在钢卷理论计算逻辑中,当实际宽度为零时,计算理论厚度和理论长度会导致除零异常。调整前,仅校验实际长度不为空;调整后,增加实际宽度大于零的校验,避免无效计算。同时修正理论厚度和理论长度的计算公式,统一使用乘1000替代除1000,确保计算精度和单位转换正确。 --- .../com/klp/service/impl/WmsMaterialCoilServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 f64ce531..8423c916 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 @@ -1089,15 +1089,15 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { BigDecimal volume = weight.multiply(new BigDecimal("1000")).divide(new BigDecimal("7.85"), 10, RoundingMode.HALF_UP); // 计算理论厚度(需要实测长度) - if (bo.getTheoreticalThickness() == null && bo.getActualLength() != null) { + if (bo.getTheoreticalThickness() == null && bo.getActualLength() != null && bo.getActualWidth().compareTo(BigDecimal.ZERO) > 0) { BigDecimal length = new BigDecimal(bo.getActualLength()); - BigDecimal theoreticalThickness = volume.divide(length, 10, RoundingMode.HALF_UP).divide(width, 3, RoundingMode.HALF_UP).divide(new BigDecimal("1000"), 3, RoundingMode.HALF_UP); + BigDecimal theoreticalThickness = volume.divide(length, 10, RoundingMode.HALF_UP).divide(width, 10, RoundingMode.HALF_UP).multiply(new BigDecimal("1000")); bo.setTheoreticalThickness(theoreticalThickness); } // 计算理论长度 if (bo.getTheoreticalLength() == null) { - BigDecimal theoreticalLength = volume.divide(thickness, 10, RoundingMode.HALF_UP).divide(width, 10, RoundingMode.HALF_UP).divide(new BigDecimal("1000"), 3, RoundingMode.HALF_UP); + BigDecimal theoreticalLength = volume.divide(thickness, 10, RoundingMode.HALF_UP).divide(width, 10, RoundingMode.HALF_UP).multiply(new BigDecimal("1000")); bo.setTheoreticalLength(theoreticalLength); } } catch (Exception e) {