Commit 3ae9452f authored by duanruiming's avatar duanruiming

[update] 优化相位红灯灯色,忽略行人灯组

parent 5259a162
......@@ -305,6 +305,8 @@ public class HisensePhaseCountDownTask {
String schemeNo = String.valueOf(phaseDirTurnPojo.getSchemeNo());
String phaseNo = String.valueOf(phaseDirTurnPojo.getPhaseNo());
if (StringUtils.equalsIgnoreCase(schemeNo, currentSchemeNo)) {
// 判断圆饼灯代表123,还是23
List<CrossLightsPO> crossLightsPOS = crossLightsMapper.selectByCrossId(crossId);
if (!StringUtils.equalsIgnoreCase(currentPhaseNo, String.valueOf(phaseNo))) {
// 相位红灯
Map<Integer, List<CrossLightsPO>> dirTurnMap = phaseDirTurnPojo.getDirTurnMap();
......@@ -321,15 +323,24 @@ public class HisensePhaseCountDownTask {
int type = 1;
for (CrossLightsPO crossLightsPO : value) { //todo 需要处理,路口方向级别,灯组圆饼灯要区分,有没有左转,crossd dir级别,有几个转向
Integer turn = crossLightsPO.getTurn();
if (crossLightsPO.getType() != 3) { // 设置灯色时不处理行人
type = crossLightsPO.getType();
}
// 搭接相位跳过绿灯变红灯
if (turnColor.containsKey(turn) && turnColor.get(turn).equals("green")) {
continue;
}
turnColor.put(turn, "red");
}
List<CrossLightsPO> dirAllLights = crossLightsPOS.stream()
.filter(po -> Objects.equals(po.getDir(), entry.getKey()) && !Objects.equals(po.getType(), 3))
.collect(Collectors.toList());
if (type == 2) {
if (dirAllLights.size() == 1) {
setAllTurnColor(turnColor, "red"); //红灯时,圆饼灯操作
} else {
turnColor.put(2, "red");
}
}
turnColor.put(3, "green");
dirLampGroupMap.put(dir, turnColor);
......@@ -344,8 +355,6 @@ public class HisensePhaseCountDownTask {
Integer yellowTime = phaseCountDownDTO.getYellowTime();
Integer redTime = phaseCountDownDTO.getRedTime();
Map<Integer, List<CrossLightsPO>> dirTurnMap = phaseDirTurnPojo.getDirTurnMap();
// 判断圆饼灯代表123,还是23
List<CrossLightsPO> crossLightsPOS = crossLightsMapper.selectByCrossId(crossId);
if (!dirTurnMap.isEmpty()) {
setDirTurnColor(cyclePhaseCountDown, dirLampGroupMap, yellowTime, redTime, dirTurnMap, crossLightsPOS);
}
......
......@@ -498,6 +498,8 @@ public class SignalStatus4StaticSchemeTask {
String schemeNo = String.valueOf(phaseDirTurnPojo.getSchemeNo());
String phaseNo = String.valueOf(phaseDirTurnPojo.getPhaseNo());
if (StringUtils.equalsIgnoreCase(schemeNo, currentSchemeNo)) {
// 判断圆饼灯代表123,还是23
List<CrossLightsPO> crossLightsPOS = crossLightsMapper.selectByCrossId(crossId);
if (!StringUtils.equalsIgnoreCase(currentPhaseNo, String.valueOf(phaseNo))) {
// 相位红灯
Map<Integer, List<CrossLightsPO>> dirTurnMap = phaseDirTurnPojo.getDirTurnMap();
......@@ -514,15 +516,24 @@ public class SignalStatus4StaticSchemeTask {
int type = 1;
for (CrossLightsPO crossLightsPO : value) { //todo 需要处理,路口方向级别,灯组圆饼灯要区分,有没有左转,crossd dir级别,有几个转向
Integer turn = crossLightsPO.getTurn();
if (crossLightsPO.getType() != 3) { // 设置灯色时不处理行人
type = crossLightsPO.getType();
}
// 搭接相位跳过绿灯变红灯
if (turnColor.containsKey(turn) && turnColor.get(turn).equals("green")) {
continue;
}
turnColor.put(turn, "red");
}
List<CrossLightsPO> dirAllLights = crossLightsPOS.stream()
.filter(po -> Objects.equals(po.getDir(), entry.getKey()) && !Objects.equals(po.getType(), 3))
.collect(Collectors.toList());
if (type == 2) {
if (dirAllLights.size() == 1) {
setAllTurnColor(turnColor, "red"); //红灯时,圆饼灯操作
} else {
turnColor.put(2, "red");
}
}
turnColor.put(3, "green");
dirLampGroupMap.put(dir, turnColor);
......@@ -537,8 +548,6 @@ public class SignalStatus4StaticSchemeTask {
Integer yellowTime = phaseCountDownDTO.getYellowTime();
Integer redTime = phaseCountDownDTO.getRedTime();
Map<Integer, List<CrossLightsPO>> dirTurnMap = phaseDirTurnPojo.getDirTurnMap();
// 判断圆饼灯代表123,还是23
List<CrossLightsPO> crossLightsPOS = crossLightsMapper.selectByCrossId(crossId);
if (Objects.nonNull(dirTurnMap) && !dirTurnMap.isEmpty()) {
setDirTurnColor(cyclePhaseCountDown, dirLampGroupMap, yellowTime, redTime, dirTurnMap, crossLightsPOS);
}
......
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