Skip to content

Commit da5cbb2

Browse files
authored
get busbar sections infos (#272)
Signed-off-by: Rehili Ghazwa <[email protected]>
1 parent eef11c4 commit da5cbb2

File tree

5 files changed

+47
-9
lines changed

5 files changed

+47
-9
lines changed

src/main/java/org/gridsuite/network/map/dto/definition/voltagelevel/VoltageLevelFormInfos.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import org.gridsuite.network.map.dto.definition.extension.IdentifiableShortCircuitInfos;
1616

1717
import java.util.List;
18+
import java.util.Map;
1819
import java.util.Optional;
1920

2021
/**
@@ -53,4 +54,7 @@ public class VoltageLevelFormInfos extends ElementInfosWithProperties {
5354
@JsonInclude(JsonInclude.Include.NON_NULL)
5455
private Boolean isRetrievedBusbarSections;
5556

57+
@JsonInclude(JsonInclude.Include.NON_NULL)
58+
Map<String, List<String>> busBarSectionInfos;
59+
5660
}

src/main/java/org/gridsuite/network/map/dto/mapper/VoltageLevelInfosMapper.java

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,14 @@
1212
import lombok.Setter;
1313
import org.gridsuite.network.map.dto.ElementInfos;
1414
import org.gridsuite.network.map.dto.InfoTypeParameters;
15+
import org.gridsuite.network.map.dto.definition.busbarsection.BusBarSectionFormInfos;
1516
import org.gridsuite.network.map.dto.definition.voltagelevel.VoltageLevelFormInfos;
1617
import org.gridsuite.network.map.dto.definition.voltagelevel.VoltageLevelMapInfos;
1718
import org.gridsuite.network.map.dto.definition.voltagelevel.VoltageLevelTabInfos;
1819
import org.gridsuite.network.map.dto.utils.ElementUtils;
1920

20-
import java.util.Collections;
21-
import java.util.HashMap;
22-
import java.util.List;
23-
import java.util.Map;
21+
import java.util.*;
22+
import java.util.stream.Collectors;
2423

2524
import static org.gridsuite.network.map.dto.utils.ElementUtils.*;
2625

@@ -49,6 +48,7 @@ public static ElementInfos toData(Identifiable<?> identifiable, InfoTypeParamete
4948
public static VoltageLevelTopologyInfos getTopologyInfos(VoltageLevel voltageLevel) {
5049
VoltageLevelTopologyInfos topologyInfos = new VoltageLevelTopologyInfos();
5150
Map<Integer, Integer> nbSectionsPerBusbar = new HashMap<>();
51+
List<BusBarSectionFormInfos> busbarSectionInfos = new ArrayList<>();
5252
for (BusbarSection bbs : voltageLevel.getNodeBreakerView().getBusbarSections()) {
5353
var extension = bbs.getExtension(BusbarSectionPosition.class);
5454
if (extension != null) {
@@ -62,6 +62,12 @@ public static VoltageLevelTopologyInfos getTopologyInfos(VoltageLevel voltageLev
6262
if (extension.getSectionIndex() > nbSectionsPerBusbar.get(extension.getBusbarIndex())) {
6363
nbSectionsPerBusbar.put(extension.getBusbarIndex(), extension.getSectionIndex());
6464
}
65+
BusBarSectionFormInfos busbarSectionInfo = BusBarSectionFormInfos.builder()
66+
.id(bbs.getId())
67+
.vertPos(extension.getSectionIndex())
68+
.horizPos(extension.getBusbarIndex())
69+
.build();
70+
busbarSectionInfos.add(busbarSectionInfo);
6571
} else {
6672
return new VoltageLevelTopologyInfos();
6773
}
@@ -72,6 +78,7 @@ public static VoltageLevelTopologyInfos getTopologyInfos(VoltageLevel voltageLev
7278

7379
topologyInfos.setRetrievedBusbarSections(true);
7480
topologyInfos.setSwitchKinds(Collections.nCopies(topologyInfos.getSectionCount() - 1, SwitchKind.DISCONNECTOR));
81+
topologyInfos.setBusbarSections(busbarSectionInfos);
7582

7683
return topologyInfos;
7784
}
@@ -94,6 +101,7 @@ protected static VoltageLevelFormInfos toFormInfos(Identifiable<?> identifiable)
94101
builder.sectionCount(vlTopologyInfos.getSectionCount());
95102
builder.switchKinds(vlTopologyInfos.getSwitchKinds());
96103
builder.isRetrievedBusbarSections(vlTopologyInfos.isRetrievedBusbarSections());
104+
builder.busBarSectionInfos(vlTopologyInfos.getBusBarSectionInfosGrouped());
97105
}
98106

99107
builder.identifiableShortCircuit(toIdentifiableShortCircuit(voltageLevel));
@@ -132,9 +140,24 @@ protected static VoltageLevelTabInfos toTabInfos(Identifiable<?> identifiable) {
132140
@Getter
133141
@Setter
134142
public static class VoltageLevelTopologyInfos {
143+
List<BusBarSectionFormInfos> busbarSections = List.of();
135144
boolean isRetrievedBusbarSections = false;
136145
int busbarCount = 1;
137146
int sectionCount = 1;
138147
List<SwitchKind> switchKinds = List.of();
148+
149+
public Map<String, List<String>> getBusBarSectionInfosGrouped() {
150+
return busbarSections.stream()
151+
.collect(Collectors.groupingBy(
152+
section -> String.valueOf(section.getHorizPos()),
153+
Collectors.collectingAndThen(
154+
Collectors.toList(),
155+
list -> list.stream()
156+
.sorted(Comparator.comparing(BusBarSectionFormInfos::getVertPos))
157+
.map(BusBarSectionFormInfos::getId)
158+
.toList()
159+
)
160+
));
161+
}
139162
}
140163
}

src/test/resources/substations-form-data.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,10 @@
103103
"switchKinds": [
104104
"DISCONNECTOR"
105105
],
106-
"isRetrievedBusbarSections": true
106+
"isRetrievedBusbarSections": true,
107+
"busBarSectionInfos" : {
108+
"1" : ["NGEN4"]
109+
}
107110
}
108111
]
109112
},
@@ -125,7 +128,8 @@
125128
"busbarCount": 1,
126129
"sectionCount": 1,
127130
"switchKinds": [],
128-
"isRetrievedBusbarSections": false
131+
"isRetrievedBusbarSections": false,
132+
"busBarSectionInfos" : { }
129133
}
130134
]
131135
}

src/test/resources/voltage-level-form-data.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,8 @@
66
"busbarCount": 1,
77
"sectionCount": 2,
88
"switchKinds": ["DISCONNECTOR"],
9-
"isRetrievedBusbarSections": true
9+
"isRetrievedBusbarSections": true,
10+
"busBarSectionInfos" : {
11+
"1" : [ "NGEN4"]
12+
}
1013
}

src/test/resources/voltage-levels-form-data.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,10 @@
6262
"busbarCount": 1,
6363
"sectionCount": 2,
6464
"switchKinds": ["DISCONNECTOR"],
65-
"isRetrievedBusbarSections": true
65+
"isRetrievedBusbarSections": true,
66+
"busBarSectionInfos" : {
67+
"1" : [ "NGEN4" ]
68+
}
6669
},
6770
{
6871
"id": "VLGEN5",
@@ -78,7 +81,8 @@
7881
"busbarCount": 1,
7982
"sectionCount": 1,
8083
"switchKinds": [],
81-
"isRetrievedBusbarSections": false
84+
"isRetrievedBusbarSections": false,
85+
"busBarSectionInfos" : { }
8286
},
8387
{
8488
"id": "VLGEN6",

0 commit comments

Comments
 (0)