算法数据验证

This commit is contained in:
wr
2024-02-22 13:33:37 +08:00
parent 995a267ea7
commit 32b736e651

View File

@@ -1,5 +1,6 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.area; 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.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
@@ -300,16 +301,22 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ
eq("voltage_type",k1). eq("voltage_type",k1).
between("data_date",begin,end); between("data_date",begin,end);
List<RStatHarmonicVoltageDPO> list = rStatHarmonicVoltageDPOService.list(harmonicVoltageDPOQueryWrapper); List<RStatHarmonicVoltageDPO> list = rStatHarmonicVoltageDPOService.list(harmonicVoltageDPOQueryWrapper);
double asDouble = list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).average().getAsDouble(); Double asDouble = 0.0;
asDouble = BigDecimal.valueOf(asDouble).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 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); 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); rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAccrued(asDouble1);
int sum = list.stream().mapToInt(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).sum();
rStatHarmonicVoltageMPO.setOverDay(sum); rStatHarmonicVoltageMPO.setOverDay(sum);
if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) { if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
//todo为0时如何设值 //todo为0时如何设值
rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAverage(0.00); rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAverage(0.00);
@@ -378,16 +385,24 @@ public class RStatHarmonicVoltageServiceImpl implements RStatHarmonicVoltageServ
eq("voltage_type",k1). eq("voltage_type",k1).
between("data_date",begin,end); between("data_date",begin,end);
List<RStatHarmonicVoltageDPO> list = rStatHarmonicVoltageDPOService.list(harmonicVoltageDPOQueryWrapper); List<RStatHarmonicVoltageDPO> list = rStatHarmonicVoltageDPOService.list(harmonicVoltageDPOQueryWrapper);
double asDouble = list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).average().getAsDouble(); Double asDouble = 0.0;
asDouble = BigDecimal.valueOf(asDouble).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 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); rStatHarmonicVoltageMPO.setOverLimitMeasurementAverage(asDouble);
double asDouble1 = list.stream().mapToDouble(RStatHarmonicVoltageDPO::getOverLimitMeasurementRatioAverage).average().getAsDouble(); rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAccrued(asDouble1);
asDouble1 = BigDecimal.valueOf(asDouble1).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAccrued(asDouble);
int sum = list.stream().mapToInt(RStatHarmonicVoltageDPO::getOverLimitMeasurementAverage).sum();
rStatHarmonicVoltageMPO.setOverDay(sum); rStatHarmonicVoltageMPO.setOverDay(sum);
if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) { if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
//todo为0时如何设值 //todo为0时如何设值
rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAverage(0.00); rStatHarmonicVoltageMPO.setOverLimitMeasurementRatioAverage(0.00);