Skip to content

Commit 8605bbb

Browse files
operational limits groups as one list in branch modifications (#667)
Signed-off-by: Mathieu DEHARBE <[email protected]>
1 parent 50bc529 commit 8605bbb

16 files changed

+358
-240
lines changed

pom.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@
5151
<sonar.coverage.exclusions>**/migration/**/*</sonar.coverage.exclusions>
5252
<sonar.organization>gridsuite</sonar.organization>
5353
<sonar.projectKey>org.gridsuite:network-modification-server</sonar.projectKey>
54+
<!-- TODO network-modification.version remove when upgrading gridsuite dependencies -->
55+
<network-modification.version>0.35.0</network-modification.version>
5456
<powsybl-balances-adjustment.version>2.14.1</powsybl-balances-adjustment.version>
5557
</properties>
5658

@@ -124,6 +126,7 @@
124126
<dependency>
125127
<groupId>org.gridsuite</groupId>
126128
<artifactId>gridsuite-network-modification</artifactId>
129+
<version>${network-modification.version}</version>
127130
</dependency>
128131
<dependency>
129132
<groupId>com.powsybl</groupId>

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

Lines changed: 19 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -40,35 +40,26 @@ public class BranchModificationEntity extends BasicEquipmentModificationEntity {
4040
})
4141
private DoubleModificationEmbedded x;
4242

43-
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
44-
@JoinColumn(name = "current_limits_modification_id1",
45-
referencedColumnName = "id",
46-
foreignKey = @ForeignKey(
47-
name = "current_limits_modification_id1_fk"
48-
), nullable = true)
49-
private CurrentLimitsModificationEntity currentLimits1;
50-
51-
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
52-
@JoinColumn(name = "current_limits_modification_id2",
53-
referencedColumnName = "id",
54-
foreignKey = @ForeignKey(
55-
name = "current_limits_modification_id2_fk"
56-
), nullable = true)
57-
private CurrentLimitsModificationEntity currentLimits2;
58-
5943
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
6044
@JoinTable(
61-
joinColumns = @JoinColumn(name = "branch_id"),
62-
inverseJoinColumns = @JoinColumn(name = "operational_limits_groups_id"), inverseForeignKey = @ForeignKey(name = "operational_limits_groups_id1_fk"))
45+
joinColumns = @JoinColumn(name = "branch_id"), foreignKey = @ForeignKey(name = "branch_modification_id_fk"),
46+
inverseJoinColumns = @JoinColumn(name = "operational_limits_groups_id"), inverseForeignKey = @ForeignKey(name = "operational_limits_groups_id_fk"))
6347
@OrderColumn(name = "pos_operationalLimitsGroups")
64-
private List<OperationalLimitsGroupModificationEntity> opLimitsGroups1;
48+
private List<OperationalLimitsGroupModificationEntity> operationalLimitsGroups;
6549

66-
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
67-
@JoinTable(
68-
joinColumns = @JoinColumn(name = "branch_id"),
69-
inverseJoinColumns = @JoinColumn(name = "operational_limits_groups_id"), inverseForeignKey = @ForeignKey(name = "operational_limits_groups_id2_fk"))
70-
@OrderColumn(name = "pos_operationalLimitsGroups")
71-
private List<OperationalLimitsGroupModificationEntity> opLimitsGroups2;
50+
@Embedded
51+
@AttributeOverrides(value = {
52+
@AttributeOverride(name = "value", column = @Column(name = "selectedOperationalLimitsGroupId1")),
53+
@AttributeOverride(name = "opType", column = @Column(name = "selectedOperationalLimitsGroupId1Op"))
54+
})
55+
private StringModificationEmbedded selectedOperationalLimitsGroupId1;
56+
57+
@Embedded
58+
@AttributeOverrides(value = {
59+
@AttributeOverride(name = "value", column = @Column(name = "selectedOperationalLimitsGroupId2")),
60+
@AttributeOverride(name = "opType", column = @Column(name = "selectedOperationalLimitsGroupId2Op"))
61+
})
62+
private StringModificationEmbedded selectedOperationalLimitsGroupId2;
7263

7364
@Embedded
7465
@AttributeOverrides(value = {
@@ -225,24 +216,15 @@ public void update(ModificationInfos modificationInfos) {
225216
private void assignAttributes(BranchModificationInfos branchModificationInfos) {
226217
x = new DoubleModificationEmbedded(branchModificationInfos.getX());
227218
r = new DoubleModificationEmbedded(branchModificationInfos.getR());
228-
if (branchModificationInfos.getCurrentLimits1() != null) {
229-
currentLimits1 = new CurrentLimitsModificationEntity(branchModificationInfos.getCurrentLimits1());
230-
} else {
231-
currentLimits1 = null;
232-
}
233-
this.opLimitsGroups1 = assignOperationalLimitsGroups(branchModificationInfos.getOperationalLimitsGroup1(), opLimitsGroups1);
234-
if (branchModificationInfos.getCurrentLimits2() != null) {
235-
currentLimits2 = new CurrentLimitsModificationEntity(branchModificationInfos.getCurrentLimits2());
236-
} else {
237-
currentLimits2 = null;
238-
}
239-
this.opLimitsGroups2 = assignOperationalLimitsGroups(branchModificationInfos.getOperationalLimitsGroup2(), opLimitsGroups2);
219+
this.operationalLimitsGroups = assignOperationalLimitsGroups(branchModificationInfos.getOperationalLimitsGroups(), operationalLimitsGroups);
240220
this.voltageLevelId1 = branchModificationInfos.getVoltageLevelId1() != null ? new StringModificationEmbedded(branchModificationInfos.getVoltageLevelId1()) : null;
241221
this.voltageLevelId2 = branchModificationInfos.getVoltageLevelId2() != null ? new StringModificationEmbedded(branchModificationInfos.getVoltageLevelId2()) : null;
242222
this.busOrBusbarSectionId1 = branchModificationInfos.getBusOrBusbarSectionId1() != null ? new StringModificationEmbedded(branchModificationInfos.getBusOrBusbarSectionId1()) : null;
243223
this.busOrBusbarSectionId2 = branchModificationInfos.getBusOrBusbarSectionId2() != null ? new StringModificationEmbedded(branchModificationInfos.getBusOrBusbarSectionId2()) : null;
244224
this.connectionName1 = branchModificationInfos.getConnectionName1() != null ? new StringModificationEmbedded(branchModificationInfos.getConnectionName1()) : null;
245225
this.connectionName2 = branchModificationInfos.getConnectionName2() != null ? new StringModificationEmbedded(branchModificationInfos.getConnectionName2()) : null;
226+
this.selectedOperationalLimitsGroupId1 = branchModificationInfos.getSelectedOperationalLimitsGroup1() != null ? new StringModificationEmbedded(branchModificationInfos.getSelectedOperationalLimitsGroup1()) : null;
227+
this.selectedOperationalLimitsGroupId2 = branchModificationInfos.getSelectedOperationalLimitsGroup2() != null ? new StringModificationEmbedded(branchModificationInfos.getSelectedOperationalLimitsGroup2()) : null;
246228
this.connectionDirection1 = branchModificationInfos.getConnectionDirection1() != null ? new EnumModificationEmbedded<>(branchModificationInfos.getConnectionDirection1()) : null;
247229
this.connectionDirection2 = branchModificationInfos.getConnectionDirection2() != null ? new EnumModificationEmbedded<>(branchModificationInfos.getConnectionDirection2()) : null;
248230
this.connectionPosition1 = branchModificationInfos.getConnectionPosition1() != null ? new IntegerModificationEmbedded(branchModificationInfos.getConnectionPosition1()) : null;

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

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ public LineModificationInfos toModificationInfos() {
9494
.busOrBusbarSectionId2(toAttributeModification(getBusOrBusbarSectionId2()))
9595
.connectionName1(toAttributeModification(getConnectionName1()))
9696
.connectionName2(toAttributeModification(getConnectionName2()))
97+
.selectedOperationalLimitsGroup1(toAttributeModification(getSelectedOperationalLimitsGroupId1()))
98+
.selectedOperationalLimitsGroup2(toAttributeModification(getSelectedOperationalLimitsGroupId2()))
9799
.connectionDirection1(toAttributeModification(getConnectionDirection1()))
98100
.connectionDirection2(toAttributeModification(getConnectionDirection2()))
99101
.connectionPosition1(toAttributeModification(getConnectionPosition1()))
@@ -119,17 +121,8 @@ public LineModificationInfos toModificationInfos() {
119121
getProperties().stream()
120122
.map(FreePropertyEntity::toInfos)
121123
.toList());
122-
if (getCurrentLimits1() != null) {
123-
builder.currentLimits1(getCurrentLimits1().toCurrentLimitsInfos());
124-
}
125-
if (getCurrentLimits2() != null) {
126-
builder.currentLimits2(getCurrentLimits2().toCurrentLimitsInfos());
127-
}
128-
if (getOpLimitsGroups1() != null) {
129-
builder.operationalLimitsGroup1(OperationalLimitsGroupModificationEntity.fromOperationalLimitsGroupsEntities(getOpLimitsGroups1()));
130-
}
131-
if (getOpLimitsGroups2() != null) {
132-
builder.operationalLimitsGroup2(OperationalLimitsGroupModificationEntity.fromOperationalLimitsGroupsEntities(getOpLimitsGroups2()));
124+
if (getOperationalLimitsGroups() != null) {
125+
builder.operationalLimitsGroups(OperationalLimitsGroupModificationEntity.fromOperationalLimitsGroupsEntities(getOperationalLimitsGroups()));
133126
}
134127
return builder;
135128
}

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

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import lombok.Getter;
1212
import lombok.NoArgsConstructor;
1313
import lombok.NonNull;
14+
import org.gridsuite.modification.dto.OperationalLimitsGroupInfos;
1415
import org.gridsuite.modification.dto.OperationalLimitsGroupModificationInfos;
1516
import org.gridsuite.modification.dto.OperationalLimitsGroupModificationType;
1617
import org.gridsuite.modification.dto.TemporaryLimitModificationType;
@@ -56,11 +57,9 @@ public class OperationalLimitsGroupModificationEntity {
5657
@Enumerated(EnumType.STRING)
5758
private TemporaryLimitModificationType temporaryLimitsModificationType;
5859

59-
@Column(name = "selectedOperationalLimitsGroupId")
60-
private String selectedOperationalLimitsGroupId;
61-
62-
@Column(name = "side")
63-
private String side;
60+
@Column(name = "applicability")
61+
@Enumerated(EnumType.STRING)
62+
private OperationalLimitsGroupInfos.Applicability applicability;
6463

6564
public static List<OperationalLimitsGroupModificationEntity> toOperationalLimitsGroupsEntities(@NonNull List<OperationalLimitsGroupModificationInfos> limitsGroups) {
6665
return limitsGroups.stream()
@@ -72,8 +71,7 @@ public static List<OperationalLimitsGroupModificationEntity> toOperationalLimits
7271
new CurrentLimitsModificationEntity(limitsGroup.getCurrentLimits()),
7372
limitsGroup.getModificationType(),
7473
limitsGroup.getTemporaryLimitsModificationType(),
75-
limitsGroup.getSelectedOperationalLimitsGroupId(),
76-
limitsGroup.getSide()
74+
limitsGroup.getApplicability()
7775
)
7876
)
7977
.toList();
@@ -88,11 +86,9 @@ public static List<OperationalLimitsGroupModificationInfos> fromOperationalLimit
8886
.currentLimits(limitsGroupEntity.getCurrentLimits().toCurrentLimitsInfos())
8987
.modificationType(limitsGroupEntity.getModificationType())
9088
.temporaryLimitsModificationType(limitsGroupEntity.getTemporaryLimitsModificationType())
91-
.selectedOperationalLimitsGroupId(limitsGroupEntity.getSelectedOperationalLimitsGroupId())
92-
.side(limitsGroupEntity.getSide())
89+
.applicability(limitsGroupEntity.getApplicability())
9390
.build()
9491
)
9592
.collect(Collectors.toList());
9693
}
97-
9894
}

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

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,8 @@ public TwoWindingsTransformerModificationInfos toModificationInfos() {
395395
.busOrBusbarSectionId2(toAttributeModification(getBusOrBusbarSectionId2()))
396396
.connectionName1(toAttributeModification(getConnectionName1()))
397397
.connectionName2(toAttributeModification(getConnectionName2()))
398+
.selectedOperationalLimitsGroup1(toAttributeModification(getSelectedOperationalLimitsGroupId1()))
399+
.selectedOperationalLimitsGroup2(toAttributeModification(getSelectedOperationalLimitsGroupId2()))
398400
.connectionDirection1(toAttributeModification(getConnectionDirection1()))
399401
.connectionDirection2(toAttributeModification(getConnectionDirection2()))
400402
.connectionPosition1(toAttributeModification(getConnectionPosition1()))
@@ -424,17 +426,8 @@ public TwoWindingsTransformerModificationInfos toModificationInfos() {
424426
.map(FreePropertyEntity::toInfos)
425427
.toList());
426428

427-
if (getCurrentLimits1() != null) {
428-
builder.currentLimits1(getCurrentLimits1().toCurrentLimitsInfos());
429-
}
430-
if (getCurrentLimits2() != null) {
431-
builder.currentLimits2(getCurrentLimits2().toCurrentLimitsInfos());
432-
}
433-
if (getOpLimitsGroups1() != null) {
434-
builder.operationalLimitsGroup1(OperationalLimitsGroupModificationEntity.fromOperationalLimitsGroupsEntities(getOpLimitsGroups1()));
435-
}
436-
if (getOpLimitsGroups2() != null) {
437-
builder.operationalLimitsGroup2(OperationalLimitsGroupModificationEntity.fromOperationalLimitsGroupsEntities(getOpLimitsGroups2()));
429+
if (getOperationalLimitsGroups() != null) {
430+
builder.operationalLimitsGroups(OperationalLimitsGroupModificationEntity.fromOperationalLimitsGroupsEntities(getOperationalLimitsGroups()));
438431
}
439432

440433
List<TapChangerStepCreationInfos> ratioTapChangerStepCreationInfos = null;

src/main/java/org/gridsuite/modification/server/migration/MergeLimitSetsGroupsTables.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import liquibase.statement.core.UpdateStatement;
1515
import org.slf4j.Logger;
1616
import org.slf4j.LoggerFactory;
17-
1817
import java.sql.ResultSet;
1918
import java.sql.SQLException;
2019
import java.sql.Statement;

src/main/java/org/gridsuite/modification/server/repositories/LineModificationRepository.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,15 @@
2323
@Repository
2424
public interface LineModificationRepository extends JpaRepository<LineModificationEntity, UUID> {
2525

26-
@EntityGraph(attributePaths = {"opLimitsGroups1"}, type = EntityGraph.EntityGraphType.LOAD)
27-
List<LineModificationEntity> findAllOperationalLimitsGroups1ByIdIn(List<UUID> ids);
28-
29-
@EntityGraph(attributePaths = {"opLimitsGroups2"}, type = EntityGraph.EntityGraphType.LOAD)
30-
List<LineModificationEntity> findAllOperationalLimitsGroups2ByIdIn(List<UUID> ids);
26+
@EntityGraph(attributePaths = {"operationalLimitsGroups"}, type = EntityGraph.EntityGraphType.LOAD)
27+
List<LineModificationEntity> findAllOperationalLimitsGroupsByIdIn(List<UUID> ids);
3128

3229
@EntityGraph(attributePaths = {"properties"}, type = EntityGraph.EntityGraphType.LOAD)
3330
List<LineModificationEntity> findAllPropertiesByIdIn(List<UUID> ids);
3431

3532
@Modifying
3633
@Query(value = "BEGIN;" +
37-
"DELETE FROM line_modification_op_limits_groups1 lm WHERE lm.branch_id IN ?3 ;" +
38-
"DELETE FROM line_modification_op_limits_groups2 lm WHERE lm.branch_id IN ?3 ;" +
34+
"DELETE FROM line_modification_operational_limits_groups lm WHERE lm.branch_id IN ?3 ;" +
3935
"DELETE FROM operational_limits_group_modification ol WHERE ol.uuid IN ?2 ;" +
4036
"DELETE FROM current_temporary_limits_modification cl WHERE cl.id IN ?1 ;" +
4137
"DELETE FROM current_limits_modification cl WHERE cl.id IN ?1 ;" +
@@ -48,8 +44,7 @@ public interface LineModificationRepository extends JpaRepository<LineModificati
4844

4945
@Modifying
5046
@Query(value = "BEGIN;" +
51-
"DELETE FROM line_modification_op_limits_groups1 lm WHERE lm.branch_id IN ?3 ;" +
52-
"DELETE FROM line_modification_op_limits_groups2 lm WHERE lm.branch_id IN ?3 ;" +
47+
"DELETE FROM line_modification_operational_limits_groups lm WHERE lm.branch_id IN ?3 ;" +
5348
"DELETE FROM operational_limits_group_modification ol WHERE ol.uuid IN ?2 ;" +
5449
"DELETE FROM current_temporary_limits_modification cl WHERE cl.id IN ?1 ;" +
5550
"DELETE FROM current_limits_modification cl WHERE cl.id IN ?1 ;" +

src/main/java/org/gridsuite/modification/server/repositories/ModificationRepository.java

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -66,17 +66,11 @@ public interface ModificationRepository extends JpaRepository<ModificationEntity
6666

6767
Integer countByGroupIdAndStashed(UUID groupId, boolean stashed);
6868

69-
@Query(value = "SELECT cast(operational_limits_groups_id AS VARCHAR) FROM line_modification_op_limits_groups1 WHERE branch_id IN ?1", nativeQuery = true)
70-
List<UUID> findLineModificationOpLimitsGroups1IdsByBranchIds(List<UUID> uuids);
69+
@Query(value = "SELECT cast(operational_limits_groups_id AS VARCHAR) FROM line_modification_operational_limits_groups WHERE branch_id IN ?1", nativeQuery = true)
70+
List<UUID> findLineModificationOpLimitsGroupsIdsByBranchIds(List<UUID> uuids);
7171

72-
@Query(value = "SELECT cast(operational_limits_groups_id AS VARCHAR) FROM line_modification_op_limits_groups2 WHERE branch_id IN ?1", nativeQuery = true)
73-
List<UUID> findLineModificationOpLimitsGroups2IdsByBranchIds(List<UUID> uuids);
74-
75-
@Query(value = "SELECT cast(operational_limits_groups_id AS VARCHAR) FROM two_windings_transformer_modification_op_limits_groups1 WHERE branch_id IN ?1", nativeQuery = true)
76-
List<UUID> findTwtModificationOpLimitsGroups1IdsByBranchIds(List<UUID> uuids);
77-
78-
@Query(value = "SELECT cast(operational_limits_groups_id AS VARCHAR) FROM two_windings_transformer_modification_op_limits_groups2 WHERE branch_id IN ?1", nativeQuery = true)
79-
List<UUID> findTwtModificationOpLimitsGroups2IdsByBranchIds(List<UUID> uuids);
72+
@Query(value = "SELECT cast(operational_limits_groups_id AS VARCHAR) FROM two_windings_transformer_modification_operational_limits_groups WHERE branch_id IN ?1", nativeQuery = true)
73+
List<UUID> findTwtModificationOpLimitsGroupsIdsByBranchIds(List<UUID> uuids);
8074

8175
@Query(value = "SELECT cast(current_limits_id AS VARCHAR) FROM operational_limits_group_modification WHERE uuid IN ?1", nativeQuery = true)
8276
List<UUID> findCurrentLimitsIdsByOpLimitsGroupsIds(List<UUID> uuids);

0 commit comments

Comments
 (0)