@enervance/insight-cim-model 0.0.46 → 0.0.48

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 (253) hide show
  1. package/README.md +41 -22
  2. package/dist/analysis/analysis-neplan/digi-ons.js +0 -2
  3. package/dist/analysis/analysis-neplan/digi-ons.js.map +1 -1
  4. package/dist/config/westnetz-integral7/integral7-load.config.js +1 -1
  5. package/dist/config/westnetz-integral7/integral7-load.config.js.map +1 -1
  6. package/dist/config/westnetz-neplan/callbacks/cb-connectivitynode.d.ts +1 -1
  7. package/dist/config/westnetz-neplan/callbacks/cb-psr.d.ts +1 -1
  8. package/dist/config/westnetz-neplan/callbacks/cb-psr.js +1 -1
  9. package/dist/config/westnetz-neplan/callbacks/cb-wnenergyconsumer.d.ts +1 -1
  10. package/dist/config/westnetz-neplan/neplan-load.config.js +1 -1
  11. package/dist/config/westnetz-neplan/neplan-load.config.js.map +1 -1
  12. package/dist/constants/cim-class-definition.js +0 -2
  13. package/dist/constants/cim-class-definition.js.map +1 -1
  14. package/dist/constants/cim-class-names.d.ts +1 -3
  15. package/dist/constants/cim-class-names.js +1 -3
  16. package/dist/constants/cim-class-names.js.map +1 -1
  17. package/dist/converter/integral7/converter-i7.d.ts +11 -4
  18. package/dist/converter/integral7/converter-i7.js +1231 -375
  19. package/dist/converter/integral7/converter-i7.js.map +1 -1
  20. package/dist/converter/integral7/interface-i7/data-structures-i7.d.ts +15 -1
  21. package/dist/converter/integral7/interface-i7/data-structures-i7.js.map +1 -1
  22. package/dist/converter/integral7/interface-i7/export-frame-i7.d.ts +15 -1
  23. package/dist/converter/integral7/interface-i7/export-frame-i7.js +18 -1
  24. package/dist/converter/integral7/interface-i7/export-frame-i7.js.map +1 -1
  25. package/dist/converter/integral7/model/dl-utils/I7KnotenBeziehung.d.ts +7 -0
  26. package/dist/converter/integral7/model/dl-utils/I7KnotenBeziehung.js +7 -0
  27. package/dist/converter/integral7/model/dl-utils/I7KnotenBeziehung.js.map +1 -0
  28. package/dist/converter/integral7/model/dl-utils/QueryObjectSsabNsg.d.ts +16 -0
  29. package/dist/converter/integral7/model/dl-utils/QueryObjectSsabNsg.js +25 -0
  30. package/dist/converter/integral7/model/dl-utils/QueryObjectSsabNsg.js.map +1 -0
  31. package/dist/converter/integral7/model/dl-utils/constants.d.ts +68 -0
  32. package/dist/converter/integral7/model/dl-utils/constants.js +56 -0
  33. package/dist/converter/integral7/model/dl-utils/constants.js.map +1 -1
  34. package/dist/converter/integral7/model/dl-utils/util-functions.d.ts +26 -0
  35. package/dist/converter/integral7/model/dl-utils/util-functions.js +457 -0
  36. package/dist/converter/integral7/model/dl-utils/util-functions.js.map +1 -0
  37. package/dist/converter/integral7/model/integral/BaseClassTrafoNsg.d.ts +7 -0
  38. package/dist/converter/integral7/model/integral/BaseClassTrafoNsg.js +13 -0
  39. package/dist/converter/integral7/model/integral/BaseClassTrafoNsg.js.map +1 -0
  40. package/dist/converter/integral7/model/integral/SchaltanlageNSG.js.map +1 -1
  41. package/dist/converter/integral7/model/integral/SchaltfeldNsg.d.ts +3 -6
  42. package/dist/converter/integral7/model/integral/SchaltfeldNsg.js.map +1 -1
  43. package/dist/converter/integral7/model/integral/Trafo2wNsg.d.ts +9 -1
  44. package/dist/converter/integral7/model/integral/Trafo2wNsg.js +10 -1
  45. package/dist/converter/integral7/model/integral/Trafo2wNsg.js.map +1 -1
  46. package/dist/converter/integral7/model/integral/Trafo3w.d.ts +11 -0
  47. package/dist/converter/integral7/model/integral/Trafo3w.js +15 -0
  48. package/dist/converter/integral7/model/integral/Trafo3w.js.map +1 -0
  49. package/dist/converter/integral7/model/integral/Trafo3wNsg.d.ts +13 -0
  50. package/dist/converter/integral7/model/integral/Trafo3wNsg.js +19 -0
  51. package/dist/converter/integral7/model/integral/Trafo3wNsg.js.map +1 -0
  52. package/dist/converter/integral7/model/interfaces.d.ts +66 -16
  53. package/dist/converter/integral7/model/interfaces.js.map +1 -1
  54. package/dist/converter/integral7/sql/integral.sql.d.ts +10 -0
  55. package/dist/converter/integral7/sql/integral.sql.js +68 -18
  56. package/dist/converter/integral7/sql/integral.sql.js.map +1 -1
  57. package/dist/converter/integral7/utils-cgmes-export.js +22 -0
  58. package/dist/converter/integral7/utils-cgmes-export.js.map +1 -1
  59. package/dist/converter/integral7/utils-schema.d.ts +3 -1
  60. package/dist/converter/integral7/utils-schema.js +23 -1
  61. package/dist/converter/integral7/utils-schema.js.map +1 -1
  62. package/dist/converter/integral7/utils.js +119 -33
  63. package/dist/converter/integral7/utils.js.map +1 -1
  64. package/dist/index.d.ts +1 -6
  65. package/dist/index.js +1 -11
  66. package/dist/index.js.map +1 -1
  67. package/dist/interfaces/model/core/IIdentifiedObject.d.ts +1 -1
  68. package/dist/interfaces/{persistence.interfaces.js → persistence-interfaces.js} +1 -1
  69. package/dist/interfaces/persistence-interfaces.js.map +1 -0
  70. package/dist/model/core/Bay.d.ts +1 -1
  71. package/dist/model/core/Bay.js +24 -24
  72. package/dist/model/core/Bay.js.map +1 -1
  73. package/dist/model/core/ConductingEquipment.d.ts +1 -1
  74. package/dist/model/core/ConductingEquipment.js +2 -2
  75. package/dist/model/core/ConductingEquipment.js.map +1 -1
  76. package/dist/model/core/ConnectivityNode.js +2 -6
  77. package/dist/model/core/ConnectivityNode.js.map +1 -1
  78. package/dist/model/core/ConnectivityNodeContainer.d.ts +1 -1
  79. package/dist/model/core/ConnectivityNodeContainer.js +2 -2
  80. package/dist/model/core/ConnectivityNodeContainer.js.map +1 -1
  81. package/dist/model/core/Equipment.d.ts +1 -1
  82. package/dist/model/core/Equipment.js +3 -3
  83. package/dist/model/core/Equipment.js.map +1 -1
  84. package/dist/model/core/EquipmentContainer.d.ts +1 -1
  85. package/dist/model/core/EquipmentContainer.js +2 -2
  86. package/dist/model/core/EquipmentContainer.js.map +1 -1
  87. package/dist/model/core/IdentifiedObject.d.ts +3 -8
  88. package/dist/model/core/IdentifiedObject.js +1 -3
  89. package/dist/model/core/IdentifiedObject.js.map +1 -1
  90. package/dist/model/core/PowerSystemResource.d.ts +2 -2
  91. package/dist/model/core/PowerSystemResource.js +2 -2
  92. package/dist/model/core/PowerSystemResource.js.map +1 -1
  93. package/dist/model/core/Substation.d.ts +1 -2
  94. package/dist/model/core/Substation.js +25 -33
  95. package/dist/model/core/Substation.js.map +1 -1
  96. package/dist/model/core/VoltageLevel.d.ts +1 -1
  97. package/dist/model/core/VoltageLevel.js +22 -22
  98. package/dist/model/core/VoltageLevel.js.map +1 -1
  99. package/dist/model/diagram/Diagram.d.ts +1 -1
  100. package/dist/model/diagram/Diagram.js +2 -2
  101. package/dist/model/diagram/Diagram.js.map +1 -1
  102. package/dist/model/diagram/DiagramObject.js.map +1 -1
  103. package/dist/model/equivalents/EquivalentInjection.js +16 -17
  104. package/dist/model/equivalents/EquivalentInjection.js.map +1 -1
  105. package/dist/model/extensions/amprion/core/AMPRIONLine.d.ts +1 -0
  106. package/dist/model/extensions/amprion/core/AMPRIONLine.js.map +1 -1
  107. package/dist/model/extensions/amprion/project/AMPRIONConstructionProject.js +4 -3
  108. package/dist/model/extensions/amprion/project/AMPRIONConstructionProject.js.map +1 -1
  109. package/dist/model/extensions/amprion/project/AMPRIONErpProjectStructure.d.ts +1 -0
  110. package/dist/model/extensions/amprion/project/AMPRIONErpProjectStructure.js +1 -0
  111. package/dist/model/extensions/amprion/project/AMPRIONErpProjectStructure.js.map +1 -1
  112. package/dist/model/extensions/amprion/wires/AMPRIONACLineSegment.d.ts +1 -1
  113. package/dist/model/extensions/amprion/wires/AMPRIONACLineSegment.js +2 -2
  114. package/dist/model/extensions/amprion/wires/AMPRIONACLineSegment.js.map +1 -1
  115. package/dist/model/extensions/enervance/wires/EVACLineSegment.d.ts +1 -1
  116. package/dist/model/extensions/enervance/wires/EVACLineSegment.js +2 -2
  117. package/dist/model/extensions/enervance/wires/EVACLineSegment.js.map +1 -1
  118. package/dist/model/extensions/enervance/wires/EVACLineSubSegment.d.ts +1 -1
  119. package/dist/model/extensions/enervance/wires/EVACLineSubSegment.js +34 -34
  120. package/dist/model/extensions/enervance/wires/EVACLineSubSegment.js.map +1 -1
  121. package/dist/model/extensions/integral/common/INTEGRALMultiplierFactor.js +17 -7
  122. package/dist/model/extensions/integral/common/INTEGRALMultiplierFactor.js.map +1 -1
  123. package/dist/model/extensions/integral/equivalents/INTEGRALEquivalentInjection.d.ts +9 -0
  124. package/dist/model/extensions/integral/equivalents/INTEGRALEquivalentInjection.js +32 -0
  125. package/dist/model/extensions/integral/equivalents/INTEGRALEquivalentInjection.js.map +1 -0
  126. package/dist/model/extensions/integral/loadmodel/INTEGRALConformLoad.d.ts +4 -2
  127. package/dist/model/extensions/integral/loadmodel/INTEGRALConformLoad.js +14 -3
  128. package/dist/model/extensions/integral/loadmodel/INTEGRALConformLoad.js.map +1 -1
  129. package/dist/model/extensions/integral/wires/INTEGRALACLineSegment.js +1 -1
  130. package/dist/model/extensions/integral/wires/INTEGRALACLineSegment.js.map +1 -1
  131. package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.d.ts +4 -0
  132. package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.js +15 -1
  133. package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.js.map +1 -1
  134. package/dist/model/extensions/integral/wires/INTEGRALExternalNetworkInjection.d.ts +6 -0
  135. package/dist/model/extensions/integral/wires/INTEGRALExternalNetworkInjection.js +22 -2
  136. package/dist/model/extensions/integral/wires/INTEGRALExternalNetworkInjection.js.map +1 -1
  137. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.d.ts +4 -0
  138. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.js +12 -1
  139. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.js.map +1 -1
  140. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js.map +1 -1
  141. package/dist/model/extensions/neplan-westnetz/wires/WNACLineSegment.d.ts +1 -1
  142. package/dist/model/extensions/neplan-westnetz/wires/WNACLineSegment.js +46 -46
  143. package/dist/model/extensions/neplan-westnetz/wires/WNACLineSegment.js.map +1 -1
  144. package/dist/model/extensions/neplan-westnetz/wires/WNEnergyConsumer.d.ts +1 -1
  145. package/dist/model/extensions/neplan-westnetz/wires/WNEnergyConsumer.js +89 -89
  146. package/dist/model/wires/ACLineSegment.d.ts +1 -1
  147. package/dist/model/wires/ACLineSegment.js +2 -2
  148. package/dist/model/wires/ACLineSegment.js.map +1 -1
  149. package/dist/model/wires/BusbarSection.d.ts +1 -1
  150. package/dist/model/wires/BusbarSection.js +22 -22
  151. package/dist/model/wires/BusbarSection.js.map +1 -1
  152. package/dist/model/wires/Conductor.d.ts +1 -1
  153. package/dist/model/wires/Conductor.js +2 -2
  154. package/dist/model/wires/Conductor.js.map +1 -1
  155. package/dist/model/wires/Connector.d.ts +1 -1
  156. package/dist/model/wires/Connector.js +2 -2
  157. package/dist/model/wires/Connector.js.map +1 -1
  158. package/dist/model/wires/Disconnector.js +1 -1
  159. package/dist/model/wires/Disconnector.js.map +1 -1
  160. package/dist/model/wires/EnergyConsumer.js.map +1 -1
  161. package/dist/model/wires/EnergySource.d.ts +1 -1
  162. package/dist/model/wires/EnergySource.js +47 -47
  163. package/dist/model/wires/EnergySource.js.map +1 -1
  164. package/dist/model/wires/LoadBreakSwitch.js +1 -1
  165. package/dist/model/wires/LoadBreakSwitch.js.map +1 -1
  166. package/dist/model/wires/Switch.js +10 -5
  167. package/dist/model/wires/Switch.js.map +1 -1
  168. package/dist/model/wires/SynchronousMachine.d.ts +1 -1
  169. package/dist/util/sparql/sparql-utils.d.ts +1 -1
  170. package/dist/util/sparql/sparql-utils.js +97 -97
  171. package/dist/util/util-create.js +18 -25
  172. package/dist/util/util-create.js.map +1 -1
  173. package/package.json +93 -93
  174. package/dist/constants/cim.sourcesystem.d.ts +0 -6
  175. package/dist/constants/cim.sourcesystem.js +0 -11
  176. package/dist/constants/cim.sourcesystem.js.map +0 -1
  177. package/dist/converter/integral7/model/dl-utils/SsabNsg.d.ts +0 -30
  178. package/dist/converter/integral7/model/dl-utils/SsabNsg.js +0 -179
  179. package/dist/converter/integral7/model/dl-utils/SsabNsg.js.map +0 -1
  180. package/dist/factory/factory-interfaces.d.ts +0 -26
  181. package/dist/factory/factory-interfaces.js +0 -3
  182. package/dist/factory/factory-interfaces.js.map +0 -1
  183. package/dist/factory/object-factory.d.ts +0 -7
  184. package/dist/factory/object-factory.js +0 -37
  185. package/dist/factory/object-factory.js.map +0 -1
  186. package/dist/factory/sparql-factory.d.ts +0 -6
  187. package/dist/factory/sparql-factory.js +0 -16
  188. package/dist/factory/sparql-factory.js.map +0 -1
  189. package/dist/interfaces/persistence.interfaces.js.map +0 -1
  190. package/dist/model/alternate-models/AlternateModel.d.ts +0 -10
  191. package/dist/model/alternate-models/AlternateModel.js +0 -17
  192. package/dist/model/alternate-models/AlternateModel.js.map +0 -1
  193. package/dist/model/alternate-models/AlternateModelGroup.d.ts +0 -8
  194. package/dist/model/alternate-models/AlternateModelGroup.js +0 -22
  195. package/dist/model/alternate-models/AlternateModelGroup.js.map +0 -1
  196. package/dist/model/extensions/enervance/diagram/EVDiagram.d.ts +0 -5
  197. package/dist/model/extensions/enervance/diagram/EVDiagram.js +0 -17
  198. package/dist/model/extensions/enervance/diagram/EVDiagram.js.map +0 -1
  199. package/dist/model/extensions/enervance/model/EVModel.d.ts +0 -11
  200. package/dist/model/extensions/enervance/model/EVModel.js +0 -45
  201. package/dist/model/extensions/enervance/model/EVModel.js.map +0 -1
  202. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine copy.d.ts +0 -8
  203. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine copy.js +0 -34
  204. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine copy.js.map +0 -1
  205. package/dist/model/generic-data-set/ChangeSet.d.ts +0 -8
  206. package/dist/model/generic-data-set/ChangeSet.js +0 -13
  207. package/dist/model/generic-data-set/ChangeSet.js.map +0 -1
  208. package/dist/model/generic-data-set/ChangeSetMember.d.ts +0 -8
  209. package/dist/model/generic-data-set/ChangeSetMember.js +0 -11
  210. package/dist/model/generic-data-set/ChangeSetMember.js.map +0 -1
  211. package/dist/model/generic-data-set/DataSet.d.ts +0 -10
  212. package/dist/model/generic-data-set/DataSet.js +0 -16
  213. package/dist/model/generic-data-set/DataSet.js.map +0 -1
  214. package/dist/model/generic-data-set/InstanceSet.d.ts +0 -8
  215. package/dist/model/generic-data-set/InstanceSet.js +0 -13
  216. package/dist/model/generic-data-set/InstanceSet.js.map +0 -1
  217. package/dist/model/generic-data-set/ObjectCreation.d.ts +0 -4
  218. package/dist/model/generic-data-set/ObjectCreation.js +0 -15
  219. package/dist/model/generic-data-set/ObjectCreation.js.map +0 -1
  220. package/dist/model/generic-data-set/ObjectDeletion.d.ts +0 -4
  221. package/dist/model/generic-data-set/ObjectDeletion.js +0 -15
  222. package/dist/model/generic-data-set/ObjectDeletion.js.map +0 -1
  223. package/dist/model/generic-data-set/ObjectModification.d.ts +0 -6
  224. package/dist/model/generic-data-set/ObjectModification.js +0 -11
  225. package/dist/model/generic-data-set/ObjectModification.js.map +0 -1
  226. package/dist/model/generic-data-set/ObjectReverseModification.d.ts +0 -6
  227. package/dist/model/generic-data-set/ObjectReverseModification.js +0 -11
  228. package/dist/model/generic-data-set/ObjectReverseModification.js.map +0 -1
  229. package/dist/model/model-operations/DatasetArg.d.ts +0 -6
  230. package/dist/model/model-operations/DatasetArg.js +0 -11
  231. package/dist/model/model-operations/DatasetArg.js.map +0 -1
  232. package/dist/model/model-operations/IncrementalDatasetArg.d.ts +0 -8
  233. package/dist/model/model-operations/IncrementalDatasetArg.js +0 -11
  234. package/dist/model/model-operations/IncrementalDatasetArg.js.map +0 -1
  235. package/dist/model/model-operations/IncrementalDatasetArgDescription.d.ts +0 -6
  236. package/dist/model/model-operations/IncrementalDatasetArgDescription.js +0 -12
  237. package/dist/model/model-operations/IncrementalDatasetArgDescription.js.map +0 -1
  238. package/dist/model/model-operations/ModelOperation.d.ts +0 -7
  239. package/dist/model/model-operations/ModelOperation.js +0 -11
  240. package/dist/model/model-operations/ModelOperation.js.map +0 -1
  241. package/dist/model/model-operations/ModelOperationArg.d.ts +0 -5
  242. package/dist/model/model-operations/ModelOperationArg.js +0 -11
  243. package/dist/model/model-operations/ModelOperationArg.js.map +0 -1
  244. package/dist/model/model-operations/ModelOperationArgDescription.d.ts +0 -8
  245. package/dist/model/model-operations/ModelOperationArgDescription.js +0 -11
  246. package/dist/model/model-operations/ModelOperationArgDescription.js.map +0 -1
  247. package/dist/model/model-operations/ModelOperationDescription.d.ts +0 -7
  248. package/dist/model/model-operations/ModelOperationDescription.js +0 -13
  249. package/dist/model/model-operations/ModelOperationDescription.js.map +0 -1
  250. package/dist/util/cim.model.util.d.ts +0 -4
  251. package/dist/util/cim.model.util.js +0 -257
  252. package/dist/util/cim.model.util.js.map +0 -1
  253. /package/dist/interfaces/{persistence.interfaces.d.ts → persistence-interfaces.d.ts} +0 -0
@@ -96,7 +96,6 @@ const ReactiveCapabilityCurve_1 = require("../../model/wires/ReactiveCapabilityC
96
96
  const RegulatingControl_1 = require("../../model/wires/RegulatingControl");
97
97
  const RegulatingControlModeKind_1 = require("../../model/wires/RegulatingControlModeKind");
98
98
  const StaticVarCompensator_1 = require("../../model/wires/StaticVarCompensator");
99
- const SynchronousMachine_1 = require("../../model/wires/SynchronousMachine");
100
99
  const SynchronousMachineKind_1 = require("../../model/wires/SynchronousMachineKind");
101
100
  const SynchronousMachineOperatingMode_1 = require("../../model/wires/SynchronousMachineOperatingMode");
102
101
  const TapChangerControl_1 = require("../../model/wires/TapChangerControl");
@@ -115,7 +114,6 @@ const data_structures_i7_1 = require("./interface-i7/data-structures-i7");
115
114
  const export_frame_i7_1 = require("./interface-i7/export-frame-i7");
116
115
  const KnotenSo_1 = require("./model/integral/KnotenSo");
117
116
  const Leitung_1 = require("./model/integral/Leitung");
118
- const Point_1 = require("./model/integral/Point");
119
117
  const Schaltanlage_1 = require("./model/integral/Schaltanlage");
120
118
  const Schaltanlagenabschnitt_1 = require("./model/integral/Schaltanlagenabschnitt");
121
119
  const SchaltanlagenabschnittNsg_1 = require("./model/integral/SchaltanlagenabschnittNsg");
@@ -129,10 +127,15 @@ const utils_schema_1 = require("./utils-schema");
129
127
  const utils_trafo3w_1 = require("./utils-trafo3w");
130
128
  const INTEGRALModel_1 = require("../../model/extensions/integral/model/INTEGRALModel");
131
129
  const constants_1 = require("./model/dl-utils/constants");
132
- const SsabNsg_1 = require("./model/dl-utils/SsabNsg");
130
+ const util_functions_1 = require("./model/dl-utils/util-functions");
133
131
  const Laengskupplung_1 = require("./model/integral/Laengskupplung");
134
132
  const INTEGRALConformLoad_1 = require("../../model/extensions/integral/loadmodel/INTEGRALConformLoad");
133
+ const Trafo2wNsg_1 = require("./model/integral/Trafo2wNsg");
134
+ const Trafo3wNsg_1 = require("./model/integral/Trafo3wNsg");
135
+ const SchaltfeldNsg_1 = require("./model/integral/SchaltfeldNsg");
135
136
  const AngleDegrees_1 = require("../../model/domain/AngleDegrees");
137
+ const AsynchronousMachineKind_1 = require("../../model/wires/AsynchronousMachineKind");
138
+ const INTEGRALEquivalentInjection_1 = require("../../model/extensions/integral/equivalents/INTEGRALEquivalentInjection");
136
139
  class ConverterI7 {
137
140
  constructor() {
138
141
  this.exportFrames = new Map();
@@ -233,7 +236,7 @@ class ConverterI7 {
233
236
  }
234
237
  catch (e) {
235
238
  this.logger.error(e);
236
- console.error("ERROR:" + e);
239
+ console.error('ERROR:' + e);
237
240
  reject({ status: 'error', message: e.toString() });
238
241
  }
239
242
  finally {
@@ -509,7 +512,7 @@ class ConverterI7 {
509
512
  .then((result) => {
510
513
  for (const i7Data of result) {
511
514
  const i7Schluessel = integral_prefix_1.GEOREGION_PRAEFIX + utils_2.ueberpruefeZeichenkette(i7Data.bezeichner);
512
- const region = new GeographicalRegion_1.GeographicalRegion(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.ueberpruefeZeichenkette(i7Data.bezeichner), "_GR"]), utils_2.ueberpruefeZeichenkette(i7Data.kurzname), i7Schluessel);
515
+ const region = new GeographicalRegion_1.GeographicalRegion(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.ueberpruefeZeichenkette(i7Data.bezeichner), '_GR']), utils_2.ueberpruefeZeichenkette(i7Data.kurzname), i7Schluessel);
513
516
  this.addIdMapping(i7Data.id, region.mrid, integral_sql_1.Integral7TableNames.REGION);
514
517
  regions.push(region);
515
518
  }
@@ -534,7 +537,7 @@ class ConverterI7 {
534
537
  const result = yield this.mysqlController.execQuery(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.REGELZONE, 0, 0, []));
535
538
  for (const i7Data of result) {
536
539
  const i7Schluessel = integral_prefix_1.REGELZONE_PRAEFIX + utils_2.ueberpruefeZeichenkette(i7Data.bezeichner);
537
- const ctrlarea = new ControlArea_1.ControlArea(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.ueberpruefeZeichenkette(i7Data.bezeichner), "_RZ"]), utils_2.ueberpruefeZeichenkette(i7Data.kurzname), i7Schluessel);
540
+ const ctrlarea = new ControlArea_1.ControlArea(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.ueberpruefeZeichenkette(i7Data.bezeichner), '_RZ']), utils_2.ueberpruefeZeichenkette(i7Data.kurzname), i7Schluessel);
538
541
  cimModel.addControlArea(ctrlarea);
539
542
  this.addIdMapping(i7Data.id, ctrlarea.mrid, integral_sql_1.Integral7TableNames.REGELZONE);
540
543
  }
@@ -553,11 +556,11 @@ class ConverterI7 {
553
556
  .then((result) => {
554
557
  for (const i7Data of result) {
555
558
  const i7Schluesel = integral_prefix_1.SUBGEOREGION_PRAEFIX + utils_2.ueberpruefeZeichenkette(i7Data.bezeichner);
556
- const subregion = new SubGeographicalRegion_1.SubGeographicalRegion(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.ueberpruefeZeichenkette(i7Data.bezeichner), "_SGR"]), utils_2.ueberpruefeZeichenkette(i7Data.kurzname), i7Schluesel);
559
+ const subregion = new SubGeographicalRegion_1.SubGeographicalRegion(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.ueberpruefeZeichenkette(i7Data.bezeichner), '_SGR']), utils_2.ueberpruefeZeichenkette(i7Data.kurzname), i7Schluesel);
557
560
  const regionUUID = this.integralID2UUID.get(i7Data.georegion);
558
561
  let region = regions.find(elem => elem.mrid === regionUUID);
559
562
  if (!region) {
560
- region = utils_1.createIfNotExitsGeoregionByName(this.cimModelDefault, util_create_1.createNotation([defaultValuesConfig.GeographicalRegion.name, "_GR"]));
563
+ region = utils_1.createIfNotExitsGeoregionByName(this.cimModelDefault, util_create_1.createNotation([defaultValuesConfig.GeographicalRegion.name, '_GR']));
561
564
  this.logger.debug(`SubGeographicalRegion UUID ${subregion.mrid} I7-ID ${i7Data.id} Name ${i7Data.bezeichner} hat keine Region.`);
562
565
  }
563
566
  subregion.region = region;
@@ -601,11 +604,9 @@ class ConverterI7 {
601
604
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
602
605
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.NSG_STANDORT) && standortIDs.length > 0) {
603
606
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.NSG_STANDORT, standortIDs));
604
- let filteredResults = result.filter(elem => elem.variantennr === variantenNr);
605
- if (onlyEingeblendet) {
606
- filteredResults = filteredResults.filter(elem => elem.eingeblendet === 1);
607
- }
607
+ const filteredResults = util_functions_1.DLUtilFunctions.filterByVariantenNrOnlyEingeblendet(result, variantenNr, onlyEingeblendet);
608
608
  for (const i7Data of filteredResults) {
609
+ integral7.i7SchemaID2Type.set(i7Data.id, integral_sql_1.Integral7TableNames.NSG_STANDORT);
609
610
  const standort = integral7.integralStandorte.get(i7Data.standort);
610
611
  if (standort) {
611
612
  standort.standortNsg = new StandortNsg_1.StandortNsgImpl(i7Data);
@@ -622,34 +623,11 @@ class ConverterI7 {
622
623
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
623
624
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.NSG_KNOTEN_SO) && knotenSoIDs.length > 0) {
624
625
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.NSG_KNOTEN_SO, knotenSoIDs));
625
- let filteredResults = result.filter(elem => elem.variantennr === variantenNr);
626
- if (onlyEingeblendet) {
627
- filteredResults = filteredResults.filter(elem => elem.eingeblendet === 1);
628
- }
626
+ const filteredResults = util_functions_1.DLUtilFunctions.filterByVariantenNrOnlyEingeblendet(result, variantenNr, onlyEingeblendet);
629
627
  for (const i7Data of filteredResults) {
630
- const diagramUUID = integral7.i7SchemaID2UUID.get(i7Data.variantennr);
631
- const diagram = cimModel.getDiagram(diagramUUID);
632
- const nsgStandort = integral7.integralNSGStandorte.get(i7Data.nsgso);
633
- if (!diagram || !nsgStandort) {
634
- continue;
635
- }
636
- const diagramObject = new DiagramObject_1.DiagramObject(utils_1.generateUUID(), 'Abzweig');
637
- diagramObject.diagramUUID = diagramUUID;
638
- diagramObject.setDiagram(diagram);
639
- const diagramObjectPoint = new DiagramObjectPoint_1.DiagramObjectPoint(nsgStandort.xrel + i7Data.xrel, nsgStandort.yrel + i7Data.yrel);
640
- diagramObjectPoint.mrid = utils_1.generateUUID();
641
- diagramObjectPoint.diagramObject = diagramObject;
642
- diagramObject.addDiagramObjectPoint(diagramObjectPoint);
643
- cimModel.addDiagramObject(diagramObject);
644
- cimModel.addDiagramObjectPoint(diagramObjectPoint);
628
+ integral7.i7SchemaID2Type.set(i7Data.id, integral_sql_1.Integral7TableNames.NSG_KNOTEN_SO);
645
629
  const cimObjectUUID = this.integralID2UUID.get(i7Data.knotenso);
646
- const cimObject = cimModel.getObject(cimObjectUUID);
647
- if (cimObject) {
648
- diagramObject.setIdentifiedObject(cimObject);
649
- }
650
- else {
651
- this.logger.debug(`KnotenSo/DiagramObject ${diagramObject.mrid} hat kein PSR-Objekt.`);
652
- }
630
+ util_functions_1.DLUtilFunctions.convertNsgKnoten(cimModel, integral7, i7Data, cimObjectUUID, constants_1.NsgConstants.KNOTENSO_WIDTH, constants_1.NsgConstants.KNOTENSO_HEIGHT);
653
631
  }
654
632
  }
655
633
  else {
@@ -657,15 +635,30 @@ class ConverterI7 {
657
635
  }
658
636
  });
659
637
  }
638
+ convertSchemaHgueKnotenSo(cimModel, integral7, variantenNr, onlyEingeblendet = true) {
639
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
640
+ const nsgStandortIDs = [...integral7.integralNSGStandorte.keys()];
641
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.NSG_KNOTEN_HGUE) && nsgStandortIDs.length > 0) {
642
+ const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.NSG_KNOTEN_HGUE, nsgStandortIDs));
643
+ const filteredResults = util_functions_1.DLUtilFunctions.filterByVariantenNrOnlyEingeblendet(result, variantenNr, onlyEingeblendet);
644
+ for (const i7Data of filteredResults) {
645
+ integral7.i7SchemaID2Type.set(i7Data.id, integral_sql_1.Integral7TableNames.NSG_KNOTEN_HGUE);
646
+ const cimObjectUUID = this.integralID2UUID.get(i7Data.knotenso);
647
+ util_functions_1.DLUtilFunctions.convertNsgKnoten(cimModel, integral7, i7Data, cimObjectUUID, constants_1.NsgConstants.HGUE_KNOTENSO_WIDTH, constants_1.NsgConstants.HGUE_KNOTENSO_HEIGHT);
648
+ }
649
+ }
650
+ else {
651
+ this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.NSG_KNOTEN_HGUE} ist nicht vorhanden.`);
652
+ }
653
+ });
654
+ }
660
655
  convertSchemaSchaltanlage(cimModel, integral7, saIDs, variantenNr, onlyEingeblendet = true) {
661
656
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
662
657
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.NSG_SCHALTANLAGE) && saIDs.length > 0) {
663
658
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.NSG_SCHALTANLAGE, saIDs));
664
- let filteredResults = result.filter(elem => elem.variantennr === variantenNr);
665
- if (onlyEingeblendet) {
666
- filteredResults = filteredResults.filter(elem => elem.eingeblendet === 1);
667
- }
659
+ const filteredResults = util_functions_1.DLUtilFunctions.filterByVariantenNrOnlyEingeblendet(result, variantenNr, onlyEingeblendet);
668
660
  for (const i7Data of filteredResults) {
661
+ integral7.i7SchemaID2Type.set(i7Data.id, integral_sql_1.Integral7TableNames.NSG_SCHALTANLAGE);
669
662
  const schaltanlage = integral7.integralSchaltanlagen.get(i7Data.schaltanlage);
670
663
  if (schaltanlage) {
671
664
  schaltanlage.schaltanlageNsg = new SchaltanlageNSG_1.SchaltanlageNsgImpl(i7Data);
@@ -682,16 +675,15 @@ class ConverterI7 {
682
675
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
683
676
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.NSG_SCHALTANLAGENABSCHNITT) && schaltanlagenabschnittIDs.length > 0) {
684
677
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.NSG_SCHALTANLAGENABSCHNITT, schaltanlagenabschnittIDs));
685
- let filteredResults = result.filter(elem => elem.variantennr === variantenNr);
686
- if (onlyEingeblendet) {
687
- filteredResults = filteredResults.filter(elem => elem.eingeblendet === 1);
688
- }
678
+ const filteredResults = util_functions_1.DLUtilFunctions.filterByVariantenNrOnlyEingeblendet(result, variantenNr, onlyEingeblendet);
689
679
  for (const i7Data of filteredResults) {
680
+ integral7.i7SchemaID2Type.set(i7Data.id, integral_sql_1.Integral7TableNames.NSG_SCHALTANLAGENABSCHNITT);
690
681
  const saabschnitt = integral7.integralSchaltanlagenAbschnitte.get(i7Data.saabschnitt);
691
682
  if (saabschnitt) {
692
683
  saabschnitt.schaltanlagenabschnittNsg = new SchaltanlagenabschnittNsg_1.SchaltanlagenabschnittNsg(i7Data);
693
684
  saabschnitt.schaltanlagenabschnittNsg.saabschnitt = saabschnitt;
694
685
  saabschnitt.schaltanlagenabschnittNsg.nsgsa = integral7.integralNSGSchaltanlage.get(i7Data.nsgsa);
686
+ saabschnitt.schaltanlagenabschnittNsg.nsgsa.saabNsg.push(saabschnitt.schaltanlagenabschnittNsg);
695
687
  integral7.integralNSGSAAbschnitt.set(i7Data.id, saabschnitt.schaltanlagenabschnittNsg);
696
688
  }
697
689
  }
@@ -706,61 +698,75 @@ class ConverterI7 {
706
698
  if (schaltanlagenabschnittIDs.length <= 0)
707
699
  return;
708
700
  const isEingeblendet = 1;
709
- const innerSQLisEingeblendet = `IFNULL(
710
- (SELECT max(slotnummer) + 1
711
- FROM nsg_nsgschaltfeld AS nsg_nsgsf
712
- WHERE nsg_nsgsf.nsgsaa = nsg_nsgsaab.id
713
- AND nsg_nsgsf.eingeblendet = ${isEingeblendet}),
714
- 1)`;
715
- const outerSQLisEingeblendet = `AND nsg_nsgsaab.eingeblendet = ${isEingeblendet}`;
716
- const sqlStatement = `SELECT nsg_nsgsaab.variantennr,
717
- nsg_nsgsaab.id,
718
- ${onlyEingeblendet ? innerSQLisEingeblendet : 'nsg_nsgsaab.laenge'} as laenge,
719
- nsg_nsgsaab.nslots,
720
- nsg_nsgsaab.saabschnitt,
721
- nsg_nsgsaab.nsgsa,
722
- nsg_nsgsaab.eingeblendet,
723
- nsg_nsgsaab.nsglkp,
724
- netz_ssab.pos AS posSSAB,
725
- netz_ssab.id AS idSSAB
726
- FROM nsg_nsgsaabschnitt AS nsg_nsgsaab
727
- LEFT JOIN netz_ssab ON nsg_nsgsaab.saabschnitt = netz_ssab.saabschnitt
728
- WHERE (${integral_sql_1.getWhereIDs('nsg_nsgsaab.saabschnitt', schaltanlagenabschnittIDs).join(' OR ')})
729
- ${onlyEingeblendet ? outerSQLisEingeblendet : ''};`;
701
+ let sqlSelectGroupedMaxSlotSf = `SELECT nsgsaa AS nsgsaa, max(slotnummer) + 1 AS laenge
702
+ FROM nsg_nsgschaltfeld
703
+ WHERE ((${integral_sql_1.getWhereIDs('nsgsaa', schaltanlagenabschnittIDs).join(' OR ')}))`;
704
+ if (onlyEingeblendet) {
705
+ sqlSelectGroupedMaxSlotSf += ` AND (eingeblendet = ${isEingeblendet} OR (eingeblendet IS NULL AND angezeigt = ${isEingeblendet}))`;
706
+ }
707
+ sqlSelectGroupedMaxSlotSf += ` GROUP BY nsgsaa`;
708
+ const resultsMaxSlotsSf = yield this.mysqlController.execQuery(sqlSelectGroupedMaxSlotSf);
709
+ const mappedResultsMaxSlotsSf = new Map(resultsMaxSlotsSf.map(value => [value.nsgsaa, value.laenge]));
710
+ let sqlSelectGroupedMaxSlotKpF = `SELECT nsgsaa AS nsgsaa, max(slotnummer) + 1 AS laenge
711
+ FROM nsg_nsgkpfeld
712
+ WHERE ((${integral_sql_1.getWhereIDs('nsgsaa', schaltanlagenabschnittIDs).join(' OR ')}))`;
713
+ if (onlyEingeblendet) {
714
+ sqlSelectGroupedMaxSlotKpF += ` AND (eingeblendet = ${isEingeblendet} OR (eingeblendet IS NULL AND angezeigt = ${isEingeblendet}))`;
715
+ }
716
+ sqlSelectGroupedMaxSlotKpF += ` GROUP BY nsgsaa`;
717
+ const resultsMaxSlotsKpF = yield this.mysqlController.execQuery(sqlSelectGroupedMaxSlotKpF);
718
+ const mappedResultsMaxSlotsKpF = new Map(resultsMaxSlotsKpF.map(value => [value.nsgsaa, value.laenge]));
719
+ const sqlStatement = `SELECT nsg_nsgsaab.variantennr,
720
+ nsg_nsgsaab.id,
721
+ nsg_nsgsaab.laenge AS laenge,
722
+ nsg_nsgsaab.nslots,
723
+ nsg_nsgsaab.saabschnitt,
724
+ nsg_nsgsaab.nsgsa,
725
+ nsg_nsgsaab.angezeigt,
726
+ nsg_nsgsaab.eingeblendet,
727
+ nsg_nsgsaab.nsglkp,
728
+ netz_ssab.pos AS posSSAB,
729
+ netz_ssab.id AS idSSAB
730
+ FROM netz_ssab
731
+ LEFT JOIN nsg_nsgsaabschnitt AS nsg_nsgsaab ON nsg_nsgsaab.saabschnitt = netz_ssab.saabschnitt
732
+ WHERE (${integral_sql_1.getWhereIDs('nsg_nsgsaab.saabschnitt', schaltanlagenabschnittIDs).join(' OR ')});`;
730
733
  const queryResults = yield this.mysqlController.execQuery(sqlStatement);
731
- const filteredResults = queryResults.filter(elem => elem.variantennr === variantenNr);
734
+ queryResults.forEach(value => {
735
+ value.laenge = Math.max((mappedResultsMaxSlotsSf.get(value.id) || 0), (mappedResultsMaxSlotsKpF.get(value.id) || 0), value.laenge);
736
+ });
737
+ const filteredResults = util_functions_1.DLUtilFunctions.filterByVariantenNrOnlyEingeblendet(queryResults, variantenNr, onlyEingeblendet);
732
738
  for (const queryResult of filteredResults) {
733
- const sa = integral7.integralNSGSchaltanlage.get(queryResult.nsgsa);
734
- const so = integral7.integralNSGStandorte.get(sa.nsgsoid);
739
+ const nsgSa = integral7.integralNSGSchaltanlage.get(queryResult.nsgsa);
740
+ const nsgSo = integral7.integralNSGStandorte.get(nsgSa.nsgsoid);
735
741
  const leftOffset = queryResult.nslots * constants_1.NsgConstants.HORIZONTAL_OFFSET;
736
742
  const topOffset = queryResult.posSSAB * constants_1.NsgConstants.VERTICAL_OFFSET;
737
743
  const ssabLength = queryResult.laenge * constants_1.NsgConstants.HORIZONTAL_OFFSET;
738
- let pointTopLeft = new Point_1.Point(leftOffset, topOffset);
739
- let pointBottomRight = new Point_1.Point(leftOffset + ssabLength, topOffset);
744
+ let pointTopLeft = new DiagramObjectPoint_1.DiagramObjectPoint(leftOffset, topOffset, 1);
745
+ let pointBottomRight = new DiagramObjectPoint_1.DiagramObjectPoint(leftOffset + ssabLength, topOffset, 2);
746
+ let saaShiftOffset = 0;
747
+ for (const tempNsgSaa of nsgSa.saabNsg) {
748
+ saaShiftOffset = saaShiftOffset < (tempNsgSaa.nslots + tempNsgSaa.laenge) ? (tempNsgSaa.nslots + tempNsgSaa.laenge) : saaShiftOffset;
749
+ }
740
750
  const points = [];
741
751
  points.push(pointTopLeft, pointBottomRight);
742
- let maxX = 0;
743
- for (const p of points) {
744
- maxX = maxX < p.x ? p.x : maxX;
745
- Point_1.Point.rotate(p, -90 * sa.ausrichtung);
746
- }
747
- const shiftValue = (queryResult.laenge + queryResult.nslots) * constants_1.NsgConstants.HORIZONTAL_OFFSET;
748
752
  for (const p of points) {
749
- p.x += so.xrel + sa.xrel + (sa.ausrichtung === 2 ? maxX : 0);
750
- p.y += so.yrel + sa.yrel + (sa.ausrichtung === 3 ? maxX : 0);
753
+ util_functions_1.DLUtilFunctions.rotateDiagramObjectPoint(p, -90 * nsgSa.ausrichtung);
754
+ p.xPosition += nsgSo.xrel + nsgSa.xrel + (nsgSa.ausrichtung === 2 ? saaShiftOffset * constants_1.NsgConstants.HORIZONTAL_OFFSET : 0);
755
+ p.yPosition += nsgSo.yrel + nsgSa.yrel + (nsgSa.ausrichtung === 3 ? saaShiftOffset * constants_1.NsgConstants.HORIZONTAL_OFFSET : 0);
751
756
  }
752
757
  integral7.integralNSGSsab.set(queryResult.idSSAB, queryResult);
753
758
  const diagramObject = new DiagramObject_1.DiagramObject(utils_1.getUUID(''), 'SSAB Diagram');
754
- diagramObject.rotation = 90 * sa.ausrichtung;
759
+ diagramObject.rotation = util_functions_1.DLUtilFunctions.getRotationBasedOnNsgSa(nsgSa.ausrichtung);
760
+ utils_schema_1.copyDiagramObjectPoints(diagramObject, points);
755
761
  const cnUUID = this.integralID2UUID.get(queryResult.idSSAB);
756
762
  const connectivityNode = cimModel.getConnectivityNode(cnUUID);
757
- utils_schema_1.createDiagramObjectPoints(diagramObject, points);
758
763
  diagramObject.setIdentifiedObject(connectivityNode);
759
- const diagramUUID = integral7.i7SchemaID2UUID.get(sa.variantennr);
764
+ const diagramUUID = integral7.i7SchemaID2UUID.get(nsgSa.variantennr);
760
765
  const diagram = cimModel.getDiagram(diagramUUID);
761
766
  if (diagram) {
762
767
  diagramObject.setDiagram(diagram);
763
768
  diagram.addDiagramObject(diagramObject);
769
+ integral7.placedCIMObjectsForDLProfil.set(cnUUID, diagramObject);
764
770
  }
765
771
  else {
766
772
  this.logger.debug(`SSAB/DiagramObject ${diagramObject.mrid} hat kein Diagram-Objekt.`);
@@ -780,12 +786,13 @@ class ConverterI7 {
780
786
  const i7checkedTables = this.filterTablesByAvailability(i7relevantTables);
781
787
  const i7knotenBeziehungen = yield this.mysqlController.execQuery(integral_sql_1.getI7KnotenBeziehungenQuery(i7checkedTables, schaltfeldIDs));
782
788
  const resultsNsgSchaltfeld = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.NSG_SCHALTFELD, schaltfeldIDs));
783
- let filteredResultsNsgSchaltfeld = resultsNsgSchaltfeld.filter(elem => elem.variantennr === variantenNr);
784
- if (onlyEingeblendet) {
785
- filteredResultsNsgSchaltfeld = filteredResultsNsgSchaltfeld.filter(elem => elem.eingeblendet === 1);
786
- }
789
+ const filteredResultsNsgSchaltfeld = util_functions_1.DLUtilFunctions.filterByVariantenNrOnlyEingeblendet(resultsNsgSchaltfeld, variantenNr, onlyEingeblendet);
787
790
  for (const i7Data of filteredResultsNsgSchaltfeld) {
791
+ integral7.i7SchemaID2Type.set(i7Data.id, integral_sql_1.Integral7TableNames.NSG_SCHALTFELD);
792
+ const nsgSchaltfeldObj = new SchaltfeldNsg_1.SchaltfeldNsgImpl(i7Data);
793
+ integral7.integralNSGSchaltfeld.set(i7Data.id, nsgSchaltfeldObj);
788
794
  const nodePointMap = new Map();
795
+ const uuidPointsMap = new Map();
789
796
  const schaltfeldLeftOffset = i7Data.slotnummer * constants_1.NsgConstants.HORIZONTAL_OFFSET;
790
797
  const schaltfeldDeltaausrichtung = i7Data.deltaausrichtung;
791
798
  const schaltfeldI7KnotenBeziehungen = i7knotenBeziehungen.filter(elem => elem.seliste === i7Data.schaltfeld);
@@ -796,13 +803,15 @@ class ConverterI7 {
796
803
  const ssabs = integral7.integralSchaltfelder.get(i7Data.schaltfeld).saabschnitt.ssab;
797
804
  const maxSSabPos = Math.max(...ssabs.map(ssab => ssab.pos));
798
805
  const onSSabNodes = schaltfeldI7KnotenBeziehungen.filter(elem => ssabs.find(ssab => ssab.id === elem.aknoten) !== undefined);
806
+ const xPos = schaltfeldLeftOffset + (constants_1.NsgConstants.HORIZONTAL_OFFSET / 2);
807
+ let lastNode = undefined;
799
808
  for (const node of onSSabNodes) {
800
809
  const ssabYPos = integral7.integralNSGSsab.get(node.aknoten).posSSAB * constants_1.NsgConstants.VERTICAL_OFFSET;
801
810
  let yStackPos = 1;
811
+ let prevNode = null;
802
812
  let crtNode = node;
803
813
  while (crtNode) {
804
814
  if (nodePointMap.get(crtNode.id) === undefined) {
805
- let xPos = schaltfeldLeftOffset + (constants_1.NsgConstants.HORIZONTAL_OFFSET / 2);
806
815
  let yPos = ssabYPos;
807
816
  if (crtNode === node) {
808
817
  yPos += shiftFromBusbar ? (schaltfeldDeltaausrichtung === 0 ? -1 : 1) * constants_1.NsgConstants.VERTICAL_OFFSET : 0;
@@ -812,12 +821,59 @@ class ConverterI7 {
812
821
  yPos = ((schaltfeldDeltaausrichtung === 0 ? -1 : 1) * (yStackPos) + ssabOffset) * constants_1.NsgConstants.VERTICAL_OFFSET;
813
822
  yStackPos += 1;
814
823
  }
815
- nodePointMap.set(crtNode.id, new Point_1.Point(xPos, yPos));
824
+ nodePointMap.set(crtNode.id, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(xPos, yPos, schaltfeldDeltaausrichtung * 180));
825
+ const aKnotenUUID = this.integralID2UUID.get(crtNode.aknoten);
826
+ if (!integral7.placedCIMObjectsForDLProfil.has(aKnotenUUID) && !nodePointMap.has(crtNode.aknoten)) {
827
+ let prevNodeY = prevNode !== null ? nodePointMap.get(prevNode.id).diagramObjectPoints[0].yPosition : 0;
828
+ let yPosAKnoten;
829
+ if (prevNode === node) {
830
+ yPosAKnoten = yPos - ((schaltfeldDeltaausrichtung === 0 ? -1 : 1) * constants_1.NsgConstants.VERTICAL_OFFSET) / 2;
831
+ }
832
+ else {
833
+ yPosAKnoten = (yPos - prevNodeY) / 2 + prevNodeY;
834
+ }
835
+ nodePointMap.set(crtNode.aknoten, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(xPos, yPosAKnoten));
836
+ }
837
+ }
838
+ lastNode = crtNode;
839
+ prevNode = crtNode;
840
+ crtNode = schaltfeldI7KnotenBeziehungen.find(elem => elem.aknoten === crtNode.eknoten);
841
+ }
842
+ }
843
+ const lastEKnotenUUID = this.integralID2UUID.get(lastNode.eknoten);
844
+ if (!integral7.placedCIMObjectsForDLProfil.has(lastEKnotenUUID) && !nodePointMap.has(lastNode.eknoten)) {
845
+ const yPos = (schaltfeldDeltaausrichtung === 0 ? -1 : 1) * (i7Data.hoehe);
846
+ const heightAdjustement = schaltfeldDeltaausrichtung === 0 ? (constants_1.NsgConstants.VERTICAL_OFFSET * (maxSSabPos + 1)) : 0;
847
+ nodePointMap.set(lastNode.eknoten, util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(xPos, yPos + heightAdjustement));
848
+ }
849
+ nsgSchaltfeldObj.lastNodeID = lastNode.eknoten;
850
+ nsgSchaltfeldObj.lastNodeCimUUID = lastEKnotenUUID;
851
+ for (const node of onSSabNodes) {
852
+ let crtNode = node;
853
+ while (crtNode) {
854
+ let aKnotenPos = undefined;
855
+ if (crtNode === node) {
856
+ aKnotenPos = new DiagramObjectPoint_1.DiagramObjectPoint(xPos, integral7.integralNSGSsab.get(crtNode.aknoten).posSSAB * constants_1.NsgConstants.VERTICAL_OFFSET);
816
857
  }
858
+ util_functions_1.DLUtilFunctions.exportTerminals(crtNode, nodePointMap, uuidPointsMap, cimModel, this.integralID2UUID, aKnotenPos);
817
859
  crtNode = schaltfeldI7KnotenBeziehungen.find(elem => elem.aknoten === crtNode.eknoten);
818
860
  }
819
861
  }
820
- SsabNsg_1.DLUtilFunctions.rotateShiftAddBasedOnNsgSAA(cimModel, integral7, this.integralID2UUID, variantenNr, i7Data.nsgsaa, nodePointMap);
862
+ [...nodePointMap.entries()].forEach(entry => {
863
+ uuidPointsMap.set(this.integralID2UUID.get(entry[0]), entry[1]);
864
+ });
865
+ const nsgSaa = integral7.integralNSGSAAbschnitt.get(i7Data.nsgsaa);
866
+ const nsgSa = integral7.integralNSGSchaltanlage.get(nsgSaa.nsgsaid);
867
+ nsgSchaltfeldObj.orientation = nsgSa.ausrichtung;
868
+ if (i7Data.deltaausrichtung === 1) {
869
+ nsgSchaltfeldObj.orientation = (nsgSchaltfeldObj.orientation + 2) % 4;
870
+ }
871
+ uuidPointsMap.forEach((entryDiagramObject, key) => {
872
+ if (!(entryDiagramObject.identifiedObject instanceof Terminal_1.Terminal || entryDiagramObject.identifiedObject instanceof ConnectivityNode_1.ConnectivityNode)) {
873
+ entryDiagramObject.rotation += util_functions_1.DLUtilFunctions.getRotationBasedOnNsgSa(nsgSa.ausrichtung);
874
+ }
875
+ });
876
+ util_functions_1.DLUtilFunctions.rotateShiftAddBasedOnNsgSAA(cimModel, integral7, variantenNr, i7Data.nsgsaa, uuidPointsMap, true);
821
877
  }
822
878
  }
823
879
  });
@@ -834,20 +890,25 @@ class ConverterI7 {
834
890
  const i7checkedTables = this.filterTablesByAvailability(i7relevantTables);
835
891
  const i7knotenBeziehungen = yield this.mysqlController.execQuery(integral_sql_1.getI7KnotenBeziehungenQuery(i7checkedTables, integral7.querkupplungIDs));
836
892
  const resultsNsgKpFeld = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.NSG_QUERKUPPLUNG, integral7.querkupplungIDs));
837
- let filteredResultsNsgKpFeld = resultsNsgKpFeld.filter(elem => elem.variantennr === variantenNr);
838
- if (onlyEingeblendet) {
839
- filteredResultsNsgKpFeld = filteredResultsNsgKpFeld.filter(elem => elem.eingeblendet === 1);
840
- }
893
+ const filteredResultsNsgKpFeld = util_functions_1.DLUtilFunctions.filterByVariantenNrOnlyEingeblendet(resultsNsgKpFeld, variantenNr, onlyEingeblendet);
841
894
  for (const i7Data of filteredResultsNsgKpFeld) {
842
- const nodePointMap = new Map();
895
+ integral7.i7SchemaID2Type.set(i7Data.id, integral_sql_1.Integral7TableNames.NSG_QUERKUPPLUNG);
896
+ const uuidPointsMap = new Map();
843
897
  const kpFeldLeftOffset = i7Data.slotnummer * constants_1.NsgConstants.HORIZONTAL_OFFSET;
844
898
  const kpFeldDeltaausrichtung = i7Data.deltaausrichtung;
845
899
  const kpFeldI7KnotenBeziehungen = i7knotenBeziehungen.filter(elem => elem.seliste === i7Data.kpfeld);
846
900
  const ssabs = integral7.integralNSGSAAbschnitt.get(i7Data.nsgsaa).saabschnitt.ssab;
847
901
  const relevantSSabIDs = new Set();
848
902
  ssabs.forEach(ssab => relevantSSabIDs.add(ssab.id));
849
- SsabNsg_1.DLUtilFunctions.placeKupplung(kpFeldI7KnotenBeziehungen, nodePointMap, relevantSSabIDs, integral7.integralNSGSsab, kpFeldDeltaausrichtung, kpFeldLeftOffset, false);
850
- SsabNsg_1.DLUtilFunctions.rotateShiftAddBasedOnNsgSAA(cimModel, integral7, this.integralID2UUID, variantenNr, i7Data.nsgsaa, nodePointMap);
903
+ util_functions_1.DLUtilFunctions.placeKupplung(kpFeldI7KnotenBeziehungen, uuidPointsMap, cimModel, relevantSSabIDs, integral7.integralNSGSsab, this.integralID2UUID, integral7.placedCIMObjectsForDLProfil, kpFeldDeltaausrichtung, kpFeldLeftOffset, false);
904
+ const nsgSaa = integral7.integralNSGSAAbschnitt.get(i7Data.nsgsaa);
905
+ const nsgSa = integral7.integralNSGSchaltanlage.get(nsgSaa.nsgsaid);
906
+ uuidPointsMap.forEach((entryDiagramObject, key) => {
907
+ if (!(entryDiagramObject.identifiedObject instanceof Terminal_1.Terminal || entryDiagramObject.identifiedObject instanceof ConnectivityNode_1.ConnectivityNode)) {
908
+ entryDiagramObject.rotation += util_functions_1.DLUtilFunctions.getRotationBasedOnNsgSa(nsgSa.ausrichtung);
909
+ }
910
+ });
911
+ util_functions_1.DLUtilFunctions.rotateShiftAddBasedOnNsgSAA(cimModel, integral7, variantenNr, i7Data.nsgsaa, uuidPointsMap, true);
851
912
  }
852
913
  }
853
914
  });
@@ -864,22 +925,635 @@ class ConverterI7 {
864
925
  const i7checkedTables = this.filterTablesByAvailability(i7relevantTables);
865
926
  const i7knotenBeziehungen = yield this.mysqlController.execQuery(integral_sql_1.getI7KnotenBeziehungenQuery(i7checkedTables, integral7.laengskupplungIDs));
866
927
  const resultsNsgLKupplung = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.NSG_LAENGSKUPPLUNG, [...integral7.integralNSGSAAbschnitt.keys()]));
867
- let filteredResultsNsgLKupplung = resultsNsgLKupplung.filter(elem => elem.variantennr === variantenNr);
868
- if (onlyEingeblendet) {
869
- filteredResultsNsgLKupplung = filteredResultsNsgLKupplung.filter(elem => elem.eingeblendet === 1);
870
- }
871
- const nodePointMap = new Map();
928
+ const filteredResultsNsgLKupplung = util_functions_1.DLUtilFunctions.filterByVariantenNrOnlyEingeblendet(resultsNsgLKupplung, variantenNr, onlyEingeblendet);
872
929
  for (const i7Data of filteredResultsNsgLKupplung) {
930
+ integral7.i7SchemaID2Type.set(i7Data.id, integral_sql_1.Integral7TableNames.NSG_LAENGSKUPPLUNG);
931
+ const uuidPointsMap = new Map();
873
932
  const schaltanlagenID = integral7.integralNSGSAAbschnitt.get(i7Data.nsgsaa).nsgsa.schaltanlageid;
874
933
  const netzLaengskupplungsObjs = [...integral7.integralLaengskupplungen.values()].filter(elem => elem.schaltanlagenID === schaltanlagenID);
875
934
  for (const netzLaengskupplungObj of netzLaengskupplungsObjs) {
876
935
  const lKupplungI7KnotenBeziehungen = i7knotenBeziehungen.filter(elem => elem.seliste === netzLaengskupplungObj.id);
877
936
  const relevantSSabIDs = new Set();
878
937
  integral7.integralSchaltanlagen.get(schaltanlagenID).saab.forEach(netz_saab => netz_saab.ssab.forEach(ssab => relevantSSabIDs.add(ssab.id)));
879
- SsabNsg_1.DLUtilFunctions.placeKupplung(lKupplungI7KnotenBeziehungen, nodePointMap, relevantSSabIDs, integral7.integralNSGSsab, 0, 0, true);
938
+ util_functions_1.DLUtilFunctions.placeKupplung(lKupplungI7KnotenBeziehungen, uuidPointsMap, cimModel, relevantSSabIDs, integral7.integralNSGSsab, this.integralID2UUID, integral7.placedCIMObjectsForDLProfil, 0, 0, true);
939
+ }
940
+ const nsgSaa = integral7.integralNSGSAAbschnitt.get(i7Data.nsgsaa);
941
+ const nsgSa = integral7.integralNSGSchaltanlage.get(nsgSaa.nsgsaid);
942
+ uuidPointsMap.forEach((entryDiagramObject, key) => {
943
+ if (!(entryDiagramObject.identifiedObject instanceof Terminal_1.Terminal || entryDiagramObject.identifiedObject instanceof ConnectivityNode_1.ConnectivityNode)) {
944
+ entryDiagramObject.rotation += util_functions_1.DLUtilFunctions.getRotationBasedOnNsgSa(nsgSa.ausrichtung);
945
+ }
946
+ });
947
+ util_functions_1.DLUtilFunctions.rotateShiftAddBasedOnNsgSAA(cimModel, integral7, variantenNr, i7Data.nsgsaa, uuidPointsMap);
948
+ }
949
+ }
950
+ });
951
+ }
952
+ convertSchemaTransformatoren2W(cimModel, integral7, variantenNr, onlyEingeblendet = true) {
953
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
954
+ const nsgStandortIDs = [...integral7.integralNSGStandorte.keys()];
955
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.NSG_TRAFO2W) && nsgStandortIDs.length > 0) {
956
+ const results = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.NSG_TRAFO2W, nsgStandortIDs));
957
+ let filteredResults = util_functions_1.DLUtilFunctions.filterByVariantenNrOnlyEingeblendet(results, variantenNr, onlyEingeblendet);
958
+ for (const i7Data of filteredResults) {
959
+ integral7.i7SchemaID2Type.set(i7Data.id, integral_sql_1.Integral7TableNames.NSG_TRAFO2W);
960
+ const uuidPointsMap = new Map();
961
+ const trafo2wNsg = new Trafo2wNsg_1.Trafo2wNsgImpl(i7Data);
962
+ integral7.integralNSGTrafos.set(i7Data.trafo2w, trafo2wNsg);
963
+ const trafoDiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(constants_1.NsgConstants.TRAFO2W_WIDTH / 2, constants_1.NsgConstants.TRAFO2W_HEIGHT / 2);
964
+ trafoDiagramObject.rotation = util_functions_1.DLUtilFunctions.getRotationBasedOnTrafo2W(trafo2wNsg.ausrichtung);
965
+ const tempPoints = [];
966
+ tempPoints.push(trafoDiagramObject.diagramObjectPoints[0]);
967
+ const trafoUUID = this.integralID2UUID.get(trafo2wNsg.trafo2wid);
968
+ const transformer = cimModel.getPowerTransformer(trafoUUID);
969
+ const terminal1 = transformer.powerTransformerEnds[0].terminal;
970
+ const terminal1DiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(0, constants_1.NsgConstants.TRAFO2W_HEIGHT / 2);
971
+ tempPoints.push(terminal1DiagramObject.diagramObjectPoints[0]);
972
+ const terminal2 = transformer.powerTransformerEnds[1].terminal;
973
+ const terminal2DiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(constants_1.NsgConstants.TRAFO2W_WIDTH, constants_1.NsgConstants.TRAFO2W_HEIGHT / 2);
974
+ tempPoints.push(terminal2DiagramObject.diagramObjectPoints[0]);
975
+ for (const p of tempPoints) {
976
+ util_functions_1.DLUtilFunctions.rotateDiagramObjectPoint(p, 360 - (90 * trafo2wNsg.ausrichtung) % 360);
977
+ p.xPosition += trafo2wNsg.xrel;
978
+ p.yPosition += trafo2wNsg.yrel;
979
+ p.xPosition += (trafo2wNsg.ausrichtung === 1 ? constants_1.NsgConstants.TRAFO2W_HEIGHT : 0);
980
+ p.xPosition += (trafo2wNsg.ausrichtung === 2 ? constants_1.NsgConstants.TRAFO2W_WIDTH : 0);
981
+ p.yPosition += (trafo2wNsg.ausrichtung === 2 ? constants_1.NsgConstants.TRAFO2W_HEIGHT : 0);
982
+ p.yPosition += (trafo2wNsg.ausrichtung === 3 ? constants_1.NsgConstants.TRAFO2W_WIDTH : 0);
983
+ }
984
+ uuidPointsMap.set(this.integralID2UUID.get(trafo2wNsg.trafo2wid), trafoDiagramObject);
985
+ if (terminal1 !== undefined) {
986
+ uuidPointsMap.set(terminal1.getUUID(), terminal1DiagramObject);
987
+ }
988
+ if (terminal2 !== undefined) {
989
+ uuidPointsMap.set(terminal2.getUUID(), terminal2DiagramObject);
990
+ }
991
+ util_functions_1.DLUtilFunctions.shiftAddBasedOnNsgSo(cimModel, integral7, variantenNr, trafo2wNsg.nsgsoid, uuidPointsMap);
992
+ let t1CNdiagramObject, t1DiagramObject, t2CNdiagramObject, t2DiagramObject;
993
+ if (terminal1 !== undefined) {
994
+ t1CNdiagramObject = integral7.placedCIMObjectsForDLProfil.get(terminal1.connectivityNode.getUUID());
995
+ t1DiagramObject = integral7.placedCIMObjectsForDLProfil.get(terminal1.getUUID());
996
+ }
997
+ if (terminal2 !== undefined) {
998
+ t2CNdiagramObject = integral7.placedCIMObjectsForDLProfil.get(terminal2.connectivityNode.getUUID());
999
+ t2DiagramObject = integral7.placedCIMObjectsForDLProfil.get(terminal2.getUUID());
1000
+ }
1001
+ if (trafo2wNsg.ausrichtung === 2 || trafo2wNsg.ausrichtung === 3) {
1002
+ if (terminal2 !== undefined)
1003
+ utils_schema_1.copyDiagramObjectPoints(t2DiagramObject, t1CNdiagramObject.diagramObjectPoints);
1004
+ if (terminal1 !== undefined)
1005
+ utils_schema_1.copyDiagramObjectPoints(t1DiagramObject, t2CNdiagramObject.diagramObjectPoints);
1006
+ }
1007
+ else {
1008
+ if (terminal1 !== undefined)
1009
+ utils_schema_1.copyDiagramObjectPoints(t1DiagramObject, t1CNdiagramObject.diagramObjectPoints);
1010
+ if (terminal2 !== undefined)
1011
+ utils_schema_1.copyDiagramObjectPoints(t2DiagramObject, t2CNdiagramObject.diagramObjectPoints);
1012
+ }
1013
+ }
1014
+ }
1015
+ else {
1016
+ this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.NSG_TRAFO2W} ist nicht vorhanden.`);
1017
+ }
1018
+ });
1019
+ }
1020
+ convertSchemaTransformatoren3W(cimModel, integral7, standortIDs, variantenNr, onlyEingeblendet = true) {
1021
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1022
+ const nsgStandortIDs = [...integral7.integralNSGStandorte.keys()];
1023
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.NSG_TRAFO3W) && nsgStandortIDs.length > 0 && standortIDs.length > 0) {
1024
+ const results = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.NSG_TRAFO3W, nsgStandortIDs));
1025
+ let filteredResults = util_functions_1.DLUtilFunctions.filterByVariantenNrOnlyEingeblendet(results, variantenNr, onlyEingeblendet);
1026
+ const netzTrafoResults = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.TRAFO3W, standortIDs));
1027
+ const netzTrafos = new Map(netzTrafoResults.map(obj => [obj.id, obj]));
1028
+ for (const i7Data of filteredResults) {
1029
+ integral7.i7SchemaID2Type.set(i7Data.id, integral_sql_1.Integral7TableNames.NSG_TRAFO3W);
1030
+ const uuidPointsMap = new Map();
1031
+ const trafo3wNsg = new Trafo3wNsg_1.Trafo3wNsgImpl(i7Data);
1032
+ integral7.integralNSGTrafos.set(i7Data.trafo3w, trafo3wNsg);
1033
+ const trafoDiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(constants_1.NsgConstants.TRAFO3W_WIDTH / 2, constants_1.NsgConstants.TRAFO3W_HEIGHT / 2);
1034
+ trafoDiagramObject.rotation = 360 - (constants_1.NsgConstants.TAFO3W_RotationOrder.indexOf(trafo3wNsg.ausrichtung) * 30) % 360;
1035
+ const tempPoints = [];
1036
+ tempPoints.push(trafoDiagramObject.diagramObjectPoints[0]);
1037
+ const trafo3wNetz = netzTrafos.get(trafo3wNsg.trafo3wid);
1038
+ const pteW1 = cimModel.getPowerTransformerEnd(this.integralID2UUID.get(trafo3wNetz.trafowicklung3w1));
1039
+ const pteW2 = cimModel.getPowerTransformerEnd(this.integralID2UUID.get(trafo3wNetz.trafowicklung3w2));
1040
+ const pteW3 = cimModel.getPowerTransformerEnd(this.integralID2UUID.get(trafo3wNetz.trafowicklung3w3));
1041
+ const exchangeGroups = constants_1.NsgConstants.TRAFO3W_ExchangeGroups;
1042
+ let exchangeGroup = undefined;
1043
+ for (const key of Object.keys(exchangeGroups)) {
1044
+ if (exchangeGroups[key].indexOf(trafo3wNsg.ausrichtung) !== -1) {
1045
+ exchangeGroup = constants_1.NsgConstants.TRAFO3W_ExchangeMap[key];
1046
+ break;
1047
+ }
1048
+ }
1049
+ const rotationenGroups = constants_1.NsgConstants.TRAFO3W_RotationGroups;
1050
+ let rotationenGroup = undefined;
1051
+ for (const key of Object.keys(rotationenGroups)) {
1052
+ if (rotationenGroups[key].indexOf(trafo3wNsg.ausrichtung) !== -1) {
1053
+ rotationenGroup = constants_1.NsgConstants.TRAFO3W_RotationGroup2Positions[key];
1054
+ break;
1055
+ }
1056
+ }
1057
+ const xMirroring = trafo3wNsg.orientierung_cw === 1;
1058
+ const terminal1 = pteW1.terminal;
1059
+ const terminal1DiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPointArrayBased(rotationenGroup[exchangeGroup[1]]);
1060
+ tempPoints.push(terminal1DiagramObject.diagramObjectPoints[0]);
1061
+ const terminal2 = pteW2.terminal;
1062
+ const terminal2DiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPointArrayBased(rotationenGroup[exchangeGroup[xMirroring ? 3 : 2]]);
1063
+ tempPoints.push(terminal2DiagramObject.diagramObjectPoints[0]);
1064
+ const terminal3 = pteW3.terminal;
1065
+ const terminal3DiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPointArrayBased(rotationenGroup[exchangeGroup[xMirroring ? 2 : 3]]);
1066
+ tempPoints.push(terminal3DiagramObject.diagramObjectPoints[0]);
1067
+ for (const p of tempPoints) {
1068
+ p.xPosition += trafo3wNsg.xrel;
1069
+ p.yPosition += trafo3wNsg.yrel;
1070
+ }
1071
+ uuidPointsMap.set(this.integralID2UUID.get(trafo3wNsg.trafo3wid), trafoDiagramObject);
1072
+ if (terminal1 !== undefined) {
1073
+ uuidPointsMap.set(terminal1.getUUID(), terminal1DiagramObject);
1074
+ }
1075
+ if (terminal2 !== undefined) {
1076
+ uuidPointsMap.set(terminal2.getUUID(), terminal2DiagramObject);
1077
+ }
1078
+ if (terminal3 !== undefined) {
1079
+ uuidPointsMap.set(terminal3.getUUID(), terminal3DiagramObject);
1080
+ }
1081
+ util_functions_1.DLUtilFunctions.shiftAddBasedOnNsgSo(cimModel, integral7, variantenNr, trafo3wNsg.nsgsoid, uuidPointsMap);
1082
+ if (terminal1) {
1083
+ const t1CNdiagramObject = integral7.placedCIMObjectsForDLProfil.get(terminal1.getConnectivityNodeUUID());
1084
+ const t1DiagramObject = integral7.placedCIMObjectsForDLProfil.get(terminal1.getUUID());
1085
+ if (t1CNdiagramObject !== undefined)
1086
+ utils_schema_1.copyDiagramObjectPoints(t1DiagramObject, t1CNdiagramObject.diagramObjectPoints);
1087
+ }
1088
+ if (terminal2) {
1089
+ const t2CNdiagramObject = integral7.placedCIMObjectsForDLProfil.get(terminal2.getConnectivityNodeUUID());
1090
+ const t2DiagramObject = integral7.placedCIMObjectsForDLProfil.get(terminal2.getUUID());
1091
+ if (t2CNdiagramObject !== undefined)
1092
+ utils_schema_1.copyDiagramObjectPoints(t2DiagramObject, t2CNdiagramObject.diagramObjectPoints);
1093
+ }
1094
+ if (terminal3) {
1095
+ const t3CNdiagramObject = integral7.placedCIMObjectsForDLProfil.get(terminal3.getConnectivityNodeUUID());
1096
+ const t3DiagramObject = integral7.placedCIMObjectsForDLProfil.get(terminal3.getUUID());
1097
+ if (t3CNdiagramObject !== undefined)
1098
+ utils_schema_1.copyDiagramObjectPoints(t3DiagramObject, t3CNdiagramObject.diagramObjectPoints);
1099
+ }
1100
+ }
1101
+ }
1102
+ else {
1103
+ this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.NSG_TRAFO3W} ist nicht vorhanden.`);
1104
+ }
1105
+ });
1106
+ }
1107
+ convertSchemaLeitungen(cimModel, integral7, variantenNr, onlyEingeblendet = true) {
1108
+ var _a, _b, _c;
1109
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1110
+ const leitungIDs = [...integral7.integralLeitungen.keys(), ...integral7.integralHgueLeitungen.keys()];
1111
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.NSG_LEITUNG) && this.isTableAvailable(integral_sql_1.Integral7TableNames.NSG_LEITUNGSPUNKT)
1112
+ && leitungIDs.length > 0) {
1113
+ const leitungResults = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.NSG_LEITUNG, leitungIDs));
1114
+ let filteredLeitungResults = util_functions_1.DLUtilFunctions.filterByVariantenNrOnlyEingeblendet(leitungResults, variantenNr, onlyEingeblendet);
1115
+ const nsgLeitungIDs = filteredLeitungResults.map(elem => elem.id);
1116
+ const leitungspktResults = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.NSG_LEITUNGSPUNKT, nsgLeitungIDs));
1117
+ let filteredLeitungspktResults = util_functions_1.DLUtilFunctions.filterByVariantenNrOnlyEingeblendet(leitungspktResults, variantenNr, onlyEingeblendet);
1118
+ for (const i7Data of filteredLeitungResults) {
1119
+ integral7.i7SchemaID2Type.set(i7Data.id, integral_sql_1.Integral7TableNames.NSG_LEITUNG);
1120
+ let netzLeitung, aKnotenCimObjectUUID, eKnotenCimObjectUUID;
1121
+ const isACLine = integral7.integralLeitungen.get(i7Data.leitung);
1122
+ if (isACLine) {
1123
+ netzLeitung = integral7.integralLeitungen.get(i7Data.leitung);
1124
+ aKnotenCimObjectUUID = this.integralID2UUID.get(netzLeitung.aknotenid);
1125
+ eKnotenCimObjectUUID = this.integralID2UUID.get(netzLeitung.eknotenid);
1126
+ }
1127
+ else {
1128
+ netzLeitung = integral7.integralHgueLeitungen.get(i7Data.leitung);
1129
+ aKnotenCimObjectUUID = this.integralID2UUID.get(netzLeitung.anetzobjekt);
1130
+ eKnotenCimObjectUUID = this.integralID2UUID.get(netzLeitung.enetzobjekt);
1131
+ }
1132
+ const anfSchemaType = integral7.i7SchemaID2Type.get(i7Data.anschlussanf);
1133
+ const endSchemaType = integral7.i7SchemaID2Type.get(i7Data.anschlussend);
1134
+ let tempDiagramObjectPoints = [];
1135
+ let tempAnfDiagramObject = undefined;
1136
+ let tempEndDiagramObject = undefined;
1137
+ if (anfSchemaType === integral_sql_1.Integral7TableNames.NSG_SCHALTFELD) {
1138
+ const anfSchaltfeld = integral7.integralNSGSchaltfeld.get(i7Data.anschlussanf);
1139
+ tempAnfDiagramObject = integral7.placedCIMObjectsForDLProfil.get(anfSchaltfeld.lastNodeCimUUID);
1140
+ }
1141
+ else if (anfSchemaType === integral_sql_1.Integral7TableNames.NSG_KNOTEN_SO) {
1142
+ tempAnfDiagramObject = integral7.placedCIMObjectsForDLProfil.get(aKnotenCimObjectUUID);
1143
+ }
1144
+ else if (anfSchemaType === integral_sql_1.Integral7TableNames.NSG_KNOTEN_HGUE) {
1145
+ tempAnfDiagramObject = integral7.placedCIMObjectsForDLProfil.get(integral7.i7ID2UUID.get(i7Data.anschlussanf));
1146
+ }
1147
+ else if (anfSchemaType === integral_sql_1.Integral7TableNames.NSG_QUERZWEIG) {
1148
+ tempAnfDiagramObject = integral7.placedCIMObjectsForDLProfil.get(aKnotenCimObjectUUID);
1149
+ }
1150
+ else {
1151
+ }
1152
+ if (endSchemaType === integral_sql_1.Integral7TableNames.NSG_SCHALTFELD) {
1153
+ const anfSchaltfeld = integral7.integralNSGSchaltfeld.get(i7Data.anschlussend);
1154
+ tempEndDiagramObject = integral7.placedCIMObjectsForDLProfil.get(anfSchaltfeld.lastNodeCimUUID);
1155
+ }
1156
+ else if (endSchemaType === integral_sql_1.Integral7TableNames.NSG_KNOTEN_SO) {
1157
+ tempEndDiagramObject = integral7.placedCIMObjectsForDLProfil.get(eKnotenCimObjectUUID);
1158
+ }
1159
+ else if (endSchemaType === integral_sql_1.Integral7TableNames.NSG_KNOTEN_HGUE) {
1160
+ tempEndDiagramObject = integral7.placedCIMObjectsForDLProfil.get(integral7.i7ID2UUID.get(i7Data.anschlussend));
1161
+ }
1162
+ else if (endSchemaType === integral_sql_1.Integral7TableNames.NSG_QUERZWEIG) {
1163
+ tempEndDiagramObject = integral7.placedCIMObjectsForDLProfil.get(eKnotenCimObjectUUID);
1164
+ }
1165
+ else {
1166
+ }
1167
+ if (tempAnfDiagramObject === undefined || tempEndDiagramObject === undefined)
1168
+ continue;
1169
+ tempDiagramObjectPoints.push(new DiagramObjectPoint_1.DiagramObjectPoint(tempAnfDiagramObject.diagramObjectPoints[0].xPosition, tempAnfDiagramObject.diagramObjectPoints[0].yPosition));
1170
+ const relevantLeitungspkts = filteredLeitungspktResults.filter(elem => elem.nsgleitung === i7Data.id).sort((a, b) => a.pos - b.pos);
1171
+ for (let a = 0; a < relevantLeitungspkts.length; a++) {
1172
+ const nsgLeitungspkt = relevantLeitungspkts[a];
1173
+ if (nsgLeitungspkt.userelpos === 1 && nsgLeitungspkt.reltoanf === 1) {
1174
+ const tempDiagramObjectPoint = new DiagramObjectPoint_1.DiagramObjectPoint(tempAnfDiagramObject.diagramObjectPoints[0].xPosition, tempAnfDiagramObject.diagramObjectPoints[0].yPosition);
1175
+ const tempOffsetArray = util_functions_1.DLUtilFunctions.getXYOffsetFromRelCM(anfSchemaType, integral7, i7Data.anschlussanf, nsgLeitungspkt);
1176
+ tempDiagramObjectPoint.xPosition += tempOffsetArray[0];
1177
+ tempDiagramObjectPoint.yPosition += tempOffsetArray[1];
1178
+ tempDiagramObjectPoints.push(tempDiagramObjectPoint);
1179
+ }
1180
+ else if (nsgLeitungspkt.userelpos === 1 && nsgLeitungspkt.reltoanf === 0) {
1181
+ const tempDiagramObjectPoint = new DiagramObjectPoint_1.DiagramObjectPoint(tempEndDiagramObject.diagramObjectPoints[0].xPosition, tempEndDiagramObject.diagramObjectPoints[0].yPosition);
1182
+ const tempOffsetArray = util_functions_1.DLUtilFunctions.getXYOffsetFromRelCM(endSchemaType, integral7, i7Data.anschlussend, nsgLeitungspkt);
1183
+ tempDiagramObjectPoint.xPosition += tempOffsetArray[0];
1184
+ tempDiagramObjectPoint.yPosition += tempOffsetArray[1];
1185
+ tempDiagramObjectPoints.push(tempDiagramObjectPoint);
1186
+ }
1187
+ else {
1188
+ tempDiagramObjectPoints.push(new DiagramObjectPoint_1.DiagramObjectPoint(nsgLeitungspkt.xrel, nsgLeitungspkt.yrel));
1189
+ }
1190
+ }
1191
+ tempDiagramObjectPoints.push(new DiagramObjectPoint_1.DiagramObjectPoint(tempEndDiagramObject.diagramObjectPoints[0].xPosition, tempEndDiagramObject.diagramObjectPoints[0].yPosition));
1192
+ const diagramUUID = integral7.i7SchemaID2UUID.get(i7Data.variantennr);
1193
+ const diagram = cimModel.getDiagram(diagramUUID);
1194
+ if (isACLine) {
1195
+ const netzLeitungCimObj = cimModel.getLine(this.integralID2UUID.get(netzLeitung.id));
1196
+ const cableAvailable = this.isTableAvailable(integral_sql_1.Integral7TableNames.KABEL);
1197
+ const overheadAvailable = this.isTableAvailable(integral_sql_1.Integral7TableNames.FREILEITUNG);
1198
+ let type = integral_sql_1.I7Objects.STROMKREISABSCHNITT;
1199
+ if (cableAvailable && overheadAvailable) {
1200
+ type = integral_sql_1.I7Objects.STROMKREISABSCHNITT_KABEL_FREILEITUNG;
1201
+ }
1202
+ else if (cableAvailable) {
1203
+ type = integral_sql_1.I7Objects.STROMKREISABSCHNITT_KABEL;
1204
+ }
1205
+ else if (overheadAvailable) {
1206
+ type = integral_sql_1.I7Objects.STROMKREISABSCHNITT_FREILEITUNG;
1207
+ }
1208
+ const leitungStromkreisabschnitt = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(type, [netzLeitung.id]));
1209
+ leitungStromkreisabschnitt.sort((a, b) => a.pos - b.pos);
1210
+ const acSegmentPercentages = [];
1211
+ let completeLength = 0;
1212
+ for (let a = 0; a < leitungStromkreisabschnitt.length; ++a) {
1213
+ completeLength += leitungStromkreisabschnitt[a].laenge;
1214
+ }
1215
+ let crtLength = 0;
1216
+ for (let a = 0; a < leitungStromkreisabschnitt.length; ++a) {
1217
+ crtLength += leitungStromkreisabschnitt[a].laenge;
1218
+ acSegmentPercentages.push(crtLength / completeLength);
1219
+ }
1220
+ let completePixelLength = 0;
1221
+ for (let a = 1; a < tempDiagramObjectPoints.length; ++a) {
1222
+ const tempX = tempDiagramObjectPoints[a].xPosition - tempDiagramObjectPoints[a - 1].xPosition;
1223
+ const tempY = tempDiagramObjectPoints[a].yPosition - tempDiagramObjectPoints[a - 1].yPosition;
1224
+ completePixelLength += Math.sqrt((tempX * tempX) + (tempY * tempY));
1225
+ }
1226
+ let lastB = 0;
1227
+ let b = 1;
1228
+ let crtPixelLength = 0;
1229
+ for (let a = 0; a < acSegmentPercentages.length; ++a) {
1230
+ let crtPixelPercentageSize = 0;
1231
+ let lastPixelPercentageSize;
1232
+ do {
1233
+ const tempX = tempDiagramObjectPoints[b].xPosition - tempDiagramObjectPoints[b - 1].xPosition;
1234
+ const tempY = tempDiagramObjectPoints[b].yPosition - tempDiagramObjectPoints[b - 1].yPosition;
1235
+ crtPixelLength += Math.sqrt((tempX * tempX) + (tempY * tempY));
1236
+ lastPixelPercentageSize = crtPixelPercentageSize;
1237
+ crtPixelPercentageSize = (crtPixelLength / completePixelLength);
1238
+ b++;
1239
+ } while (crtPixelPercentageSize < acSegmentPercentages[a] && b < tempDiagramObjectPoints.length);
1240
+ const epsilon = 0.00001;
1241
+ if ((crtPixelLength / completePixelLength) <= acSegmentPercentages[a] + epsilon) {
1242
+ const conductorCimObj = netzLeitungCimObj.equipments[a];
1243
+ const diagramObject = new DiagramObject_1.DiagramObject(utils_1.generateUUID(), 'DiagramObj ' + ((_a = conductorCimObj.shortName) !== null && _a !== void 0 ? _a : ''));
1244
+ diagramObject.setIdentifiedObject(conductorCimObj);
1245
+ diagramObject.setDiagram(diagram);
1246
+ diagram.addDiagramObject(diagramObject);
1247
+ let i = 1;
1248
+ for (let idx = lastB; idx < b; ++idx) {
1249
+ const diagramObjectPoint = new DiagramObjectPoint_1.DiagramObjectPoint(tempDiagramObjectPoints[idx].xPosition, tempDiagramObjectPoints[idx].yPosition, i);
1250
+ diagramObjectPoint.mrid = utils_1.generateUUID();
1251
+ diagramObjectPoint.diagramObject = diagramObject;
1252
+ diagramObject.addDiagramObjectPoint(diagramObjectPoint);
1253
+ ++i;
1254
+ }
1255
+ }
1256
+ else if ((crtPixelLength / completePixelLength) > acSegmentPercentages[a]) {
1257
+ let decreased = false;
1258
+ if (b === tempDiagramObjectPoints.length) {
1259
+ b--;
1260
+ decreased = true;
1261
+ }
1262
+ let tempX = tempDiagramObjectPoints[b].xPosition - tempDiagramObjectPoints[b - 1].xPosition;
1263
+ let tempY = tempDiagramObjectPoints[b].yPosition - tempDiagramObjectPoints[b - 1].yPosition;
1264
+ const percentageOfSegment = crtPixelPercentageSize - lastPixelPercentageSize;
1265
+ const tempRestX = tempX * (1 - percentageOfSegment);
1266
+ const tempRestY = tempY * (1 - percentageOfSegment);
1267
+ tempX = tempX * percentageOfSegment;
1268
+ tempY = tempY * percentageOfSegment;
1269
+ const newDiagramObjectPoint = new DiagramObjectPoint_1.DiagramObjectPoint(tempDiagramObjectPoints[b - 1].xPosition + tempX, tempDiagramObjectPoints[b - 1].yPosition + tempY);
1270
+ crtPixelLength -= Math.sqrt((tempRestX * tempRestX) + (tempRestY * tempRestY));
1271
+ tempDiagramObjectPoints.splice(b, 0, newDiagramObjectPoint);
1272
+ const conductorCimObj = netzLeitungCimObj.equipments[a];
1273
+ const diagramObject = new DiagramObject_1.DiagramObject(utils_1.generateUUID(), 'DiagramObj ' + ((_b = conductorCimObj.shortName) !== null && _b !== void 0 ? _b : ''));
1274
+ diagramObject.setDiagram(diagram);
1275
+ diagramObject.setIdentifiedObject(conductorCimObj);
1276
+ diagram.addDiagramObject(diagramObject);
1277
+ let i = 1;
1278
+ if (decreased)
1279
+ b++;
1280
+ for (let idx = lastB; idx < b; ++idx) {
1281
+ const diagramObjectPoint = new DiagramObjectPoint_1.DiagramObjectPoint(tempDiagramObjectPoints[idx].xPosition, tempDiagramObjectPoints[idx].yPosition, i);
1282
+ diagramObjectPoint.mrid = utils_1.generateUUID();
1283
+ diagramObjectPoint.diagramObject = diagramObject;
1284
+ diagramObject.addDiagramObjectPoint(diagramObjectPoint);
1285
+ ++i;
1286
+ }
1287
+ }
1288
+ lastB = b - 1;
1289
+ }
1290
+ }
1291
+ else {
1292
+ const netzLeitungCimObj = cimModel.getObject(this.integralID2UUID.get(netzLeitung.id));
1293
+ const diagramObject = new DiagramObject_1.DiagramObject(utils_1.generateUUID());
1294
+ diagramObject.setDiagram(diagram);
1295
+ diagram.addDiagramObject(diagramObject);
1296
+ diagramObject.setIdentifiedObjectUUID(this.integralID2UUID.get(netzLeitung.id));
1297
+ if (netzLeitungCimObj !== undefined) {
1298
+ diagramObject.name = 'DiagramObj ' + ((_c = netzLeitungCimObj.shortName) !== null && _c !== void 0 ? _c : '');
1299
+ }
1300
+ else {
1301
+ diagramObject.name = 'DiagramObj HGUE-Leitung';
1302
+ }
1303
+ for (let idx = 0; idx < tempDiagramObjectPoints.length; ++idx) {
1304
+ const diagramObjectPoint = new DiagramObjectPoint_1.DiagramObjectPoint(tempDiagramObjectPoints[idx].xPosition, tempDiagramObjectPoints[idx].yPosition, idx + 1);
1305
+ diagramObjectPoint.mrid = utils_1.generateUUID();
1306
+ diagramObjectPoint.diagramObject = diagramObject;
1307
+ diagramObject.addDiagramObjectPoint(diagramObjectPoint);
1308
+ }
1309
+ }
1310
+ }
1311
+ }
1312
+ else {
1313
+ this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.NSG_LEITUNG} oder ${integral_sql_1.Integral7TableNames.NSG_LEITUNGSPUNKT} ist nicht vorhanden.`);
1314
+ }
1315
+ });
1316
+ }
1317
+ convertSchemaQuerzweige(cimModel, integral7, variantenNr, onlyEingeblendet = true) {
1318
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1319
+ const whereIDs = [...integral7.i7SchemaID2Type.keys()];
1320
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.NSG_QUERZWEIG) && whereIDs.length > 0) {
1321
+ const results = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.NSG_QUERZWEIG, whereIDs));
1322
+ let filteredResults = util_functions_1.DLUtilFunctions.filterByVariantenNrOnlyEingeblendet(results, variantenNr, onlyEingeblendet);
1323
+ for (const i7Data of filteredResults) {
1324
+ integral7.i7SchemaID2Type.set(i7Data.id, integral_sql_1.Integral7TableNames.NSG_QUERZWEIG);
1325
+ integral7.integralNSGQuerzweig.set(i7Data.id, i7Data);
1326
+ const referenceType = integral7.i7SchemaID2Type.get(i7Data.bezugsobjekt);
1327
+ const uuidPointsMap = new Map();
1328
+ const rotation = util_functions_1.DLUtilFunctions.getRotationBasedOnQuerzweig(i7Data.ausrichtung);
1329
+ let refXPos = 0;
1330
+ let refYPos = 0;
1331
+ let xPos = i7Data.xrel;
1332
+ let yPos = i7Data.yrel;
1333
+ let refCNNodeUUID = undefined;
1334
+ const querzweigType = this.integralID2Type.get(i7Data.querzweig);
1335
+ let nsgQuerzweigWidth;
1336
+ let nsgQuerzweigHeight;
1337
+ if (querzweigType === integral_sql_1.Integral7TableNames.HGUE_KOPFSTATION_VSC || querzweigType === integral_sql_1.Integral7TableNames.HGUE_KOPFSTATION_KLASSISCH) {
1338
+ nsgQuerzweigWidth = constants_1.NsgConstants.HGUE_QUERZWEIG_OBJ_WIDTH;
1339
+ nsgQuerzweigHeight = constants_1.NsgConstants.HGUE_QUERZWEIG_OBJ_HEIGHT;
1340
+ }
1341
+ else {
1342
+ nsgQuerzweigWidth = constants_1.NsgConstants.QUERZWEIG_OBJ_WIDTH;
1343
+ nsgQuerzweigHeight = constants_1.NsgConstants.QUERZWEIG_OBJ_HEIGHT;
1344
+ }
1345
+ if (referenceType === integral_sql_1.Integral7TableNames.NSG_SCHALTFELD) {
1346
+ const nsgSchaltfeld = integral7.integralNSGSchaltfeld.get(i7Data.bezugsobjekt);
1347
+ refCNNodeUUID = nsgSchaltfeld.lastNodeCimUUID;
1348
+ const lastDiagramObjectPointInsideBay = integral7.placedCIMObjectsForDLProfil.get(nsgSchaltfeld.lastNodeCimUUID).diagramObjectPoints[0];
1349
+ refXPos = lastDiagramObjectPointInsideBay.xPosition;
1350
+ refYPos = lastDiagramObjectPointInsideBay.yPosition;
1351
+ xPos += refXPos;
1352
+ yPos += refYPos;
1353
+ if (querzweigType === integral_sql_1.Integral7TableNames.HGUE_KOPFSTATION_VSC || querzweigType === integral_sql_1.Integral7TableNames.HGUE_KOPFSTATION_KLASSISCH) {
1354
+ switch (nsgSchaltfeld.orientation) {
1355
+ case 3:
1356
+ xPos += nsgQuerzweigWidth / 2;
1357
+ break;
1358
+ case 0:
1359
+ yPos += nsgQuerzweigHeight / 2;
1360
+ break;
1361
+ case 1:
1362
+ xPos += nsgQuerzweigWidth / 2;
1363
+ xPos -= nsgSchaltfeld.hoehe;
1364
+ break;
1365
+ case 2:
1366
+ yPos += nsgQuerzweigHeight / 2;
1367
+ yPos -= nsgSchaltfeld.hoehe;
1368
+ break;
1369
+ }
1370
+ }
1371
+ else {
1372
+ switch (nsgSchaltfeld.orientation) {
1373
+ case 3:
1374
+ xPos += nsgQuerzweigWidth / 2;
1375
+ yPos -= nsgQuerzweigHeight / 2;
1376
+ break;
1377
+ case 0:
1378
+ xPos -= nsgQuerzweigWidth / 2;
1379
+ yPos += nsgQuerzweigHeight / 2;
1380
+ break;
1381
+ case 1:
1382
+ xPos += nsgQuerzweigWidth / 2;
1383
+ yPos -= nsgQuerzweigHeight / 2;
1384
+ xPos -= nsgSchaltfeld.hoehe;
1385
+ break;
1386
+ case 2:
1387
+ xPos -= nsgQuerzweigWidth / 2;
1388
+ yPos += nsgQuerzweigHeight / 2;
1389
+ yPos -= nsgSchaltfeld.hoehe;
1390
+ break;
1391
+ }
1392
+ }
1393
+ }
1394
+ else if (referenceType === integral_sql_1.Integral7TableNames.NSG_KNOTEN_SO) {
1395
+ const nsgKnotenSoUUID = integral7.i7ID2UUID.get(i7Data.bezugsobjekt);
1396
+ refCNNodeUUID = nsgKnotenSoUUID;
1397
+ const lastDiagramObjectPointInsideBay = integral7.placedCIMObjectsForDLProfil.get(nsgKnotenSoUUID).diagramObjectPoints[0];
1398
+ refXPos = lastDiagramObjectPointInsideBay.xPosition;
1399
+ refYPos = lastDiagramObjectPointInsideBay.yPosition;
1400
+ xPos += refXPos;
1401
+ yPos += refYPos;
1402
+ xPos -= nsgQuerzweigWidth / 2;
1403
+ yPos -= nsgQuerzweigHeight / 2;
1404
+ }
1405
+ else {
1406
+ continue;
1407
+ throw new Error(`unhandled reference type '${referenceType}' for id ${i7Data.bezugsobjekt} (nsg_nsgquerzweig.id ${i7Data.id})!`);
1408
+ }
1409
+ const tempDiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(xPos, yPos, rotation);
1410
+ const querzweigObjectUUID = this.integralID2UUID.get(i7Data.querzweig);
1411
+ const cimObject2LinkWith = cimModel.getObject(querzweigObjectUUID);
1412
+ uuidPointsMap.set(querzweigObjectUUID, tempDiagramObject);
1413
+ if (cimObject2LinkWith !== undefined) {
1414
+ let ceTerminals = new Set([...cimObject2LinkWith.terminals.values()].map(t => t.getUUID()));
1415
+ cimObject2LinkWith.terminalsUUIDs.forEach(tUUID => ceTerminals.add(tUUID));
1416
+ let cnTerminals = new Set([...cimModel.getConnectivityNode(refCNNodeUUID).terminals.values()].map(t => t.getUUID()));
1417
+ cimObject2LinkWith.terminalsUUIDs.forEach(tUUID => cnTerminals.add(tUUID));
1418
+ const terminalUUID = [...cnTerminals.values()].filter(tUUID => ceTerminals.has(tUUID))[0];
1419
+ let xOffset = 0;
1420
+ let yOffset = 0;
1421
+ switch (i7Data.ausrichtung) {
1422
+ case 0:
1423
+ xOffset = constants_1.NsgConstants.TERMINAL_CE_OFFSET;
1424
+ break;
1425
+ case 1:
1426
+ yOffset = constants_1.NsgConstants.TERMINAL_CE_OFFSET;
1427
+ break;
1428
+ case 2:
1429
+ xOffset = -constants_1.NsgConstants.TERMINAL_CE_OFFSET;
1430
+ break;
1431
+ case 3:
1432
+ yOffset = -constants_1.NsgConstants.TERMINAL_CE_OFFSET;
1433
+ break;
1434
+ }
1435
+ const terminalDiagramObject = util_functions_1.DLUtilFunctions.createDiagramObjectWithPoint(tempDiagramObject.diagramObjectPoints[0].xPosition + xOffset, tempDiagramObject.diagramObjectPoints[0].yPosition + yOffset);
1436
+ terminalDiagramObject.diagramObjectPoints.push(new DiagramObjectPoint_1.DiagramObjectPoint(refXPos, refYPos));
1437
+ uuidPointsMap.set(terminalUUID, terminalDiagramObject);
1438
+ }
1439
+ util_functions_1.DLUtilFunctions.addi7ObjectToCIMModel(uuidPointsMap, cimModel, integral7, i7Data.variantennr);
1440
+ }
1441
+ }
1442
+ else {
1443
+ this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.NSG_QUERZWEIG} ist nicht vorhanden.`);
1444
+ }
1445
+ });
1446
+ }
1447
+ convertSchemaSternpunktSchiene(cimModel, integral7, variantenNr, onlyEingeblendet = true) {
1448
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1449
+ const nsgStandortIDs = [...integral7.integralNSGStandorte.keys()];
1450
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.NSG_STP_SCHIENE) && nsgStandortIDs.length > 0) {
1451
+ const results = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.NSG_STP_SCHIENE, nsgStandortIDs));
1452
+ let filteredResults = util_functions_1.DLUtilFunctions.filterByVariantenNrOnlyEingeblendet(results, variantenNr, onlyEingeblendet);
1453
+ for (const i7Data of filteredResults) {
1454
+ const nsgSo = integral7.integralNSGStandorte.get(i7Data.nsgso);
1455
+ const ssabLength = i7Data.laenge * constants_1.NsgConstants.HORIZONTAL_OFFSET;
1456
+ let pointTopLeft = new DiagramObjectPoint_1.DiagramObjectPoint(0, 0, 1);
1457
+ let pointBottomRight = new DiagramObjectPoint_1.DiagramObjectPoint(ssabLength, 0, 2);
1458
+ const points = [];
1459
+ points.push(pointTopLeft, pointBottomRight);
1460
+ for (const p of points) {
1461
+ util_functions_1.DLUtilFunctions.rotateDiagramObjectPoint(p, -90 * i7Data.ausrichtung);
1462
+ p.xPosition += i7Data.xrel + nsgSo.xrel + (i7Data.ausrichtung === 2 ? ssabLength : 0);
1463
+ p.yPosition += i7Data.yrel + nsgSo.yrel + (i7Data.ausrichtung === 3 ? ssabLength : 0);
1464
+ }
1465
+ integral7.integralNSGStpSchiene.set(i7Data.stpschiene, i7Data);
1466
+ const diagramObject = new DiagramObject_1.DiagramObject(utils_1.getUUID(''), 'Stp-SSAB ');
1467
+ diagramObject.rotation = (360 - 90 * i7Data.ausrichtung) % 360;
1468
+ utils_schema_1.copyDiagramObjectPoints(diagramObject, points);
1469
+ const uuid = this.integralID2UUID.get(i7Data.stpschiene);
1470
+ const cimObject = cimModel.getObject(uuid);
1471
+ diagramObject.setIdentifiedObjectUUID(uuid);
1472
+ const diagramUUID = integral7.i7SchemaID2UUID.get(i7Data.variantennr);
1473
+ const diagram = cimModel.getDiagram(diagramUUID);
1474
+ if (diagram) {
1475
+ diagramObject.setDiagram(diagram);
1476
+ diagram.addDiagramObject(diagramObject);
1477
+ integral7.placedCIMObjectsForDLProfil.set(uuid, diagramObject);
1478
+ }
1479
+ else {
1480
+ this.logger.debug(`SSAB/DiagramObject ${diagramObject.mrid} hat kein Diagram-Objekt.`);
1481
+ }
1482
+ }
1483
+ }
1484
+ else {
1485
+ this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.NSG_STP_SCHIENE} ist nicht vorhanden.`);
1486
+ }
1487
+ });
1488
+ }
1489
+ convertSchemaSternpunktKnoten(cimModel, integral7, variantenNr, onlyEingeblendet = true) {
1490
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
1491
+ const nsgStandortIDs = [...integral7.integralNSGStandorte.keys()];
1492
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.NSG_STP_KNOTEN) && nsgStandortIDs.length > 0) {
1493
+ const results = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.NSG_STP_KNOTEN, nsgStandortIDs));
1494
+ let filteredResults = util_functions_1.DLUtilFunctions.filterByVariantenNrOnlyEingeblendet(results, variantenNr, onlyEingeblendet);
1495
+ if (filteredResults.length <= 0)
1496
+ return;
1497
+ const knoten1pelemIDs = filteredResults.map(elem => elem.knoten);
1498
+ let sqlStatement;
1499
+ sqlStatement = `SELECT *
1500
+ FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.STERNPUNKT_KNOTEN]}
1501
+ WHERE ${integral_sql_1.getWhereIDs('id', knoten1pelemIDs).join(' OR ')};`;
1502
+ const knoten1pelemResults = yield this.mysqlController.execQuery(sqlStatement);
1503
+ const knoten1pelemMap = new Map();
1504
+ for (const elem of knoten1pelemResults) {
1505
+ let arr = knoten1pelemMap.has(elem.netzobjekt) ? knoten1pelemMap.get(elem.netzobjekt) : [];
1506
+ arr.push(elem.id);
1507
+ knoten1pelemMap.set(elem.netzobjekt, arr);
1508
+ }
1509
+ sqlStatement = `SELECT id AS 'netzobjektID', trafo3w AS 'trafoID', 'netz_trafo3w' AS 'trafoType'
1510
+ FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.TRAFO3_WICKLUNG]}
1511
+ WHERE id IN (${knoten1pelemResults.map(elem => elem.netzobjekt).join(',')})
1512
+ UNION ALL
1513
+ SELECT id AS 'netzobjektID', id AS 'trafoID', 'netz_trafo2w' AS 'trafoType'
1514
+ FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.TRAFO2W]}
1515
+ WHERE id IN (${knoten1pelemResults.map(elem => elem.netzobjekt).join(',')});`;
1516
+ const trafoIDTypeResults = yield this.mysqlController.execQuery(sqlStatement);
1517
+ const trafoIDTypeMap = new Map();
1518
+ for (const trafoIDTypeResult of trafoIDTypeResults) {
1519
+ const netzobjektRelatedKnotenIDs = knoten1pelemMap.get(trafoIDTypeResult.netzobjektID);
1520
+ for (const netzobjektRelatedKnotenID of netzobjektRelatedKnotenIDs) {
1521
+ trafoIDTypeMap.set(netzobjektRelatedKnotenID, trafoIDTypeResult);
880
1522
  }
881
- SsabNsg_1.DLUtilFunctions.rotateShiftAddBasedOnNsgSAA(cimModel, integral7, this.integralID2UUID, variantenNr, i7Data.nsgsaa, nodePointMap);
882
1523
  }
1524
+ for (const i7Data of filteredResults) {
1525
+ let centerPoint = new DiagramObjectPoint_1.DiagramObjectPoint(0, 0, 1);
1526
+ const shiftOffset = constants_1.NsgConstants.STP_KNOTEN_WIDTH;
1527
+ const trafoIDType = trafoIDTypeMap.get(i7Data.knoten);
1528
+ const nsgTrafo = integral7.integralNSGTrafos.get(trafoIDType.trafoID);
1529
+ const nsgStandort = integral7.integralNSGStandorte.get(nsgTrafo.nsgsoid);
1530
+ const points = [];
1531
+ points.push(centerPoint);
1532
+ for (const p of points) {
1533
+ util_functions_1.DLUtilFunctions.rotateDiagramObjectPoint(p, -90 * i7Data.ausrichtung);
1534
+ p.xPosition += i7Data.xrel + nsgTrafo.xrel + nsgStandort.xrel + (i7Data.ausrichtung === 2 ? shiftOffset : 0);
1535
+ p.yPosition += i7Data.yrel + nsgTrafo.yrel + nsgStandort.yrel + (i7Data.ausrichtung === 3 ? shiftOffset : 0);
1536
+ }
1537
+ integral7.integralNSGStpKnoten.set(i7Data.id, i7Data);
1538
+ const diagramObject = new DiagramObject_1.DiagramObject(utils_1.getUUID(''), 'Stp-SSAB');
1539
+ diagramObject.rotation = (360 - 90 * i7Data.ausrichtung) % 360;
1540
+ utils_schema_1.copyDiagramObjectPoints(diagramObject, points);
1541
+ const uuid = this.integralID2UUID.get(i7Data.knoten);
1542
+ diagramObject.setIdentifiedObjectUUID(uuid);
1543
+ const diagramUUID = integral7.i7SchemaID2UUID.get(i7Data.variantennr);
1544
+ const diagram = cimModel.getDiagram(diagramUUID);
1545
+ if (diagram) {
1546
+ diagramObject.setDiagram(diagram);
1547
+ diagram.addDiagramObject(diagramObject);
1548
+ integral7.placedCIMObjectsForDLProfil.set(uuid, diagramObject);
1549
+ }
1550
+ else {
1551
+ this.logger.debug(`SSAB/DiagramObject ${diagramObject.mrid} hat kein Diagram-Objekt.`);
1552
+ }
1553
+ }
1554
+ }
1555
+ else {
1556
+ this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.NSG_STP_SCHALTFELD} ist nicht vorhanden.`);
883
1557
  }
884
1558
  });
885
1559
  }
@@ -888,7 +1562,7 @@ class ConverterI7 {
888
1562
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STANDORT)) {
889
1563
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.STANDORT, whereID));
890
1564
  for (const i7Data of result) {
891
- const i7name = util_create_1.createNotation([utils_2.getName(i7Data), "_", utils_2.ueberpruefeZeichenkette(i7Data.ukz)], 32);
1565
+ const i7name = util_create_1.createNotation([utils_2.getName(i7Data), '_', utils_2.ueberpruefeZeichenkette(i7Data.ukz)], 32);
892
1566
  const substation = new AMPRIONSubstation_1.AMPRIONSubstation(utils_1.getUUID(i7Data.guid), i7name, i7Data.kurzname, i7Data.kommentar, i7Data.stationsnummer, i7Data.ukz);
893
1567
  let subregion = cimModel.getSubGeographicalRegion(this.integralID2UUID.get(i7Data.subgeoregion));
894
1568
  if (!subregion) {
@@ -929,7 +1603,7 @@ class ConverterI7 {
929
1603
  const substation = cimModel.getSubstation(this.integralID2UUID.get(i7Data.standort));
930
1604
  const object = cimModel.getObject(this.integralID2UUID.get(i7Data.standort));
931
1605
  if (!object) {
932
- this.logger.warn(`Schaltanlage ${i7Data.id}/${i7Data.guid} ist keinem Standort (${i7Data.standort}) zugeornet.`);
1606
+ this.logger.warn(`Schaltanlage ${i7Data.id}/${i7Data.guid} ist keinem Standort (${i7Data.standort}) zugeordnet.`);
933
1607
  continue;
934
1608
  }
935
1609
  else if (!(object instanceof Substation_1.Substation)) {
@@ -940,7 +1614,7 @@ class ConverterI7 {
940
1614
  i7Data.un +
941
1615
  integral_prefix_1.MITTIGER_PUNKT +
942
1616
  utils_2.ueberpruefeZeichenkette(i7Data.bezeichner);
943
- const vl = new VoltageLevel_1.VoltageLevel(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_", i7Data.un.toString(), "_VL"]), i7Data.kurzname, i7Schluessel);
1617
+ const vl = new VoltageLevel_1.VoltageLevel(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_', i7Data.un.toString(), '_VL']), i7Data.kurzname, i7Schluessel);
944
1618
  const un = utils_2.getU(i7Data.un, defaultValuesConfig.DefaultVoltage);
945
1619
  const baseVoltage = util_create_1.createBaseVoltageIfNotExists(cimModel, un, this.exportFramesBoundary);
946
1620
  vl.baseVoltage = baseVoltage;
@@ -969,7 +1643,7 @@ class ConverterI7 {
969
1643
  continue;
970
1644
  }
971
1645
  else {
972
- voltageLevel.name = util_create_1.createNotation([voltageLevel.name, "_", i7Data.pos.toString()], 32, true);
1646
+ voltageLevel.name = util_create_1.createNotation([voltageLevel.name, '_', i7Data.pos.toString()], 32, true);
973
1647
  }
974
1648
  const schaltanlagenabschnitt = new Schaltanlagenabschnitt_1.SchaltanlagenabschnittImpl(i7Data);
975
1649
  schaltanlagenabschnitt.addSchaltanlage(integral7.integralSchaltanlagen.get(schaltanlagenabschnitt.schaltanlageid));
@@ -995,7 +1669,8 @@ class ConverterI7 {
995
1669
  const i7Schluessel = voltageLevel.description +
996
1670
  integral_prefix_1.SCHALTFELD_PRAEFIX +
997
1671
  utils_2.ueberpruefeZeichenkette(i7Data.bezeichner);
998
- const bay = new AMPRIONBay_1.AMPRIONBay(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_B"], 32, true), i7Data.kurzname, i7Schluessel);
1672
+ const cimrdfid = utils_1.getUUID(i7Data.guid);
1673
+ const bay = new AMPRIONBay_1.AMPRIONBay(cimrdfid, util_create_1.createNotation([utils_2.getName(i7Data), '_', cimrdfid.substring(0, 8), '_B'], 32, true), i7Data.kurzname, i7Schluessel);
999
1674
  bay.number = utils_2.isNumericI7(i7Data.feldnummer) ? utils_2.convertToNumberI7(i7Data.feldnummer).toString() : undefined;
1000
1675
  bay.locationID = i7Data.ips_folder_id;
1001
1676
  bay.voltageLevel = voltageLevel;
@@ -1022,8 +1697,9 @@ class ConverterI7 {
1022
1697
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.KNOTEN_SO, standortIDs));
1023
1698
  for (const i7Data of result) {
1024
1699
  const substation = cimModel.getSubstation(this.integralID2UUID.get(i7Data.standort));
1025
- const vl = new VoltageLevel_1.VoltageLevel(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), i7Data.un.toString(), "_VL"]), i7Data.kurzname);
1026
- const connectivityNode = new AMPRIONConnectivityNode_1.AMPRIONConnectivityNode(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_CN"]), i7Data.kurzname, i7Data.kommentar);
1700
+ const vl = new VoltageLevel_1.VoltageLevel(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), i7Data.un.toString(), '_VL']), i7Data.kurzname);
1701
+ const rdfid = utils_1.getUUID(i7Data.guid);
1702
+ const connectivityNode = new AMPRIONConnectivityNode_1.AMPRIONConnectivityNode(rdfid, util_create_1.createNotation([utils_2.getName(i7Data), '_', rdfid.substring(0, 8), '_CN']), i7Data.kurzname, i7Data.kommentar);
1027
1703
  connectivityNode.setConnectivityNodeContainer(vl);
1028
1704
  vl.addConnectivityNode(connectivityNode);
1029
1705
  connectivityNode.nodeNumber = i7Data.id_psse_cape;
@@ -1070,11 +1746,14 @@ class ConverterI7 {
1070
1746
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.SAMMELSCHIENE, schaltanlagenAbschnittIDs));
1071
1747
  for (const i7Data of result) {
1072
1748
  const i7Schaltanlagenabschnitt = integral7.integralSchaltanlagenAbschnitte.get(i7Data.saabschnitt);
1073
- const busbarSection = new BusbarSection_1.BusbarSection(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Schaltanlagenabschnitt), "_BBS"]), i7Schaltanlagenabschnitt.kurzname);
1749
+ const busbarSection = new BusbarSection_1.BusbarSection(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Schaltanlagenabschnitt), '_BBS']), i7Schaltanlagenabschnitt.kurzname);
1074
1750
  busbarSection.ipMax = i7Data.limit_ip;
1075
1751
  busbarSection.aggregate = false;
1076
- const connectivityNode = new AMPRIONConnectivityNode_1.AMPRIONConnectivityNode(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), i7Data.pos.toString(), "_CN"]), i7Data.kurzname);
1077
- const terminal = this.createConnection(cimModel, busbarSection, connectivityNode, PhaseCode_1.PhaseCode.ABC, true);
1752
+ if (utils_1.getUUID(i7Data.guid) === '24206c79-3ac8-4436-aa02-3f60a9e85975') {
1753
+ let stop = true;
1754
+ }
1755
+ const rdfid = utils_1.getUUID(i7Data.guid);
1756
+ const connectivityNode = new AMPRIONConnectivityNode_1.AMPRIONConnectivityNode(rdfid, util_create_1.createNotation([utils_2.getName(i7Data), '_' + i7Data.pos.toString(), '_' + rdfid.substring(0, 8), '_CN'], 32, true), i7Data.kurzname);
1078
1757
  const voltageLevel = cimModel.getVoltageLevel(this.integralID2UUID.get(i7Schaltanlagenabschnitt.id));
1079
1758
  connectivityNode.nodeNumber = i7Data.id_psse_cape;
1080
1759
  if (voltageLevel) {
@@ -1094,6 +1773,7 @@ class ConverterI7 {
1094
1773
  else {
1095
1774
  this.logger.debug('Sammelschiene ' + i7Data.id + ' besitzt keine Schaltanlage.');
1096
1775
  }
1776
+ this.createConnection(cimModel, busbarSection, connectivityNode, PhaseCode_1.PhaseCode.ABC, true);
1097
1777
  this.addIdMapping(i7Data.id, connectivityNode.mrid, integral_sql_1.Integral7TableNames.SAMMELSCHIENE);
1098
1778
  cimModel.addConnectivityNode(connectivityNode);
1099
1779
  cimModel.addBusbarSection(busbarSection);
@@ -1113,7 +1793,7 @@ class ConverterI7 {
1113
1793
  const result = yield this.queryDataInChuncks(integral_sql_1.I7Objects.KNOTEN_SF, schaltfeldIDs);
1114
1794
  for (const i7Data of result) {
1115
1795
  const bay = cimModel.getBay(this.integralID2UUID.get(i7Data.schaltfeld));
1116
- const connectivityNode = new ConnectivityNode_1.ConnectivityNode(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_CN"]), 'knotensf', `${bay.description}/${i7Data.bezeichner}`);
1796
+ const connectivityNode = new ConnectivityNode_1.ConnectivityNode(utils_1.getUUID(i7Data.guid_cn), util_create_1.createNotation([utils_2.getName(i7Data), '_CN']), 'knotensf', `${bay.description}/${i7Data.bezeichner}`);
1117
1797
  if (bay) {
1118
1798
  connectivityNode.connectivityNodeContainer = bay;
1119
1799
  bay.addConnectivityNode(connectivityNode);
@@ -1137,7 +1817,7 @@ class ConverterI7 {
1137
1817
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.KNOTEN_KF)) {
1138
1818
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.KNOTEN_KF, querkupplungIDs));
1139
1819
  for (const i7Data of result) {
1140
- const connectivityNode = new ConnectivityNode_1.ConnectivityNode(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_CN"]), 'knotenkf');
1820
+ const connectivityNode = new ConnectivityNode_1.ConnectivityNode(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_CN']), 'knotenkf');
1141
1821
  const bay = cimModel.getBay(this.integralID2UUID.get(i7Data.kpfeld));
1142
1822
  if (bay) {
1143
1823
  connectivityNode.connectivityNodeContainer = bay;
@@ -1160,7 +1840,7 @@ class ConverterI7 {
1160
1840
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.KNOTEN_LK)) {
1161
1841
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.KNOTEN_LK, laengskupplungIDs));
1162
1842
  for (const i7Data of result) {
1163
- const connectivityNode = new ConnectivityNode_1.ConnectivityNode(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), "_CN"]), 'KnotenLk');
1843
+ const connectivityNode = new ConnectivityNode_1.ConnectivityNode(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), '_CN']), 'KnotenLk');
1164
1844
  const bay = cimModel.getBay(this.integralID2UUID.get(i7Data.lkupplung));
1165
1845
  if (bay) {
1166
1846
  connectivityNode.connectivityNodeContainer = bay;
@@ -1195,7 +1875,6 @@ class ConverterI7 {
1195
1875
  if (connectivityNode) {
1196
1876
  connectivityNode.addTerminal(terminal);
1197
1877
  terminal.setConnectivityNode(connectivityNode);
1198
- terminal.name = util_create_1.createNotation([connectivityNode.name, "_Schlaufe_T"]);
1199
1878
  }
1200
1879
  else {
1201
1880
  this.logger.debug(`Schlaufe ${i7Data.id} besitzt keinen anschluss.`);
@@ -1212,16 +1891,18 @@ class ConverterI7 {
1212
1891
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.BELASTUNG)) {
1213
1892
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.BELASTUNG, knotenSfIDs));
1214
1893
  for (const i7Data of result) {
1215
- const load = targetClass === cim_class_names_1.CIM_CLASS_NAMES.ConformLoad ? new INTEGRALConformLoad_1.INTEGRALConformLoad(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_CL"])) : new EnergyConsumer_1.EnergyConsumer(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_EC"]));
1894
+ const load = targetClass === cim_class_names_1.CIM_CLASS_NAMES.ConformLoad ? new INTEGRALConformLoad_1.INTEGRALConformLoad(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_CL'])) : new EnergyConsumer_1.EnergyConsumer(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_EC']));
1216
1895
  this.setTopologyEnergySourceConsumerObject(cimModel, load, i7Data);
1217
1896
  const mf = this.cimModelDefault.multiplierFactors.get(this.integralID2UUID.get(i7Data.multfaktor));
1218
1897
  if (mf && targetClass === cim_class_names_1.CIM_CLASS_NAMES.ConformLoad) {
1219
1898
  cimModel.addMultiplierFactor(mf);
1220
- load.multiplierFactor = mf;
1899
+ load.multiplierFactorUUID = mf.getUUID();
1221
1900
  }
1222
1901
  const powerData = utils_2.getActiveReactivePower(i7Data, mf);
1223
1902
  load.p = powerData[0];
1224
1903
  load.q = powerData[1];
1904
+ load.p_mf = powerData[2] ? powerData[2] : undefined;
1905
+ load.q_mf = powerData[3] ? powerData[3] : undefined;
1225
1906
  if (targetClass === cim_class_names_1.CIM_CLASS_NAMES.ConformLoad) {
1226
1907
  const conformLoadGroup = cimModel.getObjectByName(defaultValuesConfig.ConformLoadGroup.name, cim_class_names_1.CIM_CLASS_NAMES.ConformLoadGroup);
1227
1908
  load.loadGroup = conformLoadGroup;
@@ -1287,17 +1968,68 @@ class ConverterI7 {
1287
1968
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.GENERATOR, knotenSfIDs));
1288
1969
  for (const i7Data of result) {
1289
1970
  const genType = this.generatorTypen.get(i7Data.nametyp);
1290
- const synchronousMachine = new SynchronousMachine_1.SynchronousMachine(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_SM"]), i7Data.kurzname, i7Data.nameprimaertyp);
1291
- const isRotatingPhaseShifter = utils_2.isBooleanI7(i7Data.flag_phasenschieber) ? utils_2.convertToBooleanI7(i7Data.flag_phasenschieber) : false;
1971
+ const synchronousMachine = new INTEGRALSynchronousMachine_1.INTEGRALSynchronousMachine(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_SM'], 32, true), i7Data.kurzname, i7Data.nameprimaertyp);
1292
1972
  const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
1293
- if (isRotatingPhaseShifter) {
1294
- synchronousMachine.operatingMode = SynchronousMachineOperatingMode_1.SynchronousMachineOperatingMode.condenser;
1973
+ const maxP = utils_2.isNumericI7(i7Data.p_max) ? utils_2.convertToNumberI7(i7Data.p_max) : 0;
1974
+ const minP = utils_2.isNumericI7(i7Data.p_min) ? utils_2.convertToNumberI7(i7Data.p_min) : 0;
1975
+ const mf = this.cimModelDefault.multiplierFactors.get(this.integralID2UUID.get(i7Data.multfaktor));
1976
+ const powerData = utils_2.getActiveReactivePower(i7Data, mf);
1977
+ const p = powerData[0];
1978
+ const q = powerData[1];
1979
+ const flagCondenserOperationMode = utils_2.isBooleanI7(i7Data.flag_phasenschieber) ? utils_2.convertToBooleanI7(i7Data.flag_phasenschieber) : true;
1980
+ const isRotatingPhaseShifter = mf !== undefined && flagCondenserOperationMode && maxP === 0 && minP === 0;
1981
+ const isGenerator = (maxP >= 0 || maxP === undefined) && (minP >= 0 || minP === undefined);
1982
+ const isMotor = (maxP <= 0 || maxP === undefined) && (minP <= 0 || minP === undefined);
1983
+ synchronousMachine.nameprimaertyp = i7Data.nameprimaertyp;
1984
+ if (isRotatingPhaseShifter && isGenerator && isMotor) {
1985
+ synchronousMachine.type = SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenserOrMotor;
1986
+ }
1987
+ else if (isRotatingPhaseShifter && isGenerator && !isMotor) {
1988
+ synchronousMachine.type = SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenser;
1989
+ }
1990
+ else if (isRotatingPhaseShifter && !isGenerator && !isMotor) {
1295
1991
  synchronousMachine.type = SynchronousMachineKind_1.SynchronousMachineKind.condenser;
1296
1992
  }
1993
+ else if (isRotatingPhaseShifter && !isGenerator && isMotor) {
1994
+ synchronousMachine.type = SynchronousMachineKind_1.SynchronousMachineKind.motorOrCondenser;
1995
+ }
1996
+ else if (!isRotatingPhaseShifter && isGenerator && !isMotor) {
1997
+ synchronousMachine.type = SynchronousMachineKind_1.SynchronousMachineKind.generator;
1998
+ }
1999
+ else if (!isRotatingPhaseShifter && !isGenerator && isMotor) {
2000
+ synchronousMachine.type = SynchronousMachineKind_1.SynchronousMachineKind.motor;
2001
+ }
2002
+ else if (!isRotatingPhaseShifter && isGenerator && isMotor) {
2003
+ synchronousMachine.type = SynchronousMachineKind_1.SynchronousMachineKind.generatorOrMotor;
2004
+ }
1297
2005
  else {
2006
+ synchronousMachine.type = undefined;
2007
+ }
2008
+ const condenserOperationMode = p !== undefined && p === 0 && (synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.condenser
2009
+ || synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.motorOrCondenser
2010
+ || synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenser
2011
+ || synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenserOrMotor);
2012
+ const generatorOperationMode = p !== undefined && p >= 0 && (synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generator
2013
+ || synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrMotor
2014
+ || synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenser
2015
+ || synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenserOrMotor);
2016
+ const motorOperationMode = p !== undefined && p <= 0 && (synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.motor
2017
+ || synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrMotor
2018
+ || synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.motorOrCondenser
2019
+ || synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenserOrMotor);
2020
+ if (condenserOperationMode && !generatorOperationMode && !motorOperationMode) {
2021
+ synchronousMachine.operatingMode = SynchronousMachineOperatingMode_1.SynchronousMachineOperatingMode.condenser;
2022
+ }
2023
+ else if (!condenserOperationMode && generatorOperationMode && !motorOperationMode) {
1298
2024
  synchronousMachine.operatingMode = SynchronousMachineOperatingMode_1.SynchronousMachineOperatingMode.generator;
1299
2025
  synchronousMachine.type = SynchronousMachineKind_1.SynchronousMachineKind.generator;
1300
2026
  }
2027
+ else if (!condenserOperationMode && !generatorOperationMode && motorOperationMode) {
2028
+ synchronousMachine.operatingMode = SynchronousMachineOperatingMode_1.SynchronousMachineOperatingMode.motor;
2029
+ }
2030
+ else {
2031
+ synchronousMachine.operatingMode = undefined;
2032
+ }
1301
2033
  if (utils_2.convertToNumberI7(i7Data.blocktrafo_1)) {
1302
2034
  this.blocktransformatoren.push(utils_2.convertToNumberI7(i7Data.blocktrafo_1));
1303
2035
  }
@@ -1315,21 +2047,20 @@ class ConverterI7 {
1315
2047
  }
1316
2048
  const prio = utils_2.isNumericI7(i7Data.einspprio) ? utils_2.convertToNumberI7(i7Data.einspprio) : undefined;
1317
2049
  synchronousMachine.referencePriority = prio;
1318
- const maxP = utils_2.isNumericI7(i7Data.p_max) ? utils_2.convertToNumberI7(i7Data.p_max) : 0;
1319
- const minP = utils_2.isNumericI7(i7Data.p_min) ? utils_2.convertToNumberI7(i7Data.p_min) : 0;
1320
2050
  const maxQ = utils_2.isNumericI7(i7Data.q_max) ? utils_2.convertToNumberI7(i7Data.q_max) : undefined;
1321
2051
  const minQ = utils_2.isNumericI7(i7Data.q_min) ? utils_2.convertToNumberI7(i7Data.q_min) : undefined;
1322
2052
  const maxQvonPmax = utils_2.isNumericI7(i7Data.qmax_von_pmax) ? utils_2.convertToNumberI7(i7Data.qmax_von_pmax) : undefined;
2053
+ const minQvonPmax = utils_2.isNumericI7(i7Data.qmin_von_pmax) ? utils_2.convertToNumberI7(i7Data.qmin_von_pmax) : undefined;
2054
+ const maxQvonPmin = utils_2.isNumericI7(i7Data.qmax_von_pmin) ? utils_2.convertToNumberI7(i7Data.qmax_von_pmin) : undefined;
1323
2055
  const minQvonPmin = utils_2.isNumericI7(i7Data.qmin_von_pmin) ? utils_2.convertToNumberI7(i7Data.qmin_von_pmin) : undefined;
1324
2056
  synchronousMachine.maxQ = maxQ ? maxQ : maxQvonPmax;
1325
2057
  synchronousMachine.minQ = minQ ? minQ : minQvonPmin;
1326
2058
  const pType = (genType === null || genType === void 0 ? void 0 : genType.sr) * (genType === null || genType === void 0 ? void 0 : genType.cosphir);
1327
2059
  const qType = Math.sqrt(Math.pow(genType === null || genType === void 0 ? void 0 : genType.sr, 2) - Math.pow(pType, 2));
1328
- const powerData = utils_2.getActiveReactivePower(i7Data);
1329
- const p = powerData[0];
1330
- const q = powerData[1];
1331
2060
  synchronousMachine.setActivePower(p * -1);
1332
2061
  synchronousMachine.setReactivePower(q * -1);
2062
+ synchronousMachine.p_mf = powerData[2] ? powerData[2] * -1 : undefined;
2063
+ synchronousMachine.q_mf = powerData[3] ? powerData[3] * -1 : undefined;
1333
2064
  const sr = utils_2.isNumericI7(i7Data.sr) ? utils_2.convertToNumberI7(i7Data.sr) : genType === null || genType === void 0 ? void 0 : genType.sr;
1334
2065
  if (sr && sr >= 0) {
1335
2066
  synchronousMachine.ratedS = sr;
@@ -1337,30 +2068,30 @@ class ConverterI7 {
1337
2068
  else {
1338
2069
  synchronousMachine.ratedS = Math.sqrt(Math.pow(maxP, 2) + Math.pow(maxQvonPmax, 2));
1339
2070
  }
1340
- const ur = utils_2.isNumericI7(i7Data.ur) ? utils_2.convertToNumberI7(i7Data.ur) : genType.ur;
1341
- const usoll = utils_2.isNumericI7(i7Data.usoll) ? utils_2.convertToNumberI7(i7Data.usoll) : undefined;
2071
+ const ur = utils_2.isNumericI7(i7Data.ur) ? utils_2.convertToNumberI7(i7Data.ur) : utils_2.isNumericI7(genType === null || genType === void 0 ? void 0 : genType.ur) ? genType.ur : undefined;
2072
+ const usoll = utils_2.isNumericI7(i7Data.usoll) ? utils_2.convertToNumberI7(i7Data.usoll) : ur;
1342
2073
  const cosphir = utils_2.isNumericI7(i7Data.cosphir) ? utils_2.convertToNumberI7(i7Data.cosphir) : genType.cosphir;
1343
- synchronousMachine.ratedU = usoll ? usoll : ur;
2074
+ synchronousMachine.ratedU = ur ? ur : usoll;
1344
2075
  synchronousMachine.aggregate = true;
1345
2076
  synchronousMachine.ratedPowerFactor = cosphir ? cosphir : undefined;
1346
2077
  synchronousMachine.r = utils_2.isNumericI7(i7Data.rg) ? utils_2.convertToNumberI7(i7Data.rg) : genType === null || genType === void 0 ? void 0 : genType.rg;
1347
- if (!isRotatingPhaseShifter) {
1348
- const reactiveCapabilityCurve = new ReactiveCapabilityCurve_1.ReactiveCapabilityCurve(utils_1.generateUUID(), util_create_1.createNotation(['CurveData', synchronousMachine.mrid, "_RCC"]));
2078
+ if (minP && maxP && minQvonPmin && maxQvonPmax) {
2079
+ const reactiveCapabilityCurve = new ReactiveCapabilityCurve_1.ReactiveCapabilityCurve(utils_1.generateUUID(), util_create_1.createNotation(['CurveData', synchronousMachine.mrid, '_RCC']));
1349
2080
  reactiveCapabilityCurve.curveStyle = CurveStyle_1.CurveStyle.straightLineYValues;
1350
2081
  reactiveCapabilityCurve.xUnit = UnitSymbol_1.UnitSymbol.W;
1351
2082
  reactiveCapabilityCurve.y1Unit = UnitSymbol_1.UnitSymbol.VAr;
1352
2083
  reactiveCapabilityCurve.y2Unit = UnitSymbol_1.UnitSymbol.VAr;
1353
2084
  const curveData1 = new CurveData_1.CurveData(utils_1.generateUUID());
1354
2085
  curveData1.curve = reactiveCapabilityCurve;
1355
- curveData1.xvalue = i7Data.p_min;
1356
- curveData1.y1value = i7Data.qmin_von_pmin;
1357
- curveData1.y2value = i7Data.qmax_von_pmin;
2086
+ curveData1.xvalue = minP;
2087
+ curveData1.y1value = minQvonPmin;
2088
+ curveData1.y2value = maxQvonPmin;
1358
2089
  cimModel.addCurveData(curveData1);
1359
2090
  const curveData2 = new CurveData_1.CurveData(utils_1.generateUUID());
1360
2091
  curveData2.curve = reactiveCapabilityCurve;
1361
- curveData2.xvalue = i7Data.p_max;
1362
- curveData2.y1value = i7Data.qmin_von_pmax;
1363
- curveData2.y2value = i7Data.qmax_von_pmax;
2092
+ curveData2.xvalue = maxP;
2093
+ curveData2.y1value = minQvonPmax;
2094
+ curveData2.y2value = maxQvonPmax;
1364
2095
  cimModel.addCurveData(curveData2);
1365
2096
  cimModel.addReactiveCapabilityCurve(reactiveCapabilityCurve);
1366
2097
  synchronousMachine.initialReactiveCapabilityCurveUUID = reactiveCapabilityCurve.mrid;
@@ -1368,7 +2099,7 @@ class ConverterI7 {
1368
2099
  let regulatingControl = undefined;
1369
2100
  switch (i7Data.spannungsgeregelt) {
1370
2101
  case 1: {
1371
- regulatingControl = new RegulatingControl_1.RegulatingControl(utils_1.generateUUID(), `RC_Gen_${synchronousMachine.getUUID().substring(0, 8)}`);
2102
+ regulatingControl = new RegulatingControl_1.RegulatingControl(utils_1.generateUUID(), util_create_1.createNotation(['GEN'], 32, true));
1372
2103
  regulatingControl.targetValue = usoll;
1373
2104
  regulatingControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
1374
2105
  regulatingControl.discrete = false;
@@ -1384,23 +2115,23 @@ class ConverterI7 {
1384
2115
  }
1385
2116
  }
1386
2117
  let generatingUnit;
1387
- if (!isRotatingPhaseShifter) {
2118
+ if (synchronousMachine.type !== SynchronousMachineKind_1.SynchronousMachineKind.condenser) {
1388
2119
  const generatingUnitConfig = energyTypesConfig[i7Data.nameprimaertyp];
1389
2120
  if (generatingUnitConfig) {
1390
2121
  switch (generatingUnitConfig.class) {
1391
2122
  case 'ThermalGeneratingUnit': {
1392
- generatingUnit = new ThermalGeneratingUnit_1.ThermalGeneratingUnit(utils_1.getUUID(''), util_create_1.createNotation([i7Data.bezeichner, "_TGU"]), i7Data.kurzname, i7Data.nameprimaertyp);
2123
+ generatingUnit = new ThermalGeneratingUnit_1.ThermalGeneratingUnit(utils_1.getUUID(''), util_create_1.createNotation([i7Data.bezeichner, '_TGU']), i7Data.kurzname, i7Data.nameprimaertyp);
1393
2124
  if (generatingUnitConfig.fuelType) {
1394
2125
  utils_2.generateFuelType(i7Data.nameprimaertyp, generatingUnitConfig.fuelType, generatingUnit, cimModel);
1395
2126
  }
1396
2127
  break;
1397
2128
  }
1398
2129
  case 'SolarGeneratingUnit': {
1399
- generatingUnit = new SolarGeneratingUnit_1.SolarGeneratingUnit(utils_1.getUUID(''), util_create_1.createNotation([i7Data.bezeichner, "_SGU"]), i7Data.kurzname, i7Data.nameprimaertyp);
2130
+ generatingUnit = new SolarGeneratingUnit_1.SolarGeneratingUnit(utils_1.getUUID(''), util_create_1.createNotation([i7Data.bezeichner, '_SGU']), i7Data.kurzname, i7Data.nameprimaertyp);
1400
2131
  break;
1401
2132
  }
1402
2133
  case 'WindGeneratingUnit': {
1403
- generatingUnit = new WindGeneratingUnit_1.WindGeneratingUnit(utils_1.getUUID(''), util_create_1.createNotation([i7Data.bezeichner, "_WGU"]), i7Data.kurzname, i7Data.nameprimaertyp);
2134
+ generatingUnit = new WindGeneratingUnit_1.WindGeneratingUnit(utils_1.getUUID(''), util_create_1.createNotation([i7Data.bezeichner, '_WGU']), i7Data.kurzname, i7Data.nameprimaertyp);
1404
2135
  switch (generatingUnitConfig.fuelType) {
1405
2136
  case 'onshore': {
1406
2137
  generatingUnit.windGenUnitType = WindGenUnitKind_1.WindGenUnitKind.onshore;
@@ -1418,26 +2149,26 @@ class ConverterI7 {
1418
2149
  break;
1419
2150
  }
1420
2151
  case 'NuclearGeneratingUnit': {
1421
- generatingUnit = new NuclearGeneratingUnit_1.NuclearGeneratingUnit(utils_1.getUUID(''), util_create_1.createNotation([i7Data.bezeichner, "_NGU"]), i7Data.kurzname);
2152
+ generatingUnit = new NuclearGeneratingUnit_1.NuclearGeneratingUnit(utils_1.getUUID(''), util_create_1.createNotation([i7Data.bezeichner, '_NGU']), i7Data.kurzname);
1422
2153
  break;
1423
2154
  }
1424
2155
  case 'HydroGeneratingUnit': {
1425
- generatingUnit = new HydroGeneratingUnit_1.HydroGeneratingUnit(utils_1.getUUID(''), util_create_1.createNotation([i7Data.bezeichner, "_HGU"]), i7Data.kurzname);
2156
+ generatingUnit = new HydroGeneratingUnit_1.HydroGeneratingUnit(utils_1.getUUID(''), util_create_1.createNotation([i7Data.bezeichner, '_HGU']), i7Data.kurzname);
1426
2157
  generatingUnit.energyConversionCapability = HydroEnergyConversionKind_1.HydroEnergyConversionKind.pumpAndGenerator;
1427
2158
  break;
1428
2159
  }
1429
2160
  default: {
1430
- generatingUnit = new GeneratingUnit_1.GeneratingUnit(utils_1.getUUID(''), util_create_1.createNotation([i7Data.bezeichner, "_GU"]), i7Data.kurzname);
2161
+ generatingUnit = new GeneratingUnit_1.GeneratingUnit(utils_1.getUUID(''), util_create_1.createNotation([i7Data.bezeichner, '_GU']), i7Data.kurzname);
1431
2162
  break;
1432
2163
  }
1433
2164
  }
1434
2165
  }
1435
2166
  else {
1436
- generatingUnit = new GeneratingUnit_1.GeneratingUnit(utils_1.getUUID(''), util_create_1.createNotation([i7Data.bezeichner, "_GU"]), i7Data.kurzname);
2167
+ generatingUnit = new GeneratingUnit_1.GeneratingUnit(utils_1.getUUID(''), util_create_1.createNotation([i7Data.bezeichner, '_GU']), i7Data.kurzname);
1437
2168
  }
1438
2169
  generatingUnit.initialP = utils_2.isNumericI7(i7Data.p0) ? utils_2.convertToNumberI7(i7Data.p0) : undefined;
1439
- generatingUnit.maxOperatingP = utils_2.isNumericI7(i7Data.p_max) ? utils_2.convertToNumberI7(i7Data.p_max) : undefined;
1440
- generatingUnit.minOperatingP = utils_2.isNumericI7(i7Data.p_min) ? utils_2.convertToNumberI7(i7Data.p_min) : undefined;
2170
+ generatingUnit.maxOperatingP = maxP;
2171
+ generatingUnit.minOperatingP = minP;
1441
2172
  generatingUnit.nominalP = utils_2.isNumericI7(cosphir) && utils_2.isNumericI7(sr) ? cosphir * sr : generatingUnit.maxOperatingP;
1442
2173
  const kr = utils_2.isNumericI7(i7Data.kr) ? utils_2.convertToNumberI7(i7Data.kr) : undefined;
1443
2174
  const fn = 50;
@@ -1460,6 +2191,10 @@ class ConverterI7 {
1460
2191
  smtcr.xQuadSubtrans = utils_2.isNumericI7(i7Data.xqu2s) ? utils_2.convertToNumberI7(i7Data.xqu2s) : undefined;
1461
2192
  smtcr.synchronousMachine = synchronousMachine;
1462
2193
  synchronousMachine.synchronousMachineDynamics = smtcr;
2194
+ if (mf) {
2195
+ cimModel.addMultiplierFactor(mf);
2196
+ synchronousMachine.multiplierFactorUUID = mf.getUUID();
2197
+ }
1463
2198
  cimModel.addGeneratingUnit(generatingUnit);
1464
2199
  cimModel.addSynchronousMachine(synchronousMachine);
1465
2200
  cimModel.addSynchronousMachineTimeConstantReactance(smtcr);
@@ -1474,12 +2209,13 @@ class ConverterI7 {
1474
2209
  const result = yield this.mysqlController.execQuery(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.ASYNCHRONMOTOR, 0, 0, knotenSfIDs));
1475
2210
  for (const i7Data of result) {
1476
2211
  const assetType = this.asynchronmotorTypen.get(i7Data.nametyp);
1477
- const asynchronousMachine = new INTEGRALAsynchronousMachine_1.INTEGRALAsynchronousMachine(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_AM"]), i7Data.kurzname, 'SO-' + i7Data.ukz + integral_prefix_1.MITTIGER_PUNKT + i7Data.bezeichner);
2212
+ const asynchronousMachine = new INTEGRALAsynchronousMachine_1.INTEGRALAsynchronousMachine(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_AM']), i7Data.kurzname, 'SO-' + i7Data.ukz + integral_prefix_1.MITTIGER_PUNKT + i7Data.bezeichner);
1478
2213
  let mf = this.cimModelDefault.multiplierFactors.get(this.integralID2UUID.get(i7Data.multfaktor));
1479
2214
  if (mf) {
1480
2215
  cimModel.addMultiplierFactor(mf);
1481
2216
  asynchronousMachine.multiplierFactorUUID = mf.getUUID();
1482
2217
  }
2218
+ asynchronousMachine.asynchronousMachineType = AsynchronousMachineKind_1.AsynchronousMachineKind.motor;
1483
2219
  asynchronousMachine.efficiency = i7Data.wirkungsgrad * 100;
1484
2220
  asynchronousMachine.iaIrRatio = utils_2.isNumericI7(i7Data.ilr_ir) ? i7Data.ilr_ir : assetType === null || assetType === void 0 ? void 0 : assetType.ilr_ir;
1485
2221
  asynchronousMachine.polePairNumber = utils_2.isNumericI7(i7Data.polpaarz) ? i7Data.polpaarz : assetType === null || assetType === void 0 ? void 0 : assetType.polpaarz;
@@ -1487,12 +2223,13 @@ class ConverterI7 {
1487
2223
  asynchronousMachine.ratedPowerFactor = utils_2.isNumericI7(i7Data.cos_phir) ? i7Data.cos_phir : assetType === null || assetType === void 0 ? void 0 : assetType.cosphir;
1488
2224
  asynchronousMachine.ratedS = utils_2.isNumericI7(i7Data.sr) ? i7Data.sr : assetType === null || assetType === void 0 ? void 0 : assetType.sr;
1489
2225
  asynchronousMachine.ratedU = utils_2.isNumericI7(i7Data.ur) ? i7Data.ur : assetType === null || assetType === void 0 ? void 0 : assetType.ur;
1490
- const s0 = i7Data.s0;
1491
- const cosPhi = i7Data.cos_phi;
1492
- const cosPhiR = utils_2.isNumericI7(i7Data.cos_phir) ? i7Data.cos_phir : assetType === null || assetType === void 0 ? void 0 : assetType.cosphir;
1493
- asynchronousMachine.setActivePower(i7Data.p0 * -1);
1494
- const fag_ind = utils_2.isNumericI7(i7Data.flag_ind) ? i7Data.flag_ind : assetType === null || assetType === void 0 ? void 0 : assetType.flag_ind;
1495
- asynchronousMachine.setReactivePower((fag_ind === 1 ? i7Data.q0_ind : i7Data.q0_kap) * -1);
2226
+ const powerData = utils_2.getActiveReactivePower(i7Data, mf);
2227
+ const p = powerData[0];
2228
+ const q = powerData[1];
2229
+ asynchronousMachine.setActivePower(p * -1);
2230
+ asynchronousMachine.setReactivePower(q * -1);
2231
+ asynchronousMachine.p_mf = powerData[2] ? powerData[2] * -1 : undefined;
2232
+ asynchronousMachine.q_mf = powerData[3] ? powerData[3] * -1 : undefined;
1496
2233
  asynchronousMachine.controlEnabled = false;
1497
2234
  const inBetrieb = utils_2.isBooleanI7(i7Data.betrieb) ? utils_2.convertToBooleanI7(i7Data.betrieb) : true;
1498
2235
  asynchronousMachine.normallyInService = inBetrieb;
@@ -1525,7 +2262,7 @@ class ConverterI7 {
1525
2262
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.KWBLOCK)) {
1526
2263
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.KWBLOCK, knotenSfIDs));
1527
2264
  for (const i7Data of result) {
1528
- const synchronousMachine = new INTEGRALSynchronousMachine_1.INTEGRALSynchronousMachine(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_SM"]), i7Data.kurzname);
2265
+ const synchronousMachine = new INTEGRALSynchronousMachine_1.INTEGRALSynchronousMachine(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_SM']), i7Data.kurzname);
1529
2266
  let mf = this.cimModelDefault.multiplierFactors.get(this.integralID2UUID.get(i7Data.multfaktor));
1530
2267
  if (mf) {
1531
2268
  cimModel.addMultiplierFactor(mf);
@@ -1620,7 +2357,7 @@ class ConverterI7 {
1620
2357
  convertErsatzQuerZweige2ExternalNetworkInjection(cimModel, result) {
1621
2358
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
1622
2359
  for (const i7Data of result) {
1623
- const externalNetworkInjection = new ExternalNetworkInjection_1.ExternalNetworkInjection(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_ENI"]), i7Data.kurzname);
2360
+ const externalNetworkInjection = new ExternalNetworkInjection_1.ExternalNetworkInjection(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_ENI']), i7Data.kurzname);
1624
2361
  const usoll = utils_2.isNumericI7(i7Data.usoll) ? utils_2.convertToNumberI7(i7Data.usoll) : undefined;
1625
2362
  const governorscd = utils_2.isNumericI7(i7Data.kr) ? utils_2.convertToNumberI7(i7Data.kr) : undefined;
1626
2363
  externalNetworkInjection.governorSCD = governorscd;
@@ -1644,18 +2381,20 @@ class ConverterI7 {
1644
2381
  const usoll = utils_2.isNumericI7(i7Data.usoll) ? utils_2.convertToNumberI7(i7Data.usoll) : undefined;
1645
2382
  const r_ext = utils_2.isNumericI7(i7Data.r_ext) ? utils_2.convertToNumberI7(i7Data.r_ext) : undefined;
1646
2383
  const x_ext = utils_2.isNumericI7(i7Data.x_ext) ? utils_2.convertToNumberI7(i7Data.x_ext) : undefined;
1647
- const equivalentInjection = new EquivalentInjection_1.EquivalentInjection(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_EI"]), i7Data.kurzname);
2384
+ const equivalentInjection = new INTEGRALEquivalentInjection_1.INTEGRALEquivalentInjection(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_EI']), i7Data.kurzname);
1648
2385
  equivalentInjection.normallyInService = inBetrieb;
1649
2386
  if (flag_lfl && usoll && (r_ext || x_ext)) {
1650
2387
  equivalentInjection.regulationCapability = true;
1651
2388
  equivalentInjection.regulationStatus = true;
1652
2389
  equivalentInjection.regulationTarget = usoll;
1653
- equivalentInjection.r = r_ext;
1654
- equivalentInjection.r0 = 0;
1655
- equivalentInjection.r2 = 0;
1656
- equivalentInjection.x = x_ext;
1657
- equivalentInjection.x0 = 0;
1658
- equivalentInjection.x2 = 0;
2390
+ equivalentInjection.rExt = r_ext;
2391
+ equivalentInjection.r = 1e9;
2392
+ equivalentInjection.r0 = 1e9;
2393
+ equivalentInjection.r2 = 1e9;
2394
+ equivalentInjection.xExt = x_ext;
2395
+ equivalentInjection.x = 1e9;
2396
+ equivalentInjection.x0 = 1e9;
2397
+ equivalentInjection.x2 = 1e9;
1659
2398
  }
1660
2399
  equivalentInjection.aggregate = true;
1661
2400
  this.setTopologyEnergySourceConsumerObject(cimModel, equivalentInjection, i7Data);
@@ -1726,8 +2465,7 @@ class ConverterI7 {
1726
2465
  convertErsatzLaengszweige(frame, integral7, defaultValuesConfig) {
1727
2466
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
1728
2467
  const cimModel = frame.cimModel;
1729
- if (this.isTableAvailable(integral_sql_1.Integral7TableNames.ERSATZLAENGSZWEIG) && integral7.ersatzZweigAnschlussKnotenIDs.length) {
1730
- integral_sql_1.I7Objects.ERSATZLAENGSZWEIGDIFF;
2468
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.ERSATZLAENGSZWEIG) && integral7.ersatzZweigAnschlussKnotenIDs.length > 0) {
1731
2469
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.ERSATZLAENGSZWEIG, integral7.ersatzZweigAnschlussKnotenIDs));
1732
2470
  for (const i7Data of result) {
1733
2471
  const i7Schluessel = integral_prefix_1.ERSATZLAENGSZWEIG_PRAEFIX +
@@ -1738,7 +2476,8 @@ class ConverterI7 {
1738
2476
  utils_2.ueberpruefeZeichenkette(i7Data.bezeichner) +
1739
2477
  integral_prefix_1.MITTIGER_PUNKT +
1740
2478
  utils_2.ueberpruefeZeichenkette(i7Data.stkabname);
1741
- const equivalentBranch = new EquivalentBranch_1.EquivalentBranch(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([i7Data.bezeichner, '_EB', `_${cimModel.equivalentBranches.size}`]), i7Data.kurzname, i7Schluessel);
2479
+ const rdfid = utils_1.getUUID(i7Data.guid);
2480
+ const equivalentBranch = new EquivalentBranch_1.EquivalentBranch(rdfid, util_create_1.createNotation([i7Data.bezeichner, '_', rdfid.substring(0, 8), '_EB'], 32, true), i7Data.kurzname, i7Schluessel);
1742
2481
  const ur1 = utils_2.getU(i7Data.ur1, defaultValuesConfig.DefaultVoltage);
1743
2482
  const ur2 = utils_2.getU(i7Data.ur2, defaultValuesConfig.DefaultVoltage);
1744
2483
  const baseVoltageUr1 = util_create_1.createBaseVoltageIfNotExists(cimModel, ur1, this.exportFramesBoundary);
@@ -1752,6 +2491,7 @@ class ConverterI7 {
1752
2491
  this.createBoundaryConnection(frame, equivalentBranch, i7Data.aknoten, PhaseCode_1.PhaseCode.ABC);
1753
2492
  this.createBoundaryConnection(frame, equivalentBranch, i7Data.eknoten, PhaseCode_1.PhaseCode.ABC);
1754
2493
  cimModel.addEquivalentBranch(equivalentBranch);
2494
+ this.checkErsatzZweigID(i7Data.id, integral7);
1755
2495
  this.addIdMapping(i7Data.id, equivalentBranch.mrid, integral_sql_1.Integral7TableNames.ERSATZLAENGSZWEIG);
1756
2496
  }
1757
2497
  }
@@ -1765,7 +2505,7 @@ class ConverterI7 {
1765
2505
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.KOMPENSATIONSDROSSEL)) {
1766
2506
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.KOMPENSATIONSDROSSEL, knotenSfIDs));
1767
2507
  for (const i7Data of result) {
1768
- const shunt = new LinearShuntCompensator_1.LinearShuntCompensator(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_LSC"]), i7Data.kurzname);
2508
+ const shunt = new LinearShuntCompensator_1.LinearShuntCompensator(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_LSC']), i7Data.kurzname);
1769
2509
  shunt.normalSections = i7Data.aktstufe;
1770
2510
  shunt.maximumSections = i7Data.maxstufe;
1771
2511
  shunt.nomU = i7Data.ur;
@@ -1773,9 +2513,9 @@ class ConverterI7 {
1773
2513
  const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
1774
2514
  const spannungsregelungLokal = utils_2.isBooleanI7(i7Data.flag_lf) ? utils_2.convertToBooleanI7(i7Data.flag_lf) : false;
1775
2515
  const spannungsregelungRemote = utils_2.isBooleanI7(i7Data.rpv_geregelt) ? utils_2.convertToBooleanI7(i7Data.rpv_geregelt) : false;
1776
- let regulatingControl;
2516
+ let regulatingControl = undefined;
1777
2517
  if (spannungsregelungLokal || spannungsregelungRemote) {
1778
- regulatingControl = new RegulatingControl_1.RegulatingControl(utils_1.generateUUID(), `RC_Kompdrossel_${i7Data.id}`);
2518
+ regulatingControl = new RegulatingControl_1.RegulatingControl(utils_1.generateUUID(), util_create_1.createNotation(['LSC']));
1779
2519
  regulatingControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
1780
2520
  regulatingControl.discrete = true;
1781
2521
  regulatingControl.targetDeadband = i7Data.uband;
@@ -1799,7 +2539,7 @@ class ConverterI7 {
1799
2539
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.KOMPENSATIONSKONDENSATOR)) {
1800
2540
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.KOMPENSATIONSKONDENSATOR, knotenSfIDs));
1801
2541
  for (const i7Data of result) {
1802
- const shunt = new LinearShuntCompensator_1.LinearShuntCompensator(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_LSC"]), i7Data.kurzname);
2542
+ const shunt = new LinearShuntCompensator_1.LinearShuntCompensator(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_LSC']), i7Data.kurzname);
1803
2543
  shunt.normalSections = i7Data.aktstufe;
1804
2544
  shunt.maximumSections = i7Data.maxstufe;
1805
2545
  shunt.nomU = i7Data.ur;
@@ -1833,7 +2573,7 @@ class ConverterI7 {
1833
2573
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STATCOM)) {
1834
2574
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.STATCOM, knotenSfIDs));
1835
2575
  for (const i7Data of result) {
1836
- const statVarCom = new StaticVarCompensator_1.StaticVarCompensator(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_SVC"]), i7Data.kurzname);
2576
+ const statVarCom = new StaticVarCompensator_1.StaticVarCompensator(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_SVC']), i7Data.kurzname);
1837
2577
  const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
1838
2578
  const regulatingControl = utils_2.createRegulatingControl(`RC_Statcom_${i7Data.id}`, inBetrieb, UnitMultiplier_1.UnitMultiplier.k, RegulatingControlModeKind_1.RegulatingControlModeKind.voltage, cimModel, statVarCom);
1839
2579
  this.setTopologyEnergySourceConsumerObject(cimModel, statVarCom, i7Data, regulatingControl);
@@ -1873,7 +2613,7 @@ class ConverterI7 {
1873
2613
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.SVC)) {
1874
2614
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.SVC, knotenSfIDs));
1875
2615
  for (const i7Data of result) {
1876
- const statVarCom = new StaticVarCompensator_1.StaticVarCompensator(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_SVC"]), i7Data.kurzname);
2616
+ const statVarCom = new StaticVarCompensator_1.StaticVarCompensator(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_SVC']), i7Data.kurzname);
1877
2617
  const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
1878
2618
  const regulatingControl = utils_2.createRegulatingControl(`RC_SVC ${i7Data.id}`, inBetrieb, UnitMultiplier_1.UnitMultiplier.k, RegulatingControlModeKind_1.RegulatingControlModeKind.voltage, cimModel, statVarCom);
1879
2619
  this.setTopologyEnergySourceConsumerObject(cimModel, statVarCom, i7Data, regulatingControl);
@@ -1913,7 +2653,7 @@ class ConverterI7 {
1913
2653
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.HGUE_KOPFSTATION_KLASSISCH)) {
1914
2654
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.HGUE_KOPFSTATION_KLASSISCH, knotenSfIDs));
1915
2655
  for (const i7Data of result) {
1916
- const dcConverterUnit = new DCConverterUnit_1.DCConverterUnit(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), "_DCCU"]));
2656
+ const dcConverterUnit = new DCConverterUnit_1.DCConverterUnit(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), '_DCCU']));
1917
2657
  const acConnectivityNode = cimModel.connectivityNodes.get(this.integralID2UUID.get(i7Data.anschluss));
1918
2658
  if (acConnectivityNode) {
1919
2659
  const equipmentContainer = this.determineEquipmentContainer('Substation', cimModel, acConnectivityNode.connectivityNodeContainer);
@@ -1927,7 +2667,7 @@ class ConverterI7 {
1927
2667
  else {
1928
2668
  this.logger.debug(`DCConverterUnit ${i7Data.id} besitzt keinen ConnectivityNode.`);
1929
2669
  }
1930
- const csConverter = new CsConverter_1.CsConverter(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_CSC"]), i7Data.kurzname);
2670
+ const csConverter = new CsConverter_1.CsConverter(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_CSC']), i7Data.kurzname);
1931
2671
  csConverter.equipmentContainer = dcConverterUnit;
1932
2672
  csConverter.baseS = i7Data.pr;
1933
2673
  csConverter.ratedUdc = i7Data.ur;
@@ -1956,10 +2696,10 @@ class ConverterI7 {
1956
2696
  else {
1957
2697
  this.logger.debug(`CsConverter ${i7Data.id} ${csConverter.mrid} besitzt keinen AC Anschluss.`);
1958
2698
  }
1959
- const dcNode = new DCNode_1.DCNode(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), "_DCN"]));
2699
+ const dcNode = new DCNode_1.DCNode(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), '_DCN']));
1960
2700
  dcNode.dcEquipmentContainer = dcConverterUnit;
1961
2701
  dcConverterUnit.dCNodes.set(dcNode.getUUID(), dcNode);
1962
- const acDCConverterDCTerminal = new ACDCConverterDCTerminal_1.ACDCConverterDCTerminal(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), "_ACDCC-DCT"]));
2702
+ const acDCConverterDCTerminal = new ACDCConverterDCTerminal_1.ACDCConverterDCTerminal(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), '_ACDCC-DCT']));
1963
2703
  acDCConverterDCTerminal.dCConductingEquipment = csConverter;
1964
2704
  csConverter.dCTerminals.set(acDCConverterDCTerminal.getUUID(), acDCConverterDCTerminal);
1965
2705
  acDCConverterDCTerminal.dcNode = dcNode;
@@ -1975,11 +2715,12 @@ class ConverterI7 {
1975
2715
  });
1976
2716
  }
1977
2717
  convertVsConverterDC(cimModel, integral7, knotenSfIDs) {
2718
+ var _a;
1978
2719
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
1979
2720
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.HGUE_KOPFSTATION_VSC)) {
1980
2721
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.HGUE_KOPFSTATION_VSC, knotenSfIDs));
1981
2722
  for (const i7Data of result) {
1982
- const dcConverterUnit = new DCConverterUnit_1.DCConverterUnit(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), "_DCCU"]));
2723
+ const dcConverterUnit = new DCConverterUnit_1.DCConverterUnit(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), '_DCCU']));
1983
2724
  const acConnectivityNode = cimModel.connectivityNodes.get(this.integralID2UUID.get(i7Data.anschluss));
1984
2725
  if (acConnectivityNode) {
1985
2726
  const equipmentContainer = this.determineEquipmentContainer('Substation', cimModel, acConnectivityNode.connectivityNodeContainer);
@@ -1993,7 +2734,7 @@ class ConverterI7 {
1993
2734
  else {
1994
2735
  this.logger.debug(`DCConverterUnit ${i7Data.id} besitzt keinen ConnectivityNode.`);
1995
2736
  }
1996
- const vsConverter = new VsConverter_1.VsConverter(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_VSC"]), i7Data.kurzname);
2737
+ const vsConverter = new VsConverter_1.VsConverter(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_VSC']), i7Data.kurzname);
1997
2738
  vsConverter.equipmentContainer = dcConverterUnit;
1998
2739
  vsConverter.baseS = i7Data.pr;
1999
2740
  utils_2.isNumericI7(i7Data.udc) ? vsConverter.ratedUdc = i7Data.udc : vsConverter.ratedUdc = i7Data.ur;
@@ -2017,6 +2758,13 @@ class ConverterI7 {
2017
2758
  vsConverter.pPccControl = VsPpccControlKind_1.VsPpccControlKind.pPcc;
2018
2759
  vsConverter.qPccControl = VsQpccControlKind_1.VsQpccControlKind.powerFactorPcc;
2019
2760
  }
2761
+ vsConverter.droop = 0;
2762
+ vsConverter.droopCompensation = 0;
2763
+ vsConverter.qShare = 0;
2764
+ vsConverter.targetQpcc = 0;
2765
+ vsConverter.targetUpcc = (_a = acConnectivityNode === null || acConnectivityNode === void 0 ? void 0 : acConnectivityNode.getVoltageLevel()) === null || _a === void 0 ? void 0 : _a.getBaseVoltageAsNumber();
2766
+ vsConverter.targetPpcc = vsConverter.baseS;
2767
+ vsConverter.targetUdc = vsConverter.ratedUdc;
2020
2768
  const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
2021
2769
  vsConverter.normallyInService = inBetrieb;
2022
2770
  if (acConnectivityNode) {
@@ -2025,9 +2773,9 @@ class ConverterI7 {
2025
2773
  else {
2026
2774
  this.logger.debug(`VsConverter ${i7Data.id} ${vsConverter.mrid} besitzt keinen AC Anschluss.`);
2027
2775
  }
2028
- const dcNode = new DCNode_1.DCNode(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), "_DCN"]));
2776
+ const dcNode = new DCNode_1.DCNode(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), '_DCN']));
2029
2777
  dcNode.dcEquipmentContainer = dcConverterUnit;
2030
- const acDCConverterDCTerminal = new ACDCConverterDCTerminal_1.ACDCConverterDCTerminal(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), "_ACDCC-DCT"]));
2778
+ const acDCConverterDCTerminal = new ACDCConverterDCTerminal_1.ACDCConverterDCTerminal(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), '_ACDCC-DCT']));
2031
2779
  acDCConverterDCTerminal.dCConductingEquipmentUUID = vsConverter.mrid;
2032
2780
  acDCConverterDCTerminal.dcNode = dcNode;
2033
2781
  vsConverter.dCTerminals.set(acDCConverterDCTerminal.getUUID(), acDCConverterDCTerminal);
@@ -2047,7 +2795,8 @@ class ConverterI7 {
2047
2795
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
2048
2796
  for (const i7Data of result) {
2049
2797
  try {
2050
- const energySource = new EnergySource_1.EnergySource(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_ES"]), i7Data.kurzname);
2798
+ const rdfid = utils_1.getUUID(i7Data.guid);
2799
+ const energySource = new EnergySource_1.EnergySource(rdfid, util_create_1.createNotation([utils_2.getName(i7Data), rdfid.substring(0, 8), '_ES'], 32, true), i7Data.kurzname);
2051
2800
  this.setTopologyEnergySourceConsumerObject(cimModel, energySource, i7Data);
2052
2801
  energySource.nominalVoltage = (_c = (_b = (_a = energySource.equipmentContainer) === null || _a === void 0 ? void 0 : _a.baseVoltage) === null || _b === void 0 ? void 0 : _b.nominalVoltage) === null || _c === void 0 ? void 0 : _c.value;
2053
2802
  const prio = i7Data.einspprio;
@@ -2069,7 +2818,8 @@ class ConverterI7 {
2069
2818
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
2070
2819
  for (const i7Data of result) {
2071
2820
  try {
2072
- const equivalentInjection = new EquivalentInjection_1.EquivalentInjection(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_EI', `_${cimModel.equivalentInjections.size}`]), i7Data.kurzname);
2821
+ const rdfid = utils_1.getUUID(i7Data.guid);
2822
+ const equivalentInjection = new EquivalentInjection_1.EquivalentInjection(rdfid, util_create_1.createNotation([utils_2.getName(i7Data), '_', rdfid.substring(0, 8), '_EI'], 32, true), i7Data.kurzname);
2073
2823
  const prio = i7Data.einspprio;
2074
2824
  const usoll = i7Data.usoll;
2075
2825
  const powerData = utils_2.getActiveReactivePower(i7Data);
@@ -2089,31 +2839,49 @@ class ConverterI7 {
2089
2839
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
2090
2840
  for (const i7Data of result) {
2091
2841
  try {
2092
- const externalNetworkInjection = new INTEGRALExternalNetworkInjection_1.INTEGRALExternalNetworkInjection(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_ENI"]), i7Data.kurzname);
2842
+ const cn = cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss));
2843
+ const cimrdfid = utils_1.getUUID(i7Data.guid);
2844
+ const externalNetworkInjection = new INTEGRALExternalNetworkInjection_1.INTEGRALExternalNetworkInjection(cimrdfid, util_create_1.createNotation([utils_2.getName(i7Data), '_' + cimrdfid, '_ENI'], 32, true), i7Data.kurzname);
2845
+ const un = cn.getVoltageLevel().getBaseVoltageAsNumber();
2846
+ externalNetworkInjection.nameprimaertyp = i7Data.nameprimaertyp;
2093
2847
  let mf = undefined;
2094
2848
  mf = this.cimModelDefault.multiplierFactors.get(this.integralID2UUID.get(i7Data.multfaktor));
2095
2849
  if (mf) {
2096
2850
  cimModel.addMultiplierFactor(mf);
2097
2851
  externalNetworkInjection.multiplierFactorUUID = mf.getUUID();
2098
2852
  }
2099
- const governorscd = utils_2.isNumericI7(i7Data.kr) ? utils_2.convertToNumberI7(i7Data.kr) : undefined;
2100
- externalNetworkInjection.governorSCD = governorscd;
2101
2853
  const maxP = utils_2.isNumericI7(i7Data.p_max) ? utils_2.convertToNumberI7(i7Data.p_max) : undefined;
2102
2854
  externalNetworkInjection.maxP = maxP;
2855
+ const governorscd = utils_2.isNumericI7(i7Data.kr) && maxP ? utils_2.calculateSigma(50, externalNetworkInjection.maxP, utils_2.convertToNumberI7(i7Data.kr)) : undefined;
2856
+ externalNetworkInjection.governorSCD = governorscd;
2103
2857
  const maxQ = utils_2.isNumericI7(i7Data.q_max) ? utils_2.convertToNumberI7(i7Data.q_max) : undefined;
2104
2858
  externalNetworkInjection.maxQ = maxQ;
2105
2859
  const minP = utils_2.isNumericI7(i7Data.p_min) ? utils_2.convertToNumberI7(i7Data.p_min) : undefined;
2106
2860
  externalNetworkInjection.minP = minP;
2107
2861
  const minQ = utils_2.isNumericI7(i7Data.q_min) ? utils_2.convertToNumberI7(i7Data.q_min) : undefined;
2108
2862
  externalNetworkInjection.minQ = minQ;
2109
- const maxR0X0Ratio = undefined;
2863
+ const r0X0 = utils_2.isNumericI7(i7Data.x0_r0) ? 1 / utils_2.convertToNumberI7(i7Data.x0_r0) : undefined;
2864
+ const r1X1 = utils_2.isNumericI7(i7Data.x1_r1) ? 1 / utils_2.convertToNumberI7(i7Data.x1_r1) : undefined;
2865
+ const z0Z1 = utils_2.isNumericI7(i7Data.z0_z1) ? utils_2.convertToNumberI7(i7Data.z0_z1) : undefined;
2866
+ const maxR0X0Ratio = utils_2.isNumericI7(i7Data.x0_r0_max) ? 1 / utils_2.convertToNumberI7(i7Data.x0_r0_max) : r0X0;
2110
2867
  externalNetworkInjection.maxR0ToX0Ratio = maxR0X0Ratio;
2111
- const maxR1X1Ratio = undefined;
2868
+ const maxR1X1Ratio = utils_2.isNumericI7(i7Data.x1_r1_max) ? 1 / utils_2.convertToNumberI7(i7Data.x1_r1_max) : r1X1;
2112
2869
  externalNetworkInjection.maxR1ToX1Ratio = maxR1X1Ratio;
2113
- const maxZ0Z1Ratio = undefined;
2870
+ const maxZ0Z1Ratio = utils_2.isNumericI7(i7Data.z0_z1_max) ? utils_2.convertToNumberI7(i7Data.z0_z1_max) : z0Z1;
2114
2871
  externalNetworkInjection.maxZ0ToZ1Ratio = maxZ0Z1Ratio;
2115
- const minIkSecond = undefined;
2872
+ const minR0X0Ratio = utils_2.isNumericI7(i7Data.x0_r0_min) ? 1 / utils_2.convertToNumberI7(i7Data.x0_r0_min) : r0X0;
2873
+ externalNetworkInjection.minR0ToX0Ratio = minR0X0Ratio;
2874
+ const minR1X1Ratio = utils_2.isNumericI7(i7Data.x1_r1_min) ? utils_2.convertToNumberI7(i7Data.x1_r1_min) : r1X1;
2875
+ externalNetworkInjection.minR1ToX1Ratio = minR1X1Ratio;
2876
+ const minZ0Z1Ratio = utils_2.isNumericI7(i7Data.z0_z1_min) ? utils_2.convertToNumberI7(i7Data.z0_z1_min) : z0Z1;
2877
+ externalNetworkInjection.minZ0ToZ1Ratio = minZ0Z1Ratio;
2878
+ const skAkt = utils_2.isNumericI7(i7Data.sk_akt) ? utils_2.convertToNumberI7(i7Data.sk_akt) : undefined;
2879
+ const skMin = utils_2.isNumericI7(i7Data.sk_min) ? utils_2.convertToNumberI7(i7Data.sk_min) : skAkt;
2880
+ const skMax = utils_2.isNumericI7(i7Data.sk_max) ? utils_2.convertToNumberI7(i7Data.sk_max) : skAkt;
2881
+ const minIkSecond = utils_2.isNumericI7(i7Data.sk_min) ? utils_2.convertToNumberI7(skMin) / Math.sqrt(3) * skMin : undefined;
2116
2882
  externalNetworkInjection.minInitialSymShCCurrent = minIkSecond;
2883
+ const maxIkSecond = utils_2.isNumericI7(i7Data.sk_max) ? utils_2.convertToNumberI7(skMax) / Math.sqrt(3) * skMax : undefined;
2884
+ externalNetworkInjection.maxInitialSymShCCurrent = maxIkSecond;
2117
2885
  const usoll = utils_2.isNumericI7(i7Data.usoll) ? utils_2.convertToNumberI7(i7Data.usoll) : undefined;
2118
2886
  const inBetrieb = utils_2.isBooleanI7(i7Data.betrieb) ? utils_2.convertToBooleanI7(i7Data.betrieb) : false;
2119
2887
  let regulatingControl = undefined;
@@ -2136,14 +2904,22 @@ class ConverterI7 {
2136
2904
  }
2137
2905
  }
2138
2906
  this.setTopologyEnergySourceConsumerObject(cimModel, externalNetworkInjection, i7Data, regulatingControl);
2139
- const prio = utils_2.isNumericI7(i7Data.einspprio) ? utils_2.convertToNumberI7(i7Data.einspprio) : undefined;
2140
- externalNetworkInjection.referencePriority = prio;
2907
+ let prio = utils_2.isNumericI7(i7Data.einspprio) ? utils_2.convertToNumberI7(i7Data.einspprio) : undefined;
2141
2908
  if ((regulatingControl === null || regulatingControl === void 0 ? void 0 : regulatingControl.mode) === RegulatingControlModeKind_1.RegulatingControlModeKind.voltage) {
2142
- externalNetworkInjection.referencePriority = prio;
2909
+ if (prio && prio > 0) {
2910
+ externalNetworkInjection.referencePriority = prio + 1;
2911
+ }
2912
+ else {
2913
+ prio = undefined;
2914
+ }
2143
2915
  }
2144
- const powerData = utils_2.getActiveReactivePower(i7Data);
2145
- externalNetworkInjection.p = powerData[0];
2146
- externalNetworkInjection.q = powerData[1];
2916
+ const powerData = utils_2.getActiveReactivePower(i7Data, mf);
2917
+ const p = powerData[0];
2918
+ const q = powerData[1];
2919
+ externalNetworkInjection.setActivePower(p * -1);
2920
+ externalNetworkInjection.setReactivePower(q * -1);
2921
+ externalNetworkInjection.p_mf = powerData[2] ? powerData[2] * -1 : undefined;
2922
+ externalNetworkInjection.q_mf = powerData[3] ? powerData[3] * -1 : undefined;
2147
2923
  cimModel.addExternalNetworkInjection(externalNetworkInjection);
2148
2924
  this.addIdMapping(i7Data.id, externalNetworkInjection.mrid, integral_sql_1.I7Objects.EINSPEISUNG);
2149
2925
  }
@@ -2154,14 +2930,16 @@ class ConverterI7 {
2154
2930
  });
2155
2931
  }
2156
2932
  setTopologyEnergySourceConsumerObject(cimModel, condEquip, i7Data, regulatingControl, generatingUnit) {
2157
- var _a, _b;
2933
+ var _a, _b, _c;
2158
2934
  const inBetrieb = utils_2.convertToBooleanI7(i7Data.betrieb);
2159
2935
  condEquip.normallyInService = inBetrieb;
2160
2936
  const connectivityNode = cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss));
2161
2937
  if (connectivityNode) {
2162
2938
  const terminal = this.createConnection(cimModel, condEquip, connectivityNode, PhaseCode_1.PhaseCode.ABC, true);
2163
- if (regulatingControl)
2939
+ if (regulatingControl) {
2940
+ regulatingControl.name = util_create_1.createNotation([regulatingControl.name, '_', (_a = connectivityNode.getVoltageLevel()) === null || _a === void 0 ? void 0 : _a.getUUID().substring(0, 8), '_RC'], 32, true);
2164
2941
  regulatingControl.terminal = terminal;
2942
+ }
2165
2943
  const equipmentContainer = this.determineEquipmentContainer('VoltageLevel', cimModel, connectivityNode.connectivityNodeContainer);
2166
2944
  if (equipmentContainer) {
2167
2945
  condEquip.equipmentContainer = equipmentContainer;
@@ -2190,11 +2968,11 @@ class ConverterI7 {
2190
2968
  }
2191
2969
  }
2192
2970
  else {
2193
- this.logger.error(`${(_a = condEquip === null || condEquip === void 0 ? void 0 : condEquip.constructor) === null || _a === void 0 ? void 0 : _a.name} ${i7Data.id} besitzt keinen EquipmentContainer.`);
2971
+ this.logger.error(`${(_b = condEquip === null || condEquip === void 0 ? void 0 : condEquip.constructor) === null || _b === void 0 ? void 0 : _b.name} ${i7Data.id} besitzt keinen EquipmentContainer.`);
2194
2972
  }
2195
2973
  }
2196
2974
  else {
2197
- this.logger.error(`${(_b = condEquip === null || condEquip === void 0 ? void 0 : condEquip.constructor) === null || _b === void 0 ? void 0 : _b.name} ${i7Data.id} besitzt keinen ConnectivityNode.`);
2975
+ this.logger.error(`${(_c = condEquip === null || condEquip === void 0 ? void 0 : condEquip.constructor) === null || _c === void 0 ? void 0 : _c.name} ${i7Data.id} besitzt keinen ConnectivityNode.`);
2198
2976
  }
2199
2977
  }
2200
2978
  convertQuerkupplungen(cimModel, integral7, schaltanlagenAbschnittIDs) {
@@ -2202,7 +2980,8 @@ class ConverterI7 {
2202
2980
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.QUERKUPPLUNG)) {
2203
2981
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.QUERKUPPLUNG, schaltanlagenAbschnittIDs));
2204
2982
  for (const i7Data of result) {
2205
- const bay = new AMPRIONBay_1.AMPRIONBay(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_B"]), 'Querkupplung');
2983
+ const cimrdfid = utils_1.getUUID(i7Data.guid);
2984
+ const bay = new AMPRIONBay_1.AMPRIONBay(cimrdfid, util_create_1.createNotation([utils_2.getName(i7Data), '_', cimrdfid.substring(0, 8), '_B']), 'Querkupplung');
2206
2985
  bay.number = utils_2.isNumericI7(i7Data.feldnummer) ? utils_2.convertToNumberI7(i7Data.feldnummer).toString() : undefined;
2207
2986
  bay.locationID = i7Data.ips_folder_id;
2208
2987
  const voltageLevel = cimModel.getVoltageLevel(this.integralID2UUID.get(i7Data.saabschnitt));
@@ -2232,7 +3011,8 @@ class ConverterI7 {
2232
3011
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSKUPPLUNG)) {
2233
3012
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.LAENGSKUPPLUNG, schaltanlagenIDs));
2234
3013
  for (const i7Data of result) {
2235
- const bay = new AMPRIONBay_1.AMPRIONBay(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_B"]), i7Data.kurzname, 'Laengskupplung');
3014
+ const cimrdfid = utils_1.getUUID(i7Data.guid);
3015
+ const bay = new AMPRIONBay_1.AMPRIONBay(cimrdfid, util_create_1.createNotation([utils_2.getName(i7Data), '_', cimrdfid.substring(0, 8), '_B']), i7Data.kurzname, 'Laengskupplung');
2236
3016
  const voltageLevel = cimModel.getVoltageLevel(this.integralID2UUID.get(i7Data.schaltanlage));
2237
3017
  bay.number = utils_2.isNumericI7(i7Data.feldnummer) ? utils_2.convertToNumberI7(i7Data.feldnummer).toString() : undefined;
2238
3018
  bay.locationID = i7Data.ips_folder_id;
@@ -2264,7 +3044,7 @@ class ConverterI7 {
2264
3044
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.KNOTEN_STARR)) {
2265
3045
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.KNOTEN_STARR, containerIDs));
2266
3046
  for (const i7Data of result) {
2267
- const breaker = new Breaker_1.Breaker(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_BR"]), 'Breaker', 'starre Verbindung');
3047
+ const breaker = new Breaker_1.Breaker(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_BR']), 'Breaker', 'starre Verbindung');
2268
3048
  yield this.convertSwitch(breaker, cimModel, i7Data);
2269
3049
  cimModel.addBreaker(breaker);
2270
3050
  this.addIdMapping(i7Data.id, breaker.mrid, integral_sql_1.Integral7TableNames.LEISTUNGSSCHALTER);
@@ -2280,7 +3060,7 @@ class ConverterI7 {
2280
3060
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.TRENNERFI_3P)) {
2281
3061
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.TRENNERFI_3P, containerIDs));
2282
3062
  for (const i7Data of result) {
2283
- const disconnector = new Disconnector_1.Disconnector(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_D"]));
3063
+ const disconnector = new Disconnector_1.Disconnector(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_D']));
2284
3064
  yield this.convertSwitch(disconnector, cimModel, i7Data);
2285
3065
  cimModel.addDisconnector(disconnector);
2286
3066
  this.addIdMapping(i7Data.id, disconnector.mrid, integral_sql_1.Integral7TableNames.TRENNERFI_3P);
@@ -2296,7 +3076,7 @@ class ConverterI7 {
2296
3076
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.TRENNER_3P)) {
2297
3077
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.TRENNER_3P, containerIDs));
2298
3078
  for (const i7Data of result) {
2299
- const disconnector = new Disconnector_1.Disconnector(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_D"]));
3079
+ const disconnector = new Disconnector_1.Disconnector(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_D']));
2300
3080
  yield this.convertSwitch(disconnector, cimModel, i7Data);
2301
3081
  cimModel.addDisconnector(disconnector);
2302
3082
  this.addIdMapping(i7Data.id, disconnector.mrid, integral_sql_1.Integral7TableNames.TRENNER_3P);
@@ -2312,7 +3092,7 @@ class ConverterI7 {
2312
3092
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.LEISTUNGSSCHALTER)) {
2313
3093
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.LEISTUNGSSCHALTER, containerIDs));
2314
3094
  for (const i7Data of result) {
2315
- const breaker = new Breaker_1.Breaker(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_BR"]));
3095
+ const breaker = new Breaker_1.Breaker(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_BR']));
2316
3096
  yield this.convertSwitch(breaker, cimModel, i7Data);
2317
3097
  cimModel.addBreaker(breaker);
2318
3098
  this.addIdMapping(i7Data.id, breaker.mrid, integral_sql_1.Integral7TableNames.LEISTUNGSSCHALTER);
@@ -2360,12 +3140,13 @@ class ConverterI7 {
2360
3140
  }
2361
3141
  });
2362
3142
  }
2363
- convertLaengsdrosseln(cimModel, knotenSfIDs, defaultValuesConfig) {
3143
+ convertLaengsdrosseln(cimModel, integral7, defaultValuesConfig) {
3144
+ var _a;
2364
3145
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
2365
- if (this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSDROSSEL)) {
2366
- const result = yield this.mysqlController.execQuery(integral_sql_1.getNetzQuery(integral_sql_1.I7Objects.LAENGSDROSSEL, 0, 0, []));
3146
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSDROSSEL) && integral7.lDrosselAnschlussKnotenIDs.length) {
3147
+ const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.LAENGSDROSSEL, integral7.lDrosselAnschlussKnotenIDs));
2367
3148
  for (const i7Data of result) {
2368
- const seriesCompensator = new AMPRIONSeriesCompensator_1.AMPRIONSeriesCompensator(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_SC"]), i7Data.kurzname, i7Data.kommentar + '; LD-' + i7Data.bezeichner);
3149
+ const seriesCompensator = new AMPRIONSeriesCompensator_1.AMPRIONSeriesCompensator(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_SC']), i7Data.kurzname, i7Data.kommentar + '; LD-' + i7Data.bezeichner);
2369
3150
  const start = cimModel.objects.get(this.integralID2UUID.get(i7Data.aknoten));
2370
3151
  let startTerminal;
2371
3152
  if (start) {
@@ -2399,7 +3180,10 @@ class ConverterI7 {
2399
3180
  else {
2400
3181
  this.logger.debug(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keine Terminalinstanz.`);
2401
3182
  }
2402
- const vlObject = this.determineEquipmentContainer('VoltageLevel', cimModel, cimModel.getObject(startTerminal.connectivityNode.getConnectivityNodeContainerUUID()));
3183
+ if (!startTerminal.connectivityNode && terminal.connectivityNodeUUID) {
3184
+ startTerminal.connectivityNode = cimModel.getConnectivityNode(terminal.connectivityNodeUUID);
3185
+ }
3186
+ const vlObject = this.determineEquipmentContainer('VoltageLevel', cimModel, cimModel.getObject((_a = startTerminal.connectivityNode) === null || _a === void 0 ? void 0 : _a.getConnectivityNodeContainerUUID()));
2403
3187
  if (vlObject) {
2404
3188
  seriesCompensator.equipmentContainer = vlObject;
2405
3189
  seriesCompensator.baseVoltage = baseVoltage;
@@ -2418,6 +3202,69 @@ class ConverterI7 {
2418
3202
  }
2419
3203
  });
2420
3204
  }
3205
+ convertLaengskondensatoren(cimModel, integral7, defaultValuesConfig) {
3206
+ var _a;
3207
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
3208
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSKONDENSATOR) && integral7.lKondensatorAnschlussKnotenIDs.length > 0) {
3209
+ const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.LAENGSKONDENSATOR, integral7.lKondensatorAnschlussKnotenIDs));
3210
+ for (const i7Data of result) {
3211
+ const seriesCompensator = new AMPRIONSeriesCompensator_1.AMPRIONSeriesCompensator(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_SC']), i7Data.kurzname);
3212
+ const start = cimModel.getObject(this.integralID2UUID.get(i7Data.aknoten));
3213
+ let startTerminal;
3214
+ if (start) {
3215
+ startTerminal = this.createConnection(cimModel, seriesCompensator, start, PhaseCode_1.PhaseCode.ABC, true);
3216
+ }
3217
+ else {
3218
+ this.logger.debug(`Längskondensator ${i7Data.id} ${seriesCompensator.mrid} besitzt keinen Anfangsknoten.`);
3219
+ }
3220
+ const target = cimModel.getObject(this.integralID2UUID.get(i7Data.eknoten));
3221
+ let targetTerminal;
3222
+ if (target) {
3223
+ targetTerminal = this.createConnection(cimModel, seriesCompensator, target, PhaseCode_1.PhaseCode.ABC, true);
3224
+ }
3225
+ else {
3226
+ this.logger.debug(`Längskondensator ${i7Data.id} ${seriesCompensator.mrid} besitzt keinen Zielknoten.`);
3227
+ }
3228
+ const ur = utils_2.getU(i7Data.ur, defaultValuesConfig.DefaultVoltage);
3229
+ const baseVoltage = util_create_1.createBaseVoltageIfNotExists(cimModel, ur, this.exportFramesBoundary);
3230
+ const i = utils_2.isNumericI7(i7Data.ir) ? utils_2.convertToNumberI7(i7Data.ir) : undefined;
3231
+ const ukr = utils_2.isNumericI7(i7Data.ukr) ? utils_2.convertToNumberI7(i7Data.ukr) : undefined;
3232
+ if (i > 0 && ukr > 0) {
3233
+ const voltage = baseVoltage.nominalVoltage.value * 1000;
3234
+ const z = (ukr / 100) * Math.pow(voltage, 2) / (voltage * i * Math.sqrt(3));
3235
+ seriesCompensator.x = z;
3236
+ }
3237
+ seriesCompensator.varistorRatedCurrent = i;
3238
+ const terminal = startTerminal;
3239
+ if (terminal) {
3240
+ this.setConductingEquipmentCurrentLimit(cimModel, 'Rating ' + seriesCompensator.name, terminal, i);
3241
+ }
3242
+ else {
3243
+ this.logger.debug(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keine Terminalinstanz.`);
3244
+ }
3245
+ const substationUUID = this.integralID2UUID.get(i7Data.standort);
3246
+ const voltageLevel = this.getVoltageLevelByVoltage((_a = (cimModel.getSubstation(substationUUID))) === null || _a === void 0 ? void 0 : _a.voltageLevels, ur);
3247
+ if (!voltageLevel) {
3248
+ this.logger.debug(`Längskondensator ${seriesCompensator === null || seriesCompensator === void 0 ? void 0 : seriesCompensator.mrid} hat kein EquipmentContainer`);
3249
+ }
3250
+ if (voltageLevel) {
3251
+ seriesCompensator.equipmentContainer = voltageLevel;
3252
+ seriesCompensator.baseVoltage = voltageLevel.baseVoltage;
3253
+ }
3254
+ else {
3255
+ this.logger.debug(`Längskondensator ${i7Data.id} besitzt kein VoltageLevel Ur ${i7Data.ur}.`);
3256
+ }
3257
+ const psrType = utils_1.createIfNotExitsPSRType(cimModel, 'Längskondensator');
3258
+ seriesCompensator.psrType = psrType;
3259
+ cimModel.addSeriesCompensator(seriesCompensator);
3260
+ this.addIdMapping(i7Data.id, seriesCompensator.mrid, integral_sql_1.Integral7TableNames.LAENGSKONDENSATOR);
3261
+ }
3262
+ }
3263
+ else {
3264
+ this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.LAENGSKONDENSATOR} ist nicht vorhanden.`);
3265
+ }
3266
+ });
3267
+ }
2421
3268
  convertBetriebsmitteltypenKdrossel() {
2422
3269
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
2423
3270
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.TYP_KDROSSEL)) {
@@ -2440,9 +3287,10 @@ class ConverterI7 {
2440
3287
  for (const i7DataSchiene of stpSchiene) {
2441
3288
  try {
2442
3289
  stpSchieneIDs.push(i7DataSchiene.id);
2443
- const connectivityNode = new ConnectivityNode_1.ConnectivityNode(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7DataSchiene), "_CN"]), `StpSchiene_${i7DataSchiene.id}`);
2444
- const junction = new Junction_1.Junction(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7DataSchiene), "_J"]), `StpSchiene/${i7DataSchiene.id}`);
3290
+ const connectivityNode = new ConnectivityNode_1.ConnectivityNode(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7DataSchiene), '_CN']));
3291
+ const junction = new Junction_1.Junction(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7DataSchiene), '_J']));
2445
3292
  const equipmentContainer = this.determineEquipmentContainer('VoltageLevel', cimModel, cimModel.getObject(this.integralID2UUID.get(i7DataSchiene.id)));
3293
+ connectivityNode.setConnectivityNodeContainer(equipmentContainer);
2446
3294
  if (equipmentContainer) {
2447
3295
  equipmentContainer.addEquipment(junction);
2448
3296
  junction.equipmentContainer = equipmentContainer;
@@ -2484,14 +3332,14 @@ class ConverterI7 {
2484
3332
  const junctionUUID = integral7.sternPunktImpModel.stpSchieneJunctionUUIDs.get((i7Data.anschluss));
2485
3333
  let conductingEquip;
2486
3334
  if (imax && imin) {
2487
- const petersenCoil = new PetersenCoil_1.PetersenCoil(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_PC"]), i7Data.kurzname);
3335
+ const petersenCoil = new PetersenCoil_1.PetersenCoil(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_PC']), i7Data.kurzname);
2488
3336
  integral7.sternPunktImpModel.petersenCoils.set(petersenCoil.mrid, petersenCoil);
2489
3337
  integral7.sternPunktImpModel.junctionUUIDstpImp.set(junctionUUID, petersenCoil);
2490
3338
  this.addIdMapping(i7Data.id, petersenCoil.mrid, integral_sql_1.Integral7TableNames.STERNPUNKT_IMPEDANZ);
2491
3339
  conductingEquip = petersenCoil;
2492
3340
  }
2493
3341
  else {
2494
- const groundingImpedance = new GroundingImpedance_1.GroundingImpedance(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_GI"]), i7Data.kurzname);
3342
+ const groundingImpedance = new GroundingImpedance_1.GroundingImpedance(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), '_GI']), i7Data.kurzname);
2495
3343
  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);
2496
3344
  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);
2497
3345
  integral7.sternPunktImpModel.groundingImpedances.set(groundingImpedance.mrid, groundingImpedance);
@@ -2559,7 +3407,8 @@ class ConverterI7 {
2559
3407
  if (this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSKUPPLUNG)) {
2560
3408
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.LAENGSKUPPLUNG, schaltanlagenIDs));
2561
3409
  for (const i7Data of result) {
2562
- const bay = new AMPRIONBay_1.AMPRIONBay(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_B"]), i7Data.kurzname, 'Laengskupplung');
3410
+ const cimrdfid = utils_1.getUUID(i7Data.guid);
3411
+ const bay = new AMPRIONBay_1.AMPRIONBay(cimrdfid, util_create_1.createNotation([utils_2.getName(i7Data), '_', cimrdfid.substring(0, 8), '_B']), i7Data.kurzname, 'Laengskupplung');
2563
3412
  const voltageLevel = cimModel.getVoltageLevel(this.integralID2UUID.get(i7Data.schaltanlage));
2564
3413
  bay.number = utils_2.isNumericI7(i7Data.feldnummer) ? utils_2.convertToNumberI7(i7Data.feldnummer).toString() : undefined;
2565
3414
  bay.locationID = i7Data.ips_folder_id;
@@ -2645,9 +3494,15 @@ class ConverterI7 {
2645
3494
  }
2646
3495
  const leitungStromkreisabschnitt = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(type, leitungIDs));
2647
3496
  for (const i7Data of result) {
3497
+ if (i7Data.id === 943) {
3498
+ let stop = true;
3499
+ }
2648
3500
  const stromkreisabschnitte = leitungStromkreisabschnitt.filter(elem => elem.leitung === i7Data.id);
2649
- if (!(stromkreisabschnitte === null || stromkreisabschnitte === void 0 ? void 0 : stromkreisabschnitte.length))
3501
+ if (!((stromkreisabschnitte === null || stromkreisabschnitte === void 0 ? void 0 : stromkreisabschnitte.length) > 0))
2650
3502
  continue;
3503
+ stromkreisabschnitte.sort(function (stka, stkb) {
3504
+ return stka['pos'] - stkb['pos'];
3505
+ });
2651
3506
  const leitung = new Leitung_1.LeitungImpl(i7Data);
2652
3507
  integral7.integralLeitungen.set(i7Data.id, leitung);
2653
3508
  let i7Schluessel = integral_prefix_1.LEITUNG_PRAEFIX +
@@ -2663,7 +3518,8 @@ class ConverterI7 {
2663
3518
  utils_2.ueberpruefeZeichenkette(i7Data.bezeichner) +
2664
3519
  '-' +
2665
3520
  utils_2.ueberpruefeZeichenkette(i7Data.stkabname);
2666
- const line = new AMPRIONLine_1.AMPRIONLine(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([name, "_L"]), i7Data.stkabname, i7Schluessel);
3521
+ const uuidString = utils_1.getUUID(i7Data.guid);
3522
+ const line = new AMPRIONLine_1.AMPRIONLine(uuidString, util_create_1.createNotation([name, uuidString.substring(0, 8), '_L'], 32, true), i7Data.stkabname, i7Schluessel);
2667
3523
  line.ukz = i7Data.ukz;
2668
3524
  let acLineSegments = [];
2669
3525
  for (const stk of stromkreisabschnitte) {
@@ -2673,7 +3529,11 @@ class ConverterI7 {
2673
3529
  utils_2.ueberpruefeZeichenkette(i7Data.bezeichner) +
2674
3530
  '-' +
2675
3531
  utils_2.ueberpruefeZeichenkette(stk.bezeichner);
2676
- const acLineSegment = new INTEGRALACLineSegment_1.INTEGRALACLineSegment(utils_1.getUUID(stk.custom_guid_0120 + stk.custom_guid_2137), util_create_1.createNotation([name, stk.pos.toString(), "_ACLS"]), i7Data.stkabname, i7Schluessel);
3532
+ if (utils_1.getUUID(stk.custom_guid_0120 + stk.custom_guid_2137).toLowerCase() === '8387376e-86bf-4da0-91f2-b19a3d490715') {
3533
+ let stop = true;
3534
+ }
3535
+ const uuidACLineString = utils_1.getUUID(i7Data.guid);
3536
+ const acLineSegment = new INTEGRALACLineSegment_1.INTEGRALACLineSegment(uuidACLineString, util_create_1.createNotation([name, '_' + stk.pos.toString(), uuidACLineString, '_ACLS'], 32, true), i7Data.stkabname, i7Schluessel);
2677
3537
  let mf = this.cimModelDefault.multiplierFactors.get(this.integralID2UUID.get(stk.multfaktor));
2678
3538
  if (mf) {
2679
3539
  cimModel.addMultiplierFactor(mf);
@@ -2686,12 +3546,11 @@ class ConverterI7 {
2686
3546
  }
2687
3547
  const acLineSegmentStart = acLineSegments[0];
2688
3548
  const startTerminal = this.createBoundaryConnection(frame, acLineSegmentStart, i7Data.aknoten, PhaseCode_1.PhaseCode.ABC);
2689
- let equivalentInjection = undefined;
2690
3549
  if (startTerminal) {
2691
3550
  let bdf = this.getConnectedBoundaryModel(this.integralID2UUID.get(i7Data.aknoten));
2692
3551
  let tmp_cn = bdf === null || bdf === void 0 ? void 0 : bdf.cimModel.getConnectivityNode(startTerminal.getConnectivityNodeUUID());
2693
3552
  if (tmp_cn && tmp_cn.boundaryPoint) {
2694
- equivalentInjection = this.createBoundaryEquivalentInjection(frame, tmp_cn);
3553
+ this.createBoundaryEquivalentInjection(frame, tmp_cn);
2695
3554
  }
2696
3555
  if (!acLineSegmentStart.baseVoltage) {
2697
3556
  if (startTerminal.getConnectedNode())
@@ -2704,19 +3563,29 @@ class ConverterI7 {
2704
3563
  else {
2705
3564
  this.logger.debug(`Leitung ${i7Data.id} ${acLineSegmentStart.mrid} besitzt keinen Anfangsknoten. ${i7Data.aknoten} ${this.integralID2UUID.get(i7Data.aknoten)}`);
2706
3565
  }
3566
+ if (acLineSegments[0].getUUID() === 'c6b755ed-b4fa-4649-8aa5-62ebcbd3b559') {
3567
+ let stop = true;
3568
+ }
3569
+ else if (acLineSegments[0].getUUID() === 'e1a65e81-1cec-4f1a-ab87-9c7b667ad64f') {
3570
+ let stop = true;
3571
+ }
3572
+ this.setACLineSegmentProperties(this.cimModelDefault, cimModel, acLineSegmentStart, stromkreisabschnitte[0], defaultValuesConfig);
2707
3573
  cimModel.addACLineSegment(acLineSegmentStart);
2708
- this.setACLineSegmentProperties(this.cimModelDefault, acLineSegments[0], stromkreisabschnitte[0], defaultValuesConfig);
2709
3574
  const anzahl = acLineSegments.length;
2710
3575
  let tmp_terminal = undefined;
2711
3576
  for (let i = 0; i < anzahl - 1; i++) {
2712
- const cn = new ConnectivityNode_1.ConnectivityNode(utils_1.generateUUID(), util_create_1.createNotation([name, "_CN"]));
2713
3577
  const acLineSegment1 = acLineSegments[i];
3578
+ const cn = new ConnectivityNode_1.ConnectivityNode(utils_1.generateUUID(), util_create_1.createNotation([acLineSegment1.name, '_', acLineSegment1.getUUID().substring(0, 8), '_CN'], 32, true));
3579
+ cn.connectivityNodeContainer = acLineSegment1.equipmentContainer;
2714
3580
  tmp_terminal = this.createConnection(cimModel, acLineSegment1, cn, PhaseCode_1.PhaseCode.ABC, true);
2715
3581
  cimModel.addACLineSegment(acLineSegment1);
2716
3582
  if (tmp_terminal) {
2717
3583
  tmp_terminal = undefined;
2718
3584
  }
2719
- this.setACLineSegmentProperties(this.cimModelDefault, acLineSegments[i], stromkreisabschnitte[i], defaultValuesConfig);
3585
+ if (acLineSegments[i].getUUID() === 'c6b755ed-b4fa-4649-8aa5-62ebcbd3b559') {
3586
+ let stop = true;
3587
+ }
3588
+ this.setACLineSegmentProperties(this.cimModelDefault, cimModel, acLineSegments[i], stromkreisabschnitte[i], defaultValuesConfig);
2720
3589
  const acLineSegment2 = acLineSegments[i + 1];
2721
3590
  tmp_terminal = this.createConnection(cimModel, acLineSegment2, cn, PhaseCode_1.PhaseCode.ABC, true);
2722
3591
  cimModel.addACLineSegment(acLineSegment1);
@@ -2732,7 +3601,7 @@ class ConverterI7 {
2732
3601
  let bdf = this.getConnectedBoundaryModel(this.integralID2UUID.get(i7Data.eknoten));
2733
3602
  let tmp_cn = bdf === null || bdf === void 0 ? void 0 : bdf.cimModel.getConnectivityNode(targetTerminal.getConnectivityNodeUUID());
2734
3603
  if (tmp_cn && 'boundaryPoint' in tmp_cn && tmp_cn.boundaryPoint) {
2735
- equivalentInjection = this.createBoundaryEquivalentInjection(frame, tmp_cn);
3604
+ this.createBoundaryEquivalentInjection(frame, tmp_cn);
2736
3605
  }
2737
3606
  if (!acLineSegmentZiel.baseVoltage) {
2738
3607
  acLineSegmentZiel.baseVoltage = (_b = targetTerminal.getConnectivityNode()) === null || _b === void 0 ? void 0 : _b.getBaseVoltage();
@@ -2744,6 +3613,7 @@ class ConverterI7 {
2744
3613
  else {
2745
3614
  this.logger.debug(`Leitung ${i7Data.id} ${acLineSegmentZiel.mrid} besitzt keinen Zielknoten.`);
2746
3615
  }
3616
+ this.setACLineSegmentProperties(this.cimModelDefault, cimModel, acLineSegmentZiel, stromkreisabschnitte[stromkreisabschnitte.length - 1], defaultValuesConfig);
2747
3617
  cimModel.addACLineSegment(acLineSegmentZiel);
2748
3618
  const stkBaseVoltage = acLineSegments.find(elem => elem.baseVoltage !== undefined);
2749
3619
  if (!stkBaseVoltage) {
@@ -2788,84 +3658,29 @@ class ConverterI7 {
2788
3658
  }
2789
3659
  });
2790
3660
  }
2791
- convertLaengskondensatoren(cimModel, integral7, defaultValuesConfig) {
2792
- var _a;
2793
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
2794
- if (this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSKONDENSATOR) && integral7.lKondensatorAnschlussKnotenIDs) {
2795
- const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.LAENGSKONDENSATOR, integral7.lKondensatorAnschlussKnotenIDs));
2796
- for (const i7Data of result) {
2797
- const seriesCompensator = new AMPRIONSeriesCompensator_1.AMPRIONSeriesCompensator(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_SC"]), i7Data.kurzname);
2798
- const start = cimModel.getObject(this.integralID2UUID.get(i7Data.aknoten));
2799
- let startTerminal;
2800
- if (start) {
2801
- startTerminal = this.createConnection(cimModel, seriesCompensator, start, PhaseCode_1.PhaseCode.ABC, true);
2802
- }
2803
- else {
2804
- this.logger.debug(`Längskondensator ${i7Data.id} ${seriesCompensator.mrid} besitzt keinen Anfangsknoten.`);
2805
- }
2806
- const target = cimModel.getObject(this.integralID2UUID.get(i7Data.eknoten));
2807
- let targetTerminal;
2808
- if (target) {
2809
- targetTerminal = this.createConnection(cimModel, seriesCompensator, target, PhaseCode_1.PhaseCode.ABC, true);
2810
- }
2811
- else {
2812
- this.logger.debug(`Längskondensator ${i7Data.id} ${seriesCompensator.mrid} besitzt keinen Zielknoten.`);
2813
- }
2814
- const ur = utils_2.getU(i7Data.ur, defaultValuesConfig.DefaultVoltage);
2815
- const baseVoltage = util_create_1.createBaseVoltageIfNotExists(cimModel, ur, this.exportFramesBoundary);
2816
- const i = utils_2.isNumericI7(i7Data.ir) ? utils_2.convertToNumberI7(i7Data.ir) : undefined;
2817
- const ukr = utils_2.isNumericI7(i7Data.ukr) ? utils_2.convertToNumberI7(i7Data.ukr) : undefined;
2818
- if (i > 0 && ukr > 0) {
2819
- const voltage = baseVoltage.nominalVoltage.value * 1000;
2820
- const z = (ukr / 100) * Math.pow(voltage, 2) / (voltage * i * Math.sqrt(3));
2821
- seriesCompensator.x = z;
2822
- }
2823
- seriesCompensator.varistorRatedCurrent = i;
2824
- const terminal = startTerminal;
2825
- if (terminal) {
2826
- this.setConductingEquipmentCurrentLimit(cimModel, 'Rating ' + seriesCompensator.name, terminal, i);
2827
- }
2828
- else {
2829
- this.logger.debug(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keine Terminalinstanz.`);
2830
- }
2831
- const substationUUID = this.integralID2UUID.get(i7Data.standort);
2832
- const voltageLevel = this.getVoltageLevelByVoltage((_a = (cimModel.getSubstation(substationUUID))) === null || _a === void 0 ? void 0 : _a.voltageLevels, ur);
2833
- if (!voltageLevel) {
2834
- this.logger.debug(`Längskondensator ${seriesCompensator === null || seriesCompensator === void 0 ? void 0 : seriesCompensator.mrid} hat kein EquipmentContainer`);
2835
- }
2836
- if (voltageLevel) {
2837
- seriesCompensator.equipmentContainer = voltageLevel;
2838
- seriesCompensator.baseVoltage = voltageLevel.baseVoltage;
2839
- }
2840
- else {
2841
- this.logger.debug(`Längskondensator ${i7Data.id} besitzt kein VoltageLevel Ur ${i7Data.ur}.`);
2842
- }
2843
- const psrType = utils_1.createIfNotExitsPSRType(cimModel, 'Längskondensator');
2844
- seriesCompensator.psrType = psrType;
2845
- cimModel.addSeriesCompensator(seriesCompensator);
2846
- this.addIdMapping(i7Data.id, seriesCompensator.mrid, integral_sql_1.Integral7TableNames.LAENGSKONDENSATOR);
2847
- }
2848
- }
2849
- else {
2850
- this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.LAENGSKONDENSATOR} ist nicht vorhanden.`);
2851
- }
2852
- });
2853
- }
2854
3661
  convertDCLines(cimModel, integral7, defaultValuesConfig) {
2855
3662
  var _a, _b;
2856
3663
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
2857
- if (this.isTableAvailable(integral_sql_1.Integral7TableNames.HGUE_LEITUNG) && integral7.hgueAnschlussKnotenIDs.length) {
3664
+ if (this.isTableAvailable(integral_sql_1.Integral7TableNames.HGUE_LEITUNG) && integral7.hgueAnschlussKnotenIDs.length > 0) {
2858
3665
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.HGUE_LEITUNG, integral7.hgueAnschlussKnotenIDs));
2859
3666
  for (const i7Data of result) {
2860
- const dcLine = new DCLine_1.DCLine(utils_1.getUUID(i7Data.guid_dcline), util_create_1.createNotation([utils_2.getName(i7Data), "_DCL"]));
3667
+ console.log(utils_1.getUUID(i7Data.guid_dcline));
3668
+ if (utils_1.getUUID(i7Data.guid_dcline) === '6a5b7e1e-f8be-4165-9752-2e2359d9b4f8') {
3669
+ let stop = true;
3670
+ }
3671
+ integral7.integralHgueLeitungen.set(i7Data.id, i7Data);
3672
+ const dcLine = new DCLine_1.DCLine(utils_1.getUUID(i7Data.guid_dcline), util_create_1.createNotation([utils_2.getName(i7Data), '_DCL']));
2861
3673
  const i7Schluessel = integral_prefix_1.HGUELEITUNG_PRAEFIX +
2862
3674
  utils_2.ueberpruefeZeichenkette(i7Data.bezeichner);
2863
- const dcLineSegment = new DCLineSegment_1.DCLineSegment(utils_1.getUUID(i7Data.guidp), util_create_1.createNotation([utils_2.getName(i7Data), "_DCLS"]), i7Data.kurzname, i7Schluessel);
2864
- dcLineSegment.resistance = i7Data.rdc;
3675
+ const dcLineSegment = new DCLineSegment_1.DCLineSegment(utils_1.getUUID(i7Data.guidp), util_create_1.createNotation([utils_2.getName(i7Data), '_DCLS']), i7Data.kurzname, i7Schluessel);
3676
+ dcLineSegment.resistance = i7Data.rdc / 2;
2865
3677
  dcLineSegment.equipmentContainer = dcLine;
2866
3678
  const bipol = utils_2.convertToBooleanI7(i7Data.bipol);
2867
3679
  const acDCConverterStart = cimModel.getObject(this.integralID2UUID.get(i7Data.anetzobjekt));
2868
3680
  const acDCConverterTarget = cimModel.getObject(this.integralID2UUID.get(i7Data.enetzobjekt));
3681
+ if (acDCConverterStart === undefined || acDCConverterTarget === undefined) {
3682
+ continue;
3683
+ }
2869
3684
  const converterUnitStart = (_a = acDCConverterStart) === null || _a === void 0 ? void 0 : _a.equipmentContainer;
2870
3685
  const converterUnitTarget = (_b = acDCConverterTarget) === null || _b === void 0 ? void 0 : _b.equipmentContainer;
2871
3686
  if (converterUnitStart && converterUnitTarget) {
@@ -2886,7 +3701,7 @@ class ConverterI7 {
2886
3701
  }
2887
3702
  const startDCNode = acDCConverterStart ? getDCNodeFromConverter(acDCConverterStart) : undefined;
2888
3703
  if (startDCNode) {
2889
- const dcTerminal = new DCTerminal_1.DCTerminal(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), "_DCT"]));
3704
+ const dcTerminal = new DCTerminal_1.DCTerminal(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), '_DCT']));
2890
3705
  dcTerminal.connected = true;
2891
3706
  dcTerminal.dCConductingEquipment = dcLineSegment;
2892
3707
  dcTerminal.dcNode = startDCNode;
@@ -2898,7 +3713,7 @@ class ConverterI7 {
2898
3713
  }
2899
3714
  const targetDCNode = acDCConverterTarget ? getDCNodeFromConverter(acDCConverterTarget) : undefined;
2900
3715
  if (targetDCNode) {
2901
- const dcTerminal = new DCTerminal_1.DCTerminal(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), "_DCT"]));
3716
+ const dcTerminal = new DCTerminal_1.DCTerminal(utils_1.generateUUID(), util_create_1.createNotation([utils_2.getName(i7Data), '_DCT']));
2902
3717
  dcTerminal.connected = true;
2903
3718
  dcTerminal.dCConductingEquipment = dcLineSegment;
2904
3719
  dcTerminal.dcNode = targetDCNode;
@@ -3018,11 +3833,11 @@ class ConverterI7 {
3018
3833
  const result = yield this.mysqlController.execQuery(integral_sql_1.getI7Query(integral_sql_1.I7Objects.MULTIPLIKATIONSFAKTOR, []));
3019
3834
  for (const i7Data of result) {
3020
3835
  const multFaktor = new INTEGRALMultiplierFactor_1.INTEGRALMultiplierFactor(utils_1.getUUID(undefined), utils_2.getName(i7Data), i7Data.kurzname, i7Data.kommentar);
3021
- multFaktor.p = utils_2.isNumericI7(i7Data.p) ? utils_2.convertToNumberI7(i7Data.p) : 1;
3022
- multFaktor.qInd = utils_2.isNumericI7(i7Data.q_ind) ? utils_2.convertToNumberI7(i7Data.q_ind) : 1;
3023
- multFaktor.qKap = utils_2.isNumericI7(i7Data.q_kap) ? utils_2.convertToNumberI7(i7Data.q_kap) : 1;
3024
- multFaktor.cosPhiInd = utils_2.isNumericI7(i7Data.cos_phi_ind) ? utils_2.convertToNumberI7(i7Data.cos_phi_ind) : 1;
3025
- multFaktor.cosPhiKap = utils_2.isNumericI7(i7Data.cos_phi_kap) ? utils_2.convertToNumberI7(i7Data.cos_phi_kap) : 1;
3836
+ multFaktor.p = utils_2.isNumericI7(i7Data.p) ? utils_2.convertToNumberI7(i7Data.p) : undefined;
3837
+ multFaktor.qInd = utils_2.isNumericI7(i7Data.q_ind) ? utils_2.convertToNumberI7(i7Data.q_ind) : undefined;
3838
+ multFaktor.qKap = utils_2.isNumericI7(i7Data.q_kap) ? utils_2.convertToNumberI7(i7Data.q_kap) : undefined;
3839
+ multFaktor.cosPhiInd = utils_2.isNumericI7(i7Data.cos_phi_ind) ? utils_2.convertToNumberI7(i7Data.cos_phi_ind) : undefined;
3840
+ multFaktor.cosPhiKap = utils_2.isNumericI7(i7Data.cos_phi_kap) ? utils_2.convertToNumberI7(i7Data.cos_phi_kap) : undefined;
3026
3841
  this.cimModelDefault.addMultiplierFactor(multFaktor);
3027
3842
  this.addIdMapping(i7Data.id, multFaktor.mrid, integral_sql_1.Integral7TableNames.MULTIPLIKATIONSFAKTOR);
3028
3843
  }
@@ -3050,7 +3865,8 @@ class ConverterI7 {
3050
3865
  }
3051
3866
  }
3052
3867
  for (const i7Data of result) {
3053
- const powerTransformer = new PowerTransformer_1.PowerTransformer(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_PT"]), i7Data.kurzname, i7Data.kommentar);
3868
+ const cimrdfid = utils_1.getUUID(i7Data.guid);
3869
+ const powerTransformer = new PowerTransformer_1.PowerTransformer(cimrdfid, util_create_1.createNotation([utils_2.getName(i7Data), '_', cimrdfid.substring(0, 8), '_PT']), i7Data.kurzname, i7Data.kommentar);
3054
3870
  const substation = cimModel.getSubstation(this.integralID2UUID.get(i7Data.standort));
3055
3871
  if (substation) {
3056
3872
  powerTransformer.equipmentContainer = substation;
@@ -3093,7 +3909,7 @@ class ConverterI7 {
3093
3909
  equivalentInjection = this.createBoundaryEquivalentInjection(frame, tmp_cn);
3094
3910
  }
3095
3911
  }
3096
- const powerTransformerEnd2 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w2), `W2${powerTransformer.name}`);
3912
+ const powerTransformerEnd2 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w2), `W2${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name}`);
3097
3913
  powerTransformerEnd2.endNumber = 2;
3098
3914
  const sr2 = utils_2.getSrTrafo(i7Data, powerTransformerInfo, powerTransformerEnd2.endNumber, false);
3099
3915
  const ur2 = utils_2.getUrTrafo(i7Data, powerTransformerInfo, powerTransformerEnd2.endNumber);
@@ -3118,7 +3934,7 @@ class ConverterI7 {
3118
3934
  powerTransformerEnd2.connectionKind = utils_2.getSchaltgruppe(schaltgruppe, powerTransformerEnd2.endNumber, powerTransformerEnd2.grounded);
3119
3935
  powerTransformerEnd2.phaseAngleClock = utils_2.getSchaltgruppeAngleClock(schaltgruppe, powerTransformerEnd2.endNumber);
3120
3936
  this.sortTransformerEnd(powerTransformer, 'ratedU', 'desc');
3121
- const powerTransformerEnds = [powerTransformerEnd1, powerTransformerEnd2];
3937
+ const powerTransformerEnds = [powerTransformer.powerTransformerEnds[0], powerTransformer.powerTransformerEnds[1]];
3122
3938
  const spRegKnoten = yield this.getSpannungsbandTrafo2W(i7Data);
3123
3939
  const spannungsband = integral7.targetVoltages.get(spRegKnoten.id);
3124
3940
  const cnUUID = this.integralID2UUID.get(spRegKnoten.id);
@@ -3171,7 +3987,8 @@ class ConverterI7 {
3171
3987
  }
3172
3988
  }
3173
3989
  for (const i7Data of result) {
3174
- const powerTransformer = new PowerTransformer_1.PowerTransformer(utils_1.getUUID(i7Data.guid), util_create_1.createNotation([utils_2.getName(i7Data), "_PT"]), i7Data.kurzname, i7Data.kommentar);
3990
+ const cimrdfid = utils_1.getUUID(i7Data.guid);
3991
+ const powerTransformer = new PowerTransformer_1.PowerTransformer(cimrdfid, util_create_1.createNotation([utils_2.getName(i7Data), '_', cimrdfid.substring(0, 8), '_PT']), i7Data.kurzname, i7Data.kommentar);
3175
3992
  const substation = cimModel.getSubstation(this.integralID2UUID.get(i7Data.standort));
3176
3993
  if (substation) {
3177
3994
  powerTransformer.equipmentContainer = substation;
@@ -3207,7 +4024,7 @@ class ConverterI7 {
3207
4024
  const impedanzW1 = utils_trafo3w_1.calculateImpedanzenTrafo3W(1, ur1, ur2, ur3, sr1, sr2, sr3, pkr12, pkr13, pkr23, ukr12, ukr13, ukr23, pLeer, iLeer);
3208
4025
  const impedanzW2 = utils_trafo3w_1.calculateImpedanzenTrafo3W(2, ur1, ur2, ur3, sr1, sr2, sr3, pkr12, pkr13, pkr23, ukr12, ukr13, ukr23, 0, 0);
3209
4026
  const impedanzW3 = utils_trafo3w_1.calculateImpedanzenTrafo3W(3, ur1, ur2, ur3, sr1, sr2, sr3, pkr12, pkr13, pkr23, ukr12, ukr13, ukr23, 0, 0);
3210
- const powerTransformerEnd1 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w1), `W1 ${powerTransformer.name}`);
4027
+ const powerTransformerEnd1 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w1), `W1 ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name}`);
3211
4028
  powerTransformerEnd1.endNumber = 1;
3212
4029
  const wicklung1 = trafoWicklungen.get(i7Data.trafowicklung3w1);
3213
4030
  const terminal1 = this.createBoundaryConnection(frame, powerTransformer, wicklung1.aknoten, PhaseCode_1.PhaseCode.ABC);
@@ -3234,7 +4051,7 @@ class ConverterI7 {
3234
4051
  const terminal2 = this.createBoundaryConnection(frame, powerTransformer, wicklung2.aknoten, PhaseCode_1.PhaseCode.ABC);
3235
4052
  if (!terminal2)
3236
4053
  this.logger.debug(`PowerTransformer3W ${i7Data.id} ${powerTransformer.mrid} besitzt keinen Anfangsknoten.`);
3237
- const powerTransformerEnd2 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w2), `W2 ${powerTransformer.name}`);
4054
+ const powerTransformerEnd2 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w2), `W2 ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name}`);
3238
4055
  powerTransformerEnd2.endNumber = 2;
3239
4056
  powerTransformerEnd2.r = impedanzW2.r;
3240
4057
  powerTransformerEnd2.x = impedanzW2.x;
@@ -3258,7 +4075,7 @@ class ConverterI7 {
3258
4075
  const terminal3 = this.createBoundaryConnection(frame, powerTransformer, wicklung3.aknoten, PhaseCode_1.PhaseCode.ABC);
3259
4076
  if (!terminal3)
3260
4077
  this.logger.debug(`PowerTransformer3W ${i7Data.id} ${powerTransformer.mrid} besitzt keinen Anfangsknoten.`);
3261
- const powerTransformerEnd3 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w3), `Wicklung 3 ${powerTransformer.name}`);
4078
+ const powerTransformerEnd3 = new PowerTransformerEnd_1.PowerTransformerEnd(utils_1.getUUID(i7Data.guid_w3), `Wicklung 3 ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name}`);
3262
4079
  powerTransformerEnd3.endNumber = 3;
3263
4080
  powerTransformerEnd3.r = impedanzW3.r;
3264
4081
  powerTransformerEnd3.x = impedanzW3.x;
@@ -3296,6 +4113,9 @@ class ConverterI7 {
3296
4113
  cimModel.addPowerTransformerEnd(powerTransformerEnd2);
3297
4114
  cimModel.addPowerTransformerEnd(powerTransformerEnd3);
3298
4115
  this.addIdMapping(i7Data.id, powerTransformer.mrid, integral_sql_1.Integral7TableNames.TRAFO3W);
4116
+ this.addIdMapping(i7Data.trafowicklung3w1, powerTransformerEnd1.mrid, undefined);
4117
+ this.addIdMapping(i7Data.trafowicklung3w2, powerTransformerEnd2.mrid, undefined);
4118
+ this.addIdMapping(i7Data.trafowicklung3w3, powerTransformerEnd3.mrid, undefined);
3299
4119
  }
3300
4120
  }
3301
4121
  else {
@@ -3337,7 +4157,7 @@ class ConverterI7 {
3337
4157
  const cimModel = frame.cimModel;
3338
4158
  const substations = Array.from(cimModel.substations.values());
3339
4159
  for (const substation of substations) {
3340
- const line = new Line_1.Line(substation.mrid, substation.name + "_BD-L", substation.shortName, substation.description);
4160
+ const line = new Line_1.Line(substation.mrid, substation.name + '_BD-L', substation.shortName, substation.description);
3341
4161
  const subregion = substation.subGeographicalRegion;
3342
4162
  line.subGeographicalRegion = subregion;
3343
4163
  subregion.addLine(line);
@@ -3383,7 +4203,7 @@ class ConverterI7 {
3383
4203
  line.addConnectivityNode(connectivityNode);
3384
4204
  const junction = new Junction_1.Junction(utils_1.generateUUID(), `${line.name}_BD-J`, `Junction`, 'Junction for Geo');
3385
4205
  junction.equipmentContainer = line;
3386
- let terminal = new Terminal_1.Terminal(utils_1.generateUUID(), util_create_1.createNotation([line.name, '_BD-T']), 'bd_jct_lab', 'terminal to connect junction to associated boundary ConnectivityNode', 1);
4206
+ let terminal = new Terminal_1.Terminal(utils_1.generateUUID(), util_create_1.createNotation([line.getUUID().substring(0, 8), '_BD-JCT-T']), 'bd_jct_lab', 'terminal to connect junction to associated boundary ConnectivityNode', 1);
3387
4207
  junction.terminals.set(terminal.getUUID(), terminal);
3388
4208
  terminal.conductingEquipment = junction;
3389
4209
  line.addEquipment(junction);
@@ -3420,6 +4240,9 @@ class ConverterI7 {
3420
4240
  });
3421
4241
  }
3422
4242
  sortTransformerEnd(powerTransformer, sortProperty, order) {
4243
+ if (powerTransformer.getUUID() === '5b0e4820d43247188ded6b28db72fc95') {
4244
+ let stop = true;
4245
+ }
3423
4246
  let winding_guids = new Array(powerTransformer.powerTransformerEnds.length);
3424
4247
  let winding_guids_fixed = new Array(powerTransformer.powerTransformerEnds.length);
3425
4248
  for (let i = 0; i < powerTransformer.powerTransformerEnds.length; i++) {
@@ -3435,19 +4258,17 @@ class ConverterI7 {
3435
4258
  const winding1_guid = winding_guids[0];
3436
4259
  const winding2 = powerTransformer.powerTransformerEnds[0];
3437
4260
  if (!(winding1_guid === winding2.getUUID())) {
3438
- const winding1 = powerTransformer.powerTransformerEnds.find(e => e.mrid === winding1_guid[0]);
3439
- if (winding1) {
3440
- let val = winding2.phaseAngleClock;
3441
- winding2.phaseAngleClock = 0;
3442
- winding1.phaseAngleClock = 12 - val;
3443
- }
3444
- else {
3445
- const isNull = true;
3446
- }
4261
+ powerTransformer.powerTransformerEnds[0].endNumber = 1;
4262
+ powerTransformer.powerTransformerEnds[1].endNumber = 2;
4263
+ powerTransformer.powerTransformerEnds[1].phaseAngleClock = 12 - powerTransformer.powerTransformerEnds[0].phaseAngleClock;
4264
+ powerTransformer.powerTransformerEnds[0].phaseAngleClock = 0;
3447
4265
  }
3448
4266
  }
3449
- setACLineSegmentProperties(defaultModel, acLineSegment, data, defaultValuesConfig) {
3450
- if (utils_2.isNumericI7(data.laenge) && data.laenge <= 0) {
4267
+ setACLineSegmentProperties(defaultModel, cimModel, acLineSegment, data, defaultValuesConfig) {
4268
+ if (acLineSegment.getUUID() === 'e2505f0f-c764-44da-b88b-d40e048193c9') {
4269
+ let stop = true;
4270
+ }
4271
+ if ((utils_2.isNumericI7(data.laenge) && data.laenge <= 0) || (utils_2.isBooleanI7(data.flag_impedanzlos) && utils_2.convertToBooleanI7(data.flag_impedanzlos))) {
3451
4272
  data.flag_impedanzlos = 1;
3452
4273
  }
3453
4274
  if (utils_2.isNumericI7(data.laenge) && data.laenge > 0 && !data.flag_impedanzlos) {
@@ -3522,12 +4343,12 @@ class ConverterI7 {
3522
4343
  }
3523
4344
  for (const terminal of acLineSegment.terminals.values()) {
3524
4345
  if (utils_2.isNumericI7(data.ir) && data.ir > 0) {
3525
- this.setConductingEquipmentCurrentLimit(defaultModel, acLineSegment.name, terminal, data.ir);
4346
+ this.setConductingEquipmentCurrentLimit(cimModel, acLineSegment.name, terminal, data.ir);
3526
4347
  }
3527
4348
  else if (assetType && assetType.ratedCurrent && assetType.ratedCurrent !== 0) {
3528
- this.setConductingEquipmentCurrentLimit(defaultModel, acLineSegment.name, terminal, assetType.ratedCurrent);
4349
+ this.setConductingEquipmentCurrentLimit(cimModel, acLineSegment.name, terminal, assetType.ratedCurrent);
3529
4350
  }
3530
- const psrType = utils_1.createIfNotExitsPSRType(defaultModel, data.typ);
4351
+ const psrType = utils_1.createIfNotExitsPSRType(cimModel, data.typ);
3531
4352
  acLineSegment.psrTypeUUID = psrType.mrid;
3532
4353
  }
3533
4354
  }
@@ -3574,10 +4395,15 @@ class ConverterI7 {
3574
4395
  return operationalLimitType;
3575
4396
  }
3576
4397
  createConnection(cimModel, conductingEquipment, object, phase, connected) {
4398
+ if (conductingEquipment.getUUID() === '66d3c196-8927-478a-a6bf-248ea34cdeb3') {
4399
+ let stop = true;
4400
+ }
4401
+ let isNameSet = false;
3577
4402
  let terminal;
3578
4403
  if (object instanceof ConnectivityNode_1.ConnectivityNode) {
3579
4404
  const cn = object;
3580
- terminal = new Terminal_1.Terminal(utils_1.generateUUID(), util_create_1.createNotation([cn.name, '_T']));
4405
+ terminal = new Terminal_1.Terminal(utils_1.generateUUID(), util_create_1.createNotation([conductingEquipment.getUUID().substring(0, 8), '_T']));
4406
+ isNameSet = true;
3581
4407
  terminal.setConnectivityNode(cn);
3582
4408
  cn.addTerminal(terminal);
3583
4409
  cimModel.addTerminal(terminal);
@@ -3590,7 +4416,9 @@ class ConverterI7 {
3590
4416
  terminal.conductingEquipment = conductingEquipment;
3591
4417
  conductingEquipment.addTerminal(terminal);
3592
4418
  terminal.connected = connected;
3593
- terminal.name = util_create_1.createNotation([conductingEquipment.name, terminal.name], 32, true);
4419
+ if (!isNameSet) {
4420
+ terminal.name = util_create_1.createNotation([conductingEquipment.getUUID().substring(0, 8), '_' + terminal.name], 32, true);
4421
+ }
3594
4422
  }
3595
4423
  return terminal;
3596
4424
  }
@@ -3610,7 +4438,7 @@ class ConverterI7 {
3610
4438
  const object = cimModelBD.getObject(anschlussUUID);
3611
4439
  if (object instanceof ConnectivityNode_1.ConnectivityNode) {
3612
4440
  cn = object;
3613
- terminal = new Terminal_1.Terminal(utils_1.generateUUID(), util_create_1.createNotation([cn.name, '_T']));
4441
+ terminal = new Terminal_1.Terminal(utils_1.generateUUID(), util_create_1.createNotation([conductingEquipment.getUUID().substring(0, 8), '_', cn.getUUID().substring(0, 8), '_BD_T']));
3614
4442
  terminal.connectivityNodeUUID = cn.mrid;
3615
4443
  terminal.phases = phase;
3616
4444
  terminal.connected = true;
@@ -3627,6 +4455,7 @@ class ConverterI7 {
3627
4455
  terminal.setConnectivityNodeUUID(cn.getUUID());
3628
4456
  terminal.setConnectivityNode(undefined);
3629
4457
  }
4458
+ terminal.name = util_create_1.createNotation([conductingEquipment.getUUID().substring(0, 8), '_' + terminal.name], 32, true);
3630
4459
  cimModelBD.terminals.delete(terminal.mrid);
3631
4460
  cimModel.addTerminal(terminal);
3632
4461
  }
@@ -3679,7 +4508,7 @@ class ConverterI7 {
3679
4508
  equivalentInjection.baseVoltage = cn.getBaseVoltage();
3680
4509
  equivalentInjection.normallyInService = false;
3681
4510
  tmp_terminal.setConductingEquipment(equivalentInjection);
3682
- tmp_terminal.name = util_create_1.createNotation([cn.name.substring(0, 8), '_', equivalentInjection.name, '_BD-T'], 32, true);
4511
+ tmp_terminal.name = util_create_1.createNotation([frame.tsoName, '_BD-EI-T'], 32, true);
3683
4512
  cn.addTerminal(tmp_terminal);
3684
4513
  frame.cimModel.addEquivalentInjection(equivalentInjection);
3685
4514
  if (tmp_terminal.getConductingEquipmentUUID() !== undefined) {
@@ -3741,45 +4570,60 @@ class ConverterI7 {
3741
4570
  let tempKnotenId = i7Data.spgreg_anschluss === 0 ? i7Data.aknoten :
3742
4571
  (i7Data.spgreg_anschluss === 1 ? i7Data.eknoten : undefined);
3743
4572
  if (tempKnotenId !== undefined) {
3744
- let queryResult = yield this.mysqlController.execQuery(`SELECT id FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.KNOTEN_SF]} WHERE id = ${tempKnotenId};`);
4573
+ let queryResult = yield this.mysqlController.execQuery(`SELECT id
4574
+ FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.KNOTEN_SF]}
4575
+ WHERE id = ${tempKnotenId};`);
3745
4576
  if (queryResult.length === 1) {
3746
4577
  const tabName_NetzSSAB = integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.SAMMELSCHIENE];
3747
4578
  const tabName_NetzSchaltfeld = integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.SCHALTFELD];
3748
4579
  const tabName_NetzKnotenSf = integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.KNOTEN_SF];
3749
- const sqlStatement = `SELECT ${tabName_NetzSSAB}.id, ${tabName_NetzSSAB}.umin, ${tabName_NetzSSAB}.umax, ${tabName_NetzSSAB}.usoll
3750
- FROM ${tabName_NetzSSAB}
3751
- LEFT JOIN ${tabName_NetzSchaltfeld} ON ${tabName_NetzSSAB}.saabschnitt = ${tabName_NetzSchaltfeld}.saabschnitt
3752
- LEFT JOIN ${tabName_NetzKnotenSf} ON ${tabName_NetzKnotenSf}.schaltfeld = ${tabName_NetzSchaltfeld}.id
3753
- WHERE ${tabName_NetzKnotenSf}.id = ${tempKnotenId}`;
4580
+ const sqlStatement = `SELECT ${tabName_NetzSSAB}.id,
4581
+ ${tabName_NetzSSAB}.umin,
4582
+ ${tabName_NetzSSAB}.umax,
4583
+ ${tabName_NetzSSAB}.usoll
4584
+ FROM ${tabName_NetzSSAB}
4585
+ LEFT JOIN ${tabName_NetzSchaltfeld}
4586
+ ON ${tabName_NetzSSAB}.saabschnitt = ${tabName_NetzSchaltfeld}.saabschnitt
4587
+ LEFT JOIN ${tabName_NetzKnotenSf}
4588
+ ON ${tabName_NetzKnotenSf}.schaltfeld = ${tabName_NetzSchaltfeld}.id
4589
+ WHERE ${tabName_NetzKnotenSf}.id = ${tempKnotenId}`;
3754
4590
  minMaxSollResult = yield this.mysqlController.execQuery(sqlStatement);
3755
4591
  }
3756
4592
  else {
3757
- queryResult = yield this.mysqlController.execQuery(`SELECT id FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.KNOTEN_ZW]} WHERE id = ${tempKnotenId};`);
4593
+ queryResult = yield this.mysqlController.execQuery(`SELECT id
4594
+ FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.KNOTEN_ZW]}
4595
+ WHERE id = ${tempKnotenId};`);
3758
4596
  if (queryResult.length === 1) {
3759
4597
  const tabName_NetzSo = integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.KNOTEN_SO];
3760
4598
  const tabName_NetzSchlaufe = integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.SCHLAUFE];
3761
4599
  const tabName_NetzKnotenZw = integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.KNOTEN_ZW];
3762
- minMaxSollResult = yield this.mysqlController.execQuery(`SELECT ${tabName_NetzSo}.id, ${tabName_NetzSo}.umin, ${tabName_NetzSo}.umax, ${tabName_NetzSo}.usoll
3763
- FROM ${tabName_NetzKnotenZw}
3764
- LEFT JOIN ${tabName_NetzSchlaufe} ON
3765
- ${tabName_NetzSchlaufe}.id = ${tabName_NetzKnotenZw}.schlaufe
3766
- LEFT JOIN ${tabName_NetzSo} ON
3767
- ${tabName_NetzSchlaufe}.eknoten = ${tabName_NetzSo}.id
3768
- WHERE ${tabName_NetzKnotenZw}.id = ${tempKnotenId};`);
4600
+ minMaxSollResult = yield this.mysqlController.execQuery(`SELECT ${tabName_NetzSo}.id, ${tabName_NetzSo}.umin, ${tabName_NetzSo}.umax, ${tabName_NetzSo}.usoll
4601
+ FROM ${tabName_NetzKnotenZw}
4602
+ LEFT JOIN ${tabName_NetzSchlaufe} ON
4603
+ ${tabName_NetzSchlaufe}.id = ${tabName_NetzKnotenZw}.schlaufe
4604
+ LEFT JOIN ${tabName_NetzSo} ON
4605
+ ${tabName_NetzSchlaufe}.eknoten = ${tabName_NetzSo}.id
4606
+ WHERE ${tabName_NetzKnotenZw}.id = ${tempKnotenId};`);
3769
4607
  }
3770
4608
  else {
3771
- minMaxSollResult = yield this.mysqlController.execQuery(`SELECT id, umin, umax, usoll FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.KNOTEN_SO]} where id = ${tempKnotenId};`);
4609
+ minMaxSollResult = yield this.mysqlController.execQuery(`SELECT id, umin, umax, usoll
4610
+ FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.KNOTEN_SO]}
4611
+ where id = ${tempKnotenId};`);
3772
4612
  }
3773
4613
  }
3774
4614
  }
3775
4615
  else if (spgKnotenId !== undefined) {
3776
4616
  const tabName_NetzSo = integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.KNOTEN_SO];
3777
4617
  const tabName_NetzSSAB = integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.SAMMELSCHIENE];
3778
- const query = ` SELECT Voltage.id, Voltage.umin, Voltage.umax, Voltage.usoll
3779
- FROM (
3780
- SELECT id, umin, umax, usoll FROM ${tabName_NetzSo} WHERE ${tabName_NetzSo}.id = ${spgKnotenId}
3781
- UNION
3782
- SELECT id, umin, umax, usoll FROM ${tabName_NetzSSAB} WHERE ${tabName_NetzSSAB}.id = ${spgKnotenId}) as Voltage`;
4618
+ const query = ` SELECT Voltage.id, Voltage.umin, Voltage.umax, Voltage.usoll
4619
+ FROM (
4620
+ SELECT id, umin, umax, usoll
4621
+ FROM ${tabName_NetzSo}
4622
+ WHERE ${tabName_NetzSo}.id = ${spgKnotenId}
4623
+ UNION
4624
+ SELECT id, umin, umax, usoll
4625
+ FROM ${tabName_NetzSSAB}
4626
+ WHERE ${tabName_NetzSSAB}.id = ${spgKnotenId}) as Voltage`;
3783
4627
  minMaxSollResult = yield this.mysqlController.execQuery(query);
3784
4628
  }
3785
4629
  if (minMaxSollResult && minMaxSollResult.length) {
@@ -3801,7 +4645,7 @@ class ConverterI7 {
3801
4645
  }
3802
4646
  catch (e) {
3803
4647
  this.logger.error(e);
3804
- console.error("ERROR:" + e);
4648
+ console.error('ERROR:' + e);
3805
4649
  }
3806
4650
  });
3807
4651
  }
@@ -3817,7 +4661,7 @@ class ConverterI7 {
3817
4661
  status.status = 'error';
3818
4662
  status.message = e.toString();
3819
4663
  this.logger.error(e);
3820
- console.error("ERROR:" + e);
4664
+ console.error('ERROR:' + e);
3821
4665
  }
3822
4666
  resolve(status);
3823
4667
  }));
@@ -3934,7 +4778,7 @@ class ConverterI7 {
3934
4778
  this.createDropIndex('create index netz_leitung_aknoten_index on netz_leitung (aknoten);'),
3935
4779
  this.createDropIndex('create index netz_leitung_eknoten_index on netz_leitung (eknoten);'),
3936
4780
  this.createDropIndex('create index netz_freileitungabschnitt_leitung_index on netz_freileitungabschnitt (leitung);'),
3937
- this.createDropIndex('create index netz_kabelabschnitt_leitung_index on netz_kabelabschnitt (leitung);'),
4781
+ this.createDropIndex('create index netz_kabelabschnitt_leitung_index on netz_kabelabschnitt (leitung);')
3938
4782
  ]);
3939
4783
  });
3940
4784
  }
@@ -3954,7 +4798,7 @@ class ConverterI7 {
3954
4798
  this.createDropIndex('drop index netz_leitung_aknoten_index on netz_leitung;'),
3955
4799
  this.createDropIndex('drop index netz_leitung_eknoten_index on netz_leitung;'),
3956
4800
  this.createDropIndex('drop index netz_freileitungabschnitt_leitung_index on netz_freileitungabschnitt;'),
3957
- this.createDropIndex('drop index netz_kabelabschnitt_leitung_index on netz_kabelabschnitt;'),
4801
+ this.createDropIndex('drop index netz_kabelabschnitt_leitung_index on netz_kabelabschnitt;')
3958
4802
  ]);
3959
4803
  });
3960
4804
  }
@@ -4004,7 +4848,7 @@ class ConverterI7 {
4004
4848
  const cimModel = frame.cimModel;
4005
4849
  if (terminal) {
4006
4850
  powerTransformerEnd.terminal = terminal;
4007
- this.setConductingEquipmentCurrentLimit(cimModel, 'W1 ' + powerTransformer.name, terminal, ir);
4851
+ this.setConductingEquipmentCurrentLimit(cimModel, 'W1 ' + (powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name), terminal, ir);
4008
4852
  if (sternpunktKnotenMap.has(i7Data.id) && i7Data) {
4009
4853
  if (sternpunktKnotenMap.get(i7Data.id).has(i7Data.aknknoten1p)) {
4010
4854
  this.convertTrafoGrounding(frame, powerTransformer, powerTransformerEnd, integral7, sternpunktKnotenMap.get(i7Data.id).get(i7Data.aknknoten1p), defaultValuesConfig);
@@ -4042,7 +4886,7 @@ class ConverterI7 {
4042
4886
  powerTransformer.addPowerTransformerEnd(powerTransformerEnd);
4043
4887
  }
4044
4888
  convertTapChangers(i7Data, transformerEnds, cimModel, transformerinfo, connectivityNode, spannungsband) {
4045
- var _a, _b;
4889
+ var _a, _b, _c;
4046
4890
  for (let tapChangerNumber = 1; tapChangerNumber <= 2; tapChangerNumber++) {
4047
4891
  const transformerEndInfo = (_a = transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.transformerEndInfos) === null || _a === void 0 ? void 0 : _a.find(elem => elem.endNumber === tapChangerNumber);
4048
4892
  const transformerEnd = transformerEnds.find(elem => elem.endNumber === tapChangerNumber);
@@ -4055,10 +4899,14 @@ class ConverterI7 {
4055
4899
  this.logger.error(`Trafo ${i7Data.id}: Zum Stufenschalter ${gestufteSeite} keine Wicklung gefunden.`);
4056
4900
  continue;
4057
4901
  }
4902
+ else if (!gestufteSeite) {
4903
+ this.logger.error(`Trafo ${i7Data.id}: Kein Stufenschalter ${gestufteSeite} zur Wicklung ${transformerEnd.getUUID()} an Transformator ${(_b = transformerEnd.powerTransformer) === null || _b === void 0 ? void 0 : _b.getUUID()} gefunden.`);
4904
+ continue;
4905
+ }
4058
4906
  const tapChangerInfo = transformerEndInfo === null || transformerEndInfo === void 0 ? void 0 : transformerEndInfo.tapChangerInfo;
4059
4907
  const angle = utils_2.isNumericI7(i7Data[`uzus_winkel_s${tapChangerNumber}`])
4060
4908
  ? utils_2.convertToNumberI7(i7Data[`uzus_winkel_s${tapChangerNumber}`])
4061
- : (_b = tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.stepPhaseIncrement) === null || _b === void 0 ? void 0 : _b.value;
4909
+ : (_c = tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.stepPhaseIncrement) === null || _c === void 0 ? void 0 : _c.value;
4062
4910
  const neutralU = transformerEnd.ratedU;
4063
4911
  let tapChanger;
4064
4912
  if (isFinite(angle) && angle !== 0) {
@@ -4082,7 +4930,9 @@ class ConverterI7 {
4082
4930
  let neutralStep = utils_2.isNumericI7(i7Data[`mittelstufe_s${tapChangerNumber}`])
4083
4931
  ? i7Data[`mittelstufe_s${tapChangerNumber}`]
4084
4932
  : tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.neutralStep;
4085
- let currentStep = i7Data[`aktstufe_s${tapChangerNumber}`];
4933
+ let currentStep = utils_2.isNumericI7(i7Data[`aktstufe_s${tapChangerNumber}`])
4934
+ ? i7Data[`aktstufe_s${tapChangerNumber}`]
4935
+ : neutralStep;
4086
4936
  const i7TapArray = utils_2.getTapChangerStepArray(lowStep, highStep);
4087
4937
  const lowerVoltageStepCount = utils_2.getTapChangerStepCount(lowStep, neutralStep);
4088
4938
  const increaseVoltageStepCount = utils_2.getTapChangerStepCount(neutralStep, highStep);
@@ -4294,7 +5144,8 @@ class ConverterI7 {
4294
5144
  }
4295
5145
  queryLeitungsAnschlussIDs() {
4296
5146
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
4297
- let results = this.isTableAvailable(integral_sql_1.Integral7TableNames.LEITUNG) ? yield this.mysqlController.execQuery(`SELECT DISTINCT aknoten, eknoten FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.LEITUNG]}`) : [];
5147
+ let results = this.isTableAvailable(integral_sql_1.Integral7TableNames.LEITUNG) ? yield this.mysqlController.execQuery(`SELECT DISTINCT aknoten, eknoten
5148
+ FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.LEITUNG]}`) : [];
4298
5149
  for (const result of results) {
4299
5150
  this.leitungAnschlussKnotenIDs.add(result[`aknoten`]);
4300
5151
  this.leitungAnschlussKnotenIDs.add(result[`eknoten`]);
@@ -4303,14 +5154,14 @@ class ConverterI7 {
4303
5154
  }
4304
5155
  queryTrafosAnschlussIDs() {
4305
5156
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
4306
- let results = this.isTableAvailable(integral_sql_1.Integral7TableNames.TRAFO2W) ? yield this.mysqlController.execQuery(`SELECT DISTINCT aknoten, eknoten
4307
- FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.TRAFO2W]}`) : [];
5157
+ let results = this.isTableAvailable(integral_sql_1.Integral7TableNames.TRAFO2W) ? yield this.mysqlController.execQuery(`SELECT DISTINCT aknoten, eknoten
5158
+ FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.TRAFO2W]}`) : [];
4308
5159
  for (const result of results) {
4309
5160
  this.trafo2wAnschlussKnotenIDs.add(result[`aknoten`]);
4310
5161
  this.trafo2wAnschlussKnotenIDs.add(result[`eknoten`]);
4311
5162
  }
4312
- results = this.isTableAvailable(integral_sql_1.Integral7TableNames.TRAFO3_WICKLUNG) ? yield this.mysqlController.execQuery(`SELECT DISTINCT aknoten, eknoten
4313
- FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.TRAFO3_WICKLUNG]}`) : [];
5163
+ results = this.isTableAvailable(integral_sql_1.Integral7TableNames.TRAFO3_WICKLUNG) ? yield this.mysqlController.execQuery(`SELECT DISTINCT aknoten, eknoten
5164
+ FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.TRAFO3_WICKLUNG]}`) : [];
4314
5165
  for (const result of results) {
4315
5166
  this.trafo3wAnschlussKnotenIDs.add(result[`aknoten`]);
4316
5167
  this.trafo3wAnschlussKnotenIDs.add(result[`eknoten`]);
@@ -4319,7 +5170,8 @@ class ConverterI7 {
4319
5170
  }
4320
5171
  queryHgueAnschlussIDs() {
4321
5172
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
4322
- let results = this.isTableAvailable(integral_sql_1.Integral7TableNames.HGUE_LEITUNG) ? yield this.mysqlController.execQuery(`SELECT DISTINCT anetzobjekt, enetzobjekt FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.HGUE_LEITUNG]}`) : [];
5173
+ let results = this.isTableAvailable(integral_sql_1.Integral7TableNames.HGUE_LEITUNG) ? yield this.mysqlController.execQuery(`SELECT DISTINCT anetzobjekt, enetzobjekt
5174
+ FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.HGUE_LEITUNG]}`) : [];
4323
5175
  for (const result of results) {
4324
5176
  this.hgueAnschlussKnotenIDs.add(result[`anetzobjekt`]);
4325
5177
  this.hgueAnschlussKnotenIDs.add(result[`enetzobjekt`]);
@@ -4328,7 +5180,8 @@ class ConverterI7 {
4328
5180
  }
4329
5181
  queryLDroselAnschlussIDs() {
4330
5182
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
4331
- let results = this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSDROSSEL) ? yield this.mysqlController.execQuery(`SELECT DISTINCT aknoten, eknoten FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.LAENGSDROSSEL]}`) : [];
5183
+ let results = this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSDROSSEL) ? yield this.mysqlController.execQuery(`SELECT DISTINCT aknoten, eknoten
5184
+ FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.LAENGSDROSSEL]}`) : [];
4332
5185
  for (const result of results) {
4333
5186
  this.lDrosselAnschlussKnotenIDs.add(result[`aknoten`]);
4334
5187
  this.lDrosselAnschlussKnotenIDs.add(result[`eknoten`]);
@@ -4337,7 +5190,8 @@ class ConverterI7 {
4337
5190
  }
4338
5191
  queryErsatzLaengsAnschlussIDs() {
4339
5192
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
4340
- let results = this.isTableAvailable(integral_sql_1.Integral7TableNames.ERSATZLAENGSZWEIG) ? yield this.mysqlController.execQuery(`SELECT DISTINCT aknoten, eknoten FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.ERSATZLAENGSZWEIG]}`) : [];
5193
+ let results = this.isTableAvailable(integral_sql_1.Integral7TableNames.ERSATZLAENGSZWEIG) ? yield this.mysqlController.execQuery(`SELECT DISTINCT aknoten, eknoten
5194
+ FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.ERSATZLAENGSZWEIG]}`) : [];
4341
5195
  for (const result of results) {
4342
5196
  this.ersatzZweigAnschlussKnotenIDs.add(result[`aknoten`]);
4343
5197
  this.ersatzZweigAnschlussKnotenIDs.add(result[`eknoten`]);
@@ -4346,7 +5200,8 @@ class ConverterI7 {
4346
5200
  }
4347
5201
  queryLkondensatorAnschlussIDs() {
4348
5202
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
4349
- let results = this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSKONDENSATOR) ? yield this.mysqlController.execQuery(`SELECT DISTINCT aknoten, eknoten FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.LAENGSKONDENSATOR]}`) : [];
5203
+ let results = this.isTableAvailable(integral_sql_1.Integral7TableNames.LAENGSKONDENSATOR) ? yield this.mysqlController.execQuery(`SELECT DISTINCT aknoten, eknoten
5204
+ FROM ${integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.LAENGSKONDENSATOR]}`) : [];
4350
5205
  for (const result of results) {
4351
5206
  this.lKondensatorAnschlussKnotenIDs.add(result[`aknoten`]);
4352
5207
  this.lKondensatorAnschlussKnotenIDs.add(result[`eknoten`]);
@@ -4423,6 +5278,7 @@ class ConverterI7 {
4423
5278
  addIdMapping(i7ID, uuid, type) {
4424
5279
  if (this.integralID2UUID.has(i7ID)) {
4425
5280
  console.log(`ID ${i7ID} existiert bereits. Typ ${this.integralID2Type.get(i7ID)} neuer Typ ${type}`);
5281
+ this.logger.debug(`ID ${i7ID} existiert bereits. Typ ${this.integralID2Type.get(i7ID)} neuer Typ ${type}`);
4426
5282
  }
4427
5283
  else {
4428
5284
  this.integralID2UUID.set(i7ID, uuid);
@@ -4449,15 +5305,15 @@ class ConverterI7 {
4449
5305
  connectivityNode.toEndNameTso = tsoName;
4450
5306
  }
4451
5307
  else {
4452
- this.logger.error(`Grenzknoten ${connectivityNode.name} mit der UUID ${connectivityNode.mrid} ist bereits belegt:
4453
- fromEndName ${connectivityNode.fromEndName}
4454
- fromEndIsoCode ${connectivityNode.fromEndIsoCode}
4455
- fromEndNameTso ${connectivityNode.fromEndNameTso}
4456
- toEndName ${connectivityNode.toEndName}
4457
- toEndIsoCode ${connectivityNode.toEndIsoCode}
4458
- toEndNameTso ${connectivityNode.toEndNameTso}
4459
- name ${name}
4460
- isoCode ${isoCode}
5308
+ this.logger.error(`Grenzknoten ${connectivityNode.name} mit der UUID ${connectivityNode.mrid} ist bereits belegt:
5309
+ fromEndName ${connectivityNode.fromEndName}
5310
+ fromEndIsoCode ${connectivityNode.fromEndIsoCode}
5311
+ fromEndNameTso ${connectivityNode.fromEndNameTso}
5312
+ toEndName ${connectivityNode.toEndName}
5313
+ toEndIsoCode ${connectivityNode.toEndIsoCode}
5314
+ toEndNameTso ${connectivityNode.toEndNameTso}
5315
+ name ${name}
5316
+ isoCode ${isoCode}
4461
5317
  tsoName ${tsoName}`);
4462
5318
  }
4463
5319
  }