Commit 8650e8f3 authored by hanbing's avatar hanbing

[update] 快速特勤,添加特勤路线只有2个路口时bug修复

parent ec3bfc58
...@@ -137,6 +137,11 @@ public class SpecialServiceServiceImpl implements SpecialServiceService { ...@@ -137,6 +137,11 @@ public class SpecialServiceServiceImpl implements SpecialServiceService {
SpecialServiceCrossPO specialServiceCrossPO = new SpecialServiceCrossPO(); SpecialServiceCrossPO specialServiceCrossPO = new SpecialServiceCrossPO();
specialServiceCrossPO.setSpecialServiceId(specialServiceIdGenerated); specialServiceCrossPO.setSpecialServiceId(specialServiceIdGenerated);
specialServiceCrossPO.setCrossId(startCrossId); specialServiceCrossPO.setCrossId(startCrossId);
RidInfoEntity preRid = null;
if (route.size() == 1) { // 如果只有两个路口
preRid = ridInfoEntity;
} else {
// 获取上一个路段 // 获取上一个路段
RouteElementVO preRoute = route.get(i - 1); RouteElementVO preRoute = route.get(i - 1);
String preStartName = preRoute.getStartName(); String preStartName = preRoute.getStartName();
...@@ -146,7 +151,9 @@ public class SpecialServiceServiceImpl implements SpecialServiceService { ...@@ -146,7 +151,9 @@ public class SpecialServiceServiceImpl implements SpecialServiceService {
String preEndName = preRoute.getEndName(); String preEndName = preRoute.getEndName();
BaseCrossInfoPO preEndCross = baseCrossInfoMapper.selectByName(preEndName); BaseCrossInfoPO preEndCross = baseCrossInfoMapper.selectByName(preEndName);
String preEndCrossId = preEndCross.getId(); String preEndCrossId = preEndCross.getId();
RidInfoEntity preRid = ridInfoMapper.selectByStartEnd(preStartCrossId, preEndCrossId); preRid = ridInfoMapper.selectByStartEnd(preStartCrossId, preEndCrossId);
}
// 当前路口驶入方向 // 当前路口驶入方向
Integer inDir = preRid.getInDir(); Integer inDir = preRid.getInDir();
// 当前路口使出方向 // 当前路口使出方向
...@@ -231,6 +238,11 @@ public class SpecialServiceServiceImpl implements SpecialServiceService { ...@@ -231,6 +238,11 @@ public class SpecialServiceServiceImpl implements SpecialServiceService {
SpecialServiceCrossPO specialServiceCrossPO = new SpecialServiceCrossPO(); SpecialServiceCrossPO specialServiceCrossPO = new SpecialServiceCrossPO();
specialServiceCrossPO.setSpecialServiceId(specialServiceId); specialServiceCrossPO.setSpecialServiceId(specialServiceId);
specialServiceCrossPO.setCrossId(startCrossId); specialServiceCrossPO.setCrossId(startCrossId);
RidInfoEntity preRid = null;
if (route.size() == 1) { // 如果只有两个路口
preRid = ridInfoEntity;
} else {
// 获取上一个路段 // 获取上一个路段
RouteElementVO preRoute = route.get(i - 1); RouteElementVO preRoute = route.get(i - 1);
String preStartName = preRoute.getStartName(); String preStartName = preRoute.getStartName();
...@@ -240,7 +252,9 @@ public class SpecialServiceServiceImpl implements SpecialServiceService { ...@@ -240,7 +252,9 @@ public class SpecialServiceServiceImpl implements SpecialServiceService {
String preEndName = preRoute.getEndName(); String preEndName = preRoute.getEndName();
BaseCrossInfoPO preEndCross = baseCrossInfoMapper.selectByName(preEndName); BaseCrossInfoPO preEndCross = baseCrossInfoMapper.selectByName(preEndName);
String preEndCrossId = preEndCross.getId(); String preEndCrossId = preEndCross.getId();
RidInfoEntity preRid = ridInfoMapper.selectByStartEnd(preStartCrossId, preEndCrossId); preRid = ridInfoMapper.selectByStartEnd(preStartCrossId, preEndCrossId);
}
// 当前路口驶入方向 // 当前路口驶入方向
Integer inDir = preRid.getInDir(); Integer inDir = preRid.getInDir();
// 当前路口使出方向 // 当前路口使出方向
...@@ -408,7 +422,7 @@ public class SpecialServiceServiceImpl implements SpecialServiceService { ...@@ -408,7 +422,7 @@ public class SpecialServiceServiceImpl implements SpecialServiceService {
} }
List<BaseCrossInfoPO> routeList2 = new ArrayList<>(); List<BaseCrossInfoPO> routeList2 = new ArrayList<>();
routeList2.add(startCross); routeList2.add(startCross);
getSecondRouteList(secondStartCross, endCross, routeList2); getSecondRouteList(startCross, secondStartCross, endCross, routeList2);
List<RouteElementVO> route2 = buildRoute(routeList2); List<RouteElementVO> route2 = buildRoute(routeList2);
res.add(route1); res.add(route1);
...@@ -418,8 +432,8 @@ public class SpecialServiceServiceImpl implements SpecialServiceService { ...@@ -418,8 +432,8 @@ public class SpecialServiceServiceImpl implements SpecialServiceService {
return null; return null;
} }
private void getSecondRouteList(BaseCrossInfoPO secondStartCross, BaseCrossInfoPO endCross, private void getSecondRouteList(BaseCrossInfoPO startCross, BaseCrossInfoPO secondStartCross,
List<BaseCrossInfoPO> routeList2) { BaseCrossInfoPO endCross, List<BaseCrossInfoPO> routeList2) {
String endCrossLonLatStr = getCrossLonLatStr(endCross); String endCrossLonLatStr = getCrossLonLatStr(endCross);
// 获取上游路口到终点距离最近的 // 获取上游路口到终点距离最近的
BaseCrossInfoPO nextStartCross = secondStartCross; BaseCrossInfoPO nextStartCross = secondStartCross;
...@@ -429,6 +443,9 @@ public class SpecialServiceServiceImpl implements SpecialServiceService { ...@@ -429,6 +443,9 @@ public class SpecialServiceServiceImpl implements SpecialServiceService {
List<RidInfoEntity> ridUpCrossList = ridInfoMapper.selectUpCross(nextStartCross.getId()); List<RidInfoEntity> ridUpCrossList = ridInfoMapper.selectUpCross(nextStartCross.getId());
for (RidInfoEntity ridUpCross : ridUpCrossList) { for (RidInfoEntity ridUpCross : ridUpCrossList) {
String upCrossId = ridUpCross.getStartCrossId(); String upCrossId = ridUpCross.getStartCrossId();
if (StrUtil.equals(upCrossId, startCross.getId())){
continue;
}
BaseCrossInfoPO upCross = baseCrossInfoMapper.selectById(upCrossId); BaseCrossInfoPO upCross = baseCrossInfoMapper.selectById(upCrossId);
String upCrossLonLatStr = getCrossLonLatStr(upCross); String upCrossLonLatStr = getCrossLonLatStr(upCross);
double distance = gtsService.distance(endCrossLonLatStr, upCrossLonLatStr); double distance = gtsService.distance(endCrossLonLatStr, upCrossLonLatStr);
......
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