@golemio/pid 5.2.2-dev.2219691126 → 5.2.2-dev.2224364329
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/dist/integration-engine/vehicle-positions/workers/vehicle-positions/interfaces/TransformationInterfaces.d.ts +4 -2
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.d.ts +2 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.js +37 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.d.ts +16 -13
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.js +198 -106
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.js.map +1 -1
- package/package.json +1 -1
|
@@ -43,9 +43,11 @@ export interface ITransformationResult {
|
|
|
43
43
|
positions: IPositionTransformationResult[];
|
|
44
44
|
stops: ICisStopDto[];
|
|
45
45
|
trips: ITripTransformationResult[];
|
|
46
|
+
tripsWithCisStops: Map<string, number>;
|
|
46
47
|
}
|
|
47
48
|
export interface ITransformationElement {
|
|
48
|
-
position: IPositionTransformationResult;
|
|
49
|
+
position: IPositionTransformationResult | null;
|
|
49
50
|
stops: Map<string, ICisStopDto>;
|
|
50
|
-
trip: ITripTransformationResult;
|
|
51
|
+
trip: ITripTransformationResult | null;
|
|
52
|
+
tripToCis: number | null;
|
|
51
53
|
}
|
|
@@ -8,6 +8,7 @@ export declare class SaveDataToDBTask extends AbstractTask<IMpvMessageInput> {
|
|
|
8
8
|
readonly schema: typeof SaveDataToDBValidationSchema;
|
|
9
9
|
private readonly tripsRepository;
|
|
10
10
|
private readonly cisStopRepository;
|
|
11
|
+
private readonly ropidGTFSCisStopsModel;
|
|
11
12
|
private readonly messageTransformation;
|
|
12
13
|
private readonly logger;
|
|
13
14
|
constructor(queuePrefix: string);
|
|
@@ -15,5 +16,6 @@ export declare class SaveDataToDBTask extends AbstractTask<IMpvMessageInput> {
|
|
|
15
16
|
private saveStops;
|
|
16
17
|
private sendDataToUpdateGtfsTripId;
|
|
17
18
|
private sendDataToUpdateDelay;
|
|
19
|
+
private preparePositionsFromCisStops;
|
|
18
20
|
private getTripDataAndSendToUpdateDelay;
|
|
19
21
|
}
|
|
@@ -14,6 +14,8 @@ const TripsRepository_1 = require("../data-access/TripsRepository");
|
|
|
14
14
|
const TripsMapper_1 = __importDefault(require("../data-access/helpers/TripsMapper"));
|
|
15
15
|
const SaveDataToDBSchema_1 = require("../schema/SaveDataToDBSchema");
|
|
16
16
|
const MpvMessageTransformation_1 = require("../transformations/MpvMessageTransformation");
|
|
17
|
+
const RopidGTFSCisStopsModel_1 = require("../../../../ropid-gtfs/RopidGTFSCisStopsModel");
|
|
18
|
+
const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
|
|
17
19
|
class SaveDataToDBTask extends workers_1.AbstractTask {
|
|
18
20
|
constructor(queuePrefix) {
|
|
19
21
|
super(queuePrefix);
|
|
@@ -23,11 +25,14 @@ class SaveDataToDBTask extends workers_1.AbstractTask {
|
|
|
23
25
|
this.tripsRepository = new TripsRepository_1.TripsRepository();
|
|
24
26
|
this.cisStopRepository = new CisStopRepository_1.CisStopRepository();
|
|
25
27
|
this.messageTransformation = new MpvMessageTransformation_1.MpvMessageTransformation();
|
|
28
|
+
this.ropidGTFSCisStopsModel = new RopidGTFSCisStopsModel_1.RopidGTFSCisStopsModel();
|
|
26
29
|
this.logger = ioc_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.Logger);
|
|
27
30
|
}
|
|
28
31
|
async execute(data, messageProperties) {
|
|
29
32
|
const taskStartTimestamp = new Date().getTime();
|
|
30
|
-
const
|
|
33
|
+
const now = MpvMessageTransformation_1.MpvMessageTransformation.currentTimeInPrague();
|
|
34
|
+
const nowFormatted = MpvMessageTransformation_1.MpvMessageTransformation.currentTimeInPragueFormatted(now);
|
|
35
|
+
const { trips, positions, stops, tripsWithCisStops } = await this.messageTransformation.transform(data.m.spoj);
|
|
31
36
|
const tripEntities = await this.tripsRepository.bulkSave(trips,
|
|
32
37
|
// Ignore incoming start_timestamp for existing trips to avoid overwriting existing computed timestamp
|
|
33
38
|
// TODO this is a workaround, dedicated column (gtfs_start_timestamp) will be added
|
|
@@ -35,6 +40,8 @@ class SaveDataToDBTask extends workers_1.AbstractTask {
|
|
|
35
40
|
.filter((key) => key !== "start_timestamp")
|
|
36
41
|
.concat("updated_at"), true);
|
|
37
42
|
const { inserted, updated } = TripsMapper_1.default.mapTripEntitiesToUpdateDto(tripEntities, taskStartTimestamp);
|
|
43
|
+
const positionsToAppend = await this.preparePositionsFromCisStops(tripsWithCisStops, nowFormatted, now);
|
|
44
|
+
positions.push(...positionsToAppend);
|
|
38
45
|
// At this point we want to send ACK to rabbit and let the rest of the processing to be done in the background
|
|
39
46
|
await this.sendDataToUpdateGtfsTripId(inserted, positions, messageProperties?.timestamp);
|
|
40
47
|
await this.sendDataToUpdateDelay(updated, positions, messageProperties?.timestamp);
|
|
@@ -118,6 +125,35 @@ class SaveDataToDBTask extends workers_1.AbstractTask {
|
|
|
118
125
|
}
|
|
119
126
|
}
|
|
120
127
|
}
|
|
128
|
+
async preparePositionsFromCisStops(tripsWithCisStops, tsText, ts) {
|
|
129
|
+
if (!tripsWithCisStops?.size) {
|
|
130
|
+
return [];
|
|
131
|
+
}
|
|
132
|
+
const newPositions = [];
|
|
133
|
+
const cisList = new Set();
|
|
134
|
+
const cisToTrips = new Map();
|
|
135
|
+
for (const [tripId, cisStop] of tripsWithCisStops.entries()) {
|
|
136
|
+
cisList.add(cisStop);
|
|
137
|
+
cisToTrips.set(cisStop, (cisToTrips.get(cisStop) ?? []).concat([tripId]));
|
|
138
|
+
}
|
|
139
|
+
const rawCisStops = await this.ropidGTFSCisStopsModel.find({
|
|
140
|
+
where: {
|
|
141
|
+
cis: { [sequelize_1.Op.in]: Array.from(cisList) },
|
|
142
|
+
id: { [sequelize_1.Op.like]: `%/301` }, // We want only asw-code like XYZ/301
|
|
143
|
+
},
|
|
144
|
+
attributes: ["cis", "lat", "lon"],
|
|
145
|
+
raw: true,
|
|
146
|
+
});
|
|
147
|
+
for (const cisStop of rawCisStops) {
|
|
148
|
+
if (cisList.has(cisStop.cis) && cisToTrips.has(cisStop.cis)) {
|
|
149
|
+
cisList.delete(cisStop.cis); // prevents to create positions for the same cis stop returning multiple rows
|
|
150
|
+
for (const tripId of cisToTrips.get(cisStop.cis)) {
|
|
151
|
+
newPositions.push(this.messageTransformation.positionWithCisStopCoords(tripId, cisStop.lat, cisStop.lon, tsText, ts));
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return newPositions;
|
|
156
|
+
}
|
|
121
157
|
async getTripDataAndSendToUpdateDelay(chunk, positions, firstMessageCreatedAt) {
|
|
122
158
|
try {
|
|
123
159
|
const updatedTrips = await this.tripsRepository.findAllAssocTripIds(chunk);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaveDataToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.ts"],"names":[],"mappings":";;;;;;AAIA,wEAAqE;AACrE,mEAAuF;AACvF,2FAAqF;AACrF,2EAA6E;AAC7E,6EAA8F;AAE9F,wEAAqE;AACrE,oEAAiE;AACjE,qFAA6D;AAG7D,qEAA4E;AAC5E,0FAAuF;
|
|
1
|
+
{"version":3,"file":"SaveDataToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { IMpvPositionContent } from "../../../../../schema-definitions/vehicle-positions/interfaces/IMpvMessageInterfaces";
|
|
2
2
|
import { BaseTransformation, ITransformation } from "@golemio/core/dist/integration-engine/transformations";
|
|
3
|
-
import { Moment } from "@golemio/core/dist/shared/moment-timezone";
|
|
4
|
-
import { ITransformationElement, ITransformationResult } from "../interfaces/TransformationInterfaces";
|
|
3
|
+
import moment, { Moment } from "@golemio/core/dist/shared/moment-timezone";
|
|
4
|
+
import { IPositionTransformationResult, ITransformationElement, ITransformationResult } from "../interfaces/TransformationInterfaces";
|
|
5
5
|
export declare class MpvMessageTransformation extends BaseTransformation implements ITransformation {
|
|
6
6
|
private static ORIGIN_TIME_FORMAT;
|
|
7
|
-
|
|
7
|
+
private static readonly CIS_PLATFORM_ELIGIBLE;
|
|
8
8
|
private config;
|
|
9
9
|
private skipAgencyNames;
|
|
10
|
+
name: string;
|
|
10
11
|
constructor();
|
|
11
12
|
/**
|
|
12
13
|
* Overrides BaseTransformation::transform
|
|
13
14
|
*/
|
|
14
15
|
transform: (data: IMpvPositionContent | IMpvPositionContent[]) => Promise<ITransformationResult>;
|
|
15
|
-
protected transformElement: (element: IMpvPositionContent) =>
|
|
16
|
+
protected transformElement: (element: IMpvPositionContent) => ITransformationElement | null;
|
|
16
17
|
/**
|
|
17
18
|
* Deduce UTC timestamp of start of trip and UTC timestamp of current position
|
|
18
19
|
*
|
|
@@ -20,10 +21,13 @@ export declare class MpvMessageTransformation extends BaseTransformation impleme
|
|
|
20
21
|
* @param {string} positionTimestampXML - XML attribute of local timestamp of position (HH:mm:ss)
|
|
21
22
|
* @returns {{ startTimestamp: Moment; positionTimestamp: Moment }}
|
|
22
23
|
*/
|
|
23
|
-
protected deduceTimestamps
|
|
24
|
+
protected deduceTimestamps(firstStopXML: any, positionTimestampXML: string | null): {
|
|
24
25
|
startTimestamp: Moment;
|
|
25
26
|
positionTimestamp: Moment;
|
|
26
|
-
}
|
|
27
|
+
};
|
|
28
|
+
static currentTimeInPrague(): moment.Moment;
|
|
29
|
+
static currentTimeInPragueFormatted(now?: moment.Moment): string;
|
|
30
|
+
private isCisPlatformEligible;
|
|
27
31
|
/**
|
|
28
32
|
* Returns -1 if start hour is 12-23 and now is 0-12, 1 if start hour is 18-23 and now 0-6, else 0
|
|
29
33
|
*
|
|
@@ -33,6 +37,8 @@ export declare class MpvMessageTransformation extends BaseTransformation impleme
|
|
|
33
37
|
*/
|
|
34
38
|
private checkMidnight;
|
|
35
39
|
private isBlacklistedAgency;
|
|
40
|
+
private isTrainBeforeTrackWithPlatforms;
|
|
41
|
+
private determinePrimaryKey;
|
|
36
42
|
/**
|
|
37
43
|
* Fix source negative bearing value due to overflow by adding 256
|
|
38
44
|
*
|
|
@@ -40,11 +46,8 @@ export declare class MpvMessageTransformation extends BaseTransformation impleme
|
|
|
40
46
|
* @returns {number}
|
|
41
47
|
*/
|
|
42
48
|
private fixSourceNegativeBearing;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
* @returns {stringList}
|
|
48
|
-
*/
|
|
49
|
-
private formatASWStopId;
|
|
49
|
+
private extractStopsForTrain;
|
|
50
|
+
positionWithCisStopCoords(id: string, lat: string, lng: string, cpoz: string, positionTimestamp: moment.Moment): IPositionTransformationResult;
|
|
51
|
+
private determinePosition;
|
|
52
|
+
private determineTrip;
|
|
50
53
|
}
|
|
@@ -33,51 +33,71 @@ class MpvMessageTransformation extends transformations_1.BaseTransformation {
|
|
|
33
33
|
positions: [],
|
|
34
34
|
stops: [],
|
|
35
35
|
trips: [],
|
|
36
|
+
tripsWithCisStops: new Map(),
|
|
36
37
|
};
|
|
37
38
|
if (!Array.isArray(data))
|
|
38
39
|
data = [data];
|
|
39
40
|
for (const element of data) {
|
|
40
|
-
const elemRes =
|
|
41
|
-
if (elemRes) {
|
|
41
|
+
const elemRes = this.transformElement(element);
|
|
42
|
+
if (!elemRes) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (elemRes.position) {
|
|
42
46
|
res.positions.push(elemRes.position);
|
|
47
|
+
}
|
|
48
|
+
if (elemRes.trip) {
|
|
43
49
|
trips.set(elemRes.trip.id, elemRes.trip);
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
50
|
+
}
|
|
51
|
+
if (elemRes.tripToCis && elemRes.trip) {
|
|
52
|
+
res.tripsWithCisStops.set(elemRes.trip.id, elemRes.tripToCis);
|
|
53
|
+
}
|
|
54
|
+
for (const [key, value] of elemRes.stops) {
|
|
55
|
+
stops.set(key, value);
|
|
47
56
|
}
|
|
48
57
|
}
|
|
49
58
|
res.trips = Array.from(trips.values());
|
|
50
59
|
res.stops = Array.from(stops.values());
|
|
51
60
|
return res;
|
|
52
61
|
};
|
|
53
|
-
this.transformElement =
|
|
62
|
+
this.transformElement = (element) => {
|
|
54
63
|
const attributes = element.$;
|
|
64
|
+
if (this.isBlacklistedAgency(attributes.dopr)) {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
if (this.isTrainBeforeTrackWithPlatforms(attributes, element.zast)) {
|
|
68
|
+
const { startTimestamp } = this.deduceTimestamps(element.zast[0], null);
|
|
69
|
+
const id = this.determinePrimaryKey(attributes, startTimestamp.utc().format());
|
|
70
|
+
const stops = this.extractStopsForTrain(id, element.zast);
|
|
71
|
+
const firstStop = Array.from(stops.values()).at(0);
|
|
72
|
+
return {
|
|
73
|
+
position: null,
|
|
74
|
+
stops,
|
|
75
|
+
trip: this.determineTrip(attributes, parseInt(attributes.spoj, 10), id, startTimestamp, element.zast[0]),
|
|
76
|
+
tripToCis: firstStop?.cis_stop_group_id ?? null,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
55
79
|
// Trips with null cpoz (origin time) and falsy or "false" zrus (cancellation) attributes are excluded
|
|
56
80
|
let hasInvalidAttributes = !attributes.cpoz && (!attributes.zrus || attributes.zrus === "false");
|
|
57
81
|
// Trips without the CIS trip number are excluded
|
|
58
82
|
hasInvalidAttributes ||= typeof attributes.spoj === "undefined" || attributes.spoj === "";
|
|
59
83
|
// Canceled trips with no lat or lng are accepted because we try to later get the coords from the context if possible
|
|
60
84
|
hasInvalidAttributes ||= attributes.zrus !== "true" && (!attributes.lat || !attributes.lng);
|
|
61
|
-
|
|
85
|
+
const cisTripNumber = parseInt(attributes.spoj, 10);
|
|
86
|
+
// wrong spoj number, no chance to continue
|
|
87
|
+
hasInvalidAttributes ||= isNaN(cisTripNumber);
|
|
88
|
+
if (hasInvalidAttributes) {
|
|
62
89
|
return null;
|
|
63
90
|
}
|
|
64
91
|
attributes.lin = attributes.lin || "none";
|
|
65
92
|
attributes.alias = attributes.alias || "none";
|
|
66
|
-
attributes.cpoz = attributes.cpoz ||
|
|
67
|
-
const cisTripNumber = parseInt(attributes.spoj, 10);
|
|
68
|
-
if (isNaN(cisTripNumber)) {
|
|
69
|
-
return null;
|
|
70
|
-
}
|
|
93
|
+
attributes.cpoz = attributes.cpoz || MpvMessageTransformation.currentTimeInPragueFormatted();
|
|
71
94
|
const stops = element.zast;
|
|
72
|
-
const { startTimestamp, positionTimestamp } =
|
|
95
|
+
const { startTimestamp, positionTimestamp } = this.deduceTimestamps(stops[0], attributes.cpoz);
|
|
73
96
|
// filter out position with future time (set to be far than 5 minutes from now)
|
|
74
97
|
if ((0, moment_timezone_1.default)(positionTimestamp).isAfter((0, moment_timezone_1.default)().add(5, "minutes"))) {
|
|
75
98
|
return null;
|
|
76
99
|
}
|
|
77
|
-
|
|
78
|
-
// primary key for t != 0 -> start_timestamp, cis_id, cis_short_name, cis_number
|
|
79
|
-
const primaryKeySuffix = attributes.t === "0" ? `_${attributes.spoj}` : `_${attributes.lin}` + `_${attributes.alias}` + `_${attributes.spoj}`;
|
|
80
|
-
const primaryKey = startTimestamp.utc().format() + primaryKeySuffix;
|
|
100
|
+
const primaryKey = this.determinePrimaryKey(attributes, startTimestamp.utc().format());
|
|
81
101
|
/*
|
|
82
102
|
MPV route types:
|
|
83
103
|
|
|
@@ -100,50 +120,11 @@ class MpvMessageTransformation extends transformations_1.BaseTransformation {
|
|
|
100
120
|
Ostatní: 17
|
|
101
121
|
Trolejbus: 18
|
|
102
122
|
*/
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
const aswLastStopId = null;
|
|
106
|
-
const cisLastStopId = attributes.zast;
|
|
107
|
-
let res = {
|
|
108
|
-
position: {
|
|
109
|
-
asw_last_stop_id: aswLastStopId ? this.formatASWStopId(aswLastStopId) : null,
|
|
110
|
-
bearing: bearing ? this.fixSourceNegativeBearing(parseInt(bearing, 10)) : null,
|
|
111
|
-
cis_last_stop_id: cisLastStopId ? parseInt(cisLastStopId, 10) : null,
|
|
112
|
-
cis_last_stop_sequence: null,
|
|
113
|
-
delay_stop_arrival: attributes.zpoz_prij ? parseInt(attributes.zpoz_prij, 10) : null,
|
|
114
|
-
delay_stop_departure: attributes.zpoz_odj ? parseInt(attributes.zpoz_odj, 10) : null,
|
|
115
|
-
is_canceled: attributes.zrus === "true",
|
|
116
|
-
lat: attributes.lat ? parseFloat(attributes.lat) : null,
|
|
117
|
-
lng: attributes.lng ? parseFloat(attributes.lng) : null,
|
|
118
|
-
origin_time: attributes.cpoz,
|
|
119
|
-
origin_timestamp: positionTimestamp.toDate(),
|
|
120
|
-
speed: speed ? parseInt(speed, 10) : null,
|
|
121
|
-
state_position: const_1.StatePositionEnum.UNKNOWN,
|
|
122
|
-
state_process: const_1.StateProcessEnum.INPUT,
|
|
123
|
-
is_tracked: attributes.sled === PositionTrackingEnum.TRACKING && !!attributes.lat && !!attributes.lng,
|
|
124
|
-
trips_id: primaryKey,
|
|
125
|
-
},
|
|
123
|
+
const res = {
|
|
124
|
+
position: this.determinePosition(attributes, primaryKey, positionTimestamp),
|
|
126
125
|
stops: new Map(),
|
|
127
|
-
trip:
|
|
128
|
-
|
|
129
|
-
agency_name_scheduled: attributes.dopr ? attributes.dopr : null,
|
|
130
|
-
cis_line_id: attributes.lin,
|
|
131
|
-
cis_line_short_name: attributes.alias,
|
|
132
|
-
cis_trip_number: cisTripNumber,
|
|
133
|
-
id: primaryKey,
|
|
134
|
-
is_canceled: attributes.zrus === "true",
|
|
135
|
-
origin_route_name: attributes.kmenl ?? null,
|
|
136
|
-
run_number: attributes.po !== undefined ? parseInt(attributes.po, 10) : null,
|
|
137
|
-
start_asw_stop_id: stops[0].$.asw ?? null,
|
|
138
|
-
start_cis_stop_id: stops[0].$.zast ? parseInt(stops[0].$.zast, 10) : null,
|
|
139
|
-
start_cis_stop_platform_code: stops[0].$.stan ?? null,
|
|
140
|
-
start_time: startTimestamp.tz("Europe/Prague").format("HH:mm"),
|
|
141
|
-
start_timestamp: startTimestamp.toDate(),
|
|
142
|
-
vehicle_registration_number: attributes.vuzevc ? parseInt(attributes.vuzevc, 10) : null,
|
|
143
|
-
vehicle_type_id: attributes.t ? parseInt(attributes.t, 10) : null,
|
|
144
|
-
wheelchair_accessible: attributes.np === "true",
|
|
145
|
-
provider_source_type: ProviderSourceTypeEnum_1.ProviderSourceTypeEnum.Http,
|
|
146
|
-
},
|
|
126
|
+
trip: this.determineTrip(attributes, cisTripNumber, primaryKey, startTimestamp, element.zast[0]),
|
|
127
|
+
tripToCis: null,
|
|
147
128
|
};
|
|
148
129
|
for (let i = 0; i < stops.length; i++) {
|
|
149
130
|
const stop = stops[i];
|
|
@@ -157,7 +138,7 @@ class MpvMessageTransformation extends transformations_1.BaseTransformation {
|
|
|
157
138
|
(stop.$.zpoz_typ_prij && parseInt(stop.$.zpoz_typ_prij, 10) === 3))) {
|
|
158
139
|
res.position.cis_last_stop_sequence = cisStopSequence;
|
|
159
140
|
}
|
|
160
|
-
if (
|
|
141
|
+
if (this.isCisPlatformEligible(res.trip)) {
|
|
161
142
|
res.stops.set(`${primaryKey}_${stop.$.zast}`, {
|
|
162
143
|
rt_trip_id: primaryKey,
|
|
163
144
|
cis_stop_group_id: parseInt(stop.$.zast, 10),
|
|
@@ -167,40 +148,6 @@ class MpvMessageTransformation extends transformations_1.BaseTransformation {
|
|
|
167
148
|
}
|
|
168
149
|
return res;
|
|
169
150
|
};
|
|
170
|
-
/**
|
|
171
|
-
* Deduce UTC timestamp of start of trip and UTC timestamp of current position
|
|
172
|
-
*
|
|
173
|
-
* @param {any} firstStopXML - parsed object of first stop
|
|
174
|
-
* @param {string} positionTimestampXML - XML attribute of local timestamp of position (HH:mm:ss)
|
|
175
|
-
* @returns {{ startTimestamp: Moment; positionTimestamp: Moment }}
|
|
176
|
-
*/
|
|
177
|
-
this.deduceTimestamps = async (firstStopXML, positionTimestampXML) => {
|
|
178
|
-
const now = moment_timezone_1.default.tz("Europe/Prague");
|
|
179
|
-
let isOverMidnight = 0;
|
|
180
|
-
// creating startDate and timestamp from zast[0].prij and cpoz
|
|
181
|
-
const startTimestamp = now.clone();
|
|
182
|
-
let startDatePlain = firstStopXML.$.prij || firstStopXML.$.odj;
|
|
183
|
-
startDatePlain = startDatePlain.split(":");
|
|
184
|
-
// eslint-disable-next-line prettier/prettier
|
|
185
|
-
startTimestamp.hour(parseInt(startDatePlain[0], 10)).minute(parseInt(startDatePlain[1], 10)).second(0).millisecond(0);
|
|
186
|
-
// midnight checking
|
|
187
|
-
isOverMidnight = this.checkMidnight(now, startTimestamp); // returns -1, 1 or 0
|
|
188
|
-
startTimestamp.add(isOverMidnight, "d");
|
|
189
|
-
const positionTimestamp = now.clone();
|
|
190
|
-
const timestampPlain = positionTimestampXML.split(":");
|
|
191
|
-
positionTimestamp
|
|
192
|
-
.hour(parseInt(timestampPlain[0], 10))
|
|
193
|
-
.minute(parseInt(timestampPlain[1], 10))
|
|
194
|
-
.second(parseInt(timestampPlain[2], 10))
|
|
195
|
-
.millisecond(0);
|
|
196
|
-
// midnight checking
|
|
197
|
-
isOverMidnight = this.checkMidnight(now, positionTimestamp); // returns -1, 1 or 0
|
|
198
|
-
positionTimestamp.add(isOverMidnight, "d");
|
|
199
|
-
return {
|
|
200
|
-
startTimestamp,
|
|
201
|
-
positionTimestamp,
|
|
202
|
-
};
|
|
203
|
-
};
|
|
204
151
|
/**
|
|
205
152
|
* Returns -1 if start hour is 12-23 and now is 0-12, 1 if start hour is 18-23 and now 0-6, else 0
|
|
206
153
|
*
|
|
@@ -231,9 +178,101 @@ class MpvMessageTransformation extends transformations_1.BaseTransformation {
|
|
|
231
178
|
.getValue("module.pid.vehicle-positions.mpvIntegration.skipAgencyNames", DPPUtils_1.default.DPP_AGENCY_NAME)
|
|
232
179
|
.split(",");
|
|
233
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* Deduce UTC timestamp of start of trip and UTC timestamp of current position
|
|
183
|
+
*
|
|
184
|
+
* @param {any} firstStopXML - parsed object of first stop
|
|
185
|
+
* @param {string} positionTimestampXML - XML attribute of local timestamp of position (HH:mm:ss)
|
|
186
|
+
* @returns {{ startTimestamp: Moment; positionTimestamp: Moment }}
|
|
187
|
+
*/
|
|
188
|
+
deduceTimestamps(firstStopXML, positionTimestampXML) {
|
|
189
|
+
const now = moment_timezone_1.default.tz("Europe/Prague");
|
|
190
|
+
let isOverMidnight = 0;
|
|
191
|
+
// creating startDate and timestamp from zast[0].prij and cpoz
|
|
192
|
+
const startTimestamp = now.clone();
|
|
193
|
+
let startDatePlain = firstStopXML.$.prij || firstStopXML.$.odj;
|
|
194
|
+
startDatePlain = startDatePlain.split(":");
|
|
195
|
+
// eslint-disable-next-line prettier/prettier
|
|
196
|
+
startTimestamp.hour(parseInt(startDatePlain[0], 10)).minute(parseInt(startDatePlain[1], 10)).second(0).millisecond(0);
|
|
197
|
+
// midnight checking
|
|
198
|
+
isOverMidnight = this.checkMidnight(now, startTimestamp); // returns -1, 1 or 0
|
|
199
|
+
startTimestamp.add(isOverMidnight, "d");
|
|
200
|
+
if (positionTimestampXML == null) {
|
|
201
|
+
return { startTimestamp, positionTimestamp: now.clone() };
|
|
202
|
+
}
|
|
203
|
+
const positionTimestamp = now.clone();
|
|
204
|
+
const timestampPlain = positionTimestampXML.split(":");
|
|
205
|
+
positionTimestamp
|
|
206
|
+
.hour(parseInt(timestampPlain[0], 10))
|
|
207
|
+
.minute(parseInt(timestampPlain[1], 10))
|
|
208
|
+
.second(parseInt(timestampPlain[2], 10))
|
|
209
|
+
.millisecond(0);
|
|
210
|
+
// midnight checking
|
|
211
|
+
isOverMidnight = this.checkMidnight(now, positionTimestamp); // returns -1, 1 or 0
|
|
212
|
+
positionTimestamp.add(isOverMidnight, "d");
|
|
213
|
+
return {
|
|
214
|
+
startTimestamp,
|
|
215
|
+
positionTimestamp,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
static currentTimeInPrague() {
|
|
219
|
+
return moment_timezone_1.default.tz("Europe/Prague");
|
|
220
|
+
}
|
|
221
|
+
static currentTimeInPragueFormatted(now) {
|
|
222
|
+
return (now ?? moment_timezone_1.default.tz("Europe/Prague")).format(MpvMessageTransformation.ORIGIN_TIME_FORMAT);
|
|
223
|
+
}
|
|
224
|
+
isCisPlatformEligible(trip) {
|
|
225
|
+
if (trip?.vehicle_type_id == null) {
|
|
226
|
+
return false;
|
|
227
|
+
}
|
|
228
|
+
return MpvMessageTransformation.CIS_PLATFORM_ELIGIBLE.includes(trip.vehicle_type_id);
|
|
229
|
+
}
|
|
234
230
|
isBlacklistedAgency(agency) {
|
|
235
231
|
return agency && this.skipAgencyNames.includes(agency);
|
|
236
232
|
}
|
|
233
|
+
isTrainBeforeTrackWithPlatforms(attrs, zast) {
|
|
234
|
+
if (attrs.lat || attrs.lng || attrs.zrus || attrs.cpoz || isNaN(parseInt(attrs.spoj, 10)) || !Array.isArray(zast)) {
|
|
235
|
+
// Should the message has any of these, we skip it here (not processing in this specific flow):
|
|
236
|
+
// - has lat/lng OR
|
|
237
|
+
// - has information about being cancelled (zrus) OR
|
|
238
|
+
// - has time of position (cpoz) OR
|
|
239
|
+
// - has no information about what train-identifier it is (spoj)
|
|
240
|
+
// - has not list of stops (zast)
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
243
|
+
// further code accepts only unknown or train transport
|
|
244
|
+
const isValidRouteType = this.isCisPlatformEligible({ vehicle_type_id: parseInt(attrs.t || "0") });
|
|
245
|
+
// and accepts only <zast> XML with some "stan" (platform code) information
|
|
246
|
+
const hasStopWithPlatform = zast.some((z) => z.$.stan?.length);
|
|
247
|
+
// all stops have to be in CZ cis number system
|
|
248
|
+
const wrongStopFromNonCzCis = zast.some((z) => {
|
|
249
|
+
return Number(z.$.zast) < 5400000 || Number(z.$.zast) >= 5500000;
|
|
250
|
+
});
|
|
251
|
+
if (!isValidRouteType || !hasStopWithPlatform || wrongStopFromNonCzCis) {
|
|
252
|
+
return false;
|
|
253
|
+
}
|
|
254
|
+
const { startTimestamp } = this.deduceTimestamps(zast[0], null);
|
|
255
|
+
const departureInterval = [
|
|
256
|
+
(0, moment_timezone_1.default)().subtract(5, "minutes"), // allow planned departure 5 minutes in past
|
|
257
|
+
(0, moment_timezone_1.default)().add(20, "minutes"), // allow up to 20 minutes into future for valid trains
|
|
258
|
+
];
|
|
259
|
+
if (startTimestamp.isBetween(departureInterval[0], departureInterval[1])) {
|
|
260
|
+
// Seems the train has not yet departed onto the trip, probably good to make it into a position
|
|
261
|
+
// first stop has departure time inside interval of 5 minutes back till now+20 minutes <now-5minutes ... now+20min>
|
|
262
|
+
return true;
|
|
263
|
+
}
|
|
264
|
+
// For trains that are already on the trip = due to arriving from different / far away public
|
|
265
|
+
// transport network, and we don't receive position(s) yet, AND we won't be creating fake positions,
|
|
266
|
+
// because the vehicle is moving in reality, but MPVNet is not sending us the messages with lat/lng of it yet
|
|
267
|
+
return false;
|
|
268
|
+
}
|
|
269
|
+
determinePrimaryKey(attributes, prefix) {
|
|
270
|
+
// primary key for t = 0 (vehicle type is train) -> start_timestamp, cis_number
|
|
271
|
+
// primary key for t != 0 -> start_timestamp, cis_id, cis_short_name, cis_number
|
|
272
|
+
return attributes.t === "0"
|
|
273
|
+
? `${prefix}_${attributes.spoj}`
|
|
274
|
+
: `${prefix}_${attributes.lin}_${attributes.alias}_${attributes.spoj}`;
|
|
275
|
+
}
|
|
237
276
|
/**
|
|
238
277
|
* Fix source negative bearing value due to overflow by adding 256
|
|
239
278
|
*
|
|
@@ -243,19 +282,72 @@ class MpvMessageTransformation extends transformations_1.BaseTransformation {
|
|
|
243
282
|
fixSourceNegativeBearing(bearing) {
|
|
244
283
|
return bearing < 0 ? bearing + 256 : bearing;
|
|
245
284
|
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
285
|
+
extractStopsForTrain(id, stopsXML) {
|
|
286
|
+
const stops = new Map();
|
|
287
|
+
for (const stop of stopsXML) {
|
|
288
|
+
if (!stop.$.zast || !stop.$.stan) {
|
|
289
|
+
continue;
|
|
290
|
+
}
|
|
291
|
+
stops.set(`${id}_${stop.$.zast}`, {
|
|
292
|
+
rt_trip_id: id,
|
|
293
|
+
cis_stop_group_id: parseInt(stop.$.zast, 10),
|
|
294
|
+
cis_stop_platform_code: MpvStopParser_1.MpvStopParser.parsePlatformCode(stop),
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
return stops;
|
|
298
|
+
}
|
|
299
|
+
positionWithCisStopCoords(id, lat, lng, cpoz, positionTimestamp) {
|
|
300
|
+
return this.determinePosition({ lat, lng, cpoz }, id, positionTimestamp);
|
|
301
|
+
}
|
|
302
|
+
determinePosition(attributes, id, positionTimestamp) {
|
|
303
|
+
const cisLastStopId = attributes.zast;
|
|
304
|
+
const speed = attributes.rychl;
|
|
305
|
+
const bearing = attributes.azimut;
|
|
306
|
+
return {
|
|
307
|
+
asw_last_stop_id: null,
|
|
308
|
+
bearing: bearing ? this.fixSourceNegativeBearing(parseInt(bearing, 10)) : null,
|
|
309
|
+
cis_last_stop_id: cisLastStopId ? parseInt(cisLastStopId, 10) : null,
|
|
310
|
+
cis_last_stop_sequence: null,
|
|
311
|
+
delay_stop_arrival: attributes.zpoz_prij ? parseInt(attributes.zpoz_prij, 10) : null,
|
|
312
|
+
delay_stop_departure: attributes.zpoz_odj ? parseInt(attributes.zpoz_odj, 10) : null,
|
|
313
|
+
is_canceled: attributes.zrus === "true",
|
|
314
|
+
lat: attributes.lat ? parseFloat(attributes.lat) : null,
|
|
315
|
+
lng: attributes.lng ? parseFloat(attributes.lng) : null,
|
|
316
|
+
origin_time: attributes.cpoz || positionTimestamp.format(MpvMessageTransformation.ORIGIN_TIME_FORMAT),
|
|
317
|
+
origin_timestamp: positionTimestamp.toDate(),
|
|
318
|
+
speed: speed ? parseInt(speed, 10) : null,
|
|
319
|
+
state_position: const_1.StatePositionEnum.UNKNOWN,
|
|
320
|
+
state_process: const_1.StateProcessEnum.INPUT,
|
|
321
|
+
is_tracked: attributes.sled === PositionTrackingEnum.TRACKING && !!attributes.lat && !!attributes.lng,
|
|
322
|
+
trips_id: id,
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
determineTrip(attributes, cisTripNumber, id, start, zastXML) {
|
|
326
|
+
if (isNaN(cisTripNumber))
|
|
327
|
+
return null;
|
|
328
|
+
return {
|
|
329
|
+
agency_name_real: attributes.doprSkut ? attributes.doprSkut : null,
|
|
330
|
+
agency_name_scheduled: attributes.dopr ? attributes.dopr : null,
|
|
331
|
+
cis_line_id: attributes.lin || "none",
|
|
332
|
+
cis_line_short_name: attributes.alias || "none",
|
|
333
|
+
cis_trip_number: cisTripNumber,
|
|
334
|
+
id,
|
|
335
|
+
is_canceled: attributes.zrus === "true",
|
|
336
|
+
origin_route_name: attributes.kmenl ?? null,
|
|
337
|
+
run_number: attributes.po !== undefined ? parseInt(attributes.po, 10) : null,
|
|
338
|
+
start_asw_stop_id: zastXML.$.asw ?? null,
|
|
339
|
+
start_cis_stop_id: zastXML.$.zast ? parseInt(zastXML.$.zast, 10) : null,
|
|
340
|
+
start_cis_stop_platform_code: zastXML.$.stan ?? null,
|
|
341
|
+
start_time: start.tz("Europe/Prague").format("HH:mm"),
|
|
342
|
+
start_timestamp: start.toDate(),
|
|
343
|
+
vehicle_registration_number: attributes.vuzevc ? parseInt(attributes.vuzevc, 10) : null,
|
|
344
|
+
vehicle_type_id: attributes.t ? parseInt(attributes.t, 10) : null,
|
|
345
|
+
wheelchair_accessible: attributes.np === "true",
|
|
346
|
+
provider_source_type: ProviderSourceTypeEnum_1.ProviderSourceTypeEnum.Http,
|
|
347
|
+
};
|
|
257
348
|
}
|
|
258
349
|
}
|
|
259
350
|
exports.MpvMessageTransformation = MpvMessageTransformation;
|
|
260
351
|
MpvMessageTransformation.ORIGIN_TIME_FORMAT = "HH:mm:ss";
|
|
352
|
+
MpvMessageTransformation.CIS_PLATFORM_ELIGIBLE = [RouteTypeEnums_1.MPVRouteTypesEnum.UNKNOWN, RouteTypeEnums_1.MPVRouteTypesEnum.TRAIN];
|
|
261
353
|
//# sourceMappingURL=MpvMessageTransformation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MpvMessageTransformation.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MpvMessageTransformation.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.ts"],"names":[],"mappings":"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"}
|