Commit 79b84a01 authored by hanbing's avatar hanbing

[update] 方案评价,修改获取车道ID XML

parent 0af226e5
...@@ -467,17 +467,59 @@ public class TrendServiceImpl implements TrendService { ...@@ -467,17 +467,59 @@ public class TrendServiceImpl implements TrendService {
// 绿波带 // 绿波带
if (dir == 0) { // 正向 if (dir == 0) { // 正向
res.setForwardGreenwaveList(buildForwardGreenwaveList(greenwaveCrossList, greenwaveInfoPO)); List<GreenwaveDetailVO.GreenwavePoint> greenwavePoints =
buildForwardGreenwaveList(greenwaveCrossList, greenwaveInfoPO);
addStartOffset(greenwavePoints, greenwaveCrossList);
res.setForwardGreenwaveList(greenwavePoints);
} else if (dir == 1) { // 反向 } else if (dir == 1) { // 反向
res.setReverseGreenwaveList(buildReverseGreenwaveList(greenwaveCrossList, greenwaveInfoPO)); List<GreenwaveDetailVO.GreenwavePoint> greenwavePoints =
buildReverseGreenwaveList(greenwaveCrossList, greenwaveInfoPO);
addStartOffset(greenwavePoints, greenwaveCrossList);
res.setReverseGreenwaveList(greenwavePoints);
} else if (dir == 2) { // 双向 } else if (dir == 2) { // 双向
res.setForwardGreenwaveList(buildForwardGreenwaveList(greenwaveCrossList, greenwaveInfoPO)); List<GreenwaveDetailVO.GreenwavePoint> greenwavePoints =
res.setReverseGreenwaveList(buildReverseGreenwaveList(greenwaveCrossList, greenwaveInfoPO)); buildForwardGreenwaveList(greenwaveCrossList, greenwaveInfoPO);
addStartOffset(greenwavePoints, greenwaveCrossList);
res.setForwardGreenwaveList(greenwavePoints);
List<GreenwaveDetailVO.GreenwavePoint> greenwavePoints1 =
buildReverseGreenwaveList(greenwaveCrossList, greenwaveInfoPO);
addStartOffset(greenwavePoints1, greenwaveCrossList);
res.setReverseGreenwaveList(greenwavePoints1);
} }
return res; return res;
} }
private void addStartOffset(List<GreenwaveDetailVO.GreenwavePoint> greenwavePoints,
List<GreenwaveDetailVO.GreenwaveCross> greenwaveCrossList) {
for (GreenwaveDetailVO.GreenwavePoint greenwavePoint : greenwavePoints) {
String crossId = greenwavePoint.getCrossId();
for (GreenwaveDetailVO.GreenwaveCross greenwaveCross : greenwaveCrossList) {
String crossId1 = greenwaveCross.getCrossId();
if (Objects.equals(crossId1, crossId)) {
Integer coordOffset = greenwavePoint.getCoordOffset();
Integer seconds = calcTimeFromStart(greenwaveCross);
greenwavePoint.setOffsetToStart(coordOffset + seconds);
}
}
}
}
private Integer calcTimeFromStart(GreenwaveDetailVO.GreenwaveCross greenwaveCross) {
int res = 0;
List<GreenwaveDetailVO.GreenwavePhase> phaseList = greenwaveCross.getGreenwavePhaseList();
for (GreenwaveDetailVO.GreenwavePhase greenwavePhase : phaseList) {
Integer seconds = greenwavePhase.getSeconds();
Integer isCoordinate = greenwavePhase.getIsCoordinate();
if (1 != isCoordinate) {
res += seconds;
} else {
break;
}
}
return res;
}
private Integer calcPointerSecond(String startTime, int cycle) { private Integer calcPointerSecond(String startTime, int cycle) {
// 计算当前小时分钟数与录波开始时间相差的秒数 // 计算当前小时分钟数与录波开始时间相差的秒数
int currentSecondDiff = calcCurrentSecondDiff(startTime); int currentSecondDiff = calcCurrentSecondDiff(startTime);
......
...@@ -90,5 +90,7 @@ public class GreenwaveDetailVO { ...@@ -90,5 +90,7 @@ public class GreenwaveDetailVO {
private Integer coordOffset; private Integer coordOffset;
@ApiModelProperty(value = "路口顺序号") @ApiModelProperty(value = "路口顺序号")
private Integer sort; private Integer sort;
@ApiModelProperty(value = "距离开始相位时差(秒)")
private Integer offsetToStart;
} }
} }
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