@golemio/pid 2.9.4-dev.1039315741 → 2.9.4-dev.1039481307
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/migrations/postgresql/20231017104437-fix-departure-boards-train-trips.js +53 -0
- package/db/migrations/postgresql/sqls/20231017104437-fix-departure-boards-train-trips-down.sql +173 -0
- package/db/migrations/postgresql/sqls/20231017104437-fix-departure-boards-train-trips-up.sql +172 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/PositionsRepository.js +10 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/PositionsRepository.js.map +1 -1
- package/package.json +1 -1
|
@@ -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', '20231017104437-fix-departure-boards-train-trips-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', '20231017104437-fix-departure-boards-train-trips-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/20231017104437-fix-departure-boards-train-trips-down.sql
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
create or replace function get_departures (
|
|
2
|
+
stopsIds varchar,
|
|
3
|
+
mode int,
|
|
4
|
+
dateDepartureBetweenStart timestamptz,
|
|
5
|
+
dateDepartureBetweenEnd timestamptz,
|
|
6
|
+
isNegativeMinutesBefore int,
|
|
7
|
+
dateCanceledDepartureBetweenStart timestamptz,
|
|
8
|
+
dateCanceledDepartureBetweenEnd timestamptz,
|
|
9
|
+
airconditioninfoenabled int
|
|
10
|
+
)
|
|
11
|
+
returns table (
|
|
12
|
+
departure_datetime_real timestamptz,
|
|
13
|
+
arrival_datetime_real timestamptz,
|
|
14
|
+
stop_sequence int2,
|
|
15
|
+
stop_headsign varchar(70),
|
|
16
|
+
arrival_datetime timestamptz,
|
|
17
|
+
departure_datetime timestamptz,
|
|
18
|
+
stop_id varchar(25),
|
|
19
|
+
platform_code varchar(10),
|
|
20
|
+
wheelchair_boarding int2,
|
|
21
|
+
min_stop_sequence int2,
|
|
22
|
+
max_stop_sequence int2,
|
|
23
|
+
trip_id varchar(50),
|
|
24
|
+
trip_headsign varchar(100),
|
|
25
|
+
trip_short_name varchar(30),
|
|
26
|
+
wheelchair_accessible int2,
|
|
27
|
+
route_short_name varchar(50),
|
|
28
|
+
route_type int2,
|
|
29
|
+
route_id varchar(20),
|
|
30
|
+
is_night bpchar(1),
|
|
31
|
+
is_regional bpchar(1),
|
|
32
|
+
is_substitute_transport bpchar(1),
|
|
33
|
+
next_stop_id varchar(30),
|
|
34
|
+
delay_seconds int4,
|
|
35
|
+
real_wheelchair_accessible bool,
|
|
36
|
+
is_canceled bool,
|
|
37
|
+
"trip.gtfs_trip_short_name" varchar(255),
|
|
38
|
+
"trip.gtfs_date" date,
|
|
39
|
+
"trip.internal_route_name" varchar(50),
|
|
40
|
+
"trip.internal_run_number" int4,
|
|
41
|
+
"trip.last_position.last_stop_id" varchar(255),
|
|
42
|
+
"trip.last_position.last_stop_sequence" int4,
|
|
43
|
+
"trip.last_position.last_stop_name" varchar(255),
|
|
44
|
+
"trip.last_position.this_stop_sequence" int4,
|
|
45
|
+
"trip.vehicle_descriptor.is_air_conditioned" bool,
|
|
46
|
+
delay_minutes int4,
|
|
47
|
+
is_delay_available bool
|
|
48
|
+
)
|
|
49
|
+
language SQL
|
|
50
|
+
set search_path from current
|
|
51
|
+
as $$
|
|
52
|
+
select
|
|
53
|
+
departure_boards_detailed."computed.departure_datetime_real",
|
|
54
|
+
departure_boards_detailed."computed.arrival_datetime_real",
|
|
55
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence",
|
|
56
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_headsign",
|
|
57
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.arrival_datetime",
|
|
58
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.departure_datetime",
|
|
59
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_id",
|
|
60
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.platform_code",
|
|
61
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.wheelchair_boarding",
|
|
62
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.min_stop_sequence",
|
|
63
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.max_stop_sequence",
|
|
64
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.trip_id",
|
|
65
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.trip_headsign",
|
|
66
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.trip_short_name",
|
|
67
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.wheelchair_accessible",
|
|
68
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.route_short_name",
|
|
69
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.route_type",
|
|
70
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.route_id",
|
|
71
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.is_night",
|
|
72
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.is_regional",
|
|
73
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.is_substitute_transport",
|
|
74
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.next_stop_id",
|
|
75
|
+
departure_boards_detailed."delay_seconds",
|
|
76
|
+
departure_boards_detailed."real_wheelchair_accessible",
|
|
77
|
+
departure_boards_detailed."is_canceled",
|
|
78
|
+
departure_boards_detailed."trip.gtfs_trip_short_name",
|
|
79
|
+
departure_boards_detailed."trip.gtfs_date",
|
|
80
|
+
departure_boards_detailed."trip.internal_route_name",
|
|
81
|
+
departure_boards_detailed."trip.internal_run_number",
|
|
82
|
+
departure_boards_detailed."trip.last_position.last_stop_id",
|
|
83
|
+
departure_boards_detailed."trip.last_position.last_stop_sequence",
|
|
84
|
+
departure_boards_detailed."trip.last_position.last_stop_name",
|
|
85
|
+
departure_boards_detailed."trip.last_position.this_stop_sequence",
|
|
86
|
+
case when airconditioninfoenabled = 1 then departure_boards_detailed."trip.vehicle_descriptor.is_air_conditioned" else NULL end,
|
|
87
|
+
TRUNC(departure_boards_detailed."trip.last_position.delay"::DECIMAL / 60, 0)::int as "delay_minutes",
|
|
88
|
+
case when departure_boards_detailed."trip.last_position.delay" is null then false else true end as "is_delay_available"
|
|
89
|
+
from (
|
|
90
|
+
select
|
|
91
|
+
("departure_datetime"
|
|
92
|
+
+ MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end))
|
|
93
|
+
- case when (MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end)) > MAKE_INTERVAL())
|
|
94
|
+
then least (
|
|
95
|
+
MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end)),
|
|
96
|
+
("departure_datetime" - "arrival_datetime")::interval
|
|
97
|
+
)
|
|
98
|
+
else MAKE_INTERVAL()
|
|
99
|
+
end
|
|
100
|
+
) "computed.departure_datetime_real",
|
|
101
|
+
"arrival_datetime" + MAKE_INTERVAL(secs => (
|
|
102
|
+
CASE WHEN "trip.last_position.delay" IS NULL THEN 0 ELSE "trip.last_position.delay" end
|
|
103
|
+
)) "computed.arrival_datetime_real",
|
|
104
|
+
"ropidgtfs_precomputed_departures"."stop_sequence" as "ropidgtfs_precomputed_departures.stop_sequence",
|
|
105
|
+
"ropidgtfs_precomputed_departures"."stop_headsign" as "ropidgtfs_precomputed_departures.stop_headsign",
|
|
106
|
+
"ropidgtfs_precomputed_departures"."pickup_type" as "ropidgtfs_precomputed_departures.pickup_type",
|
|
107
|
+
"ropidgtfs_precomputed_departures"."drop_off_type" as "ropidgtfs_precomputed_departures.drop_off_type",
|
|
108
|
+
"ropidgtfs_precomputed_departures"."arrival_time" as "ropidgtfs_precomputed_departures.arrival_time",
|
|
109
|
+
"ropidgtfs_precomputed_departures"."arrival_datetime" as "ropidgtfs_precomputed_departures.arrival_datetime",
|
|
110
|
+
"ropidgtfs_precomputed_departures"."departure_time" as "ropidgtfs_precomputed_departures.departure_time",
|
|
111
|
+
"ropidgtfs_precomputed_departures"."departure_datetime" as "ropidgtfs_precomputed_departures.departure_datetime",
|
|
112
|
+
"ropidgtfs_precomputed_departures"."stop_id" as "ropidgtfs_precomputed_departures.stop_id",
|
|
113
|
+
"ropidgtfs_precomputed_departures"."stop_name" as "ropidgtfs_precomputed_departures.stop_name",
|
|
114
|
+
"ropidgtfs_precomputed_departures"."platform_code" as "ropidgtfs_precomputed_departures.platform_code",
|
|
115
|
+
"ropidgtfs_precomputed_departures"."wheelchair_boarding" as "ropidgtfs_precomputed_departures.wheelchair_boarding",
|
|
116
|
+
"ropidgtfs_precomputed_departures"."min_stop_sequence" as "ropidgtfs_precomputed_departures.min_stop_sequence",
|
|
117
|
+
"ropidgtfs_precomputed_departures"."max_stop_sequence" as "ropidgtfs_precomputed_departures.max_stop_sequence",
|
|
118
|
+
"ropidgtfs_precomputed_departures"."trip_id" as "ropidgtfs_precomputed_departures.trip_id",
|
|
119
|
+
"ropidgtfs_precomputed_departures"."trip_headsign" as "ropidgtfs_precomputed_departures.trip_headsign",
|
|
120
|
+
"ropidgtfs_precomputed_departures"."trip_short_name" as "ropidgtfs_precomputed_departures.trip_short_name",
|
|
121
|
+
"ropidgtfs_precomputed_departures"."wheelchair_accessible" as "ropidgtfs_precomputed_departures.wheelchair_accessible",
|
|
122
|
+
"ropidgtfs_precomputed_departures"."service_id" as "ropidgtfs_precomputed_departures.service_id",
|
|
123
|
+
"ropidgtfs_precomputed_departures"."date" as "ropidgtfs_precomputed_departures.date",
|
|
124
|
+
"ropidgtfs_precomputed_departures"."route_short_name" as "ropidgtfs_precomputed_departures.route_short_name",
|
|
125
|
+
"ropidgtfs_precomputed_departures"."route_type" as "ropidgtfs_precomputed_departures.route_type",
|
|
126
|
+
"ropidgtfs_precomputed_departures"."route_id" as "ropidgtfs_precomputed_departures.route_id",
|
|
127
|
+
"ropidgtfs_precomputed_departures"."is_night" as "ropidgtfs_precomputed_departures.is_night",
|
|
128
|
+
"ropidgtfs_precomputed_departures"."is_regional" as "ropidgtfs_precomputed_departures.is_regional",
|
|
129
|
+
"ropidgtfs_precomputed_departures"."is_substitute_transport" as "ropidgtfs_precomputed_departures.is_substitute_transport",
|
|
130
|
+
"ropidgtfs_precomputed_departures"."next_stop_sequence" as "ropidgtfs_precomputed_departures.next_stop_sequence",
|
|
131
|
+
"ropidgtfs_precomputed_departures"."next_stop_id" as "ropidgtfs_precomputed_departures.next_stop_id",
|
|
132
|
+
"ropidgtfs_precomputed_departures"."last_stop_sequence" as "ropidgtfs_precomputed_departures.last_stop_sequence",
|
|
133
|
+
"ropidgtfs_precomputed_departures"."last_stop_id" as "ropidgtfs_precomputed_departures.last_stop_id",
|
|
134
|
+
x.*
|
|
135
|
+
from
|
|
136
|
+
"ropidgtfs_precomputed_departures" as "ropidgtfs_precomputed_departures"
|
|
137
|
+
left outer join v_vehiclepositions_trip_position_vehicle_info as x on
|
|
138
|
+
"ropidgtfs_precomputed_departures"."trip_id" = x."trip.gtfs_trip_id"
|
|
139
|
+
and (x."trip.gtfs_date" = ropidgtfs_precomputed_departures.date)
|
|
140
|
+
) departure_boards_detailed
|
|
141
|
+
where
|
|
142
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_id" = ANY(STRING_TO_ARRAY(stopsIds,','))
|
|
143
|
+
and (
|
|
144
|
+
(
|
|
145
|
+
(
|
|
146
|
+
(mode = 1 and departure_boards_detailed."computed.arrival_datetime_real" between dateDepartureBetweenStart and dateDepartureBetweenEnd)
|
|
147
|
+
or (mode != 1 and departure_boards_detailed."computed.departure_datetime_real" between dateDepartureBetweenStart and dateDepartureBetweenEnd)
|
|
148
|
+
)
|
|
149
|
+
and
|
|
150
|
+
(
|
|
151
|
+
0 = isNegativeMinutesBefore
|
|
152
|
+
or ( -- pro záporné minutes before
|
|
153
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence" >= departure_boards_detailed."trip.last_position.last_stop_sequence"
|
|
154
|
+
or departure_boards_detailed."trip.last_position.last_stop_sequence" IS null
|
|
155
|
+
)
|
|
156
|
+
)
|
|
157
|
+
|
|
158
|
+
)
|
|
159
|
+
or (
|
|
160
|
+
departure_boards_detailed."trip.is_canceled" = true
|
|
161
|
+
and
|
|
162
|
+
(
|
|
163
|
+
(mode = 1 and departure_boards_detailed."computed.arrival_datetime_real" between dateCanceledDepartureBetweenStart and dateCanceledDepartureBetweenEnd)
|
|
164
|
+
or (mode != 1 and departure_boards_detailed."computed.departure_datetime_real" between dateCanceledDepartureBetweenStart and dateCanceledDepartureBetweenEnd)
|
|
165
|
+
)
|
|
166
|
+
)
|
|
167
|
+
) and
|
|
168
|
+
(
|
|
169
|
+
(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
|
|
170
|
+
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
|
|
171
|
+
or (mode=3 and (departure_boards_detailed."ropidgtfs_precomputed_departures.pickup_type" != '1')) -- mode mixed
|
|
172
|
+
);
|
|
173
|
+
$$;
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
create or replace function get_departures (
|
|
2
|
+
stopsIds varchar,
|
|
3
|
+
mode int,
|
|
4
|
+
dateDepartureBetweenStart timestamptz,
|
|
5
|
+
dateDepartureBetweenEnd timestamptz,
|
|
6
|
+
isNegativeMinutesBefore int,
|
|
7
|
+
dateCanceledDepartureBetweenStart timestamptz,
|
|
8
|
+
dateCanceledDepartureBetweenEnd timestamptz,
|
|
9
|
+
airconditioninfoenabled int
|
|
10
|
+
)
|
|
11
|
+
returns table (
|
|
12
|
+
departure_datetime_real timestamptz,
|
|
13
|
+
arrival_datetime_real timestamptz,
|
|
14
|
+
stop_sequence int2,
|
|
15
|
+
stop_headsign varchar(70),
|
|
16
|
+
arrival_datetime timestamptz,
|
|
17
|
+
departure_datetime timestamptz,
|
|
18
|
+
stop_id varchar(25),
|
|
19
|
+
platform_code varchar(10),
|
|
20
|
+
wheelchair_boarding int2,
|
|
21
|
+
min_stop_sequence int2,
|
|
22
|
+
max_stop_sequence int2,
|
|
23
|
+
trip_id varchar(50),
|
|
24
|
+
trip_headsign varchar(100),
|
|
25
|
+
trip_short_name varchar(30),
|
|
26
|
+
wheelchair_accessible int2,
|
|
27
|
+
route_short_name varchar(50),
|
|
28
|
+
route_type int2,
|
|
29
|
+
route_id varchar(20),
|
|
30
|
+
is_night bpchar(1),
|
|
31
|
+
is_regional bpchar(1),
|
|
32
|
+
is_substitute_transport bpchar(1),
|
|
33
|
+
next_stop_id varchar(30),
|
|
34
|
+
delay_seconds int4,
|
|
35
|
+
real_wheelchair_accessible bool,
|
|
36
|
+
is_canceled bool,
|
|
37
|
+
"trip.gtfs_trip_short_name" varchar(255),
|
|
38
|
+
"trip.gtfs_date" date,
|
|
39
|
+
"trip.internal_route_name" varchar(50),
|
|
40
|
+
"trip.internal_run_number" int4,
|
|
41
|
+
"trip.last_position.last_stop_id" varchar(255),
|
|
42
|
+
"trip.last_position.last_stop_sequence" int4,
|
|
43
|
+
"trip.last_position.last_stop_name" varchar(255),
|
|
44
|
+
"trip.last_position.this_stop_sequence" int4,
|
|
45
|
+
"trip.vehicle_descriptor.is_air_conditioned" bool,
|
|
46
|
+
delay_minutes int4,
|
|
47
|
+
is_delay_available bool
|
|
48
|
+
)
|
|
49
|
+
language SQL
|
|
50
|
+
set search_path from current
|
|
51
|
+
as $$
|
|
52
|
+
select
|
|
53
|
+
departure_boards_detailed."computed.departure_datetime_real",
|
|
54
|
+
departure_boards_detailed."computed.arrival_datetime_real",
|
|
55
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence",
|
|
56
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_headsign",
|
|
57
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.arrival_datetime",
|
|
58
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.departure_datetime",
|
|
59
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_id",
|
|
60
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.platform_code",
|
|
61
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.wheelchair_boarding",
|
|
62
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.min_stop_sequence",
|
|
63
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.max_stop_sequence",
|
|
64
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.trip_id",
|
|
65
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.trip_headsign",
|
|
66
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.trip_short_name",
|
|
67
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.wheelchair_accessible",
|
|
68
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.route_short_name",
|
|
69
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.route_type",
|
|
70
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.route_id",
|
|
71
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.is_night",
|
|
72
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.is_regional",
|
|
73
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.is_substitute_transport",
|
|
74
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.next_stop_id",
|
|
75
|
+
departure_boards_detailed."delay_seconds",
|
|
76
|
+
departure_boards_detailed."real_wheelchair_accessible",
|
|
77
|
+
departure_boards_detailed."is_canceled",
|
|
78
|
+
departure_boards_detailed."trip.gtfs_trip_short_name",
|
|
79
|
+
departure_boards_detailed."trip.gtfs_date",
|
|
80
|
+
departure_boards_detailed."trip.internal_route_name",
|
|
81
|
+
departure_boards_detailed."trip.internal_run_number",
|
|
82
|
+
departure_boards_detailed."trip.last_position.last_stop_id",
|
|
83
|
+
departure_boards_detailed."trip.last_position.last_stop_sequence",
|
|
84
|
+
departure_boards_detailed."trip.last_position.last_stop_name",
|
|
85
|
+
departure_boards_detailed."trip.last_position.this_stop_sequence",
|
|
86
|
+
case when airconditioninfoenabled = 1 then departure_boards_detailed."trip.vehicle_descriptor.is_air_conditioned" else NULL end,
|
|
87
|
+
TRUNC(departure_boards_detailed."trip.last_position.delay"::DECIMAL / 60, 0)::int as "delay_minutes",
|
|
88
|
+
case when departure_boards_detailed."trip.last_position.delay" is null then false else true end as "is_delay_available"
|
|
89
|
+
from (
|
|
90
|
+
select
|
|
91
|
+
("departure_datetime"
|
|
92
|
+
+ MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end))
|
|
93
|
+
- case when (MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end)) > MAKE_INTERVAL())
|
|
94
|
+
then least (
|
|
95
|
+
MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end)),
|
|
96
|
+
("departure_datetime" - "arrival_datetime")::interval
|
|
97
|
+
)
|
|
98
|
+
else MAKE_INTERVAL()
|
|
99
|
+
end
|
|
100
|
+
) "computed.departure_datetime_real",
|
|
101
|
+
"arrival_datetime" + MAKE_INTERVAL(secs => (
|
|
102
|
+
CASE WHEN "trip.last_position.delay" IS NULL THEN 0 ELSE "trip.last_position.delay" end
|
|
103
|
+
)) "computed.arrival_datetime_real",
|
|
104
|
+
"ropidgtfs_precomputed_departures"."stop_sequence" as "ropidgtfs_precomputed_departures.stop_sequence",
|
|
105
|
+
"ropidgtfs_precomputed_departures"."stop_headsign" as "ropidgtfs_precomputed_departures.stop_headsign",
|
|
106
|
+
"ropidgtfs_precomputed_departures"."pickup_type" as "ropidgtfs_precomputed_departures.pickup_type",
|
|
107
|
+
"ropidgtfs_precomputed_departures"."drop_off_type" as "ropidgtfs_precomputed_departures.drop_off_type",
|
|
108
|
+
"ropidgtfs_precomputed_departures"."arrival_time" as "ropidgtfs_precomputed_departures.arrival_time",
|
|
109
|
+
"ropidgtfs_precomputed_departures"."arrival_datetime" as "ropidgtfs_precomputed_departures.arrival_datetime",
|
|
110
|
+
"ropidgtfs_precomputed_departures"."departure_time" as "ropidgtfs_precomputed_departures.departure_time",
|
|
111
|
+
"ropidgtfs_precomputed_departures"."departure_datetime" as "ropidgtfs_precomputed_departures.departure_datetime",
|
|
112
|
+
"ropidgtfs_precomputed_departures"."stop_id" as "ropidgtfs_precomputed_departures.stop_id",
|
|
113
|
+
"ropidgtfs_precomputed_departures"."stop_name" as "ropidgtfs_precomputed_departures.stop_name",
|
|
114
|
+
"ropidgtfs_precomputed_departures"."platform_code" as "ropidgtfs_precomputed_departures.platform_code",
|
|
115
|
+
"ropidgtfs_precomputed_departures"."wheelchair_boarding" as "ropidgtfs_precomputed_departures.wheelchair_boarding",
|
|
116
|
+
"ropidgtfs_precomputed_departures"."min_stop_sequence" as "ropidgtfs_precomputed_departures.min_stop_sequence",
|
|
117
|
+
"ropidgtfs_precomputed_departures"."max_stop_sequence" as "ropidgtfs_precomputed_departures.max_stop_sequence",
|
|
118
|
+
"ropidgtfs_precomputed_departures"."trip_id" as "ropidgtfs_precomputed_departures.trip_id",
|
|
119
|
+
"ropidgtfs_precomputed_departures"."trip_headsign" as "ropidgtfs_precomputed_departures.trip_headsign",
|
|
120
|
+
"ropidgtfs_precomputed_departures"."trip_short_name" as "ropidgtfs_precomputed_departures.trip_short_name",
|
|
121
|
+
"ropidgtfs_precomputed_departures"."wheelchair_accessible" as "ropidgtfs_precomputed_departures.wheelchair_accessible",
|
|
122
|
+
"ropidgtfs_precomputed_departures"."service_id" as "ropidgtfs_precomputed_departures.service_id",
|
|
123
|
+
"ropidgtfs_precomputed_departures"."date" as "ropidgtfs_precomputed_departures.date",
|
|
124
|
+
"ropidgtfs_precomputed_departures"."route_short_name" as "ropidgtfs_precomputed_departures.route_short_name",
|
|
125
|
+
"ropidgtfs_precomputed_departures"."route_type" as "ropidgtfs_precomputed_departures.route_type",
|
|
126
|
+
"ropidgtfs_precomputed_departures"."route_id" as "ropidgtfs_precomputed_departures.route_id",
|
|
127
|
+
"ropidgtfs_precomputed_departures"."is_night" as "ropidgtfs_precomputed_departures.is_night",
|
|
128
|
+
"ropidgtfs_precomputed_departures"."is_regional" as "ropidgtfs_precomputed_departures.is_regional",
|
|
129
|
+
"ropidgtfs_precomputed_departures"."is_substitute_transport" as "ropidgtfs_precomputed_departures.is_substitute_transport",
|
|
130
|
+
"ropidgtfs_precomputed_departures"."next_stop_sequence" as "ropidgtfs_precomputed_departures.next_stop_sequence",
|
|
131
|
+
"ropidgtfs_precomputed_departures"."next_stop_id" as "ropidgtfs_precomputed_departures.next_stop_id",
|
|
132
|
+
"ropidgtfs_precomputed_departures"."last_stop_sequence" as "ropidgtfs_precomputed_departures.last_stop_sequence",
|
|
133
|
+
"ropidgtfs_precomputed_departures"."last_stop_id" as "ropidgtfs_precomputed_departures.last_stop_id",
|
|
134
|
+
x.*
|
|
135
|
+
from
|
|
136
|
+
"ropidgtfs_precomputed_departures" as "ropidgtfs_precomputed_departures"
|
|
137
|
+
left outer join v_vehiclepositions_trip_position_vehicle_info as x on
|
|
138
|
+
"ropidgtfs_precomputed_departures"."trip_id" = x."trip.gtfs_trip_id"
|
|
139
|
+
) departure_boards_detailed
|
|
140
|
+
where
|
|
141
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_id" = ANY(STRING_TO_ARRAY(stopsIds,','))
|
|
142
|
+
and (
|
|
143
|
+
(
|
|
144
|
+
(
|
|
145
|
+
(mode = 1 and departure_boards_detailed."computed.arrival_datetime_real" between dateDepartureBetweenStart and dateDepartureBetweenEnd)
|
|
146
|
+
or (mode != 1 and departure_boards_detailed."computed.departure_datetime_real" between dateDepartureBetweenStart and dateDepartureBetweenEnd)
|
|
147
|
+
)
|
|
148
|
+
and
|
|
149
|
+
(
|
|
150
|
+
0 = isNegativeMinutesBefore
|
|
151
|
+
or ( -- pro záporné minutes before
|
|
152
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence" >= departure_boards_detailed."trip.last_position.last_stop_sequence"
|
|
153
|
+
or departure_boards_detailed."trip.last_position.last_stop_sequence" IS null
|
|
154
|
+
)
|
|
155
|
+
)
|
|
156
|
+
|
|
157
|
+
)
|
|
158
|
+
or (
|
|
159
|
+
departure_boards_detailed."trip.is_canceled" = true
|
|
160
|
+
and
|
|
161
|
+
(
|
|
162
|
+
(mode = 1 and departure_boards_detailed."computed.arrival_datetime_real" between dateCanceledDepartureBetweenStart and dateCanceledDepartureBetweenEnd)
|
|
163
|
+
or (mode != 1 and departure_boards_detailed."computed.departure_datetime_real" between dateCanceledDepartureBetweenStart and dateCanceledDepartureBetweenEnd)
|
|
164
|
+
)
|
|
165
|
+
)
|
|
166
|
+
) and
|
|
167
|
+
(
|
|
168
|
+
(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
|
|
169
|
+
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
|
|
170
|
+
or (mode=3 and (departure_boards_detailed."ropidgtfs_precomputed_departures.pickup_type" != '1')) -- mode mixed
|
|
171
|
+
);
|
|
172
|
+
$$;
|
|
@@ -124,6 +124,11 @@ class PositionsRepository extends models_2.PostgresModel {
|
|
|
124
124
|
"last_stop_id",
|
|
125
125
|
"last_stop_arrival_time",
|
|
126
126
|
"last_stop_departure_time",
|
|
127
|
+
"next_stop_arrival_time",
|
|
128
|
+
"next_stop_departure_time",
|
|
129
|
+
"next_stop_id",
|
|
130
|
+
"next_stop_sequence",
|
|
131
|
+
"next_stop_name",
|
|
127
132
|
],
|
|
128
133
|
model: this.sequelizeModel,
|
|
129
134
|
where: {
|
|
@@ -184,6 +189,11 @@ class PositionsRepository extends models_2.PostgresModel {
|
|
|
184
189
|
last_stop_id: c["vehiclepositions_positions.last_stop_id"],
|
|
185
190
|
last_stop_arrival_time: c["vehiclepositions_positions.last_stop_arrival_time"],
|
|
186
191
|
last_stop_departure_time: c["vehiclepositions_positions.last_stop_departure_time"],
|
|
192
|
+
next_stop_arrival_time: c["vehiclepositions_positions.next_stop_arrival_time"],
|
|
193
|
+
next_stop_departure_time: c["vehiclepositions_positions.next_stop_departure_time"],
|
|
194
|
+
next_stop_id: c["vehiclepositions_positions.next_stop_id"],
|
|
195
|
+
next_stop_sequence: c["vehiclepositions_positions.next_stop_sequence"],
|
|
196
|
+
next_stop_name: c["vehiclepositions_positions.next_stop_name"],
|
|
187
197
|
});
|
|
188
198
|
return p;
|
|
189
199
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PositionsRepository.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/PositionsRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mEAAuC;AACvC,2FAA0D;AAC1D,uFAA6D;AAC7D,wGAAwE;AAIxE,iFAAqF;AACrF,yEAAqF;AACrF,6EAAwE;AACxE,mFAAkF;AAClF,iFAAoE;AACpE,gDAAgE;AAGhE,gFAAwD;AAGxD,MAAa,mBAAoB,SAAQ,sBAAa;IAGlD;QACI,KAAK,CACD,uBAAuB,EACvB;YACI,yBAAyB,EAAE,yBAAW,CAAC,cAAc;YACrD,WAAW,EAAE,oCAAgB,CAAC,SAAS,CAAC,WAAW;YACnD,QAAQ,EAAE,iBAAS;YACnB,UAAU,EAAE,gBAAgB;YAC5B,2BAA2B,EAAE;gBACzB,OAAO,EAAE;oBACL;wBACI,MAAM,EAAE,CAAC,UAAU,CAAC;wBACpB,IAAI,EAAE,qCAAqC;qBAC9C;oBACD;wBACI,MAAM,EAAE,CAAC,aAAa,CAAC;wBACvB,IAAI,EAAE,wCAAwC;qBACjD;iBACJ;aACJ;SACJ,EACD,IAAI,uCAAmB,CAAC,oCAAgB,CAAC,SAAS,CAAC,IAAI,GAAG,gBAAgB,EAAE,yBAAW,CAAC,UAAU,CAAC,CACtG,CAAC;QAON;;;;;;;;;;;;;;WAcG;QACI,+BAA0B,GAAG,CAAO,OAAiB,EAA6B,EAAE;YACvF,oEAAoE;YACpE,yEAAyE;YAEzE,wCAAwC;YACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtB,OAAO,EAAsB,CAAC;aACjC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC1C,UAAU,EAAE;oBACR,8EAA8E;oBAC9E,IAAI;oBACJ,cAAc;oBACd,iBAAiB;oBACjB,iBAAiB;oBACjB,eAAe;oBACf,uBAAuB;oBACvB,mBAAmB;oBACnB,uBAAuB;iBAC1B;gBACD,OAAO,EAAE;oBACL;wBACI,UAAU,EAAE;4BACR,SAAS;4BACT,KAAK;4BACL,KAAK;4BACL,aAAa;4BACb,kBAAkB;4BAClB,qBAAqB;4BACrB,OAAO;4BACP,YAAY;4BACZ,IAAI;4BACJ,qBAAqB;4BACrB,aAAa;4BACb,gBAAgB;4BAChB,eAAe;4BACf,WAAW;4BACX,oBAAoB;4BACpB,cAAc;4BACd,oBAAoB;4BACpB,cAAc;4BACd,wBAAwB;4BACxB,0BAA0B;
|
|
1
|
+
{"version":3,"file":"PositionsRepository.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/PositionsRepository.ts"],"names":[],"mappings":"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"}
|