定版bug修改
This commit is contained in:
@@ -55,6 +55,14 @@ import java.util.zip.ZipOutputStream;
|
||||
@RequiredArgsConstructor
|
||||
public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
|
||||
// 定义阈值常量(单位:百分比)
|
||||
final double[] EVENT_VALUE_THRESHOLDS = {90, 85, 70, 40, 10};
|
||||
// 定义持续时间阈值(单位:毫秒)
|
||||
final double[] DURATION_THRESHOLDS = {0.02, 0.1, 0.5, 1, 3, 20, 60, 180};
|
||||
|
||||
String[] labels = {"90%", "85%", "70%", "40%", "10%"};
|
||||
|
||||
|
||||
private final InfluxDbUtils influxDbUtils;
|
||||
|
||||
private final LineFeignClient lineFeignClient;
|
||||
@@ -66,76 +74,6 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
private final DicDataFeignClient dicDataFeignClient;
|
||||
|
||||
|
||||
/*@Override
|
||||
public Page<EventDetail> getEventAnalyse(EventBaseParam eventBaseParam) {
|
||||
|
||||
//查询sql语句
|
||||
StringBuilder stringResult = new StringBuilder(Param.SELECT).append(Param.EVENT_DETAIL).append(Param.WHERE).
|
||||
append("time >= '").append(DateUtil.beginOfDay(DateUtil.parse(eventBaseParam.getSearchBeginTime()))).append("' and ").append("time <= '").append(DateUtil.endOfDay(DateUtil.parse(eventBaseParam.getSearchEndTime()))).append("' and ")
|
||||
.append("line_id= '").append(eventBaseParam.getLineId()).append("'");
|
||||
|
||||
int i = (eventBaseParam.getPageNum() - 1) * eventBaseParam.getPageSize();
|
||||
stringResult.append("LIMIT ").append(eventBaseParam.getPageSize()).append(" OFFSET ").append(i).append(" tz('Asia/Shanghai')");
|
||||
|
||||
//查询sql语句总条数
|
||||
StringBuilder stringTotal = new StringBuilder("SELECT COUNT(num) as aa FROM ").append(Param.EVENT_DETAIL).append(" WHERE ").append("time >= '").append(DateUtil.beginOfDay(DateUtil.parse(eventBaseParam.getSearchBeginTime()))).append("' and ")
|
||||
.append("time <= '").append(DateUtil.endOfDay(DateUtil.parse(eventBaseParam.getSearchEndTime()))).append("' and ");
|
||||
stringTotal.append("line_id= '").append(eventBaseParam.getLineId()).append("' tz('Asia/Shanghai')");
|
||||
|
||||
//结果集
|
||||
QueryResult result = influxDbUtils.query(stringResult.toString());
|
||||
|
||||
//总条数
|
||||
QueryResult resultTotal = influxDbUtils.query(stringTotal.toString());
|
||||
//结果集映射到对象中
|
||||
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
|
||||
List<EventDetail> eventDetailList = influxDBResultMapper.toPOJO(result, EventDetail.class);
|
||||
|
||||
Page<EventDetail> page = new Page<>();
|
||||
long total = new BigDecimal(resultTotal.getResults().get(0).getSeries().get(0).getValues().get(0).get(1).toString()).longValue();
|
||||
page.setTotal(total);
|
||||
page.setRecords(eventDetailList);
|
||||
page.setCurrent(eventBaseParam.getPageNum());
|
||||
page.setSize(eventBaseParam.getPageSize());
|
||||
return page;
|
||||
}*/
|
||||
|
||||
/**
|
||||
* 时间无ID全查询
|
||||
*
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @return
|
||||
* @author xxy
|
||||
*/
|
||||
public QueryResult TimeQuery(String startTime, String endTime) {
|
||||
//构建sql语句
|
||||
String stringResult = Param.SELECT + Param.EVENT_DETAIL + Param.WHERE + "time >= '" +
|
||||
DateUtil.beginOfDay(DateUtil.parse(startTime)) +
|
||||
"' and " + "time <= '" +
|
||||
DateUtil.endOfDay(DateUtil.parse(endTime)) + "'" + Param.TZ_ASIA_SHANGHAI;
|
||||
//结果集映射到对象中
|
||||
return influxDbUtils.query(stringResult);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return
|
||||
* @author xxy
|
||||
* 时间区间查询监测点抽取
|
||||
*/
|
||||
public QueryResult MonitorQuery(StatisticsParam statisticsParam) {
|
||||
//构建sql语句
|
||||
String stringResult = Param.SELECT + Param.EVENT_DETAIL + Param.WHERE + "" + "time >= '" +
|
||||
DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime().toString())) +
|
||||
"' and " + "time <= '" +
|
||||
DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getEndTime().toString())) +
|
||||
"' and " + "line_id= '" +
|
||||
statisticsParam.getLineIndex() + "' " +
|
||||
Param.TZ_ASIA_SHANGHAI;
|
||||
//结果集映射到对象中
|
||||
return influxDbUtils.query(stringResult);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取电压暂态表及密度坐标图
|
||||
*
|
||||
@@ -377,139 +315,76 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
|
||||
@Override
|
||||
public List<DISDIPVO> eventDisdip(StatisticsParam statisticsParam) {
|
||||
List<DISDIPVO> result = new ArrayList<>();
|
||||
// 初始化结果数组(默认值为0)
|
||||
int[][] arr = new int[5][8];
|
||||
|
||||
/*List<EventDetail> info = new ArrayList<>();
|
||||
QueryResult query = MonitorQuery(statisticsParam);
|
||||
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
|
||||
info = influxDBResultMapper.toPOJO(query, EventDetail.class);*/
|
||||
|
||||
//查询监测点未处理暂态事件
|
||||
List<RmpEventDetailPO> info = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
||||
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime,DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
||||
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
||||
// 查询事件数据
|
||||
List<RmpEventDetailPO> events = eventDetailService.list(
|
||||
new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
||||
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()),
|
||||
RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
||||
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()),
|
||||
RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
||||
);
|
||||
|
||||
int[][] arr = new int[5][8];
|
||||
for (int i = 0; i < 5; i++) {
|
||||
for (int j = 0; j < 8; j++) {
|
||||
arr[i][j] = 0;
|
||||
// 分类统计事件
|
||||
for (RmpEventDetailPO event : events) {
|
||||
double eventValue = event.getFeatureAmplitude() * 100; // 转换为百分比
|
||||
double duration = event.getDuration();
|
||||
|
||||
// 确定事件等级(0=90%, 1=85%, ..., 4=10%)
|
||||
int level = getEventLevel(eventValue, EVENT_VALUE_THRESHOLDS);
|
||||
// 确定持续时间区间索引
|
||||
int durationIndex = getDurationIndex(duration, DURATION_THRESHOLDS);
|
||||
|
||||
if (level != -1 && durationIndex != -1) {
|
||||
arr[level][durationIndex]++;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < info.size(); i++) {
|
||||
Double eventvalue = info.get(i).getFeatureAmplitude();
|
||||
double persisttime = info.get(i).getDuration();
|
||||
if (eventvalue * 100 < 10) {
|
||||
if (persisttime < 20) {
|
||||
arr[4][0]++;
|
||||
} else if (persisttime < 100) {
|
||||
arr[4][1]++;
|
||||
} else if (persisttime < 500) {
|
||||
arr[4][2]++;
|
||||
} else if (persisttime < 1000) {
|
||||
arr[4][3]++;
|
||||
} else if (persisttime < 3000) {
|
||||
arr[4][4]++;
|
||||
} else if (persisttime < 20000) {
|
||||
arr[4][5]++;
|
||||
} else if (persisttime < 60000) {
|
||||
arr[4][6]++;
|
||||
} else if (persisttime < 180000) {
|
||||
arr[4][7]++;
|
||||
}
|
||||
} else if (eventvalue * 100 < 40) {
|
||||
if (persisttime < 20) {
|
||||
arr[3][0]++;
|
||||
} else if (persisttime < 100) {
|
||||
arr[3][1]++;
|
||||
} else if (persisttime < 500) {
|
||||
arr[3][2]++;
|
||||
} else if (persisttime < 1000) {
|
||||
arr[3][3]++;
|
||||
} else if (persisttime < 3000) {
|
||||
arr[3][4]++;
|
||||
} else if (persisttime < 20000) {
|
||||
arr[3][5]++;
|
||||
} else if (persisttime < 60000) {
|
||||
arr[3][6]++;
|
||||
} else if (persisttime < 180000) {
|
||||
arr[3][7]++;
|
||||
}
|
||||
} else if (eventvalue * 100 < 70) {
|
||||
if (persisttime < 20) {
|
||||
arr[2][0]++;
|
||||
} else if (persisttime < 100) {
|
||||
arr[2][1]++;
|
||||
} else if (persisttime < 500) {
|
||||
arr[2][2]++;
|
||||
} else if (persisttime < 1000) {
|
||||
arr[2][3]++;
|
||||
} else if (persisttime < 3000) {
|
||||
arr[2][4]++;
|
||||
} else if (persisttime < 20000) {
|
||||
arr[2][5]++;
|
||||
} else if (persisttime < 60000) {
|
||||
arr[2][6]++;
|
||||
} else if (persisttime < 180000) {
|
||||
arr[2][7]++;
|
||||
}
|
||||
} else if (eventvalue * 100 < 85) {
|
||||
if (persisttime < 20) {
|
||||
arr[1][0]++;
|
||||
} else if (persisttime < 100) {
|
||||
arr[1][1]++;
|
||||
} else if (persisttime < 500) {
|
||||
arr[1][2]++;
|
||||
} else if (persisttime < 1000) {
|
||||
arr[1][3]++;
|
||||
} else if (persisttime < 3000) {
|
||||
arr[1][4]++;
|
||||
} else if (persisttime < 20000) {
|
||||
arr[1][5]++;
|
||||
} else if (persisttime < 60000) {
|
||||
arr[1][6]++;
|
||||
} else if (persisttime < 180000) {
|
||||
arr[1][7]++;
|
||||
}
|
||||
} else if (eventvalue * 100 <= 90) {
|
||||
if (persisttime < 20) {
|
||||
arr[0][0]++;
|
||||
} else if (persisttime < 100) {
|
||||
arr[0][1]++;
|
||||
} else if (persisttime < 500) {
|
||||
arr[0][2]++;
|
||||
} else if (persisttime < 1000) {
|
||||
arr[0][3]++;
|
||||
} else if (persisttime < 3000) {
|
||||
arr[0][4]++;
|
||||
} else if (persisttime < 20000) {
|
||||
arr[0][5]++;
|
||||
} else if (persisttime < 60000) {
|
||||
arr[0][6]++;
|
||||
} else if (persisttime < 180000) {
|
||||
arr[0][7]++;
|
||||
}
|
||||
}
|
||||
|
||||
// 构建结果列表
|
||||
List<DISDIPVO> result = new ArrayList<>();
|
||||
for (int i = 0; i < labels.length; i++) {
|
||||
result.add(new DISDIPVO(
|
||||
labels[i],
|
||||
String.valueOf(arr[i][0]), String.valueOf(arr[i][1]), String.valueOf(arr[i][2]), String.valueOf(arr[i][3]),
|
||||
String.valueOf(arr[i][4]), String.valueOf(arr[i][5]), String.valueOf(arr[i][6]), String.valueOf(arr[i][7])
|
||||
));
|
||||
}
|
||||
result.add(new DISDIPVO("90%", String.valueOf(arr[0][0]), String.valueOf(arr[0][1]), String.valueOf(arr[0][2]), String.valueOf(arr[0][3]), String.valueOf(arr[0][4]), String.valueOf(arr[0][5]), String.valueOf(arr[0][6]), String.valueOf(arr[0][7])));
|
||||
result.add(new DISDIPVO("85%", String.valueOf(arr[1][0]), String.valueOf(arr[1][1]), String.valueOf(arr[1][2]), String.valueOf(arr[1][3]), String.valueOf(arr[1][4]), String.valueOf(arr[1][5]), String.valueOf(arr[1][6]), String.valueOf(arr[1][7])));
|
||||
result.add(new DISDIPVO("70%", String.valueOf(arr[2][0]), String.valueOf(arr[2][1]), String.valueOf(arr[2][2]), String.valueOf(arr[2][3]), String.valueOf(arr[2][4]), String.valueOf(arr[2][5]), String.valueOf(arr[2][6]), String.valueOf(arr[2][7])));
|
||||
result.add(new DISDIPVO("40%", String.valueOf(arr[3][0]), String.valueOf(arr[3][1]), String.valueOf(arr[3][2]), String.valueOf(arr[3][3]), String.valueOf(arr[3][4]), String.valueOf(arr[3][5]), String.valueOf(arr[3][6]), String.valueOf(arr[3][7])));
|
||||
result.add(new DISDIPVO("10%", String.valueOf(arr[4][0]), String.valueOf(arr[4][1]), String.valueOf(arr[4][2]), String.valueOf(arr[4][3]), String.valueOf(arr[4][4]), String.valueOf(arr[4][5]), String.valueOf(arr[4][6]), String.valueOf(arr[4][7])));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据事件值获取等级索引(从高到低匹配)
|
||||
*/
|
||||
private int getEventLevel(double eventValue, double[] thresholds) {
|
||||
for (int i = 0; i < thresholds.length; i++) {
|
||||
if (eventValue >= thresholds[i]) {
|
||||
return i; // 返回匹配的等级索引
|
||||
}
|
||||
}
|
||||
return thresholds.length - 1; // 默认最低等级
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据持续时间获取区间索引
|
||||
*/
|
||||
private int getDurationIndex(double duration, double[] thresholds) {
|
||||
for (int i = 0; i < thresholds.length; i++) {
|
||||
if (duration < thresholds[i]) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return thresholds.length - 1; // 超过最大阈值时返回最后一个区间
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<IEC411VO> IEC411(StatisticsParam statisticsParam) {
|
||||
List<IEC411VO> result = new ArrayList<>();
|
||||
// List<EventDetail> info = new ArrayList<>();
|
||||
// QueryResult query = MonitorQuery(statisticsParam);
|
||||
// InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
|
||||
// info = influxDBResultMapper.toPOJO(query, EventDetail.class);
|
||||
|
||||
//查询监测点未处理暂态事件
|
||||
List<RmpEventDetailPO> info = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||
List<RmpEventDetailPO> events = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
||||
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
||||
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
||||
@@ -520,51 +395,18 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
arr[i][j] = 0;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < info.size(); i++) {
|
||||
Double eventvalue = info.get(i).getFeatureAmplitude();
|
||||
double persisttime = info.get(i).getDuration();
|
||||
if (eventvalue * 100 < 1) {
|
||||
if (persisttime < 20 && persisttime >= 10) {
|
||||
arr[2][0]++;
|
||||
} else if (persisttime < 100) {
|
||||
arr[2][1]++;
|
||||
} else if (persisttime < 200) {
|
||||
arr[2][2]++;
|
||||
} else if (persisttime < 400) {
|
||||
arr[2][3]++;
|
||||
} else if (persisttime < 1000) {
|
||||
arr[2][4]++;
|
||||
} else {
|
||||
arr[2][5]++;
|
||||
}
|
||||
} else if (eventvalue * 100 < 40) {
|
||||
if (persisttime < 20 && persisttime >= 10) {
|
||||
arr[1][0]++;
|
||||
} else if (persisttime < 100) {
|
||||
arr[1][1]++;
|
||||
} else if (persisttime < 200) {
|
||||
arr[1][2]++;
|
||||
} else if (persisttime < 400) {
|
||||
arr[1][3]++;
|
||||
} else if (persisttime < 1000) {
|
||||
arr[1][4]++;
|
||||
} else {
|
||||
arr[1][5]++;
|
||||
}
|
||||
} else if (eventvalue * 100 <= 70) {
|
||||
if (persisttime < 20 && persisttime >= 10) {
|
||||
arr[0][0]++;
|
||||
} else if (persisttime < 100) {
|
||||
arr[0][1]++;
|
||||
} else if (persisttime < 200) {
|
||||
arr[0][2]++;
|
||||
} else if (persisttime < 400) {
|
||||
arr[0][3]++;
|
||||
} else if (persisttime < 1000) {
|
||||
arr[0][4]++;
|
||||
} else {
|
||||
arr[0][5]++;
|
||||
}
|
||||
// 分类统计事件
|
||||
for (RmpEventDetailPO event : events) {
|
||||
double eventValue = event.getFeatureAmplitude(); // 转换为百分比
|
||||
double duration = event.getDuration();
|
||||
|
||||
// 确定事件等级(0=90%, 1=85%, ..., 4=10%)
|
||||
int level = getIEC411_EventLevel(eventValue);
|
||||
// 确定持续时间区间索引
|
||||
int durationIndex = getDurationIndex(duration, DURATION_THRESHOLDS);
|
||||
|
||||
if (level != -1 && durationIndex != -1) {
|
||||
arr[level][durationIndex]++;
|
||||
}
|
||||
}
|
||||
result.add(new IEC411VO("40~70%", String.valueOf(arr[0][0]), String.valueOf(arr[0][1]), String.valueOf(arr[0][2]), String.valueOf(arr[0][3]), String.valueOf(arr[0][4]), String.valueOf(arr[0][5])));
|
||||
@@ -573,15 +415,25 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据事件值获取等级索引(从高到低匹配)
|
||||
*/
|
||||
private int getIEC411_EventLevel(double eventValue) {
|
||||
if (eventValue >= 0.1 && eventValue < 0.4) {
|
||||
return 1;
|
||||
} else if (eventValue >= 0.4 && eventValue < 0.7) {
|
||||
return 0;
|
||||
} else if (eventValue >= 0.7 && eventValue < 1) {
|
||||
return 2;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<IEC28VO> IEC28(StatisticsParam statisticsParam) {
|
||||
|
||||
List<IEC28VO> result = new ArrayList<>();
|
||||
|
||||
/*QueryResult query = MonitorQuery(statisticsParam);
|
||||
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
|
||||
List<EventDetail> info = influxDBResultMapper.toPOJO(query, EventDetail.class);*/
|
||||
|
||||
//查询监测点未处理暂态事件
|
||||
List<RmpEventDetailPO> info = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
||||
@@ -951,7 +803,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
Integer endMonth = Integer.parseInt(endTime.substring(5, 7));
|
||||
Integer startYear = Integer.parseInt(startTime.substring(0, 4));
|
||||
Integer endYear = Integer.parseInt(endTime.substring(0, 4));
|
||||
if (statisticsParam.getFlag()==0) {
|
||||
if (statisticsParam.getFlag() == 0) {
|
||||
while (startYear != endYear && startMonth != endMonth) {
|
||||
builder1.delete(0, builder1.length());
|
||||
builder2.delete(0, builder2.length());
|
||||
@@ -968,7 +820,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
// long count = eventDetailList.stream().filter(x -> x.getWaveType() == 1).count();
|
||||
List<RmpEventDetailPO> eventDetailList = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
||||
.eq(StringUtils.isNotBlank(dataDto.getId()),RmpEventDetailPO::getEventType, dataDto.getId())
|
||||
.eq(StringUtils.isNotBlank(dataDto.getId()), RmpEventDetailPO::getEventType, dataDto.getId())
|
||||
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
||||
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
||||
);
|
||||
@@ -994,7 +846,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
// long count1 = eventDetailList.stream().filter(x -> x.getWaveType() == 1).count();
|
||||
List<RmpEventDetailPO> eventDetailList = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
||||
.eq(StringUtils.isNotBlank(dataDto.getId()),RmpEventDetailPO::getEventType, dataDto.getId())
|
||||
.eq(StringUtils.isNotBlank(dataDto.getId()), RmpEventDetailPO::getEventType, dataDto.getId())
|
||||
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
||||
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
||||
);
|
||||
@@ -1013,18 +865,18 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
|
||||
List<RmpEventDetailPO> eventDetailList = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
||||
.eq(StringUtils.isNotBlank(dataDto.getId()),RmpEventDetailPO::getEventType, dataDto.getId())
|
||||
.eq(StringUtils.isNotBlank(dataDto.getId()), RmpEventDetailPO::getEventType, dataDto.getId())
|
||||
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
||||
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
||||
);
|
||||
|
||||
Map<String, List<RmpEventDetailPO>> map = eventDetailList.stream().filter(x -> dataDto.getId().equals(x.getEventType()))
|
||||
.peek(t ->t.setFormatTime(t.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))))
|
||||
.peek(t -> t.setFormatTime(t.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))))
|
||||
.collect(Collectors.groupingBy(RmpEventDetailPO::getFormatTime));
|
||||
Set<String> keySet = map.keySet();
|
||||
LocalDate parse1 = LocalDate.parse(startTime);
|
||||
LocalDate parse2 = LocalDate.parse(endTime);
|
||||
while (!parse1.equals(parse2.plus(1, ChronoUnit.DAYS))){
|
||||
while (!parse1.equals(parse2.plus(1, ChronoUnit.DAYS))) {
|
||||
if (keySet.contains(parse1.toString())) {
|
||||
// List<EventDetailNew> eventDetailNews = map.get(parse1.toString());
|
||||
List<RmpEventDetailPO> eventDetailNews = map.get(parse1.toString());
|
||||
@@ -1067,21 +919,17 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public StatisticVO getStatistic (StatisticsParam statisticsParam) {
|
||||
public StatisticVO getStatistic(StatisticsParam statisticsParam) {
|
||||
StatisticVO result = new StatisticVO();
|
||||
List<EventDetail> list = new ArrayList<>();
|
||||
List<ReasonsVO> reasonsVOS = new ArrayList<>();
|
||||
List<TypesVO> typesVOS = new ArrayList<>();
|
||||
// List<EventDetail> info = new ArrayList<>();
|
||||
// QueryResult query = MonitorQuery(statisticsParam);
|
||||
// InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
|
||||
// info = influxDBResultMapper.toPOJO(query, EventDetail.class);
|
||||
//获取暂降字典信息
|
||||
DictData dataDto = dicDataFeignClient.getDicDataByCode(DicDataEnum.VOLTAGE_DIP.getCode()).getData();
|
||||
//数据暂降查询
|
||||
List<RmpEventDetailPO> info = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
||||
.eq(StringUtils.isNotBlank(dataDto.getId()),RmpEventDetailPO::getEventType, dataDto.getId())
|
||||
.eq(StringUtils.isNotBlank(dataDto.getId()), RmpEventDetailPO::getEventType, dataDto.getId())
|
||||
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
||||
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
||||
);
|
||||
@@ -1155,9 +1003,6 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
|
||||
ProbabilityVO result = new ProbabilityVO();
|
||||
List<EventDetail> info = new ArrayList<>();
|
||||
// QueryResult query = MonitorQuery(statisticsParam);
|
||||
// InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
|
||||
// List<EventDetail> info2 = influxDBResultMapper.toPOJO(query, EventDetail.class);
|
||||
//数据暂降查询
|
||||
List<RmpEventDetailPO> infos = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
||||
@@ -1265,7 +1110,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
for (String s : subsectionSet) {
|
||||
if (strings1.get(i).equals(s)) {
|
||||
if (subsectionMap.get(s) == 0) {
|
||||
pereventvalue.add(".00");
|
||||
pereventvalue.add("0.00");
|
||||
break;
|
||||
}
|
||||
if (subsectionMap.get(s) / count.doubleValue() == 1.0) {
|
||||
@@ -1296,7 +1141,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
for (String s : countSet) {
|
||||
if (strings.get(i).equals(s)) {
|
||||
if (countMap.get(s) == 0) {
|
||||
eventvalue.add(".00");
|
||||
eventvalue.add("0.00");
|
||||
break;
|
||||
}
|
||||
if (countMap.get(s) / count.floatValue() == 1.0) {
|
||||
@@ -1357,7 +1202,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
for (String s : timeSet) {
|
||||
if (strings2.get(i).equals(s)) {
|
||||
if (timeMap.get(s) == 0) {
|
||||
persisttime.add(".00");
|
||||
persisttime.add("0.00");
|
||||
break;
|
||||
}
|
||||
if (timeMap.get(s) / count.floatValue() == 1.0) {
|
||||
@@ -1414,7 +1259,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
for (String s : time2Set) {
|
||||
if (strings2.get(i).equals(s)) {
|
||||
if (timeMap2.get(s) == 0) {
|
||||
sisttime.add(".00");
|
||||
sisttime.add("0.00");
|
||||
break;
|
||||
}
|
||||
if (timeMap2.get(s) / count.floatValue() == 1.0) {
|
||||
@@ -1464,7 +1309,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
//查询监测点未处理暂态事件
|
||||
List<RmpEventDetailPO> eventDetails = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
||||
.eq(StrUtil.isNotBlank(data.getId()),RmpEventDetailPO::getEventType, data.getId())
|
||||
.eq(StrUtil.isNotBlank(data.getId()), RmpEventDetailPO::getEventType, data.getId())
|
||||
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
||||
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
||||
);
|
||||
@@ -1524,7 +1369,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
voltageToleranceCurve.setLineId(dto.getLineId());
|
||||
voltageToleranceCurve.setEventId(dto.getEventId());
|
||||
voltageToleranceCurve.setPersistTime(dto.getDuration());
|
||||
voltageToleranceCurve.setEventValue(dto.getFeatureAmplitude()*100);
|
||||
voltageToleranceCurve.setEventValue(dto.getFeatureAmplitude() * 100);
|
||||
voltageToleranceCurve.setTime(dto.getStartTime());
|
||||
voltageToleranceCurve.setGdName(info.getGdName());
|
||||
voltageToleranceCurve.setSubName(info.getSubName());
|
||||
|
||||
Reference in New Issue
Block a user