Commit 7bc359e4 authored by duanruiming's avatar duanruiming

[update] 优化异常处理,前端报下标越界问题

parent 861c70bd
...@@ -657,42 +657,48 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService { ...@@ -657,42 +657,48 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
@Override @Override
public MainlineSchemeAnalysisVO mainlineSchemeAnalysis(MainlineSchemeAnalysisBO bo) throws Exception { public MainlineSchemeAnalysisVO mainlineSchemeAnalysis(MainlineSchemeAnalysisBO bo) throws Exception {
lineSchemeBuffer.clear(); MainlineSchemeAnalysisVO res = null;
String mainlineName = bo.getName(); try {
Date boStartTime = bo.getStartTime(); lineSchemeBuffer.clear();
Date boEndTime = bo.getEndTime(); String mainlineName = bo.getName();
String boStartTimeStr = sdf.format(boStartTime); Date boStartTime = bo.getStartTime();
String boEndTimeStr = sdf.format(boEndTime); Date boEndTime = bo.getEndTime();
int boStartTimeStamp = (int) (boStartTime.getTime() / 1000); String boStartTimeStr = sdf.format(boStartTime);
int boEndTimeStamp = (int) (boEndTime.getTime() / 1000); String boEndTimeStr = sdf.format(boEndTime);
// 根据时段查询所有发生的绿波 int boStartTimeStamp = (int) (boStartTime.getTime() / 1000);
List<GreenwaveHistPO> greenwaveHistPOList = greenwaveHistMapper int boEndTimeStamp = (int) (boEndTime.getTime() / 1000);
.selectByTimeSection(boStartTimeStr, boEndTimeStr); // 根据时段查询所有发生的绿波
// 根据干线名称筛选结果 List<GreenwaveHistPO> greenwaveHistPOList = greenwaveHistMapper
List<GreenwaveHistPO> filteredList = greenwaveHistPOList.stream() .selectByTimeSection(boStartTimeStr, boEndTimeStr);
.filter(po -> { // 根据干线名称筛选结果
String name = po.getGreenwaveName(); List<GreenwaveHistPO> filteredList = greenwaveHistPOList.stream()
int index = name.indexOf(':'); .filter(po -> {
if (index != -1) { String name = po.getGreenwaveName();
String leftSide = name.substring(0, index).trim(); int index = name.indexOf(':');
return leftSide.equals(mainlineName); if (index != -1) {
} String leftSide = name.substring(0, index).trim();
return false; return leftSide.equals(mainlineName);
}) }
.collect(Collectors.toList()); return false;
})
.collect(Collectors.toList());
MainlineSchemeAnalysisVO res = new MainlineSchemeAnalysisVO(); res = new MainlineSchemeAnalysisVO();
fillLineSchemeBuffer(filteredList, lineSchemeBuffer); fillLineSchemeBuffer(filteredList, lineSchemeBuffer);
// 时段合并 // 时段合并
GreenwaveMergePO greenwaveMergePO = greenwaveMergeMapper.selectByMainlineName(mainlineName); GreenwaveMergePO greenwaveMergePO = greenwaveMergeMapper.selectByMainlineName(mainlineName);
if (ObjectUtil.isNotEmpty(greenwaveMergePO)) { if (ObjectUtil.isNotEmpty(greenwaveMergePO)) {
mergeLineSchemeBuffer(lineSchemeBuffer, mainlineName, greenwaveMergePO); mergeLineSchemeBuffer(lineSchemeBuffer, mainlineName, greenwaveMergePO);
}
res.setSceneData(calcSceneData(lineSchemeBuffer));
res.setEvaluateData(calcEvaluateData(
filteredList, lineSchemeBuffer, boStartTimeStamp, boEndTimeStamp, boStartTime, boEndTime));
res.setGreenwaveData(buildGreenwaveData(lineSchemeBuffer));
res.setCrossData(calcCrossData(lineSchemeBuffer));
} catch (Exception e) {
log.error("干线方案分析执行异常:", e);
throw new Exception(e);
} }
res.setSceneData(calcSceneData(lineSchemeBuffer));
res.setEvaluateData(calcEvaluateData(
filteredList, lineSchemeBuffer, boStartTimeStamp, boEndTimeStamp, boStartTime, boEndTime));
res.setGreenwaveData(buildGreenwaveData(lineSchemeBuffer));
res.setCrossData(calcCrossData(lineSchemeBuffer));
return res; return res;
} }
......
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