Skip to content

Commit 7e88fa1

Browse files
authored
Add addition and replacement of limit sets through tabular modification (#672)
Signed-off-by: Hugo Marcellin <[email protected]>
1 parent 322ffb7 commit 7e88fa1

File tree

7 files changed

+87
-21
lines changed

7 files changed

+87
-21
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
<sonar.organization>gridsuite</sonar.organization>
5353
<sonar.projectKey>org.gridsuite:network-modification-server</sonar.projectKey>
5454
<!-- TODO network-modification.version remove when upgrading gridsuite dependencies -->
55-
<network-modification.version>0.30.0</network-modification.version>
55+
<network-modification.version>0.31.0</network-modification.version>
5656
<powsybl-balances-adjustment.version>2.14.1</powsybl-balances-adjustment.version>
5757
</properties>
5858

src/main/java/org/gridsuite/modification/server/entities/equipment/modification/OperationalLimitsGroupModificationEntity.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ public class OperationalLimitsGroupModificationEntity {
5656
@Enumerated(EnumType.STRING)
5757
private TemporaryLimitModificationType temporaryLimitsModificationType;
5858

59+
@Column(name = "selectedOperationalLimitsGroupId")
60+
private String selectedOperationalLimitsGroupId;
61+
5962
@Column(name = "side")
6063
private String side;
6164

@@ -69,6 +72,7 @@ public static List<OperationalLimitsGroupModificationEntity> toOperationalLimits
6972
new CurrentLimitsModificationEntity(limitsGroup.getCurrentLimits()),
7073
limitsGroup.getModificationType(),
7174
limitsGroup.getTemporaryLimitsModificationType(),
75+
limitsGroup.getSelectedOperationalLimitsGroupId(),
7276
limitsGroup.getSide()
7377
)
7478
)
@@ -84,13 +88,11 @@ public static List<OperationalLimitsGroupModificationInfos> fromOperationalLimit
8488
.currentLimits(limitsGroupEntity.getCurrentLimits().toCurrentLimitsInfos())
8589
.modificationType(limitsGroupEntity.getModificationType())
8690
.temporaryLimitsModificationType(limitsGroupEntity.getTemporaryLimitsModificationType())
91+
.selectedOperationalLimitsGroupId(limitsGroupEntity.getSelectedOperationalLimitsGroupId())
8792
.side(limitsGroupEntity.getSide())
8893
.build()
8994
)
9095
.collect(Collectors.toList());
9196
}
9297

93-
public OperationalLimitsGroupModificationEntity(OperationalLimitsGroupModificationInfos operationalLimitsGroupModificationInfos) {
94-
this(null, operationalLimitsGroupModificationInfos.getId(), new CurrentLimitsModificationEntity(operationalLimitsGroupModificationInfos.getCurrentLimits()), operationalLimitsGroupModificationInfos.getModificationType(), operationalLimitsGroupModificationInfos.getTemporaryLimitsModificationType(), operationalLimitsGroupModificationInfos.getSide());
95-
}
9698
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
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-4.1.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.1.xsd" logicalFilePath="db/changelog/changesets/changelog_2022-04-25T10:22:24Z.xml">
3+
<changeSet id="add-column-selected_operational_limits_group_id" author="marcelinhug">
4+
<addColumn tableName="operational_limits_group_modification">
5+
<column name="selected_operational_limits_group_id" type="varchar(255)"/>
6+
</addColumn>
7+
</changeSet>
8+
<changeSet id="migrate-modification-types-20250807" author="marcelinhug">
9+
<!-- current_temporary_limits_modification.modification_type -->
10+
<update tableName="current_temporary_limits_modification">
11+
<column name="modification_type" value="MODIFY"/>
12+
<where>modification_type = 'MODIFIED'</where>
13+
</update>
14+
<update tableName="current_temporary_limits_modification">
15+
<column name="modification_type" value="ADD"/>
16+
<where>modification_type = 'ADDED'</where>
17+
</update>
18+
<update tableName="current_temporary_limits_modification">
19+
<column name="modification_type" value="DELETE"/>
20+
<where>modification_type = 'DELETED'</where>
21+
</update>
22+
<update tableName="current_temporary_limits_modification">
23+
<column name="modification_type" value="REPLACE"/>
24+
<where>modification_type = 'REPLACED'</where>
25+
</update>
26+
27+
<!-- operational_limits_group_modification.modification_type -->
28+
<update tableName="operational_limits_group_modification">
29+
<column name="modification_type" value="MODIFY"/>
30+
<where>modification_type = 'MODIFIED'</where>
31+
</update>
32+
<update tableName="operational_limits_group_modification">
33+
<column name="modification_type" value="ADD"/>
34+
<where>modification_type = 'ADDED'</where>
35+
</update>
36+
<update tableName="operational_limits_group_modification">
37+
<column name="modification_type" value="REPLACE"/>
38+
<where>modification_type = 'REPLACED'</where>
39+
</update>
40+
41+
<!-- operational_limits_group_modification.temporary_limits_modification_type -->
42+
<update tableName="operational_limits_group_modification">
43+
<column name="temporary_limits_modification_type" value="MODIFY"/>
44+
<where>temporary_limits_modification_type = 'MODIFIED'</where>
45+
</update>
46+
<update tableName="operational_limits_group_modification">
47+
<column name="temporary_limits_modification_type" value="ADD"/>
48+
<where>temporary_limits_modification_type = 'ADDED'</where>
49+
</update>
50+
<update tableName="operational_limits_group_modification">
51+
<column name="temporary_limits_modification_type" value="DELETE"/>
52+
<where>temporary_limits_modification_type = 'DELETED'</where>
53+
</update>
54+
<update tableName="operational_limits_group_modification">
55+
<column name="temporary_limits_modification_type" value="REPLACE"/>
56+
<where>temporary_limits_modification_type = 'REPLACED'</where>
57+
</update>
58+
59+
</changeSet>
60+
</databaseChangeLog>

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -395,4 +395,7 @@ databaseChangeLog:
395395
relativeToChangelogFile: true
396396
- include:
397397
file: changesets/changelog_20250804T151824Z.xml
398-
relativeToChangelogFile: true
398+
relativeToChangelogFile: true
399+
- include:
400+
file: changesets/changelog_20250807T155748Z.xml
401+
relativeToChangelogFile: true

src/test/java/org/gridsuite/modification/server/modifications/LineModificationTest.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ protected ModificationInfos buildModification() {
9494
.acceptableDuration(null)
9595
.name("name31")
9696
.value(null)
97-
.modificationType(TemporaryLimitModificationType.ADDED)
97+
.modificationType(TemporaryLimitModificationType.ADD)
9898
.build()))
9999
.build())
100100
.currentLimits2(CurrentLimitsModificationInfos.builder()
@@ -103,19 +103,19 @@ protected ModificationInfos buildModification() {
103103
.acceptableDuration(32)
104104
.name("name32")
105105
.value(42.0)
106-
.modificationType(TemporaryLimitModificationType.ADDED)
106+
.modificationType(TemporaryLimitModificationType.ADD)
107107
.build()))
108108
.build())
109109
.properties(List.of(FreePropertyInfos.builder().name(PROPERTY_NAME).value(PROPERTY_VALUE).build()))
110110
.operationalLimitsGroup1(List.of(OperationalLimitsGroupModificationInfos.builder()
111111
.id("DEFAULT")
112112
.side("ONE")
113-
.modificationType(OperationalLimitsGroupModificationType.MODIFIED)
114-
.temporaryLimitsModificationType(TemporaryLimitModificationType.REPLACED)
113+
.modificationType(OperationalLimitsGroupModificationType.MODIFY)
114+
.temporaryLimitsModificationType(TemporaryLimitModificationType.REPLACE)
115115
.currentLimits(CurrentLimitsModificationInfos.builder()
116116
.temporaryLimits(List.of(
117117
CurrentTemporaryLimitModificationInfos.builder()
118-
.modificationType(TemporaryLimitModificationType.REPLACED)
118+
.modificationType(TemporaryLimitModificationType.REPLACE)
119119
.name("test1")
120120
.acceptableDuration(2)
121121
.value(10.)
@@ -156,12 +156,13 @@ protected ModificationInfos buildModificationUpdate() {
156156
.operationalLimitsGroup1(List.of(OperationalLimitsGroupModificationInfos.builder()
157157
.id("DEFAULT")
158158
.side("ONE")
159-
.modificationType(OperationalLimitsGroupModificationType.MODIFIED)
160-
.temporaryLimitsModificationType(TemporaryLimitModificationType.REPLACED)
159+
.selectedOperationalLimitsGroupId("DEFAULT")
160+
.modificationType(OperationalLimitsGroupModificationType.MODIFY)
161+
.temporaryLimitsModificationType(TemporaryLimitModificationType.REPLACE)
161162
.currentLimits(CurrentLimitsModificationInfos.builder()
162163
.temporaryLimits(List.of(
163164
CurrentTemporaryLimitModificationInfos.builder()
164-
.modificationType(TemporaryLimitModificationType.REPLACED)
165+
.modificationType(TemporaryLimitModificationType.REPLACE)
165166
.name("test2")
166167
.acceptableDuration(2)
167168
.value(10.)
@@ -395,7 +396,7 @@ void testTemporaryLimitsModification() throws Exception {
395396
.acceptableDuration(null)
396397
.name("name31")
397398
.value(22.0)
398-
.modificationType(TemporaryLimitModificationType.MODIFIED)
399+
.modificationType(TemporaryLimitModificationType.MODIFY)
399400
.build()))
400401
.build())
401402
.currentLimits2(CurrentLimitsModificationInfos.builder()
@@ -404,7 +405,7 @@ void testTemporaryLimitsModification() throws Exception {
404405
.acceptableDuration(33)
405406
.name("name33")
406407
.value(15.0)
407-
.modificationType(TemporaryLimitModificationType.DELETED)
408+
.modificationType(TemporaryLimitModificationType.DELETE)
408409
.build()))
409410
.build())
410411
.build();

src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerModificationTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ protected ModificationInfos buildModification() {
7474
.acceptableDuration(null)
7575
.name("name31")
7676
.value(null)
77-
.modificationType(TemporaryLimitModificationType.ADDED)
77+
.modificationType(TemporaryLimitModificationType.ADD)
7878
.build()))
7979
.build())
8080
.currentLimits2(CurrentLimitsModificationInfos.builder()
@@ -83,7 +83,7 @@ protected ModificationInfos buildModification() {
8383
.acceptableDuration(32)
8484
.name("name32")
8585
.value(42.0)
86-
.modificationType(TemporaryLimitModificationType.ADDED)
86+
.modificationType(TemporaryLimitModificationType.ADD)
8787
.build()))
8888
.build())
8989
.voltageLevelId1(new AttributeModification<>("v1", OperationType.SET))

src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularLineModificationsTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ protected void assertAfterNetworkModificationCreation() {
8888
assertEquals(20., getNetwork().getLine("line2").getX(), 0.001);
8989
assertEquals(30., getNetwork().getLine("line3").getG1(), 0.001);
9090
assertEquals(40., getNetwork().getLine("line3").getB1(), 0.001);
91-
assertLogMessage("LINE_NOT_FOUND : Line 'unknownLine' : does not exist in network", "network.modification.tabular.modification.exception", reportService);
91+
assertLogMessage("Cannot add testName operational limit group, one with the given name already exists", "network.modification.tabular.modification.exception", reportService);
9292
}
9393

9494
@Override
@@ -162,13 +162,13 @@ public static OperationalLimitsGroupModificationInfos buildOperationalLimitsGrou
162162
return OperationalLimitsGroupModificationInfos.builder()
163163
.id("testName")
164164
.side(side.name())
165-
.modificationType(OperationalLimitsGroupModificationType.ADDED)
166-
.temporaryLimitsModificationType(TemporaryLimitModificationType.ADDED)
165+
.modificationType(OperationalLimitsGroupModificationType.ADD)
166+
.temporaryLimitsModificationType(TemporaryLimitModificationType.ADD)
167167
.currentLimits(CurrentLimitsModificationInfos.builder()
168168
.permanentLimit(1200.)
169169
.temporaryLimits(List.of(
170170
CurrentTemporaryLimitModificationInfos.builder()
171-
.modificationType(TemporaryLimitModificationType.ADDED)
171+
.modificationType(TemporaryLimitModificationType.ADD)
172172
.name("testLimit")
173173
.acceptableDuration(2)
174174
.value(10.)

0 commit comments

Comments
 (0)