@golemio/pid 2.18.1-dev.1427397189 → 2.18.1-dev.1428635624
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/20240827075829-remove-analytic-departure-boards-view.js +53 -0
- package/db/migrations/postgresql/sqls/20240827075829-remove-analytic-departure-boards-view-down.sql +30 -0
- package/db/migrations/postgresql/sqls/20240827075829-remove-analytic-departure-boards-view-up.sql +1 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/gtfs-trip-run/AbstractGTFSTripRunManager.js +1 -3
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/gtfs-trip-run/AbstractGTFSTripRunManager.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/PropagateTrainDelayTask.js +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/PropagateTrainDelayTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/abstract/AbstractPropagateDelayTask.js +29 -18
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/abstract/AbstractPropagateDelayTask.js.map +1 -1
- package/package.json +2 -2
|
@@ -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', '20240827075829-remove-analytic-departure-boards-view-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', '20240827075829-remove-analytic-departure-boards-view-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/20240827075829-remove-analytic-departure-boards-view-down.sql
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
CREATE VIEW analytic.v_ropid_departure_boards
|
|
2
|
+
AS SELECT final.lon,
|
|
3
|
+
final.lat,
|
|
4
|
+
final.route_name,
|
|
5
|
+
final.note,
|
|
6
|
+
final.stop_correct,
|
|
7
|
+
count(1) OVER (PARTITION BY (split_part(final.stop_correct, '/'::text, 1))) AS n_ceduli,
|
|
8
|
+
final.alt_idos_name
|
|
9
|
+
FROM ( SELECT stops.lon,
|
|
10
|
+
stops.lat,
|
|
11
|
+
tab.route_name,
|
|
12
|
+
tab.note,
|
|
13
|
+
tab.stop_correct,
|
|
14
|
+
stops.alt_idos_name,
|
|
15
|
+
row_number() OVER (PARTITION BY tab.note) AS n_duplicit
|
|
16
|
+
FROM ( SELECT rdp.route_name,
|
|
17
|
+
rdp.note,
|
|
18
|
+
CASE
|
|
19
|
+
WHEN rdp.url_query_params::text ~~ '%aswIds%'::text THEN replace("substring"(rdp.url_query_params::text, 'aswIds[^=]*?=(.+?(?=&|$))'::text), '_'::text, '/'::text)
|
|
20
|
+
WHEN rdp.url_query_params::text ~~ '%cisIds%'::text THEN "substring"(rdp.url_query_params::text, 'cisIds[^=]*?=(.+?(?=&|$))'::text)
|
|
21
|
+
ELSE NULL::text
|
|
22
|
+
END AS stop_correct
|
|
23
|
+
FROM ropid_departures_presets rdp) tab
|
|
24
|
+
LEFT JOIN ropidgtfs_cis_stops stops ON
|
|
25
|
+
CASE
|
|
26
|
+
WHEN tab.stop_correct ~~ '%/%'::text THEN tab.stop_correct = stops.id::text
|
|
27
|
+
ELSE tab.stop_correct = split_part(stops.id::text, '/'::text, 1)
|
|
28
|
+
END OR tab.stop_correct = stops.cis::text) final
|
|
29
|
+
WHERE final.n_duplicit = 1
|
|
30
|
+
ORDER BY final.stop_correct;
|
package/db/migrations/postgresql/sqls/20240827075829-remove-analytic-departure-boards-view-up.sql
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
drop view analytic.v_ropid_departure_boards;
|
|
@@ -11,13 +11,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.AbstractGTFSTripRunManager = void 0;
|
|
13
13
|
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
14
|
-
const config_1 = require("@golemio/core/dist/integration-engine/config");
|
|
15
14
|
const ioc_1 = require("@golemio/core/dist/integration-engine/ioc");
|
|
16
15
|
const DateTimeUtils_1 = require("../DateTimeUtils");
|
|
17
16
|
const VPUtils_1 = require("../VPUtils");
|
|
18
17
|
class AbstractGTFSTripRunManager {
|
|
19
18
|
constructor(positionsRepository, tripsRepository, runsRepository, runTripsRedisRepository, testMode = false) {
|
|
20
|
-
var _a;
|
|
21
19
|
this.positionsRepository = positionsRepository;
|
|
22
20
|
this.tripsRepository = tripsRepository;
|
|
23
21
|
this.runsRepository = runsRepository;
|
|
@@ -48,7 +46,7 @@ class AbstractGTFSTripRunManager {
|
|
|
48
46
|
};
|
|
49
47
|
this.config = ioc_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.SimpleConfig);
|
|
50
48
|
this.logger = ioc_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.Logger);
|
|
51
|
-
this.turnaroundEstimateInSeconds =
|
|
49
|
+
this.turnaroundEstimateInSeconds = this.config.getValue("module.pid.vehicle-positions.gtfsTripRun.turnaroundEstimateInSeconds", 0);
|
|
52
50
|
}
|
|
53
51
|
determineCurrentTripFromTimestamp(schedule, timestampScheduled) {
|
|
54
52
|
let currentTrip = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractGTFSTripRunManager.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/gtfs-trip-run/AbstractGTFSTripRunManager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAOA,wEAAqE;AAErE,
|
|
1
|
+
{"version":3,"file":"AbstractGTFSTripRunManager.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/gtfs-trip-run/AbstractGTFSTripRunManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,7 @@ class PropagateTrainDelayTask extends AbstractPropagateDelayTask_1.AbstractPropa
|
|
|
38
38
|
this.logger = ioc_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.Logger);
|
|
39
39
|
this.blockStopsRepository = Di_1.RopidGtfsContainer.resolve(RopidGtfsContainerToken_1.RopidGtfsContainerToken.BlockStopsRedisRepository);
|
|
40
40
|
this.config = ioc_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.SimpleConfig);
|
|
41
|
-
this.turnaroundEstimateInSeconds = this.config.getValue("
|
|
41
|
+
this.turnaroundEstimateInSeconds = this.config.getValue("module.pid.vehicle-positions.gtfsTripRun.turnaroundEstimateInSeconds", 0);
|
|
42
42
|
}
|
|
43
43
|
execute(input) {
|
|
44
44
|
var _a, _b, _c, _d, _e, _f;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropagateTrainDelayTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/PropagateTrainDelayTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,sDAA2D;AAC3D,gGAAqF;AAErF,wEAAqE;AAErE,mEAAuF;AACvF,mEAAyD;AAGzD,mFAAqF;AACrF,sFAAmF;AAEnF,MAAa,uBAAwB,SAAQ,uDAAqD;IAU9F,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QAVP,cAAS,GAAG,qBAAqB,CAAC;QAClC,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;QACtC,WAAM,GAAG,0DAA8B,CAAC;QA8DhD,sBAAiB,GAAG,CACxB,aAAiC,EACjC,eAAuB,EACI,EAAE;YAC7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;gBAC5C,UAAU,EAAE,CAAC,cAAc,CAAC;gBAC5B,KAAK,EAAE;oBACH,aAAa,EAAE,aAAa;oBAC5B,eAAe,EAAE,EAAE,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE;iBAChD;gBACD,KAAK,EAAE,CAAC,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;gBACnC,GAAG,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,OAAO,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,CAAC;QAC9B,CAAC,CAAA,CAAC;QApEE,IAAI,CAAC,MAAM,GAAG,gCAA0B,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,CAAC;QAC5E,IAAI,CAAC,oBAAoB,GAAG,uBAAkB,CAAC,OAAO,CAClD,iDAAuB,CAAC,yBAAyB,CACpD,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,gCAA0B,CAAC,OAAO,CAAgB,qBAAS,CAAC,YAAY,CAAC,CAAC;QACxF,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CACnD,
|
|
1
|
+
{"version":3,"file":"PropagateTrainDelayTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/PropagateTrainDelayTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,34 +23,45 @@ class AbstractPropagateDelayTask extends integration_engine_1.AbstractTask {
|
|
|
23
23
|
*/
|
|
24
24
|
this.propagateDelayForGtfsTrip = (data) => __awaiter(this, void 0, void 0, function* () {
|
|
25
25
|
var _a, _b;
|
|
26
|
-
const
|
|
27
|
-
if (!
|
|
26
|
+
const trips = yield this.tripsRepository.getPropagateDelayTripsWithPositions(data);
|
|
27
|
+
if (!trips.length)
|
|
28
28
|
return;
|
|
29
29
|
let tripsToUpdate = new Map();
|
|
30
30
|
let positionsToUpdate = [];
|
|
31
|
-
let turnTimeAcc = (
|
|
32
|
-
for (let i = 0; i <
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
31
|
+
let turnTimeAcc = (new Date(trips[0].start_timestamp).getTime() - new Date(data.currentEndTime).getTime()) / 1000;
|
|
32
|
+
for (let i = 0; i < trips.length; i++) {
|
|
33
|
+
const trip = trips[i];
|
|
34
|
+
const lastPosition = trip.last_position;
|
|
35
|
+
const requiredTurnaroundSeconds = (_b = (_a = data.nextGtfsTrips.find((gtfsTrip) => gtfsTrip.trip_id === trip.gtfs_trip_id)) === null || _a === void 0 ? void 0 : _a.requiredTurnaroundSeconds) !== null && _b !== void 0 ? _b : 0;
|
|
36
|
+
let delayInSeconds = data.currentDelay;
|
|
37
|
+
// If delay is positive, we need to subtract the time that the vehicle is expected to wait between trips
|
|
38
|
+
// otherwise negative delay should be propagated to next trips as is
|
|
39
|
+
if (delayInSeconds >= 0) {
|
|
40
|
+
if (i === 0) {
|
|
41
|
+
turnTimeAcc -= requiredTurnaroundSeconds;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
const previousTrip = trips[i - 1];
|
|
45
|
+
const startTimestamp = new Date(trip.start_timestamp).getTime();
|
|
46
|
+
const endTimestamp = new Date(previousTrip.end_timestamp).getTime();
|
|
47
|
+
turnTimeAcc += (startTimestamp - endTimestamp) / 1000 - requiredTurnaroundSeconds;
|
|
48
|
+
}
|
|
49
|
+
delayInSeconds = Math.max(0, delayInSeconds - turnTimeAcc);
|
|
50
|
+
}
|
|
51
|
+
tripsToUpdate.set(trip.id, {
|
|
52
|
+
id: trip.id,
|
|
53
|
+
last_position_id: lastPosition.id,
|
|
54
|
+
last_position_context: Object.assign(Object.assign({}, trip.last_position_context), { lastPositionLat: typeof lastPosition.lat === "string" ? parseFloat(lastPosition.lat) : lastPosition.lat, lastPositionLng: typeof lastPosition.lng === "string" ? parseFloat(lastPosition.lng) : lastPosition.lng, lastPositionBeforeTrackDelayed: {
|
|
44
55
|
delay: delayInSeconds,
|
|
45
|
-
origin_timestamp:
|
|
56
|
+
origin_timestamp: lastPosition.origin_timestamp,
|
|
46
57
|
} }),
|
|
47
58
|
});
|
|
48
59
|
positionsToUpdate.push({
|
|
49
|
-
id:
|
|
60
|
+
id: lastPosition.id,
|
|
50
61
|
delay: delayInSeconds,
|
|
51
62
|
state_position: const_1.StatePositionEnum.BEFORE_TRACK_DELAYED,
|
|
52
63
|
state_process: const_1.StateProcessEnum.PROCESSED,
|
|
53
|
-
origin_timestamp:
|
|
64
|
+
origin_timestamp: lastPosition.origin_timestamp,
|
|
54
65
|
});
|
|
55
66
|
}
|
|
56
67
|
yield this.positionsRepository.bulkSave(positionsToUpdate);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractPropagateDelayTask.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/abstract/AbstractPropagateDelayTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,8EAAqE;AACrE,mDAAgE;AAChE,+EAA4E;AAC5E,uEAAoE;AAGpE,MAAsB,0BAA6C,SAAQ,iCAAe;IAMtF,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QANP,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;QAWtD;;WAEG;QACO,8BAAyB,GAAG,CAAO,IAAqB,EAAE,EAAE;;YAClE,MAAM,
|
|
1
|
+
{"version":3,"file":"AbstractPropagateDelayTask.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/abstract/AbstractPropagateDelayTask.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@golemio/pid",
|
|
3
|
-
"version": "2.18.1-dev.
|
|
3
|
+
"version": "2.18.1-dev.1428635624",
|
|
4
4
|
"description": "Golemio PID Module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"@commitlint/cli": "^11.0.0",
|
|
38
38
|
"@commitlint/config-conventional": "^11.0.0",
|
|
39
39
|
"@golemio/cli": "1.6.1",
|
|
40
|
-
"@golemio/core": "1.13.
|
|
40
|
+
"@golemio/core": "1.13.4-dev.1428623255",
|
|
41
41
|
"@golemio/db-common": "1.1.4",
|
|
42
42
|
"@golemio/eslint-config": "1.1.2",
|
|
43
43
|
"@types/amqplib": "^0.5.17",
|