Commit cd9979a5 authored by zhouleilei's avatar zhouleilei

新增接口-优化灯组车道问题

parent efbe7832
......@@ -14,26 +14,28 @@ import java.util.Objects;
public enum HisenseTurnEnum {
// 万集:'车道转向:1左转;2直行;3右转;4掉头;5直左;6直右;7左直右;8左右;9左转掉头;10直行掉头;11右转掉头;12左直掉头;13直右掉头;14左直右掉头;15左右掉头', 0 默认没有匹配
// hisen: 1-左,2-直,3-右,4-调头,5-左调头,6-左直,7-左右,8-直右,9-左直右,10-直调头,11-入口行人,12-出口行人,13-出入口行人,14-左直调头,15-右掉头,16-左右掉头,17-直右掉头,18-左直右掉头
TURN_1(1, 1, "左"),
TURN_2(2, 2, "直"),
TURN_3(3, 3, "右"),
TURN_4(4, 4, "调头"),
TURN_5(5, 9, "左调头"),
TURN_6(6, 5, "左直"),
TURN_7(7, 8, "左右"),
TURN_8(8, 6, "直右"),
TURN_9(9, 7, "左直右"),
TURN_10(10, 10, "直调头"),
TURN_11(11, 21, "入口行人"),
TURN_12(12, 22, "出口行人"),
TURN_13(13, 20, "出入口行人"),
TURN_14(14, 12, "左直调头"),
TURN_15(15, 11, "右调头"),
TURN_16(16, 15, "左右调头"),
TURN_17(17, 13, "直右掉头"),
TURN_18(18, 14, "左直右掉头");
TURN_1(1, 1, 1,"左"),
TURN_2(2, 2, 1,"直"),
TURN_3(3, 3, 1,"右"),
TURN_4(4, 4, 1,"调头"),
TURN_5(5, 1, 1,"左调头"),
TURN_6(6, 2, 2,"左直"),//圆饼
TURN_7(7, 1, 2,"左右"),//圆饼
TURN_8(8, 2, 1,"直右"),
TURN_9(9, 2, 2,"左直右"),//圆饼
TURN_11(11, 21, 3,"入口行人"),
TURN_10(10, 2, 2,"直调头"),//圆饼
TURN_12(12, 22, 3,"出口行人"),
TURN_13(13, 20, 3,"出入口行人"),
TURN_14(14, 2, 2,"左直调头"),//圆饼
TURN_15(15, 3, 1,"右调头"),
TURN_16(16, 1, 2,"左右调头"),//圆饼
TURN_17(17, 2, 2,"直右掉头"),//圆饼
TURN_18(18, 2, 2,"左直右掉头");//圆饼
private Integer hisenseTurn;
private Integer wjLightsTurn;
//灯组类型:1箭头2圆饼3行人
private Integer type;
private String desc;
public static Integer getWjLightsTurn(Integer hisenseTurn) {
......@@ -44,4 +46,13 @@ public enum HisenseTurnEnum {
}
return 0;
}
public static Integer getType(Integer hisenseTurn) {
for (HisenseTurnEnum value : HisenseTurnEnum.values()) {
if (Objects.equals(hisenseTurn, value.getHisenseTurn())) {
return value.getType();
}
}
return 0;
}
}
......@@ -173,6 +173,17 @@ public class StaticInfoServiceImpl implements StaticInfoService {
}
phaseLightsVO.setCrossPhaseLightsPOList(crossPhaseLightsPOList);
phaseLightsVO.setCrossLightsList(crossLightsList);
//过滤行人后,只有一个灯组的话,设置为圆饼灯
Map<Integer, List<CrossLightsPO>> collect = crossLightsList.stream().filter(x -> x.getTurn() != 20).collect(Collectors.groupingBy(CrossLightsPO::getDir));
Set<Integer> keySet = collect.keySet();
for (Integer integer : keySet) {
List<CrossLightsPO> crossLightsPOS = collect.get(integer);
if (crossLightsPOS.size() == 1){
CrossLightsPO crossLightsPO = crossLightsPOS.get(0);
crossLightsPO.setType(2);
}
}
CrossSchemePO crossSchemePO = addNewScheme(crossId);
crossSchemeList.add(crossSchemePO);
phaseLightsVO.setCrossSchemeList(crossSchemeList);
......@@ -499,6 +510,10 @@ public class StaticInfoServiceImpl implements StaticInfoService {
String turn = readUtf8Line.substring(3);
Integer wjLightsDir = HiseseDirEnum.getWjLightsDir(Integer.parseInt(dir, 2));
Integer wjLightsTurn = HisenseTurnEnum.getWjLightsTurn(Integer.parseInt(turn, 2));
if (wjLightsTurn == 9){
System.out.println("左只有");
}
Integer type = HisenseTurnEnum.getType(Integer.parseInt(turn, 2));
log.error("readUtf8Line = {},dir={},turn={},wjLightsDir={},wjLightsTurn={}",readUtf8Line,dir,turn,wjLightsDir,wjLightsTurn);
if (wjLightsDir == 0 && wjLightsTurn == 0){
continue;
......@@ -515,6 +530,11 @@ public class StaticInfoServiceImpl implements StaticInfoService {
crossLightsPO.setType(1);
} else if (wjLightsDir == 7) {
crossLightsPO.setType(1);
}else {
crossLightsPO.setType(2);
}
if(type == 2){
crossLightsPO.setType(2);
}
//key
......
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