@golemio/energetics 1.5.3-dev.2164524892 → 1.5.3-dev.2177936068
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/20251119123216-eno-stavby-geometrie.js +53 -0
- package/db/migrations/postgresql/sqls/20251119123216-eno-stavby-geometrie-down.sql +2 -0
- package/db/migrations/postgresql/sqls/20251119123216-eno-stavby-geometrie-up.sql +37 -0
- package/dist/integration-engine/enapo/constants.d.ts +1 -0
- package/dist/integration-engine/enapo/constants.js +2 -1
- package/dist/integration-engine/enapo/constants.js.map +1 -1
- package/dist/integration-engine/enapo/datasources/eno/EnoDatasource.js +10 -0
- package/dist/integration-engine/enapo/datasources/eno/EnoDatasource.js.map +1 -1
- package/dist/integration-engine/enapo/datasources/eno/EnoDatasourceFactory.d.ts +3 -1
- package/dist/integration-engine/enapo/datasources/eno/EnoDatasourceFactory.js +2 -0
- package/dist/integration-engine/enapo/datasources/eno/EnoDatasourceFactory.js.map +1 -1
- package/dist/integration-engine/enapo/datasources/eno/EnoOperationEnum.d.ts +6 -0
- package/dist/integration-engine/enapo/datasources/eno/EnoOperationEnum.js +8 -1
- package/dist/integration-engine/enapo/datasources/eno/EnoOperationEnum.js.map +1 -1
- package/dist/integration-engine/enapo/helpers/Chunker.d.ts +3 -0
- package/dist/integration-engine/enapo/helpers/Chunker.js +14 -0
- package/dist/integration-engine/enapo/helpers/Chunker.js.map +1 -0
- package/dist/integration-engine/enapo/interfaces/eno/IEnoStructureInfo.d.ts +10 -0
- package/dist/integration-engine/enapo/{workers/interfaces/IEnoBuildingTaskInput.js → interfaces/eno/IEnoStructureInfo.js} +1 -1
- package/dist/integration-engine/enapo/interfaces/eno/IEnoStructureInfo.js.map +1 -0
- package/dist/integration-engine/enapo/interfaces/eno/IGeometryInputWithIndex.d.ts +4 -0
- package/dist/integration-engine/enapo/interfaces/eno/IGeometryInputWithIndex.js +3 -0
- package/dist/integration-engine/enapo/interfaces/eno/IGeometryInputWithIndex.js.map +1 -0
- package/dist/integration-engine/enapo/ioc/Di.js +11 -2
- 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/eno/EnoGeometryRepository.d.ts +5 -0
- package/dist/integration-engine/enapo/repositories/eno/EnoGeometryRepository.js +32 -0
- package/dist/integration-engine/enapo/repositories/eno/EnoGeometryRepository.js.map +1 -0
- package/dist/integration-engine/enapo/repositories/eno/EnoStructureRepository.d.ts +5 -0
- package/dist/integration-engine/enapo/repositories/eno/EnoStructureRepository.js +32 -0
- package/dist/integration-engine/enapo/repositories/eno/EnoStructureRepository.js.map +1 -0
- package/dist/integration-engine/enapo/transformations/eno/EnoGeometryTransformation.d.ts +11 -0
- package/dist/integration-engine/enapo/transformations/eno/EnoGeometryTransformation.js +34 -0
- package/dist/integration-engine/enapo/transformations/eno/EnoGeometryTransformation.js.map +1 -0
- package/dist/integration-engine/enapo/transformations/eno/EnoStructureTransformation.d.ts +13 -0
- package/dist/integration-engine/enapo/transformations/eno/EnoStructureTransformation.js +92 -0
- package/dist/integration-engine/enapo/transformations/eno/EnoStructureTransformation.js.map +1 -0
- package/dist/integration-engine/enapo/workers/EnapoWorker.js +2 -0
- package/dist/integration-engine/enapo/workers/EnapoWorker.js.map +1 -1
- package/dist/integration-engine/enapo/workers/interfaces/IEnoDataTaskInput.d.ts +9 -0
- package/dist/integration-engine/enapo/workers/interfaces/IEnoDataTaskInput.js +9 -0
- package/dist/integration-engine/enapo/workers/interfaces/IEnoDataTaskInput.js.map +1 -0
- package/dist/integration-engine/enapo/workers/interfaces/IEnoGeometryTaskInput.d.ts +4 -0
- package/dist/integration-engine/enapo/workers/interfaces/IEnoGeometryTaskInput.js +3 -0
- package/dist/integration-engine/enapo/workers/interfaces/IEnoGeometryTaskInput.js.map +1 -0
- package/dist/integration-engine/enapo/workers/schema/EnoDataTaskInputSchema.d.ts +6 -0
- package/dist/integration-engine/enapo/workers/schema/{EnoBuildingTaskInputSchema.js → EnoDataTaskInputSchema.js} +9 -8
- package/dist/integration-engine/enapo/workers/schema/EnoDataTaskInputSchema.js.map +1 -0
- package/dist/integration-engine/enapo/workers/schema/EnoGeometryTaskInputSchema.d.ts +5 -0
- package/dist/integration-engine/enapo/workers/schema/EnoGeometryTaskInputSchema.js +27 -0
- package/dist/integration-engine/enapo/workers/schema/EnoGeometryTaskInputSchema.js.map +1 -0
- package/dist/integration-engine/enapo/workers/task/EnoBuildingTask.d.ts +6 -7
- package/dist/integration-engine/enapo/workers/task/EnoBuildingTask.js +11 -6
- package/dist/integration-engine/enapo/workers/task/EnoBuildingTask.js.map +1 -1
- package/dist/integration-engine/enapo/workers/task/EnoGeometryTask.d.ts +15 -0
- package/dist/integration-engine/enapo/workers/task/EnoGeometryTask.js +69 -0
- package/dist/integration-engine/enapo/workers/task/EnoGeometryTask.js.map +1 -0
- package/dist/integration-engine/enapo/workers/task/EnoStructureTask.d.ts +33 -0
- package/dist/integration-engine/enapo/workers/task/EnoStructureTask.js +150 -0
- package/dist/integration-engine/enapo/workers/task/EnoStructureTask.js.map +1 -0
- package/dist/schema-definitions/datasources/eno/EnoGeometryJsonSchema.d.ts +5 -0
- package/dist/schema-definitions/datasources/eno/EnoGeometryJsonSchema.js +24 -0
- package/dist/schema-definitions/datasources/eno/EnoGeometryJsonSchema.js.map +1 -0
- package/dist/schema-definitions/datasources/eno/EnoStructureInfoJsonSchema.d.ts +5 -0
- package/dist/schema-definitions/datasources/eno/EnoStructureInfoJsonSchema.js +102 -0
- package/dist/schema-definitions/datasources/eno/EnoStructureInfoJsonSchema.js.map +1 -0
- package/dist/schema-definitions/datasources/eno/interfaces/IGeometryInput.d.ts +7 -0
- package/dist/schema-definitions/datasources/eno/interfaces/IGeometryInput.js +3 -0
- package/dist/schema-definitions/datasources/eno/interfaces/IGeometryInput.js.map +1 -0
- package/dist/schema-definitions/datasources/eno/interfaces/IStructureInfoInput.d.ts +10 -0
- package/dist/schema-definitions/datasources/eno/interfaces/IStructureInfoInput.js +3 -0
- package/dist/schema-definitions/datasources/eno/interfaces/IStructureInfoInput.js.map +1 -0
- package/dist/schema-definitions/datasources/eno/interfaces/IStructureInput.d.ts +20 -0
- package/dist/schema-definitions/datasources/eno/interfaces/IStructureInput.js +3 -0
- package/dist/schema-definitions/datasources/eno/interfaces/IStructureInput.js.map +1 -0
- package/dist/schema-definitions/models/eno/GeometryModel.d.ts +15 -0
- package/dist/schema-definitions/models/eno/GeometryModel.js +43 -0
- package/dist/schema-definitions/models/eno/GeometryModel.js.map +1 -0
- package/dist/schema-definitions/models/eno/StructureModel.d.ts +27 -0
- package/dist/schema-definitions/models/eno/StructureModel.js +80 -0
- package/dist/schema-definitions/models/eno/StructureModel.js.map +1 -0
- package/dist/schema-definitions/models/eno/interfaces/IGeometry.d.ts +9 -0
- package/dist/schema-definitions/models/eno/interfaces/IGeometry.js +3 -0
- package/dist/schema-definitions/models/eno/interfaces/IGeometry.js.map +1 -0
- package/dist/schema-definitions/models/eno/interfaces/IStructure.d.ts +21 -0
- package/dist/schema-definitions/models/eno/interfaces/IStructure.js +3 -0
- package/dist/schema-definitions/models/eno/interfaces/IStructure.js.map +1 -0
- package/docs/asyncapi.yaml +54 -0
- package/docs/implementation_documentation.md +74 -0
- package/package.json +1 -1
- package/dist/integration-engine/enapo/workers/interfaces/IEnoBuildingTaskInput.d.ts +0 -5
- package/dist/integration-engine/enapo/workers/interfaces/IEnoBuildingTaskInput.js.map +0 -1
- package/dist/integration-engine/enapo/workers/schema/EnoBuildingTaskInputSchema.d.ts +0 -6
- package/dist/integration-engine/enapo/workers/schema/EnoBuildingTaskInputSchema.js.map +0 -1
package/docs/asyncapi.yaml
CHANGED
|
@@ -180,6 +180,28 @@ channels:
|
|
|
180
180
|
messages:
|
|
181
181
|
enoBuildingMessage:
|
|
182
182
|
$ref: "#/components/messages/energetics.EnoBuildingMessage"
|
|
183
|
+
energetics.processEnoStructures:
|
|
184
|
+
address: dataplatform.enapoenergetics.processEnoStructures
|
|
185
|
+
description: downloads structure (stavba) data from ENO SOAP/WSDL API including structures, properties, addresses, and locations. Supports full and incremental synchronization using daysBack parameter. After successful processing, triggers geometry download. Stores data in database tables (eno_stavba, eno_majetek, eno_adresa, eno_umisteni, eno_vyrazene_gid)
|
|
186
|
+
bindings:
|
|
187
|
+
amqp:
|
|
188
|
+
is: queue
|
|
189
|
+
queue:
|
|
190
|
+
durable: true
|
|
191
|
+
messages:
|
|
192
|
+
enoStructureMessage:
|
|
193
|
+
$ref: "#/components/messages/energetics.EnoBuildingMessage"
|
|
194
|
+
energetics.processEnoGeometry:
|
|
195
|
+
address: dataplatform.enapoenergetics.processEnoGeometry
|
|
196
|
+
description: downloads geometry (polygons) for buildings and structures from ENO SOAP/WSDL API. Automatically triggered after building or structure synchronization. Stores data in database table (eno_geometrie)
|
|
197
|
+
bindings:
|
|
198
|
+
amqp:
|
|
199
|
+
is: queue
|
|
200
|
+
queue:
|
|
201
|
+
durable: true
|
|
202
|
+
messages:
|
|
203
|
+
enoGeometryMessage:
|
|
204
|
+
$ref: "#/components/messages/energetics.EnoGeometryMessage"
|
|
183
205
|
operations:
|
|
184
206
|
energetics.fetchAccessConfiguration:
|
|
185
207
|
action: "send"
|
|
@@ -245,6 +267,14 @@ operations:
|
|
|
245
267
|
action: "send"
|
|
246
268
|
channel:
|
|
247
269
|
$ref: "#/channels/energetics.processEnoBuildings"
|
|
270
|
+
energetics.processEnoStructures:
|
|
271
|
+
action: "send"
|
|
272
|
+
channel:
|
|
273
|
+
$ref: "#/channels/energetics.processEnoStructures"
|
|
274
|
+
energetics.processEnoGeometry:
|
|
275
|
+
action: "send"
|
|
276
|
+
channel:
|
|
277
|
+
$ref: "#/channels/energetics.processEnoGeometry"
|
|
248
278
|
components:
|
|
249
279
|
messages:
|
|
250
280
|
emptyMessage:
|
|
@@ -294,6 +324,11 @@ components:
|
|
|
294
324
|
type: object
|
|
295
325
|
$ref: "#/components/schemas/energetics.IEnoBuildingTaskInput"
|
|
296
326
|
additionalProperties: false
|
|
327
|
+
energetics.EnoGeometryMessage:
|
|
328
|
+
payload:
|
|
329
|
+
type: object
|
|
330
|
+
$ref: "#/components/schemas/energetics.IEnoGeometryTaskInput"
|
|
331
|
+
additionalProperties: false
|
|
297
332
|
schemas:
|
|
298
333
|
energetics.IFetchConsumptionInput:
|
|
299
334
|
type: object
|
|
@@ -446,4 +481,23 @@ components:
|
|
|
446
481
|
- 30
|
|
447
482
|
- 90
|
|
448
483
|
additionalProperties: false
|
|
484
|
+
energetics.IEnoGeometryTaskInput:
|
|
485
|
+
type: object
|
|
486
|
+
required:
|
|
487
|
+
- source
|
|
488
|
+
- listGid
|
|
489
|
+
properties:
|
|
490
|
+
source:
|
|
491
|
+
type: string
|
|
492
|
+
description: Data source identifier (e.g., "mhmp" for Hlavní město Praha)
|
|
493
|
+
examples:
|
|
494
|
+
- "mhmp"
|
|
495
|
+
listGid:
|
|
496
|
+
type: array
|
|
497
|
+
items:
|
|
498
|
+
type: string
|
|
499
|
+
description: List of GID identifiers for which to fetch geometry data
|
|
500
|
+
examples:
|
|
501
|
+
- ["GID312203", "GID311624"]
|
|
502
|
+
additionalProperties: false
|
|
449
503
|
|
|
@@ -196,6 +196,12 @@ https://gitlab.com/operator-ict/golemio/projekty/energetika/p0262.prevzeti-energ
|
|
|
196
196
|
- `getBudovyVMajetku` - získání seznamu GID budov v majetku organizace
|
|
197
197
|
- `getDetailBudovy` - získání detailu budov podle seznamu GID
|
|
198
198
|
- `getVyrazeneBudovy` - získání seznamu GID vyřazených budov
|
|
199
|
+
- Stavby:
|
|
200
|
+
- `getStavbyVMajetku` - získání seznamu GID staveb v majetku organizace
|
|
201
|
+
- `getDetailStavby` - získání detailu staveb podle seznamu GID
|
|
202
|
+
- `getVyrazeneStavby` - získání seznamu GID vyřazených staveb
|
|
203
|
+
- Geometrie:
|
|
204
|
+
- `getGeometrie` - získání geometrie (polygonů) pro seznam GID budov/staveb
|
|
199
205
|
|
|
200
206
|
## Zpracování dat / transformace
|
|
201
207
|
|
|
@@ -552,6 +558,74 @@ Task stahuje data o budovách ze systému ENO včetně detailních informací o
|
|
|
552
558
|
- unit testy
|
|
553
559
|
- [EnoBuildingTask.test.ts](../test/integration-engine/enapo/task/EnoBuildingTask.test.ts)
|
|
554
560
|
|
|
561
|
+
#### _task: EnoStructureTask_
|
|
562
|
+
|
|
563
|
+
Task stahuje data o stavbách ze systému ENO včetně detailních informací o stavbách, adresách, umístění a majetkových vztazích. Podporuje plnou i inkrementální synchronizaci (pomocí parametru `daysBack`). Po úspěšném stažení staveb automaticky spouští stahování geometrií.
|
|
564
|
+
|
|
565
|
+
- vstupní rabbitmq fronta
|
|
566
|
+
- název: dataplatform.enapoenergetics.processEnoStructures
|
|
567
|
+
- TTL: 1 hodina
|
|
568
|
+
- parametry: `{ type, source, daysBack? }`
|
|
569
|
+
- `type` - typ synchronizace (`current` | `removed`)
|
|
570
|
+
- `source` - zdroj dat (např. `mhmp`)
|
|
571
|
+
- `daysBack` - volitelný parametr pro inkrementální synchronizaci (počet dní zpětně)
|
|
572
|
+
- validační schéma: [EnoBuildingTaskInputSchema](../src/integration-engine/enapo/workers/schema/EnoBuildingTaskInputSchema.ts)
|
|
573
|
+
- závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
|
|
574
|
+
- dataplatform.enapoenergetics.processEnoGeometry - po úspěšném stažení staveb
|
|
575
|
+
- datové zdroje
|
|
576
|
+
- ENO SOAP/WSDL API (Structure endpoint)
|
|
577
|
+
- [EnoDatasource](../src/integration-engine/enapo/datasources/eno/EnoDatasource.ts)
|
|
578
|
+
- [EnoDatasourceFactory](../src/integration-engine/enapo/datasources/eno/EnoDatasourceFactory.ts)
|
|
579
|
+
- transformace
|
|
580
|
+
- [EnoStructureTransformation](../src/integration-engine/enapo/transformations/eno/EnoStructureTransformation.ts) - transformace dat staveb
|
|
581
|
+
- Transformuje stavbu, majetek, adresy a umístění
|
|
582
|
+
- Zpracovává pole adres a umístění s přidělením pořadí (poradi)
|
|
583
|
+
- data modely
|
|
584
|
+
- [StructureModel](../src/schema-definitions/models/eno/StructureModel.ts) tabulka `eno_stavba`
|
|
585
|
+
- [PropertyModel](../src/schema-definitions/models/eno/PropertyModel.ts) tabulka `eno_majetek`
|
|
586
|
+
- [AddressModel](../src/schema-definitions/models/eno/AddressModel.ts) tabulka `eno_adresa`
|
|
587
|
+
- [LocationModel](../src/schema-definitions/models/eno/LocationModel.ts) tabulka `eno_umisteni`
|
|
588
|
+
- [RemovedGIDModel](../src/schema-definitions/models/eno/RemovedGIDModel.ts) tabulka `eno_vyrazene_gid`
|
|
589
|
+
- funkce
|
|
590
|
+
- **Plná synchronizace**: Stáhne všechny stavby v majetku organizace (bez parametru `daysBack`)
|
|
591
|
+
- **Inkrementální synchronizace**: Stáhne pouze stavby změněné za posledních X dní (s parametrem `daysBack`)
|
|
592
|
+
- **Vyřazené stavby**: Pro typ `removed` ukládá GID vyřazených staveb do speciální tabulky
|
|
593
|
+
- **Transakční zpracování**: Všechny operace zápisu probíhají v databázové transakci pro zajištění konzistence
|
|
594
|
+
- **Automatické stažení geometrií**: Po úspěšném zpracování staveb odesílá zprávu do fronty pro stažení geometrií
|
|
595
|
+
- unit testy
|
|
596
|
+
- [EnoStructureTask.test.ts](../test/integration-engine/enapo/task/EnoStructureTask.test.ts)
|
|
597
|
+
|
|
598
|
+
#### _task: EnoGeometryTask_
|
|
599
|
+
|
|
600
|
+
Task stahuje geometrie (polygony) pro budovy a stavby ze systému ENO. Je automaticky spouštěn po dokončení synchronizace budov nebo staveb.
|
|
601
|
+
|
|
602
|
+
- vstupní rabbitmq fronta
|
|
603
|
+
- název: dataplatform.enapoenergetics.processEnoGeometry
|
|
604
|
+
- TTL: 1 hodina
|
|
605
|
+
- parametry: `{ source, listGid }`
|
|
606
|
+
- `source` - zdroj dat (např. `mhmp`)
|
|
607
|
+
- `listGid` - seznam GID pro které se má stáhnout geometrie
|
|
608
|
+
- validační schéma: [EnoGeometryTaskInputSchema](../src/integration-engine/enapo/workers/schema/EnoGeometryTaskInputSchema.ts)
|
|
609
|
+
- závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
|
|
610
|
+
- žádné
|
|
611
|
+
- datové zdroje
|
|
612
|
+
- ENO SOAP/WSDL API (Geometry endpoint)
|
|
613
|
+
- [EnoDatasource](../src/integration-engine/enapo/datasources/eno/EnoDatasource.ts)
|
|
614
|
+
- [EnoDatasourceFactory](../src/integration-engine/enapo/datasources/eno/EnoDatasourceFactory.ts)
|
|
615
|
+
- transformace
|
|
616
|
+
- [EnoGeometryTransformation](../src/integration-engine/enapo/transformations/eno/EnoGeometryTransformation.ts) - transformace geometrických dat
|
|
617
|
+
- Zpracovává polygony ve formátu WKT (Well-Known Text)
|
|
618
|
+
- Přiděluje pořadí (poradi) pro více geometrií se stejným GID
|
|
619
|
+
- Podporuje EPSG kód pro souřadnicový systém
|
|
620
|
+
- data modely
|
|
621
|
+
- [GeometryModel](../src/schema-definitions/models/eno/GeometryModel.ts) tabulka `eno_geometrie`
|
|
622
|
+
- funkce
|
|
623
|
+
- **Stažení geometrií**: Stáhne geometrie pro zadaný seznam GID
|
|
624
|
+
- **Podpora více geometrií**: Jeden GID může mít více geometrií (např. budova s více polygony), každá dostane unikátní pořadí
|
|
625
|
+
- **EPSG kód**: Podporuje různé souřadnicové systémy (výchozí S-JTSK = 5514)
|
|
626
|
+
- unit testy
|
|
627
|
+
- [EnoGeometryTask.test.ts](../test/integration-engine/enapo/task/EnoGeometryTask.test.ts)
|
|
628
|
+
|
|
555
629
|
## Uložení dat
|
|
556
630
|
|
|
557
631
|
- typ databáze
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IEnoBuildingTaskInput.js","sourceRoot":"","sources":["../../../../../src/integration-engine/enapo/workers/interfaces/IEnoBuildingTaskInput.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EnoBuildingTaskInputSchema.js","sourceRoot":"","sources":["../../../../../src/integration-engine/enapo/workers/schema/EnoBuildingTaskInputSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+EAAmG;AAGnG,MAAa,0BAA0B;CAUtC;AAVD,gEAUC;AARG;IADC,IAAA,wBAAM,EAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;;wDACjB;AAGd;IADC,IAAA,0BAAQ,GAAE;;0DACK;AAIhB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;4DACO"}
|