From 20966157c585d1610b0d5d9a24ab4d401672192c Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Mon, 8 Jun 2026 18:02:52 +0800 Subject: [PATCH] =?UTF-8?q?fix(wms):=20=E4=BF=AE=E6=AD=A3=E6=9D=90?= =?UTF-8?q?=E6=96=99=E9=A2=84=E8=AD=A6=E6=9C=8D=E5=8A=A1=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E6=95=B0=E5=80=BC=E7=B2=BE=E5=BA=A6=E8=AE=A1=E7=AE=97=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 为理论值、实际值、允许偏差和偏差值设置统一的3位小数精度 - 将偏差率计算精度从4位小数调整为1位小数 - 修正厚度偏差计算公式中的减法运算顺序 - 在警告消息中应用相同的数值精度格式化 - 确保所有BigDecimal运算都使用HALF_UP舍入模式 --- .../impl/WmsMaterialWarningServiceImpl.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialWarningServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialWarningServiceImpl.java index 1d28d9fc..e4c92449 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialWarningServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialWarningServiceImpl.java @@ -201,13 +201,13 @@ public class WmsMaterialWarningServiceImpl implements IWmsMaterialWarningService WmsMaterialWarning warning = new WmsMaterialWarning(); warning.setCoilId(coil.getCoilId()); warning.setWarningType("LENGTH"); - warning.setTheoreticalVal(theoreticalLength); - warning.setActualVal(actual); - warning.setAllowDeviation(threshold); - warning.setDeviationValue(actual.subtract(theoreticalLength)); - warning.setDeviationRate(rate.multiply(new BigDecimal("100")).setScale(4, RoundingMode.HALF_UP)); + warning.setTheoreticalVal(theoreticalLength.setScale(3, RoundingMode.HALF_UP)); + warning.setActualVal(actual.setScale(3, RoundingMode.HALF_UP)); + warning.setAllowDeviation(threshold.setScale(3, RoundingMode.HALF_UP)); + warning.setDeviationValue(actual.subtract(theoreticalLength).setScale(3, RoundingMode.HALF_UP)); + warning.setDeviationRate(rate.multiply(new BigDecimal("100")).setScale(1, RoundingMode.HALF_UP)); warning.setWarningLevel("WARNING"); - warning.setWarningMsg("钢卷长度偏差超过阈值,理论长度=" + theoreticalLength + "m,实测长度=" + actualLength + "mm"); + warning.setWarningMsg("钢卷长度偏差超过阈值,理论长度=" + theoreticalLength.setScale(3, RoundingMode.HALF_UP) + "m,实测长度=" + actualLength + "mm"); warning.setWarningStatus(0); warnings.add(warning); } @@ -243,15 +243,15 @@ public class WmsMaterialWarningServiceImpl implements IWmsMaterialWarningService WmsMaterialWarning warning = new WmsMaterialWarning(); warning.setCoilId(coil.getCoilId()); warning.setWarningType("THICKNESS"); - warning.setTheoreticalVal(theoreticalThickness); - warning.setActualVal(specThickness); - warning.setAllowDeviation(threshold); - warning.setDeviationValue(specThickness.subtract(theoreticalThickness)); + warning.setTheoreticalVal(theoreticalThickness.setScale(3, RoundingMode.HALF_UP)); + warning.setActualVal(specThickness.setScale(3, RoundingMode.HALF_UP)); + warning.setAllowDeviation(threshold.setScale(3, RoundingMode.HALF_UP)); + warning.setDeviationValue(theoreticalThickness.subtract(specThickness).setScale(3, RoundingMode.HALF_UP)); BigDecimal rate = diff.divide(specThickness, 10, RoundingMode.HALF_UP) - .multiply(new BigDecimal("100")).setScale(4, RoundingMode.HALF_UP); + .multiply(new BigDecimal("100")).setScale(1, RoundingMode.HALF_UP); warning.setDeviationRate(rate); warning.setWarningLevel("WARNING"); - warning.setWarningMsg("钢卷厚度偏差超出允许范围,理论厚度=" + theoreticalThickness + "mm,规格厚度=" + specThickness + "mm"); + warning.setWarningMsg("钢卷厚度偏差超出允许范围,理论厚度=" + theoreticalThickness.setScale(3, RoundingMode.HALF_UP) + "mm,规格厚度=" + specThickness.setScale(3, RoundingMode.HALF_UP) + "mm"); warning.setWarningStatus(0); warnings.add(warning); }