修改:新版头码车进路办理bug
This commit is contained in:
parent
f8a42de456
commit
4ea0ad5e1f
@ -45,32 +45,38 @@ public class AtsHeadTrainRouteSelectServiceImpl implements AtsRouteSelectService
|
||||
return dcd.queryNextRoute(headSection);
|
||||
} else {
|
||||
// 根据车次计划查找可触发进路列表
|
||||
Object[] results = this.queryByDestinationCode(simulation, trainInfo, targetSection, right);
|
||||
Object[] results = this.queryByDestinationCode(simulation, trainInfo, headSection, targetSection, right);
|
||||
// 根据计划筛选需触发进路
|
||||
return filterRoutes(repository, trainInfo, results, dcd);
|
||||
}
|
||||
}
|
||||
|
||||
private Object[] queryByDestinationCode(Simulation simulation, TrainInfo trainInfo, Section targetSection, Boolean right) {
|
||||
private Object[] queryByDestinationCode(Simulation simulation, TrainInfo trainInfo, Section headSection, Section targetSection, Boolean right) {
|
||||
SimulationDataRepository repository = simulation.getRepository();
|
||||
List<RoutePath> routePathList = repository.queryRoutePathsByEnd(targetSection);
|
||||
if (CollectionUtils.isEmpty(routePathList)) {
|
||||
return null;
|
||||
}
|
||||
routePathList = routePathList.stream()
|
||||
.filter(routePath -> routePath.containsSection(targetSection))
|
||||
.filter(routePath -> routePath.containsSection(headSection))
|
||||
.collect(Collectors.toList());
|
||||
Object[] result = this.queryTriggerRoutesOfRoutePath(repository, trainInfo, routePathList);
|
||||
if (!(boolean) result[1] && !(boolean) result[2]) { //不存在未触发的进路和未接近的信号机
|
||||
// 判断配置是否列车停站才触发接下来的进路
|
||||
MapConfig config = repository.getConfig();
|
||||
if (config.isSignalOpenAfterParking() && !trainInfo.isParking()) {
|
||||
return null;
|
||||
} else {
|
||||
if (!config.isSignalOpenAfterParking() || trainInfo.isPlanTrain()) {
|
||||
Section nextTarget = AtsHeadTrainStageService.queryNextTarget(simulation, targetSection, trainInfo, right);
|
||||
routePathList = repository.queryRoutePathsByEnd(nextTarget);
|
||||
result = this.queryTriggerRoutesOfRoutePath(repository, trainInfo, routePathList);
|
||||
if (nextTarget != null) {
|
||||
routePathList = repository.queryRoutePathsByEnd(nextTarget);
|
||||
if (!CollectionUtils.isEmpty(routePathList)) {
|
||||
routePathList = routePathList.stream()
|
||||
.filter(routePath -> routePath.containsSection(headSection))
|
||||
.collect(Collectors.toList());
|
||||
return this.queryTriggerRoutesOfRoutePath(repository, trainInfo, routePathList);
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user