Commit 3ae9452f authored by duanruiming's avatar duanruiming

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

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