Commit 8650e8f3 authored by hanbing's avatar hanbing

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

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