From 940706bed34b2684d56b833d6fcc727fe030ec24 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Wed, 3 Dec 2025 16:54:22 +0100 Subject: [PATCH] Enhance logging and vehicle checks in DirectorWorker: Added SQL queries to verify the existence of vehicles in the source region and routes between regions. Improved debug logging to provide insights into vehicle counts and route availability, enhancing traceability during transport planning operations. --- src/worker/director.rs | 55 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/src/worker/director.rs b/src/worker/director.rs index 955a261..f10706a 100644 --- a/src/worker/director.rs +++ b/src/worker/director.rs @@ -1152,6 +1152,56 @@ impl DirectorWorker { source_region: i32, target_region: i32, ) -> Result, DbError> { + // Debug: Prüfe zuerst, ob Fahrzeuge in der Quellregion existieren + const QUERY_COUNT_VEHICLES_IN_REGION: &str = r#" + SELECT COUNT(*) AS count + FROM falukant_data.vehicle v + WHERE v.falukant_user_id = $1 + AND v.region_id = $2; + "#; + + conn.prepare("count_vehicles_in_region", QUERY_COUNT_VEHICLES_IN_REGION)?; + let vehicle_count_rows = conn.execute( + "count_vehicles_in_region", + &[&falukant_user_id, &source_region], + )?; + + let vehicle_count = vehicle_count_rows + .into_iter() + .next() + .and_then(|row| row.get("count").and_then(|v| v.parse::().ok())) + .unwrap_or(0); + + eprintln!( + "[DirectorWorker] Fahrzeuge in Region {} für User {}: {}", + source_region, falukant_user_id, vehicle_count + ); + + // Debug: Prüfe, ob eine Route existiert + const QUERY_CHECK_ROUTE: &str = r#" + SELECT COUNT(*) AS count + FROM falukant_data.region_distance rd + WHERE (rd.source_region_id = $1 AND rd.target_region_id = $2) + OR (rd.source_region_id = $2 AND rd.target_region_id = $1); + "#; + + conn.prepare("check_route", QUERY_CHECK_ROUTE)?; + let route_rows = conn.execute( + "check_route", + &[&source_region, &target_region], + )?; + + let route_exists = route_rows + .into_iter() + .next() + .and_then(|row| row.get("count").and_then(|v| v.parse::().ok())) + .unwrap_or(0) > 0; + + eprintln!( + "[DirectorWorker] Route von Region {} nach Region {} existiert: {}", + source_region, target_region, route_exists + ); + conn.prepare( "get_transport_vehicles_for_route", QUERY_GET_TRANSPORT_VEHICLES_FOR_ROUTE, @@ -1177,6 +1227,11 @@ impl DirectorWorker { } } + eprintln!( + "[DirectorWorker] Gefundene Transportmittel für Route {} -> {}: {}", + source_region, target_region, result.len() + ); + Ok(result) }