联调有功功率,解决部分bug

This commit is contained in:
wr
2025-04-08 16:35:08 +08:00
parent cd3f245cd9
commit 20d5dbc942
11 changed files with 135 additions and 83 deletions

View File

@@ -104,17 +104,17 @@ public class PowerStatisticsServiceImpl implements PowerStatisticsService {
List<PowerStatisticsTargetVO> record = new ArrayList<>();
RActivePowerRangeVO rActivePowerRangePO = rActivePowerRangeService.getDataByLineId(powerStatisticsParam.getLineId(),
powerStatisticsParam.getSearchBeginTime(), powerStatisticsParam.getSearchEndTime());
//获取电压数据
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
lineParam.setLineId(Collections.singletonList(rActivePowerRangePO.getLineId()));
LineCountEvaluateParam lineCountEvaluateParam = new LineCountEvaluateParam();
lineCountEvaluateParam.setLineId(Collections.singletonList(rActivePowerRangePO.getLineId()));
lineCountEvaluateParam.setStartTime(powerStatisticsParam.getSearchBeginTime());
lineCountEvaluateParam.setEndTime(powerStatisticsParam.getSearchBeginTime());
//获取超标数据
List<DataLimitRateDetailTimeDto> dtoList = dataLimitRateDetailFeignClient.getLimitRateDetailTimeList(lineCountEvaluateParam).getData();
Map<String, DataLimitRateDetailTimeDto> timeDateMap = dtoList.stream().collect(Collectors.toMap(x -> x.getTime(), Function.identity()));
if (ObjectUtil.isNotNull(rActivePowerRangePO)) {
//获取电压数据
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
lineParam.setLineId(Collections.singletonList(rActivePowerRangePO.getLineId()));
LineCountEvaluateParam lineCountEvaluateParam = new LineCountEvaluateParam();
lineCountEvaluateParam.setLineId(Collections.singletonList(rActivePowerRangePO.getLineId()));
lineCountEvaluateParam.setStartTime(powerStatisticsParam.getSearchBeginTime());
lineCountEvaluateParam.setEndTime(powerStatisticsParam.getSearchBeginTime());
//获取超标数据
List<DataLimitRateDetailTimeDto> dtoList = dataLimitRateDetailFeignClient.getLimitRateDetailTimeList(lineCountEvaluateParam).getData();
Map<String, DataLimitRateDetailTimeDto> timeDateMap = dtoList.stream().collect(Collectors.toMap(x -> x.getTime(), Function.identity()));
List<String> timeId = rActivePowerRangePO.getTimeId();
String times = reflexObjValue(rActivePowerRangePO, "minsTime" + powerStatisticsParam.getField()).toString().replace("null", "");
List<String> timeList = JSONArray.parseArray(times, String.class);
@@ -156,6 +156,7 @@ public class PowerStatisticsServiceImpl implements PowerStatisticsService {
evaluateParam.setLineId(Collections.singletonList(param.getLineId()));
evaluateParam.setStartTime(param.getSearchBeginTime());
evaluateParam.setEndTime(param.getSearchEndTime());
String time = param.getSearchBeginTime();
if ("1".equals(param.getStatisticalId())) {
//电压数据
List<DataVDto> dataVAllTime = dataVFeignClient.getRawData(evaluateParam).getData();
@@ -165,42 +166,50 @@ public class PowerStatisticsServiceImpl implements PowerStatisticsService {
List<DataIDto> dataIList = dataIFeignClient.getRawData(evaluateParam).getData();
//电压偏差
if ("Dev".equals(param.getCode()) || StrUtil.isBlank(param.getCode())) {
addThdData(info, overlimit.getVoltageDev(), "vuDev", dataVAllTime, "电压上偏差");
addThdData(info, overlimit.getUvoltageDev(), "vlDev", dataVAllTime, "电压下偏差");
addThdData(info, overlimit.getVoltageDev(), "vuDev", dataVAllTime, "电压上偏差","%",time);
addThdData(info, overlimit.getUvoltageDev(), "vlDev", dataVAllTime, "电压下偏差","%",time);
}
//电压不平横度
if ("Unbalance".equals(param.getCode()) || StrUtil.isBlank(param.getCode())) {
addThdData(info, overlimit.getUbalance(), "vUnbalance", dataVAllTime, "三相电压不平横度");
addThdData(info, overlimit.getUbalance(), "vUnbalance", dataVAllTime, "三相电压不平横度","%",time);
}
//闪变
if ("plt".equals(param.getCode()) || StrUtil.isBlank(param.getCode())) {
addThdData(info, overlimit.getFlicker(), "plt", dataFlickerAllTime, "长时闪变");
addThdData(info, overlimit.getFlicker(), "plt", dataFlickerAllTime, "长时闪变","",time);
}
//电流不平衡度
//负序电流不平衡度
if ("iNeg".equals(param.getCode()) || StrUtil.isBlank(param.getCode())) {
addThdData(info, overlimit.getINeg(), "iNeg", dataIList, "电流不平衡度");
addThdData(info, overlimit.getINeg(), "iNeg", dataIList, "电流不平衡度","",time);
}
//频率偏差越限
if ("freq".equals(param.getCode()) || StrUtil.isBlank(param.getCode())) {
addThdData(info, overlimit.getINeg(), "freqDev", dataVAllTime, "频率偏差","Hz",time);
}
//电压谐波畸变率
if ("freq".equals(param.getCode()) || StrUtil.isBlank(param.getCode())) {
addThdData(info, overlimit.getINeg(), "vThd", dataVAllTime, "电压谐波畸变率","%",time);
}
}
if ("2".equals(param.getStatisticalId())) {
//谐波数据
List<DataHarmDto> dataVHarmList = dataHarmRateVFeignClient.getRawData(evaluateParam).getData();
addThdData(info, overlimit, "getUharm", "v", 2, 26, dataVHarmList, "谐波电压");
addThdData(info, overlimit, "getUharm", "v", 2, 26, dataVHarmList, "谐波电压","%",time);
}
if ("3".equals(param.getStatisticalId())) {
//电流数据
List<DataIDto> dataIList = dataIFeignClient.getRawData(evaluateParam).getData();
addThdData(info, overlimit, "getUharm", "i", 2, 26, dataIList, "谐波电流");
addThdData(info, overlimit, "getUharm", "i", 2, 26, dataIList, "谐波电流","A",time);
}
if ("4".equals(param.getStatisticalId())) {
//间谐波数据
List<DataHarmDto> dataVInHarmList = dataInharmVFeignClient.getRawData(evaluateParam).getData();
addThdData(info, overlimit, "getInuharm", "v", 1, 17, dataVInHarmList, "间谐波电压");
addThdData(info, overlimit, "getInuharm", "v", 1, 17, dataVInHarmList, "间谐波电压","%",time);
}
return info;
}
private void addThdData(List<ThdDataVO> info, Overlimit overlimit, String limitField, String fieldName, Integer start, Integer end, List<?> dataAllTime, String anotherName) {
private void addThdData(List<ThdDataVO> info, Overlimit overlimit, String limitField, String fieldName, Integer start, Integer end, List<?> dataAllTime, String anotherName,String unit,String time) {
if (CollUtil.isNotEmpty(dataAllTime)) {
for (int i = start; i < end; i++) {
int finalI = i;
@@ -215,6 +224,8 @@ public class PowerStatisticsServiceImpl implements PowerStatisticsService {
throw new RuntimeException(e);
}
vo.setAnotherName(anotherName);
vo.setUnit(unit);
vo.setTime(time);
if ("getInuharm".equals(limitField)) {
vo.setAnotherName(i - 0.5 + "");
} else {
@@ -230,13 +241,15 @@ public class PowerStatisticsServiceImpl implements PowerStatisticsService {
}
}
private void addThdData(List<ThdDataVO> info, Float limit, String fieldName, List<?> dataAllTime, String anotherName) {
private void addThdData(List<ThdDataVO> info, Float limit, String fieldName, List<?> dataAllTime, String anotherName,String unit,String time) {
if (CollUtil.isNotEmpty(dataAllTime)) {
List<String> collect = dataAllTime.stream().map(x -> data(x, fieldName)).filter(x -> ObjectUtil.isNotNull(x)).collect(Collectors.toList());
if (CollUtil.isNotEmpty(collect)) {
ThdDataVO vo = new ThdDataVO();
vo.setLimit(limit);
vo.setAnotherName(anotherName);
vo.setUnit(unit);
vo.setTime(time);
for (String s : collect) {
setDataV(vo, s);
}
@@ -285,7 +298,7 @@ public class PowerStatisticsServiceImpl implements PowerStatisticsService {
if (timeCross.contains(time)) {
return 1;
}
return 0;
return 1;
}
/**

View File

@@ -74,7 +74,6 @@ public class RActivePowerRangeServiceImpl extends MppServiceImpl<RActivePowerRan
rActivePowerRangePO.setLineId(lineId);
rActivePowerRangePO.setTimeId(rActivePowerRangePOS.stream().map(RActivePowerRangePO::getTimeId).collect(Collectors.toList()));
//多条记录则次数累加,是否越限只要有一个区间越限则统一视为该区间越限
rActivePowerRangePO.setMinsNum0(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getMinsNum0).sum());
rActivePowerRangePO.setMinsNum1(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getMinsNum1).sum());
@@ -86,16 +85,16 @@ public class RActivePowerRangeServiceImpl extends MppServiceImpl<RActivePowerRan
rActivePowerRangePO.setMinsNum7(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getMinsNum7).sum());
rActivePowerRangePO.setMinsNum8(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getMinsNum8).sum());
rActivePowerRangePO.setMinsNum9(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getMinsNum9).sum());
rActivePowerRangePO.setIsOrNot0(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getMinsNum0).sum());
rActivePowerRangePO.setIsOrNot1(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getMinsNum1).sum());
rActivePowerRangePO.setIsOrNot2(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getMinsNum2).sum());
rActivePowerRangePO.setIsOrNot3(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getMinsNum3).sum());
rActivePowerRangePO.setIsOrNot4(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getMinsNum4).sum());
rActivePowerRangePO.setIsOrNot5(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getMinsNum5).sum());
rActivePowerRangePO.setIsOrNot6(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getMinsNum6).sum());
rActivePowerRangePO.setIsOrNot7(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getMinsNum7).sum());
rActivePowerRangePO.setIsOrNot8(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getMinsNum8).sum());
rActivePowerRangePO.setIsOrNot9(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getMinsNum9).sum());
rActivePowerRangePO.setIsOrNot0(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getIsOrNot0).sum());
rActivePowerRangePO.setIsOrNot1(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getIsOrNot1).sum());
rActivePowerRangePO.setIsOrNot2(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getIsOrNot2).sum());
rActivePowerRangePO.setIsOrNot3(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getIsOrNot3).sum());
rActivePowerRangePO.setIsOrNot4(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getIsOrNot4).sum());
rActivePowerRangePO.setIsOrNot5(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getIsOrNot5).sum());
rActivePowerRangePO.setIsOrNot6(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getIsOrNot6).sum());
rActivePowerRangePO.setIsOrNot7(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getIsOrNot7).sum());
rActivePowerRangePO.setIsOrNot8(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getIsOrNot8).sum());
rActivePowerRangePO.setIsOrNot9(rActivePowerRangePOS.stream().mapToInt(RActivePowerRangePO::getIsOrNot9).sum());
rActivePowerRangePO.setMinsTime0(rActivePowerRangePOS.stream().map(RActivePowerRangePO::getMinsTime0).collect(Collectors.toList()));