Commit 2d0df2e2 authored by duanruiming's avatar duanruiming

[update] 优化圆饼灯逻辑处理,圆饼灯123还是23

parent 2bdd1f16
...@@ -316,7 +316,7 @@ public class HisensePhaseCountDownTask { ...@@ -316,7 +316,7 @@ public class HisensePhaseCountDownTask {
} }
List<CrossLightsPO> value = entry.getValue(); List<CrossLightsPO> value = entry.getValue();
int type = 1; int type = 1;
for (CrossLightsPO crossLightsPO : value) { for (CrossLightsPO crossLightsPO : value) { //todo 需要处理,路口方向级别,灯组圆饼灯要区分,有没有左转,crossd dir级别,有几个转向
Integer turn = crossLightsPO.getTurn(); Integer turn = crossLightsPO.getTurn();
type = crossLightsPO.getType(); type = crossLightsPO.getType();
// 搭接相位跳过绿灯变红灯 // 搭接相位跳过绿灯变红灯
......
...@@ -5,10 +5,7 @@ import net.wanji.common.framework.Constants; ...@@ -5,10 +5,7 @@ import net.wanji.common.framework.Constants;
import net.wanji.common.utils.tool.DateUtil; import net.wanji.common.utils.tool.DateUtil;
import net.wanji.common.utils.tool.StringUtils; import net.wanji.common.utils.tool.StringUtils;
import net.wanji.databus.dao.entity.*; import net.wanji.databus.dao.entity.*;
import net.wanji.databus.dao.mapper.CrossPhaseMapper; import net.wanji.databus.dao.mapper.*;
import net.wanji.databus.dao.mapper.CrossSchedulesMapper;
import net.wanji.databus.dao.mapper.CrossSchemeMapper;
import net.wanji.databus.dao.mapper.CrossSectionMapper;
import net.wanji.databus.po.CrossInfoPO; import net.wanji.databus.po.CrossInfoPO;
import net.wanji.databus.vo.LightsStatusVO; import net.wanji.databus.vo.LightsStatusVO;
import net.wanji.utc.cache.CrossInfoCache; import net.wanji.utc.cache.CrossInfoCache;
...@@ -47,6 +44,8 @@ public class SignalStatus4StaticSchemeTask { ...@@ -47,6 +44,8 @@ public class SignalStatus4StaticSchemeTask {
private CrossSchemeMapper crossSchemeMapper; private CrossSchemeMapper crossSchemeMapper;
@Resource @Resource
private CrossPhaseMapper crossPhaseMapper; private CrossPhaseMapper crossPhaseMapper;
@Resource
private CrossLightsMapper crossLightsMapper;
@Scheduled(fixedRate = 1000) @Scheduled(fixedRate = 1000)
public void signalStatusCountDown() throws Exception { public void signalStatusCountDown() throws Exception {
...@@ -513,7 +512,7 @@ public class SignalStatus4StaticSchemeTask { ...@@ -513,7 +512,7 @@ public class SignalStatus4StaticSchemeTask {
} }
List<CrossLightsPO> value = entry.getValue(); List<CrossLightsPO> value = entry.getValue();
int type = 1; int type = 1;
for (CrossLightsPO crossLightsPO : value) { for (CrossLightsPO crossLightsPO : value) { //todo 需要处理,路口方向级别,灯组圆饼灯要区分,有没有左转,crossd dir级别,有几个转向
Integer turn = crossLightsPO.getTurn(); Integer turn = crossLightsPO.getTurn();
type = crossLightsPO.getType(); type = crossLightsPO.getType();
// 搭接相位跳过绿灯变红灯 // 搭接相位跳过绿灯变红灯
...@@ -525,7 +524,7 @@ public class SignalStatus4StaticSchemeTask { ...@@ -525,7 +524,7 @@ public class SignalStatus4StaticSchemeTask {
if (type == 2) { if (type == 2) {
setAllTurnColor(turnColor, "red"); //红灯时,圆饼灯操作 setAllTurnColor(turnColor, "red"); //红灯时,圆饼灯操作
} }
//turnColor.put(3, "green"); turnColor.put(3, "green");
dirLampGroupMap.put(dir, turnColor); dirLampGroupMap.put(dir, turnColor);
} }
} }
...@@ -538,8 +537,10 @@ public class SignalStatus4StaticSchemeTask { ...@@ -538,8 +537,10 @@ 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); setDirTurnColor(cyclePhaseCountDown, dirLampGroupMap, yellowTime, redTime, dirTurnMap, crossLightsPOS);
} }
} }
} }
...@@ -547,7 +548,8 @@ public class SignalStatus4StaticSchemeTask { ...@@ -547,7 +548,8 @@ public class SignalStatus4StaticSchemeTask {
} }
private static void setDirTurnColor(Integer cyclePhaseCountDown, Map<String, Object> dirLampGroupMap, private static void setDirTurnColor(Integer cyclePhaseCountDown, Map<String, Object> dirLampGroupMap,
Integer yellowTime, Integer redTime, Map<Integer, List<CrossLightsPO>> dirTurnMap) throws Exception { Integer yellowTime, Integer redTime, Map<Integer,
List<CrossLightsPO>> dirTurnMap, List<CrossLightsPO> crossLightsPOS) throws Exception {
for (Map.Entry<Integer, List<CrossLightsPO>> dirEntry : dirTurnMap.entrySet()) { for (Map.Entry<Integer, List<CrossLightsPO>> dirEntry : dirTurnMap.entrySet()) {
String dir = String.valueOf(dirEntry.getKey()); String dir = String.valueOf(dirEntry.getKey());
List<CrossLightsPO> lightsList = dirEntry.getValue(); List<CrossLightsPO> lightsList = dirEntry.getValue();
...@@ -568,8 +570,14 @@ public class SignalStatus4StaticSchemeTask { ...@@ -568,8 +570,14 @@ public class SignalStatus4StaticSchemeTask {
color = setTurnColor(cyclePhaseCountDown, yellowTime, redTime, turnColor, color, turn); color = setTurnColor(cyclePhaseCountDown, yellowTime, redTime, turnColor, color, turn);
turnColor.put(turn, color); turnColor.put(turn, color);
} }
if (type == 2) { List<CrossLightsPO> dirAllLights = crossLightsPOS.stream().filter(po -> Objects.equals(po.getDir(), dirEntry.getKey())).collect(Collectors.toList());
setAllTurnColor(turnColor, color); if (type == 2) { // 方向是圆饼灯,并且只有一个灯组
if (dirAllLights.size() == 1) {
setAllTurnColor(turnColor, color);
} else {
turnColor.put(2, "green");
turnColor.put(3, "green"); // 右转常绿
}
} }
dirLampGroupMap.put(dir, turnColor); dirLampGroupMap.put(dir, turnColor);
} }
......
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