@golemio/energetics 1.14.0 → 1.15.0-dev.2817183709
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/00_clear_test_data.sql +1 -0
- package/db/example/10_enapo_budova_spotrebic.sql +14 -0
- package/db/migrations/postgresql/20260821090000-enapo-gid-mapping-sync-comment.js +53 -0
- package/db/migrations/postgresql/20260827090000-enapo-gid-mapping-pk.js +53 -0
- package/db/migrations/postgresql/20260901090000-enapo-budova-spotrebic.js +53 -0
- package/db/migrations/postgresql/sqls/20260821090000-enapo-gid-mapping-sync-comment-down.sql +3 -0
- package/db/migrations/postgresql/sqls/20260821090000-enapo-gid-mapping-sync-comment-up.sql +4 -0
- package/db/migrations/postgresql/sqls/20260827090000-enapo-gid-mapping-pk-down.sql +4 -0
- package/db/migrations/postgresql/sqls/20260827090000-enapo-gid-mapping-pk-up.sql +17 -0
- package/db/migrations/postgresql/sqls/20260901090000-enapo-budova-spotrebic-down.sql +1 -0
- package/db/migrations/postgresql/sqls/20260901090000-enapo-budova-spotrebic-up.sql +20 -0
- package/db/scripts/ded_gid_mapping_mock_import.sql +4 -1
- package/dist/integration-engine/enapo/datasources/gid-mapping/EnapoGidMappingDataSource.d.ts +14 -0
- package/dist/integration-engine/enapo/datasources/gid-mapping/EnapoGidMappingDataSource.js +56 -0
- package/dist/integration-engine/enapo/datasources/gid-mapping/EnapoGidMappingDataSource.js.map +1 -0
- package/dist/integration-engine/enapo/helpers/EnapoGidMappingNormalizer.d.ts +43 -0
- package/dist/integration-engine/enapo/helpers/EnapoGidMappingNormalizer.js +193 -0
- package/dist/integration-engine/enapo/helpers/EnapoGidMappingNormalizer.js.map +1 -0
- package/dist/integration-engine/enapo/ioc/Di.js +11 -3
- package/dist/integration-engine/enapo/ioc/Di.js.map +1 -1
- package/dist/integration-engine/enapo/ioc/EnapoWorkerContainerToken.d.ts +4 -0
- package/dist/integration-engine/enapo/ioc/EnapoWorkerContainerToken.js +4 -0
- package/dist/integration-engine/enapo/ioc/EnapoWorkerContainerToken.js.map +1 -1
- package/dist/integration-engine/enapo/repositories/EnapoGidMappingRepository.d.ts +13 -0
- package/dist/integration-engine/enapo/repositories/EnapoGidMappingRepository.js +42 -0
- package/dist/integration-engine/enapo/repositories/EnapoGidMappingRepository.js.map +1 -0
- package/dist/integration-engine/enapo/workers/EnapoWorker.js +1 -0
- package/dist/integration-engine/enapo/workers/EnapoWorker.js.map +1 -1
- package/dist/integration-engine/enapo/workers/task/EnapoGidMappingSyncTask.d.ts +45 -0
- package/dist/integration-engine/enapo/workers/task/EnapoGidMappingSyncTask.js +121 -0
- package/dist/integration-engine/enapo/workers/task/EnapoGidMappingSyncTask.js.map +1 -0
- package/dist/output-gateway/repositories/EnoBuildingDetailRepository.d.ts +1 -0
- package/dist/output-gateway/repositories/EnoBuildingDetailRepository.js +10 -2
- package/dist/output-gateway/repositories/EnoBuildingDetailRepository.js.map +1 -1
- package/dist/output-gateway/repositories/EnoBuildingHeatSourcesRepository.d.ts +8 -0
- package/dist/output-gateway/repositories/EnoBuildingHeatSourcesRepository.js +51 -0
- package/dist/output-gateway/repositories/EnoBuildingHeatSourcesRepository.js.map +1 -0
- package/dist/output-gateway/repositories/interfaces/IEnoBuildingDetailAggregate.d.ts +2 -0
- package/dist/output-gateway/routers/interfaces/IEnoBuildingDetailResponse.d.ts +15 -0
- package/dist/output-gateway/routers/v2/V2EnoBuildingsRouter.js +1 -1
- package/dist/output-gateway/routers/v2/V2EnoBuildingsRouter.js.map +1 -1
- package/dist/output-gateway/transformations/EnoBuildingDetailTransformation.d.ts +1 -0
- package/dist/output-gateway/transformations/EnoBuildingDetailTransformation.js +17 -0
- package/dist/output-gateway/transformations/EnoBuildingDetailTransformation.js.map +1 -1
- package/dist/schema-definitions/datasources/enapo/gid-mapping/EnapoGidMappingCsvSchema.d.ts +3 -0
- package/dist/schema-definitions/datasources/enapo/gid-mapping/EnapoGidMappingCsvSchema.js +23 -0
- package/dist/schema-definitions/datasources/enapo/gid-mapping/EnapoGidMappingCsvSchema.js.map +1 -0
- package/dist/schema-definitions/datasources/enapo/gid-mapping/interfaces/IEnapoGidMappingCsvRow.d.ts +15 -0
- package/dist/schema-definitions/datasources/enapo/gid-mapping/interfaces/IEnapoGidMappingCsvRow.js +3 -0
- package/dist/schema-definitions/datasources/enapo/gid-mapping/interfaces/IEnapoGidMappingCsvRow.js.map +1 -0
- package/dist/schema-definitions/models/enapo/EnapoBudovaSpotrebicModel.d.ts +22 -0
- package/dist/schema-definitions/models/enapo/EnapoBudovaSpotrebicModel.js +58 -0
- package/dist/schema-definitions/models/enapo/EnapoBudovaSpotrebicModel.js.map +1 -0
- package/dist/schema-definitions/models/enapo/EnapoGidMappingModel.js +0 -1
- package/dist/schema-definitions/models/enapo/EnapoGidMappingModel.js.map +1 -1
- package/dist/schema-definitions/models/enapo/interfaces/IEnapoBudovaSpotrebic.d.ts +15 -0
- package/dist/schema-definitions/models/enapo/interfaces/IEnapoBudovaSpotrebic.js +3 -0
- package/dist/schema-definitions/models/enapo/interfaces/IEnapoBudovaSpotrebic.js.map +1 -0
- package/docs/implementation_documentation.md +43 -2
- package/docs/openapi-output.yaml +69 -37
- package/package.json +1 -1
|
@@ -7,10 +7,12 @@ const PpasAveApiDataSourceProvider_1 = require("../../commodity-providers/dataso
|
|
|
7
7
|
const WorkerContainerToken_1 = require("../../commodity-providers/ioc/WorkerContainerToken");
|
|
8
8
|
const Di_1 = require("@golemio/core/dist/integration-engine/ioc/Di");
|
|
9
9
|
const EnoDatasourceFactory_1 = require("../datasources/eno/EnoDatasourceFactory");
|
|
10
|
+
const EnapoGidMappingDataSource_1 = require("../datasources/gid-mapping/EnapoGidMappingDataSource");
|
|
10
11
|
const PorsennaDataSourceProvider_1 = require("../datasources/porsenna/PorsennaDataSourceProvider");
|
|
11
12
|
const PorsennaDataSource_1 = require("../datasources/porsenna/PorsennaDataSource");
|
|
12
13
|
const PpasCommercialDatasource_1 = require("../datasources/ppas/commercial/PpasCommercialDatasource");
|
|
13
14
|
const PpasDistributionDatasource_1 = require("../datasources/ppas/distribution/PpasDistributionDatasource");
|
|
15
|
+
const EnapoGidMappingRepository_1 = require("../repositories/EnapoGidMappingRepository");
|
|
14
16
|
const EnapoMeasurementsRepository_1 = require("../repositories/EnapoMeasurementsRepository");
|
|
15
17
|
const PreIncomingDataLogRepository_1 = require("../repositories/PreIncomingDataLogRepository");
|
|
16
18
|
const EnoAddressRepository_1 = require("../repositories/eno/EnoAddressRepository");
|
|
@@ -37,6 +39,7 @@ const PpasDistributionInvoiceDeviceRepository_1 = require("../repositories/ppas/
|
|
|
37
39
|
const PpasDistributionInvoiceInstallationRepository_1 = require("../repositories/ppas/PpasDistributionInvoiceInstallationRepository");
|
|
38
40
|
const PpasDistributionInvoicePriceRepository_1 = require("../repositories/ppas/PpasDistributionInvoicePriceRepository");
|
|
39
41
|
const PpasDistributionInvoiceRepository_1 = require("../repositories/ppas/PpasDistributionInvoiceRepository");
|
|
42
|
+
const EnapoGidMappingNormalizer_1 = require("../helpers/EnapoGidMappingNormalizer");
|
|
40
43
|
const PPasMeasurementTransformation_1 = require("../transformations/PPasMeasurementTransformation");
|
|
41
44
|
const EnoEJTransformation_1 = require("../transformations/eno/EnoEJTransformation");
|
|
42
45
|
const EnoManagerTransformation_1 = require("../transformations/eno/EnoManagerTransformation");
|
|
@@ -49,6 +52,7 @@ const PpasDistributionTransformation_1 = require("../transformations/ppas/PpasDi
|
|
|
49
52
|
const PreDailyMeasurementsTransformation_1 = require("../transformations/pre/PreDailyMeasurementsTransformation");
|
|
50
53
|
const PreMeasurementsTransformation_1 = require("../transformations/pre/PreMeasurementsTransformation");
|
|
51
54
|
const PreMetadataTransfromation_1 = require("../transformations/pre/PreMetadataTransfromation");
|
|
55
|
+
const EnapoGidMappingSyncTask_1 = require("../workers/task/EnapoGidMappingSyncTask");
|
|
52
56
|
const EnapoPpasCommercialTask_1 = require("../workers/task/EnapoPpasCommercialTask");
|
|
53
57
|
const EnapoPpasDistributionTask_1 = require("../workers/task/EnapoPpasDistributionTask");
|
|
54
58
|
const EnapoPpasTask_1 = require("../workers/task/EnapoPpasTask");
|
|
@@ -74,6 +78,7 @@ EnapoContainer.registerSingleton(EnapoWorkerContainerToken_1.EnapoWorkerContaine
|
|
|
74
78
|
EnapoContainer.registerSingleton(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoPpasCommercialDatasource, PpasCommercialDatasource_1.PpasCommercialDatasource);
|
|
75
79
|
EnapoContainer.registerSingleton(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PorsennaDatasource, PorsennaDataSource_1.PorsennaDataSource);
|
|
76
80
|
EnapoContainer.registerSingleton(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PorsennaDataSourceProvider, PorsennaDataSourceProvider_1.PorsennaDataSourceProvider);
|
|
81
|
+
EnapoContainer.registerSingleton(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoGidMappingDataSource, EnapoGidMappingDataSource_1.EnapoGidMappingDataSource);
|
|
77
82
|
//#endregion
|
|
78
83
|
//#region Repositories
|
|
79
84
|
EnapoContainer.register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoMeasurementsRepository, EnapoMeasurementsRepository_1.EnapoMeasurementsRepository)
|
|
@@ -101,7 +106,8 @@ EnapoContainer.register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.En
|
|
|
101
106
|
.register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PpasCommercialInvoicePriceRepository, PpasCommercialInvoicePriceRepository_1.PpasCommercialInvoicePriceRepository)
|
|
102
107
|
.register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PorsennaBuildingsRepository, PorsennaBuildingsRepository_1.PorsennaBuildingsRepository)
|
|
103
108
|
.register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PorsennaConsumptionRepository, PorsennaConsumptionRepository_1.PorsennaConsumptionRepository)
|
|
104
|
-
.register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PorsennaDevicesRepository, PorsennaDevicesRepository_1.PorsennaDevicesRepository)
|
|
109
|
+
.register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PorsennaDevicesRepository, PorsennaDevicesRepository_1.PorsennaDevicesRepository)
|
|
110
|
+
.register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoGidMappingRepository, EnapoGidMappingRepository_1.EnapoGidMappingRepository);
|
|
105
111
|
//#endregion
|
|
106
112
|
//#region Transformation
|
|
107
113
|
EnapoContainer.registerSingleton(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PPasMeasurementTransformation, PPasMeasurementTransformation_1.PPasMeasurementTransformation);
|
|
@@ -115,7 +121,8 @@ EnapoContainer.registerSingleton(EnapoWorkerContainerToken_1.EnapoWorkerContaine
|
|
|
115
121
|
.registerSingleton(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PpasDistributionTransformation, PpasDistributionTransformation_1.PpasDistributionTransformation)
|
|
116
122
|
.registerSingleton(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PpasCommercialTransformation, PpasCommercialTransformation_1.PpasCommercialTransformation)
|
|
117
123
|
.registerSingleton(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PorsennaGaugeTransformation, PorsennaGaugeTransformation_1.PorsennaGaugeTransformation)
|
|
118
|
-
.registerSingleton(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PorsennaConsumptionTransformation, PorsennaConsumptionTransformation_1.PorsennaConsumptionTransformation)
|
|
124
|
+
.registerSingleton(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PorsennaConsumptionTransformation, PorsennaConsumptionTransformation_1.PorsennaConsumptionTransformation)
|
|
125
|
+
.registerSingleton(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoGidMappingNormalizer, EnapoGidMappingNormalizer_1.EnapoGidMappingNormalizer);
|
|
119
126
|
//#endregion
|
|
120
127
|
//#region Tasks
|
|
121
128
|
EnapoContainer.register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoPpasTask, EnapoPpasTask_1.EnapoPpasTask);
|
|
@@ -128,5 +135,6 @@ EnapoContainer.register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.En
|
|
|
128
135
|
.register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoPpasCommercialTask, EnapoPpasCommercialTask_1.EnapoPpasCommercialTask)
|
|
129
136
|
.register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PorsennaDistributionTask, PorsennaDistributionTask_1.PorsennaDistributionTask)
|
|
130
137
|
.register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.DedSearchIndexRefreshTask, DedSearchIndexRefreshTask_1.DedSearchIndexRefreshTask)
|
|
131
|
-
.register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoConsumptionHistoryRefreshTask, EnapoConsumptionHistoryRefreshTask_1.EnapoConsumptionHistoryRefreshTask)
|
|
138
|
+
.register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoConsumptionHistoryRefreshTask, EnapoConsumptionHistoryRefreshTask_1.EnapoConsumptionHistoryRefreshTask)
|
|
139
|
+
.register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoGidMappingSyncTask, EnapoGidMappingSyncTask_1.EnapoGidMappingSyncTask);
|
|
132
140
|
//# sourceMappingURL=Di.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/enapo/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,iIAA4H;AAC5H,qHAAgH;AAChH,kIAA6H;AAC7H,6FAAwF;AACxF,qEAA0F;AAE1F,kFAA+E;AAC/E,mGAAgG;AAChG,mFAAgF;AAChF,sGAAmG;AACnG,4GAAyG;AACzG,6FAA0F;AAC1F,+FAA4F;AAC5F,mFAAgF;AAChF,qFAAkF;AAClF,yEAAsE;AACtE,qFAAkF;AAClF,uFAAoF;AACpF,mHAAgH;AAChH,qFAAkF;AAClF,mFAAgF;AAChF,6FAA0F;AAC1F,qFAAkF;AAClF,yFAAsF;AACtF,uFAAoF;AACpF,+FAA4F;AAC5F,sGAAmG;AACnG,0GAAuG;AACvG,kGAA+F;AAC/F,sHAAmH;AACnH,kIAA+H;AAC/H,oHAAiH;AACjH,0GAAuG;AACvG,0HAAuH;AACvH,sIAAmI;AACnI,wHAAqH;AACrH,8GAA2G;AAC3G,oGAAiG;AACjG,oFAAiF;AACjF,8FAA2F;AAC3F,wGAAqG;AACrG,0GAAuG;AACvG,qHAAkH;AAClH,yGAAsG;AACtG,uGAAoG;AACpG,2GAAwG;AACxG,kHAA+G;AAC/G,wGAAqG;AACrG,gGAA6F;AAC7F,qFAAkF;AAClF,yFAAsF;AACtF,iEAA8D;AAC9D,mEAAgE;AAChE,qEAAkE;AAClE,qEAAkE;AAClE,yFAAsF;AACtF,2GAAwG;AACxG,iEAA8D;AAC9D,uEAAoE;AACpE,uFAAoF;AACpF,2EAAwE;AAExE,wBAAwB;AACxB,MAAM,cAAc,GAAwB,+BAA0B,CAAC,oBAAoB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/enapo/ioc/Di.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ declare const EnapoWorkerContainerToken: {
|
|
|
4
4
|
EnapoPpasCommercialDatasource: symbol;
|
|
5
5
|
PorsennaDatasource: symbol;
|
|
6
6
|
PorsennaDataSourceProvider: symbol;
|
|
7
|
+
EnapoGidMappingDataSource: symbol;
|
|
7
8
|
EnapoMeasurementsRepository: symbol;
|
|
8
9
|
EnapoMetadataRepository: symbol;
|
|
9
10
|
PreIncomingDataLogRepository: symbol;
|
|
@@ -18,6 +19,7 @@ declare const EnapoWorkerContainerToken: {
|
|
|
18
19
|
PorsennaBuildingsRepository: symbol;
|
|
19
20
|
PorsennaConsumptionRepository: symbol;
|
|
20
21
|
PorsennaDevicesRepository: symbol;
|
|
22
|
+
EnapoGidMappingRepository: symbol;
|
|
21
23
|
PPasMeasurementTransformation: symbol;
|
|
22
24
|
PreMeasurementsTransformation: symbol;
|
|
23
25
|
PreDailyMeasurementsTransformation: symbol;
|
|
@@ -26,11 +28,13 @@ declare const EnapoWorkerContainerToken: {
|
|
|
26
28
|
PpasCommercialTransformation: symbol;
|
|
27
29
|
PorsennaGaugeTransformation: symbol;
|
|
28
30
|
PorsennaConsumptionTransformation: symbol;
|
|
31
|
+
EnapoGidMappingNormalizer: symbol;
|
|
29
32
|
EnapoPpasTask: symbol;
|
|
30
33
|
EnapoPrediTask: symbol;
|
|
31
34
|
EnapoPpasDistributionTask: symbol;
|
|
32
35
|
EnapoPpasCommercialTask: symbol;
|
|
33
36
|
PorsennaDistributionTask: symbol;
|
|
37
|
+
EnapoGidMappingSyncTask: symbol;
|
|
34
38
|
EnoDatasourceFactory: symbol;
|
|
35
39
|
EnoStructureTypeTransformation: symbol;
|
|
36
40
|
EnoOrganizationTransformation: symbol;
|
|
@@ -8,6 +8,7 @@ const EnapoWorkerContainerToken = {
|
|
|
8
8
|
EnapoPpasCommercialDatasource: Symbol(),
|
|
9
9
|
PorsennaDatasource: Symbol(),
|
|
10
10
|
PorsennaDataSourceProvider: Symbol(),
|
|
11
|
+
EnapoGidMappingDataSource: Symbol(),
|
|
11
12
|
//#endregion
|
|
12
13
|
//#region Repositories
|
|
13
14
|
EnapoMeasurementsRepository: Symbol(),
|
|
@@ -24,6 +25,7 @@ const EnapoWorkerContainerToken = {
|
|
|
24
25
|
PorsennaBuildingsRepository: Symbol(),
|
|
25
26
|
PorsennaConsumptionRepository: Symbol(),
|
|
26
27
|
PorsennaDevicesRepository: Symbol(),
|
|
28
|
+
EnapoGidMappingRepository: Symbol(),
|
|
27
29
|
//#endregion
|
|
28
30
|
//#region Transformations
|
|
29
31
|
PPasMeasurementTransformation: Symbol(),
|
|
@@ -34,6 +36,7 @@ const EnapoWorkerContainerToken = {
|
|
|
34
36
|
PpasCommercialTransformation: Symbol(),
|
|
35
37
|
PorsennaGaugeTransformation: Symbol(),
|
|
36
38
|
PorsennaConsumptionTransformation: Symbol(),
|
|
39
|
+
EnapoGidMappingNormalizer: Symbol(),
|
|
37
40
|
//#endregion
|
|
38
41
|
//#region Tasks
|
|
39
42
|
EnapoPpasTask: Symbol(),
|
|
@@ -41,6 +44,7 @@ const EnapoWorkerContainerToken = {
|
|
|
41
44
|
EnapoPpasDistributionTask: Symbol(),
|
|
42
45
|
EnapoPpasCommercialTask: Symbol(),
|
|
43
46
|
PorsennaDistributionTask: Symbol(),
|
|
47
|
+
EnapoGidMappingSyncTask: Symbol(),
|
|
44
48
|
//#endregion
|
|
45
49
|
//#region Eno
|
|
46
50
|
EnoDatasourceFactory: Symbol(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnapoWorkerContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/enapo/ioc/EnapoWorkerContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,yBAAyB,GAAG;IAC9B,oBAAoB;IACpB,kCAAkC,EAAE,MAAM,EAAE;IAC5C,+BAA+B,EAAE,MAAM,EAAE;IACzC,6BAA6B,EAAE,MAAM,EAAE;IACvC,kBAAkB,EAAE,MAAM,EAAE;IAC5B,0BAA0B,EAAE,MAAM,EAAE;IACpC,YAAY;IAEZ,sBAAsB;IACtB,2BAA2B,EAAE,MAAM,EAAE;IACrC,uBAAuB,EAAE,MAAM,EAAE;IACjC,4BAA4B,EAAE,MAAM,EAAE;IACtC,uCAAuC,EAAE,MAAM,EAAE;IACjD,6CAA6C,EAAE,MAAM,EAAE;IACvD,sCAAsC,EAAE,MAAM,EAAE;IAChD,iCAAiC,EAAE,MAAM,EAAE;IAC3C,+BAA+B,EAAE,MAAM,EAAE;IACzC,2CAA2C,EAAE,MAAM,EAAE;IACrD,qCAAqC,EAAE,MAAM,EAAE;IAC/C,oCAAoC,EAAE,MAAM,EAAE;IAC9C,2BAA2B,EAAE,MAAM,EAAE;IACrC,6BAA6B,EAAE,MAAM,EAAE;IACvC,yBAAyB,EAAE,MAAM,EAAE;IACnC,YAAY;IAEZ,yBAAyB;IACzB,6BAA6B,EAAE,MAAM,EAAE;IACvC,6BAA6B,EAAE,MAAM,EAAE;IACvC,kCAAkC,EAAE,MAAM,EAAE;IAC5C,yBAAyB,EAAE,MAAM,EAAE;IACnC,8BAA8B,EAAE,MAAM,EAAE;IACxC,4BAA4B,EAAE,MAAM,EAAE;IACtC,2BAA2B,EAAE,MAAM,EAAE;IACrC,iCAAiC,EAAE,MAAM,EAAE;IAC3C,YAAY;IAEZ,eAAe;IACf,aAAa,EAAE,MAAM,EAAE;IACvB,cAAc,EAAE,MAAM,EAAE;IACxB,yBAAyB,EAAE,MAAM,EAAE;IACnC,uBAAuB,EAAE,MAAM,EAAE;IACjC,wBAAwB,EAAE,MAAM,EAAE;IAClC,YAAY;IAEZ,aAAa;IACb,oBAAoB,EAAE,MAAM,EAAE;IAE9B,8BAA8B,EAAE,MAAM,EAAE;IACxC,6BAA6B,EAAE,MAAM,EAAE;IACvC,wBAAwB,EAAE,MAAM,EAAE;IAClC,mBAAmB,EAAE,MAAM,EAAE;IAE7B,0BAA0B,EAAE,MAAM,EAAE;IACpC,yBAAyB,EAAE,MAAM,EAAE;IACnC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,eAAe,EAAE,MAAM,EAAE;IACzB,qBAAqB,EAAE,MAAM,EAAE;IAC/B,oBAAoB,EAAE,MAAM,EAAE;IAC9B,qBAAqB,EAAE,MAAM,EAAE;IAC/B,qBAAqB,EAAE,MAAM,EAAE;IAC/B,uBAAuB,EAAE,MAAM,EAAE;IACjC,sBAAsB,EAAE,MAAM,EAAE;IAChC,qBAAqB,EAAE,MAAM,EAAE;IAC/B,wBAAwB,EAAE,MAAM,EAAE;IAClC,sCAAsC,EAAE,MAAM,EAAE;IAEhD,aAAa,EAAE,MAAM,EAAE;IACvB,eAAe,EAAE,MAAM,EAAE;IACzB,gBAAgB,EAAE,MAAM,EAAE;IAC1B,eAAe,EAAE,MAAM,EAAE;IACzB,yBAAyB,EAAE,MAAM,EAAE;IACnC,kCAAkC,EAAE,MAAM,EAAE;IAC5C,YAAY;CACf,CAAC;AAEO,8DAAyB"}
|
|
1
|
+
{"version":3,"file":"EnapoWorkerContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/enapo/ioc/EnapoWorkerContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,yBAAyB,GAAG;IAC9B,oBAAoB;IACpB,kCAAkC,EAAE,MAAM,EAAE;IAC5C,+BAA+B,EAAE,MAAM,EAAE;IACzC,6BAA6B,EAAE,MAAM,EAAE;IACvC,kBAAkB,EAAE,MAAM,EAAE;IAC5B,0BAA0B,EAAE,MAAM,EAAE;IACpC,yBAAyB,EAAE,MAAM,EAAE;IACnC,YAAY;IAEZ,sBAAsB;IACtB,2BAA2B,EAAE,MAAM,EAAE;IACrC,uBAAuB,EAAE,MAAM,EAAE;IACjC,4BAA4B,EAAE,MAAM,EAAE;IACtC,uCAAuC,EAAE,MAAM,EAAE;IACjD,6CAA6C,EAAE,MAAM,EAAE;IACvD,sCAAsC,EAAE,MAAM,EAAE;IAChD,iCAAiC,EAAE,MAAM,EAAE;IAC3C,+BAA+B,EAAE,MAAM,EAAE;IACzC,2CAA2C,EAAE,MAAM,EAAE;IACrD,qCAAqC,EAAE,MAAM,EAAE;IAC/C,oCAAoC,EAAE,MAAM,EAAE;IAC9C,2BAA2B,EAAE,MAAM,EAAE;IACrC,6BAA6B,EAAE,MAAM,EAAE;IACvC,yBAAyB,EAAE,MAAM,EAAE;IACnC,yBAAyB,EAAE,MAAM,EAAE;IACnC,YAAY;IAEZ,yBAAyB;IACzB,6BAA6B,EAAE,MAAM,EAAE;IACvC,6BAA6B,EAAE,MAAM,EAAE;IACvC,kCAAkC,EAAE,MAAM,EAAE;IAC5C,yBAAyB,EAAE,MAAM,EAAE;IACnC,8BAA8B,EAAE,MAAM,EAAE;IACxC,4BAA4B,EAAE,MAAM,EAAE;IACtC,2BAA2B,EAAE,MAAM,EAAE;IACrC,iCAAiC,EAAE,MAAM,EAAE;IAC3C,yBAAyB,EAAE,MAAM,EAAE;IACnC,YAAY;IAEZ,eAAe;IACf,aAAa,EAAE,MAAM,EAAE;IACvB,cAAc,EAAE,MAAM,EAAE;IACxB,yBAAyB,EAAE,MAAM,EAAE;IACnC,uBAAuB,EAAE,MAAM,EAAE;IACjC,wBAAwB,EAAE,MAAM,EAAE;IAClC,uBAAuB,EAAE,MAAM,EAAE;IACjC,YAAY;IAEZ,aAAa;IACb,oBAAoB,EAAE,MAAM,EAAE;IAE9B,8BAA8B,EAAE,MAAM,EAAE;IACxC,6BAA6B,EAAE,MAAM,EAAE;IACvC,wBAAwB,EAAE,MAAM,EAAE;IAClC,mBAAmB,EAAE,MAAM,EAAE;IAE7B,0BAA0B,EAAE,MAAM,EAAE;IACpC,yBAAyB,EAAE,MAAM,EAAE;IACnC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,eAAe,EAAE,MAAM,EAAE;IACzB,qBAAqB,EAAE,MAAM,EAAE;IAC/B,oBAAoB,EAAE,MAAM,EAAE;IAC9B,qBAAqB,EAAE,MAAM,EAAE;IAC/B,qBAAqB,EAAE,MAAM,EAAE;IAC/B,uBAAuB,EAAE,MAAM,EAAE;IACjC,sBAAsB,EAAE,MAAM,EAAE;IAChC,qBAAqB,EAAE,MAAM,EAAE;IAC/B,wBAAwB,EAAE,MAAM,EAAE;IAClC,sCAAsC,EAAE,MAAM,EAAE;IAEhD,aAAa,EAAE,MAAM,EAAE;IACvB,eAAe,EAAE,MAAM,EAAE;IACzB,gBAAgB,EAAE,MAAM,EAAE;IAC1B,eAAe,EAAE,MAAM,EAAE;IACzB,yBAAyB,EAAE,MAAM,EAAE;IACnC,kCAAkC,EAAE,MAAM,EAAE;IAC5C,YAAY;CACf,CAAC;AAEO,8DAAyB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IModel } from "@golemio/core/dist/integration-engine/models/IModel";
|
|
2
|
+
import { PostgresModel } from "@golemio/core/dist/integration-engine/models/PostgresModel";
|
|
3
|
+
/**
|
|
4
|
+
* Writes the ded_gid_mapping rows into energetics.enapo_gid_mapping. Uses insertOrUpdate so a run only
|
|
5
|
+
* ever inserts new mappings or updates existing ones (keyed on place_id + gid) and never deletes: a
|
|
6
|
+
* mapping that disappears from a later export stays in the table, and re-running over the same input is
|
|
7
|
+
* idempotent.
|
|
8
|
+
*/
|
|
9
|
+
export declare class EnapoGidMappingRepository extends PostgresModel implements IModel {
|
|
10
|
+
static REPOSITORY_NAME: string;
|
|
11
|
+
static JSON_SCHEMA_VALIDATOR_NAME: string;
|
|
12
|
+
constructor();
|
|
13
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var EnapoGidMappingRepository_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.EnapoGidMappingRepository = void 0;
|
|
14
|
+
const _sch_1 = require("../../../schema-definitions");
|
|
15
|
+
const EnapoGidMappingModel_1 = require("../../../schema-definitions/models/enapo/EnapoGidMappingModel");
|
|
16
|
+
const PostgresModel_1 = require("@golemio/core/dist/integration-engine/models/PostgresModel");
|
|
17
|
+
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
18
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
19
|
+
/**
|
|
20
|
+
* Writes the ded_gid_mapping rows into energetics.enapo_gid_mapping. Uses insertOrUpdate so a run only
|
|
21
|
+
* ever inserts new mappings or updates existing ones (keyed on place_id + gid) and never deletes: a
|
|
22
|
+
* mapping that disappears from a later export stays in the table, and re-running over the same input is
|
|
23
|
+
* idempotent.
|
|
24
|
+
*/
|
|
25
|
+
let EnapoGidMappingRepository = EnapoGidMappingRepository_1 = class EnapoGidMappingRepository extends PostgresModel_1.PostgresModel {
|
|
26
|
+
constructor() {
|
|
27
|
+
super(EnapoGidMappingRepository_1.REPOSITORY_NAME, {
|
|
28
|
+
pgTableName: EnapoGidMappingModel_1.EnapoGidMappingModel.TABLE_NAME,
|
|
29
|
+
pgSchema: _sch_1.EnergeticsSchema.pgSchema,
|
|
30
|
+
outputSequelizeAttributes: EnapoGidMappingModel_1.EnapoGidMappingModel.attributeModel,
|
|
31
|
+
savingType: "insertOrUpdate",
|
|
32
|
+
}, new golemio_validator_1.JSONSchemaValidator(EnapoGidMappingRepository_1.JSON_SCHEMA_VALIDATOR_NAME, EnapoGidMappingModel_1.EnapoGidMappingModel.jsonSchema));
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
exports.EnapoGidMappingRepository = EnapoGidMappingRepository;
|
|
36
|
+
EnapoGidMappingRepository.REPOSITORY_NAME = "EnapoGidMappingRepository";
|
|
37
|
+
EnapoGidMappingRepository.JSON_SCHEMA_VALIDATOR_NAME = "EnapoGidMappingRepositoryValidator";
|
|
38
|
+
exports.EnapoGidMappingRepository = EnapoGidMappingRepository = EnapoGidMappingRepository_1 = __decorate([
|
|
39
|
+
(0, tsyringe_1.injectable)(),
|
|
40
|
+
__metadata("design:paramtypes", [])
|
|
41
|
+
], EnapoGidMappingRepository);
|
|
42
|
+
//# sourceMappingURL=EnapoGidMappingRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnapoGidMappingRepository.js","sourceRoot":"","sources":["../../../../src/integration-engine/enapo/repositories/EnapoGidMappingRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,sDAAwC;AACxC,wGAA8E;AAE9E,8FAA2F;AAC3F,mFAAkF;AAClF,iEAAgE;AAEhE;;;;;GAKG;AAEI,IAAM,yBAAyB,iCAA/B,MAAM,yBAA0B,SAAQ,6BAAa;IAIxD;QACI,KAAK,CACD,2BAAyB,CAAC,eAAe,EACzC;YACI,WAAW,EAAE,2CAAoB,CAAC,UAAU;YAC5C,QAAQ,EAAE,uBAAgB,CAAC,QAAQ;YACnC,yBAAyB,EAAE,2CAAoB,CAAC,cAAc;YAC9D,UAAU,EAAE,gBAAgB;SAC/B,EACD,IAAI,uCAAmB,CAAC,2BAAyB,CAAC,0BAA0B,EAAE,2CAAoB,CAAC,UAAU,CAAC,CACjH,CAAC;IACN,CAAC;;AAfQ,8DAAyB;AACpB,yCAAe,GAAG,2BAA2B,AAA9B,CAA+B;AAC9C,oDAA0B,GAAG,oCAAoC,AAAvC,CAAwC;oCAFvE,yBAAyB;IADrC,IAAA,qBAAU,GAAE;;GACA,yBAAyB,CAgBrC"}
|
|
@@ -25,6 +25,7 @@ class EnapoWorker extends integration_engine_1.AbstractWorker {
|
|
|
25
25
|
this.registerTask(Di_1.EnapoContainer.resolve(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PorsennaDistributionTask));
|
|
26
26
|
this.registerTask(Di_1.EnapoContainer.resolve(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.DedSearchIndexRefreshTask));
|
|
27
27
|
this.registerTask(Di_1.EnapoContainer.resolve(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoConsumptionHistoryRefreshTask));
|
|
28
|
+
this.registerTask(Di_1.EnapoContainer.resolve(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoGidMappingSyncTask));
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
31
|
exports.EnapoWorker = EnapoWorker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnapoWorker.js","sourceRoot":"","sources":["../../../../src/integration-engine/enapo/workers/EnapoWorker.ts"],"names":[],"mappings":";;;AAAA,8EAAuE;AAEvE,4CAAiD;AACjD,kCAA2C;AAC3C,gFAA6E;AAE7E,MAAa,WAAY,SAAQ,mCAAc;IAG3C;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,6BAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"EnapoWorker.js","sourceRoot":"","sources":["../../../../src/integration-engine/enapo/workers/EnapoWorker.ts"],"names":[],"mappings":";;;AAAA,8EAAuE;AAEvE,4CAAiD;AACjD,kCAA2C;AAC3C,gFAA6E;AAE7E,MAAa,WAAY,SAAQ,mCAAc;IAG3C;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,6BAAiB,CAAC;QAoB5B,iBAAY,GAAG,CAAC,IAAW,EAAQ,EAAE;YACxC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QAlBE,iBAAiB;QACjB,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,cAAc,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,eAAe,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,eAAe,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACtG,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACpG,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACtG,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC/G,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACxG,CAAC;CAMJ;AAzBD,kCAyBC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { EnapoGidMappingDataSource } from "../../datasources/gid-mapping/EnapoGidMappingDataSource";
|
|
2
|
+
import { EnapoGidMappingRepository } from "../../repositories/EnapoGidMappingRepository";
|
|
3
|
+
import { EnapoGidMappingNormalizer } from "../../helpers/EnapoGidMappingNormalizer";
|
|
4
|
+
import { IDatabaseConnector } from "@golemio/core/dist/helpers/data-access/postgres/IDatabaseConnector";
|
|
5
|
+
import { ILogger } from "@golemio/core/dist/helpers/logger/LoggerProvider";
|
|
6
|
+
import { AbstractTask } from "@golemio/core/dist/integration-engine";
|
|
7
|
+
/**
|
|
8
|
+
* Syncs the ded_gid_mapping CSV export (blob storage) into energetics.enapo_gid_mapping.
|
|
9
|
+
*
|
|
10
|
+
* Runs on a daily cron so a new consumption point or a changed mapping in the source reaches production
|
|
11
|
+
* the next day at the latest. The write is upsert-only (never delete), so a mapping missing from a later
|
|
12
|
+
* export stays in the table, and running twice over the same input yields the same result. The refresh
|
|
13
|
+
* takes no parameters - it always ingests the whole export - so there is nothing to validate and the
|
|
14
|
+
* schema is deliberately undefined.
|
|
15
|
+
*
|
|
16
|
+
* The producer delivers the full export (unsupported commodities and junk included) and cannot be forced
|
|
17
|
+
* to clean it, so rows we cannot process are skipped and logged as a warning rather than failing the run.
|
|
18
|
+
*/
|
|
19
|
+
export declare class EnapoGidMappingSyncTask extends AbstractTask<Record<string, never>> {
|
|
20
|
+
private logger;
|
|
21
|
+
private dbConnector;
|
|
22
|
+
private datasource;
|
|
23
|
+
private normalizer;
|
|
24
|
+
private repository;
|
|
25
|
+
queueName: string;
|
|
26
|
+
queueTtl: number;
|
|
27
|
+
protected schema: undefined;
|
|
28
|
+
/**
|
|
29
|
+
* The whole export goes in as a single insert per batch, so the batch has to stay below the Postgres
|
|
30
|
+
* bind-parameter limit (65535); eight columns per row leave room for well over this many.
|
|
31
|
+
*/
|
|
32
|
+
private static readonly SAVE_BATCH_SIZE;
|
|
33
|
+
constructor(logger: ILogger, dbConnector: IDatabaseConnector, datasource: EnapoGidMappingDataSource, normalizer: EnapoGidMappingNormalizer, repository: EnapoGidMappingRepository);
|
|
34
|
+
execute(): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* The routine outcome of a run, including the water/heat rows that are filtered out on purpose. This
|
|
37
|
+
* is expected volume, so it never warns - it only has to stay visible.
|
|
38
|
+
*/
|
|
39
|
+
private logOutcome;
|
|
40
|
+
/**
|
|
41
|
+
* Rows that should have been usable but were not. Kept separate from the out-of-scope count so a
|
|
42
|
+
* large expected filter volume cannot hide a handful of real defects.
|
|
43
|
+
*/
|
|
44
|
+
private logSkipped;
|
|
45
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var EnapoGidMappingSyncTask_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.EnapoGidMappingSyncTask = void 0;
|
|
17
|
+
const constants_1 = require("../../constants");
|
|
18
|
+
const EnapoGidMappingDataSource_1 = require("../../datasources/gid-mapping/EnapoGidMappingDataSource");
|
|
19
|
+
const Chunker_1 = require("../../helpers/Chunker");
|
|
20
|
+
const EnapoWorkerContainerToken_1 = require("../../ioc/EnapoWorkerContainerToken");
|
|
21
|
+
const EnapoGidMappingRepository_1 = require("../../repositories/EnapoGidMappingRepository");
|
|
22
|
+
const EnapoGidMappingNormalizer_1 = require("../../helpers/EnapoGidMappingNormalizer");
|
|
23
|
+
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
24
|
+
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
25
|
+
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
26
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
27
|
+
/**
|
|
28
|
+
* Syncs the ded_gid_mapping CSV export (blob storage) into energetics.enapo_gid_mapping.
|
|
29
|
+
*
|
|
30
|
+
* Runs on a daily cron so a new consumption point or a changed mapping in the source reaches production
|
|
31
|
+
* the next day at the latest. The write is upsert-only (never delete), so a mapping missing from a later
|
|
32
|
+
* export stays in the table, and running twice over the same input yields the same result. The refresh
|
|
33
|
+
* takes no parameters - it always ingests the whole export - so there is nothing to validate and the
|
|
34
|
+
* schema is deliberately undefined.
|
|
35
|
+
*
|
|
36
|
+
* The producer delivers the full export (unsupported commodities and junk included) and cannot be forced
|
|
37
|
+
* to clean it, so rows we cannot process are skipped and logged as a warning rather than failing the run.
|
|
38
|
+
*/
|
|
39
|
+
let EnapoGidMappingSyncTask = EnapoGidMappingSyncTask_1 = class EnapoGidMappingSyncTask extends integration_engine_1.AbstractTask {
|
|
40
|
+
constructor(logger, dbConnector, datasource, normalizer, repository) {
|
|
41
|
+
super(constants_1.ENAPO_WORKER_NAME);
|
|
42
|
+
this.logger = logger;
|
|
43
|
+
this.dbConnector = dbConnector;
|
|
44
|
+
this.datasource = datasource;
|
|
45
|
+
this.normalizer = normalizer;
|
|
46
|
+
this.repository = repository;
|
|
47
|
+
this.queueName = "syncEnapoGidMapping";
|
|
48
|
+
this.queueTtl = 30 * 60 * 1000;
|
|
49
|
+
this.schema = undefined;
|
|
50
|
+
}
|
|
51
|
+
async execute() {
|
|
52
|
+
try {
|
|
53
|
+
const rawRows = await this.datasource.getAll();
|
|
54
|
+
const { mappings, skipped, outOfScopeCount } = this.normalizer.normalize(rawRows);
|
|
55
|
+
this.logOutcome(rawRows.length, mappings.length, outOfScopeCount);
|
|
56
|
+
this.logSkipped(skipped);
|
|
57
|
+
if (mappings.length === 0) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const batches = Chunker_1.Slicer.chunkArray(mappings, EnapoGidMappingSyncTask_1.SAVE_BATCH_SIZE);
|
|
61
|
+
const transaction = await this.dbConnector.getConnection().transaction();
|
|
62
|
+
try {
|
|
63
|
+
for (const batch of batches) {
|
|
64
|
+
await this.repository.bulkSave(batch, undefined, undefined, undefined, transaction);
|
|
65
|
+
}
|
|
66
|
+
await transaction.commit();
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
await transaction.rollback();
|
|
70
|
+
throw err;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
if (err instanceof golemio_errors_1.AbstractGolemioError) {
|
|
75
|
+
throw err;
|
|
76
|
+
}
|
|
77
|
+
throw new golemio_errors_1.GeneralError("Failed to sync the enapo gid mapping.", this.constructor.name, err);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The routine outcome of a run, including the water/heat rows that are filtered out on purpose. This
|
|
82
|
+
* is expected volume, so it never warns - it only has to stay visible.
|
|
83
|
+
*/
|
|
84
|
+
logOutcome(totalRows, savedRows, outOfScopeCount) {
|
|
85
|
+
this.logger.info(`${this.constructor.name}: read ${totalRows} gid mapping rows, saving ${savedRows}, ` +
|
|
86
|
+
`${outOfScopeCount} out of scope (water/heat).`);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Rows that should have been usable but were not. Kept separate from the out-of-scope count so a
|
|
90
|
+
* large expected filter volume cannot hide a handful of real defects.
|
|
91
|
+
*/
|
|
92
|
+
logSkipped(skipped) {
|
|
93
|
+
if (skipped.total === 0) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const reasons = Object.keys(skipped.byReason);
|
|
97
|
+
const detail = reasons
|
|
98
|
+
.filter((reason) => skipped.byReason[reason] > 0)
|
|
99
|
+
.map((reason) => `${reason}=${skipped.byReason[reason]} (e.g. ${skipped.samples[reason].join(", ") || "-"})`)
|
|
100
|
+
.join("; ");
|
|
101
|
+
this.logger.warn(`${this.constructor.name}: could not process ${skipped.total} gid mapping rows. ${detail}`);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
exports.EnapoGidMappingSyncTask = EnapoGidMappingSyncTask;
|
|
105
|
+
/**
|
|
106
|
+
* The whole export goes in as a single insert per batch, so the batch has to stay below the Postgres
|
|
107
|
+
* bind-parameter limit (65535); eight columns per row leave room for well over this many.
|
|
108
|
+
*/
|
|
109
|
+
EnapoGidMappingSyncTask.SAVE_BATCH_SIZE = 5000;
|
|
110
|
+
exports.EnapoGidMappingSyncTask = EnapoGidMappingSyncTask = EnapoGidMappingSyncTask_1 = __decorate([
|
|
111
|
+
(0, tsyringe_1.injectable)(),
|
|
112
|
+
__param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
|
|
113
|
+
__param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.PostgresConnector)),
|
|
114
|
+
__param(2, (0, tsyringe_1.inject)(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoGidMappingDataSource)),
|
|
115
|
+
__param(3, (0, tsyringe_1.inject)(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoGidMappingNormalizer)),
|
|
116
|
+
__param(4, (0, tsyringe_1.inject)(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoGidMappingRepository)),
|
|
117
|
+
__metadata("design:paramtypes", [Object, Object, EnapoGidMappingDataSource_1.EnapoGidMappingDataSource,
|
|
118
|
+
EnapoGidMappingNormalizer_1.EnapoGidMappingNormalizer,
|
|
119
|
+
EnapoGidMappingRepository_1.EnapoGidMappingRepository])
|
|
120
|
+
], EnapoGidMappingSyncTask);
|
|
121
|
+
//# sourceMappingURL=EnapoGidMappingSyncTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnapoGidMappingSyncTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/enapo/workers/task/EnapoGidMappingSyncTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { AbstractNumericParsingRepository } from "./AbstractNumericParsingReposi
|
|
|
2
2
|
import { IEnoBuildingDetailAggregate } from "./interfaces/IEnoBuildingDetailAggregate";
|
|
3
3
|
export declare class EnoBuildingDetailRepository extends AbstractNumericParsingRepository {
|
|
4
4
|
private addressesRepository;
|
|
5
|
+
private heatSourcesRepository;
|
|
5
6
|
private consumptionPointsRepository;
|
|
6
7
|
private distributionDevicesRepository;
|
|
7
8
|
private distributionPricesRepository;
|
|
@@ -21,6 +21,7 @@ const ConsumptionHistoryWindow_1 = require("../helpers/ConsumptionHistoryWindow"
|
|
|
21
21
|
const AbstractNumericParsingRepository_1 = require("./AbstractNumericParsingRepository");
|
|
22
22
|
const EnapoOmConsumptionRepository_1 = require("./EnapoOmConsumptionRepository");
|
|
23
23
|
const EnoBuildingAddressesRepository_1 = require("./EnoBuildingAddressesRepository");
|
|
24
|
+
const EnoBuildingHeatSourcesRepository_1 = require("./EnoBuildingHeatSourcesRepository");
|
|
24
25
|
const EnoConsumptionPointsRepository_1 = require("./EnoConsumptionPointsRepository");
|
|
25
26
|
const EnoPorsennaDevicesRepository_1 = require("./EnoPorsennaDevicesRepository");
|
|
26
27
|
const PorsennaConsumptionsRepository_1 = require("./PorsennaConsumptionsRepository");
|
|
@@ -31,6 +32,7 @@ let EnoBuildingDetailRepository = class EnoBuildingDetailRepository extends Abst
|
|
|
31
32
|
schema: "energetics",
|
|
32
33
|
});
|
|
33
34
|
this.addressesRepository = new EnoBuildingAddressesRepository_1.EnoBuildingAddressesRepository();
|
|
35
|
+
this.heatSourcesRepository = new EnoBuildingHeatSourcesRepository_1.EnoBuildingHeatSourcesRepository();
|
|
34
36
|
this.consumptionPointsRepository = new EnoConsumptionPointsRepository_1.EnoConsumptionPointsRepository();
|
|
35
37
|
this.distributionDevicesRepository = new PpasInvoiceChildRepository_1.PpasInvoiceChildRepository("EnoPpasDistributionInvoiceDeviceModelData", PpasDistributionInvoiceDeviceModel_1.PpasDistributionInvoiceDeviceModel.TABLE_NAME, PpasDistributionInvoiceDeviceModel_1.PpasDistributionInvoiceDeviceModel.attributeModel);
|
|
36
38
|
this.distributionPricesRepository = new PpasInvoiceChildRepository_1.PpasInvoiceChildRepository("EnoPpasDistributionInvoicePriceModelData", PpasDistributionInvoicePriceModel_1.PpasDistributionInvoicePriceModel.TABLE_NAME, PpasDistributionInvoicePriceModel_1.PpasDistributionInvoicePriceModel.attributeModel);
|
|
@@ -42,14 +44,19 @@ let EnoBuildingDetailRepository = class EnoBuildingDetailRepository extends Abst
|
|
|
42
44
|
}
|
|
43
45
|
async GetDetail(gid, months) {
|
|
44
46
|
const historyWindow = ConsumptionHistoryWindow_1.ConsumptionHistoryWindow.build(months);
|
|
45
|
-
const [building, addresses, points, porsennaDevices, consumptionHistory] = await Promise.all([
|
|
47
|
+
const [building, addresses, points, porsennaDevices, consumptionHistory, heatSources] = await Promise.all([
|
|
46
48
|
this.findBuilding(gid),
|
|
47
49
|
this.addressesRepository.GetByGid(gid),
|
|
48
50
|
this.consumptionPointsRepository.GetByGid(gid),
|
|
49
51
|
this.porsennaDevicesRepository.GetByGid(gid),
|
|
50
52
|
this.consumptionHistoryRepository.GetByGid(gid, historyWindow.monthFrom),
|
|
53
|
+
this.heatSourcesRepository.GetByGid(gid),
|
|
51
54
|
]);
|
|
52
|
-
if (building === null &&
|
|
55
|
+
if (building === null &&
|
|
56
|
+
addresses.length === 0 &&
|
|
57
|
+
points.length === 0 &&
|
|
58
|
+
porsennaDevices.length === 0 &&
|
|
59
|
+
heatSources.length === 0) {
|
|
53
60
|
return null;
|
|
54
61
|
}
|
|
55
62
|
const distributionInvoiceIds = this.collectIds(points.map((point) => point.di_id));
|
|
@@ -78,6 +85,7 @@ let EnoBuildingDetailRepository = class EnoBuildingDetailRepository extends Abst
|
|
|
78
85
|
porsennaConsumption,
|
|
79
86
|
consumptionHistory,
|
|
80
87
|
historyWindow,
|
|
88
|
+
heatSources,
|
|
81
89
|
};
|
|
82
90
|
}
|
|
83
91
|
GetAll() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnoBuildingDetailRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/repositories/EnoBuildingDetailRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qFAAmF;AAEnF,kIAA2G;AAC3G,gIAAyG;AACzG,sIAA+G;AAC/G,oIAA6G;AAK7G,6EAAwE;AACxE,iEAAgE;AAChE,kFAAgF;AAChF,yFAAsF;AACtF,iFAA8E;AAC9E,qFAAkF;AAClF,qFAAkF;AAClF,iFAA8E;AAC9E,qFAAkF;AAClF,6EAA0E;AAInE,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,mEAAgC;
|
|
1
|
+
{"version":3,"file":"EnoBuildingDetailRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/repositories/EnoBuildingDetailRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qFAAmF;AAEnF,kIAA2G;AAC3G,gIAAyG;AACzG,sIAA+G;AAC/G,oIAA6G;AAK7G,6EAAwE;AACxE,iEAAgE;AAChE,kFAAgF;AAChF,yFAAsF;AACtF,iFAA8E;AAC9E,qFAAkF;AAClF,yFAAsF;AACtF,qFAAkF;AAClF,iFAA8E;AAC9E,qFAAkF;AAClF,6EAA0E;AAInE,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,mEAAgC;IAY7E;QACI,KAAK,CACD,uDAA0B,CAAC,SAAS,EACpC,uDAA0B,CAAC,SAAS,EACpC,uDAA0B,CAAC,cAAc,EACzC;YACI,MAAM,EAAE,YAAY;SACvB,CACJ,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,+DAA8B,EAAE,CAAC;QAChE,IAAI,CAAC,qBAAqB,GAAG,IAAI,mEAAgC,EAAE,CAAC;QACpE,IAAI,CAAC,2BAA2B,GAAG,IAAI,+DAA8B,EAAE,CAAC;QACxE,IAAI,CAAC,6BAA6B,GAAG,IAAI,uDAA0B,CAC/D,2CAA2C,EAC3C,uEAAkC,CAAC,UAAU,EAC7C,uEAAkC,CAAC,cAAc,CACpD,CAAC;QACF,IAAI,CAAC,4BAA4B,GAAG,IAAI,uDAA0B,CAC9D,0CAA0C,EAC1C,qEAAiC,CAAC,UAAU,EAC5C,qEAAiC,CAAC,cAAc,CACnD,CAAC;QACF,IAAI,CAAC,2BAA2B,GAAG,IAAI,uDAA0B,CAC7D,yCAAyC,EACzC,mEAAgC,CAAC,UAAU,EAC3C,mEAAgC,CAAC,cAAc,CAClD,CAAC;QACF,IAAI,CAAC,0BAA0B,GAAG,IAAI,uDAA0B,CAC5D,wCAAwC,EACxC,iEAA+B,CAAC,UAAU,EAC1C,iEAA+B,CAAC,cAAc,CACjD,CAAC;QACF,IAAI,CAAC,yBAAyB,GAAG,IAAI,2DAA4B,EAAE,CAAC;QACpE,IAAI,CAAC,8BAA8B,GAAG,IAAI,+DAA8B,EAAE,CAAC;QAC3E,IAAI,CAAC,4BAA4B,GAAG,IAAI,2DAA4B,EAAE,CAAC;IAC3E,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,GAAW,EAAE,MAAc;QAC9C,MAAM,aAAa,GAAG,mDAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE7D,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACtG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;YACtB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC;YACtC,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC9C,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC5C,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,SAAS,CAAC;YACxE,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC;SAC3C,CAAC,CAAC;QAEH,IACI,QAAQ,KAAK,IAAI;YACjB,SAAS,CAAC,MAAM,KAAK,CAAC;YACtB,MAAM,CAAC,MAAM,KAAK,CAAC;YACnB,eAAe,CAAC,MAAM,KAAK,CAAC;YAC5B,WAAW,CAAC,MAAM,KAAK,CAAC,EAC1B,CAAC;YACC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACnF,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACjF,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7F,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAExE,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,YAAY,CAAC,GACnH,MAAM,OAAO,CAAC,GAAG,CAAC;YACd,IAAI,CAAC,6BAA6B,CAAC,eAAe,CAAC,sBAAsB,CAAC;YAC1E,IAAI,CAAC,4BAA4B,CAAC,eAAe,CAAC,sBAAsB,CAAC;YACzE,IAAI,CAAC,2BAA2B,CAAC,eAAe,CAAC,oBAAoB,CAAC;YACtE,IAAI,CAAC,0BAA0B,CAAC,eAAe,CAAC,oBAAoB,CAAC;YACrE,IAAI,CAAC,8BAA8B,CAAC,cAAc,CAAC,iBAAiB,CAAC;YACrE,IAAI,CAAC,2BAA2B,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC;SAChE,CAAC,CAAC;QAEP,OAAO;YACH,GAAG;YACH,QAAQ;YACR,SAAS;YACT,MAAM;YACN,YAAY;YACZ,mBAAmB;YACnB,kBAAkB;YAClB,iBAAiB;YACjB,gBAAgB;YAChB,eAAe;YACf,mBAAmB;YACnB,kBAAkB;YAClB,aAAa;YACb,WAAW;SACd,CAAC;IACN,CAAC;IAEM,MAAM;QACT,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;IAEM,MAAM;QACT,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,GAAW;QAClC,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;gBAC3C,KAAK,EAAE,EAAE,GAAG,EAAE;gBACd,GAAG,EAAE,IAAI;aACZ,CAAC,CAA6C,CAAC;YAEhD,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,6BAAY,CAAC,wDAAwD,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1G,CAAC;IACL,CAAC;IAEO,UAAU,CAAC,GAAyB;QACxC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;CACJ,CAAA;AAhIY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,qBAAU,GAAE;;GACA,2BAA2B,CAgIvC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IEnapoBudovaSpotrebic } from "../../schema-definitions/models/enapo/interfaces/IEnapoBudovaSpotrebic";
|
|
2
|
+
import { AbstractNumericParsingRepository } from "./AbstractNumericParsingRepository";
|
|
3
|
+
export declare class EnoBuildingHeatSourcesRepository extends AbstractNumericParsingRepository {
|
|
4
|
+
constructor();
|
|
5
|
+
GetByGid(gid: string): Promise<IEnapoBudovaSpotrebic[]>;
|
|
6
|
+
GetAll(): never;
|
|
7
|
+
GetOne(): never;
|
|
8
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.EnoBuildingHeatSourcesRepository = void 0;
|
|
13
|
+
const EnapoBudovaSpotrebicModel_1 = require("../../schema-definitions/models/enapo/EnapoBudovaSpotrebicModel");
|
|
14
|
+
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
15
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
16
|
+
const AbstractNumericParsingRepository_1 = require("./AbstractNumericParsingRepository");
|
|
17
|
+
let EnoBuildingHeatSourcesRepository = class EnoBuildingHeatSourcesRepository extends AbstractNumericParsingRepository_1.AbstractNumericParsingRepository {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(EnapoBudovaSpotrebicModel_1.EnapoBudovaSpotrebicModel.REPOSITORY_NAME, EnapoBudovaSpotrebicModel_1.EnapoBudovaSpotrebicModel.TABLE_NAME, EnapoBudovaSpotrebicModel_1.EnapoBudovaSpotrebicModel.attributeModel, {
|
|
20
|
+
schema: "energetics",
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
async GetByGid(gid) {
|
|
24
|
+
try {
|
|
25
|
+
const rows = (await this.sequelizeModel.findAll({
|
|
26
|
+
where: { gid },
|
|
27
|
+
order: [
|
|
28
|
+
["vykon_kw", "DESC NULLS LAST"],
|
|
29
|
+
["id_bud_spotrebic", "ASC"],
|
|
30
|
+
],
|
|
31
|
+
raw: true,
|
|
32
|
+
}));
|
|
33
|
+
return this.parseNumericColumns(rows);
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
throw new golemio_errors_1.GeneralError("Database error ~ GetByGid EnoBuildingHeatSourcesRepository", this.name, err, 500);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
GetAll() {
|
|
40
|
+
throw new Error("Not implemented");
|
|
41
|
+
}
|
|
42
|
+
GetOne() {
|
|
43
|
+
throw new Error("Not implemented");
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
exports.EnoBuildingHeatSourcesRepository = EnoBuildingHeatSourcesRepository;
|
|
47
|
+
exports.EnoBuildingHeatSourcesRepository = EnoBuildingHeatSourcesRepository = __decorate([
|
|
48
|
+
(0, tsyringe_1.injectable)(),
|
|
49
|
+
__metadata("design:paramtypes", [])
|
|
50
|
+
], EnoBuildingHeatSourcesRepository);
|
|
51
|
+
//# sourceMappingURL=EnoBuildingHeatSourcesRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnoBuildingHeatSourcesRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/repositories/EnoBuildingHeatSourcesRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+GAAwF;AAExF,6EAAwE;AACxE,iEAAgE;AAChE,yFAAsF;AAG/E,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,mEAAgC;IAClF;QACI,KAAK,CACD,qDAAyB,CAAC,eAAe,EACzC,qDAAyB,CAAC,UAAU,EACpC,qDAAyB,CAAC,cAAc,EACxC;YACI,MAAM,EAAE,YAAY;SACvB,CACJ,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,GAAW;QAC7B,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;gBAC5C,KAAK,EAAE,EAAE,GAAG,EAAE;gBACd,KAAK,EAAE;oBACH,CAAC,UAAU,EAAE,iBAAiB,CAAC;oBAC/B,CAAC,kBAAkB,EAAE,KAAK,CAAC;iBAC9B;gBACD,GAAG,EAAE,IAAI;aACZ,CAAC,CAAuC,CAAC;YAE1C,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,6BAAY,CAAC,4DAA4D,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9G,CAAC;IACL,CAAC;IAEM,MAAM;QACT,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;IAEM,MAAM;QACT,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;CACJ,CAAA;AApCY,4EAAgC;2CAAhC,gCAAgC;IAD5C,IAAA,qBAAU,GAAE;;GACA,gCAAgC,CAoC5C"}
|
|
@@ -4,6 +4,7 @@ import { IEnoBuildingDetailView } from "../../models/interfaces/IEnoBuildingDeta
|
|
|
4
4
|
import { IEnoConsumptionPointView } from "../../models/interfaces/IEnoConsumptionPointView";
|
|
5
5
|
import { IEnoPorsennaDeviceView } from "../../models/interfaces/IEnoPorsennaDeviceView";
|
|
6
6
|
import { IAddress } from "../../../schema-definitions/models/eno/interfaces/IAddress";
|
|
7
|
+
import { IEnapoBudovaSpotrebic } from "../../../schema-definitions/models/enapo/interfaces/IEnapoBudovaSpotrebic";
|
|
7
8
|
import { IConsumption } from "../../../schema-definitions/models/porsenna/interfaces/IConsumption";
|
|
8
9
|
import { IPpasCommercialInvoiceDevice } from "../../../schema-definitions/models/enapo/ppas/interfaces/IPpasCommercialInvoiceDevice";
|
|
9
10
|
import { IPpasCommercialInvoicePrice } from "../../../schema-definitions/models/enapo/ppas/interfaces/IPpasCommercialInvoicePrice";
|
|
@@ -24,4 +25,5 @@ export interface IEnoBuildingDetailAggregate {
|
|
|
24
25
|
porsennaConsumption: IConsumption[];
|
|
25
26
|
consumptionHistory: IEnapoOmConsumptionView[];
|
|
26
27
|
historyWindow: IConsumptionHistoryWindow;
|
|
28
|
+
heatSources: IEnapoBudovaSpotrebic[];
|
|
27
29
|
}
|
|
@@ -142,6 +142,20 @@ export interface IEnoBuildingProperty {
|
|
|
142
142
|
accounting_unit: IEnoManager | null;
|
|
143
143
|
};
|
|
144
144
|
}
|
|
145
|
+
export interface IEnoHeatSource {
|
|
146
|
+
appliance_name: string | null;
|
|
147
|
+
note: string | null;
|
|
148
|
+
rated_output_kw: number | null;
|
|
149
|
+
fuel_code: number | null;
|
|
150
|
+
is_monitored: boolean | null;
|
|
151
|
+
appliance_type: string | null;
|
|
152
|
+
operating_since: string | null;
|
|
153
|
+
}
|
|
154
|
+
export interface IEnoHeatSources {
|
|
155
|
+
count: number;
|
|
156
|
+
total_rated_output_kw: number | null;
|
|
157
|
+
sources: IEnoHeatSource[];
|
|
158
|
+
}
|
|
145
159
|
export interface IEnoBuildingDetailResponse {
|
|
146
160
|
gid: string;
|
|
147
161
|
name: string | null;
|
|
@@ -152,4 +166,5 @@ export interface IEnoBuildingDetailResponse {
|
|
|
152
166
|
consumption_history: IEnoConsumptionHistory;
|
|
153
167
|
energy_management: IEnoEnergyManagement | null;
|
|
154
168
|
consumption_points: IEnoConsumptionPointResponse[];
|
|
169
|
+
heat_sources: IEnoHeatSources;
|
|
155
170
|
}
|
|
@@ -35,7 +35,7 @@ let V2EnoBuildingsRouter = class V2EnoBuildingsRouter extends AbstractRouter_1.A
|
|
|
35
35
|
}
|
|
36
36
|
initRoutes() {
|
|
37
37
|
this.router.get("/", (0, express_validator_1.query)("q").exists().isString().not().isArray().trim().isLength({ min: 1, max: DedSearchWeights_1.DED_SEARCH_QUERY_MAX_LENGTH }), (0, express_validator_1.query)("limit").optional().isInt({ min: 1, max: DedSearchWeights_1.DED_SEARCH_LIMIT_MAX }).toInt(), Validation_1.checkErrors, this.cacheHeaderMiddleware.getMiddleware(this.searchMaxAge, this.searchStaleWhileRevalidate), this.controller.search);
|
|
38
|
-
this.router.get("/:gid", (0, express_validator_1.param)("gid").exists().isString().not().isArray(), (0, express_validator_1.query)("months").optional().isInt({ min: 1, max: ConsumptionHistory_1.CONSUMPTION_HISTORY_MONTHS_MAX }).toInt(), Validation_1.checkErrors, this.cacheHeaderMiddleware.getMiddleware(this.maxAge, this.staleWhileRevalidate), this.controller.getOne);
|
|
38
|
+
this.router.get("/:gid", (0, express_validator_1.param)("gid").exists().isString().not().isArray().trim(), (0, express_validator_1.query)("months").optional().isInt({ min: 1, max: ConsumptionHistory_1.CONSUMPTION_HISTORY_MONTHS_MAX }).toInt(), Validation_1.checkErrors, this.cacheHeaderMiddleware.getMiddleware(this.maxAge, this.staleWhileRevalidate), this.controller.getOne);
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
41
|
exports.V2EnoBuildingsRouter = V2EnoBuildingsRouter;
|