@enervance/insight-cim-model 0.0.17 → 0.0.20

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 (165) hide show
  1. package/dist/config/westnetz-neplan/callbacks/cb-connectivitynode.d.ts +3 -0
  2. package/dist/config/westnetz-neplan/callbacks/cb-connectivitynode.js +93 -13
  3. package/dist/config/westnetz-neplan/callbacks/cb-connectivitynode.js.map +1 -1
  4. package/dist/config/westnetz-neplan/neplan-load.config.js +2 -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 +6 -0
  7. package/dist/config/westnetz-neplan/property-handler-westenergy.config.js +6 -0
  8. package/dist/config/westnetz-neplan/property-handler-westenergy.config.js.map +1 -1
  9. package/dist/constants/cim-class-definition.js +4 -0
  10. package/dist/constants/cim-class-definition.js.map +1 -1
  11. package/dist/constants/cim-class-names.d.ts +2 -0
  12. package/dist/constants/cim-class-names.js +2 -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 +23 -1
  18. package/dist/converter/integral7/ConverterIntegral7.js +309 -16
  19. package/dist/converter/integral7/ConverterIntegral7.js.map +1 -1
  20. package/dist/converter/integral7/model/interfaces.d.ts +39 -0
  21. package/dist/converter/integral7/sql/integral.sql.d.ts +13 -2
  22. package/dist/converter/integral7/sql/integral.sql.js +30 -4
  23. package/dist/converter/integral7/sql/integral.sql.js.map +1 -1
  24. package/dist/converter/integral7/utils.js +14 -8
  25. package/dist/converter/integral7/utils.js.map +1 -1
  26. package/dist/data-structures/graph/GraphObject.d.ts +8 -2
  27. package/dist/data-structures/graph/GraphObject.js +12 -3
  28. package/dist/data-structures/graph/GraphObject.js.map +1 -1
  29. package/dist/data-structures/graph/connections/connection.d.ts +2 -2
  30. package/dist/data-structures/graph/connections/connection.js +2 -2
  31. package/dist/data-structures/graph/connections/connection.js.map +1 -1
  32. package/dist/data-structures/graph/graph-interfaces.d.ts +2 -2
  33. package/dist/data-structures/graph/graph-util.js +1 -1
  34. package/dist/data-structures/graph/graph-util.js.map +1 -1
  35. package/dist/data-structures/graph/graph.d.ts +11 -8
  36. package/dist/data-structures/graph/graph.js +47 -73
  37. package/dist/data-structures/graph/graph.js.map +1 -1
  38. package/dist/data-structures/graph/nodes/GraphNode.d.ts +1 -2
  39. package/dist/data-structures/graph/nodes/GraphNode.js +2 -2
  40. package/dist/data-structures/graph/nodes/GraphNode.js.map +1 -1
  41. package/dist/data-structures/tree/GraphTree.d.ts +24 -0
  42. package/dist/data-structures/tree/GraphTree.js +81 -0
  43. package/dist/data-structures/tree/GraphTree.js.map +1 -0
  44. package/dist/data-structures/tree/GraphTreeEdge.d.ts +22 -0
  45. package/dist/data-structures/tree/{TreeEdge.js → GraphTreeEdge.js} +5 -5
  46. package/dist/data-structures/tree/GraphTreeEdge.js.map +1 -0
  47. package/dist/data-structures/tree/GraphTreeNode.d.ts +21 -0
  48. package/dist/data-structures/tree/{TreeNode.js → GraphTreeNode.js} +11 -7
  49. package/dist/data-structures/tree/GraphTreeNode.js.map +1 -0
  50. package/dist/data-structures/tree/GraphTreeObject.d.ts +10 -0
  51. package/dist/data-structures/tree/GraphTreeObject.js +22 -0
  52. package/dist/data-structures/tree/GraphTreeObject.js.map +1 -0
  53. package/dist/data-structures/tree/tree-interfaces.d.ts +1 -0
  54. package/dist/etl-neplan/etl-neplan-contingency-analysis.js +0 -2
  55. package/dist/etl-neplan/etl-neplan-contingency-analysis.js.map +1 -1
  56. package/dist/etl-neplan/etl-neplan-csv.d.ts +16 -3
  57. package/dist/etl-neplan/etl-neplan-csv.js +204 -56
  58. package/dist/etl-neplan/etl-neplan-csv.js.map +1 -1
  59. package/dist/etl-neplan/etl-neplan-feederline.d.ts +1 -1
  60. package/dist/etl-neplan/etl-neplan-feederline.js +16 -3
  61. package/dist/etl-neplan/etl-neplan-feederline.js.map +1 -1
  62. package/dist/etl-neplan/etl-neplan.d.ts +2 -1
  63. package/dist/etl-neplan/etl-neplan.js +105 -42
  64. package/dist/etl-neplan/etl-neplan.js.map +1 -1
  65. package/dist/etl-neplan/neplan-contingency-analysis.d.ts +1 -1
  66. package/dist/etl-neplan/neplan-contingency-analysis.js +29 -12
  67. package/dist/etl-neplan/neplan-contingency-analysis.js.map +1 -1
  68. package/dist/index.d.ts +12 -4
  69. package/dist/index.js +17 -1
  70. package/dist/index.js.map +1 -1
  71. package/dist/interfaces/default-values-config.d.ts +14 -0
  72. package/dist/interfaces/model/assets/IAnalytic.d.ts +9 -0
  73. package/dist/interfaces/model/assets/IAnalytic.js +3 -0
  74. package/dist/interfaces/model/assets/IAnalytic.js.map +1 -0
  75. package/dist/interfaces/model/assets/IDocument.d.ts +4 -0
  76. package/dist/interfaces/model/assets/IDocument.js +3 -0
  77. package/dist/interfaces/model/assets/IDocument.js.map +1 -0
  78. package/dist/model/assets/Analytic.d.ts +21 -0
  79. package/dist/model/assets/Analytic.js +85 -0
  80. package/dist/model/assets/Analytic.js.map +1 -0
  81. package/dist/model/assets/AnalyticKind.d.ts +8 -0
  82. package/dist/model/assets/AnalyticKind.js +13 -0
  83. package/dist/model/assets/AnalyticKind.js.map +1 -0
  84. package/dist/model/assets/AnalyticScore.js.map +1 -1
  85. package/dist/model/assets/Asset.d.ts +7 -0
  86. package/dist/model/assets/Asset.js +15 -0
  87. package/dist/model/assets/Asset.js.map +1 -1
  88. package/dist/model/assets/AssetUser.d.ts +8 -0
  89. package/dist/model/assets/AssetUser.js +48 -0
  90. package/dist/model/assets/AssetUser.js.map +1 -0
  91. package/dist/model/assets/HealthScore.js.map +1 -1
  92. package/dist/model/common/ActivityRecord.js.map +1 -1
  93. package/dist/model/common/Document.d.ts +3 -1
  94. package/dist/model/common/Document.js.map +1 -1
  95. package/dist/model/core/ConductingEquipment.js.map +1 -1
  96. package/dist/model/core/ConnectivityNode.js +0 -2
  97. package/dist/model/core/ConnectivityNode.js.map +1 -1
  98. package/dist/model/core/IdentifiedObject.js +2 -1
  99. package/dist/model/core/IdentifiedObject.js.map +1 -1
  100. package/dist/model/core/Terminal.js +9 -2
  101. package/dist/model/core/Terminal.js.map +1 -1
  102. package/dist/model/diagram/DiagramObject.d.ts +1 -0
  103. package/dist/model/diagram/DiagramObject.js +37 -28
  104. package/dist/model/diagram/DiagramObject.js.map +1 -1
  105. package/dist/model/extensions/enervance/assets/EVAnalytic.d.ts +11 -0
  106. package/dist/model/extensions/enervance/assets/EVAnalytic.js +58 -0
  107. package/dist/model/extensions/enervance/assets/EVAnalytic.js.map +1 -0
  108. package/dist/model/extensions/enervance/operations/EVTerminalAction.js +7 -2
  109. package/dist/model/extensions/enervance/operations/EVTerminalAction.js.map +1 -1
  110. package/dist/model/extensions/neplan-westnetz/assets/WNFacility.js.map +1 -1
  111. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.d.ts +2 -1
  112. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js +19 -1
  113. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js.map +1 -1
  114. package/dist/model/extensions/neplan-westnetz/wires/WNEnergyConsumer.d.ts +6 -1
  115. package/dist/model/extensions/neplan-westnetz/wires/WNEnergyConsumer.js +62 -12
  116. package/dist/model/extensions/neplan-westnetz/wires/WNEnergyConsumer.js.map +1 -1
  117. package/dist/model/model/Model.d.ts +12 -0
  118. package/dist/model/model/Model.js +35 -0
  119. package/dist/model/model/Model.js.map +1 -1
  120. package/dist/model/topology/TopologicalNode.js +0 -2
  121. package/dist/model/topology/TopologicalNode.js.map +1 -1
  122. package/dist/model/wires/ACLineSegment.js +8 -0
  123. package/dist/model/wires/ACLineSegment.js.map +1 -1
  124. package/dist/model/wires/Conductor.js +4 -0
  125. package/dist/model/wires/Conductor.js.map +1 -1
  126. package/dist/model/wires/EarthFaultCompensator.js.map +1 -1
  127. package/dist/model/wires/EnergyConsumer.d.ts +2 -0
  128. package/dist/model/wires/EnergyConsumer.js +8 -0
  129. package/dist/model/wires/EnergyConsumer.js.map +1 -1
  130. package/dist/model/wires/EnergySource.js.map +1 -1
  131. package/dist/model/wires/GroundingImpedance.d.ts +10 -0
  132. package/dist/model/wires/GroundingImpedance.js +42 -0
  133. package/dist/model/wires/GroundingImpedance.js.map +1 -0
  134. package/dist/model/wires/Junction.d.ts +1 -1
  135. package/dist/model/wires/PetersenCoil.d.ts +6 -0
  136. package/dist/model/wires/PetersenCoil.js +59 -0
  137. package/dist/model/wires/PetersenCoil.js.map +1 -1
  138. package/dist/model/wires/PowerTransformerEnd.d.ts +2 -0
  139. package/dist/model/wires/PowerTransformerEnd.js +6 -0
  140. package/dist/model/wires/PowerTransformerEnd.js.map +1 -1
  141. package/dist/model/wires/TransformerEnd.d.ts +5 -0
  142. package/dist/model/wires/TransformerEnd.js +15 -3
  143. package/dist/model/wires/TransformerEnd.js.map +1 -1
  144. package/dist/util/sparql/sparql-utils.d.ts +5 -2
  145. package/dist/util/sparql/sparql-utils.js +14 -7
  146. package/dist/util/sparql/sparql-utils.js.map +1 -1
  147. package/dist/util/util-search.d.ts +0 -3
  148. package/dist/util/util-search.js +1 -10
  149. package/dist/util/util-search.js.map +1 -1
  150. package/dist/util/util-topology.js +4 -2
  151. package/dist/util/util-topology.js.map +1 -1
  152. package/dist/util/utils.d.ts +3 -1
  153. package/dist/util/utils.js +45 -4
  154. package/dist/util/utils.js.map +1 -1
  155. package/package.json +11 -2
  156. package/dist/data-structures/tree/Tree.d.ts +0 -20
  157. package/dist/data-structures/tree/Tree.js +0 -49
  158. package/dist/data-structures/tree/Tree.js.map +0 -1
  159. package/dist/data-structures/tree/TreeEdge.d.ts +0 -22
  160. package/dist/data-structures/tree/TreeEdge.js.map +0 -1
  161. package/dist/data-structures/tree/TreeNode.d.ts +0 -20
  162. package/dist/data-structures/tree/TreeNode.js.map +0 -1
  163. package/dist/data-structures/tree/TreeObject.d.ts +0 -5
  164. package/dist/data-structures/tree/TreeObject.js +0 -11
  165. package/dist/data-structures/tree/TreeObject.js.map +0 -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"));
@@ -49,6 +49,8 @@ const ConformLoad_1 = require("../../model/loadmodel/ConformLoad");
49
49
  const LinearShuntCompensator_1 = require("../../model/wires/LinearShuntCompensator");
50
50
  const SynchronousMachineOperatingMode_1 = require("../../model/wires/SynchronousMachineOperatingMode");
51
51
  const StaticVarCompensator_1 = require("../../model/wires/StaticVarCompensator");
52
+ const PetersenCoil_1 = require("../../model/wires/PetersenCoil");
53
+ const GroundingImpedance_1 = require("../../model/wires/GroundingImpedance");
52
54
  class ConverterIntegral7 {
53
55
  constructor() {
54
56
  this.limit = 100;
@@ -61,6 +63,7 @@ class ConverterIntegral7 {
61
63
  this.knotenSoIDs = [];
62
64
  this.knotenSfIDs = [];
63
65
  this.leitungsIDs = [];
66
+ this.kdrosseltypen = new Map();
64
67
  this.integralStandorte = new Map();
65
68
  this.integralSchaltanlagen = new Map();
66
69
  this.integralSchaltanlagenAbschnitte = new Map();
@@ -74,6 +77,16 @@ class ConverterIntegral7 {
74
77
  this.integralLeitungen = new Map();
75
78
  this.memoryObjects = new Map();
76
79
  this.leitungAnschlussKnotenIDs = new Set();
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
+ };
77
90
  this.knotenSpannung = new Map();
78
91
  this.substationVoltagelevels = new Map();
79
92
  this.cimModel = new __1.Model();
@@ -128,7 +141,7 @@ class ConverterIntegral7 {
128
141
  const profilesSV = [__1.RDF_XML.SV_OPER_PROFILE_URI];
129
142
  this.cimModel.toCIMXML(svProfileExportObjects.xmlWriter, modelSVUUID, profilesSV, [modelEQUUID, modelSSHUUID], __1.RDF_XML.AMP_MAS);
130
143
  const ampI7ProfileExportObjects = utils_1.createProfileExportObjects(tempDirPath, 'amp_i7.xml');
131
- this.writeHeaderStart(ampI7ProfileExportObjects.xmlWriter);
144
+ this.writeHeaderStart(ampI7ProfileExportObjects.xmlWriter, __1.RDF_XML.AMP_I7_PROFILE_URI);
132
145
  const modelAmpI7UUID = __1.generateUUID();
133
146
  const profilesAmpI7UUID = [__1.RDF_XML.AMP_I7_PROFILE_URI];
134
147
  this.cimModel.toCIMXML(ampI7ProfileExportObjects.xmlWriter, modelAmpI7UUID, profilesAmpI7UUID, [modelEQUUID], __1.RDF_XML.AMP_MAS);
@@ -138,6 +151,7 @@ class ConverterIntegral7 {
138
151
  yield this.convertStromkreise();
139
152
  yield this.convertBetriebsmitteltypenLeitung();
140
153
  yield this.convertBetriebsmitteltypenTrafo();
154
+ yield this.convertBetriebsmitteltypenKdrossel();
141
155
  yield this.convertNetzvarianten();
142
156
  this.objectToCIMXML(eqProfileExportObjects.xmlWriter, this.cimModel.geographicalRegions, __1.RDF_XML.PROFILE_EQ, defaultValuesConfig);
143
157
  this.objectToCIMXML(eqProfileExportObjects.xmlWriter, this.cimModel.subgeographicalRegions, __1.RDF_XML.PROFILE_EQ, defaultValuesConfig);
@@ -165,6 +179,9 @@ class ConverterIntegral7 {
165
179
  yield this.convertSchaltfelder(schaltanlagenAbschnittIDs);
166
180
  }
167
181
  this.schaltfeldIDs = [...this.integralSchaltfelder.keys()];
182
+ const stpSchieneID = yield this.convertSternpunktSchienen(standortIDs);
183
+ yield this.convertKdrossel(stpSchieneID);
184
+ yield this.convertStpSchaltelemente(stpSchieneID);
168
185
  if (schaltanlagenAbschnittIDs.length > 0) {
169
186
  yield this.convertQuerkupplungen(schaltanlagenAbschnittIDs);
170
187
  }
@@ -215,6 +232,9 @@ class ConverterIntegral7 {
215
232
  if (knotenSoIDs.length > 0 || this.knotenSfIDs.length > 0) {
216
233
  yield this.convertStatcom([...knotenSoIDs, ...this.knotenSfIDs]);
217
234
  }
235
+ if (knotenSoIDs.length > 0 || this.knotenSfIDs.length > 0) {
236
+ yield this.convertSVC([...knotenSoIDs, ...this.knotenSfIDs]);
237
+ }
218
238
  const containerStarreVerbindungen = [...this.schaltfeldIDs, ...this.querkupplungIDs, ...this.laengskupplungIDs];
219
239
  if (containerStarreVerbindungen.length > 0) {
220
240
  yield this.convertStarreVerbindungen(containerStarreVerbindungen);
@@ -523,6 +543,14 @@ class ConverterIntegral7 {
523
543
  this.objectToCIMXML(eqProfileExportObjects.xmlWriter, this.cimModel.csConverter, __1.RDF_XML.PROFILE_EQ, defaultValuesConfig);
524
544
  this.objectToCIMXML(eqProfileExportObjects.xmlWriter, this.cimModel.acDCConverterDCTerminals, __1.RDF_XML.PROFILE_EQ, defaultValuesConfig);
525
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();
526
554
  this.cimModel.dcConverterUnit.clear();
527
555
  this.cimModel.vsConverter.clear();
528
556
  this.cimModel.csConverter.clear();
@@ -623,37 +651,37 @@ class ConverterIntegral7 {
623
651
  queryAnschlussIDs() {
624
652
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
625
653
  try {
626
- 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]}`) : [];
627
655
  for (const result of results) {
628
656
  this.leitungAnschlussKnotenIDs.add(result[`aknoten`]);
629
657
  this.leitungAnschlussKnotenIDs.add(result[`eknoten`]);
630
658
  }
631
- 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]}`) : [];
632
660
  for (const result of results) {
633
661
  this.leitungAnschlussKnotenIDs.add(result[`anetzobjekt`]);
634
662
  this.leitungAnschlussKnotenIDs.add(result[`enetzobjekt`]);
635
663
  }
636
- 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]}`) : [];
637
665
  for (const result of results) {
638
666
  this.leitungAnschlussKnotenIDs.add(result[`aknoten`]);
639
667
  this.leitungAnschlussKnotenIDs.add(result[`eknoten`]);
640
668
  }
641
- 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]}`) : [];
642
670
  for (const result of results) {
643
671
  this.leitungAnschlussKnotenIDs.add(result[`aknoten`]);
644
672
  this.leitungAnschlussKnotenIDs.add(result[`eknoten`]);
645
673
  }
646
- 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]}`) : [];
647
675
  for (const result of results) {
648
676
  this.leitungAnschlussKnotenIDs.add(result[`aknoten`]);
649
677
  this.leitungAnschlussKnotenIDs.add(result[`eknoten`]);
650
678
  }
651
- 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]}`) : [];
652
680
  for (const result of results) {
653
681
  this.leitungAnschlussKnotenIDs.add(result[`aknoten`]);
654
682
  this.leitungAnschlussKnotenIDs.add(result[`eknoten`]);
655
683
  }
656
- 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]}`) : [];
657
685
  for (const result of results) {
658
686
  this.leitungAnschlussKnotenIDs.add(result[`aknoten`]);
659
687
  this.leitungAnschlussKnotenIDs.add(result[`eknoten`]);
@@ -782,6 +810,113 @@ class ConverterIntegral7 {
782
810
  }
783
811
  });
784
812
  }
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 {
820
+ stpSchieneIDs.push(i7DataSchiene.id);
821
+ const connectivityNode = new __1.ConnectivityNode(__1.generateUUID(), utils_2.getName(i7DataSchiene), `StpSchiene_${i7DataSchiene.id}`);
822
+ const junction = new __1.Junction(__1.generateUUID(), 'StpJunction', `${i7DataSchiene.bezeichner}`);
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);
827
+ this.integralID2UUID.set(i7DataSchiene.id, connectivityNode.mrid);
828
+ this.stpImpModel.stpSchieneTerminal.set(i7DataSchiene.id, terminal);
829
+ }
830
+ catch (e) {
831
+ console.log(e);
832
+ }
833
+ }
834
+ }
835
+ else {
836
+ console.log(`Tabelle ${integral_sql_1.Integral7TableNames.STERNPUNKT_SCHIENE} ist nicht vorhanden.`);
837
+ }
838
+ resolve(stpSchieneIDs);
839
+ }));
840
+ }
841
+ convertKdrossel(stpScheinenID) {
842
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
843
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
844
+ try {
845
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_IMPEDANZ)) {
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
+ }
870
+ }
871
+ }
872
+ else {
873
+ console.log(`Kdrossel Keine Sternpunktschienen vorhanden.`);
874
+ }
875
+ }
876
+ else {
877
+ console.log(`Tabelle ${integral_sql_1.Integral7TableNames.STERNPUNKT_IMPEDANZ} ist nicht vorhanden.`);
878
+ }
879
+ }
880
+ catch (e) {
881
+ console.log(e);
882
+ }
883
+ finally {
884
+ resolve('');
885
+ }
886
+ }));
887
+ });
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
+ }
785
920
  covertSchaltanlagen(standortIDs, defaultValuesConfig) {
786
921
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
787
922
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.SCHALTANLAGE)) {
@@ -1383,6 +1518,53 @@ class ConverterIntegral7 {
1383
1518
  }
1384
1519
  });
1385
1520
  }
1521
+ convertSVC(knotenSfIDs) {
1522
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1523
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.SVC)) {
1524
+ const result = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.SVC, 0, 0, knotenSfIDs));
1525
+ for (const i7Data of result) {
1526
+ const statVarCom = new StaticVarCompensator_1.StaticVarCompensator(__1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.kurzname);
1527
+ const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
1528
+ __1.createSvStatus(this.cimModel, inBetrieb, statVarCom);
1529
+ const connectivityNode = this.cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss));
1530
+ let terminal;
1531
+ if (connectivityNode) {
1532
+ terminal = __1.createConnection(this.cimModel, statVarCom, connectivityNode, __1.PhaseCode.ABC);
1533
+ const equipmentContainer = utils_2.determineEquipmentContainer('VoltageLevel', this.cimModel, this.cimModel.getObject(connectivityNode.getConnectivityNodeContainerUUID()));
1534
+ if (equipmentContainer) {
1535
+ statVarCom.equipmentContainerUUID = equipmentContainer.mrid;
1536
+ }
1537
+ else {
1538
+ console.log(`SVC ${i7Data.id} besitzt keinen EquipmentContainer.`);
1539
+ }
1540
+ }
1541
+ else {
1542
+ console.log(`SVC ${i7Data.id} besitzt keinen ConnectivityNode.`);
1543
+ }
1544
+ const regulatingControl = utils_2.createRegulatingControl(`SVC_${statVarCom.name}`, inBetrieb, __1.UnitMultiplier.k, __1.RegulatingControlModeKind.voltage, this.cimModel, statVarCom);
1545
+ const uref = utils_2.isNumericI7(i7Data.uref) ? utils_2.convertToNumberI7(i7Data.uref) : undefined;
1546
+ regulatingControl.targetValue = uref;
1547
+ statVarCom.voltageSetPoint = uref;
1548
+ const flagOS = utils_2.convertToBooleanI7(i7Data.flag_os);
1549
+ if (flagOS && i7Data.trafo) {
1550
+ this.statcomRegulatingControls.set(i7Data.trafo, regulatingControl);
1551
+ this.cimModel.regulatingControl.delete(regulatingControl.mrid);
1552
+ }
1553
+ else if (terminal) {
1554
+ regulatingControl.terminalUUID = terminal.mrid;
1555
+ }
1556
+ else {
1557
+ console.log(`Statcom RegulatingControl ${i7Data.id} besitzt keinen Anschluss.`);
1558
+ }
1559
+ this.cimModel.addStaticVarCompensator(statVarCom);
1560
+ this.integralID2UUID.set(i7Data.id, statVarCom.mrid);
1561
+ }
1562
+ }
1563
+ else {
1564
+ console.log(`Tabelle ${integral_sql_1.Integral7TableNames.STATCOM} ist nicht vorhanden.`);
1565
+ }
1566
+ });
1567
+ }
1386
1568
  addTerminal2StatcomRegulatingControl(i7TrafoID, powerTransformer) {
1387
1569
  var _a;
1388
1570
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
@@ -1415,9 +1597,15 @@ class ConverterIntegral7 {
1415
1597
  const result = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.KNOTEN_SF, 0, 0, schaltfeldIDs));
1416
1598
  for (const i7Data of result) {
1417
1599
  const connectivityNode = new __1.ConnectivityNode(__1.getUUID(i7Data.guid), 'knotensf cn', 'knotensf');
1600
+ const isInmemory = this.checkMemoryObject(i7Data.id, connectivityNode);
1418
1601
  const bay = this.cimModel.getBay(this.integralID2UUID.get(i7Data.schaltfeld));
1419
1602
  if (bay) {
1420
- connectivityNode.connectivityNodeContainerUUID = bay.mrid;
1603
+ if (isInmemory) {
1604
+ connectivityNode.connectivityNodeContainerUUID = bay.voltageLevelUUID;
1605
+ }
1606
+ else {
1607
+ connectivityNode.connectivityNodeContainerUUID = bay.mrid;
1608
+ }
1421
1609
  }
1422
1610
  else {
1423
1611
  console.log(`KnotenSf ${i7Data.id} besitzt kein Schaltfeld.`);
@@ -1426,7 +1614,6 @@ class ConverterIntegral7 {
1426
1614
  this.cimModel.addConnectivityNode(connectivityNode);
1427
1615
  this.integralID2UUID.set(i7Data.id, connectivityNode.mrid);
1428
1616
  this.knotenSpannung.set(connectivityNode.mrid, connectivityNode.getBaseVoltage());
1429
- this.checkMemoryObject(i7Data.id, connectivityNode);
1430
1617
  }
1431
1618
  }
1432
1619
  else {
@@ -2056,9 +2243,21 @@ class ConverterIntegral7 {
2056
2243
  });
2057
2244
  }
2058
2245
  convertTrafo2W(limit, offset) {
2246
+ var _a;
2059
2247
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
2060
2248
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.TRAFO2W)) {
2061
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
+ }
2062
2261
  for (const i7Data of result) {
2063
2262
  const powerTransformer = new __1.PowerTransformer(__1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.id + '', i7Data.bezeichner);
2064
2263
  const powerTransformerInfo = this.cimModel.getPowerTransformer2WInfoByName(i7Data.nametyp);
@@ -2108,6 +2307,11 @@ class ConverterIntegral7 {
2108
2307
  if (terminal) {
2109
2308
  powerTransformerEnd1.terminalUUID = terminal.mrid;
2110
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
+ }
2111
2315
  }
2112
2316
  else {
2113
2317
  console.log(`Wicklung2W ${i7Data.id} ${powerTransformerEnd1.endNumber} ${powerTransformerEnd1.mrid} besitzt keine Terminalinstanz.`);
@@ -2141,6 +2345,11 @@ class ConverterIntegral7 {
2141
2345
  if (terminal2) {
2142
2346
  powerTransformerEnd2.terminalUUID = terminal2.mrid;
2143
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
+ }
2144
2353
  }
2145
2354
  else {
2146
2355
  console.log(`Wicklung2W ${i7Data.id} ${powerTransformerEnd2.endNumber} ${powerTransformerEnd2.mrid} besitzt keine Terminalinstanz.`);
@@ -2176,15 +2385,24 @@ class ConverterIntegral7 {
2176
2385
  const result = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.TRAFO3W, limit, offset, []));
2177
2386
  const trafoIDs = result.map(obj => obj['id']);
2178
2387
  const trafoWicklungen = new Map();
2388
+ const trafoWicklungIDs = [];
2179
2389
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.TRAFO3_WICKLUNG) && trafoIDs.length) {
2180
2390
  const wicklungenResult = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.TRAFO3_WICKLUNG, 0, 0, trafoIDs));
2181
2391
  for (const wicklung of wicklungenResult) {
2182
2392
  trafoWicklungen.set(wicklung.id, wicklung);
2393
+ trafoWicklungIDs.push(wicklung.id);
2183
2394
  }
2184
2395
  }
2185
2396
  else {
2186
2397
  console.log(`Tabelle ${integral_sql_1.Integral7TableNames.TRAFO3_WICKLUNG} ist nicht vorhanden.`);
2187
2398
  }
2399
+ const sternpunktKnotenMap = new Map();
2400
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_KNOTEN) && trafoWicklungIDs.length) {
2401
+ const sternpunktKnotenResult = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.STERNPUNKT_KNOTEN, 0, 0, trafoWicklungIDs));
2402
+ for (const spKnoten of sternpunktKnotenResult) {
2403
+ sternpunktKnotenMap.set(spKnoten.netzobjekt, spKnoten);
2404
+ }
2405
+ }
2188
2406
  for (const i7Data of result) {
2189
2407
  const powerTransformer = new __1.PowerTransformer(__1.getUUID(i7Data.guid), utils_2.getName(i7Data), i7Data.id + '', i7Data.bezeichner);
2190
2408
  const powerTransformerInfo = this.cimModel.getPowerTransformer3WInfoByName(i7Data.nametyp);
@@ -2249,6 +2467,9 @@ class ConverterIntegral7 {
2249
2467
  if (terminal1) {
2250
2468
  powerTransformerEnd1.terminalUUID = terminal1.mrid;
2251
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
+ }
2252
2473
  }
2253
2474
  else {
2254
2475
  console.log(`Wicklung3W ${i7Data.id} ${powerTransformerEnd1.endNumber} ${powerTransformerEnd1.mrid} besitzt keine Terminalinstanz.`);
@@ -2292,6 +2513,9 @@ class ConverterIntegral7 {
2292
2513
  if (terminal2) {
2293
2514
  powerTransformerEnd2.terminalUUID = terminal2.mrid;
2294
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
+ }
2295
2519
  }
2296
2520
  else {
2297
2521
  console.log(`Wicklung3W ${i7Data.id} ${powerTransformerEnd2.endNumber} ${powerTransformerEnd2.mrid} besitzt keine Terminalinstanz.`);
@@ -2335,6 +2559,9 @@ class ConverterIntegral7 {
2335
2559
  if (terminal3) {
2336
2560
  powerTransformerEnd3.terminalUUID = terminal3.mrid;
2337
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
+ }
2338
2565
  }
2339
2566
  else {
2340
2567
  console.log(`Wicklung ${i7Data.id} ${powerTransformerEnd3.endNumber} ${powerTransformerEnd3.mrid} besitzt keine Terminalinstanz.`);
@@ -2359,6 +2586,56 @@ class ConverterIntegral7 {
2359
2586
  }
2360
2587
  });
2361
2588
  }
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`);
2622
+ }
2623
+ }
2624
+ }
2625
+ }
2626
+ convertBetriebsmitteltypenKdrossel() {
2627
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
2628
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.TYP_KDROSSEL)) {
2629
+ const result = yield this.queryFunctionWrapper(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.TYP_KDROSSEL, 0, 0, []));
2630
+ for (const i7Data of result) {
2631
+ this.kdrosseltypen.set(i7Data.name, i7Data);
2632
+ }
2633
+ }
2634
+ else {
2635
+ console.log(`Tabelle ${integral_sql_1.Integral7TableNames.TYP_KDROSSEL} ist nicht vorhanden.`);
2636
+ }
2637
+ });
2638
+ }
2362
2639
  convertLaengsdrosseln(limit, offset, defaultValuesConfig) {
2363
2640
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
2364
2641
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSDROSSEL)) {
@@ -2399,11 +2676,10 @@ class ConverterIntegral7 {
2399
2676
  else {
2400
2677
  console.log(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keine Terminalinstanz.`);
2401
2678
  }
2402
- const substationUUID = this.integralID2UUID.get(i7Data.standort);
2403
2679
  const subVlData = this.substationVoltagelevels.get(i7Data.standort);
2404
- const vlUUID = subVlData.find(elem => elem.un === i7Data.ur);
2680
+ const vlUUID = getVoltageLevelByVoltage(subVlData, ur);
2405
2681
  if (vlUUID) {
2406
- seriesCompensator.equipmentContainerUUID = vlUUID.vlUUID;
2682
+ seriesCompensator.equipmentContainerUUID = vlUUID;
2407
2683
  }
2408
2684
  else {
2409
2685
  console.log(`Längsdrossel ${i7Data.id} besitzt kein VoltageLevel Ur ${i7Data.ur}.`);
@@ -2461,9 +2737,9 @@ class ConverterIntegral7 {
2461
2737
  }
2462
2738
  const substationUUID = this.integralID2UUID.get(i7Data.standort);
2463
2739
  const subVlData = this.substationVoltagelevels.get(i7Data.standort);
2464
- const vlUUID = subVlData.find(elem => elem.un === i7Data.ur);
2740
+ const vlUUID = getVoltageLevelByVoltage(subVlData, ur);
2465
2741
  if (vlUUID) {
2466
- seriesCompensator.equipmentContainerUUID = vlUUID.vlUUID;
2742
+ seriesCompensator.equipmentContainerUUID = vlUUID;
2467
2743
  }
2468
2744
  else {
2469
2745
  console.log(`Längskondensator ${i7Data.id} besitzt kein VoltageLevel Ur ${i7Data.ur}.`);
@@ -3127,7 +3403,9 @@ class ConverterIntegral7 {
3127
3403
  checkMemoryObject(i7ID, cimObject) {
3128
3404
  if (this.leitungAnschlussKnotenIDs.has(i7ID)) {
3129
3405
  this.memoryObjects.set(i7ID, cimObject);
3406
+ return true;
3130
3407
  }
3408
+ return false;
3131
3409
  }
3132
3410
  queryFunctionWrapper(query) {
3133
3411
  return new Promise((resolve, reject) => {
@@ -3175,4 +3453,19 @@ class ConverterIntegral7 {
3175
3453
  }
3176
3454
  }
3177
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;
3178
3471
  //# sourceMappingURL=ConverterIntegral7.js.map