Commit 299c0aa2 authored by hanbing's avatar hanbing

[update] 信号优化,干线方案分析-评价结果数量修改

parent 62ab87ee
......@@ -686,9 +686,9 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
res.setSceneData(calcSceneData(filteredList));
fillLineSchemeBuffer(filteredList, lineSchemeBuffer);
res.setCrossData(calcCrossData(filteredList));
res.setEvaluateData(calcEvaluateData(filteredList, lineSchemeBuffer, poStartTimeStamp, poEndTimeStamp));
// 时段合并
mergeLineSchemeBuffer(lineSchemeBuffer, mainlineName);
res.setEvaluateData(calcEvaluateData(filteredList, lineSchemeBuffer, poStartTimeStamp, poEndTimeStamp));
res.setGreenwaveData(buildGreenwaveData(lineSchemeBuffer));
return res;
......@@ -1609,8 +1609,8 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
List<GreenwaveCrossPO> baseGreenwaveCrossPOList = greenwaveCrossMapper.selectAll();
List<BaseCrossInfoPO> baseCrossInfoPOList = baseCrossInfoMapper.selectAll();
int qualified = 0;
int notQualified = 0;
Set<String> qualifiedSet = new HashSet<>();
Set<String> notQualifiedSet = new HashSet<>();
for (GreenwaveHistPO greenwaveHistPO : filteredList) {
Double noparkPassRate = greenwaveHistPO.getNoparkPassRate();
Double cordReliability = greenwaveHistPO.getCordReliability();
......@@ -1656,61 +1656,62 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
.orElse(0.0);
Integer dir = greenwaveHistPO.getDir();
if (dir == 0 || dir == 1) { // 单向绿波
if (Objects.equals(strategyCode, StrategyAndMetricsEnum.Strategy.LINE_EFFICIENCY.getCode())) {
if (saturation < 0.8) {
if (noparkPassRate > 0.8 && cordReliability > 0.7) {
// 协调不停车通过率需大于80%,并且协调方案可靠性需大于70%
qualified++;
qualifiedSet.add(matchingKey);
} else if (uncoordinatePhaseQueue < 0.5) {
// 如果以上不满足,则非协调相位二次排队需小于50%
qualified++;
qualifiedSet.add(matchingKey);
} else {
notQualified++;
notQualifiedSet.add(matchingKey);
}
} else {
// 协调方案可靠性需大于70%
if (cordReliability > 0.7) {
qualified++;
qualifiedSet.add(matchingKey);
} else {
notQualified++;
notQualifiedSet.add(matchingKey);
}
}
} else if (Objects.equals(strategyCode, StrategyAndMetricsEnum.Strategy.LINE_BALANCE.getCode())) {
if (cordQueueRatio < 0.6) {
// 协调路段排队空间占比需小于60%
qualified++;
qualifiedSet.add(matchingKey);
} else if (uncoordinatePhaseQueue < 1.0) {
// 如果以上不满足,则非协调相位二次排队需小于100%
qualified++;
qualifiedSet.add(matchingKey);
} else {
notQualified++;
notQualifiedSet.add(matchingKey);
}
}
} else { // 双向绿波
if (Objects.equals(strategyCode, StrategyAndMetricsEnum.Strategy.LINE_EFFICIENCY.getCode())) {
// 协调不停车通过率需大于50%,并且协调方案可靠性需大于70%
if (noparkPassRate > 0.5 && cordReliability > 0.7) {
qualified++;
qualifiedSet.add(matchingKey);
} else {
notQualified++;
notQualifiedSet.add(matchingKey);
}
} else if (Objects.equals(strategyCode, StrategyAndMetricsEnum.Strategy.LINE_BALANCE.getCode())) {
if (cordQueueRatio < 0.6) {
// 协调路段排队空间占比需小于60%
qualified++;
qualifiedSet.add(matchingKey);
} else if (uncoordinatePhaseQueue < 1.0) {
// 如果以上不满足,则非协调相位二次排队需小于100%
qualified++;
qualifiedSet.add(matchingKey);
} else {
notQualified++;
notQualifiedSet.add(matchingKey);
}
}
}
}
List<String> res = new ArrayList<>();
res.add("符合控制策略方案数 " + qualified + "个");
res.add("不符合控制策略方案数 " + notQualified + "个");
res.add("符合控制策略方案数 " + qualifiedSet.size() + "个");
res.add("不符合控制策略方案数 " + notQualifiedSet.size() + "个");
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