From dd4ce8879bd748af052efbb7041b3ad51ce64660 Mon Sep 17 00:00:00 2001 From: Jan Date: Sun, 14 Dec 2025 16:24:42 +0100 Subject: [PATCH] Fill out section distance in database during routing --- .../lcc/service/calculation/RoutingService.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/de/avatic/lcc/service/calculation/RoutingService.java b/src/main/java/de/avatic/lcc/service/calculation/RoutingService.java index c406f2d..b1abddb 100644 --- a/src/main/java/de/avatic/lcc/service/calculation/RoutingService.java +++ b/src/main/java/de/avatic/lcc/service/calculation/RoutingService.java @@ -219,7 +219,7 @@ public class RoutingService { routeSection.setPostRun(section.getType().equals(TemporaryRateObject.TemporaryRateObjectType.POST_RUN)); routeSection.setPreRun(false); - routeSection.setDistance(section.getApproxDistance()); + routeSection.setDistance(section.getApproxDistance() == 0.0 ? null : section.getApproxDistance()); return routeSection; @@ -479,7 +479,7 @@ public class RoutingService { } if (connectionType == SourceConnectionType.FINAL_SECTION_WITH_NEAR_BY_NODE || connectionType == SourceConnectionType.CHAIN_END_IS_NEAR_BY_NODE) { - duplicate.routeOverNearBy(source, nearByNode); + duplicate.routeOverNearBy(source, nearByNode, distanceService.getDistanceForNode(source, nearByNode)); } routes.add(duplicate); @@ -565,7 +565,6 @@ public class RoutingService { * - check if chain is routable * - add post run and main run */ - var mainruns = container.getMainRuns(); for (var mainRun : container.getMainRuns()) { @@ -631,6 +630,10 @@ public class RoutingService { if (routable) { qualityRoutable = true; routeObj.setQuality(quality); + + mainRunObj.setApproxDistance(distanceService.getDistanceForNode(mainRunStartNode, mainRunEndNode)); + postRunObj.setApproxDistance(distanceService.getDistanceForNode(mainRunEndNode, postRunEndNode)); + routeObj.addPostRunSection(postRunObj); routeObj.addMainRunSection(mainRunObj); container.addRoute(routeObj); @@ -694,6 +697,7 @@ public class RoutingService { if (containerRate.isPresent()) { containerRateObj.setRate(containerRate.get()); + containerRateObj.setApproxDistance(distanceService.getDistanceForNode(startNode, endNode)); container.getRates().add(containerRateObj); return containerRateObj; } else { @@ -891,8 +895,10 @@ public class RoutingService { return clone; } - public void routeOverNearBy(Node source, Node nearByNode) { - this.sections.add(new TemporaryRateObject(source, nearByNode, TemporaryRateObject.TemporaryRateObjectType.NEAR_BY)); + public void routeOverNearBy(Node source, Node nearByNode, double distance) { + var rate = new TemporaryRateObject(source, nearByNode, TemporaryRateObject.TemporaryRateObjectType.NEAR_BY); + rate.setApproxDistance(distance); + this.sections.add(rate); this.nearBy = true; }