Merge remote-tracking branch 'origin/master'

This commit is contained in:
wr
2026-01-26 14:58:12 +08:00
9 changed files with 496 additions and 198 deletions

View File

@@ -27,6 +27,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.lang.reflect.Method;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
@@ -126,68 +127,12 @@ public class InfluxdbDataHarmpowerPImpl extends MppServiceImpl<RStatDataHarmPowe
valueTypeMap.forEach((valueType,valueTypeList)->{
CommonMinuteDto.ValueType value = new CommonMinuteDto.ValueType();
value.setValueType(valueType);
//规定好集合指标参数
List<Double> data1 = valueTypeList.stream().map(DataHarmpowerP::getDf).collect(Collectors.toList());
List<Double> data2 = valueTypeList.stream().map(DataHarmpowerP::getPf).collect(Collectors.toList());
List<Double> data3 = valueTypeList.stream().map(DataHarmpowerP::getP).collect(Collectors.toList());
List<Double> data12 = valueTypeList.stream().map(DataHarmpowerP::getP1).collect(Collectors.toList());
List<Double> data13 = valueTypeList.stream().map(DataHarmpowerP::getP2).collect(Collectors.toList());
List<Double> data14 = valueTypeList.stream().map(DataHarmpowerP::getP3).collect(Collectors.toList());
List<Double> data15 = valueTypeList.stream().map(DataHarmpowerP::getP4).collect(Collectors.toList());
List<Double> data16 = valueTypeList.stream().map(DataHarmpowerP::getP5).collect(Collectors.toList());
List<Double> data17 = valueTypeList.stream().map(DataHarmpowerP::getP6).collect(Collectors.toList());
List<Double> data18 = valueTypeList.stream().map(DataHarmpowerP::getP7).collect(Collectors.toList());
List<Double> data19 = valueTypeList.stream().map(DataHarmpowerP::getP8).collect(Collectors.toList());
List<Double> data20 = valueTypeList.stream().map(DataHarmpowerP::getP9).collect(Collectors.toList());
List<Double> data21 = valueTypeList.stream().map(DataHarmpowerP::getP10).collect(Collectors.toList());
List<Double> data22 = valueTypeList.stream().map(DataHarmpowerP::getP11).collect(Collectors.toList());
List<Double> data23 = valueTypeList.stream().map(DataHarmpowerP::getP12).collect(Collectors.toList());
List<Double> data24 = valueTypeList.stream().map(DataHarmpowerP::getP13).collect(Collectors.toList());
List<Double> data25 = valueTypeList.stream().map(DataHarmpowerP::getP14).collect(Collectors.toList());
List<Double> data26 = valueTypeList.stream().map(DataHarmpowerP::getP15).collect(Collectors.toList());
List<Double> data27 = valueTypeList.stream().map(DataHarmpowerP::getP16).collect(Collectors.toList());
List<Double> data28 = valueTypeList.stream().map(DataHarmpowerP::getP17).collect(Collectors.toList());
List<Double> data29 = valueTypeList.stream().map(DataHarmpowerP::getP18).collect(Collectors.toList());
List<Double> data30 = valueTypeList.stream().map(DataHarmpowerP::getP19).collect(Collectors.toList());
List<Double> data31 = valueTypeList.stream().map(DataHarmpowerP::getP20).collect(Collectors.toList());
List<Double> data32 = valueTypeList.stream().map(DataHarmpowerP::getP21).collect(Collectors.toList());
List<Double> data33 = valueTypeList.stream().map(DataHarmpowerP::getP22).collect(Collectors.toList());
List<Double> data34 = valueTypeList.stream().map(DataHarmpowerP::getP23).collect(Collectors.toList());
List<Double> data35 = valueTypeList.stream().map(DataHarmpowerP::getP24).collect(Collectors.toList());
List<Double> data36 = valueTypeList.stream().map(DataHarmpowerP::getP25).collect(Collectors.toList());
List<Double> data37 = valueTypeList.stream().map(DataHarmpowerP::getP26).collect(Collectors.toList());
List<Double> data38 = valueTypeList.stream().map(DataHarmpowerP::getP27).collect(Collectors.toList());
List<Double> data39 = valueTypeList.stream().map(DataHarmpowerP::getP28).collect(Collectors.toList());
List<Double> data40 = valueTypeList.stream().map(DataHarmpowerP::getP29).collect(Collectors.toList());
List<Double> data41 = valueTypeList.stream().map(DataHarmpowerP::getP30).collect(Collectors.toList());
List<Double> data42 = valueTypeList.stream().map(DataHarmpowerP::getP31).collect(Collectors.toList());
List<Double> data43 = valueTypeList.stream().map(DataHarmpowerP::getP32).collect(Collectors.toList());
List<Double> data44 = valueTypeList.stream().map(DataHarmpowerP::getP33).collect(Collectors.toList());
List<Double> data45 = valueTypeList.stream().map(DataHarmpowerP::getP34).collect(Collectors.toList());
List<Double> data46 = valueTypeList.stream().map(DataHarmpowerP::getP35).collect(Collectors.toList());
List<Double> data47 = valueTypeList.stream().map(DataHarmpowerP::getP36).collect(Collectors.toList());
List<Double> data48 = valueTypeList.stream().map(DataHarmpowerP::getP37).collect(Collectors.toList());
List<Double> data49 = valueTypeList.stream().map(DataHarmpowerP::getP38).collect(Collectors.toList());
List<Double> data50 = valueTypeList.stream().map(DataHarmpowerP::getP39).collect(Collectors.toList());
List<Double> data51 = valueTypeList.stream().map(DataHarmpowerP::getP40).collect(Collectors.toList());
List<Double> data52 = valueTypeList.stream().map(DataHarmpowerP::getP41).collect(Collectors.toList());
List<Double> data53 = valueTypeList.stream().map(DataHarmpowerP::getP42).collect(Collectors.toList());
List<Double> data54 = valueTypeList.stream().map(DataHarmpowerP::getP43).collect(Collectors.toList());
List<Double> data55 = valueTypeList.stream().map(DataHarmpowerP::getP44).collect(Collectors.toList());
List<Double> data56 = valueTypeList.stream().map(DataHarmpowerP::getP45).collect(Collectors.toList());
List<Double> data57 = valueTypeList.stream().map(DataHarmpowerP::getP46).collect(Collectors.toList());
List<Double> data58 = valueTypeList.stream().map(DataHarmpowerP::getP47).collect(Collectors.toList());
List<Double> data59 = valueTypeList.stream().map(DataHarmpowerP::getP48).collect(Collectors.toList());
List<Double> data60 = valueTypeList.stream().map(DataHarmpowerP::getP49).collect(Collectors.toList());
List<Double> data61 = valueTypeList.stream().map(DataHarmpowerP::getP50).collect(Collectors.toList());
List<List<Double>> lists = Arrays.asList(data1,data2,data3,data12,data13,data14
,data15,data16,data17,data18,data19,data20,data21,data22,data23,data24
,data25,data26,data27,data28,data29,data30,data31,data32,data33,data34
,data35,data36,data37,data38,data39,data40,data41,data42,data43,data44
,data45,data46,data47,data48,data49,data50,data51,data52,data53,data54
,data55,data56,data57,data58,data59,data60,data61);
List<List<Double>> lists;
if (Objects.equals(phasicType, "T")) {
lists = extractDataLists(valueTypeList, "Tot");
} else {
lists = extractDataLists(valueTypeList, "");
}
value.setValueList(lists);
valueTypes.add(value);
});
@@ -201,6 +146,43 @@ public class InfluxdbDataHarmpowerPImpl extends MppServiceImpl<RStatDataHarmPowe
return result;
}
private List<List<Double>> extractDataLists(List<DataHarmpowerP> dataList, String prefix) {
List<List<Double>> result = new ArrayList<>();
// 前三个特殊字段
result.add(extractField(dataList, prefix + "Df"));
result.add(extractField(dataList, prefix + "Pf"));
result.add(extractField(dataList, prefix + "P"));
// P1到P50
for (int i = 1; i <= 50; i++) {
String fieldName = prefix + (i == 1 ? "P1" : "P" + i);
result.add(extractField(dataList, fieldName));
}
return result;
}
private List<Double> extractField(List<DataHarmpowerP> dataList, String fieldName) {
try {
Method method = DataHarmpowerP.class.getMethod("get" + capitalize(fieldName));
return dataList.stream()
.map(data -> {
try {
return (Double) method.invoke(data);
} catch (Exception e) {
throw new RuntimeException("Failed to get field: " + fieldName, e);
}
})
.collect(Collectors.toList());
} catch (NoSuchMethodException e) {
throw new RuntimeException("Field not found: " + fieldName, e);
}
}
private String capitalize(String str) {
if (str == null || str.isEmpty()) return str;
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
@Override
public void addList(List<DataHarmPowerPDto> list) {
@@ -296,20 +278,31 @@ public class InfluxdbDataHarmpowerPImpl extends MppServiceImpl<RStatDataHarmPowe
String devId = lineMap.get(lineId).getDeviceId();
CsLinePO po = lineMap.get(lineId);
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerP.class);
//A、B、C谐波有功功率有效值
influxQueryWrapper.samePrefixAndSuffix("Pq_HarmP_", "p_", HarmonicTimesUtil.harmonicTimesList(2, 50, 1));
influxQueryWrapper.eq(DataHarmpowerP::getLineId, lineId)
.eq(DataHarmpowerP::getProcess,Integer.toString(devsMap.get(devId).getProcess()))
//三相总 谐波有功功率有效值
influxQueryWrapper.samePrefixAndSuffix("Pq_HarmTP_", "totP_", HarmonicTimesUtil.harmonicTimesList(2, 50, 1));
InfluxQueryWrapper eq = influxQueryWrapper.eq(DataHarmpowerP::getLineId, lineId)
.eq(DataHarmpowerP::getProcess, Integer.toString(devsMap.get(devId).getProcess()))
.select(DataHarmpowerP::getLineId)
.select(DataHarmpowerP::getPhasicType)
.select(DataHarmpowerP::getValueType)
//位移功率因数
.select("Pq_DF","df")
.select("Pq_DF", "df")
//视在功率因素
.select("Pq_PF","pf")
//三相功功率
.select("Pq_TotP","p")
.select("Pq_PF", "pf")
//A、B、C三相功功率
.select("Pq_P", "p")
//基波有功功率
.select("Pq_FundP","p_1")
.select("Pq_FundP", "p_1")
//三相总视在功率因数
.select("Pq_TotPF", "totPf")
//三相总位移功率因数
.select("Pq_TotDF", "totDf")
//三相总功率因数
.select("Pq_TotP", "totP")
//三相总基波有功功率
.select("Pq_TotHarmP", "totP1")
.between(DataHarmpowerP::getTime, startTime, endTime)
.eq(DataHarmpowerP::getQualityFlag, "0");
if (Objects.isNull(po.getLineNo())) {

View File

@@ -26,6 +26,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.lang.reflect.Method;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
@@ -124,66 +125,13 @@ public class InfluxdbDataHarmpowerQImpl extends MppServiceImpl<RStatDataHarmPowe
valueTypeMap.forEach((valueType,valueTypeList)->{
CommonMinuteDto.ValueType value = new CommonMinuteDto.ValueType();
value.setValueType(valueType);
//规定好集合指标参数
List<Double> data1 = valueTypeList.stream().map(DataHarmpowerQ::getQ).collect(Collectors.toList());
List<Double> data12 = valueTypeList.stream().map(DataHarmpowerQ::getQ1).collect(Collectors.toList());
List<Double> data13 = valueTypeList.stream().map(DataHarmpowerQ::getQ2).collect(Collectors.toList());
List<Double> data14 = valueTypeList.stream().map(DataHarmpowerQ::getQ3).collect(Collectors.toList());
List<Double> data15 = valueTypeList.stream().map(DataHarmpowerQ::getQ4).collect(Collectors.toList());
List<Double> data16 = valueTypeList.stream().map(DataHarmpowerQ::getQ5).collect(Collectors.toList());
List<Double> data17 = valueTypeList.stream().map(DataHarmpowerQ::getQ6).collect(Collectors.toList());
List<Double> data18 = valueTypeList.stream().map(DataHarmpowerQ::getQ7).collect(Collectors.toList());
List<Double> data19 = valueTypeList.stream().map(DataHarmpowerQ::getQ8).collect(Collectors.toList());
List<Double> data20 = valueTypeList.stream().map(DataHarmpowerQ::getQ9).collect(Collectors.toList());
List<Double> data21 = valueTypeList.stream().map(DataHarmpowerQ::getQ10).collect(Collectors.toList());
List<Double> data22 = valueTypeList.stream().map(DataHarmpowerQ::getQ11).collect(Collectors.toList());
List<Double> data23 = valueTypeList.stream().map(DataHarmpowerQ::getQ12).collect(Collectors.toList());
List<Double> data24 = valueTypeList.stream().map(DataHarmpowerQ::getQ13).collect(Collectors.toList());
List<Double> data25 = valueTypeList.stream().map(DataHarmpowerQ::getQ14).collect(Collectors.toList());
List<Double> data26 = valueTypeList.stream().map(DataHarmpowerQ::getQ15).collect(Collectors.toList());
List<Double> data27 = valueTypeList.stream().map(DataHarmpowerQ::getQ16).collect(Collectors.toList());
List<Double> data28 = valueTypeList.stream().map(DataHarmpowerQ::getQ17).collect(Collectors.toList());
List<Double> data29 = valueTypeList.stream().map(DataHarmpowerQ::getQ18).collect(Collectors.toList());
List<Double> data30 = valueTypeList.stream().map(DataHarmpowerQ::getQ19).collect(Collectors.toList());
List<Double> data31 = valueTypeList.stream().map(DataHarmpowerQ::getQ20).collect(Collectors.toList());
List<Double> data32 = valueTypeList.stream().map(DataHarmpowerQ::getQ21).collect(Collectors.toList());
List<Double> data33 = valueTypeList.stream().map(DataHarmpowerQ::getQ22).collect(Collectors.toList());
List<Double> data34 = valueTypeList.stream().map(DataHarmpowerQ::getQ23).collect(Collectors.toList());
List<Double> data35 = valueTypeList.stream().map(DataHarmpowerQ::getQ24).collect(Collectors.toList());
List<Double> data36 = valueTypeList.stream().map(DataHarmpowerQ::getQ25).collect(Collectors.toList());
List<Double> data37 = valueTypeList.stream().map(DataHarmpowerQ::getQ26).collect(Collectors.toList());
List<Double> data38 = valueTypeList.stream().map(DataHarmpowerQ::getQ27).collect(Collectors.toList());
List<Double> data39 = valueTypeList.stream().map(DataHarmpowerQ::getQ28).collect(Collectors.toList());
List<Double> data40 = valueTypeList.stream().map(DataHarmpowerQ::getQ29).collect(Collectors.toList());
List<Double> data41 = valueTypeList.stream().map(DataHarmpowerQ::getQ30).collect(Collectors.toList());
List<Double> data42 = valueTypeList.stream().map(DataHarmpowerQ::getQ31).collect(Collectors.toList());
List<Double> data43 = valueTypeList.stream().map(DataHarmpowerQ::getQ32).collect(Collectors.toList());
List<Double> data44 = valueTypeList.stream().map(DataHarmpowerQ::getQ33).collect(Collectors.toList());
List<Double> data45 = valueTypeList.stream().map(DataHarmpowerQ::getQ34).collect(Collectors.toList());
List<Double> data46 = valueTypeList.stream().map(DataHarmpowerQ::getQ35).collect(Collectors.toList());
List<Double> data47 = valueTypeList.stream().map(DataHarmpowerQ::getQ36).collect(Collectors.toList());
List<Double> data48 = valueTypeList.stream().map(DataHarmpowerQ::getQ37).collect(Collectors.toList());
List<Double> data49 = valueTypeList.stream().map(DataHarmpowerQ::getQ38).collect(Collectors.toList());
List<Double> data50 = valueTypeList.stream().map(DataHarmpowerQ::getQ39).collect(Collectors.toList());
List<Double> data51 = valueTypeList.stream().map(DataHarmpowerQ::getQ40).collect(Collectors.toList());
List<Double> data52 = valueTypeList.stream().map(DataHarmpowerQ::getQ41).collect(Collectors.toList());
List<Double> data53 = valueTypeList.stream().map(DataHarmpowerQ::getQ42).collect(Collectors.toList());
List<Double> data54 = valueTypeList.stream().map(DataHarmpowerQ::getQ43).collect(Collectors.toList());
List<Double> data55 = valueTypeList.stream().map(DataHarmpowerQ::getQ44).collect(Collectors.toList());
List<Double> data56 = valueTypeList.stream().map(DataHarmpowerQ::getQ45).collect(Collectors.toList());
List<Double> data57 = valueTypeList.stream().map(DataHarmpowerQ::getQ46).collect(Collectors.toList());
List<Double> data58 = valueTypeList.stream().map(DataHarmpowerQ::getQ47).collect(Collectors.toList());
List<Double> data59 = valueTypeList.stream().map(DataHarmpowerQ::getQ48).collect(Collectors.toList());
List<Double> data60 = valueTypeList.stream().map(DataHarmpowerQ::getQ49).collect(Collectors.toList());
List<Double> data61 = valueTypeList.stream().map(DataHarmpowerQ::getQ50).collect(Collectors.toList());
List<List<Double>> lists = Arrays.asList(data1,data12,data13,data14
,data15,data16,data17,data18,data19,data20,data21,data22,data23,data24
,data25,data26,data27,data28,data29,data30,data31,data32,data33,data34
,data35,data36,data37,data38,data39,data40,data41,data42,data43,data44
,data45,data46,data47,data48,data49,data50,data51,data52,data53,data54
,data55,data56,data57,data58,data59,data60,data61);
List<List<Double>> lists;
if (Objects.equals(phasicType, "T")) {
lists = extractDataLists(valueTypeList, "Tot");
} else {
lists = extractDataLists(valueTypeList, "");
}
value.setValueList(lists);
valueTypes.add(value);
});
@@ -197,6 +145,39 @@ public class InfluxdbDataHarmpowerQImpl extends MppServiceImpl<RStatDataHarmPowe
return result;
}
private List<List<Double>> extractDataLists(List<DataHarmpowerQ> dataList, String prefix) {
List<List<Double>> result = new ArrayList<>();
result.add(extractField(dataList, prefix + "Q"));
// Q1到Q50
for (int i = 1; i <= 50; i++) {
String fieldName = prefix + (i == 1 ? "Q1" : "Q" + i);
result.add(extractField(dataList, fieldName));
}
return result;
}
private List<Double> extractField(List<DataHarmpowerQ> dataList, String fieldName) {
try {
Method method = DataHarmpowerQ.class.getMethod("get" + capitalize(fieldName));
return dataList.stream()
.map(data -> {
try {
return (Double) method.invoke(data);
} catch (Exception e) {
throw new RuntimeException("Failed to get field: " + fieldName, e);
}
})
.collect(Collectors.toList());
} catch (NoSuchMethodException e) {
throw new RuntimeException("Field not found: " + fieldName, e);
}
}
private String capitalize(String str) {
if (str == null || str.isEmpty()) return str;
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
@Override
public void addList(List<DataHarmPowerQDto> list) {
@@ -290,16 +271,23 @@ public class InfluxdbDataHarmpowerQImpl extends MppServiceImpl<RStatDataHarmPowe
String devId = lineMap.get(lineId).getDeviceId();
CsLinePO po = lineMap.get(lineId);
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerQ.class);
//A、B、C谐波无功功率有效值
influxQueryWrapper.samePrefixAndSuffix("Pq_HarmQ_", "q_", HarmonicTimesUtil.harmonicTimesList(2, 50, 1));
//三相总 谐波有功功率有效值
influxQueryWrapper.samePrefixAndSuffix("Pq_HarmTQ_", "totQ_", HarmonicTimesUtil.harmonicTimesList(2, 50, 1));
influxQueryWrapper.eq(DataHarmpowerQ::getLineId, lineId)
.eq(DataHarmpowerQ::getProcess,Integer.toString(devsMap.get(devId).getProcess()))
.select(DataHarmpowerQ::getLineId)
.select(DataHarmpowerQ::getPhasicType)
.select(DataHarmpowerQ::getValueType)
//三相无功功率
.select("Pq_TotQ","q")
//A、B、C三相无功功率
.select("Pq_Q", "q")
//基波无功功率
.select("Pq_FundQ","q_1")
//总无功功率
.select("Pq_TotQ","totQ")
//基波无功功率(T)
.select("Pq_TotHarmQ","totQ1")
.between(DataHarmpowerQ::getTime, startTime, endTime)
.eq(DataHarmpowerQ::getQualityFlag, "0");
if (Objects.isNull(po.getLineNo())) {

View File

@@ -26,6 +26,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.lang.reflect.Method;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
@@ -124,66 +125,12 @@ public class InfluxdbDataHarmpowerSImpl extends MppServiceImpl<RStatDataHarmPowe
valueTypeMap.forEach((valueType,valueTypeList)->{
CommonMinuteDto.ValueType value = new CommonMinuteDto.ValueType();
value.setValueType(valueType);
//规定好集合指标参数
List<Double> data1 = valueTypeList.stream().map(DataHarmpowerS::getS).collect(Collectors.toList());
List<Double> data12 = valueTypeList.stream().map(DataHarmpowerS::getS1).collect(Collectors.toList());
List<Double> data13 = valueTypeList.stream().map(DataHarmpowerS::getS2).collect(Collectors.toList());
List<Double> data14 = valueTypeList.stream().map(DataHarmpowerS::getS3).collect(Collectors.toList());
List<Double> data15 = valueTypeList.stream().map(DataHarmpowerS::getS4).collect(Collectors.toList());
List<Double> data16 = valueTypeList.stream().map(DataHarmpowerS::getS5).collect(Collectors.toList());
List<Double> data17 = valueTypeList.stream().map(DataHarmpowerS::getS6).collect(Collectors.toList());
List<Double> data18 = valueTypeList.stream().map(DataHarmpowerS::getS7).collect(Collectors.toList());
List<Double> data19 = valueTypeList.stream().map(DataHarmpowerS::getS8).collect(Collectors.toList());
List<Double> data20 = valueTypeList.stream().map(DataHarmpowerS::getS9).collect(Collectors.toList());
List<Double> data21 = valueTypeList.stream().map(DataHarmpowerS::getS10).collect(Collectors.toList());
List<Double> data22 = valueTypeList.stream().map(DataHarmpowerS::getS11).collect(Collectors.toList());
List<Double> data23 = valueTypeList.stream().map(DataHarmpowerS::getS12).collect(Collectors.toList());
List<Double> data24 = valueTypeList.stream().map(DataHarmpowerS::getS13).collect(Collectors.toList());
List<Double> data25 = valueTypeList.stream().map(DataHarmpowerS::getS14).collect(Collectors.toList());
List<Double> data26 = valueTypeList.stream().map(DataHarmpowerS::getS15).collect(Collectors.toList());
List<Double> data27 = valueTypeList.stream().map(DataHarmpowerS::getS16).collect(Collectors.toList());
List<Double> data28 = valueTypeList.stream().map(DataHarmpowerS::getS17).collect(Collectors.toList());
List<Double> data29 = valueTypeList.stream().map(DataHarmpowerS::getS18).collect(Collectors.toList());
List<Double> data30 = valueTypeList.stream().map(DataHarmpowerS::getS19).collect(Collectors.toList());
List<Double> data31 = valueTypeList.stream().map(DataHarmpowerS::getS20).collect(Collectors.toList());
List<Double> data32 = valueTypeList.stream().map(DataHarmpowerS::getS21).collect(Collectors.toList());
List<Double> data33 = valueTypeList.stream().map(DataHarmpowerS::getS22).collect(Collectors.toList());
List<Double> data34 = valueTypeList.stream().map(DataHarmpowerS::getS23).collect(Collectors.toList());
List<Double> data35 = valueTypeList.stream().map(DataHarmpowerS::getS24).collect(Collectors.toList());
List<Double> data36 = valueTypeList.stream().map(DataHarmpowerS::getS25).collect(Collectors.toList());
List<Double> data37 = valueTypeList.stream().map(DataHarmpowerS::getS26).collect(Collectors.toList());
List<Double> data38 = valueTypeList.stream().map(DataHarmpowerS::getS27).collect(Collectors.toList());
List<Double> data39 = valueTypeList.stream().map(DataHarmpowerS::getS28).collect(Collectors.toList());
List<Double> data40 = valueTypeList.stream().map(DataHarmpowerS::getS29).collect(Collectors.toList());
List<Double> data41 = valueTypeList.stream().map(DataHarmpowerS::getS30).collect(Collectors.toList());
List<Double> data42 = valueTypeList.stream().map(DataHarmpowerS::getS31).collect(Collectors.toList());
List<Double> data43 = valueTypeList.stream().map(DataHarmpowerS::getS32).collect(Collectors.toList());
List<Double> data44 = valueTypeList.stream().map(DataHarmpowerS::getS33).collect(Collectors.toList());
List<Double> data45 = valueTypeList.stream().map(DataHarmpowerS::getS34).collect(Collectors.toList());
List<Double> data46 = valueTypeList.stream().map(DataHarmpowerS::getS35).collect(Collectors.toList());
List<Double> data47 = valueTypeList.stream().map(DataHarmpowerS::getS36).collect(Collectors.toList());
List<Double> data48 = valueTypeList.stream().map(DataHarmpowerS::getS37).collect(Collectors.toList());
List<Double> data49 = valueTypeList.stream().map(DataHarmpowerS::getS38).collect(Collectors.toList());
List<Double> data50 = valueTypeList.stream().map(DataHarmpowerS::getS39).collect(Collectors.toList());
List<Double> data51 = valueTypeList.stream().map(DataHarmpowerS::getS40).collect(Collectors.toList());
List<Double> data52 = valueTypeList.stream().map(DataHarmpowerS::getS41).collect(Collectors.toList());
List<Double> data53 = valueTypeList.stream().map(DataHarmpowerS::getS42).collect(Collectors.toList());
List<Double> data54 = valueTypeList.stream().map(DataHarmpowerS::getS43).collect(Collectors.toList());
List<Double> data55 = valueTypeList.stream().map(DataHarmpowerS::getS44).collect(Collectors.toList());
List<Double> data56 = valueTypeList.stream().map(DataHarmpowerS::getS45).collect(Collectors.toList());
List<Double> data57 = valueTypeList.stream().map(DataHarmpowerS::getS46).collect(Collectors.toList());
List<Double> data58 = valueTypeList.stream().map(DataHarmpowerS::getS47).collect(Collectors.toList());
List<Double> data59 = valueTypeList.stream().map(DataHarmpowerS::getS48).collect(Collectors.toList());
List<Double> data60 = valueTypeList.stream().map(DataHarmpowerS::getS49).collect(Collectors.toList());
List<Double> data61 = valueTypeList.stream().map(DataHarmpowerS::getS50).collect(Collectors.toList());
List<List<Double>> lists = Arrays.asList(data1,data12,data13,data14
,data15,data16,data17,data18,data19,data20,data21,data22,data23,data24
,data25,data26,data27,data28,data29,data30,data31,data32,data33,data34
,data35,data36,data37,data38,data39,data40,data41,data42,data43,data44
,data45,data46,data47,data48,data49,data50,data51,data52,data53,data54
,data55,data56,data57,data58,data59,data60,data61);
List<List<Double>> lists;
if (Objects.equals(phasicType, "T")) {
lists = extractDataLists(valueTypeList, "Tot");
} else {
lists = extractDataLists(valueTypeList, "");
}
value.setValueList(lists);
valueTypes.add(value);
});
@@ -197,6 +144,39 @@ public class InfluxdbDataHarmpowerSImpl extends MppServiceImpl<RStatDataHarmPowe
return result;
}
private List<List<Double>> extractDataLists(List<DataHarmpowerS> dataList, String prefix) {
List<List<Double>> result = new ArrayList<>();
result.add(extractField(dataList, prefix + "S"));
// Q1到Q50
for (int i = 1; i <= 50; i++) {
String fieldName = prefix + (i == 1 ? "S1" : "S" + i);
result.add(extractField(dataList, fieldName));
}
return result;
}
private List<Double> extractField(List<DataHarmpowerS> dataList, String fieldName) {
try {
Method method = DataHarmpowerS.class.getMethod("get" + capitalize(fieldName));
return dataList.stream()
.map(data -> {
try {
return (Double) method.invoke(data);
} catch (Exception e) {
throw new RuntimeException("Failed to get field: " + fieldName, e);
}
})
.collect(Collectors.toList());
} catch (NoSuchMethodException e) {
throw new RuntimeException("Field not found: " + fieldName, e);
}
}
private String capitalize(String str) {
if (str == null || str.isEmpty()) return str;
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
@Override
public void addList(List<DataHarmPowerSDto> list) {
@@ -290,16 +270,23 @@ public class InfluxdbDataHarmpowerSImpl extends MppServiceImpl<RStatDataHarmPowe
String devId = lineMap.get(lineId).getDeviceId();
CsLinePO po = lineMap.get(lineId);
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerS.class);
//A、B、C谐波视在功率有效值
influxQueryWrapper.samePrefixAndSuffix("Pq_HarmS_", "s_", HarmonicTimesUtil.harmonicTimesList(2, 50, 1));
//三相总 谐波视在功率有效值
influxQueryWrapper.samePrefixAndSuffix("Pq_HarmTS_", "totS_", HarmonicTimesUtil.harmonicTimesList(2, 50, 1));
influxQueryWrapper.eq(DataHarmpowerS::getLineId, lineId)
.eq(DataHarmpowerS::getProcess,Integer.toString(devsMap.get(devId).getProcess()))
.select(DataHarmpowerS::getLineId)
.select(DataHarmpowerS::getPhasicType)
.select(DataHarmpowerS::getValueType)
//三相总视在功率
.select("Pq_TotS","s")
//A、B、C视在功率
.select("Pq_S","s")
//基波视在功率
.select("Pq_FundS","s_1")
//总视在功率
.select("Pq_TotS","totS")
//基波视在功率T
.select("Pq_TotHarmS","totS1")
.between(DataHarmpowerS::getTime, startTime, endTime)
.eq(DataHarmpowerS::getQualityFlag, "0");
if (Objects.isNull(po.getLineNo())) {