@enervance/insight-cim-model 0.0.19 → 0.0.21

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.
Files changed (66) hide show
  1. package/dist/config/westnetz-neplan/callbacks/cb-connectivitynode.d.ts +1 -0
  2. package/dist/config/westnetz-neplan/callbacks/cb-connectivitynode.js +28 -0
  3. package/dist/config/westnetz-neplan/callbacks/cb-connectivitynode.js.map +1 -1
  4. package/dist/config/westnetz-neplan/neplan-load.config.js +1 -0
  5. package/dist/config/westnetz-neplan/neplan-load.config.js.map +1 -1
  6. package/dist/config/westnetz-neplan/property-handler-westenergy.config.d.ts +3 -0
  7. package/dist/config/westnetz-neplan/property-handler-westenergy.config.js +3 -0
  8. package/dist/config/westnetz-neplan/property-handler-westenergy.config.js.map +1 -1
  9. package/dist/constants/cim-class-definition.js +2 -0
  10. package/dist/constants/cim-class-definition.js.map +1 -1
  11. package/dist/constants/cim-class-names.d.ts +1 -0
  12. package/dist/constants/cim-class-names.js +1 -0
  13. package/dist/constants/cim-class-names.js.map +1 -1
  14. package/dist/constants/init-data/RZ.d.ts +1 -0
  15. package/dist/constants/init-data/RZ.js +61 -0
  16. package/dist/constants/init-data/RZ.js.map +1 -0
  17. package/dist/converter/integral7/ConverterIntegral7.d.ts +18 -4
  18. package/dist/converter/integral7/ConverterIntegral7.js +203 -90
  19. package/dist/converter/integral7/ConverterIntegral7.js.map +1 -1
  20. package/dist/converter/integral7/model/interfaces.d.ts +9 -0
  21. package/dist/converter/integral7/sql/integral.sql.js +1 -1
  22. package/dist/converter/integral7/sql/integral.sql.js.map +1 -1
  23. package/dist/etl-neplan/etl-neplan-csv.d.ts +6 -0
  24. package/dist/etl-neplan/etl-neplan-csv.js +36 -8
  25. package/dist/etl-neplan/etl-neplan-csv.js.map +1 -1
  26. package/dist/etl-neplan/etl-neplan-feederline.js.map +1 -1
  27. package/dist/etl-neplan/etl-neplan.d.ts +2 -1
  28. package/dist/etl-neplan/etl-neplan.js +89 -31
  29. package/dist/etl-neplan/etl-neplan.js.map +1 -1
  30. package/dist/etl-neplan/neplan-contingency-analysis.js +9 -0
  31. package/dist/etl-neplan/neplan-contingency-analysis.js.map +1 -1
  32. package/dist/index.d.ts +6 -3
  33. package/dist/index.js +9 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/model/assets/AssetUser.d.ts +8 -0
  36. package/dist/model/assets/AssetUser.js +48 -0
  37. package/dist/model/assets/AssetUser.js.map +1 -0
  38. package/dist/model/core/ConductingEquipment.js.map +1 -1
  39. package/dist/model/core/ConnectivityNode.js.map +1 -1
  40. package/dist/model/core/Terminal.js +9 -2
  41. package/dist/model/core/Terminal.js.map +1 -1
  42. package/dist/model/diagram/DiagramObject.js +0 -2
  43. package/dist/model/diagram/DiagramObject.js.map +1 -1
  44. package/dist/model/extensions/enervance/operations/EVTerminalAction.js +7 -2
  45. package/dist/model/extensions/enervance/operations/EVTerminalAction.js.map +1 -1
  46. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.d.ts +2 -1
  47. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js +13 -1
  48. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js.map +1 -1
  49. package/dist/model/extensions/neplan-westnetz/wires/WNEnergyConsumer.d.ts +3 -0
  50. package/dist/model/extensions/neplan-westnetz/wires/WNEnergyConsumer.js +60 -8
  51. package/dist/model/extensions/neplan-westnetz/wires/WNEnergyConsumer.js.map +1 -1
  52. package/dist/model/model/Model.d.ts +4 -0
  53. package/dist/model/model/Model.js +9 -0
  54. package/dist/model/model/Model.js.map +1 -1
  55. package/dist/model/wires/EnergyConsumer.js.map +1 -1
  56. package/dist/model/wires/GroundingImpedance.d.ts +2 -0
  57. package/dist/model/wires/GroundingImpedance.js +10 -0
  58. package/dist/model/wires/GroundingImpedance.js.map +1 -1
  59. package/dist/model/wires/PetersenCoil.js +2 -0
  60. package/dist/model/wires/PetersenCoil.js.map +1 -1
  61. package/dist/util/util-topology.js +4 -2
  62. package/dist/util/util-topology.js.map +1 -1
  63. package/dist/util/utils.d.ts +3 -1
  64. package/dist/util/utils.js +43 -2
  65. package/dist/util/utils.js.map +1 -1
  66. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConverterIntegral7 = void 0;
3
+ exports.getVoltageLevelByVoltage = exports.ConverterIntegral7 = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const __1 = require("../..");
6
6
  const mysql = tslib_1.__importStar(require("mysql"));
@@ -77,7 +77,16 @@ class ConverterIntegral7 {
77
77
  this.integralLeitungen = new Map();
78
78
  this.memoryObjects = new Map();
79
79
  this.leitungAnschlussKnotenIDs = new Set();
80
- this.stpSchieneJunctionUUIDs = new Map();
80
+ this.stpImpModel = {
81
+ stpSchieneJunctionUUIDs: new Map(),
82
+ stpSchieneTerminal: new Map(),
83
+ junctionUUIDstpImp: new Map(),
84
+ junctions: new Map(),
85
+ petersenCoils: new Map(),
86
+ groundingImpedances: new Map(),
87
+ connectivityNodes: new Map(),
88
+ terminals: new Map()
89
+ };
81
90
  this.knotenSpannung = new Map();
82
91
  this.substationVoltagelevels = new Map();
83
92
  this.cimModel = new __1.Model();
@@ -132,7 +141,7 @@ class ConverterIntegral7 {
132
141
  const profilesSV = [__1.RDF_XML.SV_OPER_PROFILE_URI];
133
142
  this.cimModel.toCIMXML(svProfileExportObjects.xmlWriter, modelSVUUID, profilesSV, [modelEQUUID, modelSSHUUID], __1.RDF_XML.AMP_MAS);
134
143
  const ampI7ProfileExportObjects = utils_1.createProfileExportObjects(tempDirPath, 'amp_i7.xml');
135
- this.writeHeaderStart(ampI7ProfileExportObjects.xmlWriter);
144
+ this.writeHeaderStart(ampI7ProfileExportObjects.xmlWriter, __1.RDF_XML.AMP_I7_PROFILE_URI);
136
145
  const modelAmpI7UUID = __1.generateUUID();
137
146
  const profilesAmpI7UUID = [__1.RDF_XML.AMP_I7_PROFILE_URI];
138
147
  this.cimModel.toCIMXML(ampI7ProfileExportObjects.xmlWriter, modelAmpI7UUID, profilesAmpI7UUID, [modelEQUUID], __1.RDF_XML.AMP_MAS);
@@ -170,7 +179,9 @@ class ConverterIntegral7 {
170
179
  yield this.convertSchaltfelder(schaltanlagenAbschnittIDs);
171
180
  }
172
181
  this.schaltfeldIDs = [...this.integralSchaltfelder.keys()];
173
- const stpSchieneID = yield this.convertSternpunktSchienen(standortIDs, defaultValuesConfig);
182
+ const stpSchieneID = yield this.convertSternpunktSchienen(standortIDs);
183
+ yield this.convertKdrossel(stpSchieneID);
184
+ yield this.convertStpSchaltelemente(stpSchieneID);
174
185
  if (schaltanlagenAbschnittIDs.length > 0) {
175
186
  yield this.convertQuerkupplungen(schaltanlagenAbschnittIDs);
176
187
  }
@@ -532,6 +543,14 @@ class ConverterIntegral7 {
532
543
  this.objectToCIMXML(eqProfileExportObjects.xmlWriter, this.cimModel.csConverter, __1.RDF_XML.PROFILE_EQ, defaultValuesConfig);
533
544
  this.objectToCIMXML(eqProfileExportObjects.xmlWriter, this.cimModel.acDCConverterDCTerminals, __1.RDF_XML.PROFILE_EQ, defaultValuesConfig);
534
545
  this.objectToCIMXML(eqProfileExportObjects.xmlWriter, this.cimModel.dcNodes, __1.RDF_XML.PROFILE_EQ, defaultValuesConfig);
546
+ this.objectToCIMXML(eqProfileExportObjects.xmlWriter, this.stpImpModel.connectivityNodes, __1.RDF_XML.PROFILE_EQ, defaultValuesConfig);
547
+ this.stpImpModel.connectivityNodes.clear();
548
+ this.objectToCIMXML(eqProfileExportObjects.xmlWriter, this.stpImpModel.junctions, __1.RDF_XML.PROFILE_EQ, defaultValuesConfig);
549
+ this.stpImpModel.junctions.clear();
550
+ this.objectToCIMXML(eqProfileExportObjects.xmlWriter, this.stpImpModel.petersenCoils, __1.RDF_XML.PROFILE_EQ, defaultValuesConfig);
551
+ this.stpImpModel.petersenCoils.clear();
552
+ this.objectToCIMXML(eqProfileExportObjects.xmlWriter, this.stpImpModel.groundingImpedances, __1.RDF_XML.PROFILE_EQ, defaultValuesConfig);
553
+ this.stpImpModel.groundingImpedances.clear();
535
554
  this.cimModel.dcConverterUnit.clear();
536
555
  this.cimModel.vsConverter.clear();
537
556
  this.cimModel.csConverter.clear();
@@ -632,37 +651,37 @@ class ConverterIntegral7 {
632
651
  queryAnschlussIDs() {
633
652
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
634
653
  try {
635
- let results = yield this.queryFunctionWrapper(`SELECT DISTINCT aknoten, eknoten FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.LEITUNG]}`);
654
+ let results = this.isTableAvailable(integral_sql_1.Integral7TableNames.LEITUNG) ? yield this.queryFunctionWrapper(`SELECT DISTINCT aknoten, eknoten FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.LEITUNG]}`) : [];
636
655
  for (const result of results) {
637
656
  this.leitungAnschlussKnotenIDs.add(result[`aknoten`]);
638
657
  this.leitungAnschlussKnotenIDs.add(result[`eknoten`]);
639
658
  }
640
- results = yield this.queryFunctionWrapper(`SELECT DISTINCT anetzobjekt, enetzobjekt FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.HGUE_LEITUNG]}`);
659
+ results = this.isTableAvailable(integral_sql_1.Integral7TableNames.HGUE_LEITUNG) ? yield this.queryFunctionWrapper(`SELECT DISTINCT anetzobjekt, enetzobjekt FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.HGUE_LEITUNG]}`) : [];
641
660
  for (const result of results) {
642
661
  this.leitungAnschlussKnotenIDs.add(result[`anetzobjekt`]);
643
662
  this.leitungAnschlussKnotenIDs.add(result[`enetzobjekt`]);
644
663
  }
645
- results = yield this.queryFunctionWrapper(`SELECT DISTINCT aknoten, eknoten FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.TRAFO2W]}`);
664
+ results = this.isTableAvailable(integral_sql_1.Integral7TableNames.TRAFO2W) ? yield this.queryFunctionWrapper(`SELECT DISTINCT aknoten, eknoten FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.TRAFO2W]}`) : [];
646
665
  for (const result of results) {
647
666
  this.leitungAnschlussKnotenIDs.add(result[`aknoten`]);
648
667
  this.leitungAnschlussKnotenIDs.add(result[`eknoten`]);
649
668
  }
650
- results = yield this.queryFunctionWrapper(`SELECT DISTINCT aknoten, eknoten FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.TRAFO3_WICKLUNG]}`);
669
+ results = this.isTableAvailable(integral_sql_1.Integral7TableNames.TRAFO3_WICKLUNG) ? yield this.queryFunctionWrapper(`SELECT DISTINCT aknoten, eknoten FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.TRAFO3_WICKLUNG]}`) : [];
651
670
  for (const result of results) {
652
671
  this.leitungAnschlussKnotenIDs.add(result[`aknoten`]);
653
672
  this.leitungAnschlussKnotenIDs.add(result[`eknoten`]);
654
673
  }
655
- results = yield this.queryFunctionWrapper(`SELECT DISTINCT aknoten, eknoten FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.LAENGSDROSSEL]}`);
674
+ results = this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSDROSSEL) ? yield this.queryFunctionWrapper(`SELECT DISTINCT aknoten, eknoten FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.LAENGSDROSSEL]}`) : [];
656
675
  for (const result of results) {
657
676
  this.leitungAnschlussKnotenIDs.add(result[`aknoten`]);
658
677
  this.leitungAnschlussKnotenIDs.add(result[`eknoten`]);
659
678
  }
660
- results = yield this.queryFunctionWrapper(`SELECT DISTINCT aknoten, eknoten FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.ERSATZLAENGSZWEIG]}`);
679
+ results = this.isTableAvailable(integral_sql_1.Integral7TableNames.ERSATZLAENGSZWEIG) ? yield this.queryFunctionWrapper(`SELECT DISTINCT aknoten, eknoten FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.ERSATZLAENGSZWEIG]}`) : [];
661
680
  for (const result of results) {
662
681
  this.leitungAnschlussKnotenIDs.add(result[`aknoten`]);
663
682
  this.leitungAnschlussKnotenIDs.add(result[`eknoten`]);
664
683
  }
665
- results = yield this.queryFunctionWrapper(`SELECT DISTINCT aknoten, eknoten FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.LAENGSKONDENSATOR]}`);
684
+ results = this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSKONDENSATOR) ? yield this.queryFunctionWrapper(`SELECT DISTINCT aknoten, eknoten FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.LAENGSKONDENSATOR]}`) : [];
666
685
  for (const result of results) {
667
686
  this.leitungAnschlussKnotenIDs.add(result[`aknoten`]);
668
687
  this.leitungAnschlussKnotenIDs.add(result[`eknoten`]);
@@ -791,59 +810,71 @@ class ConverterIntegral7 {
791
810
  }
792
811
  });
793
812
  }
794
- convertSternpunktSchienen(standortIDs, defaultValuesConfig) {
795
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
796
- return new Promise((reject, resolve) => tslib_1.__awaiter(this, void 0, void 0, function* () {
797
- const stpSchieneIDs = [];
798
- if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_SCHIENE)) {
799
- const stpSchiene = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.STERNPUNKT_SCHIENE, 0, 0, standortIDs));
800
- for (const i7DataSchiene of stpSchiene) {
813
+ convertSternpunktSchienen(standortIDs) {
814
+ return new Promise((resolve) => tslib_1.__awaiter(this, void 0, void 0, function* () {
815
+ const stpSchieneIDs = [];
816
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_SCHIENE)) {
817
+ const stpSchiene = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.STERNPUNKT_SCHIENE, 0, 0, standortIDs));
818
+ for (const i7DataSchiene of stpSchiene) {
819
+ try {
801
820
  stpSchieneIDs.push(i7DataSchiene.id);
802
821
  const connectivityNode = new __1.ConnectivityNode(__1.generateUUID(), utils_2.getName(i7DataSchiene), `StpSchiene_${i7DataSchiene.id}`);
803
822
  const junction = new __1.Junction(__1.generateUUID(), 'StpJunction', `${i7DataSchiene.bezeichner}`);
804
- __1.createConnection(this.cimModel, junction, connectivityNode, __1.PhaseCode.N);
805
- const substation = this.cimModel.getObject(this.integralID2UUID.get(i7DataSchiene.standort));
806
- if (substation) {
807
- connectivityNode.connectivityNodeContainerUUID = substation.mrid;
808
- junction.equipmentContainerUUID = substation.mrid;
809
- }
810
- this.cimModel.addConnectivityNode(connectivityNode);
811
- this.cimModel.addJunction(junction);
812
- this.stpSchieneJunctionUUIDs.set(i7DataSchiene.id, junction.mrid);
823
+ const terminal = __1.createConnection(this.cimModel, junction, connectivityNode, __1.PhaseCode.N);
824
+ this.stpImpModel.connectivityNodes.set(connectivityNode.mrid, connectivityNode);
825
+ this.stpImpModel.junctions.set(junction.mrid, junction);
826
+ this.stpImpModel.stpSchieneJunctionUUIDs.set(i7DataSchiene.id, junction.mrid);
813
827
  this.integralID2UUID.set(i7DataSchiene.id, connectivityNode.mrid);
828
+ this.stpImpModel.stpSchieneTerminal.set(i7DataSchiene.id, terminal);
829
+ }
830
+ catch (e) {
831
+ console.log(e);
814
832
  }
815
833
  }
816
- else {
817
- console.log(`Tabelle ${integral_sql_1.Integral7TableNames.KNOTEN_SO} ist nicht vorhanden.`);
818
- }
819
- resolve(stpSchieneIDs);
820
- }));
821
- });
834
+ }
835
+ else {
836
+ console.log(`Tabelle ${integral_sql_1.Integral7TableNames.STERNPUNKT_SCHIENE} ist nicht vorhanden.`);
837
+ }
838
+ resolve(stpSchieneIDs);
839
+ }));
822
840
  }
823
841
  convertKdrossel(stpScheinenID) {
824
842
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
825
843
  return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
826
844
  try {
827
845
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_IMPEDANZ)) {
828
- const result = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.STERNPUNKT_IMPEDANZ, 0, 0, stpScheinenID));
829
- for (const i7Data of result) {
830
- const kdType = this.kdrosseltypen.get(i7Data.nametyp);
831
- const imax = utils_2.isNumericI7(i7Data.imax) ? i7Data.imax : (utils_2.isNumericI7(kdType === null || kdType === void 0 ? void 0 : kdType.imax) ? kdType === null || kdType === void 0 ? void 0 : kdType.imax : undefined);
832
- const imin = utils_2.isNumericI7(i7Data.imin) ? i7Data.imin : (utils_2.isNumericI7(kdType === null || kdType === void 0 ? void 0 : kdType.imin) ? kdType === null || kdType === void 0 ? void 0 : kdType.imin : undefined);
833
- if (imax && imin) {
834
- const petersenCoil = new PetersenCoil_1.PetersenCoil(__1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.id + '');
835
- this.cimModel.addPetersenCoil(petersenCoil);
836
- }
837
- else {
838
- const groundingImpedance = new GroundingImpedance_1.GroundingImpedance(__1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.id + '');
839
- groundingImpedance.r = utils_2.isNumericI7(i7Data.rne) ? i7Data.rne : (utils_2.isNumericI7(kdType === null || kdType === void 0 ? void 0 : kdType.rne) ? kdType === null || kdType === void 0 ? void 0 : kdType.rne : undefined);
840
- groundingImpedance.x = utils_2.isNumericI7(i7Data.xne) ? i7Data.xne : (utils_2.isNumericI7(kdType === null || kdType === void 0 ? void 0 : kdType.xne) ? kdType === null || kdType === void 0 ? void 0 : kdType.xne : undefined);
841
- this.cimModel.addGroundingImpedance(groundingImpedance);
846
+ if (stpScheinenID.length) {
847
+ const result = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.STERNPUNKT_IMPEDANZ, 0, 0, stpScheinenID));
848
+ for (const i7Data of result) {
849
+ const kdType = this.kdrosseltypen.get(i7Data.nametyp);
850
+ const imax = utils_2.isNumericI7(i7Data.imax) ? i7Data.imax : (utils_2.isNumericI7(kdType === null || kdType === void 0 ? void 0 : kdType.imax) ? kdType === null || kdType === void 0 ? void 0 : kdType.imax : undefined);
851
+ const imin = utils_2.isNumericI7(i7Data.imin) ? i7Data.imin : (utils_2.isNumericI7(kdType === null || kdType === void 0 ? void 0 : kdType.imin) ? kdType === null || kdType === void 0 ? void 0 : kdType.imin : undefined);
852
+ const connectivityNode = this.stpImpModel.connectivityNodes.get(this.integralID2UUID.get(i7Data.anschluss));
853
+ const junctionUUID = this.stpImpModel.stpSchieneJunctionUUIDs.get((i7Data.anschluss));
854
+ if (imax && imin) {
855
+ const petersenCoil = new PetersenCoil_1.PetersenCoil(__1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.id + '');
856
+ if (connectivityNode)
857
+ __1.createConnection(this.cimModel, petersenCoil, connectivityNode, __1.PhaseCode.N);
858
+ this.stpImpModel.petersenCoils.set(petersenCoil.mrid, petersenCoil);
859
+ this.stpImpModel.junctionUUIDstpImp.set(junctionUUID, petersenCoil);
860
+ }
861
+ else {
862
+ const groundingImpedance = new GroundingImpedance_1.GroundingImpedance(__1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.id + '');
863
+ groundingImpedance.r = utils_2.isNumericI7(i7Data.rne) ? i7Data.rne : (utils_2.isNumericI7(kdType === null || kdType === void 0 ? void 0 : kdType.rne) ? kdType === null || kdType === void 0 ? void 0 : kdType.rne : undefined);
864
+ groundingImpedance.x = utils_2.isNumericI7(i7Data.xne) ? i7Data.xne : (utils_2.isNumericI7(kdType === null || kdType === void 0 ? void 0 : kdType.xne) ? kdType === null || kdType === void 0 ? void 0 : kdType.xne : undefined);
865
+ if (connectivityNode)
866
+ __1.createConnection(this.cimModel, groundingImpedance, connectivityNode, __1.PhaseCode.N);
867
+ this.stpImpModel.groundingImpedances.set(groundingImpedance.mrid, groundingImpedance);
868
+ this.stpImpModel.junctionUUIDstpImp.set(junctionUUID, groundingImpedance);
869
+ }
842
870
  }
843
871
  }
872
+ else {
873
+ console.log(`Kdrossel Keine Sternpunktschienen vorhanden.`);
874
+ }
844
875
  }
845
876
  else {
846
- console.log(`Tabelle ${integral_sql_1.Integral7TableNames.KNOTEN_SO} ist nicht vorhanden.`);
877
+ console.log(`Tabelle ${integral_sql_1.Integral7TableNames.STERNPUNKT_IMPEDANZ} ist nicht vorhanden.`);
847
878
  }
848
879
  }
849
880
  catch (e) {
@@ -855,6 +886,37 @@ class ConverterIntegral7 {
855
886
  }));
856
887
  });
857
888
  }
889
+ convertStpSchaltelemente(stpScheinenID) {
890
+ return new Promise((resolve) => tslib_1.__awaiter(this, void 0, void 0, function* () {
891
+ try {
892
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_SCHALTER)) {
893
+ if (stpScheinenID.length) {
894
+ const result = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.STERNPUNKT_SCHALTER, 0, 0, stpScheinenID));
895
+ for (const i7Data of result) {
896
+ const terminal = this.stpImpModel.stpSchieneTerminal.get(i7Data.eknoten);
897
+ if (terminal) {
898
+ terminal.connected = utils_2.isBooleanI7(i7Data.schaltzustand) ? utils_2.convertToBooleanI7(i7Data.schaltzustand) : true;
899
+ }
900
+ this.stpImpModel.stpSchieneJunctionUUIDs.set(i7Data.id, this.stpImpModel.stpSchieneJunctionUUIDs.get(i7Data.eknoten));
901
+ this.stpImpModel.stpSchieneJunctionUUIDs.set(i7Data.aknoten, this.stpImpModel.stpSchieneJunctionUUIDs.get(i7Data.eknoten));
902
+ }
903
+ }
904
+ else {
905
+ console.log(`StpSchaltelemente Keine Sternpunktschienen vorhanden.`);
906
+ }
907
+ }
908
+ else {
909
+ console.log(`Tabelle ${integral_sql_1.Integral7TableNames.STERNPUNKT_SCHALTER} ist nicht vorhanden.`);
910
+ }
911
+ }
912
+ catch (e) {
913
+ console.log(e);
914
+ }
915
+ finally {
916
+ resolve('');
917
+ }
918
+ }));
919
+ }
858
920
  covertSchaltanlagen(standortIDs, defaultValuesConfig) {
859
921
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
860
922
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.SCHALTANLAGE)) {
@@ -1535,9 +1597,15 @@ class ConverterIntegral7 {
1535
1597
  const result = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.KNOTEN_SF, 0, 0, schaltfeldIDs));
1536
1598
  for (const i7Data of result) {
1537
1599
  const connectivityNode = new __1.ConnectivityNode(__1.getUUID(i7Data.guid), 'knotensf cn', 'knotensf');
1600
+ const isInmemory = this.checkMemoryObject(i7Data.id, connectivityNode);
1538
1601
  const bay = this.cimModel.getBay(this.integralID2UUID.get(i7Data.schaltfeld));
1539
1602
  if (bay) {
1540
- connectivityNode.connectivityNodeContainerUUID = bay.mrid;
1603
+ if (isInmemory) {
1604
+ connectivityNode.connectivityNodeContainerUUID = bay.voltageLevelUUID;
1605
+ }
1606
+ else {
1607
+ connectivityNode.connectivityNodeContainerUUID = bay.mrid;
1608
+ }
1541
1609
  }
1542
1610
  else {
1543
1611
  console.log(`KnotenSf ${i7Data.id} besitzt kein Schaltfeld.`);
@@ -1546,7 +1614,6 @@ class ConverterIntegral7 {
1546
1614
  this.cimModel.addConnectivityNode(connectivityNode);
1547
1615
  this.integralID2UUID.set(i7Data.id, connectivityNode.mrid);
1548
1616
  this.knotenSpannung.set(connectivityNode.mrid, connectivityNode.getBaseVoltage());
1549
- this.checkMemoryObject(i7Data.id, connectivityNode);
1550
1617
  }
1551
1618
  }
1552
1619
  else {
@@ -2176,9 +2243,21 @@ class ConverterIntegral7 {
2176
2243
  });
2177
2244
  }
2178
2245
  convertTrafo2W(limit, offset) {
2246
+ var _a;
2179
2247
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
2180
2248
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.TRAFO2W)) {
2181
2249
  const result = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.TRAFO2W, limit, offset, []));
2250
+ const trafoIDs = result.map(obj => obj['id']);
2251
+ const sternpunktKnotenMap = new Map();
2252
+ for (const elem of trafoIDs) {
2253
+ sternpunktKnotenMap.set(elem, new Map());
2254
+ }
2255
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_KNOTEN) && trafoIDs.length) {
2256
+ const sternpunktKnotenResult = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.STERNPUNKT_KNOTEN, 0, 0, trafoIDs));
2257
+ for (const spKnoten of sternpunktKnotenResult) {
2258
+ (_a = sternpunktKnotenMap.get(spKnoten.netzobjekt)) === null || _a === void 0 ? void 0 : _a.set(spKnoten.id, spKnoten);
2259
+ }
2260
+ }
2182
2261
  for (const i7Data of result) {
2183
2262
  const powerTransformer = new __1.PowerTransformer(__1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.id + '', i7Data.bezeichner);
2184
2263
  const powerTransformerInfo = this.cimModel.getPowerTransformer2WInfoByName(i7Data.nametyp);
@@ -2228,6 +2307,11 @@ class ConverterIntegral7 {
2228
2307
  if (terminal) {
2229
2308
  powerTransformerEnd1.terminalUUID = terminal.mrid;
2230
2309
  this.setConductingEquipmentCurrentLimit('W1 ' + powerTransformer.name, terminal.mrid, ir1);
2310
+ if (sternpunktKnotenMap.has(i7Data.id)) {
2311
+ if (sternpunktKnotenMap.get(i7Data.id).has(i7Data.aknknoten1p)) {
2312
+ this.convertTrafoGrounding(i7Data.id, powerTransformerEnd1, terminal.connectivityNodeUUID, sternpunktKnotenMap.get(i7Data.id).get(i7Data.aknknoten1p), i7Data.standort);
2313
+ }
2314
+ }
2231
2315
  }
2232
2316
  else {
2233
2317
  console.log(`Wicklung2W ${i7Data.id} ${powerTransformerEnd1.endNumber} ${powerTransformerEnd1.mrid} besitzt keine Terminalinstanz.`);
@@ -2261,6 +2345,11 @@ class ConverterIntegral7 {
2261
2345
  if (terminal2) {
2262
2346
  powerTransformerEnd2.terminalUUID = terminal2.mrid;
2263
2347
  this.setConductingEquipmentCurrentLimit('W2 ' + powerTransformer.name, terminal.mrid, ir2);
2348
+ if (sternpunktKnotenMap.has(i7Data.id)) {
2349
+ if (sternpunktKnotenMap.get(i7Data.id).has(i7Data.eknknoten1p)) {
2350
+ this.convertTrafoGrounding(i7Data.id, powerTransformerEnd2, terminal2.connectivityNodeUUID, sternpunktKnotenMap.get(i7Data.id).get(i7Data.eknknoten1p), i7Data.standort);
2351
+ }
2352
+ }
2264
2353
  }
2265
2354
  else {
2266
2355
  console.log(`Wicklung2W ${i7Data.id} ${powerTransformerEnd2.endNumber} ${powerTransformerEnd2.mrid} besitzt keine Terminalinstanz.`);
@@ -2308,35 +2397,10 @@ class ConverterIntegral7 {
2308
2397
  console.log(`Tabelle ${integral_sql_1.Integral7TableNames.TRAFO3_WICKLUNG} ist nicht vorhanden.`);
2309
2398
  }
2310
2399
  const sternpunktKnotenMap = new Map();
2311
- const sternpunktKnotenIDs = [];
2312
2400
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_KNOTEN) && trafoWicklungIDs.length) {
2313
2401
  const sternpunktKnotenResult = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.STERNPUNKT_KNOTEN, 0, 0, trafoWicklungIDs));
2314
2402
  for (const spKnoten of sternpunktKnotenResult) {
2315
2403
  sternpunktKnotenMap.set(spKnoten.netzobjekt, spKnoten);
2316
- sternpunktKnotenIDs.push(spKnoten.id);
2317
- }
2318
- }
2319
- const sternpunktSchalterMap = new Map();
2320
- const sternpunktSchalterAnschlussIDs = [];
2321
- if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_SCHALTER) && sternpunktKnotenIDs.length) {
2322
- const sternpunktSchalterResult = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.STERNPUNKT_SCHALTER, 0, 0, sternpunktKnotenIDs));
2323
- for (const spSchalter of sternpunktSchalterResult) {
2324
- sternpunktSchalterMap.set(spSchalter.aknoten, spSchalter);
2325
- sternpunktSchalterAnschlussIDs.push(spSchalter.eknoten);
2326
- }
2327
- }
2328
- const sternpunktSchieneMap = new Map();
2329
- if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_SCHIENE) && sternpunktSchalterAnschlussIDs.length) {
2330
- const sternpunktSchieneResult = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.STERNPUNKT_SCHIENE, 0, 0, sternpunktSchalterAnschlussIDs));
2331
- for (const spSchiene of sternpunktSchieneResult) {
2332
- sternpunktSchieneMap.set(spSchiene.id, spSchiene);
2333
- }
2334
- }
2335
- const sternpunktImpendanzMap = new Map();
2336
- if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_IMPEDANZ) && sternpunktSchalterAnschlussIDs.length) {
2337
- const sternpunktImpedanzResult = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.STERNPUNKT_IMPEDANZ, 0, 0, sternpunktSchalterAnschlussIDs));
2338
- for (const spImpedanz of sternpunktImpedanzResult) {
2339
- sternpunktImpendanzMap.set(spImpedanz.id, spImpedanz);
2340
2404
  }
2341
2405
  }
2342
2406
  for (const i7Data of result) {
@@ -2400,10 +2464,12 @@ class ConverterIntegral7 {
2400
2464
  powerTransformerEnd1.powerTransformerUUID = powerTransformer.mrid;
2401
2465
  powerTransformer.addPowerTransformerEnd(powerTransformerEnd1);
2402
2466
  this.cimModel.addPowerTransformerEnd(powerTransformerEnd1);
2403
- this.convertTrafoGrounding(wicklung1.id, powerTransformerEnd1, sternpunktKnotenMap, sternpunktSchalterMap, sternpunktSchieneMap, sternpunktImpendanzMap);
2404
2467
  if (terminal1) {
2405
2468
  powerTransformerEnd1.terminalUUID = terminal1.mrid;
2406
2469
  this.setConductingEquipmentCurrentLimit('W1 ' + powerTransformer.name, terminal1.mrid, ir1);
2470
+ if (sternpunktKnotenMap.has(wicklung1.id)) {
2471
+ this.convertTrafoGrounding(wicklung1.id, powerTransformerEnd1, terminal1.connectivityNodeUUID, sternpunktKnotenMap.get(wicklung1.id), i7Data.standort);
2472
+ }
2407
2473
  }
2408
2474
  else {
2409
2475
  console.log(`Wicklung3W ${i7Data.id} ${powerTransformerEnd1.endNumber} ${powerTransformerEnd1.mrid} besitzt keine Terminalinstanz.`);
@@ -2444,10 +2510,12 @@ class ConverterIntegral7 {
2444
2510
  powerTransformerEnd2.powerTransformerUUID = powerTransformer.mrid;
2445
2511
  powerTransformer.addPowerTransformerEnd(powerTransformerEnd2);
2446
2512
  this.cimModel.addPowerTransformerEnd(powerTransformerEnd2);
2447
- this.convertTrafoGrounding(wicklung2.id, powerTransformerEnd2, sternpunktKnotenMap, sternpunktSchalterMap, sternpunktSchieneMap, sternpunktImpendanzMap);
2448
2513
  if (terminal2) {
2449
2514
  powerTransformerEnd2.terminalUUID = terminal2.mrid;
2450
2515
  this.setConductingEquipmentCurrentLimit('W2 ' + powerTransformer.name, terminal2.mrid, ir2);
2516
+ if (sternpunktKnotenMap.has(wicklung2.id)) {
2517
+ this.convertTrafoGrounding(wicklung2.id, powerTransformerEnd2, terminal2.connectivityNodeUUID, sternpunktKnotenMap.get(wicklung2.id), i7Data.standort);
2518
+ }
2451
2519
  }
2452
2520
  else {
2453
2521
  console.log(`Wicklung3W ${i7Data.id} ${powerTransformerEnd2.endNumber} ${powerTransformerEnd2.mrid} besitzt keine Terminalinstanz.`);
@@ -2488,10 +2556,12 @@ class ConverterIntegral7 {
2488
2556
  powerTransformerEnd3.powerTransformerUUID = powerTransformer.mrid;
2489
2557
  powerTransformer.addPowerTransformerEnd(powerTransformerEnd3);
2490
2558
  this.cimModel.addPowerTransformerEnd(powerTransformerEnd3);
2491
- this.convertTrafoGrounding(wicklung3.id, powerTransformerEnd3, sternpunktKnotenMap, sternpunktSchalterMap, sternpunktSchieneMap, sternpunktImpendanzMap);
2492
2559
  if (terminal3) {
2493
2560
  powerTransformerEnd3.terminalUUID = terminal3.mrid;
2494
2561
  this.setConductingEquipmentCurrentLimit('W3 ' + powerTransformer.name, terminal3.mrid, ir3);
2562
+ if (sternpunktKnotenMap.has(wicklung3.id)) {
2563
+ this.convertTrafoGrounding(wicklung3.id, powerTransformerEnd3, terminal3.connectivityNodeUUID, sternpunktKnotenMap.get(wicklung3.id), i7Data.standort);
2564
+ }
2495
2565
  }
2496
2566
  else {
2497
2567
  console.log(`Wicklung ${i7Data.id} ${powerTransformerEnd3.endNumber} ${powerTransformerEnd3.mrid} besitzt keine Terminalinstanz.`);
@@ -2516,15 +2586,42 @@ class ConverterIntegral7 {
2516
2586
  }
2517
2587
  });
2518
2588
  }
2519
- convertTrafoGrounding(transformerEndID, powerTransformerEnd1, sternpunktKnotenMap, sternpunktSchalterMap, sternpunktSchieneMap, sternpunktImpendanzMap) {
2520
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
2521
- if (sternpunktKnotenMap.has(transformerEndID)) {
2522
- const stpKnoten = sternpunktKnotenMap.get(transformerEndID);
2523
- if (!sternpunktSchalterMap.has(stpKnoten.schaltelement1pelem)) {
2524
- powerTransformerEnd1.grounded = true;
2589
+ convertTrafoGrounding(trafoObjektID, powerTransformerEnd, cnUUID, stpKnoten, standortID) {
2590
+ if (stpKnoten) {
2591
+ const junctionUUID = this.stpImpModel.stpSchieneJunctionUUIDs.get(stpKnoten.schaltelement1pelem);
2592
+ powerTransformerEnd.grounded = true;
2593
+ if (!junctionUUID) {
2594
+ }
2595
+ else {
2596
+ const terminal = new __1.Terminal(__1.generateUUID(), 't_stp_trafo');
2597
+ terminal.connectivityNodeUUID = cnUUID;
2598
+ terminal.conductingEquipmentUUID = junctionUUID;
2599
+ terminal.connected = true;
2600
+ terminal.phases = __1.PhaseCode.N;
2601
+ this.cimModel.addTerminal(terminal);
2602
+ const junction = this.stpImpModel.junctions.get(junctionUUID);
2603
+ const pSpuleGroundImpedance = this.stpImpModel.junctionUUIDstpImp.get(junctionUUID);
2604
+ const subVlData = this.substationVoltagelevels.get(standortID);
2605
+ const vlUUID = getVoltageLevelByVoltage(subVlData, powerTransformerEnd.ratedU);
2606
+ if (!vlUUID) {
2607
+ console.log(`TrafoObjektID ${trafoObjektID} hat kein EquipmentContainer`);
2608
+ }
2609
+ if (junction) {
2610
+ junction.baseVoltageUUID = powerTransformerEnd.baseVoltageUUID;
2611
+ junction.equipmentContainerUUID = vlUUID;
2612
+ }
2613
+ else {
2614
+ console.log(`TrafoObjektID ${trafoObjektID} hat keine Junction ${junctionUUID}`);
2615
+ }
2616
+ if (pSpuleGroundImpedance) {
2617
+ pSpuleGroundImpedance.baseVoltageUUID = powerTransformerEnd.baseVoltageUUID;
2618
+ pSpuleGroundImpedance.equipmentContainerUUID = vlUUID;
2619
+ }
2620
+ else {
2621
+ console.log(`TrafoObjektID ${trafoObjektID} hat keine pSpuleGroundImpedance`);
2525
2622
  }
2526
2623
  }
2527
- });
2624
+ }
2528
2625
  }
2529
2626
  convertBetriebsmitteltypenKdrossel() {
2530
2627
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
@@ -2579,11 +2676,10 @@ class ConverterIntegral7 {
2579
2676
  else {
2580
2677
  console.log(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keine Terminalinstanz.`);
2581
2678
  }
2582
- const substationUUID = this.integralID2UUID.get(i7Data.standort);
2583
2679
  const subVlData = this.substationVoltagelevels.get(i7Data.standort);
2584
- const vlUUID = subVlData.find(elem => elem.un === i7Data.ur);
2680
+ const vlUUID = getVoltageLevelByVoltage(subVlData, ur);
2585
2681
  if (vlUUID) {
2586
- seriesCompensator.equipmentContainerUUID = vlUUID.vlUUID;
2682
+ seriesCompensator.equipmentContainerUUID = vlUUID;
2587
2683
  }
2588
2684
  else {
2589
2685
  console.log(`Längsdrossel ${i7Data.id} besitzt kein VoltageLevel Ur ${i7Data.ur}.`);
@@ -2641,9 +2737,9 @@ class ConverterIntegral7 {
2641
2737
  }
2642
2738
  const substationUUID = this.integralID2UUID.get(i7Data.standort);
2643
2739
  const subVlData = this.substationVoltagelevels.get(i7Data.standort);
2644
- const vlUUID = subVlData.find(elem => elem.un === i7Data.ur);
2740
+ const vlUUID = getVoltageLevelByVoltage(subVlData, ur);
2645
2741
  if (vlUUID) {
2646
- seriesCompensator.equipmentContainerUUID = vlUUID.vlUUID;
2742
+ seriesCompensator.equipmentContainerUUID = vlUUID;
2647
2743
  }
2648
2744
  else {
2649
2745
  console.log(`Längskondensator ${i7Data.id} besitzt kein VoltageLevel Ur ${i7Data.ur}.`);
@@ -3307,7 +3403,9 @@ class ConverterIntegral7 {
3307
3403
  checkMemoryObject(i7ID, cimObject) {
3308
3404
  if (this.leitungAnschlussKnotenIDs.has(i7ID)) {
3309
3405
  this.memoryObjects.set(i7ID, cimObject);
3406
+ return true;
3310
3407
  }
3408
+ return false;
3311
3409
  }
3312
3410
  queryFunctionWrapper(query) {
3313
3411
  return new Promise((resolve, reject) => {
@@ -3355,4 +3453,19 @@ class ConverterIntegral7 {
3355
3453
  }
3356
3454
  }
3357
3455
  exports.ConverterIntegral7 = ConverterIntegral7;
3456
+ function getVoltageLevelByVoltage(subVlData, ur) {
3457
+ let vlUUID;
3458
+ let abstand = 1000;
3459
+ if (subVlData && subVlData.length) {
3460
+ for (const vlData of subVlData) {
3461
+ const abstandAkt = Math.abs(vlData.un - ur);
3462
+ if (abstandAkt < abstand) {
3463
+ abstand = abstandAkt;
3464
+ vlUUID = vlData.vlUUID;
3465
+ }
3466
+ }
3467
+ }
3468
+ return vlUUID;
3469
+ }
3470
+ exports.getVoltageLevelByVoltage = getVoltageLevelByVoltage;
3358
3471
  //# sourceMappingURL=ConverterIntegral7.js.map