Commit 2d0df2e2 authored by duanruiming's avatar duanruiming

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

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