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.
This commit is contained in:
@@ -1152,6 +1152,56 @@ impl DirectorWorker {
|
|||||||
source_region: i32,
|
source_region: i32,
|
||||||
target_region: i32,
|
target_region: i32,
|
||||||
) -> Result<Vec<TransportVehicle>, DbError> {
|
) -> Result<Vec<TransportVehicle>, 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::<i32>().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::<i32>().ok()))
|
||||||
|
.unwrap_or(0) > 0;
|
||||||
|
|
||||||
|
eprintln!(
|
||||||
|
"[DirectorWorker] Route von Region {} nach Region {} existiert: {}",
|
||||||
|
source_region, target_region, route_exists
|
||||||
|
);
|
||||||
|
|
||||||
conn.prepare(
|
conn.prepare(
|
||||||
"get_transport_vehicles_for_route",
|
"get_transport_vehicles_for_route",
|
||||||
QUERY_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)
|
Ok(result)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user