算法调整

This commit is contained in:
2024-01-31 12:41:45 +08:00
parent ecaa3492fa
commit b431b0bb15
2 changed files with 11 additions and 5 deletions

View File

@@ -556,6 +556,7 @@ public class DayDataServiceImpl implements DayDataService {
}
@Override
@Transactional(rollbackFor = {Exception.class})
public void dataPltHardler(CalculatedParam calculatedParam) {
log.info(LocalDateTime.now() + "data_plt转r_stat_data_plt_d开始=====》");
List<DataPlt> list16 = new ArrayList<>();
@@ -1820,34 +1821,39 @@ public class DayDataServiceImpl implements DayDataService {
//最小值
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataPlt.class);
influxQueryWrapper.regular(DataInHarmRateV::getLineId, lineIndex)
.eq(DataPlt::getValueType, InfluxDbSqlConstant.MIN)
.min(DataPlt::getPlt)
.groupBy(DataPlt::getLineId,DataPlt::getPhaseType,DataPlt::getQualityFlag,DataPlt::getValueType)
.between(DataPlt::getTime, startTime, endTime);
List<DataPlt> result1 = dataPltMapper.getStatisticsByWraper(influxQueryWrapper);
result1.forEach(item->{
item.setValueType(InfluxDbSqlConstant.MIN);
});
result.addAll(result1);
//最大值
InfluxQueryWrapper influxQueryWrapper2 = new InfluxQueryWrapper(DataPlt.class);
influxQueryWrapper2.regular(DataPlt::getLineId, lineIndex)
.eq(DataPlt::getValueType, InfluxDbSqlConstant.MAX)
.max(DataPlt::getPlt)
.groupBy(DataPlt::getLineId,DataPlt::getPhaseType,DataPlt::getQualityFlag,DataPlt::getValueType)
.between(DataPlt::getTime, startTime, endTime);
List<DataPlt> result2 = dataPltMapper.getStatisticsByWraper(influxQueryWrapper2);
result2.forEach(item->{
item.setValueType(InfluxDbSqlConstant.MAX);
});
result.addAll(result2);
//平均值
InfluxQueryWrapper influxQueryWrapper3 = new InfluxQueryWrapper(DataPlt.class);
influxQueryWrapper3.regular(DataPlt::getLineId, lineIndex)
.eq(DataPlt::getValueType, InfluxDbSqlConstant.AVG_WEB)
.mean(DataPlt::getPlt)
.groupBy(DataPlt::getLineId,DataPlt::getPhaseType,DataPlt::getQualityFlag,DataPlt::getValueType)
.between(DataPlt::getTime, startTime, endTime);
List<DataPlt> result3 = dataPltMapper.getStatisticsByWraper(influxQueryWrapper3);
result3.forEach(item->{
item.setValueType(InfluxDbSqlConstant.AVG_WEB);
});
result.addAll(result3);
//CP95(取平均值的CP95值)
InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataPlt.class);
influxQueryWrapper4.regular(DataPlt::getLineId, lineIndex)
.eq(DataPlt::getValueType, InfluxDbSqlConstant.AVG_WEB)
.percentile(DataPlt::getPlt,95)
.groupBy(DataPlt::getLineId,DataPlt::getPhaseType,DataPlt::getQualityFlag,DataPlt::getValueType)
.between(DataPlt::getTime, startTime, endTime);

View File

@@ -219,7 +219,7 @@ public class LimitRateServiceImpl extends MppServiceImpl<LimitRatePOMapper, Limi
List<RStatLimitRateDPO> list = list1.stream().map(m -> {
list2.stream().filter(m2-> Objects.equals(m.getLineId(),m2.getLineId()) && Objects.equals(m.getPhasicType(),m2.getPhasicType())).forEach(m2-> {
m.setAllTime(m.getAllTime() + m2.getAllTime());
m.setFlickerAllTime(m.getFlickerOvertime() + m2.getFlickerAllTime());
m.setFlickerAllTime(m.getFlickerAllTime() + m2.getFlickerAllTime());
m.setFreqDevOvertime(m.getFreqDevOvertime() + m2.getFreqDevOvertime());
m.setVoltageDevOvertime(m.getVoltageDevOvertime() + m2.getVoltageDevOvertime());
m.setUbalanceOvertime(m.getUbalanceOvertime() + m2.getUbalanceOvertime());