代码调整
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
package com.njcn.influx.service;
|
||||
|
||||
/**
|
||||
* @author hongawen
|
||||
* @version 1.0.0
|
||||
* @date 2023年05月05日 09:00
|
||||
*/
|
||||
public interface CldStatisticsFlowService {
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.njcn.influx.service;
|
||||
|
||||
/**
|
||||
* @author hongawen
|
||||
* @version 1.0.0
|
||||
* @date 2023年05月05日 09:10
|
||||
*/
|
||||
public interface DataFlucService {
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.njcn.influx.service;
|
||||
|
||||
/**
|
||||
* @author hongawen
|
||||
* @version 1.0.0
|
||||
* @date 2023年05月05日 09:46
|
||||
*/
|
||||
public interface DataHarmPhasicIService {
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.njcn.influx.service;
|
||||
|
||||
/**
|
||||
* @author hongawen
|
||||
* @version 1.0.0
|
||||
* @date 2023年05月05日 09:50
|
||||
*/
|
||||
public interface DataHarmPhasicVService {
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.njcn.influx.service;
|
||||
|
||||
/**
|
||||
* @author hongawen
|
||||
* @version 1.0.0
|
||||
* @date 2023年05月05日 09:51
|
||||
*/
|
||||
public interface DataHarmPowerPService {
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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 {
|
||||
}
|
||||
@@ -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 {
|
||||
}
|
||||
@@ -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 {
|
||||
}
|
||||
@@ -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 {
|
||||
}
|
||||
Reference in New Issue
Block a user