Commit 8cca9705 authored by fengyasheng's avatar fengyasheng

路口周报1.2

parent 75173da9
...@@ -60,7 +60,7 @@ public class CrossRidLaneServiceImpl implements CrossRidLaneService { ...@@ -60,7 +60,7 @@ public class CrossRidLaneServiceImpl implements CrossRidLaneService {
List<CrossRidLaneVO> crossRidLaneVOS = new ArrayList<>(); List<CrossRidLaneVO> crossRidLaneVOS = new ArrayList<>();
for (String laneName : laneNameMap.keySet()) { for (String laneName : laneNameMap.keySet()) {
List<CrossRidLaneDTO> laneDTOS = laneNameMap.get(laneName); List<CrossRidLaneDTO> laneDTOS = laneNameMap.get(laneName).stream().filter(x->x.getLaneType() == 2).collect(Collectors.toList());
CrossRidLaneVO crossRidLaneVO = new CrossRidLaneVO(); CrossRidLaneVO crossRidLaneVO = new CrossRidLaneVO();
crossRidLaneVO.setLaneName(laneName); crossRidLaneVO.setLaneName(laneName);
if (ObjectUtil.isEmpty(laneDTOS.get(0).getInDir()) || ObjectUtil.isEmpty(laneDTOS.get(0).getOutDir())) { if (ObjectUtil.isEmpty(laneDTOS.get(0).getInDir()) || ObjectUtil.isEmpty(laneDTOS.get(0).getOutDir())) {
...@@ -68,7 +68,20 @@ public class CrossRidLaneServiceImpl implements CrossRidLaneService { ...@@ -68,7 +68,20 @@ public class CrossRidLaneServiceImpl implements CrossRidLaneService {
} else { } else {
crossRidLaneVO.setLaneDir(CrossDirEnum.getDesc(laneDTOS.get(0).getInDir()) + CrossDirEnum.getDesc(laneDTOS.get(0).getOutDir()) + "走向"); crossRidLaneVO.setLaneDir(CrossDirEnum.getDesc(laneDTOS.get(0).getInDir()) + CrossDirEnum.getDesc(laneDTOS.get(0).getOutDir()) + "走向");
} }
crossRidLaneVO.setLaneNum(laneDTOS.size()); Map<String, List<CrossRidLaneDTO>> endCrossRoadMap = laneNameMap.get(laneName).stream().filter(x -> x.getLaneType() == 1 && x.getCrossId().equals(x.getStartCrossId())).collect(Collectors.groupingBy(CrossRidLaneDTO::getEndCrossId));
Map<String, List<CrossRidLaneDTO>> startCrossRoadMap = laneNameMap.get(laneName).stream().filter(x -> x.getLaneType() == 1 && x.getCrossId().equals(x.getEndCrossId())).collect(Collectors.groupingBy(CrossRidLaneDTO::getStartCrossId));
int maxCount = 0;
for (String endCrossId : endCrossRoadMap.keySet()) {
for (String startCrossId : startCrossRoadMap.keySet()) {
if(endCrossId.equals(startCrossId)){
int count = endCrossRoadMap.get(endCrossId).size() + startCrossRoadMap.get(startCrossId).size();
if(count>maxCount){
maxCount = count;
}
}
}
}
crossRidLaneVO.setLaneNum(maxCount);
Map<Integer, List<CrossRidLaneDTO>> dirLaneMap = laneDTOS.stream().collect(Collectors.groupingBy(CrossRidLaneDTO::getDir)); Map<Integer, List<CrossRidLaneDTO>> dirLaneMap = laneDTOS.stream().collect(Collectors.groupingBy(CrossRidLaneDTO::getDir));
List<LaneDirNumVO> laneDirNumVOS = new ArrayList<>(); List<LaneDirNumVO> laneDirNumVOS = new ArrayList<>();
for (Integer dir : dirLaneMap.keySet()) { for (Integer dir : dirLaneMap.keySet()) {
......
...@@ -13,14 +13,17 @@ ...@@ -13,14 +13,17 @@
b.dir as dir, b.dir as dir,
b.turn as turn, b.turn as turn,
c.name AS lane_name, c.name AS lane_name,
b.type as lane_type,
c.out_dir as out_dir, c.out_dir as out_dir,
c.in_dir as in_dir c.in_dir as in_dir,
c.start_cross_id,
c.end_cross_id
FROM FROM
t_base_cross_info AS a t_base_cross_info AS a
LEFT JOIN t_base_lane_info AS b ON a.id = b.cross_id LEFT JOIN t_base_rid_info AS c ON a.id = c.start_cross_id or a.id = c.end_cross_id
LEFT JOIN t_base_rid_info AS c ON b.rid = c.id LEFT JOIN t_base_lane_info AS b ON b.rid = c.id
WHERE WHERE
a.is_signal = 1 and b.type = 2 a.is_signal = 1
<if test="crossIdList != null"> <if test="crossIdList != null">
and a.id in and a.id in
<foreach collection="crossIdList" item="crossId" open="(" close=")" separator=","> <foreach collection="crossIdList" item="crossId" open="(" close=")" separator=",">
......
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