1.终端评价详情日表算法-占比修改
2.发射特性和影响特性算法修改,只统计四类监测点光伏电站、电气化铁路、风电场和冶炼负荷
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.njcn.harmonic.pojo.vo;
|
||||
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -61,4 +62,44 @@ public class RStatLoadTypeVO {
|
||||
@ApiModelProperty(value = "累计闪变超标占比")
|
||||
private Float flickerAccrued;
|
||||
|
||||
public void setVAverage(Float vAverage) {
|
||||
this.vAverage = NumberUtil.round(vAverage*100,2).floatValue();
|
||||
}
|
||||
|
||||
public void setVAccrued(Float vAccrued) {
|
||||
this.vAccrued = NumberUtil.round(vAccrued*100,2).floatValue();
|
||||
}
|
||||
|
||||
public void setIAverage(Float iAverage) {
|
||||
this.iAverage = NumberUtil.round(iAverage*100,2).floatValue();
|
||||
}
|
||||
|
||||
public void setIAccrued(Float iAccrued) {
|
||||
this.iAccrued = NumberUtil.round(iAccrued*100,2).floatValue();
|
||||
}
|
||||
|
||||
public void setUnbalanceAverage(Float unbalanceAverage) {
|
||||
this.unbalanceAverage = NumberUtil.round(unbalanceAverage*100,2).floatValue();
|
||||
}
|
||||
|
||||
public void setUnbalanceAccrued(Float unbalanceAccrued) {
|
||||
this.unbalanceAccrued = NumberUtil.round(unbalanceAccrued*100,2).floatValue();
|
||||
}
|
||||
|
||||
public void setINegAverage(Float iNegAverage) {
|
||||
this.iNegAverage = NumberUtil.round(iNegAverage*100,2).floatValue();
|
||||
}
|
||||
|
||||
public void setINegAccrued(Float iNegAccrued) {
|
||||
this.iNegAccrued = NumberUtil.round(iNegAccrued*100,2).floatValue();
|
||||
}
|
||||
|
||||
public void setFlickerAverage(Float flickerAverage) {
|
||||
this.flickerAverage = NumberUtil.round(flickerAverage*100,2).floatValue();
|
||||
}
|
||||
|
||||
public void setFlickerAccrued(Float flickerAccrued) {
|
||||
this.flickerAccrued = NumberUtil.round(flickerAccrued*100,2).floatValue();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -24,15 +24,15 @@
|
||||
org_no,
|
||||
load_type,
|
||||
v_average,
|
||||
(case when effective_measurement = 0 then 0 else ROUND( v_count / effective_measurement, 2 ) end) as vAccrued,
|
||||
IFNULL( v_count / effective_measurement, 0 ) AS vAccrued,
|
||||
i_average,
|
||||
(case when effective_measurement = 0 then 0 else ROUND( i_count / effective_measurement, 2 ) end) as iAccrued,
|
||||
IFNULL( i_count / effective_measurement, 0 ) AS iAccrued,
|
||||
unbalance_average,
|
||||
(case when effective_measurement = 0 then 0 else ROUND( unbalance_count / effective_measurement, 2 ) end) as unbalanceAccrued,
|
||||
IFNULL( unbalance_count / effective_measurement, 0 ) AS unbalanceAccrued,
|
||||
i_neg_average,
|
||||
(case when effective_measurement = 0 then 0 else ROUND( i_neg_count / effective_measurement, 2 ) end) as iNegAccrued,
|
||||
IFNULL( i_neg_count / effective_measurement, 0 ) AS iNegAccrued,
|
||||
flicker_average,
|
||||
(case when effective_measurement = 0 then 0 else ROUND( flicker_count / effective_measurement, 2 ) end) as flickerAccrued
|
||||
IFNULL( flicker_count / effective_measurement, 0 ) AS flickerAccrued
|
||||
from
|
||||
r_stat_load_type_m
|
||||
<where>
|
||||
|
||||
@@ -24,15 +24,15 @@
|
||||
org_no,
|
||||
load_type,
|
||||
v_average,
|
||||
ROUND( v_count / effective_measurement, 2 ) AS vAccrued,
|
||||
IFNULL( v_count / effective_measurement, 0 ) AS vAccrued,
|
||||
i_average,
|
||||
ROUND( i_count / effective_measurement, 2 ) AS iAccrued,
|
||||
IFNULL( i_count / effective_measurement, 0 ) AS iAccrued,
|
||||
unbalance_average,
|
||||
ROUND( unbalance_count / effective_measurement, 2 ) AS unbalanceAccrued,
|
||||
IFNULL( unbalance_count / effective_measurement, 0 ) AS unbalanceAccrued,
|
||||
i_neg_average,
|
||||
ROUND( i_neg_count / effective_measurement, 2 ) AS iNegAccrued,
|
||||
IFNULL( i_neg_count / effective_measurement, 0 ) AS iNegAccrued,
|
||||
flicker_average,
|
||||
ROUND( flicker_count / effective_measurement, 2 ) AS flickerAccrued
|
||||
IFNULL( flicker_count / effective_measurement, 0 ) AS flickerAccrued
|
||||
from
|
||||
r_stat_load_type_q
|
||||
<where>
|
||||
|
||||
@@ -24,15 +24,15 @@
|
||||
org_no,
|
||||
load_type,
|
||||
v_average,
|
||||
ROUND( v_count / effective_measurement, 2 ) AS vAccrued,
|
||||
IFNULL( v_count / effective_measurement, 0 ) AS vAccrued,
|
||||
i_average,
|
||||
ROUND( i_count / effective_measurement, 2 ) AS iAccrued,
|
||||
IFNULL( i_count / effective_measurement, 0 ) AS iAccrued,
|
||||
unbalance_average,
|
||||
ROUND( unbalance_count / effective_measurement, 2 ) AS unbalanceAccrued,
|
||||
IFNULL( unbalance_count / effective_measurement, 0 ) AS unbalanceAccrued,
|
||||
i_neg_average,
|
||||
ROUND( i_neg_count / effective_measurement, 2 ) AS iNegAccrued,
|
||||
IFNULL( i_neg_count / effective_measurement, 0 ) AS iNegAccrued,
|
||||
flicker_average,
|
||||
ROUND( flicker_count / effective_measurement, 2 ) AS flickerAccrued
|
||||
IFNULL( flicker_count / effective_measurement, 0 ) AS flickerAccrued
|
||||
from
|
||||
r_stat_load_type_y
|
||||
<where>
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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()))));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user