处理日表数据为null时,月表计算空指针的问题

This commit is contained in:
2023-12-05 17:03:18 +08:00
parent 6bb0fbad75
commit 09bfde0103

View File

@@ -180,7 +180,7 @@ public class RStatHarmonicOrgServiceImpl implements RStatHarmonicOrgService {
if(CollectionUtils.isEmpty(rStatOrgMPOS)){ if(CollectionUtils.isEmpty(rStatOrgMPOS)){
sumEffectiveMeasurement=0; sumEffectiveMeasurement=0;
}else { }else {
sumEffectiveMeasurement = rStatOrgMPOS.stream().mapToInt(RStatOrgMPO::getEffectiveMeasurementAccrued).sum(); sumEffectiveMeasurement = rStatOrgMPOS.stream().mapToInt(o->Objects.isNull(o.getEffectiveMeasurementAccrued())?0:o.getEffectiveMeasurementAccrued()).sum();
} }
int finalSumEffectiveMeasurement = sumEffectiveMeasurement; int finalSumEffectiveMeasurement = sumEffectiveMeasurement;
dataTypeMap.forEach((k, v)->{ dataTypeMap.forEach((k, v)->{
@@ -194,19 +194,17 @@ public class RStatHarmonicOrgServiceImpl implements RStatHarmonicOrgService {
eq("data_type",v.getId()). eq("data_type",v.getId()).
between("data_date",begin,end); between("data_date",begin,end);
List<RStatHarmonicMPO> rStatHarmonicMPOS = rStatHarmonicMPOMapper.selectList(queryWrapper); List<RStatHarmonicMPO> rStatHarmonicMPOS = rStatHarmonicMPOMapper.selectList(queryWrapper);
Double overLimitMeasurementAverage =0.00; double overLimitMeasurementAverage =0.00;
int overDay =0; int overDay =0;
int overLimitMeasurementAccrued=0; int overLimitMeasurementAccrued=0;
Double overLimitMeasurementRatioAverage=0.00; double overLimitMeasurementRatioAverage=0.00;
Double overLimitMeasurementRatioAccrued=0.00; double overLimitMeasurementRatioAccrued=0.00;
if(!CollectionUtils.isEmpty(rStatHarmonicMPOS)){ if(!CollectionUtils.isEmpty(rStatHarmonicMPOS)){
overDay = rStatHarmonicMPOS.stream().mapToInt(o->Objects.isNull(o.getOverDay())?0:o.getOverDay()).sum();
overDay = rStatHarmonicMPOS.stream().mapToInt(RStatHarmonicMPO::getOverDay).sum(); overLimitMeasurementAccrued = rStatHarmonicMPOS.stream().mapToInt(o->Objects.isNull(o.getOverLimitMeasurementAccrued())?0:o.getOverLimitMeasurementAccrued()).sum();
overLimitMeasurementAccrued = rStatHarmonicMPOS.stream().mapToInt(RStatHarmonicMPO::getOverLimitMeasurementAccrued).sum(); double asDouble = rStatHarmonicMPOS.stream().mapToDouble(o->Objects.isNull(o.getOverLimitMeasurementAverage())?0.0:o.getOverLimitMeasurementAverage()).average().getAsDouble();
double asDouble = rStatHarmonicMPOS.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementAverage).average().getAsDouble();
overLimitMeasurementAverage = Double.parseDouble(df.format(asDouble)); overLimitMeasurementAverage = Double.parseDouble(df.format(asDouble));
double asDouble1 = rStatHarmonicMPOS.stream().mapToDouble(RStatHarmonicMPO::getOverLimitMeasurementRatioAverage).average().getAsDouble(); double asDouble1 = rStatHarmonicMPOS.stream().mapToDouble(o->Objects.isNull(o.getOverLimitMeasurementRatioAverage())?0.0:o.getOverLimitMeasurementRatioAverage()).average().getAsDouble();
overLimitMeasurementRatioAverage = Double.parseDouble(df.format(asDouble1)); overLimitMeasurementRatioAverage = Double.parseDouble(df.format(asDouble1));
if(finalSumEffectiveMeasurement ==0){ if(finalSumEffectiveMeasurement ==0){
overLimitMeasurementRatioAccrued=0.00; overLimitMeasurementRatioAccrued=0.00;