代码调整

This commit is contained in:
2023-05-05 13:39:49 +08:00
parent d4ba963d98
commit 285db14844
44 changed files with 2731 additions and 24 deletions

View File

@@ -0,0 +1,9 @@
package com.njcn.influx.service;
/**
* @author hongawen
* @version 1.0.0
* @date 2023年05月05日 09:00
*/
public interface CldStatisticsFlowService {
}

View File

@@ -0,0 +1,15 @@
package com.njcn.influx.service;
import com.njcn.influx.pojo.dto.DataFlickerDTO;
import java.util.List;
/**
* @author hongawen
* @version 1.0.0
* @date 2023年05月05日 09:04
*/
public interface DataFlickerService {
List<DataFlickerDTO> getDataFlicker(String lineIndex, String startTime, String endTime);
}

View File

@@ -0,0 +1,9 @@
package com.njcn.influx.service;
/**
* @author hongawen
* @version 1.0.0
* @date 2023年05月05日 09:10
*/
public interface DataFlucService {
}

View File

@@ -0,0 +1,9 @@
package com.njcn.influx.service;
/**
* @author hongawen
* @version 1.0.0
* @date 2023年05月05日 09:46
*/
public interface DataHarmPhasicIService {
}

View File

@@ -0,0 +1,9 @@
package com.njcn.influx.service;
/**
* @author hongawen
* @version 1.0.0
* @date 2023年05月05日 09:50
*/
public interface DataHarmPhasicVService {
}

View File

@@ -0,0 +1,9 @@
package com.njcn.influx.service;
/**
* @author hongawen
* @version 1.0.0
* @date 2023年05月05日 09:51
*/
public interface DataHarmPowerPService {
}

View File

@@ -0,0 +1,14 @@
package com.njcn.influx.service.impl;
import com.njcn.influx.service.CldStatisticsFlowService;
import org.springframework.stereotype.Service;
/**
* @author hongawen
* @version 1.0.0
* @date 2023年05月05日 09:00
*/
@Service
public class CldStatisticsFlowServiceImpl implements CldStatisticsFlowService {
}

View File

@@ -0,0 +1,143 @@
package com.njcn.influx.service.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.njcn.influx.mapper.DataFlickerMapper;
import com.njcn.influx.pojo.dto.DataFlickerDTO;
import com.njcn.influx.pojo.po.DataFlicker;
import com.njcn.influx.query.InfluxQueryWrapper;
import com.njcn.influx.service.DataFlickerService;
import com.njcn.influx.utils.InfluxDbUtil;
import org.influxdb.dto.QueryResult;
import org.influxdb.impl.InfluxDBResultMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
* @author hongawen
* @version 1.0.0
* @date 2023年05月05日 09:05
*/
@Service
public class DataFlickerServiceImpl implements DataFlickerService {
@Resource
private DataFlickerMapper dataFlickerMapper;
@Override
public List<DataFlickerDTO> getDataFlicker(String lineIndex, String startTime, String endTime) {
InfluxDbUtil influxDbUtils = new InfluxDbUtil("admin", "123456", "http://192.168.1.16:8086", "pqsbase_sjzx", "autogen");
List<DataFlickerDTO> result = new ArrayList<>();
// StringBuilder stringBuilder = new StringBuilder();
// stringBuilder.append("line_id='").append(lineIndex).append("' and ");
// //最小值
// String sql1 = "select min(fluc) AS fluc,min(plt) AS plt,min(pst) AS pst from data_flicker where " + stringBuilder + " time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag tz('Asia/Shanghai')";
// QueryResult sqlResult1 = influxDbUtils.query(sql1);
// InfluxDBResultMapper resultMapper1 = new InfluxDBResultMapper();
// List<DataFlickerDTO> list1 = resultMapper1.toPOJO(sqlResult1, DataFlickerDTO.class);
// list1.forEach(item -> {
// item.setValueType("MIN");
// });
// //最大值
// String sql2 = "select max(fluc) AS fluc,max(plt) AS plt,max(pst) AS pst from data_flicker where " + stringBuilder + " time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag tz('Asia/Shanghai')";
// QueryResult sqlResult2 = influxDbUtils.query(sql2);
// InfluxDBResultMapper resultMapper2 = new InfluxDBResultMapper();
// List<DataFlickerDTO> list2 = resultMapper2.toPOJO(sqlResult2, DataFlickerDTO.class);
// list2.forEach(item -> {
// item.setValueType("MAX");
// });
// //平均值
// String sql3 = "select mean(fluc) AS fluc,mean(plt) AS plt,mean(pst) AS pst from data_flicker where " + stringBuilder + " time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag tz('Asia/Shanghai')";
// QueryResult sqlResult3 = influxDbUtils.query(sql3);
// InfluxDBResultMapper resultMapper3 = new InfluxDBResultMapper();
// List<DataFlickerDTO> list3 = resultMapper3.toPOJO(sqlResult3, DataFlickerDTO.class);
// list3.forEach(item -> {
// item.setValueType("AVG");
// });
// //CP95值
// String sql4 = "select percentile(fluc,95) AS fluc,percentile(plt,95) AS plt,percentile(pst,95) AS pst from data_flicker where " + stringBuilder + " time >= '" + startTime + "' and time <= '" + endTime + "' group by line_id,phasic_type,quality_flag tz('Asia/Shanghai')";
// QueryResult sqlResult4 = influxDbUtils.query(sql4);
// InfluxDBResultMapper resultMapper4 = new InfluxDBResultMapper();
// List<DataFlickerDTO> list4 = resultMapper4.toPOJO(sqlResult4, DataFlickerDTO.class);
// list4.forEach(item -> {
// item.setValueType("CP95");
// });
// result.addAll(list1);
// result.addAll(list2);
// result.addAll(list3);
// result.addAll(list4);
/////改造前↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑改造后↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
//最小值
List<DataFlickerDTO> result1 ;
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataFlicker.class, DataFlickerDTO.class);
influxQueryWrapper.eq(DataFlicker::getLineId, lineIndex)
.min(DataFlicker::getFluc)
.min(DataFlicker::getPlt)
.min(DataFlicker::getPst)
.groupBy(DataFlicker::getLineId,DataFlicker::getPhaseType,DataFlicker::getQualityFlag)
.between(DataFlicker::getTime, startTime, endTime);
result1 = dataFlickerMapper.getStatisticsByWraper(influxQueryWrapper);
result1.forEach(item -> {
item.setValueType("MIN");
});
//最大值
List<DataFlickerDTO> result2 ;
influxQueryWrapper.initSql();
influxQueryWrapper.eq(DataFlicker::getLineId, lineIndex)
.max(DataFlicker::getFluc)
.max(DataFlicker::getPlt)
.max(DataFlicker::getPst)
.groupBy(DataFlicker::getLineId,DataFlicker::getPhaseType,DataFlicker::getQualityFlag)
.between(DataFlicker::getTime, startTime, endTime);
result2 = dataFlickerMapper.getStatisticsByWraper(influxQueryWrapper);
result2.forEach(item -> {
item.setValueType("MAX");
});
//平均值
List<DataFlickerDTO> result3 ;
influxQueryWrapper.initSql();
influxQueryWrapper.eq(DataFlicker::getLineId, lineIndex)
.mean(DataFlicker::getFluc)
.mean(DataFlicker::getPlt)
.mean(DataFlicker::getPst)
.groupBy(DataFlicker::getLineId,DataFlicker::getPhaseType,DataFlicker::getQualityFlag)
.between(DataFlicker::getTime, startTime, endTime);
result3 = dataFlickerMapper.getStatisticsByWraper(influxQueryWrapper);
result3.forEach(item -> {
item.setValueType("AVG");
});
List<DataFlickerDTO> result4 ;
influxQueryWrapper.initSql();
influxQueryWrapper.eq(DataFlicker::getLineId, lineIndex)
.percentile(DataFlicker::getFluc, 95)
.percentile(DataFlicker::getPlt, 95)
.percentile(DataFlicker::getPst, 95)
.groupBy(DataFlicker::getLineId,DataFlicker::getPhaseType,DataFlicker::getQualityFlag)
.between(DataFlicker::getTime, startTime, endTime);
//CP95值
result4 = dataFlickerMapper.getStatisticsByWraper(influxQueryWrapper);
result4.forEach(item -> {
item.setValueType("CP95");
});
List<DataFlickerDTO> result5 = new ArrayList<>();
result5.addAll(result1);
result5.addAll(result2);
result5.addAll(result3);
result5.addAll(result4);
ObjectMapper objectMapper = new ObjectMapper();
try {
System.out.println(objectMapper.writeValueAsString(result));
System.out.println(objectMapper.writeValueAsString(result5));
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
return result;
}
}

View File

@@ -0,0 +1,12 @@
package com.njcn.influx.service.impl;
import org.springframework.stereotype.Service;
/**
* @author hongawen
* @version 1.0.0
* @date 2023年05月05日 09:10
*/
@Service
public class DataFlucServiceImpl {
}

View File

@@ -0,0 +1,13 @@
package com.njcn.influx.service.impl;
import com.njcn.influx.service.DataHarmPhasicIService;
import org.springframework.stereotype.Service;
/**
* @author hongawen
* @version 1.0.0
* @date 2023年05月05日 09:46
*/
@Service
public class DataHarmPhasicIServiceImpl implements DataHarmPhasicIService {
}

View File

@@ -0,0 +1,13 @@
package com.njcn.influx.service.impl;
import com.njcn.influx.service.DataHarmPhasicVService;
import org.springframework.stereotype.Service;
/**
* @author hongawen
* @version 1.0.0
* @date 2023年05月05日 09:50
*/
@Service
public class DataHarmPhasicVServiceImpl implements DataHarmPhasicVService {
}

View File

@@ -0,0 +1,13 @@
package com.njcn.influx.service.impl;
import com.njcn.influx.service.DataHarmPowerPService;
import org.springframework.stereotype.Service;
/**
* @author hongawen
* @version 1.0.0
* @date 2023年05月05日 09:51
*/
@Service
public class DataHarmPowerPServiceImpl implements DataHarmPowerPService {
}