Commit 8cca9705 authored by fengyasheng's avatar fengyasheng

路口周报1.2

parent 75173da9
......@@ -60,7 +60,7 @@ public class CrossRidLaneServiceImpl implements CrossRidLaneService {
List<CrossRidLaneVO> crossRidLaneVOS = new ArrayList<>();
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.setLaneName(laneName);
if (ObjectUtil.isEmpty(laneDTOS.get(0).getInDir()) || ObjectUtil.isEmpty(laneDTOS.get(0).getOutDir())) {
......@@ -68,7 +68,20 @@ public class CrossRidLaneServiceImpl implements CrossRidLaneService {
} else {
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));
List<LaneDirNumVO> laneDirNumVOS = new ArrayList<>();
for (Integer dir : dirLaneMap.keySet()) {
......
......@@ -13,14 +13,17 @@
b.dir as dir,
b.turn as turn,
c.name AS lane_name,
b.type as lane_type,
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
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 b.rid = c.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_lane_info AS b ON b.rid = c.id
WHERE
a.is_signal = 1 and b.type = 2
a.is_signal = 1
<if test="crossIdList != null">
and a.id in
<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