@golemio/pid 5.8.3 → 5.8.4-dev.2436906089
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/db/example/13_http-propagate-delay.sql +3 -0
- package/db/migrations/postgresql/20260325161451-add-new-columns-to-precomputed-table.js +53 -0
- package/db/migrations/postgresql/20260407082406-add-new-columns-to-getDepartures().js +53 -0
- package/db/migrations/postgresql/sqls/20260325161451-add-new-columns-to-precomputed-table-down.sql +4 -0
- package/db/migrations/postgresql/sqls/20260325161451-add-new-columns-to-precomputed-table-up.sql +4 -0
- package/db/migrations/postgresql/sqls/20260407082406-add-new-columns-to-getDepartures()-down.sql +152 -0
- package/db/migrations/postgresql/sqls/20260407082406-add-new-columns-to-getDepartures()-up.sql +158 -0
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js +32 -3
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js +2 -2
- package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/PositionsMapper.js +3 -2
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/PositionsMapper.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/CommonDelayAtStop.js +8 -2
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/CommonDelayAtStop.js.map +1 -1
- package/dist/output-gateway/pid/controllers/v2/V2DepartureBoardsController.js +1 -0
- package/dist/output-gateway/pid/controllers/v2/V2DepartureBoardsController.js.map +1 -1
- package/dist/output-gateway/pid/dto/DepartureBoardsDTO.d.ts +1 -0
- package/dist/output-gateway/pid/dto/DepartureBoardsDTO.js +4 -0
- package/dist/output-gateway/pid/dto/DepartureBoardsDTO.js.map +1 -1
- package/dist/output-gateway/pid/dto/interfaces/IDepartureBoardsQueryDTO.d.ts +1 -0
- package/dist/output-gateway/pid/helpers/DepartureBoardMapper.d.ts +2 -1
- package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js +28 -4
- package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js.map +1 -1
- package/dist/output-gateway/pid/interfaces/IPIDDeparture.d.ts +3 -0
- package/dist/output-gateway/pid/models/PIDDepartureBoardsModel.js +1 -0
- package/dist/output-gateway/pid/models/PIDDepartureBoardsModel.js.map +1 -1
- package/dist/output-gateway/pid/models/helpers/PIDDepartureModel.js +1 -1
- package/dist/output-gateway/pid/models/helpers/PIDDepartureModel.js.map +1 -1
- package/dist/output-gateway/pid/models/helpers/interfaces/IPIDDepartureQueryOptions.d.ts +1 -0
- package/dist/output-gateway/pid/models/interfaces/IGetDeparturesOptions.d.ts +1 -0
- package/dist/output-gateway/pid/routers/v2/V2PIDRouter.js +1 -0
- package/dist/output-gateway/pid/routers/v2/V2PIDRouter.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/models/precomputed/DeparturesModel.d.ts +3 -0
- package/dist/schema-definitions/ropid-gtfs/models/precomputed/DeparturesModel.js +12 -0
- package/dist/schema-definitions/ropid-gtfs/models/precomputed/DeparturesModel.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/models/precomputed/interfaces/IDeparturesModel.d.ts +3 -0
- package/docs/asyncapi.yaml +27 -4
- package/docs/cache/types/psql.md +3 -3
- package/docs/cache/types/redis.md +30 -2
- package/docs/implementation_documentation.md +96 -3
- package/docs/jis/index.md +17 -0
- package/docs/openapi-output.yaml +20 -3
- package/docs/processing/input_realtime_data/http_mpvnet.md +21 -0
- package/docs/processing/input_realtime_data/tcp_dpp_bus.md +3 -3
- package/docs/processing/input_realtime_data/tcp_dpp_tram.md +3 -3
- package/docs/processing/state_position_tracking/http_mpvnet.md +1 -0
- package/docs/processing/state_position_tracking/tcp_dpp_common.md +2 -1
- package/docs/processing/transferboards_filtering.md +312 -0
- package/package.json +1 -1
|
@@ -216,3 +216,6 @@ VALUES
|
|
|
216
216
|
(E'2022-12-23 12:36:58.063+01',87,NULL,87,E'U4107Z1P',1.887,FALSE,50.10024,14.66322,E'12:56:28',((SELECT now_date FROM init_values) + INTERVAL '12:56:28') at time zone 'Europe/Prague',true,E'2022-12-23T11:31:00Z_100212_212_1043',NULL,NULL,NULL,E'2022-12-23 12:36:59.261+01',NULL,2563981365,270,59545,5,E'U4137Z1P',5,6,28,'2022-12-23T11:35:00.000Z','2022-12-23T11:35:00.000Z','2022-12-23T11:36:00.000Z','2022-12-23T11:36:00.000Z',NULL,E'input',E'unknown',E'U4137Z1P',5,NULL,NULL,E'Všestarská',NULL,NULL,'2022-12-23T11:41:27.000Z'),
|
|
217
217
|
(E'2022-12-23 12:36:58.063+01',NULL,NULL,NULL,E'U4107Z1P',0,FALSE,50.10024,14.66322,E'12:56:28',((SELECT now_date FROM init_values) + INTERVAL '12:56:28') at time zone 'Europe/Prague',false,E'2022-12-23T11:54:00Z_100212_212_1046',NULL,NULL,NULL,E'2022-12-23 12:36:59.264+01',NULL,2563981368,297,NULL,NULL,NULL,NULL,1,28,NULL,NULL,'2022-12-23T11:54:00.000Z','2022-12-23T11:54:00.000Z',NULL,E'input',E'unknown',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2022-12-23T11:41:27.000Z'),
|
|
218
218
|
(E'2022-12-23 12:36:58.063+01',NULL,NULL,NULL,E'U454Z3P',0,FALSE,50.10024,14.66322,E'12:56:28',((SELECT now_date FROM init_values) + INTERVAL '12:56:28') at time zone 'Europe/Prague',false,E'2022-12-23T12:01:00Z_100212_212_1045',NULL,NULL,NULL,E'2022-12-23 12:36:59.262+01',NULL,2563981367,297,NULL,NULL,NULL,NULL,1,28,NULL,NULL,'2022-12-23T12:01:00.000Z','2022-12-23T12:01:00.000Z',NULL,E'input',E'unknown',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2022-12-23T11:41:27.000Z');
|
|
219
|
+
|
|
220
|
+
-- Set scheduled_timestamp = origin_timestamp for all positions (takt event time)
|
|
221
|
+
UPDATE vehiclepositions_positions SET scheduled_timestamp = origin_timestamp WHERE scheduled_timestamp IS NULL;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var dbm;
|
|
4
|
+
var type;
|
|
5
|
+
var seed;
|
|
6
|
+
var fs = require('fs');
|
|
7
|
+
var path = require('path');
|
|
8
|
+
var Promise;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* We receive the dbmigrate dependency from dbmigrate initially.
|
|
12
|
+
* This enables us to not have to rely on NODE_PATH.
|
|
13
|
+
*/
|
|
14
|
+
exports.setup = function(options, seedLink) {
|
|
15
|
+
dbm = options.dbmigrate;
|
|
16
|
+
type = dbm.dataType;
|
|
17
|
+
seed = seedLink;
|
|
18
|
+
Promise = options.Promise;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
exports.up = function(db) {
|
|
22
|
+
var filePath = path.join(__dirname, 'sqls', '20260325161451-add-new-columns-to-precomputed-table-up.sql');
|
|
23
|
+
return new Promise( function( resolve, reject ) {
|
|
24
|
+
fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
|
|
25
|
+
if (err) return reject(err);
|
|
26
|
+
console.log('received data: ' + data);
|
|
27
|
+
|
|
28
|
+
resolve(data);
|
|
29
|
+
});
|
|
30
|
+
})
|
|
31
|
+
.then(function(data) {
|
|
32
|
+
return db.runSql(data);
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
exports.down = function(db) {
|
|
37
|
+
var filePath = path.join(__dirname, 'sqls', '20260325161451-add-new-columns-to-precomputed-table-down.sql');
|
|
38
|
+
return new Promise( function( resolve, reject ) {
|
|
39
|
+
fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
|
|
40
|
+
if (err) return reject(err);
|
|
41
|
+
console.log('received data: ' + data);
|
|
42
|
+
|
|
43
|
+
resolve(data);
|
|
44
|
+
});
|
|
45
|
+
})
|
|
46
|
+
.then(function(data) {
|
|
47
|
+
return db.runSql(data);
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
exports._meta = {
|
|
52
|
+
"version": 1
|
|
53
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var dbm;
|
|
4
|
+
var type;
|
|
5
|
+
var seed;
|
|
6
|
+
var fs = require('fs');
|
|
7
|
+
var path = require('path');
|
|
8
|
+
var Promise;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* We receive the dbmigrate dependency from dbmigrate initially.
|
|
12
|
+
* This enables us to not have to rely on NODE_PATH.
|
|
13
|
+
*/
|
|
14
|
+
exports.setup = function(options, seedLink) {
|
|
15
|
+
dbm = options.dbmigrate;
|
|
16
|
+
type = dbm.dataType;
|
|
17
|
+
seed = seedLink;
|
|
18
|
+
Promise = options.Promise;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
exports.up = function(db) {
|
|
22
|
+
var filePath = path.join(__dirname, 'sqls', '20260407082406-add-new-columns-to-getDepartures()-up.sql');
|
|
23
|
+
return new Promise( function( resolve, reject ) {
|
|
24
|
+
fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
|
|
25
|
+
if (err) return reject(err);
|
|
26
|
+
console.log('received data: ' + data);
|
|
27
|
+
|
|
28
|
+
resolve(data);
|
|
29
|
+
});
|
|
30
|
+
})
|
|
31
|
+
.then(function(data) {
|
|
32
|
+
return db.runSql(data);
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
exports.down = function(db) {
|
|
37
|
+
var filePath = path.join(__dirname, 'sqls', '20260407082406-add-new-columns-to-getDepartures()-down.sql');
|
|
38
|
+
return new Promise( function( resolve, reject ) {
|
|
39
|
+
fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
|
|
40
|
+
if (err) return reject(err);
|
|
41
|
+
console.log('received data: ' + data);
|
|
42
|
+
|
|
43
|
+
resolve(data);
|
|
44
|
+
});
|
|
45
|
+
})
|
|
46
|
+
.then(function(data) {
|
|
47
|
+
return db.runSql(data);
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
exports._meta = {
|
|
52
|
+
"version": 1
|
|
53
|
+
};
|
package/db/migrations/postgresql/sqls/20260407082406-add-new-columns-to-getDepartures()-down.sql
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
DROP FUNCTION pid.get_departures(varchar, int4, timestamptz, timestamptz, int4, timestamptz, timestamptz, int4);
|
|
2
|
+
|
|
3
|
+
CREATE FUNCTION pid.get_departures(stopsids character varying, mode integer, datedeparturebetweenstart timestamp with time zone, datedeparturebetweenend timestamp with time zone, isnegativeminutesbefore integer, datecanceleddeparturebetweenstart timestamp with time zone, datecanceleddeparturebetweenend timestamp with time zone, airconditioninfoenabled integer)
|
|
4
|
+
RETURNS TABLE(departure_datetime_real timestamp with time zone, arrival_datetime_real timestamp with time zone, stop_sequence smallint, stop_headsign character varying, arrival_datetime timestamp with time zone, departure_datetime timestamp with time zone, stop_id character varying, platform_code character varying, wheelchair_boarding smallint, min_stop_sequence smallint, max_stop_sequence smallint, trip_id character varying, trip_headsign character varying, trip_short_name character varying, wheelchair_accessible smallint, route_short_name character varying, route_type smallint, route_id character varying, is_night character, is_regional character, is_substitute_transport character, next_stop_id character varying, delay_seconds integer, real_wheelchair_accessible boolean, is_canceled boolean, "trip.gtfs_trip_short_name" character varying, "trip.gtfs_date" date, "trip.internal_route_name" character varying, "trip.internal_run_number" integer, "trip.start_timestamp" timestamp with time zone, "trip.last_position.state_position" character varying, "trip.last_position.last_stop_id" character varying, "trip.last_position.last_stop_sequence" integer, "trip.last_position.last_stop_name" character varying, "trip.last_position.this_stop_sequence" integer, "trip.cis_stop_platform_code" character varying, "trip.vehicle_descriptor.is_air_conditioned" boolean, delay_minutes integer, is_delay_available boolean, run_number integer, planned_start_timestamp timestamp with time zone)
|
|
5
|
+
LANGUAGE sql
|
|
6
|
+
SET search_path TO 'pid', 'public'
|
|
7
|
+
AS $function$
|
|
8
|
+
select
|
|
9
|
+
departure_boards_detailed."computed.departure_datetime_real",
|
|
10
|
+
departure_boards_detailed."computed.arrival_datetime_real",
|
|
11
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence",
|
|
12
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_headsign",
|
|
13
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.arrival_datetime",
|
|
14
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.departure_datetime",
|
|
15
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_id",
|
|
16
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.platform_code",
|
|
17
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.wheelchair_boarding",
|
|
18
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.min_stop_sequence",
|
|
19
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.max_stop_sequence",
|
|
20
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.trip_id",
|
|
21
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.trip_headsign",
|
|
22
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.trip_short_name",
|
|
23
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.wheelchair_accessible",
|
|
24
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.route_short_name",
|
|
25
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.route_type",
|
|
26
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.route_id",
|
|
27
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.is_night",
|
|
28
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.is_regional",
|
|
29
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.is_substitute_transport",
|
|
30
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.next_stop_id",
|
|
31
|
+
departure_boards_detailed."delay_seconds",
|
|
32
|
+
departure_boards_detailed."real_wheelchair_accessible",
|
|
33
|
+
departure_boards_detailed."is_canceled",
|
|
34
|
+
departure_boards_detailed."trip.gtfs_trip_short_name",
|
|
35
|
+
departure_boards_detailed."trip.gtfs_date",
|
|
36
|
+
departure_boards_detailed."trip.internal_route_name",
|
|
37
|
+
departure_boards_detailed."trip.internal_run_number",
|
|
38
|
+
departure_boards_detailed."trip.start_timestamp",
|
|
39
|
+
departure_boards_detailed."trip.last_position.state_position",
|
|
40
|
+
departure_boards_detailed."trip.last_position.last_stop_id",
|
|
41
|
+
departure_boards_detailed."trip.last_position.last_stop_sequence",
|
|
42
|
+
departure_boards_detailed."trip.last_position.last_stop_name",
|
|
43
|
+
departure_boards_detailed."trip.last_position.this_stop_sequence",
|
|
44
|
+
departure_boards_detailed.cis_stop_platform_code as "trip.cis_stop_platform_code",
|
|
45
|
+
case when airconditioninfoenabled = 1 then departure_boards_detailed."trip.vehicle_descriptor.is_air_conditioned" else NULL end,
|
|
46
|
+
TRUNC(departure_boards_detailed."trip.last_position.delay"::DECIMAL / 60, 0)::int as "delay_minutes",
|
|
47
|
+
case when departure_boards_detailed."trip.last_position.delay" is null then false else true end as "is_delay_available",
|
|
48
|
+
departure_boards_detailed."run.run_number",
|
|
49
|
+
departure_boards_detailed.planned_start_timestamp
|
|
50
|
+
|
|
51
|
+
from (
|
|
52
|
+
select
|
|
53
|
+
("departure_datetime"
|
|
54
|
+
+ MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end))
|
|
55
|
+
- case when (MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end)) > MAKE_INTERVAL())
|
|
56
|
+
then least (
|
|
57
|
+
MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end)),
|
|
58
|
+
("departure_datetime" - "arrival_datetime")::interval
|
|
59
|
+
)
|
|
60
|
+
else MAKE_INTERVAL()
|
|
61
|
+
end
|
|
62
|
+
) "computed.departure_datetime_real",
|
|
63
|
+
"arrival_datetime" + MAKE_INTERVAL(secs => (
|
|
64
|
+
CASE WHEN "trip.last_position.delay" IS NULL THEN 0 ELSE "trip.last_position.delay" end
|
|
65
|
+
)) "computed.arrival_datetime_real",
|
|
66
|
+
"ropidgtfs_precomputed_departures"."stop_sequence" as "ropidgtfs_precomputed_departures.stop_sequence",
|
|
67
|
+
"ropidgtfs_precomputed_departures"."stop_headsign" as "ropidgtfs_precomputed_departures.stop_headsign",
|
|
68
|
+
"ropidgtfs_precomputed_departures"."pickup_type" as "ropidgtfs_precomputed_departures.pickup_type",
|
|
69
|
+
"ropidgtfs_precomputed_departures"."drop_off_type" as "ropidgtfs_precomputed_departures.drop_off_type",
|
|
70
|
+
"ropidgtfs_precomputed_departures"."arrival_time" as "ropidgtfs_precomputed_departures.arrival_time",
|
|
71
|
+
"ropidgtfs_precomputed_departures"."arrival_datetime" as "ropidgtfs_precomputed_departures.arrival_datetime",
|
|
72
|
+
"ropidgtfs_precomputed_departures"."departure_time" as "ropidgtfs_precomputed_departures.departure_time",
|
|
73
|
+
"ropidgtfs_precomputed_departures"."departure_datetime" as "ropidgtfs_precomputed_departures.departure_datetime",
|
|
74
|
+
"ropidgtfs_precomputed_departures"."stop_id" as "ropidgtfs_precomputed_departures.stop_id",
|
|
75
|
+
"ropidgtfs_precomputed_departures"."stop_name" as "ropidgtfs_precomputed_departures.stop_name",
|
|
76
|
+
"ropidgtfs_precomputed_departures"."platform_code" as "ropidgtfs_precomputed_departures.platform_code",
|
|
77
|
+
"ropidgtfs_precomputed_departures"."wheelchair_boarding" as "ropidgtfs_precomputed_departures.wheelchair_boarding",
|
|
78
|
+
"ropidgtfs_precomputed_departures"."min_stop_sequence" as "ropidgtfs_precomputed_departures.min_stop_sequence",
|
|
79
|
+
"ropidgtfs_precomputed_departures"."max_stop_sequence" as "ropidgtfs_precomputed_departures.max_stop_sequence",
|
|
80
|
+
"ropidgtfs_precomputed_departures"."trip_id" as "ropidgtfs_precomputed_departures.trip_id",
|
|
81
|
+
"ropidgtfs_precomputed_departures"."trip_headsign" as "ropidgtfs_precomputed_departures.trip_headsign",
|
|
82
|
+
"ropidgtfs_precomputed_departures"."trip_short_name" as "ropidgtfs_precomputed_departures.trip_short_name",
|
|
83
|
+
"ropidgtfs_precomputed_departures"."wheelchair_accessible" as "ropidgtfs_precomputed_departures.wheelchair_accessible",
|
|
84
|
+
"ropidgtfs_precomputed_departures"."service_id" as "ropidgtfs_precomputed_departures.service_id",
|
|
85
|
+
"ropidgtfs_precomputed_departures"."date" as "ropidgtfs_precomputed_departures.date",
|
|
86
|
+
"ropidgtfs_precomputed_departures"."route_short_name" as "ropidgtfs_precomputed_departures.route_short_name",
|
|
87
|
+
"ropidgtfs_precomputed_departures"."route_type" as "ropidgtfs_precomputed_departures.route_type",
|
|
88
|
+
"ropidgtfs_precomputed_departures"."route_id" as "ropidgtfs_precomputed_departures.route_id",
|
|
89
|
+
"ropidgtfs_precomputed_departures"."is_night" as "ropidgtfs_precomputed_departures.is_night",
|
|
90
|
+
"ropidgtfs_precomputed_departures"."is_regional" as "ropidgtfs_precomputed_departures.is_regional",
|
|
91
|
+
"ropidgtfs_precomputed_departures"."is_substitute_transport" as "ropidgtfs_precomputed_departures.is_substitute_transport",
|
|
92
|
+
"ropidgtfs_precomputed_departures"."next_stop_sequence" as "ropidgtfs_precomputed_departures.next_stop_sequence",
|
|
93
|
+
"ropidgtfs_precomputed_departures"."next_stop_id" as "ropidgtfs_precomputed_departures.next_stop_id",
|
|
94
|
+
"ropidgtfs_precomputed_departures"."last_stop_sequence" as "ropidgtfs_precomputed_departures.last_stop_sequence",
|
|
95
|
+
"ropidgtfs_precomputed_departures"."last_stop_id" as "ropidgtfs_precomputed_departures.last_stop_id",
|
|
96
|
+
plan_start.planned_departure AS planned_start_timestamp,
|
|
97
|
+
x.*,
|
|
98
|
+
cis_stop.cis_stop_platform_code as "cis_stop_platform_code",
|
|
99
|
+
run.run_number as "run.run_number"
|
|
100
|
+
from
|
|
101
|
+
"ropidgtfs_precomputed_departures" as "ropidgtfs_precomputed_departures"
|
|
102
|
+
left join "ropidgtfs_run_numbers" as run on
|
|
103
|
+
"ropidgtfs_precomputed_departures"."trip_id" = run.trip_id
|
|
104
|
+
and "ropidgtfs_precomputed_departures"."service_id" = run.service_id
|
|
105
|
+
left outer join v_vehiclepositions_trip_position_vehicle_info as x on
|
|
106
|
+
"ropidgtfs_precomputed_departures"."trip_id" = x."trip.gtfs_trip_id"
|
|
107
|
+
left join lateral (
|
|
108
|
+
select pd.departure_datetime as planned_departure
|
|
109
|
+
from ropidgtfs_precomputed_departures pd
|
|
110
|
+
where pd.trip_id = "ropidgtfs_precomputed_departures".trip_id
|
|
111
|
+
and pd.date = "ropidgtfs_precomputed_departures".date
|
|
112
|
+
and pd.stop_sequence = 1
|
|
113
|
+
limit 1
|
|
114
|
+
) as plan_start on true
|
|
115
|
+
left join vehiclepositions_cis_stops as cis_stop on
|
|
116
|
+
cis_stop.rt_trip_id = x."trip.id"
|
|
117
|
+
and cis_stop.cis_stop_group_id = "ropidgtfs_precomputed_departures"."cis_stop_group_id"
|
|
118
|
+
) departure_boards_detailed
|
|
119
|
+
where
|
|
120
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_id" = ANY(STRING_TO_ARRAY(stopsIds,','))
|
|
121
|
+
and (
|
|
122
|
+
(
|
|
123
|
+
(
|
|
124
|
+
(mode = 1 and departure_boards_detailed."computed.arrival_datetime_real" between dateDepartureBetweenStart and dateDepartureBetweenEnd)
|
|
125
|
+
or (mode != 1 and departure_boards_detailed."computed.departure_datetime_real" between dateDepartureBetweenStart and dateDepartureBetweenEnd)
|
|
126
|
+
)
|
|
127
|
+
and
|
|
128
|
+
(
|
|
129
|
+
0 = isNegativeMinutesBefore
|
|
130
|
+
or ( -- pro záporné minutes before
|
|
131
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence" >= departure_boards_detailed."trip.last_position.last_stop_sequence"
|
|
132
|
+
or departure_boards_detailed."trip.last_position.last_stop_sequence" IS null
|
|
133
|
+
)
|
|
134
|
+
)
|
|
135
|
+
|
|
136
|
+
)
|
|
137
|
+
or (
|
|
138
|
+
departure_boards_detailed."trip.is_canceled" = true
|
|
139
|
+
and
|
|
140
|
+
(
|
|
141
|
+
(mode = 1 and departure_boards_detailed."computed.arrival_datetime_real" between dateCanceledDepartureBetweenStart and dateCanceledDepartureBetweenEnd)
|
|
142
|
+
or (mode != 1 and departure_boards_detailed."computed.departure_datetime_real" between dateCanceledDepartureBetweenStart and dateCanceledDepartureBetweenEnd)
|
|
143
|
+
)
|
|
144
|
+
)
|
|
145
|
+
) and
|
|
146
|
+
(
|
|
147
|
+
(mode = 1 and (departure_boards_detailed."ropidgtfs_precomputed_departures.pickup_type" != '1' and departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence" != departure_boards_detailed."ropidgtfs_precomputed_departures.max_stop_sequence")) -- mode default/departures
|
|
148
|
+
or (mode=2 and (departure_boards_detailed."ropidgtfs_precomputed_departures.drop_off_type" != '1' and departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence" != departure_boards_detailed."ropidgtfs_precomputed_departures.min_stop_sequence")) -- mode arrivals
|
|
149
|
+
or (mode=3 and (departure_boards_detailed."ropidgtfs_precomputed_departures.pickup_type" != '1')) -- mode mixed
|
|
150
|
+
);
|
|
151
|
+
$function$
|
|
152
|
+
;
|
package/db/migrations/postgresql/sqls/20260407082406-add-new-columns-to-getDepartures()-up.sql
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
DROP FUNCTION pid.get_departures(varchar, int4, timestamptz, timestamptz, int4, timestamptz, timestamptz, int4);
|
|
2
|
+
|
|
3
|
+
CREATE FUNCTION pid.get_departures(stopsids character varying, mode integer, datedeparturebetweenstart timestamp with time zone, datedeparturebetweenend timestamp with time zone, isnegativeminutesbefore integer, datecanceleddeparturebetweenstart timestamp with time zone, datecanceleddeparturebetweenend timestamp with time zone, airconditioninfoenabled integer)
|
|
4
|
+
RETURNS TABLE(departure_datetime_real timestamp with time zone, arrival_datetime_real timestamp with time zone, stop_sequence smallint, stop_headsign character varying, arrival_datetime timestamp with time zone, departure_datetime timestamp with time zone, stop_id character varying, platform_code character varying, wheelchair_boarding smallint, min_stop_sequence smallint, max_stop_sequence smallint, trip_id character varying, trip_headsign character varying, trip_short_name character varying, wheelchair_accessible smallint, route_short_name character varying, route_type smallint, route_id character varying, is_night character, is_regional character, is_substitute_transport character, next_stop_id character varying, next_route_short_name text, next_trip_headsign text, max_stop_sequence_with_stop_headsign integer, delay_seconds integer, real_wheelchair_accessible boolean, is_canceled boolean, "trip.gtfs_trip_short_name" character varying, "trip.gtfs_date" date, "trip.internal_route_name" character varying, "trip.internal_run_number" integer, "trip.start_timestamp" timestamp with time zone, "trip.last_position.state_position" character varying, "trip.last_position.last_stop_id" character varying, "trip.last_position.last_stop_sequence" integer, "trip.last_position.last_stop_name" character varying, "trip.last_position.this_stop_sequence" integer, "trip.cis_stop_platform_code" character varying, "trip.vehicle_descriptor.is_air_conditioned" boolean, delay_minutes integer, is_delay_available boolean, run_number integer, planned_start_timestamp timestamp with time zone)
|
|
5
|
+
LANGUAGE sql
|
|
6
|
+
SET search_path TO 'pid', 'public'
|
|
7
|
+
AS $function$
|
|
8
|
+
select
|
|
9
|
+
departure_boards_detailed."computed.departure_datetime_real",
|
|
10
|
+
departure_boards_detailed."computed.arrival_datetime_real",
|
|
11
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence",
|
|
12
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_headsign",
|
|
13
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.arrival_datetime",
|
|
14
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.departure_datetime",
|
|
15
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_id",
|
|
16
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.platform_code",
|
|
17
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.wheelchair_boarding",
|
|
18
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.min_stop_sequence",
|
|
19
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.max_stop_sequence",
|
|
20
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.trip_id",
|
|
21
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.trip_headsign",
|
|
22
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.trip_short_name",
|
|
23
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.wheelchair_accessible",
|
|
24
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.route_short_name",
|
|
25
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.route_type",
|
|
26
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.route_id",
|
|
27
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.is_night",
|
|
28
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.is_regional",
|
|
29
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.is_substitute_transport",
|
|
30
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.next_stop_id",
|
|
31
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.next_route_short_name",
|
|
32
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.next_trip_headsign",
|
|
33
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.max_stop_sequence_with_stop_headsign",
|
|
34
|
+
departure_boards_detailed."delay_seconds",
|
|
35
|
+
departure_boards_detailed."real_wheelchair_accessible",
|
|
36
|
+
departure_boards_detailed."is_canceled",
|
|
37
|
+
departure_boards_detailed."trip.gtfs_trip_short_name",
|
|
38
|
+
departure_boards_detailed."trip.gtfs_date",
|
|
39
|
+
departure_boards_detailed."trip.internal_route_name",
|
|
40
|
+
departure_boards_detailed."trip.internal_run_number",
|
|
41
|
+
departure_boards_detailed."trip.start_timestamp",
|
|
42
|
+
departure_boards_detailed."trip.last_position.state_position",
|
|
43
|
+
departure_boards_detailed."trip.last_position.last_stop_id",
|
|
44
|
+
departure_boards_detailed."trip.last_position.last_stop_sequence",
|
|
45
|
+
departure_boards_detailed."trip.last_position.last_stop_name",
|
|
46
|
+
departure_boards_detailed."trip.last_position.this_stop_sequence",
|
|
47
|
+
departure_boards_detailed.cis_stop_platform_code as "trip.cis_stop_platform_code",
|
|
48
|
+
case when airconditioninfoenabled = 1 then departure_boards_detailed."trip.vehicle_descriptor.is_air_conditioned" else NULL end,
|
|
49
|
+
TRUNC(departure_boards_detailed."trip.last_position.delay"::DECIMAL / 60, 0)::int as "delay_minutes",
|
|
50
|
+
case when departure_boards_detailed."trip.last_position.delay" is null then false else true end as "is_delay_available",
|
|
51
|
+
departure_boards_detailed."run.run_number",
|
|
52
|
+
departure_boards_detailed.planned_start_timestamp
|
|
53
|
+
|
|
54
|
+
from (
|
|
55
|
+
select
|
|
56
|
+
("departure_datetime"
|
|
57
|
+
+ MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end))
|
|
58
|
+
- case when (MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end)) > MAKE_INTERVAL())
|
|
59
|
+
then least (
|
|
60
|
+
MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end)),
|
|
61
|
+
("departure_datetime" - "arrival_datetime")::interval
|
|
62
|
+
)
|
|
63
|
+
else MAKE_INTERVAL()
|
|
64
|
+
end
|
|
65
|
+
) "computed.departure_datetime_real",
|
|
66
|
+
"arrival_datetime" + MAKE_INTERVAL(secs => (
|
|
67
|
+
CASE WHEN "trip.last_position.delay" IS NULL THEN 0 ELSE "trip.last_position.delay" end
|
|
68
|
+
)) "computed.arrival_datetime_real",
|
|
69
|
+
"ropidgtfs_precomputed_departures"."stop_sequence" as "ropidgtfs_precomputed_departures.stop_sequence",
|
|
70
|
+
"ropidgtfs_precomputed_departures"."stop_headsign" as "ropidgtfs_precomputed_departures.stop_headsign",
|
|
71
|
+
"ropidgtfs_precomputed_departures"."pickup_type" as "ropidgtfs_precomputed_departures.pickup_type",
|
|
72
|
+
"ropidgtfs_precomputed_departures"."drop_off_type" as "ropidgtfs_precomputed_departures.drop_off_type",
|
|
73
|
+
"ropidgtfs_precomputed_departures"."arrival_time" as "ropidgtfs_precomputed_departures.arrival_time",
|
|
74
|
+
"ropidgtfs_precomputed_departures"."arrival_datetime" as "ropidgtfs_precomputed_departures.arrival_datetime",
|
|
75
|
+
"ropidgtfs_precomputed_departures"."departure_time" as "ropidgtfs_precomputed_departures.departure_time",
|
|
76
|
+
"ropidgtfs_precomputed_departures"."departure_datetime" as "ropidgtfs_precomputed_departures.departure_datetime",
|
|
77
|
+
"ropidgtfs_precomputed_departures"."stop_id" as "ropidgtfs_precomputed_departures.stop_id",
|
|
78
|
+
"ropidgtfs_precomputed_departures"."stop_name" as "ropidgtfs_precomputed_departures.stop_name",
|
|
79
|
+
"ropidgtfs_precomputed_departures"."platform_code" as "ropidgtfs_precomputed_departures.platform_code",
|
|
80
|
+
"ropidgtfs_precomputed_departures"."wheelchair_boarding" as "ropidgtfs_precomputed_departures.wheelchair_boarding",
|
|
81
|
+
"ropidgtfs_precomputed_departures"."min_stop_sequence" as "ropidgtfs_precomputed_departures.min_stop_sequence",
|
|
82
|
+
"ropidgtfs_precomputed_departures"."max_stop_sequence" as "ropidgtfs_precomputed_departures.max_stop_sequence",
|
|
83
|
+
"ropidgtfs_precomputed_departures"."trip_id" as "ropidgtfs_precomputed_departures.trip_id",
|
|
84
|
+
"ropidgtfs_precomputed_departures"."trip_headsign" as "ropidgtfs_precomputed_departures.trip_headsign",
|
|
85
|
+
"ropidgtfs_precomputed_departures"."trip_short_name" as "ropidgtfs_precomputed_departures.trip_short_name",
|
|
86
|
+
"ropidgtfs_precomputed_departures"."wheelchair_accessible" as "ropidgtfs_precomputed_departures.wheelchair_accessible",
|
|
87
|
+
"ropidgtfs_precomputed_departures"."service_id" as "ropidgtfs_precomputed_departures.service_id",
|
|
88
|
+
"ropidgtfs_precomputed_departures"."date" as "ropidgtfs_precomputed_departures.date",
|
|
89
|
+
"ropidgtfs_precomputed_departures"."route_short_name" as "ropidgtfs_precomputed_departures.route_short_name",
|
|
90
|
+
"ropidgtfs_precomputed_departures"."route_type" as "ropidgtfs_precomputed_departures.route_type",
|
|
91
|
+
"ropidgtfs_precomputed_departures"."route_id" as "ropidgtfs_precomputed_departures.route_id",
|
|
92
|
+
"ropidgtfs_precomputed_departures"."is_night" as "ropidgtfs_precomputed_departures.is_night",
|
|
93
|
+
"ropidgtfs_precomputed_departures"."is_regional" as "ropidgtfs_precomputed_departures.is_regional",
|
|
94
|
+
"ropidgtfs_precomputed_departures"."is_substitute_transport" as "ropidgtfs_precomputed_departures.is_substitute_transport",
|
|
95
|
+
"ropidgtfs_precomputed_departures"."next_stop_sequence" as "ropidgtfs_precomputed_departures.next_stop_sequence",
|
|
96
|
+
"ropidgtfs_precomputed_departures"."next_stop_id" as "ropidgtfs_precomputed_departures.next_stop_id",
|
|
97
|
+
"ropidgtfs_precomputed_departures"."last_stop_sequence" as "ropidgtfs_precomputed_departures.last_stop_sequence",
|
|
98
|
+
"ropidgtfs_precomputed_departures"."last_stop_id" as "ropidgtfs_precomputed_departures.last_stop_id",
|
|
99
|
+
"ropidgtfs_precomputed_departures"."next_route_short_name" as "ropidgtfs_precomputed_departures.next_route_short_name",
|
|
100
|
+
"ropidgtfs_precomputed_departures"."next_trip_headsign" as "ropidgtfs_precomputed_departures.next_trip_headsign",
|
|
101
|
+
"ropidgtfs_precomputed_departures"."max_stop_sequence_with_stop_headsign" as "ropidgtfs_precomputed_departures.max_stop_sequence_with_stop_headsign",
|
|
102
|
+
plan_start.planned_departure AS planned_start_timestamp,
|
|
103
|
+
x.*,
|
|
104
|
+
cis_stop.cis_stop_platform_code as "cis_stop_platform_code",
|
|
105
|
+
run.run_number as "run.run_number"
|
|
106
|
+
from
|
|
107
|
+
"ropidgtfs_precomputed_departures" as "ropidgtfs_precomputed_departures"
|
|
108
|
+
left join "ropidgtfs_run_numbers" as run on
|
|
109
|
+
"ropidgtfs_precomputed_departures"."trip_id" = run.trip_id
|
|
110
|
+
and "ropidgtfs_precomputed_departures"."service_id" = run.service_id
|
|
111
|
+
left outer join v_vehiclepositions_trip_position_vehicle_info as x on
|
|
112
|
+
"ropidgtfs_precomputed_departures"."trip_id" = x."trip.gtfs_trip_id"
|
|
113
|
+
left join lateral (
|
|
114
|
+
select pd.departure_datetime as planned_departure
|
|
115
|
+
from ropidgtfs_precomputed_departures pd
|
|
116
|
+
where pd.trip_id = "ropidgtfs_precomputed_departures".trip_id
|
|
117
|
+
and pd.date = "ropidgtfs_precomputed_departures".date
|
|
118
|
+
and pd.stop_sequence = 1
|
|
119
|
+
limit 1
|
|
120
|
+
) as plan_start on true
|
|
121
|
+
left join vehiclepositions_cis_stops as cis_stop on
|
|
122
|
+
cis_stop.rt_trip_id = x."trip.id"
|
|
123
|
+
and cis_stop.cis_stop_group_id = "ropidgtfs_precomputed_departures"."cis_stop_group_id"
|
|
124
|
+
) departure_boards_detailed
|
|
125
|
+
where
|
|
126
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_id" = ANY(STRING_TO_ARRAY(stopsIds,','))
|
|
127
|
+
and (
|
|
128
|
+
(
|
|
129
|
+
(
|
|
130
|
+
(mode = 1 and departure_boards_detailed."computed.arrival_datetime_real" between dateDepartureBetweenStart and dateDepartureBetweenEnd)
|
|
131
|
+
or (mode != 1 and departure_boards_detailed."computed.departure_datetime_real" between dateDepartureBetweenStart and dateDepartureBetweenEnd)
|
|
132
|
+
)
|
|
133
|
+
and
|
|
134
|
+
(
|
|
135
|
+
0 = isNegativeMinutesBefore
|
|
136
|
+
or ( -- pro záporné minutes before
|
|
137
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence" >= departure_boards_detailed."trip.last_position.last_stop_sequence"
|
|
138
|
+
or departure_boards_detailed."trip.last_position.last_stop_sequence" IS null
|
|
139
|
+
)
|
|
140
|
+
)
|
|
141
|
+
|
|
142
|
+
)
|
|
143
|
+
or (
|
|
144
|
+
departure_boards_detailed."trip.is_canceled" = true
|
|
145
|
+
and
|
|
146
|
+
(
|
|
147
|
+
(mode = 1 and departure_boards_detailed."computed.arrival_datetime_real" between dateCanceledDepartureBetweenStart and dateCanceledDepartureBetweenEnd)
|
|
148
|
+
or (mode != 1 and departure_boards_detailed."computed.departure_datetime_real" between dateCanceledDepartureBetweenStart and dateCanceledDepartureBetweenEnd)
|
|
149
|
+
)
|
|
150
|
+
)
|
|
151
|
+
) and
|
|
152
|
+
(
|
|
153
|
+
(mode = 1 and (departure_boards_detailed."ropidgtfs_precomputed_departures.pickup_type" != '1' and departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence" != departure_boards_detailed."ropidgtfs_precomputed_departures.max_stop_sequence")) -- mode default/departures
|
|
154
|
+
or (mode=2 and (departure_boards_detailed."ropidgtfs_precomputed_departures.drop_off_type" != '1' and departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence" != departure_boards_detailed."ropidgtfs_precomputed_departures.min_stop_sequence")) -- mode arrivals
|
|
155
|
+
or (mode=3 and (departure_boards_detailed."ropidgtfs_precomputed_departures.pickup_type" != '1')) -- mode mixed
|
|
156
|
+
);
|
|
157
|
+
$function$
|
|
158
|
+
;
|
|
@@ -75,18 +75,47 @@ let DeparturesRepository = class DeparturesRepository extends models_1.PostgresM
|
|
|
75
75
|
WHEN t.stop_headsign IS NOT NULL THEN t.headsign_icons
|
|
76
76
|
ELSE t2.headsign_icons
|
|
77
77
|
END AS trip_headsign_icons,
|
|
78
|
-
t8."connections" AS trip_connections
|
|
78
|
+
t8."connections" AS trip_connections,
|
|
79
|
+
next_route.route_short_name AS next_route_short_name,
|
|
80
|
+
next_trip.trip_headsign AS next_trip_headsign,
|
|
81
|
+
max_headsign_seq.max_seq_with_headsign AS max_stop_sequence_with_stop_headsign
|
|
79
82
|
FROM ropidgtfs_stop_times${sourceTableSuffix} t
|
|
80
|
-
LEFT JOIN ropidgtfs_stops${sourceTableSuffix} t0 ON t.stop_id = t0.stop_id
|
|
81
83
|
LEFT JOIN ropidgtfs_trips${sourceTableSuffix} t2 ON t.trip_id = t2.trip_id
|
|
82
84
|
INNER JOIN ropidgtfs_precomputed_services_calendar_tmp t4 ON t2.service_id = t4.service_id
|
|
83
85
|
INNER JOIN ropidgtfs_precomputed_minmax_stop_sequences_tmp t1 ON t.trip_id = t1.trip_id
|
|
84
86
|
LEFT JOIN ropidgtfs_calendar${sourceTableSuffix} t3 ON t2.service_id = t3.service_id
|
|
87
|
+
LEFT JOIN ropidgtfs_stops${sourceTableSuffix} t0 ON t.stop_id = t0.stop_id
|
|
85
88
|
LEFT JOIN ropidgtfs_routes${sourceTableSuffix} t5 ON t2.route_id = t5.route_id
|
|
86
89
|
LEFT JOIN ropidgtfs_stop_times${sourceTableSuffix} t6 ON t.trip_id = t6.trip_id AND t6.stop_sequence = t.stop_sequence + 1
|
|
87
90
|
LEFT JOIN ropidgtfs_stop_times${sourceTableSuffix} t7 ON t.trip_id = t7.trip_id AND t7.stop_sequence = t.stop_sequence - 1
|
|
88
|
-
LEFT JOIN ropidgtfs_cis_stops cis_stop
|
|
91
|
+
LEFT JOIN ropidgtfs_cis_stops cis_stop ON cis_stop.id = t0.computed_cis_stop_id
|
|
89
92
|
LEFT JOIN ropidgtfs_precomputed_trip_connections_tmp t8 ON t8.to_trip_id = t2.trip_id AND t8.to_stop_id = t.stop_id
|
|
93
|
+
LEFT JOIN LATERAL (
|
|
94
|
+
SELECT
|
|
95
|
+
next_t.trip_id,
|
|
96
|
+
next_t.trip_headsign,
|
|
97
|
+
next_t.route_id
|
|
98
|
+
FROM ropidgtfs_trips${sourceTableSuffix} next_t
|
|
99
|
+
INNER JOIN ropidgtfs_precomputed_minmax_stop_sequences_tmp next_minmax ON next_t.trip_id = next_minmax.trip_id
|
|
100
|
+
INNER JOIN ropidgtfs_stop_times${sourceTableSuffix} next_st ON next_t.trip_id = next_st.trip_id
|
|
101
|
+
AND next_st.stop_sequence = next_minmax.min_stop_sequence
|
|
102
|
+
INNER JOIN ropidgtfs_stop_times${sourceTableSuffix} curr_last_st ON t2.trip_id = curr_last_st.trip_id
|
|
103
|
+
AND curr_last_st.stop_sequence = t1.max_stop_sequence
|
|
104
|
+
WHERE t2.block_id IS NOT NULL
|
|
105
|
+
AND next_t.block_id = t2.block_id
|
|
106
|
+
AND next_t.trip_id != t2.trip_id
|
|
107
|
+
AND next_t.service_id = t2.service_id
|
|
108
|
+
AND gtfs_timestamp(next_st.departure_time, t4.date) >= gtfs_timestamp(curr_last_st.arrival_time, t4.date)
|
|
109
|
+
ORDER BY gtfs_timestamp(next_st.departure_time, t4.date) ASC
|
|
110
|
+
LIMIT 1
|
|
111
|
+
) next_trip ON true
|
|
112
|
+
LEFT JOIN ropidgtfs_routes${sourceTableSuffix} next_route ON next_trip.route_id = next_route.route_id
|
|
113
|
+
LEFT JOIN LATERAL (
|
|
114
|
+
SELECT MAX(st.stop_sequence) AS max_seq_with_headsign
|
|
115
|
+
FROM ropidgtfs_stop_times${sourceTableSuffix} st
|
|
116
|
+
WHERE st.trip_id = t2.trip_id
|
|
117
|
+
AND st.stop_headsign IS NOT NULL
|
|
118
|
+
) max_headsign_seq ON true
|
|
90
119
|
${timeConstraintLiteral}`;
|
|
91
120
|
/* eslint-enable max-len */
|
|
92
121
|
try {
|
package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeparturesRepository.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uEAA4D;AAG5D,gEAAuC;AACvC,8FAAqE;AAErE,wEAAqE;AAErE,yEAAqF;AACrF,6EAAwE;AACxE,mFAAkF;AAClF,mEAAiF;AACjF,iEAAwE;AACxE,+EAA4E;AAGrE,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,sBAAa;IACnD,YACoC,MAA6B,EACnC,MAAuB;QAEjD,KAAK,CACD,sBAAsB,EACtB;YACI,WAAW,EAAE,6BAAe,CAAC,UAAU;YACvC,QAAQ,EAAE,iBAAS;YACnB,yBAAyB,EAAE,6BAAe,CAAC,cAAc;YACzD,kBAAkB,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC;YACtD,UAAU,EAAE,YAAY;SAC3B,EACD,IAAI,uCAAmB,CAAC,sBAAsB,EAAE,6BAAe,CAAC,UAAU,CAAC,CAC9E,CAAC;QAbsC,WAAM,GAAN,MAAM,CAAe;QAC3B,WAAM,GAAN,MAAM,CAAS;QAe9C,sBAAiB,GAAG,KAAK,EAAE,iBAAwC,EAAiB,EAAE;YACzF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;YACpE,MAAM,qBAAqB,GACvB,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,4EAA4E,CAAC,CAAC,CAAC,EAAE,CAAC;YAE3G,4BAA4B;YAC5B,MAAM,GAAG,GAAG
|
|
1
|
+
{"version":3,"file":"DeparturesRepository.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,8 +43,8 @@ let CommonRunsMessagesTransformation = class CommonRunsMessagesTransformation ex
|
|
|
43
43
|
this.transformInternal = (element) => {
|
|
44
44
|
const attributes = element.data.$;
|
|
45
45
|
const identifiers = this.commonRunHelper.getRunIdentifiers(attributes, element.timestamp);
|
|
46
|
-
const realStopTimestampDate = this.commonRunHelper.parseDateFromRunInput(attributes.
|
|
47
|
-
const messageTimestampDate = this.commonRunHelper.parseDateFromRunInput(attributes.
|
|
46
|
+
const realStopTimestampDate = this.commonRunHelper.parseDateFromRunInput(attributes.tm);
|
|
47
|
+
const messageTimestampDate = this.commonRunHelper.parseDateFromRunInput(attributes.takt);
|
|
48
48
|
if (!identifiers || !realStopTimestampDate || !messageTimestampDate) {
|
|
49
49
|
throw new golemio_errors_1.GeneralError("Missing identifiers or timestamps", this.constructor.name);
|
|
50
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommonRunsMessagesTransformation.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,2EAAoE;AACpE,6GAA0G;AAC1G,gEAA6D;AAG7D,gGAA+D;AAC/D,iEAAgE;AAChE,6EAAwE;AAGjE,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,+CAAyE;IAI3H;QACI,KAAK,EAAE,CAAC;QAJL,SAAI,GAAG,kCAAkC,CAAC;QAQ1C,cAAS,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAwB,EAA8B,EAAE;YACzF,MAAM,GAAG,GAAG,IAAA,yBAAM,EAAC,SAAS,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,CAAC;YAC3D,MAAM,GAAG,GAA+B,EAAE,CAAC;YAE3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YACD,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACD,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;oBACrF,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACjC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACX,aAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,6BAA6B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvG,CAAC;YACL,CAAC;YACD,OAAO,GAAG,CAAC;QACf,CAAC,CAAC;QAEQ,sBAAiB,GAAG,CAAC,OAAgC,EAA4B,EAAE;YACzF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAElC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAC1F,MAAM,qBAAqB,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"CommonRunsMessagesTransformation.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,2EAAoE;AACpE,6GAA0G;AAC1G,gEAA6D;AAG7D,gGAA+D;AAC/D,iEAAgE;AAChE,6EAAwE;AAGjE,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,+CAAyE;IAI3H;QACI,KAAK,EAAE,CAAC;QAJL,SAAI,GAAG,kCAAkC,CAAC;QAQ1C,cAAS,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAwB,EAA8B,EAAE;YACzF,MAAM,GAAG,GAAG,IAAA,yBAAM,EAAC,SAAS,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,CAAC;YAC3D,MAAM,GAAG,GAA+B,EAAE,CAAC;YAE3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YACD,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACD,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;oBACrF,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACjC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACX,aAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,6BAA6B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvG,CAAC;YACL,CAAC;YACD,OAAO,GAAG,CAAC;QACf,CAAC,CAAC;QAEQ,sBAAiB,GAAG,CAAC,OAAgC,EAA4B,EAAE;YACzF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAElC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAC1F,MAAM,qBAAqB,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACxF,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAEzF,IAAI,CAAC,WAAW,IAAI,CAAC,qBAAqB,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAClE,MAAM,IAAI,6BAAY,CAAC,mCAAmC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvF,CAAC;YAED,MAAM,0BAA0B,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACtH,OAAO;gBACH,GAAG,EAAE;oBACD,EAAE,EAAE,WAAW,CAAC,KAAK;oBACrB,QAAQ,EAAE,WAAW,CAAC,OAAO;oBAC7B,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC;oBAClD,eAAe,EAAE,UAAU,CAAC,IAAI;oBAChC,mBAAmB,EAAE,UAAU,CAAC,GAAG;oBACnC,mBAAmB,EAAE,OAAO,CAAC,SAAS;oBACtC,kBAAkB,EAAE,OAAO,CAAC,SAAS;oBACrC,qBAAqB,EAAE,UAAU,CAAC,EAAE,KAAK,KAAK;iBACjD;gBACD,WAAW,EAAE;oBACT,qBAAqB;oBACrB,0BAA0B;oBAC1B,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG;oBACpB,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG;oBACpB,kBAAkB,EAAE,UAAU,CAAC,GAAG;oBAClC,0BAA0B,EAAE,qBAAqB;oBACjD,+BAA+B,EAAE,0BAA0B;oBAC3D,gBAAgB,EAAE,UAAU,CAAC,IAAI;oBACjC,aAAa,EAAE,UAAU,CAAC,GAAG;oBAC7B,aAAa,EAAE,oBAAoB;oBACnC,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC5B;aACJ,CAAC;QACN,CAAC,CAAC;QA1DE,IAAI,CAAC,eAAe,GAAG,IAAI,iCAAe,EAAE,CAAC;IACjD,CAAC;CA0DJ,CAAA;AAjEY,4EAAgC;2CAAhC,gCAAgC;IAD5C,IAAA,qBAAU,GAAE;;GACA,gCAAgC,CAiE5C"}
|
|
@@ -8,11 +8,12 @@ const const_1 = require("../../../../../../const");
|
|
|
8
8
|
const TripsIdGenerator_1 = __importDefault(require("./TripsIdGenerator"));
|
|
9
9
|
class PositionsMapper {
|
|
10
10
|
static mapCommonRunToDto(runMessage, isCurrent, gtfsTrip, runInput) {
|
|
11
|
-
const scheduledTimestamp = runMessage.
|
|
11
|
+
const scheduledTimestamp = runMessage.msg_timestamp ? new Date(runMessage.msg_timestamp) : null;
|
|
12
|
+
const timetableTimestamp = runMessage.actual_stop_timestamp_scheduled
|
|
12
13
|
? new Date(runMessage.actual_stop_timestamp_scheduled)
|
|
13
14
|
: null;
|
|
14
15
|
const isTerminated = runMessage.events === const_1.TCPEventEnum.TERMINATED ||
|
|
15
|
-
(
|
|
16
|
+
(timetableTimestamp ? timetableTimestamp >= new Date(gtfsTrip.end_timestamp) : false);
|
|
16
17
|
return {
|
|
17
18
|
asw_last_stop_id: runMessage.last_stop_asw_id,
|
|
18
19
|
lat: runMessage.lat,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PositionsMapper.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/PositionsMapper.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PositionsMapper.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/PositionsMapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,10 +28,16 @@ class CommonDelayAtStop extends AbstractDelayAtStop_1.default {
|
|
|
28
28
|
}
|
|
29
29
|
context = this.resetContext(context, positionToUpdate, position);
|
|
30
30
|
if (this.didVehicleArrive(position) || this.didVehicleArriveAtTheLastStop(positionToUpdate, context)) {
|
|
31
|
-
positionToUpdate.delay_stop_arrival =
|
|
31
|
+
positionToUpdate.delay_stop_arrival =
|
|
32
|
+
position.scheduled_timestamp == null
|
|
33
|
+
? null
|
|
34
|
+
: this.calcDelayAtStop(position.scheduled_timestamp.getTime(), positionToUpdate.last_stop_arrival_time);
|
|
32
35
|
}
|
|
33
36
|
else if (this.didVehicleDepart(position, context)) {
|
|
34
|
-
positionToUpdate.delay_stop_departure =
|
|
37
|
+
positionToUpdate.delay_stop_departure =
|
|
38
|
+
position.scheduled_timestamp == null
|
|
39
|
+
? null
|
|
40
|
+
: this.calcDelayAtStop(position.scheduled_timestamp.getTime(), positionToUpdate.last_stop_departure_time);
|
|
35
41
|
}
|
|
36
42
|
return this.updatePositionStopDelays(positionToUpdate, context);
|
|
37
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommonDelayAtStop.js","sourceRoot":"","sources":["../../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/CommonDelayAtStop.ts"],"names":[],"mappings":";;;;;AAGA,
|
|
1
|
+
{"version":3,"file":"CommonDelayAtStop.js","sourceRoot":"","sources":["../../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/CommonDelayAtStop.ts"],"names":[],"mappings":"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"}
|