Skip to content

Commit b5ff0b8

Browse files
authored
Two windings transformer modification (#257)
Add the possibility to modify a two windings transformer Signed-off-by: Florent MILLOT <[email protected]>
1 parent 544d5b9 commit b5ff0b8

15 files changed

+815
-185
lines changed

src/main/java/org/gridsuite/modification/server/ModificationType.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public enum ModificationType {
2020
LINE_CREATION,
2121
LINE_MODIFICATION,
2222
TWO_WINDINGS_TRANSFORMER_CREATION,
23+
TWO_WINDINGS_TRANSFORMER_MODIFICATION,
2324
GROOVY_SCRIPT,
2425
SUBSTATION_CREATION,
2526
SUBSTATION_MODIFICATION,

src/main/java/org/gridsuite/modification/server/NetworkModificationException.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public enum Type {
3333
BRANCH_NOT_FOUND(HttpStatus.NOT_FOUND),
3434
LOAD_NOT_FOUND(HttpStatus.NOT_FOUND),
3535
GENERATOR_NOT_FOUND(HttpStatus.NOT_FOUND),
36+
TWO_WINDINGS_TRANSFORMER_NOT_FOUND(HttpStatus.NOT_FOUND),
3637
UNKNOWN_MODIFICATION_TYPE(HttpStatus.INTERNAL_SERVER_ERROR),
3738
UNKNOWN_EQUIPMENT_TYPE(HttpStatus.INTERNAL_SERVER_ERROR),
3839
WRONG_EQUIPMENT_TYPE(HttpStatus.INTERNAL_SERVER_ERROR),
@@ -50,6 +51,7 @@ public enum Type {
5051
CREATE_LINE_ERROR(HttpStatus.INTERNAL_SERVER_ERROR),
5152
MODIFY_LINE_ERROR(HttpStatus.INTERNAL_SERVER_ERROR),
5253
CREATE_TWO_WINDINGS_TRANSFORMER_ERROR(HttpStatus.INTERNAL_SERVER_ERROR),
54+
MODIFY_TWO_WINDINGS_TRANSFORMER_ERROR(HttpStatus.INTERNAL_SERVER_ERROR),
5355
CREATE_SUBSTATION_ERROR(HttpStatus.INTERNAL_SERVER_ERROR),
5456
MODIFY_SUBSTATION_ERROR(HttpStatus.INTERNAL_SERVER_ERROR),
5557
CREATE_VOLTAGE_LEVEL_ERROR(HttpStatus.INTERNAL_SERVER_ERROR),

src/main/java/org/gridsuite/modification/server/dto/LineModificationInfos.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
@Getter
3030
@Setter
3131
@ToString(callSuper = true)
32-
@Schema(description = "Line creation")
32+
@Schema(description = "Line modification")
3333
public class LineModificationInfos extends BranchModificationInfos {
3434

3535
@Schema(description = "Shunt conductance Side 1")

src/main/java/org/gridsuite/modification/server/dto/ModificationInfos.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
@JsonSubTypes.Type(value = VoltageLevelModificationInfos.class, name = "VOLTAGE_LEVEL_MODIFICATION"),
4646
@JsonSubTypes.Type(value = ShuntCompensatorCreationInfos.class, name = "SHUNT_COMPENSATOR_CREATION"),
4747
@JsonSubTypes.Type(value = TwoWindingsTransformerCreationInfos.class, name = "TWO_WINDINGS_TRANSFORMER_CREATION"),
48+
@JsonSubTypes.Type(value = TwoWindingsTransformerModificationInfos.class, name = "TWO_WINDINGS_TRANSFORMER_MODIFICATION"),
4849
@JsonSubTypes.Type(value = EquipmentDeletionInfos.class, name = "EQUIPMENT_DELETION"),
4950
@JsonSubTypes.Type(value = LineSplitWithVoltageLevelInfos.class, name = "LINE_SPLIT_WITH_VOLTAGE_LEVEL"),
5051
@JsonSubTypes.Type(value = LineAttachToVoltageLevelInfos.class, name = "LINE_ATTACH_TO_VOLTAGE_LEVEL"),
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
/**
2+
* Copyright (c) 2023, RTE (http://www.rte-france.com)
3+
* This Source Code Form is subject to the terms of the Mozilla Public
4+
* License, v. 2.0. If a copy of the MPL was not distributed with this
5+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
6+
*/
7+
package org.gridsuite.modification.server.dto;
8+
9+
import com.powsybl.commons.reporter.Reporter;
10+
import com.powsybl.commons.reporter.ReporterModel;
11+
import io.swagger.v3.oas.annotations.media.Schema;
12+
import lombok.Getter;
13+
import lombok.NoArgsConstructor;
14+
import lombok.Setter;
15+
import lombok.ToString;
16+
import lombok.experimental.SuperBuilder;
17+
import org.gridsuite.modification.server.ModificationType;
18+
import org.gridsuite.modification.server.NetworkModificationException;
19+
import org.gridsuite.modification.server.entities.equipment.modification.TwoWindingsTransformerModificationEntity;
20+
import org.gridsuite.modification.server.modifications.AbstractModification;
21+
import org.gridsuite.modification.server.modifications.TwoWindingsTransformerModification;
22+
23+
/**
24+
* @author Florent MILLOT <florent.millot at rte-france.com>
25+
*/
26+
@SuperBuilder
27+
@NoArgsConstructor
28+
@Getter
29+
@Setter
30+
@ToString(callSuper = true)
31+
@Schema(description = "Two windings transformer modification")
32+
public class TwoWindingsTransformerModificationInfos extends BranchModificationInfos {
33+
34+
@Schema(description = "Magnetizing conductance")
35+
private AttributeModification<Double> magnetizingConductance;
36+
37+
@Schema(description = "Magnetizing susceptance")
38+
private AttributeModification<Double> magnetizingSusceptance;
39+
40+
@Schema(description = "Side 1 rated voltage")
41+
private AttributeModification<Double> ratedVoltage1;
42+
43+
@Schema(description = "Side 2 rated voltage")
44+
private AttributeModification<Double> ratedVoltage2;
45+
46+
@Schema(description = "Rated conductance in Siemens")
47+
private AttributeModification<Double> ratedS;
48+
49+
@Override
50+
public TwoWindingsTransformerModificationEntity toEntity() {
51+
return new TwoWindingsTransformerModificationEntity(this);
52+
}
53+
54+
@Override
55+
public AbstractModification toModification() {
56+
return new TwoWindingsTransformerModification(this);
57+
}
58+
59+
@Override
60+
public NetworkModificationException.Type getErrorType() {
61+
return NetworkModificationException.Type.MODIFY_TWO_WINDINGS_TRANSFORMER_ERROR;
62+
}
63+
64+
@Override
65+
public Reporter createSubReporter(ReporterModel reporter) {
66+
return reporter.createSubReporter(ModificationType.TWO_WINDINGS_TRANSFORMER_MODIFICATION.name(), "Two windings transformer modification ${twoWindingsTransformerId}", "twoWindingsTransformerId", getEquipmentId());
67+
}
68+
69+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
/**
2+
* Copyright (c) 2023, RTE (http://www.rte-france.com)
3+
* This Source Code Form is subject to the terms of the Mozilla Public
4+
* License, v. 2.0. If a copy of the MPL was not distributed with this
5+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
6+
*/
7+
package org.gridsuite.modification.server.entities.equipment.modification;
8+
9+
import lombok.Getter;
10+
import lombok.NoArgsConstructor;
11+
import org.gridsuite.modification.server.dto.AttributeModification;
12+
import org.gridsuite.modification.server.dto.ModificationInfos;
13+
import org.gridsuite.modification.server.dto.TwoWindingsTransformerModificationInfos;
14+
import org.gridsuite.modification.server.entities.equipment.modification.attribute.DoubleModificationEmbedded;
15+
16+
import javax.persistence.*;
17+
18+
/**
19+
* @author Florent MILLOT <florent.millot at rte-france.com>
20+
*/
21+
@NoArgsConstructor
22+
@Getter
23+
@Entity
24+
@Table(name = "twoWindingsTransformerModification")
25+
@PrimaryKeyJoinColumn(foreignKey = @ForeignKey(name = "twoWindingsTransformerModification_id_fk_constraint"))
26+
public class TwoWindingsTransformerModificationEntity extends BranchModificationEntity {
27+
28+
@Column(name = "magnetizingConductance")
29+
@Embedded
30+
@AttributeOverrides(value = {
31+
@AttributeOverride(name = "value", column = @Column(name = "magnetizingConductance")),
32+
@AttributeOverride(name = "opType", column = @Column(name = "magnetizingConductanceOp"))
33+
})
34+
private DoubleModificationEmbedded magnetizingConductance;
35+
36+
@Column(name = "magnetizingSusceptance")
37+
@Embedded
38+
@AttributeOverrides(value = {
39+
@AttributeOverride(name = "value", column = @Column(name = "magnetizingSusceptance")),
40+
@AttributeOverride(name = "opType", column = @Column(name = "magnetizingSusceptanceOp"))
41+
})
42+
private DoubleModificationEmbedded magnetizingSusceptance;
43+
44+
@Column(name = "ratedVoltage1")
45+
@Embedded
46+
@AttributeOverrides(value = {
47+
@AttributeOverride(name = "value", column = @Column(name = "ratedVoltage1")),
48+
@AttributeOverride(name = "opType", column = @Column(name = "ratedVoltage1Op"))
49+
})
50+
private DoubleModificationEmbedded ratedVoltage1;
51+
52+
@Column(name = "ratedVoltage2")
53+
@Embedded
54+
@AttributeOverrides(value = {
55+
@AttributeOverride(name = "value", column = @Column(name = "ratedVoltage2")),
56+
@AttributeOverride(name = "opType", column = @Column(name = "ratedVoltage2Op"))
57+
})
58+
private DoubleModificationEmbedded ratedVoltage2;
59+
60+
@Column(name = "rateds")
61+
@Embedded
62+
@AttributeOverrides(value = {
63+
@AttributeOverride(name = "value", column = @Column(name = "rateds")),
64+
@AttributeOverride(name = "opType", column = @Column(name = "ratedsOp"))
65+
})
66+
private DoubleModificationEmbedded ratedS;
67+
68+
public TwoWindingsTransformerModificationEntity(TwoWindingsTransformerModificationInfos twoWindingsTransformerModificationInfos) {
69+
super(twoWindingsTransformerModificationInfos);
70+
assignAttributes(twoWindingsTransformerModificationInfos);
71+
}
72+
73+
@Override
74+
public void update(ModificationInfos modificationInfos) {
75+
super.update(modificationInfos);
76+
TwoWindingsTransformerModificationInfos twoWindingsTransformerModificationInfos = (TwoWindingsTransformerModificationInfos) modificationInfos;
77+
assignAttributes(twoWindingsTransformerModificationInfos);
78+
}
79+
80+
private void assignAttributes(TwoWindingsTransformerModificationInfos twoWindingsTransformerModificationInfos) {
81+
this.magnetizingConductance = new DoubleModificationEmbedded(twoWindingsTransformerModificationInfos.getMagnetizingConductance());
82+
this.magnetizingSusceptance = new DoubleModificationEmbedded(twoWindingsTransformerModificationInfos.getMagnetizingSusceptance());
83+
this.ratedVoltage1 = new DoubleModificationEmbedded(twoWindingsTransformerModificationInfos.getRatedVoltage1());
84+
this.ratedVoltage2 = new DoubleModificationEmbedded(twoWindingsTransformerModificationInfos.getRatedVoltage2());
85+
this.ratedS = new DoubleModificationEmbedded(twoWindingsTransformerModificationInfos.getRatedS());
86+
}
87+
88+
@Override
89+
public TwoWindingsTransformerModificationInfos toModificationInfos() {
90+
return toTwoWindingsTransformerModificationInfosBuilder().build();
91+
}
92+
93+
private TwoWindingsTransformerModificationInfos.TwoWindingsTransformerModificationInfosBuilder<?, ?> toTwoWindingsTransformerModificationInfosBuilder() {
94+
95+
TwoWindingsTransformerModificationInfos.TwoWindingsTransformerModificationInfosBuilder<?, ?> builder = TwoWindingsTransformerModificationInfos
96+
.builder()
97+
.uuid(getId())
98+
.date(getDate())
99+
.equipmentId(getEquipmentId())
100+
.equipmentName(AttributeModification.toAttributeModification(getEquipmentNameValue(), getEquipmentNameOp()))
101+
.seriesResistance(AttributeModification.toAttributeModification(getSeriesResistance()))
102+
.seriesReactance(AttributeModification.toAttributeModification(getSeriesReactance()))
103+
.magnetizingConductance(AttributeModification.toAttributeModification(getMagnetizingConductance()))
104+
.magnetizingSusceptance(AttributeModification.toAttributeModification(getMagnetizingSusceptance()))
105+
.ratedVoltage1(AttributeModification.toAttributeModification(getRatedVoltage1()))
106+
.ratedVoltage2(AttributeModification.toAttributeModification(getRatedVoltage2()))
107+
.ratedS(AttributeModification.toAttributeModification(getRatedS()));
108+
109+
if (getCurrentLimits1() != null) {
110+
builder.currentLimits1(getCurrentLimits1().toCurrentLimitsInfos());
111+
}
112+
if (getCurrentLimits2() != null) {
113+
builder.currentLimits2(getCurrentLimits2().toCurrentLimitsInfos());
114+
}
115+
116+
return builder;
117+
}
118+
}

0 commit comments

Comments
 (0)