Commit 42043a14 authored by hanbing's avatar hanbing

[add] 新信号评价-运行评价-详细指标查询-指标信息

parent 9a33412d
......@@ -420,7 +420,34 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
problemStatus.setDurationMinutes(duration1);
res.add(problemStatus);
}
return res;
// 合并时间区间
// 先按 status 排序,status 相同再按 startTime 排序
List<RunningEvaluateMetricsDetailVO.ProblemStatus> sortedList = res.stream()
.sorted(Comparator.comparingInt(RunningEvaluateMetricsDetailVO.ProblemStatus::getStatus)
.thenComparing(RunningEvaluateMetricsDetailVO.ProblemStatus::getStartTime))
.collect(Collectors.toList());
List<RunningEvaluateMetricsDetailVO.ProblemStatus> mergedList = new ArrayList<>();
RunningEvaluateMetricsDetailVO.ProblemStatus current = sortedList.get(0);
for (int i = 1; i < sortedList.size(); i++) {
RunningEvaluateMetricsDetailVO.ProblemStatus next = sortedList.get(i);
if (Objects.equals(current.getStatus(), next.getStatus())
&& !current.getEndTime().before(next.getStartTime())) {
// 如果有交叉,则合并记录
current.setEndTime(new Date(Math.max(current.getEndTime().getTime(), next.getEndTime().getTime())));
current.setDurationMinutes(
(int) ((current.getEndTime().getTime() - current.getStartTime().getTime()) / (60 * 1000)));
} else {
// 否则,将当前记录添加到结果列表中,并更新当前记录
mergedList.add(current);
current = next;
}
}
mergedList.add(current); // 添加最后一个记录
return mergedList;
}
private boolean isDataValid(List<MetricHistDTO> metricHistDTOList) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment