refactor(data): 优化谐波和间谐波数据一二次值处理逻辑

This commit is contained in:
xy
2026-05-09 14:20:25 +08:00
parent 76000e4fff
commit 82e5d6c8e2

View File

@@ -115,10 +115,10 @@ public class DataServiceImpl implements IDataService {
finalResult.add(vo);
}
} else if (Objects.equals(item2.getHarmStart(),2)) {
List<RealTimeDataVo> harmList = getHarmData(item2,param.getLineId());
List<RealTimeDataVo> harmList = getHarmData(item2,param.getLineId(),param.getDataLevel(),csDataSet.getDataLevel(),pt,ct);
finalResult.addAll(harmList);
} else if (Objects.equals(item2.getHarmStart(),1)) {
List<RealTimeDataVo> inuharmList = getInuHarmData(item2,param.getLineId());
List<RealTimeDataVo> inuharmList = getInuHarmData(item2,param.getLineId(),param.getDataLevel(),csDataSet.getDataLevel(),pt,ct);
finalResult.addAll(inuharmList);
}
});
@@ -568,7 +568,7 @@ public class DataServiceImpl implements IDataService {
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue() / ct;
break;
case "*PT*CT":
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue() / pt / ct / 1000;
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue() / pt / ct * 1000;
break;
default:
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue();
@@ -594,46 +594,158 @@ public class DataServiceImpl implements IDataService {
}
//谐波数据
public List<RealTimeDataVo> getHarmData(EleEpdPqd item2, String lineId) {
public List<RealTimeDataVo> getHarmData(EleEpdPqd item2, String lineId, String dataLevel, String csDataSetLevel, Double pt, Double ct) {
List<RealTimeDataVo> list = new ArrayList<>();
for (int i = item2.getHarmStart(); i <= item2.getHarmEnd(); i++) {
RealTimeDataVo vo = new RealTimeDataVo();
vo.setId(item2.getId());
vo.setName(item2.getName().concat("_").concat(Integer.toString(i)));
StatisticalDataDTO statisticalDataDTO = commonService.getLineRtData(lineId,influxDbParamUtil.getTableNameByClassId(item2.getClassId()),item2.getName().concat("_").concat(Integer.toString(i)),item2.getPhase(),"avg",influxDbParamUtil.getClDidByLineId(lineId));
double re;
String unit;
if (Objects.equals("Primary",dataLevel)) {
if (Objects.equals("Primary",csDataSetLevel)) {
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue();
unit = item2.getUnit();
} else {
if(Objects.nonNull(item2.getPrimaryFormula())){
switch (item2.getPrimaryFormula()) {
case "*PT":
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue() * pt / 1000;
unit = "k" + item2.getUnit();
break;
case "*CT":
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue() * ct;
unit = item2.getUnit();
break;
case "*PT*CT":
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue() * pt * ct / 1000;
unit = "k" + item2.getUnit();
break;
default:
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue();
unit = item2.getUnit();
break;
}
}else {
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue();
unit = item2.getUnit();
}
}
} else {
if (Objects.equals("Primary",csDataSetLevel)) {
if(Objects.nonNull(item2.getPrimaryFormula())) {
switch (item2.getPrimaryFormula()) {
case "*PT":
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue() / pt;
break;
case "*CT":
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue() / ct;
break;
case "*PT*CT":
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue() / pt / ct * 1000;
break;
default:
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue();
break;
}
}else {
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue();
}
} else {
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue();
}
unit = item2.getUnit();
}
if (Objects.isNull(statisticalDataDTO)) {
vo.setAvgValue(3.14159);
} else {
vo.setTime(statisticalDataDTO.getTime());
vo.setAvgValue(Double.valueOf(df.format(statisticalDataDTO.getValue())));
vo.setAvgValue(Double.valueOf(df.format(re)));
}
vo.setPhase(item2.getPhase());
vo.setOtherName(i + "" + "(" + item2.getUnit() + ")");
vo.setOtherName(i + "" + "(" + unit + ")");
vo.setSort(item2.getSort());
vo.setUnit(item2.getUnit());
vo.setUnit(unit);
list.add(vo);
}
return list;
}
//间谐波数据
public List<RealTimeDataVo> getInuHarmData(EleEpdPqd item2, String lineId) {
public List<RealTimeDataVo> getInuHarmData(EleEpdPqd item2, String lineId, String dataLevel, String csDataSetLevel, Double pt, Double ct) {
List<RealTimeDataVo> list = new ArrayList<>();
for (int i = item2.getHarmStart(); i <= item2.getHarmEnd(); i++) {
RealTimeDataVo vo = new RealTimeDataVo();
vo.setId(item2.getId());
vo.setName(item2.getName().concat("_").concat(Integer.toString(i)));
StatisticalDataDTO statisticalDataDTO = commonService.getLineRtData(lineId,influxDbParamUtil.getTableNameByClassId(item2.getClassId()),item2.getName().concat("_").concat(Integer.toString(i)),item2.getPhase(),"avg",influxDbParamUtil.getClDidByLineId(lineId));
double re;
String unit;
if (Objects.equals("Primary",dataLevel)) {
if (Objects.equals("Primary",csDataSetLevel)) {
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue();
unit = item2.getUnit();
} else {
if(Objects.nonNull(item2.getPrimaryFormula())){
switch (item2.getPrimaryFormula()) {
case "*PT":
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue() * pt / 1000;
unit = "k" + item2.getUnit();
break;
case "*CT":
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue() * ct;
unit = item2.getUnit();
break;
case "*PT*CT":
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue() * pt * ct / 1000;
unit = "k" + item2.getUnit();
break;
default:
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue();
unit = item2.getUnit();
break;
}
}else {
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue();
unit = item2.getUnit();
}
}
} else {
if (Objects.equals("Primary",csDataSetLevel)) {
if(Objects.nonNull(item2.getPrimaryFormula())) {
switch (item2.getPrimaryFormula()) {
case "*PT":
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue() / pt;
break;
case "*CT":
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue() / ct;
break;
case "*PT*CT":
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue() / pt / ct * 1000;
break;
default:
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue();
break;
}
}else {
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue();
}
} else {
re = Objects.isNull(statisticalDataDTO) ? 3.14159 : statisticalDataDTO.getValue();
}
unit = item2.getUnit();
}
if (Objects.isNull(statisticalDataDTO)) {
vo.setAvgValue(3.14159);
} else {
vo.setTime(statisticalDataDTO.getTime());
vo.setAvgValue(Double.valueOf(df.format(statisticalDataDTO.getValue())));
vo.setAvgValue(Double.valueOf(df.format(re)));
}
vo.setPhase(item2.getPhase());
vo.setOtherName((i-0.5) + "" + "(" + item2.getUnit() + ")");
vo.setOtherName((i-0.5) + "" + "(" + unit + ")");
vo.setSort(item2.getSort());
vo.setUnit(item2.getUnit());
vo.setUnit(unit);
list.add(vo);
}
return list;