diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicVoltageServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicVoltageServiceImpl.java index 8c09c3630..278f4fed0 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicVoltageServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicVoltageServiceImpl.java @@ -1,5 +1,6 @@ package com.njcn.prepare.harmonic.service.mysql.Impl.area; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateTime; @@ -300,16 +301,22 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ eq("voltage_type",k1). between("data_date",begin,end); List list = rStatHarmonicVoltageDPOService.list(harmonicVoltageDPOQueryWrapper); - double asDouble = list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).average().getAsDouble(); - asDouble = BigDecimal.valueOf(asDouble).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + Double asDouble = 0.0; + Double asDouble1 = 0.0; + Integer sum = 0; + if(CollUtil.isNotEmpty(list)){ + asDouble= BigDecimal.valueOf(list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage) + .average().getAsDouble()) + .setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + asDouble1 = BigDecimal.valueOf(list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementRatioAverage) + .average().getAsDouble()) + .setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + sum = list.stream().mapToInt(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).sum(); + } rStatHarmonicVoltageMPO.setOverLimitMeasurementAverage(asDouble); - double asDouble1 = list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementRatioAverage).average().getAsDouble(); - asDouble1 = BigDecimal.valueOf(asDouble1).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAccrued(asDouble1); - int sum = list.stream().mapToInt(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).sum(); rStatHarmonicVoltageMPO.setOverDay(sum); - if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) { //todo为0时如何设值 rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAverage(0.00); @@ -378,16 +385,24 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ eq("voltage_type",k1). between("data_date",begin,end); List list = rStatHarmonicVoltageDPOService.list(harmonicVoltageDPOQueryWrapper); - double asDouble = list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).average().getAsDouble(); - asDouble = BigDecimal.valueOf(asDouble).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + Double asDouble = 0.0; + Double asDouble1 = 0.0; + Integer sum = 0; + if(CollUtil.isNotEmpty(list)){ + asDouble= BigDecimal.valueOf(list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage) + .average().getAsDouble()) + .setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + asDouble1 = BigDecimal.valueOf(list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementRatioAverage) + .average().getAsDouble()) + .setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + sum = list.stream().mapToInt(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).sum(); + } rStatHarmonicVoltageMPO.setOverLimitMeasurementAverage(asDouble); - double asDouble1 = list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementRatioAverage).average().getAsDouble(); - asDouble1 = BigDecimal.valueOf(asDouble1).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAccrued(asDouble); - int sum = list.stream().mapToInt(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).sum(); + rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAccrued(asDouble1); rStatHarmonicVoltageMPO.setOverDay(sum); + if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) { //todo为0时如何设值 rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAverage(0.00);