河北算法调整

This commit is contained in:
wr
2026-02-26 15:41:16 +08:00
parent e1d17c63a2
commit 2c3c716607

View File

@@ -1,5 +1,6 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.line; package com.njcn.prepare.harmonic.service.mysql.Impl.line;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.date.LocalDateTimeUtil;
@@ -26,6 +27,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Comparator;
import java.util.List; import java.util.List;
/** /**
@@ -1851,10 +1853,12 @@ public class DayDataServiceImpl implements DayDataService {
.groupBy(DataPlt::getLineId, DataPlt::getPhaseType, DataPlt::getQualityFlag, DataPlt::getValueType) .groupBy(DataPlt::getLineId, DataPlt::getPhaseType, DataPlt::getQualityFlag, DataPlt::getValueType)
.between(DataPlt::getTime, startTime, endTime); .between(DataPlt::getTime, startTime, endTime);
List<DataPlt> result1 = dataPltMapper.getStatisticsByWraper(influxQueryWrapper); List<DataPlt> result1 = dataPltMapper.getStatisticsByWraper(influxQueryWrapper);
result1.forEach(item -> { if(CollUtil.isNotEmpty(result1)){
item.setValueType(InfluxDbSqlConstant.MIN); result1.sort(Comparator.comparing(DataPlt::getPlt));
}); DataPlt dataPlt = result1.get(0);
result.addAll(result1); dataPlt.setValueType(InfluxDbSqlConstant.MIN);
result.add(dataPlt);
}
//最大值 //最大值
InfluxQueryWrapper influxQueryWrapper2 = new InfluxQueryWrapper(DataPlt.class); InfluxQueryWrapper influxQueryWrapper2 = new InfluxQueryWrapper(DataPlt.class);
influxQueryWrapper2.regular(DataPlt::getLineId, lineIndex) influxQueryWrapper2.regular(DataPlt::getLineId, lineIndex)
@@ -1862,10 +1866,13 @@ public class DayDataServiceImpl implements DayDataService {
.groupBy(DataPlt::getLineId, DataPlt::getPhaseType, DataPlt::getQualityFlag, DataPlt::getValueType) .groupBy(DataPlt::getLineId, DataPlt::getPhaseType, DataPlt::getQualityFlag, DataPlt::getValueType)
.between(DataPlt::getTime, startTime, endTime); .between(DataPlt::getTime, startTime, endTime);
List<DataPlt> result2 = dataPltMapper.getStatisticsByWraper(influxQueryWrapper2); List<DataPlt> result2 = dataPltMapper.getStatisticsByWraper(influxQueryWrapper2);
result2.forEach(item -> { if(CollUtil.isNotEmpty(result2)){
item.setValueType(InfluxDbSqlConstant.MAX); result2.sort(Comparator.comparing(DataPlt::getPlt).reversed());
}); DataPlt dataPlt = result2.get(0);
result.addAll(result2); dataPlt.setValueType(InfluxDbSqlConstant.MAX);
result.add(dataPlt);
}
//平均值 //平均值
InfluxQueryWrapper influxQueryWrapper3 = new InfluxQueryWrapper(DataPlt.class); InfluxQueryWrapper influxQueryWrapper3 = new InfluxQueryWrapper(DataPlt.class);
influxQueryWrapper3.regular(DataPlt::getLineId, lineIndex) influxQueryWrapper3.regular(DataPlt::getLineId, lineIndex)
@@ -1873,10 +1880,14 @@ public class DayDataServiceImpl implements DayDataService {
.groupBy(DataPlt::getLineId, DataPlt::getPhaseType, DataPlt::getQualityFlag, DataPlt::getValueType) .groupBy(DataPlt::getLineId, DataPlt::getPhaseType, DataPlt::getQualityFlag, DataPlt::getValueType)
.between(DataPlt::getTime, startTime, endTime); .between(DataPlt::getTime, startTime, endTime);
List<DataPlt> result3 = dataPltMapper.getStatisticsByWraper(influxQueryWrapper3); List<DataPlt> result3 = dataPltMapper.getStatisticsByWraper(influxQueryWrapper3);
result3.forEach(item -> { if(CollUtil.isNotEmpty(result3)){
item.setValueType(InfluxDbSqlConstant.AVG_WEB); double asDouble = result3.stream().mapToDouble(DataPlt::getPlt).average().getAsDouble();
}); DataPlt dataPlt = result3.get(0);
result.addAll(result3); dataPlt.setValueType(InfluxDbSqlConstant.AVG_WEB);
dataPlt.setPlt(asDouble);
result.add(dataPlt);
}
//CP95(取平均值的CP95值) //CP95(取平均值的CP95值)
InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataPlt.class); InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataPlt.class);
influxQueryWrapper4.regular(DataPlt::getLineId, lineIndex) influxQueryWrapper4.regular(DataPlt::getLineId, lineIndex)
@@ -1884,10 +1895,12 @@ public class DayDataServiceImpl implements DayDataService {
.groupBy(DataPlt::getLineId, DataPlt::getPhaseType, DataPlt::getQualityFlag, DataPlt::getValueType) .groupBy(DataPlt::getLineId, DataPlt::getPhaseType, DataPlt::getQualityFlag, DataPlt::getValueType)
.between(DataPlt::getTime, startTime, endTime); .between(DataPlt::getTime, startTime, endTime);
List<DataPlt> result4 = dataPltMapper.getStatisticsByWraper(influxQueryWrapper4); List<DataPlt> result4 = dataPltMapper.getStatisticsByWraper(influxQueryWrapper4);
result4.forEach(item -> { if(CollUtil.isNotEmpty(result4)){
item.setValueType(InfluxDbSqlConstant.CP95); result4.sort(Comparator.comparing(DataPlt::getPlt).reversed());
}); DataPlt dataPlt = result4.get(0);
result.addAll(result4); dataPlt.setValueType(InfluxDbSqlConstant.CP95);
result.add(dataPlt);
}
return result; return result;
} }