From d0849500902deedd4dce7b344cb6f9d35615ca8d Mon Sep 17 00:00:00 2001 From: wr <1754607820@qq.com> Date: Fri, 14 Mar 2025 16:32:47 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E7=B2=BE=E5=BA=A6=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DetectionServiceImpl.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/detection/src/main/java/com/njcn/gather/detection/service/impl/DetectionServiceImpl.java b/detection/src/main/java/com/njcn/gather/detection/service/impl/DetectionServiceImpl.java index 725726fc..a0e68960 100644 --- a/detection/src/main/java/com/njcn/gather/detection/service/impl/DetectionServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/detection/service/impl/DetectionServiceImpl.java @@ -1080,11 +1080,13 @@ public class DetectionServiceImpl { BigDecimal.valueOf(1.0 / data * (channelData + errSysDtl.getMaxErrorValue()))) ).collect(Collectors.toList()); if (CollUtil.isNotEmpty(qualifiedList)) { - Double a = qualifiedList.get(0) - (1.0 / data * (channelData - errSysDtl.getMaxErrorValue())); - detectionData.setErrorData(BigDecimal.valueOf(Math.abs(a))); + BigDecimal subtract = BigDecimal.valueOf(qualifiedList.get(0)) + .subtract(BigDecimal.valueOf(1.0 / data * (channelData - errSysDtl.getMaxErrorValue()))); + detectionData.setErrorData(subtract); } else { - Double a = list.get(0) - (1.0 / data * (channelData - errSysDtl.getMaxErrorValue())); - detectionData.setErrorData(BigDecimal.valueOf(Math.abs(a))); + BigDecimal subtract = BigDecimal.valueOf(list.get(0)) + .subtract(BigDecimal.valueOf(1.0 / data * (channelData - errSysDtl.getMaxErrorValue()))); + detectionData.setErrorData(subtract); } isData(dataRule, qualifiedList, detectionData, qualifiedList); } @@ -1142,18 +1144,19 @@ public class DetectionServiceImpl { * @return */ public BigDecimal devSubtractChannelData(Double devData, Double channelData, Integer errorValueType) { - if (devData - channelData != 0) { + BigDecimal subtract = BigDecimal.valueOf(devData).subtract(BigDecimal.valueOf(channelData)); + if (subtract.doubleValue() != 0) { switch (errorValueType) { case 2: //下发的谐波电压幅值,返回的是谐波电压含有率,拿(含有率值*基波 - 源下发对应谐波值幅值)/下发的幅值 - return BigDecimal.valueOf(devData - channelData) + return subtract .divide(BigDecimal.valueOf(channelData), 4, RoundingMode.HALF_UP); case 3: //下发的谐波电压幅值,返回的是谐波电压含有率,拿(含有率值*基波 - 源下发对应谐波值幅值)/装置返回值 - return BigDecimal.valueOf(devData - channelData) + return subtract .divide(BigDecimal.valueOf(devData), 4, RoundingMode.HALF_UP); } - return BigDecimal.valueOf(devData - channelData); + return subtract; } return BigDecimal.valueOf(0); }