为了加快仿真创建,去掉遍历所有功能轨构建进路路径的逻辑
This commit is contained in:
parent
c369b355fd
commit
280cafcf13
@ -1125,41 +1125,43 @@ public class InterlockBuilder2 {
|
|||||||
private static void buildRoutePathFromStationRunLevel(MapCiGenerateConfig generateConfig, List<StationRunLevel> stationRunLevelList,
|
private static void buildRoutePathFromStationRunLevel(MapCiGenerateConfig generateConfig, List<StationRunLevel> stationRunLevelList,
|
||||||
SimulationBuilder.SimulationDeviceBuildResult buildResult,
|
SimulationBuilder.SimulationDeviceBuildResult buildResult,
|
||||||
List<String> errMsgList) {
|
List<String> errMsgList) {
|
||||||
|
// long s = System.currentTimeMillis();
|
||||||
|
// Map<String, List<RoutePath>> routePathMap = buildResult.getRoutePathMap();
|
||||||
|
// Map<String, MapElement> deviceMap = buildResult.getDeviceMap();
|
||||||
|
// if (generateConfig != null && generateConfig.isRailway()) {
|
||||||
|
// List<Section> sections = deviceMap.values().stream()
|
||||||
|
// .filter(device -> device instanceof Section)
|
||||||
|
// .map(device -> (Section) device)
|
||||||
|
// .filter(Section::isFunctionTrack)
|
||||||
|
// .collect(Collectors.toList());
|
||||||
|
// for (int i = 0; i < sections.size(); i++) {
|
||||||
|
// Section start = sections.get(i);
|
||||||
|
// for (int j = 0; j < sections.size() && i != j; j++) {
|
||||||
|
// Section end = sections.get(j);
|
||||||
|
// List<RoutePath> routePaths = CalculateService.queryRoutePathsOnDirection(start, end, true, 100);
|
||||||
|
// if (!CollectionUtils.isEmpty(routePaths)) {
|
||||||
|
// routePathMap.put(routePaths.get(0).getKey(), routePaths);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// System.out.println("无脑构建进路路径耗时:" + (System.currentTimeMillis() - s));
|
||||||
|
|
||||||
Map<String, List<RoutePath>> routePathMap = buildResult.getRoutePathMap();
|
Map<String, List<RoutePath>> routePathMap = buildResult.getRoutePathMap();
|
||||||
Map<String, MapElement> deviceMap = buildResult.getDeviceMap();
|
if (!CollectionUtils.isEmpty(stationRunLevelList)) {
|
||||||
if (generateConfig != null && generateConfig.isRailway()) {
|
for (StationRunLevel runLevel : stationRunLevelList) {
|
||||||
List<Section> sections = deviceMap.values().stream()
|
Section startSection = runLevel.getStartSection();
|
||||||
.filter(device -> device instanceof Section)
|
Section endSection = runLevel.getEndSection();
|
||||||
.map(device -> (Section) device)
|
boolean right = runLevel.isRight();
|
||||||
.filter(Section::isFunctionTrack)
|
List<RoutePath> routePaths = CalculateService.queryRoutePathsOnDirection(startSection, endSection, right, 10);
|
||||||
.collect(Collectors.toList());
|
if (CollectionUtils.isEmpty(routePaths)) {
|
||||||
for (int i = 0; i < sections.size(); i++) {
|
errMsgList.add(String.format("站间运行等级[%s]无法找到路径",
|
||||||
Section start = sections.get(i);
|
runLevel.debugStr(), startSection.debugStr(), endSection.debugStr()));
|
||||||
for (int j = 0; j < sections.size() && i != j; j++) {
|
} else {
|
||||||
Section end = sections.get(j);
|
routePathMap.put(routePaths.get(0).getKey(), routePaths);
|
||||||
List<RoutePath> routePaths = CalculateService.queryRoutePathsOnDirection(start, end, true, 100);
|
|
||||||
if (!CollectionUtils.isEmpty(routePaths)) {
|
|
||||||
routePathMap.put(routePaths.get(0).getKey(), routePaths);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (CollectionUtils.isEmpty(stationRunLevelList)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
for (StationRunLevel runLevel : stationRunLevelList) {
|
|
||||||
Section startSection = runLevel.getStartSection();
|
|
||||||
Section endSection = runLevel.getEndSection();
|
|
||||||
boolean right = runLevel.isRight();
|
|
||||||
List<RoutePath> routePaths = CalculateService.queryRoutePathsOnDirection(startSection, endSection, right, 10);
|
|
||||||
if (CollectionUtils.isEmpty(routePaths)) {
|
|
||||||
errMsgList.add(String.format("站间运行等级[%s]无法找到路径",
|
|
||||||
runLevel.debugStr(), startSection.debugStr(), endSection.debugStr()));
|
|
||||||
} else {
|
|
||||||
routePathMap.put(routePaths.get(0).getKey(), routePaths);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
long l = System.currentTimeMillis();
|
|
||||||
/* 根据交路数据,构建缺失的进路路径 */
|
/* 根据交路数据,构建缺失的进路路径 */
|
||||||
for (Routing routing : buildResult.getRoutingList()) {
|
for (Routing routing : buildResult.getRoutingList()) {
|
||||||
List<Section> allSections = routing.getAllSections().stream().distinct().collect(Collectors.toList());
|
List<Section> allSections = routing.getAllSections().stream().distinct().collect(Collectors.toList());
|
||||||
|
@ -100,13 +100,9 @@ public class SimulationBuilder {
|
|||||||
loadDepotInOutRoutePath(simulation);
|
loadDepotInOutRoutePath(simulation);
|
||||||
// CTC行车日志数据结构构建
|
// CTC行车日志数据结构构建
|
||||||
if (simulation.getRepository().getConfig().isHasCTC()) {
|
if (simulation.getRepository().getConfig().isHasCTC()) {
|
||||||
LocalDateTime now = LocalDateTime.now();
|
|
||||||
System.out.println("CTC行车日志耗时:" + Duration.between(now, LocalDateTime.now()).getSeconds());
|
|
||||||
buildCtcRailwayInfo(simulation);
|
buildCtcRailwayInfo(simulation);
|
||||||
buildCtcStationRunPlanLog(simulation);
|
buildCtcStationRunPlanLog(simulation);
|
||||||
now = LocalDateTime.now();
|
|
||||||
generateRouteSequence(simulation);
|
generateRouteSequence(simulation);
|
||||||
System.out.println("CTC进路序列耗时:" + Duration.between(now, LocalDateTime.now()).getSeconds());
|
|
||||||
}
|
}
|
||||||
return simulation;
|
return simulation;
|
||||||
}
|
}
|
||||||
|
@ -650,7 +650,7 @@ public class CalculateService {
|
|||||||
for (RoutePath path : list) {
|
for (RoutePath path : list) {
|
||||||
path.calculateDistance();
|
path.calculateDistance();
|
||||||
path.calculateSwitchCount();
|
path.calculateSwitchCount();
|
||||||
log.debug(path.debugStr2());
|
// log.debug(path.debugStr2());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.debug(String.format("进路路径[%s]未找到:[%s]",
|
log.debug(String.format("进路路径[%s]未找到:[%s]",
|
||||||
|
Loading…
Reference in New Issue
Block a user