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 de297afa..717e8434 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 @@ -623,11 +623,11 @@ public class DetectionServiceImpl { Map errSysDtlMap = new LinkedHashMap<>(); issueHarmMap.forEach((key, value) -> { //获得误差体系 - List errSysDtls = pqErrSysDtls.stream().filter(x -> rangeComparison(x.getStartValue(), + List errSysDtls = pqErrSysDtls.stream().filter(x -> rangeComparison(multiply(x.getStartValue(), fData, x.getConditionType()), x.getStartFlag(), - x.getEndValue(), + multiply(x.getEndValue(), fData, x.getConditionType()), x.getEndFlag(), - divide(value - fData, fData).doubleValue())).collect(Collectors.toList()); + value)).collect(Collectors.toList()); if (CollUtil.isNotEmpty(errSysDtls)) { errSysDtlMap.put(key, errSysDtls.get(0)); } else { @@ -860,17 +860,17 @@ public class DetectionServiceImpl { switch (errorValueType) { case 2: return BigDecimal.valueOf(devData - channelData) - .divide(BigDecimal.valueOf(devData), 7, RoundingMode.HALF_UP); + .divide(BigDecimal.valueOf(devData), 4, RoundingMode.HALF_UP); case 3: return BigDecimal.valueOf(devData - channelData) - .divide(BigDecimal.valueOf(channelData), 7, RoundingMode.HALF_UP); + .divide(BigDecimal.valueOf(channelData), 4, RoundingMode.HALF_UP); } return BigDecimal.valueOf(devData - channelData); } public BigDecimal divide(Double devData, Double channelData) { return BigDecimal.valueOf(devData) - .divide(BigDecimal.valueOf(channelData), 7, RoundingMode.HALF_UP); + .divide(BigDecimal.valueOf(channelData), 4, RoundingMode.HALF_UP); } @@ -878,7 +878,7 @@ public class DetectionServiceImpl { if (ObjectUtil.isNotNull(type)) { if (0 == type) { return BigDecimal.valueOf(devData).multiply(BigDecimal.valueOf(channelData)) - .setScale(7, RoundingMode.HALF_UP).doubleValue(); + .setScale(4, RoundingMode.HALF_UP).doubleValue(); } else { if (ObjectUtil.isNotNull(devData)) { return BigDecimal.valueOf(devData).doubleValue(); @@ -893,8 +893,9 @@ public class DetectionServiceImpl { } public Double multiply(String devData, String channelData) { - return BigDecimal.valueOf(Double.valueOf(devData)).multiply(BigDecimal.valueOf(Double.valueOf(channelData))) - .setScale(7, RoundingMode.HALF_UP).doubleValue(); + BigDecimal volValue = new BigDecimal(devData); + BigDecimal result = volValue.multiply(new BigDecimal(channelData).setScale(4, RoundingMode.HALF_UP)); + return result.doubleValue(); } /**