Skip to content

Commit 19f6095

Browse files
feat: add partial loading on bus network components (#851)
* feat: add partial loading on bus network components Signed-off-by: Joris Mancini <[email protected]> * fix tests Signed-off-by: Joris Mancini <[email protected]> * add tests Signed-off-by: Joris Mancini <[email protected]> --------- Signed-off-by: Joris Mancini <[email protected]>
1 parent 3eb9790 commit 19f6095

File tree

9 files changed

+61
-2
lines changed

9 files changed

+61
-2
lines changed

src/main/java/org/gridsuite/study/server/dto/InfoTypeParameters.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public class InfoTypeParameters {
1818
public static final String QUERY_PARAM_DC_POWERFACTOR = "dcPowerFactor";
1919
public static final String QUERY_PARAM_LOAD_OPERATIONAL_LIMIT_GROUPS = "loadOperationalLimitGroups";
2020
public static final String QUERY_PARAM_LOAD_REGULATING_TERMINALS = "loadRegulatingTerminals";
21+
public static final String QUERY_PARAM_LOAD_NETWORK_COMPONENTS = "loadNetworkComponents";
2122

2223
private String infoType;
2324
private Map<String, String> optionalParameters;

src/main/java/org/gridsuite/study/server/dto/SpreadsheetParameters.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ public class SpreadsheetParameters {
4040
@JsonInclude(Include.NON_EMPTY)
4141
private GeneratorSpreadsheetParameters generator;
4242

43+
@JsonProperty("BUS")
44+
@JsonInclude(Include.NON_EMPTY)
45+
private BusSpreadsheetParameters bus;
46+
4347
@AllArgsConstructor
4448
@NoArgsConstructor
4549
@Data
@@ -61,4 +65,15 @@ public static class GeneratorSpreadsheetParameters {
6165
@JsonInclude(Include.NON_NULL)
6266
private Boolean regulatingTerminal;
6367
}
68+
69+
@AllArgsConstructor
70+
@NoArgsConstructor
71+
@Data
72+
@Accessors(chain = true)
73+
@Jacksonized
74+
@Builder
75+
public static class BusSpreadsheetParameters {
76+
@JsonInclude(Include.NON_NULL)
77+
private Boolean networkComponents;
78+
}
6479
}

src/main/java/org/gridsuite/study/server/dto/modification/EquipmentDeletionInfos.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,5 @@
2323
@ToString(callSuper = true)
2424
@Schema(description = "Equipment deletion")
2525
public class EquipmentDeletionInfos extends EquipmentModificationInfos {
26-
// String equipmentType transfered up to EquipmentModificationInfos.
26+
// String equipmentType transferred up to EquipmentModificationInfos.
2727
}

src/main/java/org/gridsuite/study/server/repository/SpreadsheetParametersEntity.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,17 @@ public class SpreadsheetParametersEntity {
3636
@Default
3737
private boolean spreadsheetLoadGeneratorRegulatingTerminal = false;
3838

39+
@Column(name = "sp_load_bus_nc", nullable = false, columnDefinition = "boolean default false")
40+
@Default
41+
private boolean spreadsheetLoadBusNetworkComponents = false;
42+
3943
public SpreadsheetParameters toDto() {
4044
return new SpreadsheetParameters(
4145
new BranchSpreadsheetParameters(this.spreadsheetLoadBranchOperationalLimitGroup),
4246
new BranchSpreadsheetParameters(this.spreadsheetLoadLineOperationalLimitGroup),
4347
new BranchSpreadsheetParameters(this.spreadsheetLoadTwtOperationalLimitGroup),
44-
new GeneratorSpreadsheetParameters(this.spreadsheetLoadGeneratorRegulatingTerminal)
48+
new GeneratorSpreadsheetParameters(this.spreadsheetLoadGeneratorRegulatingTerminal),
49+
new SpreadsheetParameters.BusSpreadsheetParameters(this.spreadsheetLoadBusNetworkComponents)
4550
);
4651
}
4752

@@ -78,6 +83,13 @@ public boolean update(@NonNull final SpreadsheetParameters dto) {
7883
this.spreadsheetLoadGeneratorRegulatingTerminal = generatorParams.getRegulatingTerminal();
7984
}
8085
}
86+
final SpreadsheetParameters.BusSpreadsheetParameters busParams = dto.getBus();
87+
if (busParams != null) {
88+
if (busParams.getNetworkComponents() != null && this.spreadsheetLoadBusNetworkComponents != busParams.getNetworkComponents()) {
89+
modified = true;
90+
this.spreadsheetLoadBusNetworkComponents = busParams.getNetworkComponents();
91+
}
92+
}
8193
return modified;
8294
}
8395
}

src/main/java/org/gridsuite/study/server/service/StudyService.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -900,6 +900,9 @@ private static Map<String, String> getOptionalParameters(String elementType, Stu
900900
case "generator" -> additionalParameters.put(
901901
InfoTypeParameters.QUERY_PARAM_LOAD_REGULATING_TERMINALS,
902902
String.valueOf(studyEntity.getSpreadsheetParameters().isSpreadsheetLoadGeneratorRegulatingTerminal()));
903+
case "bus" -> additionalParameters.put(
904+
InfoTypeParameters.QUERY_PARAM_LOAD_NETWORK_COMPONENTS,
905+
String.valueOf(studyEntity.getSpreadsheetParameters().isSpreadsheetLoadBusNetworkComponents()));
903906
}
904907
return additionalParameters;
905908
}
@@ -961,6 +964,10 @@ public String getAllMapData(UUID studyUuid, UUID nodeUuid, UUID rootNetworkUuid,
961964
Map.of(
962965
InfoTypeParameters.QUERY_PARAM_LOAD_REGULATING_TERMINALS,
963966
String.valueOf(studyEntity.getSpreadsheetParameters().isSpreadsheetLoadGeneratorRegulatingTerminal())));
967+
optionalParameters.put(String.valueOf(ElementType.BUS),
968+
Map.of(
969+
InfoTypeParameters.QUERY_PARAM_LOAD_NETWORK_COMPONENTS,
970+
String.valueOf(studyEntity.getSpreadsheetParameters().isSpreadsheetLoadBusNetworkComponents())));
964971
return networkMapService.getAllElementsInfos(
965972
rootNetworkService.getNetworkUuid(rootNetworkUuid),
966973
networkModificationTreeService.getVariantId(nodeUuid, rootNetworkUuid),
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
2+
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:pro="http://www.liquibase.org/xml/ns/pro" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/pro http://www.liquibase.org/xml/ns/pro/liquibase-pro-latest.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd">
3+
<changeSet author="mancinijor (generated)" id="1758123566985-22">
4+
<addColumn tableName="study">
5+
<column defaultValueBoolean="false" name="sp_load_bus_nc" type="boolean">
6+
<constraints nullable="false"/>
7+
</column>
8+
</addColumn>
9+
</changeSet>
10+
</databaseChangeLog>

src/main/resources/db/changelog/db.changelog-master.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,3 +338,6 @@ databaseChangeLog:
338338
- include:
339339
file: changesets/changelog_20250828T134627Z.xml
340340
relativeToChangelogFile: true
341+
- include:
342+
file: changesets/changelog_20250917T153853Z.xml
343+
relativeToChangelogFile: true

src/test/java/org/gridsuite/study/server/NetworkMapTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -590,6 +590,9 @@ void testGetAllNetworkElementsInfos(final MockWebServer server) throws Exception
590590
"GENERATOR": {
591591
"loadRegulatingTerminals": "true"
592592
},
593+
"BUS" : {
594+
"loadNetworkComponents" : "false"
595+
},
593596
"TIE_LINE": {
594597
"dcPowerFactor": "1.0"
595598
},

src/test/java/org/gridsuite/study/server/repository/SpreadsheetParametersEntityTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ void testEntityCreationWithDefaultBuilder() {
2020
assertFalse(spreadsheetParametersEntity.isSpreadsheetLoadLineOperationalLimitGroup());
2121
assertFalse(spreadsheetParametersEntity.isSpreadsheetLoadTwtOperationalLimitGroup());
2222
assertFalse(spreadsheetParametersEntity.isSpreadsheetLoadGeneratorRegulatingTerminal());
23+
assertFalse(spreadsheetParametersEntity.isSpreadsheetLoadBusNetworkComponents());
2324
}
2425

2526
@Test
@@ -29,11 +30,13 @@ void testEntityCreationWithBuilder() {
2930
.spreadsheetLoadLineOperationalLimitGroup(true)
3031
.spreadsheetLoadTwtOperationalLimitGroup(true)
3132
.spreadsheetLoadGeneratorRegulatingTerminal(true)
33+
.spreadsheetLoadBusNetworkComponents(true)
3234
.build();
3335
assertTrue(spreadsheetParametersEntity.isSpreadsheetLoadBranchOperationalLimitGroup());
3436
assertTrue(spreadsheetParametersEntity.isSpreadsheetLoadLineOperationalLimitGroup());
3537
assertTrue(spreadsheetParametersEntity.isSpreadsheetLoadTwtOperationalLimitGroup());
3638
assertTrue(spreadsheetParametersEntity.isSpreadsheetLoadGeneratorRegulatingTerminal());
39+
assertTrue(spreadsheetParametersEntity.isSpreadsheetLoadBusNetworkComponents());
3740
}
3841

3942
@Test
@@ -43,13 +46,15 @@ void testToDto() {
4346
.spreadsheetLoadLineOperationalLimitGroup(true)
4447
.spreadsheetLoadTwtOperationalLimitGroup(true)
4548
.spreadsheetLoadGeneratorRegulatingTerminal(true)
49+
.spreadsheetLoadBusNetworkComponents(true)
4650
.build();
4751

4852
SpreadsheetParameters spreadsheetParameters = spreadsheetParametersEntity.toDto();
4953
assertTrue(spreadsheetParameters.getBranch().getOperationalLimitsGroups());
5054
assertTrue(spreadsheetParameters.getLine().getOperationalLimitsGroups());
5155
assertTrue(spreadsheetParameters.getTwt().getOperationalLimitsGroups());
5256
assertTrue(spreadsheetParameters.getGenerator().getRegulatingTerminal());
57+
assertTrue(spreadsheetParameters.getBus().getNetworkComponents());
5358
}
5459

5560
@Test
@@ -65,6 +70,7 @@ void testUpdatePartial() {
6570
assertFalse(spreadsheetParametersEntity.isSpreadsheetLoadLineOperationalLimitGroup());
6671
assertFalse(spreadsheetParametersEntity.isSpreadsheetLoadTwtOperationalLimitGroup());
6772
assertTrue(spreadsheetParametersEntity.isSpreadsheetLoadGeneratorRegulatingTerminal());
73+
assertFalse(spreadsheetParametersEntity.isSpreadsheetLoadBusNetworkComponents());
6874
}
6975

7076
@Test
@@ -75,12 +81,14 @@ void testUpdateFull() {
7581
.line(SpreadsheetParameters.BranchSpreadsheetParameters.builder().operationalLimitsGroups(true).build())
7682
.twt(SpreadsheetParameters.BranchSpreadsheetParameters.builder().operationalLimitsGroups(true).build())
7783
.generator(SpreadsheetParameters.GeneratorSpreadsheetParameters.builder().regulatingTerminal(true).build())
84+
.bus(SpreadsheetParameters.BusSpreadsheetParameters.builder().networkComponents(true).build())
7885
.build();
7986

8087
spreadsheetParametersEntity.update(newParameters);
8188
assertTrue(spreadsheetParametersEntity.isSpreadsheetLoadBranchOperationalLimitGroup());
8289
assertTrue(spreadsheetParametersEntity.isSpreadsheetLoadLineOperationalLimitGroup());
8390
assertTrue(spreadsheetParametersEntity.isSpreadsheetLoadTwtOperationalLimitGroup());
8491
assertTrue(spreadsheetParametersEntity.isSpreadsheetLoadGeneratorRegulatingTerminal());
92+
assertTrue(spreadsheetParametersEntity.isSpreadsheetLoadBusNetworkComponents());
8593
}
8694
}

0 commit comments

Comments
 (0)