@golemio/energetics 1.4.1-dev.1373771622 → 1.4.1-dev.1382853974
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/03_devices.sql +2 -0
- package/db/example/05_access.sql +3 -0
- package/db/migrations/postgresql/20240719110034-add-monthly-report-function.js +53 -0
- package/db/migrations/postgresql/sqls/20240719110034-add-monthly-report-function-down.sql +1 -0
- package/db/migrations/postgresql/sqls/20240719110034-add-monthly-report-function-up.sql +46 -0
- package/dist/integration-engine/commodity-providers/datasources/ppas-ave-api/AveDataTypeEnum.d.ts +6 -0
- package/dist/integration-engine/commodity-providers/datasources/ppas-ave-api/AveDataTypeEnum.js +12 -0
- package/dist/integration-engine/commodity-providers/datasources/ppas-ave-api/AveDataTypeEnum.js.map +1 -0
- package/dist/integration-engine/commodity-providers/helper/MeasurementsDataNormalizer.d.ts +4 -0
- package/dist/integration-engine/commodity-providers/helper/MeasurementsDataNormalizer.js +11 -0
- package/dist/integration-engine/commodity-providers/helper/MeasurementsDataNormalizer.js.map +1 -0
- package/dist/integration-engine/commodity-providers/workers/tasks/AbstractFetchMeasurementsTask.js +2 -0
- package/dist/integration-engine/commodity-providers/workers/tasks/AbstractFetchMeasurementsTask.js.map +1 -1
- package/dist/integration-engine/commodity-providers/workers/tasks/FetchPpasMeasurementsTask.js +3 -1
- package/dist/integration-engine/commodity-providers/workers/tasks/FetchPpasMeasurementsTask.js.map +1 -1
- package/dist/integration-engine/commodity-providers/workers/tasks/FetchPreMeasurementDataTask.js +3 -1
- package/dist/integration-engine/commodity-providers/workers/tasks/FetchPreMeasurementDataTask.js.map +1 -1
- package/dist/integration-engine/commodity-providers/workers/tasks/FetchPtasWebScrapedMeasurementsTask.d.ts +2 -1
- package/dist/integration-engine/commodity-providers/workers/tasks/FetchPtasWebScrapedMeasurementsTask.js +18 -3
- package/dist/integration-engine/commodity-providers/workers/tasks/FetchPtasWebScrapedMeasurementsTask.js.map +1 -1
- package/dist/output-gateway/repositories/MeasurementRepository.js +10 -12
- package/dist/output-gateway/repositories/MeasurementRepository.js.map +1 -1
- package/package.json +1 -1
|
@@ -22,3 +22,5 @@ INSERT INTO consumption_energy_devices (id,addr,description,meter_number,meter_i
|
|
|
22
22
|
(37,'/2.3/VP3','Podružné měření byt','18372914','5','','Byt','true','Vodoměr','Podružný','m^3','','false',11,NULL,'2023-01-06 15:20:34.359',NULL,NULL,'2024-05-20 17:30:01.138',NULL),
|
|
23
23
|
(38,'/2.3/VP4','Podružné měření bazén','01TE060034','6','','Bazén','true','Vodoměr','Podružný','m^3','','false',11,NULL,'2023-01-06 15:20:34.359',NULL,NULL,'2024-05-20 17:30:01.138',NULL),
|
|
24
24
|
(136,'/2.3/PF1','Fakturační plynoměr kotelna','9512360','2','27ZG100Z0001191L','Kotelna','true','Plynoměr','Hlavní (fakturační)','m^3','27','false',11,NULL,'2023-01-06 15:20:34.36',NULL,NULL,'2024-05-20 17:30:01.139',NULL);
|
|
25
|
+
INSERT INTO consumption_energy_devices (id,addr,description,meter_number,meter_index,location_number,location_description,include_in_evaluation,meter_type,category,unit,replaced_meter_id,deleted,building_id,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
|
|
26
|
+
(138,'/2.9/PF1','Fakturační plynoměr Kotelna','80037540','2','27ZG100Z0000521V','Kotelna','true','Plynoměr','Hlavní (fakturační)','m^3','73','false',5,NULL,'2023-01-06 15:20:34.360',NULL,NULL,'2024-05-22 13:30:01.092',NULL);
|
package/db/example/05_access.sql
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
INSERT INTO organizations_buildings (organization_id,building_id) VALUES (1,5);
|
|
2
|
+
|
|
3
|
+
|
|
1
4
|
INSERT INTO access_limitation (group_name, organization_ids, created_at, updated_at) VALUES('praha-10', '{64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,85,87,88,89,91,93,94,95,96,97,84,86,90,92}', '2024-06-24 10:47:50.349', '2024-06-24 13:08:00.920');
|
|
2
5
|
INSERT INTO access_limitation (group_name, organization_ids, created_at, updated_at) VALUES('test', '{1}', '2024-06-24 10:47:50.349', '2024-06-24 13:08:00.920');
|
|
3
6
|
INSERT INTO access_limitation (group_name, organization_ids, created_at, updated_at) VALUES('test2', '{2,3}', '2024-06-24 10:47:50.349', '2024-06-24 13:08:00.920');
|
|
@@ -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', '20240719110034-add-monthly-report-function-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', '20240719110034-add-monthly-report-function-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 @@
|
|
|
1
|
+
drop function if exists monthly_report;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
CREATE OR REPLACE FUNCTION monthly_report(address varchar(255),variable varchar(255),date_from timestamptz, date_to timestamptz, organization_ids varchar)
|
|
2
|
+
RETURNS TABLE (
|
|
3
|
+
value numeric(30,15),
|
|
4
|
+
meter varchar(255),
|
|
5
|
+
type varchar(255),
|
|
6
|
+
addr varchar(255),
|
|
7
|
+
var varchar(255)
|
|
8
|
+
)
|
|
9
|
+
SET search_path FROM CURRENT
|
|
10
|
+
AS $func$
|
|
11
|
+
select
|
|
12
|
+
case when var in ('EFwActi','EFwActiVT','EFwActiNT') then --special handling for "činná energie"
|
|
13
|
+
(max("value")/4) - (min("value")/4)
|
|
14
|
+
else
|
|
15
|
+
max("value") - min("value")
|
|
16
|
+
end as "value",
|
|
17
|
+
"meter",
|
|
18
|
+
"type",
|
|
19
|
+
"addr",
|
|
20
|
+
"var"
|
|
21
|
+
from
|
|
22
|
+
"consumption_energy_measurements" as "consumption_energy_measurements"
|
|
23
|
+
where
|
|
24
|
+
("consumption_energy_measurements"."var" = $2
|
|
25
|
+
and "consumption_energy_measurements"."addr" = $1
|
|
26
|
+
and "consumption_energy_measurements"."timestamp" between $3 and $4
|
|
27
|
+
and
|
|
28
|
+
case
|
|
29
|
+
when $5 is null then 1
|
|
30
|
+
when
|
|
31
|
+
"consumption_energy_measurements"."addr" in (
|
|
32
|
+
select distinct
|
|
33
|
+
d.addr
|
|
34
|
+
from organizations_buildings b
|
|
35
|
+
inner join consumption_energy_devices d on b.building_id = d.building_id
|
|
36
|
+
where b.organization_id = any(('{' || $5 || '}')::integer[])
|
|
37
|
+
) then 1
|
|
38
|
+
else 0
|
|
39
|
+
end = 1
|
|
40
|
+
)
|
|
41
|
+
group by
|
|
42
|
+
"meter",
|
|
43
|
+
"type",
|
|
44
|
+
"addr",
|
|
45
|
+
"var";
|
|
46
|
+
$func$ LANGUAGE sql;
|
package/dist/integration-engine/commodity-providers/datasources/ppas-ave-api/AveDataTypeEnum.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AveDataType = void 0;
|
|
4
|
+
// takeover from original C# scraper [OIct.ECG.AveDataGrabber](https://gitlab.com/operator-ict/oddeleni-vyvoje/energetika/spotreby-energii-mestskych-budov/stahovani-dat-meridel/-/blob/main/src/OIct.ECG.AveDataGrabber/Models/DataType.cs?ref_type=heads)
|
|
5
|
+
var AveDataType;
|
|
6
|
+
(function (AveDataType) {
|
|
7
|
+
AveDataType[AveDataType["RawData"] = 0] = "RawData";
|
|
8
|
+
AveDataType[AveDataType["HourlyData"] = 1] = "HourlyData";
|
|
9
|
+
AveDataType[AveDataType["DailyData"] = 2] = "DailyData";
|
|
10
|
+
AveDataType[AveDataType["MonthlyData"] = 3] = "MonthlyData";
|
|
11
|
+
})(AveDataType || (exports.AveDataType = AveDataType = {}));
|
|
12
|
+
//# sourceMappingURL=AveDataTypeEnum.js.map
|
package/dist/integration-engine/commodity-providers/datasources/ppas-ave-api/AveDataTypeEnum.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AveDataTypeEnum.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/datasources/ppas-ave-api/AveDataTypeEnum.ts"],"names":[],"mappings":";;;AAAA,2PAA2P;AAC3P,IAAY,WAKX;AALD,WAAY,WAAW;IACnB,mDAAW,CAAA;IACX,yDAAc,CAAA;IACd,uDAAa,CAAA;IACb,2DAAe,CAAA;AACnB,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MeasurementsDataNormalizer = void 0;
|
|
4
|
+
// Filter out measurements with null values, negative values and future timestamps (issue prevzeti-ed#37)
|
|
5
|
+
class MeasurementsDataNormalizer {
|
|
6
|
+
static filter(data) {
|
|
7
|
+
return data.filter((item) => item.value !== null && item.value > 0 && item.timestamp < new Date());
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.MeasurementsDataNormalizer = MeasurementsDataNormalizer;
|
|
11
|
+
//# sourceMappingURL=MeasurementsDataNormalizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeasurementsDataNormalizer.js","sourceRoot":"","sources":["../../../../src/integration-engine/commodity-providers/helper/MeasurementsDataNormalizer.ts"],"names":[],"mappings":";;;AAEA,yGAAyG;AACzG,MAAa,0BAA0B;IAC5B,MAAM,CAAC,MAAM,CAAC,IAAuB;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;IACvG,CAAC;CACJ;AAJD,gEAIC"}
|
package/dist/integration-engine/commodity-providers/workers/tasks/AbstractFetchMeasurementsTask.js
CHANGED
|
@@ -11,6 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.AbstractFetchMeasurementsTask = void 0;
|
|
13
13
|
const constants_1 = require("../../constants");
|
|
14
|
+
const MeasurementsDataNormalizer_1 = require("../../helper/MeasurementsDataNormalizer");
|
|
14
15
|
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
15
16
|
const MEASUREMENTS_BATCH_SIZE = 5000;
|
|
16
17
|
class AbstractFetchMeasurementsTask extends integration_engine_1.AbstractTask {
|
|
@@ -21,6 +22,7 @@ class AbstractFetchMeasurementsTask extends integration_engine_1.AbstractTask {
|
|
|
21
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22
23
|
for (let i = 0; i < data.length; i += MEASUREMENTS_BATCH_SIZE) {
|
|
23
24
|
let batch = data.slice(i, i + MEASUREMENTS_BATCH_SIZE);
|
|
25
|
+
batch = MeasurementsDataNormalizer_1.MeasurementsDataNormalizer.filter(batch);
|
|
24
26
|
// Remove duplicated measurements from the batch
|
|
25
27
|
batch = batch.filter((item, index, self) => index ===
|
|
26
28
|
self.findIndex((t) => t.timestamp.getTime() === item.timestamp.getTime() &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractFetchMeasurementsTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/tasks/AbstractFetchMeasurementsTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAgE;
|
|
1
|
+
{"version":3,"file":"AbstractFetchMeasurementsTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/tasks/AbstractFetchMeasurementsTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAgE;AAChE,wFAAuG;AAGvG,8EAAqE;AAGrE,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC,MAAsB,6BAA6D,SAAQ,iCAAe;IAGtG;QACI,KAAK,CAAC,uBAAW,CAAC,CAAC;IACvB,CAAC;IAEe,mBAAmB,CAAC,IAAuB;;YACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,uBAAuB,EAAE;gBAC3D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,CAAC;gBAEvD,KAAK,GAAG,uDAA0B,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAEjD,gDAAgD;gBAChD,KAAK,GAAG,KAAK,CAAC,MAAM,CAChB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAClB,KAAK;oBACL,IAAI,CAAC,SAAS,CACV,CAAC,CAAC,EAAE,EAAE,CACF,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;wBAClD,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;wBACpB,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;wBAC5B,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAC7B,CACR,CAAC;gBAEF,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACpD;QACL,CAAC;KAAA;CACJ;AA7BD,sEA6BC"}
|
package/dist/integration-engine/commodity-providers/workers/tasks/FetchPpasMeasurementsTask.js
CHANGED
|
@@ -42,6 +42,7 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
|
|
|
42
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
43
|
exports.FetchPpasMeasurementsTask = void 0;
|
|
44
44
|
const CommodityProviderEnum_1 = require("../../datasources/helpers/CommodityProviderEnum");
|
|
45
|
+
const AveDataTypeEnum_1 = require("../../datasources/ppas-ave-api/AveDataTypeEnum");
|
|
45
46
|
const PpasAveApiHelper_1 = require("../../datasources/ppas-ave-api/helpers/PpasAveApiHelper");
|
|
46
47
|
const WorkerContainerToken_1 = require("../../ioc/WorkerContainerToken");
|
|
47
48
|
const MeasurementRepository_1 = require("../../repositories/MeasurementRepository");
|
|
@@ -144,7 +145,8 @@ let FetchPpasMeasurementsTask = exports.FetchPpasMeasurementsTask = class FetchP
|
|
|
144
145
|
dateFrom: start.toISODate(),
|
|
145
146
|
dateTo: end.toISODate(),
|
|
146
147
|
isoDate: "1",
|
|
147
|
-
|
|
148
|
+
// fill all measurement values (we need the OperatingAmount and ConvertDifference values)
|
|
149
|
+
dataType: AveDataTypeEnum_1.AveDataType.RawData.toString(),
|
|
148
150
|
}));
|
|
149
151
|
}
|
|
150
152
|
});
|
package/dist/integration-engine/commodity-providers/workers/tasks/FetchPpasMeasurementsTask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FetchPpasMeasurementsTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/tasks/FetchPpasMeasurementsTask.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"FetchPpasMeasurementsTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/tasks/FetchPpasMeasurementsTask.ts"],"names":[],"mappings":"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"}
|
package/dist/integration-engine/commodity-providers/workers/tasks/FetchPreMeasurementDataTask.js
CHANGED
|
@@ -25,6 +25,7 @@ exports.FetchPreMeasurementDataTask = void 0;
|
|
|
25
25
|
const constants_1 = require("../../constants");
|
|
26
26
|
const PreElectroApiDataSourceProvider_1 = require("../../datasources/pre-elektro-api/PreElectroApiDataSourceProvider");
|
|
27
27
|
const PreElectroHelper_1 = require("../../datasources/pre-elektro-api/helpers/PreElectroHelper");
|
|
28
|
+
const MeasurementsDataNormalizer_1 = require("../../helper/MeasurementsDataNormalizer");
|
|
28
29
|
const WorkerContainerToken_1 = require("../../ioc/WorkerContainerToken");
|
|
29
30
|
const MeasurementRepository_1 = require("../../repositories/MeasurementRepository");
|
|
30
31
|
const StaticMeterSettingsRepository_1 = require("../../repositories/StaticMeterSettingsRepository");
|
|
@@ -58,7 +59,7 @@ let FetchPreMeasurementDataTask = exports.FetchPreMeasurementDataTask = class Fe
|
|
|
58
59
|
throw new golemio_errors_1.GeneralError("No files to import", this.constructor.name);
|
|
59
60
|
}
|
|
60
61
|
for (const file of files) {
|
|
61
|
-
|
|
62
|
+
let batch = [];
|
|
62
63
|
const { data: measurements } = yield this.dataSourceProvider.getMeasurements(file);
|
|
63
64
|
for (const measurement of measurements) {
|
|
64
65
|
const option = measurementOptions.find((item) => item.MeterSerialNumber === measurement["ELM"] && item.Meter === measurement["EAN"]);
|
|
@@ -68,6 +69,7 @@ let FetchPreMeasurementDataTask = exports.FetchPreMeasurementDataTask = class Fe
|
|
|
68
69
|
const consumptionData = this.transformation.transformElement({ option, measurement });
|
|
69
70
|
batch.push(consumptionData);
|
|
70
71
|
}
|
|
72
|
+
batch = MeasurementsDataNormalizer_1.MeasurementsDataNormalizer.filter(batch);
|
|
71
73
|
yield this.measurementRepository.bulkSave(batch);
|
|
72
74
|
}
|
|
73
75
|
});
|
package/dist/integration-engine/commodity-providers/workers/tasks/FetchPreMeasurementDataTask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FetchPreMeasurementDataTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/tasks/FetchPreMeasurementDataTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgE;AAChE,uHAAsI;AACtI,iGAAgH;AAChH,yEAAwF;AACxF,oFAAmG;AACnG,oGAAmH;AACnH,6FAA4G;AAE5G,uHAAsF;AACtF,yHAAwF;AACxF,8EAAqE;AACrE,6EAAwE;AACxE,iEAAwE;AAExE,2EAAwE;AAGjE,IAAM,2BAA2B,yCAAjC,MAAM,2BAA4B,SAAQ,iCAAoC;IAKjF,YAEI,uBAA8D,EACV,qBAAsD,EACnD,cAAkD,EAEzG,kBAA6D,EAE7D,MAAkC;QAElC,KAAK,CAAC,uBAAW,CAAC,CAAC;QARX,4BAAuB,GAAvB,uBAAuB,CAA+B;QACA,0BAAqB,GAArB,qBAAqB,CAAuB;QACzC,mBAAc,GAAd,cAAc,CAA0B;QAE/F,uBAAkB,GAAlB,kBAAkB,CAAiC;QAEnD,WAAM,GAAN,MAAM,CAAkB;QAZ5B,WAAM,GAAG,6CAAqB,CAAC;QACzB,cAAS,GAAG,iCAAiC,CAAC;QAC9C,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAa1C,CAAC;IAEe,OAAO,CAAC,IAA4B;;YAChD,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,CACjE,iDAAqB,CAAC,UAAU,EAChC,mDAAsB,CAAC,kBAAkB,CAC5C,CAAC;YAEF,IAAI,CAAC,kBAAkB,EAAE;gBACrB,MAAM,IAAI,6BAAY,CAAC,+BAA+B,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAClF;YAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAE9E,IAAI,CAAC,KAAK,EAAE;gBACR,MAAM,IAAI,6BAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aACvE;YAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACtB,
|
|
1
|
+
{"version":3,"file":"FetchPreMeasurementDataTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/tasks/FetchPreMeasurementDataTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgE;AAChE,uHAAsI;AACtI,iGAAgH;AAChH,wFAAuG;AACvG,yEAAwF;AACxF,oFAAmG;AACnG,oGAAmH;AACnH,6FAA4G;AAE5G,uHAAsF;AACtF,yHAAwF;AACxF,8EAAqE;AACrE,6EAAwE;AACxE,iEAAwE;AAExE,2EAAwE;AAGjE,IAAM,2BAA2B,yCAAjC,MAAM,2BAA4B,SAAQ,iCAAoC;IAKjF,YAEI,uBAA8D,EACV,qBAAsD,EACnD,cAAkD,EAEzG,kBAA6D,EAE7D,MAAkC;QAElC,KAAK,CAAC,uBAAW,CAAC,CAAC;QARX,4BAAuB,GAAvB,uBAAuB,CAA+B;QACA,0BAAqB,GAArB,qBAAqB,CAAuB;QACzC,mBAAc,GAAd,cAAc,CAA0B;QAE/F,uBAAkB,GAAlB,kBAAkB,CAAiC;QAEnD,WAAM,GAAN,MAAM,CAAkB;QAZ5B,WAAM,GAAG,6CAAqB,CAAC;QACzB,cAAS,GAAG,iCAAiC,CAAC;QAC9C,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAa1C,CAAC;IAEe,OAAO,CAAC,IAA4B;;YAChD,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,CACjE,iDAAqB,CAAC,UAAU,EAChC,mDAAsB,CAAC,kBAAkB,CAC5C,CAAC;YAEF,IAAI,CAAC,kBAAkB,EAAE;gBACrB,MAAM,IAAI,6BAAY,CAAC,+BAA+B,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAClF;YAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAE9E,IAAI,CAAC,KAAK,EAAE;gBACR,MAAM,IAAI,6BAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aACvE;YAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACtB,IAAI,KAAK,GAAG,EAAE,CAAC;gBACf,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAEnF,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;oBACpC,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAClC,CAAC,IAAwB,EAAE,EAAE,CACzB,IAAI,CAAC,iBAAiB,KAAK,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK,CAAC,CACzF,CAAC;oBAEF,IAAI,CAAC,MAAM,EAAE;wBACT,SAAS;qBACZ;oBAED,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;oBAEtF,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;iBAC/B;gBACD,KAAK,GAAG,uDAA0B,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACjD,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACpD;QACL,CAAC;KAAA;CACJ,CAAA;sCAxDY,2BAA2B;IADvC,IAAA,qBAAU,GAAE;IAOJ,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,6BAA6B,CAAC,CAAA;IAE1D,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,qBAAqB,CAAC,CAAA;IAClD,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,wBAAwB,CAAC,CAAA;IACrD,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,+BAA+B,CAAC,CAAA;IAE5D,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,gBAAgB,CAAC,CAAA;qCALb,6DAA6B;QACuB,6CAAqB;QACzB,mDAAwB;QAE3E,iEAA+B;QAE3C,mCAAgB;GAb7B,2BAA2B,CAwDvC"}
|
|
@@ -3,9 +3,9 @@ import { MeasurementRepository } from "../../repositories/MeasurementRepository"
|
|
|
3
3
|
import { StaticMeterSettingsRepository } from "../../repositories/StaticMeterSettingsRepository";
|
|
4
4
|
import { PtasWebMeasurementTransformation } from "../../transformations/PtasWebMeasurementTransformation";
|
|
5
5
|
import { IPtasWebScrapingInput } from "../../../../schema-definitions/datasources/interfaces/PtasWebScrapingInput";
|
|
6
|
+
import { ILogger } from "@golemio/core/dist/helpers/logger";
|
|
6
7
|
import { AbstractTaskJsonSchema } from "@golemio/core/dist/integration-engine/workers/AbstractTaskJsonSchema";
|
|
7
8
|
import { JSONSchemaValidator } from "@golemio/core/dist/shared/golemio-validator";
|
|
8
|
-
import { ILogger } from "@golemio/core/dist/helpers/logger";
|
|
9
9
|
export declare class FetchPtasWebScrapedMeasurementsTask extends AbstractTaskJsonSchema<IPtasWebScrapingInput> {
|
|
10
10
|
private logger;
|
|
11
11
|
private meterSettingsRepository;
|
|
@@ -17,4 +17,5 @@ export declare class FetchPtasWebScrapedMeasurementsTask extends AbstractTaskJso
|
|
|
17
17
|
readonly queueTtl: number;
|
|
18
18
|
constructor(logger: ILogger, meterSettingsRepository: StaticMeterSettingsRepository, measurementRepository: MeasurementRepository, transformation: PtasWebMeasurementTransformation, helper: PreElectroHelper);
|
|
19
19
|
protected execute(data: IPtasWebScrapingInput): Promise<void>;
|
|
20
|
+
private handleDuplicates;
|
|
20
21
|
}
|
|
@@ -24,6 +24,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
24
24
|
exports.FetchPtasWebScrapedMeasurementsTask = void 0;
|
|
25
25
|
const constants_1 = require("../../constants");
|
|
26
26
|
const PreElectroHelper_1 = require("../../datasources/pre-elektro-api/helpers/PreElectroHelper");
|
|
27
|
+
const MeasurementsDataNormalizer_1 = require("../../helper/MeasurementsDataNormalizer");
|
|
27
28
|
const WorkerContainerToken_1 = require("../../ioc/WorkerContainerToken");
|
|
28
29
|
const MeasurementRepository_1 = require("../../repositories/MeasurementRepository");
|
|
29
30
|
const StaticMeterSettingsRepository_1 = require("../../repositories/StaticMeterSettingsRepository");
|
|
@@ -31,11 +32,11 @@ const PtasWebMeasurementTransformation_1 = require("../../transformations/PtasWe
|
|
|
31
32
|
const PtasWebScrapingJsonSchema_1 = require("../../../../schema-definitions/datasources/PtasWebScrapingJsonSchema");
|
|
32
33
|
const CommodityProviderTypeEnum_1 = require("../../../../schema-definitions/models/helpers/CommodityProviderTypeEnum");
|
|
33
34
|
const StaticDataResourceTypeEnum_1 = require("../../../../schema-definitions/models/helpers/StaticDataResourceTypeEnum");
|
|
35
|
+
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
34
36
|
const AbstractTaskJsonSchema_1 = require("@golemio/core/dist/integration-engine/workers/AbstractTaskJsonSchema");
|
|
35
37
|
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
36
38
|
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
37
39
|
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
38
|
-
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
39
40
|
let FetchPtasWebScrapedMeasurementsTask = exports.FetchPtasWebScrapedMeasurementsTask = class FetchPtasWebScrapedMeasurementsTask extends AbstractTaskJsonSchema_1.AbstractTaskJsonSchema {
|
|
40
41
|
constructor(logger, meterSettingsRepository, measurementRepository, transformation, helper) {
|
|
41
42
|
super(constants_1.WORKER_NAME);
|
|
@@ -54,9 +55,10 @@ let FetchPtasWebScrapedMeasurementsTask = exports.FetchPtasWebScrapedMeasurement
|
|
|
54
55
|
if (!measurementOptions) {
|
|
55
56
|
throw new golemio_errors_1.GeneralError("Measurement options not found", this.constructor.name);
|
|
56
57
|
}
|
|
57
|
-
const batch = [];
|
|
58
58
|
//podle původního scraperu z C# bereme pouze teplo horké vody
|
|
59
|
-
|
|
59
|
+
let hotWaterMeasurements = data.measurements.filter((item) => item["Druh registru"] === "Teplo horké vody");
|
|
60
|
+
hotWaterMeasurements = this.handleDuplicates(data["placeId"], hotWaterMeasurements);
|
|
61
|
+
let batch = [];
|
|
60
62
|
for (const measurement of hotWaterMeasurements) {
|
|
61
63
|
const option = measurementOptions.find((item) => item.Meter === data["placeId"]);
|
|
62
64
|
if (!option) {
|
|
@@ -66,9 +68,22 @@ let FetchPtasWebScrapedMeasurementsTask = exports.FetchPtasWebScrapedMeasurement
|
|
|
66
68
|
const consumptionData = this.transformation.transformElement({ option, measurement });
|
|
67
69
|
batch.push(consumptionData);
|
|
68
70
|
}
|
|
71
|
+
batch = MeasurementsDataNormalizer_1.MeasurementsDataNormalizer.filter(batch);
|
|
69
72
|
yield this.measurementRepository.bulkSave(batch);
|
|
70
73
|
});
|
|
71
74
|
}
|
|
75
|
+
// temporary solution to finish project "převzetí energetické databáze"
|
|
76
|
+
handleDuplicates(placeId, measurements) {
|
|
77
|
+
if (placeId === "3050028") {
|
|
78
|
+
return measurements.filter((item) => item["Výrobní číslo"] === "69112600");
|
|
79
|
+
}
|
|
80
|
+
// create list of unique item["Výrobní číslo"]
|
|
81
|
+
const uniqueSerialNumbers = Array.from(new Set(measurements.map((item) => item["Výrobní číslo"])));
|
|
82
|
+
if (uniqueSerialNumbers.length > 1) {
|
|
83
|
+
this.logger.warn(`Ptas integration found multiple serial numbers for placeId ${placeId}.`);
|
|
84
|
+
}
|
|
85
|
+
return measurements;
|
|
86
|
+
}
|
|
72
87
|
};
|
|
73
88
|
exports.FetchPtasWebScrapedMeasurementsTask = FetchPtasWebScrapedMeasurementsTask = __decorate([
|
|
74
89
|
(0, tsyringe_1.injectable)(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FetchPtasWebScrapedMeasurementsTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/tasks/FetchPtasWebScrapedMeasurementsTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgE;AAChE,iGAAgH;AAChH,yEAAwF;AACxF,oFAAmG;AACnG,oGAAmH;AACnH,6GAA4H;AAC5H,oHAAuF;AAGvF,uHAAsF;AACtF,yHAAwF;AACxF,iHAA8G;AAC9G,6EAAwE;AACxE,mFAAkF;AAClF,iEAAwE;
|
|
1
|
+
{"version":3,"file":"FetchPtasWebScrapedMeasurementsTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/tasks/FetchPtasWebScrapedMeasurementsTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,20 +72,18 @@ let MeasurementRepository = exports.MeasurementRepository = class MeasurementRep
|
|
|
72
72
|
getMonthlyReadings(options, allowedOrganizations) {
|
|
73
73
|
return __awaiter(this, void 0, void 0, function* () {
|
|
74
74
|
try {
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
return yield this.sequelizeModel.findAll({
|
|
84
|
-
attributes: [[(0, sequelize_1.fn)("SUM", (0, sequelize_1.col)("value")), "value"], "meter", "type", "addr", "var"],
|
|
85
|
-
where,
|
|
75
|
+
const result = yield this.sequelizeModel.sequelize.query(`SELECT * from ${constants_1.PG_SCHEMA}.monthly_report($address, $variable, $date_from, $date_to, $org_ids);`, {
|
|
76
|
+
bind: {
|
|
77
|
+
address: options.address,
|
|
78
|
+
variable: options.variable,
|
|
79
|
+
date_from: options.from,
|
|
80
|
+
date_to: options.to,
|
|
81
|
+
org_ids: allowedOrganizations ? allowedOrganizations.join(",") : null,
|
|
82
|
+
},
|
|
86
83
|
raw: true,
|
|
87
|
-
|
|
84
|
+
type: sequelize_1.QueryTypes.SELECT,
|
|
88
85
|
});
|
|
86
|
+
return result;
|
|
89
87
|
}
|
|
90
88
|
catch (err) {
|
|
91
89
|
throw new golemio_errors_1.GeneralError("MeasurementsRepository error - getMonthlyReadings", this.name, err, 500);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeasurementRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/repositories/MeasurementRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,mDAAwC;AACxC,sEAAmE;AACnE,
|
|
1
|
+
{"version":3,"file":"MeasurementRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/repositories/MeasurementRepository.ts"],"names":[],"mappings":"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"}
|