Skip to content

Commit

Permalink
Schedule adherence report include vehicle id (#16)
Browse files Browse the repository at this point in the history
  • Loading branch information
TsimurSh authored May 19, 2024
1 parent b6c75c4 commit cc6baa0
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ ResponseEntity<String> getTripsWithTravelTimes(
ResponseEntity<String> getAvlReport(
StandardParameters stdParameters,
@Parameter(description = "Vehicle id") @RequestParam(value = "v") String vehicleId,
@Parameter(description = "Begin date(MM-DD-YYYY.") @RequestParam(value = "beginDate") String beginDate,
@Parameter(description = "Num days.", required = false) @RequestParam(value = "numDays", required = false) int numDays,
@Parameter(description = "Begin date(MM-DD-YYYY or YYYY-MM-DD") @RequestParam(value = "beginDate") String beginDate,
@Parameter(description = "Num days.") @RequestParam(value = "numDays", defaultValue = "1", required = false) int numDays,
@Parameter(description = "Begin time(HH:MM)") @RequestParam(value = "beginTime", required = false) String beginTime,
@Parameter(description = "End time(HH:MM)") @RequestParam(value = "endTime", required = false) String endTime);

Expand Down Expand Up @@ -104,8 +104,8 @@ ResponseEntity<String> getTrips(
ResponseEntity<String> scheduleAdhReport(
StandardParameters stdParameters,
@Parameter(description = "Route id") @RequestParam(value = "r") String routeId,
@Parameter(description = "Begin date(MM-DD-YYYY.") @RequestParam(value = "beginDate") String beginDate,
@Parameter(description = "Num days.", required = false) @RequestParam(value = "numDays", required = false) int numDays,
@Parameter(description = "Begin date(MM-DD-YYYY or YYYY-MM-DD") @RequestParam(value = "beginDate") String beginDate,
@Parameter(description = "Num days.") @RequestParam(value = "numDays", defaultValue = "1", required = false) int numDays,
@Parameter(description = "Begin time(HH:MM)") @RequestParam(value = "beginTime") String beginTime,
@Parameter(description = "End time(HH:MM)") @RequestParam(value = "endTime") String endTime,
@Parameter(description = "Allowable early in mins(default 1.0)")
Expand Down
20 changes: 11 additions & 9 deletions app/src/main/java/org/transitclock/core/reports/Reports.java
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,8 @@ public static String getScheduleAdhByStops(
// + " abs(((ad.time / 1000) - (ad.scheduled_time / 1000))) AS
// difference_in_seconds, \n"
+ " s.id AS stop_id, \n"
+ " ad.stop_order AS stop_order \n"
+ " ad.stop_order AS stop_order, \n"
+ " ad.vehicle_id AS v_id \n"
+ " FROM arrivals_departures ad, stops s \n"
+ "WHERE "
// To get stop name
Expand All @@ -276,7 +277,8 @@ public static String getScheduleAdhByStops(
// + " ((ad.time / 1000) - (ad.scheduled_time / 1000)) AS
// difference_in_seconds, \n"
+ " s.id AS stop_id, \n"
+ " ad.stop_order AS stop_order \n"
+ " ad.stop_order AS stop_order, \n"
+ " ad.vehicle_id AS v_id \n"
+ " FROM arrivals_departures ad, Stops s \n"
+ "WHERE "
// To get stop name
Expand All @@ -294,18 +296,18 @@ public static String getScheduleAdhByStops(
+ " \n"
+ " ORDER BY direction_id, ad.stop_order, s.name \n"
+ "), \n"
+ "trips_late_query_v2 AS ( SELECT"
+ " array_to_string(array_agg(trips_late::text || ' (' ||"
+ " difference_in_seconds::text || ')' order by trips_late::text), '; ') AS"
+ " trips_late, \n"
+ "trips_late_query_v2 AS ( SELECT \n"
+ " array_to_string(array_agg('trip: ' || trips_late::text || ' (' ||"
+ " difference_in_seconds::text || '), vehicle: ' || v_id::text order by trips_late::text), '; ')"
+ " AS trips_late, \n"
+ " stop_id, \n"
+ " stop_order \n"
+ " FROM trips_late_query_with_time \n"
+ " GROUP BY stop_id, stop_order \n"
+ " ), \n"
+ " trips_early_query_v2 AS ( \n"
+ " SELECT array_to_string(array_agg(trips_early::text || ' (' ||"
+ " difference_in_seconds::text || ')' order by trips_early::text), '; ')"
+ " trips_early_query_v2 AS ( SELECT \n"
+ " array_to_string(array_agg('trip: ' || trips_early::text || ' (' ||"
+ " difference_in_seconds::text || '), vehicle: ' || v_id::text order by trips_early::text), '; ')"
+ " AS trips_early, \n"
+ " stop_id, \n"
+ " stop_order \n"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -217,11 +217,17 @@ public static String timeRangeClause(

SimpleDateFormat currentFormat = new SimpleDateFormat("MM-dd-yyyy");
SimpleDateFormat requiredFormat = new SimpleDateFormat("yyyy-MM-dd");

try {
beginDate = requiredFormat.format(currentFormat.parse(beginDate));
if (beginDate.charAt(4) != '-') { // for two patterns MM-dd-yyyy & yyyy-MM-dd
beginDate = requiredFormat.format(currentFormat.parse(beginDate));
} else {
requiredFormat.parse(beginDate);
}
} catch (ParseException e) {
logger.error("Exception happened while processing time-range clause", e);
}

return " AND %s BETWEEN '%s' AND TIMESTAMP '%s' + INTERVAL '%d day' %s "
.formatted(timeColumnName, beginDate, beginDate, numDays, timeSql);
}
Expand Down

0 comments on commit cc6baa0

Please sign in to comment.