1.终端评价详情日表算法-占比修改

2.发射特性和影响特性算法修改,只统计四类监测点光伏电站、电气化铁路、风电场和冶炼负荷
This commit is contained in:
wr
2024-03-08 15:59:25 +08:00
parent 4c752edc19
commit f8766060a6
8 changed files with 109 additions and 29 deletions

View File

@@ -155,11 +155,11 @@ public class RMpDevEvaluateDetailPOServiceImpl extends MppServiceImpl<RMpDevEval
List<ROperatingMonitorDPO> ls = map1.get(k);
double d1 = ls.stream().mapToDouble(po -> po.getDataIntegrityRate().doubleValue()).average().getAsDouble();
double d2 = ls.stream().mapToDouble(po -> po.getIndexIntegrityRate().doubleValue()).average().getAsDouble();
rMpDevEvaluateDetailPO.setDevDataRate(d1);
rMpDevEvaluateDetailPO.setDevTargetRate(d2);
rMpDevEvaluateDetailPO.setDevDataRate(d1*100.0);
rMpDevEvaluateDetailPO.setDevTargetRate(d2*100.0);
long count = ls.stream().filter(po -> po.getIsUnusual() == 1 && po.getDataIntegrityRate().compareTo(new BigDecimal(0.95)) == 1).count();
double d3 = (double) count / ls.size();
rMpDevEvaluateDetailPO.setDevEffectiveRate(d3);
rMpDevEvaluateDetailPO.setDevEffectiveRate(d3*100.0);
}
rMpDevEvaluateDetailPOList.add(rMpDevEvaluateDetailPO);
});

View File

@@ -3,6 +3,7 @@ package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
@@ -26,6 +27,10 @@ import com.njcn.prepare.harmonic.service.mysql.day.IRStatDataIDService;
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.IRMpEmissionIExcessRateMService;
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.IRMpEmissionIMService;
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.IRMpEmissionMService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
import java.lang.reflect.Field;
@@ -60,6 +65,7 @@ public class RMpEmissionMServiceImpl extends MppServiceImpl<RMpEmissionMMapper,
private final RStatLimitRateDMapper rStatLimitRateDMapper;
private final IRMpEmissionIMService irMpEmissionIMService;
private final IRMpEmissionIExcessRateMService irMpEmissionIExcessRateMService;
private final DicDataFeignClient dicDataFeignClient;
@Override
@Async("asyncExecutor")
@@ -73,6 +79,14 @@ public class RMpEmissionMServiceImpl extends MppServiceImpl<RMpEmissionMMapper,
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
deptGetLineParam.setDeptId(data.getId());
List<DeptGetChildrenMoreDTO> data1 = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
//获取监测点标签
List<DictData> dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
List<String> dicIdsList = dictDataList.stream().filter(x -> ObjectUtil.equals(x.getCode(), DicDataEnum.POWER_STATION.getCode()) ||
ObjectUtil.equals(x.getCode(), DicDataEnum.WIND_FARM.getCode()) ||
ObjectUtil.equals(x.getCode(), DicDataEnum.SMELT_LOAD.getCode()) ||
ObjectUtil.equals(x.getCode(), DicDataEnum.ELECTRIFIED_RAILWAYS.getCode())
).map(DictData::getId).collect(Collectors.toList());
//监测点id
List<String> line;
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : data1) {
@@ -86,12 +100,13 @@ public class RMpEmissionMServiceImpl extends MppServiceImpl<RMpEmissionMMapper,
if(CollUtil.isNotEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())){
lineBaseList.addAll(deptGetChildrenMoreDTO.getPwMonitorIds());
}
if (CollUtil.isNotEmpty(lineBaseList)) {
line.addAll(lineBaseList.stream().filter(x -> StrUtil.isNotBlank(x.getPointId())).map(LineDevGetDTO::getPointId).collect(Collectors.toList()));
lineBaseMap.putAll(lineBaseList.stream().filter(x -> StrUtil.isNotBlank(x.getPointId()))
.filter(x->dicIdsList.contains(x.getLineTag()))
.collect(Collectors.groupingBy(LineDevGetDTO::getLineTag, Collectors.mapping(LineDevGetDTO::getPointId, Collectors.toList()))));
line.addAll(lineBaseList.stream().filter(x -> StrUtil.isNotBlank(x.getPointId()))
.filter(x->dicIdsList.contains(x.getLineTag()))
.map(LineDevGetDTO::getPointId).collect(Collectors.toList()));
}

View File

@@ -3,6 +3,7 @@ package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
@@ -19,6 +20,10 @@ import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RMpInfluenceMMapper;
import com.njcn.prepare.harmonic.pojo.param.LineParam;
import com.njcn.prepare.harmonic.service.mysql.day.IRStatDataVDService;
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
import lombok.RequiredArgsConstructor;
@@ -51,7 +56,7 @@ public class RMpInfluenceMServiceImpl extends MppServiceImpl<RMpInfluenceMMapper
private final RStatLimitRateDMapper rStatLimitRateDMapper;
private final IRMpInfluenceVMService irMpInfluenceVMService;
private final IRMpInfluenceVExcessRateMService irMpInfluenceVExcessRateMService;
private final DicDataFeignClient dicDataFeignClient;
@Override
@Async("asyncExecutor")
@@ -65,6 +70,13 @@ public class RMpInfluenceMServiceImpl extends MppServiceImpl<RMpInfluenceMMapper
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
deptGetLineParam.setDeptId(data.getId());
List<DeptGetChildrenMoreDTO> data1 = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
//获取监测点标签
List<DictData> dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
List<String> dicIdsList = dictDataList.stream().filter(x -> ObjectUtil.equals(x.getCode(), DicDataEnum.POWER_STATION.getCode()) ||
ObjectUtil.equals(x.getCode(), DicDataEnum.WIND_FARM.getCode()) ||
ObjectUtil.equals(x.getCode(), DicDataEnum.SMELT_LOAD.getCode()) ||
ObjectUtil.equals(x.getCode(), DicDataEnum.ELECTRIFIED_RAILWAYS.getCode())
).map(DictData::getId).collect(Collectors.toList());
//监测点id
List<String> line;
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : data1) {
@@ -80,10 +92,12 @@ public class RMpInfluenceMServiceImpl extends MppServiceImpl<RMpInfluenceMMapper
}
if (CollUtil.isNotEmpty(lineBaseList)) {
line.addAll(lineBaseList.stream().filter(x -> StrUtil.isNotBlank(x.getPointId())).map(LineDevGetDTO::getPointId).collect(Collectors.toList()));
line.addAll(lineBaseList.stream().filter(x -> StrUtil.isNotBlank(x.getPointId()))
.filter(x->dicIdsList.contains(x.getLineTag()))
.map(LineDevGetDTO::getPointId).collect(Collectors.toList()));
lineBaseMap.putAll(lineBaseList.stream().filter(x -> StrUtil.isNotBlank(x.getPointId()))
.filter(x->dicIdsList.contains(x.getLineTag()))
.collect(Collectors.groupingBy(LineDevGetDTO::getLineTag, Collectors.mapping(LineDevGetDTO::getPointId, Collectors.toList()))));
}

View File

@@ -430,13 +430,23 @@ public class RStatLoadTypeServiceImpl implements RStatLoadTypeService {
rStatLoadTypeYPO.setUnbalanceCount(0);
rStatLoadTypeYPO.setFlickerCount(0);
}else {
Optional<RStatHarmonicYPO> vfirst = rStatHarmonicYPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.HARMONIC_VOLTAGE.getCode()).getId())).findFirst();
Optional<RStatHarmonicYPO> vfirst = rStatHarmonicYPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.HARMONIC_VOLTAGE.getCode()).getId())
&&Objects.equals(temp.getMeasurementTypeClass(), m)
).findFirst();
rStatLoadTypeYPO.setVCount(vfirst.isPresent() ? vfirst.get().getOverLimitMeasurementAccrued(): 0);
Optional<RStatHarmonicYPO> ifirst = rStatHarmonicYPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.HARMONIC_CURRENT.getCode()).getId())).findFirst();
Optional<RStatHarmonicYPO> ifirst = rStatHarmonicYPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.HARMONIC_CURRENT.getCode()).getId())
&&Objects.equals(temp.getMeasurementTypeClass(), m)
).findFirst();
rStatLoadTypeYPO.setICount(ifirst.isPresent() ? ifirst.get().getOverLimitMeasurementAccrued(): 0);
Optional<RStatHarmonicYPO> pfirst = rStatHarmonicYPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.PHASE_VOLTAGE.getCode()).getId())).findFirst();
Optional<RStatHarmonicYPO> nfirst = rStatHarmonicYPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.NEG_CURRENT.getCode()).getId())).findFirst();
Optional<RStatHarmonicYPO> ffirst = rStatHarmonicYPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.FLICKER.getCode()).getId())).findFirst();
Optional<RStatHarmonicYPO> pfirst = rStatHarmonicYPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.PHASE_VOLTAGE.getCode()).getId())
&&Objects.equals(temp.getMeasurementTypeClass(), m)
).findFirst();
Optional<RStatHarmonicYPO> nfirst = rStatHarmonicYPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.NEG_CURRENT.getCode()).getId())
&&Objects.equals(temp.getMeasurementTypeClass(), m)
).findFirst();
Optional<RStatHarmonicYPO> ffirst = rStatHarmonicYPOS.stream().filter(temp -> Objects.equals(temp.getHarmonicType(), steadyStatisMap.get(DicDataEnum.FLICKER.getCode()).getId())
&&Objects.equals(temp.getMeasurementTypeClass(), m)
).findFirst();
rStatLoadTypeYPO.setINegCount(nfirst.isPresent() ? nfirst.get().getOverLimitMeasurementAccrued(): 0);
rStatLoadTypeYPO.setUnbalanceCount(pfirst.isPresent() ? pfirst.get().getOverLimitMeasurementAccrued(): 0);