From 0b767c37c1adede348a6d3614795bf81465e4a6b Mon Sep 17 00:00:00 2001 From: Franck LECUYER Date: Thu, 9 Feb 2023 17:45:36 +0100 Subject: [PATCH 1/2] Refactorization and homogeneization with iidm for 2WT and Lines Signed-off-by: Franck LECUYER --- .../server/dto/BranchCreationInfos.java | 25 +- .../server/dto/RegulatingTerminalInfos.java | 35 + .../server/dto/TapChangerCreationInfos.java | 10 +- .../TwoWindingsTransformerCreationInfos.java | 8 +- .../creation/BranchCreationEntity.java | 36 +- .../creation/LineCreationEntity.java | 20 +- .../TwoWindingsTransformerCreationEntity.java | 116 +-- .../LineAttachToVoltageLevel.java | 4 +- .../server/modifications/LineCreation.java | 12 +- .../modifications/ModificationUtils.java | 5 +- .../TwoWindingsTransformerCreation.java | 37 +- .../changelog_2023-02-09T12:30:40Z.xml | 43 + .../db/changelog/db.changelog-master.yaml | 3 + .../server/ModificationControllerTest.java | 8 +- .../LineAttachToNewVoltageLevelTest.java | 4 +- .../LineAttachToVoltageLevelTest.java | 4 +- .../LineCreationInBusBreakerTest.java | 32 +- .../LineCreationInMixedTypologyTest.java | 37 +- .../LineCreationInNodeBreakerTest.java | 92 ++- ...ingsTransformerCreationBusBreakerTest.java | 619 +++++++------- ...gsTransformerCreationMixedBreakerTest.java | 404 +++++----- ...ngsTransformerCreationNodeBreakerTest.java | 755 +++++++++--------- .../server/service/BuildTest.java | 125 +-- .../service/ModificationRepositoryTest.java | 101 ++- .../utils/MatcherLineCreationInfos.java | 4 +- ...erTwoWindingsTransformerCreationInfos.java | 41 +- 26 files changed, 1446 insertions(+), 1134 deletions(-) create mode 100644 src/main/java/org/gridsuite/modification/server/dto/RegulatingTerminalInfos.java create mode 100644 src/main/resources/db/changelog/changesets/changelog_2023-02-09T12:30:40Z.xml diff --git a/src/main/java/org/gridsuite/modification/server/dto/BranchCreationInfos.java b/src/main/java/org/gridsuite/modification/server/dto/BranchCreationInfos.java index c9d66f46e..de74b042e 100644 --- a/src/main/java/org/gridsuite/modification/server/dto/BranchCreationInfos.java +++ b/src/main/java/org/gridsuite/modification/server/dto/BranchCreationInfos.java @@ -6,7 +6,6 @@ */ package org.gridsuite.modification.server.dto; -import com.powsybl.iidm.network.extensions.ConnectablePosition; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.NoArgsConstructor; @@ -26,10 +25,10 @@ public class BranchCreationInfos extends EquipmentCreationInfos { @Schema(description = "Series resistance") - private double seriesResistance; + private double r; @Schema(description = "Series reactance") - private double seriesReactance; + private double x; @Schema(description = "Voltage level id Side 1") private String voltageLevelId1; @@ -49,21 +48,9 @@ public class BranchCreationInfos extends EquipmentCreationInfos { @Schema(description = "Current limits Side 2") private CurrentLimitsInfos currentLimits2; - @Schema(description = "Connection Name 1") - private String connectionName1; + @Schema(description = "Connectable position Side 1 (for substation diagram)") + private ConnectablePositionInfos position1; - @Schema(description = "Connection Direction 1") - private ConnectablePosition.Direction connectionDirection1; - - @Schema(description = "Connection Name 2") - private String connectionName2; - - @Schema(description = "Connection Direction 2") - private ConnectablePosition.Direction connectionDirection2; - - @Schema(description = "Connection position 1") - private Integer connectionPosition1; - - @Schema(description = "Connection position 2") - private Integer connectionPosition2; + @Schema(description = "Connectable position Side 2 (for substation diagram)") + private ConnectablePositionInfos position2; } diff --git a/src/main/java/org/gridsuite/modification/server/dto/RegulatingTerminalInfos.java b/src/main/java/org/gridsuite/modification/server/dto/RegulatingTerminalInfos.java new file mode 100644 index 000000000..74b7d6a8f --- /dev/null +++ b/src/main/java/org/gridsuite/modification/server/dto/RegulatingTerminalInfos.java @@ -0,0 +1,35 @@ +/** + * Copyright (c) 2023, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +package org.gridsuite.modification.server.dto; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author Franck Lecuyer + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +@JsonInclude(JsonInclude.Include.NON_NULL) +@Schema(description = "Regulating terminal infos") +public class RegulatingTerminalInfos { + + @Schema(description = "Equipment id") + private String id; + + @Schema(description = "Equipment type") + private String type; + + @Schema(description = "Voltage level id") + private String vlId; +} diff --git a/src/main/java/org/gridsuite/modification/server/dto/TapChangerCreationInfos.java b/src/main/java/org/gridsuite/modification/server/dto/TapChangerCreationInfos.java index 80c842313..8ed28ccc5 100644 --- a/src/main/java/org/gridsuite/modification/server/dto/TapChangerCreationInfos.java +++ b/src/main/java/org/gridsuite/modification/server/dto/TapChangerCreationInfos.java @@ -38,14 +38,8 @@ public class TapChangerCreationInfos { @Schema(description = "targetDeadband") private Double targetDeadband; - @Schema(description = "Regulating terminal equipment id") - private String regulatingTerminalId; - - @Schema(description = "Regulating terminal equipment type") - private String regulatingTerminalType; - - @Schema(description = "Regulating terminal voltage level id") - private String regulatingTerminalVlId; + @Schema(description = "Regulating terminal") + private RegulatingTerminalInfos regulatingTerminal; @Schema(description = "steps") private List steps; diff --git a/src/main/java/org/gridsuite/modification/server/dto/TwoWindingsTransformerCreationInfos.java b/src/main/java/org/gridsuite/modification/server/dto/TwoWindingsTransformerCreationInfos.java index f678d3631..df3ba0a28 100644 --- a/src/main/java/org/gridsuite/modification/server/dto/TwoWindingsTransformerCreationInfos.java +++ b/src/main/java/org/gridsuite/modification/server/dto/TwoWindingsTransformerCreationInfos.java @@ -33,16 +33,16 @@ public class TwoWindingsTransformerCreationInfos extends BranchCreationInfos { @Schema(description = "Magnetizing conductance") - private double magnetizingConductance; + private double g; @Schema(description = "Magnetizing susceptance") - private double magnetizingSusceptance; + private double b; @Schema(description = "side 1 rated voltage") - private double ratedVoltage1; + private double ratedU1; @Schema(description = "side 2 rated voltage") - private double ratedVoltage2; + private double ratedU2; @Schema(description = "Rated conductance in Siemens") private Double ratedS; diff --git a/src/main/java/org/gridsuite/modification/server/entities/equipment/creation/BranchCreationEntity.java b/src/main/java/org/gridsuite/modification/server/entities/equipment/creation/BranchCreationEntity.java index 4a5a697a3..091927f5f 100644 --- a/src/main/java/org/gridsuite/modification/server/entities/equipment/creation/BranchCreationEntity.java +++ b/src/main/java/org/gridsuite/modification/server/entities/equipment/creation/BranchCreationEntity.java @@ -22,11 +22,11 @@ @MappedSuperclass public class BranchCreationEntity extends EquipmentCreationEntity { - @Column(name = "seriesResistance") - private double seriesResistance; + @Column(name = "r") + private double r; - @Column(name = "seriesReactance") - private double seriesReactance; + @Column(name = "x") + private double x; @Column(name = "voltageLevelId1") private String voltageLevelId1; @@ -87,8 +87,8 @@ public void update(ModificationInfos modificationInfos) { } private void assignAttributes(BranchCreationInfos branchCreationInfos) { - seriesReactance = branchCreationInfos.getSeriesReactance(); - seriesResistance = branchCreationInfos.getSeriesResistance(); + x = branchCreationInfos.getX(); + r = branchCreationInfos.getR(); voltageLevelId1 = branchCreationInfos.getVoltageLevelId1(); voltageLevelId2 = branchCreationInfos.getVoltageLevelId2(); busOrBusbarSectionId1 = branchCreationInfos.getBusOrBusbarSectionId1(); @@ -103,11 +103,23 @@ private void assignAttributes(BranchCreationInfos branchCreationInfos) { } else { currentLimits2 = branchCreationInfos.getCurrentLimits2().toEntity(); } - connectionDirection1 = branchCreationInfos.getConnectionDirection1(); - connectionName1 = branchCreationInfos.getConnectionName1(); - connectionDirection2 = branchCreationInfos.getConnectionDirection2(); - connectionName2 = branchCreationInfos.getConnectionName2(); - connectionPosition1 = branchCreationInfos.getConnectionPosition1(); - connectionPosition2 = branchCreationInfos.getConnectionPosition2(); + connectionDirection1 = branchCreationInfos.getPosition1() != null + ? branchCreationInfos.getPosition1().getDirection() + : null; + connectionName1 = branchCreationInfos.getPosition1() != null + ? branchCreationInfos.getPosition1().getLabel() + : null; + connectionPosition1 = branchCreationInfos.getPosition1() != null + ? branchCreationInfos.getPosition1().getOrder() + : null; + connectionDirection2 = branchCreationInfos.getPosition2() != null + ? branchCreationInfos.getPosition2().getDirection() + : null; + connectionName2 = branchCreationInfos.getPosition2() != null + ? branchCreationInfos.getPosition2().getLabel() + : null; + connectionPosition2 = branchCreationInfos.getPosition2() != null + ? branchCreationInfos.getPosition2().getOrder() + : null; } } diff --git a/src/main/java/org/gridsuite/modification/server/entities/equipment/creation/LineCreationEntity.java b/src/main/java/org/gridsuite/modification/server/entities/equipment/creation/LineCreationEntity.java index b16a42c98..d90c1b118 100644 --- a/src/main/java/org/gridsuite/modification/server/entities/equipment/creation/LineCreationEntity.java +++ b/src/main/java/org/gridsuite/modification/server/entities/equipment/creation/LineCreationEntity.java @@ -8,6 +8,7 @@ import lombok.Getter; import lombok.NoArgsConstructor; +import org.gridsuite.modification.server.dto.ConnectablePositionInfos; import org.gridsuite.modification.server.dto.LineCreationInfos; import org.gridsuite.modification.server.dto.ModificationInfos; @@ -66,8 +67,8 @@ public LineCreationInfos toModificationInfos() { .date(getDate()) .id(getEquipmentId()) .name(getEquipmentName()) - .seriesResistance(getSeriesResistance()) - .seriesReactance(getSeriesReactance()) + .r(getR()) + .x(getX()) .shuntConductance1(getShuntConductance1()) .shuntSusceptance1(getShuntSusceptance1()) .shuntConductance2(getShuntConductance2()) @@ -76,13 +77,14 @@ public LineCreationInfos toModificationInfos() { .busOrBusbarSectionId1(getBusOrBusbarSectionId1()) .voltageLevelId2(getVoltageLevelId2()) .busOrBusbarSectionId2(getBusOrBusbarSectionId2()) - .connectionName1(getConnectionName1()) - .connectionDirection1(getConnectionDirection1()) - .connectionName2(getConnectionName2()) - .connectionDirection2(getConnectionDirection2()) - .connectionPosition1(getConnectionPosition1()) - .connectionPosition2(getConnectionPosition2()); - + .position1(ConnectablePositionInfos.builder() + .label(getConnectionName1()) + .direction(getConnectionDirection1()) + .order(getConnectionPosition1()).build()) + .position2(ConnectablePositionInfos.builder() + .label(getConnectionName2()) + .direction(getConnectionDirection2()) + .order(getConnectionPosition2()).build()); if (getCurrentLimits1() != null) { builder.currentLimits1(getCurrentLimits1().toCurrentLimitsInfos()); } diff --git a/src/main/java/org/gridsuite/modification/server/entities/equipment/creation/TwoWindingsTransformerCreationEntity.java b/src/main/java/org/gridsuite/modification/server/entities/equipment/creation/TwoWindingsTransformerCreationEntity.java index be84bc5e3..1c5e609c0 100644 --- a/src/main/java/org/gridsuite/modification/server/entities/equipment/creation/TwoWindingsTransformerCreationEntity.java +++ b/src/main/java/org/gridsuite/modification/server/entities/equipment/creation/TwoWindingsTransformerCreationEntity.java @@ -29,19 +29,19 @@ @PrimaryKeyJoinColumn(foreignKey = @ForeignKey(name = "twoWindingsTransformerCreation_id_fk_constraint")) public class TwoWindingsTransformerCreationEntity extends BranchCreationEntity { - @Column(name = "magnetizingConductance") - private double magnetizingConductance; + @Column(name = "g") + private double g; - @Column(name = "magnetizingSusceptance") - private double magnetizingSusceptance; + @Column(name = "b") + private double b; - @Column(name = "ratedVoltage1") - private double ratedVoltage1; + @Column(name = "ratedU1") + private double ratedU1; - @Column(name = "ratedVoltage2") - private double ratedVoltage2; + @Column(name = "ratedU2") + private double ratedU2; - @Column(name = "rateds") + @Column(name = "ratedS") private Double ratedS; @Column(name = "phasetapchangerlowtapposition") @@ -119,10 +119,10 @@ public TwoWindingsTransformerCreationEntity(TwoWindingsTransformerCreationInfos } private void assignAttributes(TwoWindingsTransformerCreationInfos twoWindingsTransformerCreationInfos) { - this.magnetizingConductance = twoWindingsTransformerCreationInfos.getMagnetizingConductance(); - this.magnetizingSusceptance = twoWindingsTransformerCreationInfos.getMagnetizingSusceptance(); - this.ratedVoltage1 = twoWindingsTransformerCreationInfos.getRatedVoltage1(); - this.ratedVoltage2 = twoWindingsTransformerCreationInfos.getRatedVoltage2(); + this.g = twoWindingsTransformerCreationInfos.getG(); + this.b = twoWindingsTransformerCreationInfos.getB(); + this.ratedU1 = twoWindingsTransformerCreationInfos.getRatedU1(); + this.ratedU2 = twoWindingsTransformerCreationInfos.getRatedU2(); this.ratedS = twoWindingsTransformerCreationInfos.getRatedS(); this.tapChangerSteps = new ArrayList<>(); assignTapChanger(twoWindingsTransformerCreationInfos); @@ -135,14 +135,20 @@ private void assignTapChanger(TwoWindingsTransformerCreationInfos twoWindingsTra private void assignRatioTapChanger(RatioTapChangerCreationInfos ratioTapChanger) { this.ratioTapChangerLowTapPosition = ratioTapChanger.getLowTapPosition(); - this.ratioTapChangerTapPosition = ratioTapChanger.getTapPosition(); + this.ratioTapChangerTapPosition = ratioTapChanger.getTapPosition(); this.ratioTapChangerRegulating = ratioTapChanger.isRegulating(); this.ratioTapChangerTargetDeadband = ratioTapChanger.getTargetDeadband(); - this.ratioTapChangerTerminalRefConnectableId = ratioTapChanger.getRegulatingTerminalId(); - this.ratioTapChangerTerminalRefVoltageLevelId = ratioTapChanger.getRegulatingTerminalVlId(); - this.ratioTapChangerTerminalRefType = ratioTapChanger.getRegulatingTerminalType(); + this.ratioTapChangerTerminalRefConnectableId = ratioTapChanger.getRegulatingTerminal() != null + ? ratioTapChanger.getRegulatingTerminal().getId() + : null; + this.ratioTapChangerTerminalRefVoltageLevelId = ratioTapChanger.getRegulatingTerminal() != null + ? ratioTapChanger.getRegulatingTerminal().getVlId() + : null; + this.ratioTapChangerTerminalRefType = ratioTapChanger.getRegulatingTerminal() != null + ? ratioTapChanger.getRegulatingTerminal().getType() + : null; this.ratioTapChangerLoadTapChangingCapabilities = ratioTapChanger.isLoadTapChangingCapabilities(); - this.ratioTapChangerTargetV = ratioTapChanger.getTargetV(); + this.ratioTapChangerTargetV = ratioTapChanger.getTargetV(); this.tapChangerSteps.addAll(TapChangerStepCreationEmbeddable.toEmbeddableRatioTapChangerSteps(ratioTapChanger.getSteps())); } @@ -151,9 +157,15 @@ private void assignPhaseTapChanger(PhaseTapChangerCreationInfos phaseTapChangerC this.phaseTapChangerTapPosition = phaseTapChangerCreationInfos.getTapPosition(); this.phaseTapChangerRegulating = phaseTapChangerCreationInfos.isRegulating(); this.phaseTapChangerTargetDeadband = phaseTapChangerCreationInfos.getTargetDeadband(); - this.phaseTapChangerTerminalRefConnectableId = phaseTapChangerCreationInfos.getRegulatingTerminalId(); - this.phaseTapChangerTerminalRefVoltageLevelId = phaseTapChangerCreationInfos.getRegulatingTerminalVlId(); - this.phaseTapChangerTerminalRefType = phaseTapChangerCreationInfos.getRegulatingTerminalType(); + this.phaseTapChangerTerminalRefConnectableId = phaseTapChangerCreationInfos.getRegulatingTerminal() != null + ? phaseTapChangerCreationInfos.getRegulatingTerminal().getId() + : null; + this.phaseTapChangerTerminalRefVoltageLevelId = phaseTapChangerCreationInfos.getRegulatingTerminal() != null + ? phaseTapChangerCreationInfos.getRegulatingTerminal().getVlId() + : null; + this.phaseTapChangerTerminalRefType = phaseTapChangerCreationInfos.getRegulatingTerminal() != null + ? phaseTapChangerCreationInfos.getRegulatingTerminal().getType() + : null; this.phaseTapChangerRegulationMode = phaseTapChangerCreationInfos.getRegulationMode(); this.phaseTapChangerRegulationValue = phaseTapChangerCreationInfos.getRegulationValue(); this.tapChangerSteps.addAll(TapChangerStepCreationEmbeddable.toEmbeddablePhaseTapChangerSteps(phaseTapChangerCreationInfos.getSteps())); @@ -173,28 +185,30 @@ public TwoWindingsTransformerCreationInfos toModificationInfos() { } TwoWindingsTransformerCreationInfos.TwoWindingsTransformerCreationInfosBuilder builder = TwoWindingsTransformerCreationInfos - .builder() - .uuid(getId()) - .date(getDate()) - .id(getEquipmentId()) - .name(getEquipmentName()) - .seriesResistance(getSeriesResistance()) - .seriesReactance(getSeriesReactance()) - .magnetizingConductance(getMagnetizingConductance()) - .magnetizingSusceptance(getMagnetizingSusceptance()) - .ratedVoltage1(getRatedVoltage1()) - .ratedVoltage2(getRatedVoltage2()) - .ratedS(getRatedS()) - .voltageLevelId1(getVoltageLevelId1()) - .busOrBusbarSectionId1(getBusOrBusbarSectionId1()) - .voltageLevelId2(getVoltageLevelId2()) - .busOrBusbarSectionId2(getBusOrBusbarSectionId2()) - .connectionName1(getConnectionName1()) - .connectionDirection1(getConnectionDirection1()) - .connectionName2(getConnectionName2()) - .connectionDirection2(getConnectionDirection2()) - .connectionPosition1(getConnectionPosition1()) - .connectionPosition2(getConnectionPosition2()); + .builder() + .uuid(getId()) + .date(getDate()) + .id(getEquipmentId()) + .name(getEquipmentName()) + .r(getR()) + .x(getX()) + .g(getG()) + .b(getB()) + .ratedU1(getRatedU1()) + .ratedU2(getRatedU2()) + .ratedS(getRatedS()) + .voltageLevelId1(getVoltageLevelId1()) + .busOrBusbarSectionId1(getBusOrBusbarSectionId1()) + .voltageLevelId2(getVoltageLevelId2()) + .busOrBusbarSectionId2(getBusOrBusbarSectionId2()) + .position1(ConnectablePositionInfos.builder() + .label(getConnectionName1()) + .direction(getConnectionDirection1()) + .order(getConnectionPosition1()).build()) + .position2(ConnectablePositionInfos.builder() + .label(getConnectionName2()) + .direction(getConnectionDirection2()) + .order(getConnectionPosition2()).build()); if (getCurrentLimits1() != null) { builder.currentLimits1(getCurrentLimits1().toCurrentLimitsInfos()); @@ -212,9 +226,11 @@ public TwoWindingsTransformerCreationInfos toModificationInfos() { .regulating(getRatioTapChangerRegulating()) .loadTapChangingCapabilities(getRatioTapChangerLoadTapChangingCapabilities()) .targetV(getRatioTapChangerTargetV()) - .regulatingTerminalId(getRatioTapChangerTerminalRefConnectableId()) - .regulatingTerminalVlId(getRatioTapChangerTerminalRefVoltageLevelId()) - .regulatingTerminalType(getRatioTapChangerTerminalRefType()) + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id(getRatioTapChangerTerminalRefConnectableId()) + .vlId(getRatioTapChangerTerminalRefVoltageLevelId()) + .type(getRatioTapChangerTerminalRefType()) + .build()) .steps(ratioTapChangerStepCreationInfos) .build()); } @@ -228,9 +244,11 @@ public TwoWindingsTransformerCreationInfos toModificationInfos() { .regulating(getPhaseTapChangerRegulating()) .regulationMode(getPhaseTapChangerRegulationMode()) .regulationValue(getPhaseTapChangerRegulationValue()) - .regulatingTerminalId(getPhaseTapChangerTerminalRefConnectableId()) - .regulatingTerminalVlId(getPhaseTapChangerTerminalRefVoltageLevelId()) - .regulatingTerminalType(getPhaseTapChangerTerminalRefType()) + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id(getPhaseTapChangerTerminalRefConnectableId()) + .vlId(getPhaseTapChangerTerminalRefVoltageLevelId()) + .type(getPhaseTapChangerTerminalRefType()) + .build()) .steps(phaseTapChangerStepCreationInfos) .build()); } diff --git a/src/main/java/org/gridsuite/modification/server/modifications/LineAttachToVoltageLevel.java b/src/main/java/org/gridsuite/modification/server/modifications/LineAttachToVoltageLevel.java index 3618d1d7e..622d81ac9 100644 --- a/src/main/java/org/gridsuite/modification/server/modifications/LineAttachToVoltageLevel.java +++ b/src/main/java/org/gridsuite/modification/server/modifications/LineAttachToVoltageLevel.java @@ -51,8 +51,8 @@ public void apply(Network network, Reporter subReporter) { LineAdder lineAdder = network.newLine() .setId(attachmentLineInfos.getId()) .setName(attachmentLineInfos.getName()) - .setR(attachmentLineInfos.getSeriesResistance()) - .setX(attachmentLineInfos.getSeriesReactance()) + .setR(attachmentLineInfos.getR()) + .setX(attachmentLineInfos.getX()) .setG1(ModificationUtils.getInstance().zeroIfNull(attachmentLineInfos.getShuntConductance1())) .setB1(ModificationUtils.getInstance().zeroIfNull(attachmentLineInfos.getShuntSusceptance1())) .setG2(ModificationUtils.getInstance().zeroIfNull(attachmentLineInfos.getShuntConductance2())) diff --git a/src/main/java/org/gridsuite/modification/server/modifications/LineCreation.java b/src/main/java/org/gridsuite/modification/server/modifications/LineCreation.java index 24b668fee..2fd90a63e 100644 --- a/src/main/java/org/gridsuite/modification/server/modifications/LineCreation.java +++ b/src/main/java/org/gridsuite/modification/server/modifications/LineCreation.java @@ -39,16 +39,16 @@ public void apply(Network network, Reporter subReporter) { if (voltageLevel1.getTopologyKind() == TopologyKind.NODE_BREAKER && voltageLevel2.getTopologyKind() == TopologyKind.NODE_BREAKER) { LineAdder lineAdder = ModificationUtils.getInstance().createLineAdder(network, voltageLevel1, voltageLevel2, modificationInfos, false, false); - var position1 = modificationInfos.getConnectionPosition1() != null ? modificationInfos.getConnectionPosition1() : ModificationUtils.getInstance().getPosition(modificationInfos.getBusOrBusbarSectionId1(), network, voltageLevel1); - var position2 = modificationInfos.getConnectionPosition2() != null ? modificationInfos.getConnectionPosition2() : ModificationUtils.getInstance().getPosition(modificationInfos.getBusOrBusbarSectionId2(), network, voltageLevel2); + var position1 = modificationInfos.getPosition1() != null && modificationInfos.getPosition1().getOrder() != null ? modificationInfos.getPosition1().getOrder() : ModificationUtils.getInstance().getPosition(modificationInfos.getBusOrBusbarSectionId1(), network, voltageLevel1); + var position2 = modificationInfos.getPosition2() != null && modificationInfos.getPosition2().getOrder() != null ? modificationInfos.getPosition2().getOrder() : ModificationUtils.getInstance().getPosition(modificationInfos.getBusOrBusbarSectionId2(), network, voltageLevel2); CreateBranchFeederBays algo = new CreateBranchFeederBaysBuilder() .withBbsId1(modificationInfos.getBusOrBusbarSectionId1()) .withBbsId2(modificationInfos.getBusOrBusbarSectionId2()) - .withFeederName1(modificationInfos.getConnectionName1() != null ? modificationInfos.getConnectionName1() : modificationInfos.getId()) - .withFeederName2(modificationInfos.getConnectionName2() != null ? modificationInfos.getConnectionName2() : modificationInfos.getId()) - .withDirection1(modificationInfos.getConnectionDirection1()) - .withDirection2(modificationInfos.getConnectionDirection2()) + .withFeederName1(modificationInfos.getPosition1() != null && modificationInfos.getPosition1().getLabel() != null ? modificationInfos.getPosition1().getLabel() : modificationInfos.getId()) + .withFeederName2(modificationInfos.getPosition2() != null && modificationInfos.getPosition2().getLabel() != null ? modificationInfos.getPosition2().getLabel() : modificationInfos.getId()) + .withDirection1(modificationInfos.getPosition1() != null ? modificationInfos.getPosition1().getDirection() : null) + .withDirection2(modificationInfos.getPosition2() != null ? modificationInfos.getPosition2().getDirection() : null) .withPositionOrder1(position1) .withPositionOrder2(position2) .withBranchAdder(lineAdder).build(); diff --git a/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java b/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java index c483bb7d5..b0bf2c0bc 100644 --- a/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java +++ b/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java @@ -281,15 +281,14 @@ void createVoltageLevel(VoltageLevelCreationInfos voltageLevelCreationInfos, } public LineAdder createLineAdder(Network network, VoltageLevel voltageLevel1, VoltageLevel voltageLevel2, LineCreationInfos lineCreationInfos, boolean withSwitch1, boolean withSwitch2) { - // common settings LineAdder lineAdder = network.newLine() .setId(lineCreationInfos.getId()) .setName(lineCreationInfos.getName()) .setVoltageLevel1(lineCreationInfos.getVoltageLevelId1()) .setVoltageLevel2(lineCreationInfos.getVoltageLevelId2()) - .setR(lineCreationInfos.getSeriesResistance()) - .setX(lineCreationInfos.getSeriesReactance()) + .setR(lineCreationInfos.getR()) + .setX(lineCreationInfos.getX()) .setG1(lineCreationInfos.getShuntConductance1() != null ? lineCreationInfos.getShuntConductance1() : 0.0) .setB1(lineCreationInfos.getShuntSusceptance1() != null ? lineCreationInfos.getShuntSusceptance1() : 0.0) .setG2(lineCreationInfos.getShuntConductance2() != null ? lineCreationInfos.getShuntConductance2() : 0.0) diff --git a/src/main/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreation.java b/src/main/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreation.java index 4463283fa..216e6606d 100644 --- a/src/main/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreation.java +++ b/src/main/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreation.java @@ -35,22 +35,21 @@ public void apply(Network network, Reporter subReporter) { // Create 2wt in bus/mixed breaker create2WTInOtherBreaker(network, voltageLevel1, voltageLevel2, modificationInfos, true, true, subReporter); } - } private void create2WTInNodeBreaker(Network network, VoltageLevel voltageLevel1, VoltageLevel voltageLevel2, Reporter subReporter) { var twoWindingsTransformerAdder = createTwoWindingsTransformerAdder(network, voltageLevel1, voltageLevel2, modificationInfos, false, false); - var position1 = modificationInfos.getConnectionPosition1() != null ? modificationInfos.getConnectionPosition1() : ModificationUtils.getInstance().getPosition(modificationInfos.getBusOrBusbarSectionId1(), network, voltageLevel1); - var position2 = modificationInfos.getConnectionPosition2() != null ? modificationInfos.getConnectionPosition2() : ModificationUtils.getInstance().getPosition(modificationInfos.getBusOrBusbarSectionId2(), network, voltageLevel2); + var position1 = modificationInfos.getPosition1() != null && modificationInfos.getPosition1().getOrder() != null ? modificationInfos.getPosition1().getOrder() : ModificationUtils.getInstance().getPosition(modificationInfos.getBusOrBusbarSectionId1(), network, voltageLevel1); + var position2 = modificationInfos.getPosition2() != null && modificationInfos.getPosition2().getOrder() != null ? modificationInfos.getPosition2().getOrder() : ModificationUtils.getInstance().getPosition(modificationInfos.getBusOrBusbarSectionId2(), network, voltageLevel2); CreateBranchFeederBays algo = new CreateBranchFeederBaysBuilder() .withBbsId1(modificationInfos.getBusOrBusbarSectionId1()) .withBbsId2(modificationInfos.getBusOrBusbarSectionId2()) - .withFeederName1(modificationInfos.getConnectionName1() != null ? modificationInfos.getConnectionName1() : modificationInfos.getId()) - .withFeederName2(modificationInfos.getConnectionName2() != null ? modificationInfos.getConnectionName2() : modificationInfos.getId()) - .withDirection1(modificationInfos.getConnectionDirection1()) - .withDirection2(modificationInfos.getConnectionDirection2()) + .withFeederName1(modificationInfos.getPosition1() != null && modificationInfos.getPosition1().getLabel() != null ? modificationInfos.getPosition1().getLabel() : modificationInfos.getId()) + .withFeederName2(modificationInfos.getPosition2() != null && modificationInfos.getPosition2().getLabel() != null ? modificationInfos.getPosition2().getLabel() : modificationInfos.getId()) + .withDirection1(modificationInfos.getPosition1() != null ? modificationInfos.getPosition1().getDirection() : null) + .withDirection2(modificationInfos.getPosition2() != null ? modificationInfos.getPosition2().getDirection() : null) .withPositionOrder1(position1) .withPositionOrder2(position2) .withBranchAdder(twoWindingsTransformerAdder).build(); @@ -79,12 +78,12 @@ private TwoWindingsTransformerAdder createTwoWindingsTransformerAdder(Network ne .setName(twoWindingsTransformerCreationInfos.getName()) .setVoltageLevel1(twoWindingsTransformerCreationInfos.getVoltageLevelId1()) .setVoltageLevel2(twoWindingsTransformerCreationInfos.getVoltageLevelId2()) - .setG(twoWindingsTransformerCreationInfos.getMagnetizingConductance()) - .setB(twoWindingsTransformerCreationInfos.getMagnetizingSusceptance()) - .setR(twoWindingsTransformerCreationInfos.getSeriesResistance()) - .setX(twoWindingsTransformerCreationInfos.getSeriesReactance()) - .setRatedU1(twoWindingsTransformerCreationInfos.getRatedVoltage1()) - .setRatedU2(twoWindingsTransformerCreationInfos.getRatedVoltage2()); + .setG(twoWindingsTransformerCreationInfos.getG()) + .setB(twoWindingsTransformerCreationInfos.getB()) + .setR(twoWindingsTransformerCreationInfos.getR()) + .setX(twoWindingsTransformerCreationInfos.getX()) + .setRatedU1(twoWindingsTransformerCreationInfos.getRatedU1()) + .setRatedU2(twoWindingsTransformerCreationInfos.getRatedU2()); if (twoWindingsTransformerCreationInfos.getRatedS() != null) { twoWindingsTransformerAdder.setRatedS(twoWindingsTransformerCreationInfos.getRatedS()); @@ -111,9 +110,9 @@ private void addPhaseTapChangersToTwoWindingsTransformer(Network network, TwoWin PhaseTapChangerCreationInfos phaseTapChangerInfos = twoWindingsTransformerCreationInfos.getPhaseTapChanger(); PhaseTapChangerAdder phaseTapChangerAdder = twt.newPhaseTapChanger(); Terminal terminal = ModificationUtils.getInstance().getTerminalFromIdentifiable(network, - phaseTapChangerInfos.getRegulatingTerminalId(), - phaseTapChangerInfos.getRegulatingTerminalType(), - phaseTapChangerInfos.getRegulatingTerminalVlId()); + phaseTapChangerInfos.getRegulatingTerminal() != null ? phaseTapChangerInfos.getRegulatingTerminal().getId() : null, + phaseTapChangerInfos.getRegulatingTerminal() != null ? phaseTapChangerInfos.getRegulatingTerminal().getType() : null, + phaseTapChangerInfos.getRegulatingTerminal() != null ? phaseTapChangerInfos.getRegulatingTerminal().getVlId() : null); if (phaseTapChangerInfos.isRegulating()) { phaseTapChangerAdder.setRegulationValue(phaseTapChangerInfos.getRegulationValue()) @@ -139,9 +138,9 @@ private void addRatioTapChangersToTwoWindingsTransformer(Network network, TwoWin RatioTapChangerCreationInfos ratioTapChangerInfos = twoWindingsTransformerCreationInfos.getRatioTapChanger(); RatioTapChangerAdder ratioTapChangerAdder = twt.newRatioTapChanger(); Terminal terminal = ModificationUtils.getInstance().getTerminalFromIdentifiable(network, - ratioTapChangerInfos.getRegulatingTerminalId(), - ratioTapChangerInfos.getRegulatingTerminalType(), - ratioTapChangerInfos.getRegulatingTerminalVlId()); + ratioTapChangerInfos.getRegulatingTerminal() != null ? ratioTapChangerInfos.getRegulatingTerminal().getId() : null, + ratioTapChangerInfos.getRegulatingTerminal() != null ? ratioTapChangerInfos.getRegulatingTerminal().getType() : null, + ratioTapChangerInfos.getRegulatingTerminal() != null ? ratioTapChangerInfos.getRegulatingTerminal().getVlId() : null); if (ratioTapChangerInfos.isRegulating()) { ratioTapChangerAdder.setTargetV(ratioTapChangerInfos.getTargetV()) diff --git a/src/main/resources/db/changelog/changesets/changelog_2023-02-09T12:30:40Z.xml b/src/main/resources/db/changelog/changesets/changelog_2023-02-09T12:30:40Z.xml new file mode 100644 index 000000000..98bff69e0 --- /dev/null +++ b/src/main/resources/db/changelog/changesets/changelog_2023-02-09T12:30:40Z.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/db/changelog/db.changelog-master.yaml b/src/main/resources/db/changelog/db.changelog-master.yaml index 7532cc5e2..dc986aa10 100644 --- a/src/main/resources/db/changelog/db.changelog-master.yaml +++ b/src/main/resources/db/changelog/db.changelog-master.yaml @@ -99,3 +99,6 @@ databaseChangeLog: - include: file: changesets/changelog_2023-01-31T14:01:19Z.xml relativeToChangelogFile: true + - include: + file: changesets/changelog_2023-02-09T12:30:40Z.xml + relativeToChangelogFile: true diff --git a/src/test/java/org/gridsuite/modification/server/ModificationControllerTest.java b/src/test/java/org/gridsuite/modification/server/ModificationControllerTest.java index 6ca44f517..523a75567 100644 --- a/src/test/java/org/gridsuite/modification/server/ModificationControllerTest.java +++ b/src/test/java/org/gridsuite/modification/server/ModificationControllerTest.java @@ -622,8 +622,8 @@ public void testDuplicateModificationGroup() throws Exception { LineCreationInfos lineCreationInfos = LineCreationInfos.builder() .id("idLine1") .name("nameLine1") - .seriesResistance(100.0) - .seriesReactance(100.0) + .r(100.0) + .x(100.0) .shuntConductance1(10.0) .shuntSusceptance1(10.0) .shuntConductance2(20.0) @@ -652,8 +652,8 @@ public void testDuplicateModificationGroup() throws Exception { //create a lineAttached LineCreationInfos attachmentLine = LineCreationInfos.builder() .id("attachmentLine") - .seriesResistance(50.6) - .seriesReactance(25.3) + .r(50.6) + .x(25.3) .build(); LineAttachToVoltageLevelInfos lineAttachToVL = new LineAttachToVoltageLevelInfos("line3", diff --git a/src/test/java/org/gridsuite/modification/server/modifications/LineAttachToNewVoltageLevelTest.java b/src/test/java/org/gridsuite/modification/server/modifications/LineAttachToNewVoltageLevelTest.java index 6f1c00532..1c0ae273b 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/LineAttachToNewVoltageLevelTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/LineAttachToNewVoltageLevelTest.java @@ -26,8 +26,8 @@ public class LineAttachToNewVoltageLevelTest extends AbstractNetworkModification private LineCreationInfos getAttachmentLine() { return LineCreationInfos.builder() .id("attachmentLine") - .seriesResistance(50.6) - .seriesReactance(25.3) + .r(50.6) + .x(25.3) .build(); } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/LineAttachToVoltageLevelTest.java b/src/test/java/org/gridsuite/modification/server/modifications/LineAttachToVoltageLevelTest.java index def616b94..44a97d4be 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/LineAttachToVoltageLevelTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/LineAttachToVoltageLevelTest.java @@ -35,8 +35,8 @@ public class LineAttachToVoltageLevelTest extends AbstractNetworkModificationTes private LineCreationInfos getAttachmentLine(String lineName) { return LineCreationInfos.builder() .id(lineName) - .seriesResistance(50.6) - .seriesReactance(25.3) + .r(50.6) + .x(25.3) .build(); } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInBusBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInBusBreakerTest.java index 44f0d358e..43c0308a5 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInBusBreakerTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInBusBreakerTest.java @@ -52,8 +52,8 @@ public void testCreateLineOptionalParameters() { LineCreationInfos lineCreationInfosNoShunt = LineCreationInfos.builder() .id("idLine1") .name("nameLine1") - .seriesResistance(100.0) - .seriesReactance(100.0) + .r(100.0) + .x(100.0) .voltageLevelId1("v1") .busOrBusbarSectionId1("bus1") .voltageLevelId2("v2") @@ -76,8 +76,8 @@ public void testCreateLineOptionalParameters2() { LineCreationInfos lineCreationInfosNoShunt = LineCreationInfos.builder() .id("idLine1") .name("nameLine1") - .seriesResistance(100.0) - .seriesReactance(100.0) + .r(100.0) + .x(100.0) .voltageLevelId1("v1") .busOrBusbarSectionId1("bus1") .voltageLevelId2("v2") @@ -104,8 +104,8 @@ public void testCreateLineOptionalParameters3() { LineCreationInfos lineCreationInfosPermanentLimitOK = LineCreationInfos.builder() .id("idLine2") .name("nameLine2") - .seriesResistance(100.0) - .seriesReactance(100.0) + .r(100.0) + .x(100.0) .voltageLevelId1("v1") .busOrBusbarSectionId1("bus1") .voltageLevelId2("v2") @@ -129,8 +129,8 @@ public void testCreateLineOptionalParameters4() { LineCreationInfos lineCreationInfosPermanentLimitOK = LineCreationInfos.builder() .id("idLine2") .name("nameLine2") - .seriesResistance(100.0) - .seriesReactance(100.0) + .r(100.0) + .x(100.0) .voltageLevelId1("v1") .busOrBusbarSectionId1("bus1") .voltageLevelId2("v2") @@ -159,8 +159,8 @@ public void testCreateLineOptionalParameters5() { LineCreationInfos lineCreationInfosPermanentLimitNOK = LineCreationInfos.builder() .id("idLine2") .name("nameLine2") - .seriesResistance(100.0) - .seriesReactance(100.0) + .r(100.0) + .x(100.0) .voltageLevelId1("v1") .busOrBusbarSectionId1("bus1") .voltageLevelId2("v2") @@ -180,8 +180,8 @@ public void testCreateLineOptionalParameters6() { LineCreationInfos lineCreationInfosOK = LineCreationInfos.builder() .id("idLine3") .name("nameLine3") - .seriesResistance(100.0) - .seriesReactance(100.0) + .r(100.0) + .x(100.0) .voltageLevelId1("v1") .busOrBusbarSectionId1("bus1") .voltageLevelId2("v2") @@ -207,8 +207,8 @@ protected ModificationInfos buildModification() { return LineCreationInfos.builder() .id("idLine1") .name("nameLine1") - .seriesResistance(100.0) - .seriesReactance(100.0) + .r(100.0) + .x(100.0) .shuntConductance1(10.0) .shuntSusceptance1(10.0) .shuntConductance2(20.0) @@ -227,8 +227,8 @@ protected ModificationInfos buildModificationUpdate() { return LineCreationInfos.builder() .id("idLineEdited1") .name("nameLineEdited1") - .seriesResistance(200.0) - .seriesReactance(200.0) + .r(200.0) + .x(200.0) .shuntConductance1(20.0) .shuntSusceptance1(20.0) .shuntConductance2(30.0) diff --git a/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInMixedTypologyTest.java b/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInMixedTypologyTest.java index ca5df6825..df455c369 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInMixedTypologyTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInMixedTypologyTest.java @@ -9,6 +9,7 @@ import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.extensions.ConnectablePosition; +import org.gridsuite.modification.server.dto.ConnectablePositionInfos; import org.gridsuite.modification.server.dto.LineCreationInfos; import org.gridsuite.modification.server.dto.ModificationInfos; import org.gridsuite.modification.server.utils.MatcherLineCreationInfos; @@ -35,8 +36,8 @@ protected ModificationInfos buildModification() { return LineCreationInfos.builder() .id("idLine1") .name("nameLine1") - .seriesResistance(100.0) - .seriesReactance(100.0) + .r(100.0) + .x(100.0) .shuntConductance1(10.0) .shuntSusceptance1(10.0) .shuntConductance2(20.0) @@ -45,12 +46,14 @@ protected ModificationInfos buildModification() { .busOrBusbarSectionId1("1.1") .voltageLevelId2("v2") .busOrBusbarSectionId2("bus2") - .connectionName1("cn1Line1") - .connectionDirection1(ConnectablePosition.Direction.TOP) - .connectionName2("cn2Line1") - .connectionDirection2(ConnectablePosition.Direction.TOP) - .connectionPosition1(0) - .connectionPosition2(0) + .position1(ConnectablePositionInfos.builder() + .label("cn1Line1") + .direction(ConnectablePosition.Direction.TOP) + .order(0).build()) + .position2(ConnectablePositionInfos.builder() + .label("cn2Line1") + .direction(ConnectablePosition.Direction.TOP) + .order(0).build()) .build(); } @@ -59,8 +62,8 @@ protected ModificationInfos buildModificationUpdate() { return LineCreationInfos.builder() .id("idLineEdited1") .name("nameLineEdited1") - .seriesResistance(200.0) - .seriesReactance(200.0) + .r(200.0) + .x(200.0) .shuntConductance1(20.0) .shuntSusceptance1(20.0) .shuntConductance2(30.0) @@ -69,12 +72,14 @@ protected ModificationInfos buildModificationUpdate() { .busOrBusbarSectionId1("2.1") .voltageLevelId2("v3") .busOrBusbarSectionId2("bus3") - .connectionName1("cn3Line1") - .connectionDirection1(ConnectablePosition.Direction.BOTTOM) - .connectionName2("cn4Line1") - .connectionDirection2(ConnectablePosition.Direction.BOTTOM) - .connectionPosition1(0) - .connectionPosition2(0) + .position1(ConnectablePositionInfos.builder() + .label("cn3Line1") + .direction(ConnectablePosition.Direction.BOTTOM) + .order(0).build()) + .position2(ConnectablePositionInfos.builder() + .label("cn4Line1") + .direction(ConnectablePosition.Direction.BOTTOM) + .order(0).build()) .build(); } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInNodeBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInNodeBreakerTest.java index 1d5a94534..9dc7addc9 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInNodeBreakerTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInNodeBreakerTest.java @@ -12,6 +12,7 @@ import com.powsybl.iidm.network.extensions.ConnectablePosition; import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; +import org.gridsuite.modification.server.dto.ConnectablePositionInfos; import org.gridsuite.modification.server.dto.CurrentLimitsInfos; import org.gridsuite.modification.server.dto.EquipmentModificationInfos; import org.gridsuite.modification.server.dto.LineCreationInfos; @@ -86,7 +87,7 @@ public void testCreateWithErrors() { lineCreationInfos.setVoltageLevelId1("v1"); lineCreationInfos.setBusOrBusbarSectionId1("1.1"); - lineCreationInfos.setSeriesResistance(Double.NaN); + lineCreationInfos.setR(Double.NaN); lineCreationInfosJson = mapper.writeValueAsString(lineCreationInfos); mockMvc.perform(post(getNetworkModificationUri()).content(lineCreationInfosJson).contentType(MediaType.APPLICATION_JSON)) .andExpectAll( @@ -94,8 +95,8 @@ public void testCreateWithErrors() { content().string(new NetworkModificationException(CREATE_LINE_ERROR, "AC Line 'idLine4': r is invalid").getMessage()) ); - lineCreationInfos.setSeriesResistance(100.0); - lineCreationInfos.setSeriesReactance(Double.NaN); + lineCreationInfos.setR(100.0); + lineCreationInfos.setX(Double.NaN); lineCreationInfosJson = mapper.writeValueAsString(lineCreationInfos); mockMvc.perform(post(getNetworkModificationUri()).content(lineCreationInfosJson).contentType(MediaType.APPLICATION_JSON)) .andExpectAll( @@ -112,51 +113,56 @@ protected Network createNetwork(UUID networkUuid) { @Override protected ModificationInfos buildModification() { return LineCreationInfos.builder() - .id("idLine") - .name("nameLine") - .seriesResistance(100.0) - .seriesReactance(100.0) - .shuntConductance1(10.0) - .shuntSusceptance1(10.0) - .shuntConductance2(20.0) - .shuntSusceptance2(20.0) - .voltageLevelId1("v1") - .busOrBusbarSectionId1("1.1") - .voltageLevelId2("v2") - .busOrBusbarSectionId2("1A") - .connectionName1("cn1Line") - .connectionDirection1(ConnectablePosition.Direction.TOP) - .connectionName2("cn2Line") - .connectionDirection2(ConnectablePosition.Direction.BOTTOM) - .connectionPosition1(0) - .connectionPosition2(0) - .build(); + .id("idLine") + .name("nameLine") + .r(100.0) + .x(100.0) + .shuntConductance1(10.0) + .shuntSusceptance1(10.0) + .shuntConductance2(20.0) + .shuntSusceptance2(20.0) + .voltageLevelId1("v1") + .busOrBusbarSectionId1("1.1") + .voltageLevelId2("v2") + .busOrBusbarSectionId2("1A") + + .position1(ConnectablePositionInfos.builder() + .label("cn1Line") + .direction(ConnectablePosition.Direction.TOP) + .order(0).build()) + .position2(ConnectablePositionInfos.builder() + .label("cn2Line") + .direction(ConnectablePosition.Direction.BOTTOM) + .order(0).build()) + .build(); } @Override protected ModificationInfos buildModificationUpdate() { return LineCreationInfos.builder() - .id("idLineEdited") - .name("nameLineEdited") - .seriesResistance(110.0) - .seriesReactance(110.0) - .shuntConductance1(15.0) - .shuntSusceptance1(15.0) - .shuntConductance2(25.0) - .shuntSusceptance2(25.0) - .voltageLevelId1("v2") - .busOrBusbarSectionId1("1A") - .voltageLevelId2("v1") - .busOrBusbarSectionId2("1.1") - .currentLimits1(CurrentLimitsInfos.builder().permanentLimit(5.).build()) - .currentLimits2(CurrentLimitsInfos.builder().permanentLimit(5.).build()) - .connectionName1("cn1LineEdited") - .connectionDirection1(ConnectablePosition.Direction.BOTTOM) - .connectionName2("cn2LineEdited") - .connectionDirection2(ConnectablePosition.Direction.TOP) - .connectionPosition1(0) - .connectionPosition2(0) - .build(); + .id("idLineEdited") + .name("nameLineEdited") + .r(110.0) + .x(110.0) + .shuntConductance1(15.0) + .shuntSusceptance1(15.0) + .shuntConductance2(25.0) + .shuntSusceptance2(25.0) + .voltageLevelId1("v2") + .busOrBusbarSectionId1("1A") + .voltageLevelId2("v1") + .busOrBusbarSectionId2("1.1") + .currentLimits1(CurrentLimitsInfos.builder().permanentLimit(5.).build()) + .currentLimits2(CurrentLimitsInfos.builder().permanentLimit(5.).build()) + .position1(ConnectablePositionInfos.builder() + .label("cn1LineEdited") + .direction(ConnectablePosition.Direction.BOTTOM) + .order(0).build()) + .position2(ConnectablePositionInfos.builder() + .label("cn2LineEdited") + .direction(ConnectablePosition.Direction.TOP) + .order(0).build()) + .build(); } @Override diff --git a/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationBusBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationBusBreakerTest.java index bdd08667c..22f8578c3 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationBusBreakerTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationBusBreakerTest.java @@ -41,211 +41,227 @@ protected Network createNetwork(UUID networkUuid) { @Override protected ModificationInfos buildModification() { return TwoWindingsTransformerCreationInfos.builder() - .id("new2wt") - .name("new2wt") - .seriesResistance(1.) - .seriesReactance(2.) - .magnetizingConductance(3.) - .magnetizingSusceptance(4.) - .ratedVoltage1(5.) - .ratedVoltage2(6.) - .ratedS(1.) - .voltageLevelId1("v1") - .busOrBusbarSectionId1("bus1") - .voltageLevelId2("v12") - .busOrBusbarSectionId2("bus12") - .currentLimits1(CurrentLimitsInfos.builder().permanentLimit(3.).build()) - .currentLimits2(CurrentLimitsInfos.builder().permanentLimit(2.).build()) - .connectionName1("cn201") - .connectionDirection1(ConnectablePosition.Direction.TOP) - .connectionName2("cn202") - .connectionDirection2(ConnectablePosition.Direction.TOP) - .phaseTapChanger(PhaseTapChangerCreationInfos.builder() - .lowTapPosition(1) - .tapPosition(2) - .regulatingTerminalId("idGenerator1") - .regulatingTerminalVlId("v1") - .regulating(false) - .regulatingTerminalType("GENERATOR") - .regulationMode(PhaseTapChanger.RegulationMode.CURRENT_LIMITER) - .steps(List.of(TapChangerStepCreationInfos.builder() - .index(1) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .alpha(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(2) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .alpha(0.) - .build(), - TapChangerStepCreationInfos.builder() - .index(3) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .alpha(0.) - .build() - )).build()) - .ratioTapChanger(RatioTapChangerCreationInfos.builder() - .lowTapPosition(5) - .tapPosition(6) - .regulating(true) - .targetDeadband(1.) - .regulatingTerminalId("idGenerator1") - .regulatingTerminalVlId("v2") - .regulatingTerminalType("GENERATOR") - .loadTapChangingCapabilities(true) - .targetV(5.) - .steps(List.of(TapChangerStepCreationInfos.builder() - .index(5) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(6) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(7) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(8) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build() - )) - .build()) - .build(); + .id("new2wt") + .name("new2wt") + .r(1.) + .x(2.) + .g(3.) + .b(4.) + .ratedU1(5.) + .ratedU2(6.) + .ratedS(1.) + .voltageLevelId1("v1") + .busOrBusbarSectionId1("bus1") + .voltageLevelId2("v12") + .busOrBusbarSectionId2("bus12") + .currentLimits1(CurrentLimitsInfos.builder().permanentLimit(3.).build()) + .currentLimits2(CurrentLimitsInfos.builder().permanentLimit(2.).build()) + .position1(ConnectablePositionInfos.builder() + .label("cn201") + .direction(ConnectablePosition.Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .label("cn202") + .direction(ConnectablePosition.Direction.TOP).build()) + .phaseTapChanger(PhaseTapChangerCreationInfos.builder() + .lowTapPosition(1) + .tapPosition(2) + .regulating(false) + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("idGenerator1") + .vlId("v1") + .type("GENERATOR").build()) + + .regulationMode(PhaseTapChanger.RegulationMode.CURRENT_LIMITER) + .steps(List.of(TapChangerStepCreationInfos.builder() + .index(1) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .alpha(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(2) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .alpha(0.) + .build(), + TapChangerStepCreationInfos.builder() + .index(3) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .alpha(0.) + .build() + )).build()) + .ratioTapChanger(RatioTapChangerCreationInfos.builder() + .lowTapPosition(5) + .tapPosition(6) + .regulating(true) + .targetDeadband(1.) + + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("idGenerator1") + .vlId("v2") + .type("GENERATOR").build()) + + .loadTapChangingCapabilities(true) + .targetV(5.) + .steps(List.of(TapChangerStepCreationInfos.builder() + .index(5) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(6) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(7) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(8) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build() + )) + .build()) + .build(); } @Override protected ModificationInfos buildModificationUpdate() { return TwoWindingsTransformerCreationInfos.builder() - .id("new2wtUpdate") - .name("new2wtUpdate") - .seriesResistance(2.3) - .seriesReactance(3.2) - .magnetizingConductance(4.4) - .magnetizingSusceptance(5.5) - .ratedVoltage1(6.8) - .ratedVoltage2(7.9) - .ratedS(9.4) - .voltageLevelId1("v1") - .busOrBusbarSectionId1("bus1") - .voltageLevelId2("v2") - .busOrBusbarSectionId2("bus3") - .currentLimits1(CurrentLimitsInfos.builder().permanentLimit(3.).build()) - .currentLimits2(CurrentLimitsInfos.builder().permanentLimit(2.).build()) - .connectionName1("cn2012") - .connectionDirection1(ConnectablePosition.Direction.TOP) - .connectionName2("cn2022") - .connectionDirection2(ConnectablePosition.Direction.TOP) - .phaseTapChanger(PhaseTapChangerCreationInfos.builder() - .lowTapPosition(1) - .tapPosition(2) - .regulatingTerminalId("v1load") - .regulatingTerminalVlId("v1") - .regulating(false) - .regulatingTerminalType("LOAD") - .regulationMode(PhaseTapChanger.RegulationMode.CURRENT_LIMITER) - .steps(List.of(TapChangerStepCreationInfos.builder() - .index(1) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .alpha(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(2) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .alpha(0.) - .build(), - TapChangerStepCreationInfos.builder() - .index(3) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .alpha(0.) - .build() - )).build()) - .ratioTapChanger(RatioTapChangerCreationInfos.builder() - .lowTapPosition(5) - .tapPosition(6) - .regulating(true) - .targetDeadband(1.) - .regulatingTerminalId("v2load") - .regulatingTerminalVlId("v2") - .regulatingTerminalType("LOAD") - .loadTapChangingCapabilities(true) - .targetV(5.) - .steps(List.of(TapChangerStepCreationInfos.builder() - .index(5) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(6) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(7) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(8) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build() - )) - .build()) - .build(); + .id("new2wtUpdate") + .name("new2wtUpdate") + .r(2.3) + .x(3.2) + .g(4.4) + .b(5.5) + .ratedU1(6.8) + .ratedU2(7.9) + .ratedS(9.4) + .voltageLevelId1("v1") + .busOrBusbarSectionId1("bus1") + .voltageLevelId2("v2") + .busOrBusbarSectionId2("bus3") + .currentLimits1(CurrentLimitsInfos.builder().permanentLimit(3.).build()) + .currentLimits2(CurrentLimitsInfos.builder().permanentLimit(2.).build()) + + .position1(ConnectablePositionInfos.builder() + .label("cn2012") + .direction(ConnectablePosition.Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .label("cn2022") + .direction(ConnectablePosition.Direction.TOP).build()) + .phaseTapChanger(PhaseTapChangerCreationInfos.builder() + .lowTapPosition(1) + .tapPosition(2) + .regulating(false) + + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("v1load") + .vlId("v1") + .type("LOAD").build()) + + .regulationMode(PhaseTapChanger.RegulationMode.CURRENT_LIMITER) + .steps(List.of(TapChangerStepCreationInfos.builder() + .index(1) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .alpha(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(2) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .alpha(0.) + .build(), + TapChangerStepCreationInfos.builder() + .index(3) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .alpha(0.) + .build() + )).build()) + .ratioTapChanger(RatioTapChangerCreationInfos.builder() + .lowTapPosition(5) + .tapPosition(6) + .regulating(true) + .targetDeadband(1.) + + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("v2load") + .vlId("v2") + .type("LOAD").build()) + + .loadTapChangingCapabilities(true) + .targetV(5.) + .steps(List.of(TapChangerStepCreationInfos.builder() + .index(5) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(6) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(7) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(8) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build() + )) + .build()) + .build(); } @Override @@ -297,54 +313,61 @@ protected void assertNetworkAfterDeletion() { public void testCreateTwoWindingsTransformerWithRatioTapChangerInBusBreaker() throws Exception { // create new 2wt in voltage level with Bus/breaker topology, having a RatioTapChanger RatioTapChangerCreationInfos ratioTapChangerCreationInfos = RatioTapChangerCreationInfos.builder() - .lowTapPosition(0) - .tapPosition(1) - .regulating(true) - .targetDeadband(null) - .regulatingTerminalVlId("v1") - .regulatingTerminalId("idGenerator1") - .regulatingTerminalType("GENERATOR") - .loadTapChangingCapabilities(true) - .targetV(220.) - .steps(getTapChangerSteps()) - .build(); + .lowTapPosition(0) + .tapPosition(1) + .regulating(true) + .targetDeadband(null) + + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("idGenerator1") + .vlId("v1") + .type("GENERATOR").build()) + + .loadTapChangingCapabilities(true) + .targetV(220.) + .steps(getTapChangerSteps()) + .build(); // create new 2wt in voltage level with bus/breaker topology TwoWindingsTransformerCreationInfos twoWindingsTransformerCreationInfos = TwoWindingsTransformerCreationInfos.builder() - .id("id2wt1") - .name("2wtName") - .voltageLevelId1("v1") - .busOrBusbarSectionId1("bus1") - .voltageLevelId2("v12") - .busOrBusbarSectionId2("bus12") - .magnetizingConductance(100.0) - .magnetizingSusceptance(200.0) - .ratedVoltage1(1000) - .ratedVoltage2(1010) - .seriesReactance(300) - .seriesResistance(400) - .ratedS(200.) - .ratioTapChanger(ratioTapChangerCreationInfos) - .substationIds(Set.of("s1")) // for the matcher - .build(); + .id("id2wt1") + .name("2wtName") + .voltageLevelId1("v1") + .busOrBusbarSectionId1("bus1") + .voltageLevelId2("v12") + .busOrBusbarSectionId2("bus12") + .g(100.0) + .b(200.0) + .ratedU1(1000) + .ratedU2(1010) + .x(300) + .r(400) + .ratedS(200.) + .ratioTapChanger(ratioTapChangerCreationInfos) + .substationIds(Set.of("s1")) // for the matcher + .build(); testCreateTwoWindingsTransformerInBusBreaker(twoWindingsTransformerCreationInfos, 1); TwoWindingsTransformerCreationInfos twoWindingsTransformerCreationInfos2 = TwoWindingsTransformerCreationInfos.builder() - .id("id2wt1WithRatioTapChanger2") - .name("2wtName") - .voltageLevelId1("v1") - .busOrBusbarSectionId1("bus1") - .voltageLevelId2("v12") - .busOrBusbarSectionId2("bus12") - .magnetizingConductance(100.0) - .magnetizingSusceptance(200.0) - .ratedVoltage1(1000) - .ratedVoltage2(1010) - .seriesReactance(300) - .seriesResistance(400) - .connectionDirection1(ConnectablePosition.Direction.TOP) - .connectionDirection2(ConnectablePosition.Direction.TOP) - .ratioTapChanger(ratioTapChangerCreationInfos) - .substationIds(Set.of("s1")) // for the matcher - .build(); + .id("id2wt1WithRatioTapChanger2") + .name("2wtName") + .voltageLevelId1("v1") + .busOrBusbarSectionId1("bus1") + .voltageLevelId2("v12") + .busOrBusbarSectionId2("bus12") + .g(100.0) + .b(200.0) + .ratedU1(1000) + .ratedU2(1010) + .x(300) + .r(400) + + .position1(ConnectablePositionInfos.builder() + .direction(ConnectablePosition.Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .direction(ConnectablePosition.Direction.TOP).build()) + + .ratioTapChanger(ratioTapChangerCreationInfos) + .substationIds(Set.of("s1")) // for the matcher + .build(); testCreateTwoWindingsTransformerInBusBreaker(twoWindingsTransformerCreationInfos2, 2); } @@ -352,37 +375,43 @@ public void testCreateTwoWindingsTransformerWithRatioTapChangerInBusBreaker() th public void testCreateTwoWindingsTransformerWithPhaseTapChangerInBusBreaker() throws Exception { // create new 2wt in voltage level with Bus/breaker topology, having a PhaseTapChanger PhaseTapChangerCreationInfos phaseTapChangerCreationInfos = PhaseTapChangerCreationInfos.builder() - .lowTapPosition(0) - .tapPosition(1) - .regulating(true) - .targetDeadband(null) - .regulationMode(PhaseTapChanger.RegulationMode.ACTIVE_POWER_CONTROL) - .regulationValue(10.0) - .regulatingTerminalVlId("v1") - .regulatingTerminalId("idGenerator1") - .regulatingTerminalType("GENERATOR") - .steps(getTapChangerSteps()) - .build(); + .lowTapPosition(0) + .tapPosition(1) + .regulating(true) + .targetDeadband(null) + .regulationMode(PhaseTapChanger.RegulationMode.ACTIVE_POWER_CONTROL) + .regulationValue(10.0) + + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("idGenerator1") + .vlId("v1") + .type("GENERATOR").build()) + + .steps(getTapChangerSteps()) + .build(); TwoWindingsTransformerCreationInfos twoWindingsTransformerCreationInfos = TwoWindingsTransformerCreationInfos.builder() - .id("id2wt1WithPhaseTapChanger") - .name("2wtName") - .voltageLevelId1("v1") - .busOrBusbarSectionId1("bus1") - .voltageLevelId2("v12") - .busOrBusbarSectionId2("bus12") - .magnetizingConductance(100.0) - .magnetizingSusceptance(200.0) - .ratedVoltage1(1000) - .ratedVoltage2(1010) - .seriesReactance(300) - .seriesResistance(400) - .connectionName1("cnid2wt1") - .connectionDirection1(ConnectablePosition.Direction.TOP) - .connectionName2("cnid2wt2") - .connectionDirection2(ConnectablePosition.Direction.TOP) - .phaseTapChanger(phaseTapChangerCreationInfos) - .substationIds(Set.of("s1")) // for the matcher - .build(); + .id("id2wt1WithPhaseTapChanger") + .name("2wtName") + .voltageLevelId1("v1") + .busOrBusbarSectionId1("bus1") + .voltageLevelId2("v12") + .busOrBusbarSectionId2("bus12") + .g(100.0) + .b(200.0) + .ratedU1(1000) + .ratedU2(1010) + .x(300) + .r(400) + + .position1(ConnectablePositionInfos.builder() + .label("cnid2wt1") + .direction(ConnectablePosition.Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .label("cnid2wt2") + .direction(ConnectablePosition.Direction.TOP).build()) + .phaseTapChanger(phaseTapChangerCreationInfos) + .substationIds(Set.of("s1")) // for the matcher + .build(); testCreateTwoWindingsTransformerInBusBreaker(twoWindingsTransformerCreationInfos, 1); } @@ -405,27 +434,27 @@ private void testCreateTwoWindingsTransformerInBusBreaker(TwoWindingsTransformer private List getTapChangerSteps() { return List.of( - TapChangerStepCreationInfos.builder() - .r(39.78473) - .x(39.784725) - .g(0.) - .b(0.) - .rho(1.) - .build(), - TapChangerStepCreationInfos.builder() - .r(39.78474) - .x(39.784726) - .g(0.) - .b(0.) - .rho(1.) - .build(), - TapChangerStepCreationInfos.builder() - .r(39.78475) - .x(39.784727) - .g(0.) - .b(0.) - .rho(1.) - .build() + TapChangerStepCreationInfos.builder() + .r(39.78473) + .x(39.784725) + .g(0.) + .b(0.) + .rho(1.) + .build(), + TapChangerStepCreationInfos.builder() + .r(39.78474) + .x(39.784726) + .g(0.) + .b(0.) + .rho(1.) + .build(), + TapChangerStepCreationInfos.builder() + .r(39.78475) + .x(39.784727) + .g(0.) + .b(0.) + .rho(1.) + .build() ); } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationMixedBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationMixedBreakerTest.java index 84da3e82b..ae958509d 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationMixedBreakerTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationMixedBreakerTest.java @@ -38,209 +38,217 @@ protected Network createNetwork(UUID networkUuid) { @Override protected ModificationInfos buildModification() { return TwoWindingsTransformerCreationInfos.builder() - .id("id2wt1") - .name("2wtName") - .voltageLevelId1("v1") - .busOrBusbarSectionId1("1.1") - .voltageLevelId2("v3") - .busOrBusbarSectionId2("bus3") - .magnetizingConductance(100.0) - .magnetizingSusceptance(200.0) - .ratedVoltage1(1000) - .ratedVoltage2(1010) - .ratedS(1.) - .seriesReactance(300) - .seriesResistance(400) - .connectionName1("cnid2wt1") - .connectionDirection1(ConnectablePosition.Direction.TOP) - .connectionName2("cnid2wt2") - .connectionDirection2(ConnectablePosition.Direction.TOP) - .phaseTapChanger(PhaseTapChangerCreationInfos.builder() - .lowTapPosition(1) - .tapPosition(2) - .regulatingTerminalId("v1load") - .regulatingTerminalVlId("v1") - .regulating(false) - .regulatingTerminalType("LOAD") - .regulationMode(PhaseTapChanger.RegulationMode.CURRENT_LIMITER) - .steps(List.of(TapChangerStepCreationInfos.builder() - .index(1) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .alpha(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(2) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .alpha(0.) - .build(), - TapChangerStepCreationInfos.builder() - .index(3) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .alpha(0.) - .build() - )).build()) - .ratioTapChanger(RatioTapChangerCreationInfos.builder() - .lowTapPosition(5) - .tapPosition(6) - .regulating(true) - .targetDeadband(1.) - .regulatingTerminalId("v1load") - .regulatingTerminalVlId("v1") - .regulatingTerminalType("LOAD") - .loadTapChangingCapabilities(true) - .targetV(5.) - .steps(List.of(TapChangerStepCreationInfos.builder() - .index(5) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(6) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(7) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(8) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build() - )) - .build()) - .build(); + .id("id2wt1") + .name("2wtName") + .voltageLevelId1("v1") + .busOrBusbarSectionId1("1.1") + .voltageLevelId2("v3") + .busOrBusbarSectionId2("bus3") + .g(100.0) + .b(200.0) + .ratedU1(1000) + .ratedU2(1010) + .ratedS(1.) + .x(300) + .r(400) + .position1(ConnectablePositionInfos.builder() + .label("cnid2wt1") + .direction(ConnectablePosition.Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .label("cnid2wt2") + .direction(ConnectablePosition.Direction.TOP).build()) + .phaseTapChanger(PhaseTapChangerCreationInfos.builder() + .lowTapPosition(1) + .tapPosition(2) + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("v1load") + .vlId("v1") + .type("LOAD").build()) + .regulating(false) + .regulationMode(PhaseTapChanger.RegulationMode.CURRENT_LIMITER) + .steps(List.of(TapChangerStepCreationInfos.builder() + .index(1) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .alpha(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(2) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .alpha(0.) + .build(), + TapChangerStepCreationInfos.builder() + .index(3) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .alpha(0.) + .build() + )).build()) + .ratioTapChanger(RatioTapChangerCreationInfos.builder() + .lowTapPosition(5) + .tapPosition(6) + .regulating(true) + .targetDeadband(1.) + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("v1load") + .vlId("v1") + .type("LOAD").build()) + .loadTapChangingCapabilities(true) + .targetV(5.) + .steps(List.of(TapChangerStepCreationInfos.builder() + .index(5) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(6) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(7) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(8) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build() + )) + .build()) + .build(); } @Override protected ModificationInfos buildModificationUpdate() { return TwoWindingsTransformerCreationInfos.builder() - .id("new2wtUpdate") - .name("new2wtUpdate") - .seriesResistance(2.3) - .seriesReactance(3.2) - .magnetizingConductance(4.4) - .magnetizingSusceptance(5.5) - .ratedVoltage1(6.8) - .ratedVoltage2(7.9) - .ratedS(9.4) - .voltageLevelId1("v1") - .busOrBusbarSectionId1("bus1") - .voltageLevelId2("v2") - .busOrBusbarSectionId2("bus3") - .currentLimits1(CurrentLimitsInfos.builder().permanentLimit(3.).build()) - .currentLimits2(CurrentLimitsInfos.builder().permanentLimit(2.).build()) - .connectionName1("cn2012") - .connectionDirection1(ConnectablePosition.Direction.TOP) - .connectionName2("cn2022") - .connectionDirection2(ConnectablePosition.Direction.TOP) - .phaseTapChanger(PhaseTapChangerCreationInfos.builder() - .lowTapPosition(1) - .tapPosition(2) - .regulatingTerminalId("v1load") - .regulatingTerminalVlId("v1") - .regulating(false) - .regulatingTerminalType("LOAD") - .regulationMode(PhaseTapChanger.RegulationMode.CURRENT_LIMITER) - .steps(List.of(TapChangerStepCreationInfos.builder() - .index(1) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .alpha(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(2) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .alpha(0.) - .build(), - TapChangerStepCreationInfos.builder() - .index(3) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .alpha(0.) - .build() - )).build()) - .ratioTapChanger(RatioTapChangerCreationInfos.builder() - .lowTapPosition(5) - .tapPosition(6) - .regulating(true) - .targetDeadband(1.) - .regulatingTerminalId("v1load") - .regulatingTerminalVlId("v1") - .regulatingTerminalType("LOAD") - .loadTapChangingCapabilities(true) - .targetV(5.) - .steps(List.of(TapChangerStepCreationInfos.builder() - .index(5) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(6) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(7) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(8) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build() - )) - .build()) - .build(); + .id("new2wtUpdate") + .name("new2wtUpdate") + .r(2.3) + .x(3.2) + .g(4.4) + .b(5.5) + .ratedU1(6.8) + .ratedU2(7.9) + .ratedS(9.4) + .voltageLevelId1("v1") + .busOrBusbarSectionId1("bus1") + .voltageLevelId2("v2") + .busOrBusbarSectionId2("bus3") + .currentLimits1(CurrentLimitsInfos.builder().permanentLimit(3.).build()) + .currentLimits2(CurrentLimitsInfos.builder().permanentLimit(2.).build()) + .position1(ConnectablePositionInfos.builder() + .label("cn2012") + .direction(ConnectablePosition.Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .label("cn2022") + .direction(ConnectablePosition.Direction.TOP).build()) + .phaseTapChanger(PhaseTapChangerCreationInfos.builder() + .lowTapPosition(1) + .tapPosition(2) + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("v1load") + .vlId("v1") + .type("LOAD").build()) + .regulating(false) + .regulationMode(PhaseTapChanger.RegulationMode.CURRENT_LIMITER) + .steps(List.of(TapChangerStepCreationInfos.builder() + .index(1) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .alpha(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(2) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .alpha(0.) + .build(), + TapChangerStepCreationInfos.builder() + .index(3) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .alpha(0.) + .build() + )).build()) + .ratioTapChanger(RatioTapChangerCreationInfos.builder() + .lowTapPosition(5) + .tapPosition(6) + .regulating(true) + .targetDeadband(1.) + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("v1load") + .vlId("v1") + .type("LOAD").build()) + .loadTapChangingCapabilities(true) + .targetV(5.) + .steps(List.of(TapChangerStepCreationInfos.builder() + .index(5) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(6) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(7) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(8) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build() + )) + .build()) + .build(); } @Override diff --git a/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationNodeBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationNodeBreakerTest.java index 18da0f734..e2f282624 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationNodeBreakerTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationNodeBreakerTest.java @@ -41,211 +41,227 @@ protected Network createNetwork(UUID networkUuid) { @Override protected ModificationInfos buildModification() { return TwoWindingsTransformerCreationInfos.builder() - .id("new2wt") - .name("new2wt") - .seriesResistance(1.) - .seriesReactance(2.) - .magnetizingConductance(3.) - .magnetizingSusceptance(4.) - .ratedVoltage1(5.) - .ratedVoltage2(6.) - .ratedS(1.) - .voltageLevelId1("v1") - .busOrBusbarSectionId1("1.1") - .voltageLevelId2("v2") - .busOrBusbarSectionId2("1A") - .currentLimits1(CurrentLimitsInfos.builder().permanentLimit(3.).build()) - .currentLimits2(CurrentLimitsInfos.builder().permanentLimit(2.).build()) - .connectionName1("cn201") - .connectionDirection1(ConnectablePosition.Direction.TOP) - .connectionName2("cn202") - .connectionDirection2(ConnectablePosition.Direction.TOP) - .phaseTapChanger(PhaseTapChangerCreationInfos.builder() - .lowTapPosition(1) - .tapPosition(2) - .regulatingTerminalId("v1load") - .regulatingTerminalVlId("v1") - .regulating(false) - .regulatingTerminalType("LOAD") - .regulationMode(PhaseTapChanger.RegulationMode.CURRENT_LIMITER) - .steps(List.of(TapChangerStepCreationInfos.builder() - .index(1) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .alpha(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(2) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .alpha(0.) - .build(), - TapChangerStepCreationInfos.builder() - .index(3) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .alpha(0.) - .build() - )).build()) - .ratioTapChanger(RatioTapChangerCreationInfos.builder() - .lowTapPosition(5) - .tapPosition(6) - .regulating(true) - .targetDeadband(1.) - .regulatingTerminalId("v2load") - .regulatingTerminalVlId("v2") - .regulatingTerminalType("LOAD") - .loadTapChangingCapabilities(true) - .targetV(5.) - .steps(List.of(TapChangerStepCreationInfos.builder() - .index(5) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(6) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(7) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(8) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .build() - )) - .build()) - .build(); + .id("new2wt") + .name("new2wt") + .r(1.) + .x(2.) + .g(3.) + .b(4.) + .ratedU1(5.) + .ratedU2(6.) + .ratedS(1.) + .voltageLevelId1("v1") + .busOrBusbarSectionId1("1.1") + .voltageLevelId2("v2") + .busOrBusbarSectionId2("1A") + .currentLimits1(CurrentLimitsInfos.builder().permanentLimit(3.).build()) + .currentLimits2(CurrentLimitsInfos.builder().permanentLimit(2.).build()) + + .position1(ConnectablePositionInfos.builder() + .label("cn201") + .direction(ConnectablePosition.Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .label("cn202") + .direction(ConnectablePosition.Direction.TOP).build()) + .phaseTapChanger(PhaseTapChangerCreationInfos.builder() + .lowTapPosition(1) + .tapPosition(2) + .regulating(false) + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("v1load") + .vlId("v1") + .type("LOAD").build()) + .regulationMode(PhaseTapChanger.RegulationMode.CURRENT_LIMITER) + .steps(List.of(TapChangerStepCreationInfos.builder() + .index(1) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .alpha(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(2) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .alpha(0.) + .build(), + TapChangerStepCreationInfos.builder() + .index(3) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .alpha(0.) + .build() + )).build()) + .ratioTapChanger(RatioTapChangerCreationInfos.builder() + .lowTapPosition(5) + .tapPosition(6) + .regulating(true) + .targetDeadband(1.) + + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("v2load") + .vlId("v2") + .type("LOAD").build()) + + .loadTapChangingCapabilities(true) + .targetV(5.) + .steps(List.of(TapChangerStepCreationInfos.builder() + .index(5) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(6) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(7) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(8) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .build() + )) + .build()) + .build(); } @Override protected ModificationInfos buildModificationUpdate() { return TwoWindingsTransformerCreationInfos.builder() - .id("new2wtUpdate") - .name("new2wtUpdate") - .seriesResistance(10.) - .seriesReactance(20.) - .magnetizingConductance(33.) - .magnetizingSusceptance(40.) - .ratedVoltage1(50.) - .ratedVoltage2(60.) - .ratedS(10.) - .voltageLevelId1("v1") - .busOrBusbarSectionId1("1.1") - .voltageLevelId2("v2") - .busOrBusbarSectionId2("1A") - .currentLimits1(CurrentLimitsInfos.builder().permanentLimit(3.).build()) - .currentLimits2(CurrentLimitsInfos.builder().permanentLimit(2.).build()) - .connectionName1("cn2012") - .connectionDirection1(ConnectablePosition.Direction.TOP) - .connectionName2("cn2022") - .connectionDirection2(ConnectablePosition.Direction.TOP) - .phaseTapChanger(PhaseTapChangerCreationInfos.builder() - .lowTapPosition(10) - .tapPosition(20) - .regulatingTerminalId("v1load") - .regulatingTerminalVlId("v1") - .regulating(false) - .regulatingTerminalType("LOAD") - .regulationMode(PhaseTapChanger.RegulationMode.CURRENT_LIMITER) - .steps(List.of(TapChangerStepCreationInfos.builder() - .index(10) - .rho(10) - .r(20) - .x(30) - .g(40) - .b(50) - .alpha(60) - .build(), - TapChangerStepCreationInfos.builder() - .index(90) - .rho(80) - .r(70) - .x(60) - .g(50) - .b(40) - .alpha(20.) - .build(), - TapChangerStepCreationInfos.builder() - .index(3) - .rho(1) - .r(0) - .x(0) - .g(0) - .b(0) - .alpha(0.) - .build() - )).build()) - .ratioTapChanger(RatioTapChangerCreationInfos.builder() - .lowTapPosition(5) - .tapPosition(6) - .regulating(true) - .targetDeadband(1.) - .regulatingTerminalId("v2load") - .regulatingTerminalVlId("v2") - .regulatingTerminalType("LOAD") - .loadTapChangingCapabilities(true) - .targetV(5.) - .steps(List.of(TapChangerStepCreationInfos.builder() - .index(5) - .rho(100) - .r(02) - .x(07) - .g(880) - .b(90) - .build(), - TapChangerStepCreationInfos.builder() - .index(6) - .rho(1) - .r(0) - .x(065) - .g(0) - .b(88) - .build(), - TapChangerStepCreationInfos.builder() - .index(7) - .rho(1) - .r(0) - .x(0) - .g(43) - .b(0) - .build(), - TapChangerStepCreationInfos.builder() - .index(8) - .rho(1) - .r(63) - .x(0) - .g(0) - .b(93) - .build() - )) - .build()) - .build(); + .id("new2wtUpdate") + .name("new2wtUpdate") + .r(10.) + .x(20.) + .g(33.) + .b(40.) + .ratedU1(50.) + .ratedU2(60.) + .ratedS(10.) + .voltageLevelId1("v1") + .busOrBusbarSectionId1("1.1") + .voltageLevelId2("v2") + .busOrBusbarSectionId2("1A") + .currentLimits1(CurrentLimitsInfos.builder().permanentLimit(3.).build()) + .currentLimits2(CurrentLimitsInfos.builder().permanentLimit(2.).build()) + + .position1(ConnectablePositionInfos.builder() + .label("cn2012") + .direction(ConnectablePosition.Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .label("cn2022") + .direction(ConnectablePosition.Direction.TOP).build()) + .phaseTapChanger(PhaseTapChangerCreationInfos.builder() + .lowTapPosition(10) + .tapPosition(20) + .regulating(false) + + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("v1load") + .vlId("v1") + .type("LOAD").build()) + + .regulationMode(PhaseTapChanger.RegulationMode.CURRENT_LIMITER) + .steps(List.of(TapChangerStepCreationInfos.builder() + .index(10) + .rho(10) + .r(20) + .x(30) + .g(40) + .b(50) + .alpha(60) + .build(), + TapChangerStepCreationInfos.builder() + .index(90) + .rho(80) + .r(70) + .x(60) + .g(50) + .b(40) + .alpha(20.) + .build(), + TapChangerStepCreationInfos.builder() + .index(3) + .rho(1) + .r(0) + .x(0) + .g(0) + .b(0) + .alpha(0.) + .build() + )).build()) + .ratioTapChanger(RatioTapChangerCreationInfos.builder() + .lowTapPosition(5) + .tapPosition(6) + .regulating(true) + .targetDeadband(1.) + + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("v2load") + .vlId("v2") + .type("LOAD").build()) + + .loadTapChangingCapabilities(true) + .targetV(5.) + .steps(List.of(TapChangerStepCreationInfos.builder() + .index(5) + .rho(100) + .r(02) + .x(07) + .g(880) + .b(90) + .build(), + TapChangerStepCreationInfos.builder() + .index(6) + .rho(1) + .r(0) + .x(065) + .g(0) + .b(88) + .build(), + TapChangerStepCreationInfos.builder() + .index(7) + .rho(1) + .r(0) + .x(0) + .g(43) + .b(0) + .build(), + TapChangerStepCreationInfos.builder() + .index(8) + .rho(1) + .r(63) + .x(0) + .g(0) + .b(93) + .build() + )) + .build()) + .build(); } @Override @@ -281,56 +297,63 @@ protected void assertNetworkAfterDeletion() { public void testCreateTwoWindingsTransformerWithRatioTapChangerInNodeBreaker() throws Exception { // create new 2wt in voltage level with Node/breaker topology, having a RatioTapChanger RatioTapChangerCreationInfos ratioTapChangerCreationInfos = RatioTapChangerCreationInfos.builder() - .lowTapPosition(0) - .tapPosition(1) - .regulating(true) - .targetDeadband(null) - .regulatingTerminalVlId("v1") - .regulatingTerminalId("v1load") - .regulatingTerminalType("LOAD") - .loadTapChangingCapabilities(true) - .targetV(220.) - .steps(getTapChangerSteps()) - .build(); + .lowTapPosition(0) + .tapPosition(1) + .regulating(true) + .targetDeadband(null) + + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("v1load") + .vlId("v1") + .type("LOAD").build()) + + .loadTapChangingCapabilities(true) + .targetV(220.) + .steps(getTapChangerSteps()) + .build(); TwoWindingsTransformerCreationInfos twoWindingsTransformerCreationInfos = TwoWindingsTransformerCreationInfos.builder() - .id("id2wt1WithRatioTapChanger") - .name("2wtName") - .voltageLevelId1("v1") - .busOrBusbarSectionId1("1.1") - .voltageLevelId2("v2") - .busOrBusbarSectionId2("1A") - .magnetizingConductance(100.0) - .magnetizingSusceptance(200.0) - .ratedVoltage1(1000) - .ratedVoltage2(1010) - .seriesReactance(300) - .seriesResistance(400) - .connectionName1("cnid2wt1") - .connectionDirection1(ConnectablePosition.Direction.TOP) - .connectionName2("cnid2wt2") - .connectionDirection2(ConnectablePosition.Direction.TOP) - .ratioTapChanger(ratioTapChangerCreationInfos) - .substationIds(Set.of("s1")) // for the matcher - .build(); + .id("id2wt1WithRatioTapChanger") + .name("2wtName") + .voltageLevelId1("v1") + .busOrBusbarSectionId1("1.1") + .voltageLevelId2("v2") + .busOrBusbarSectionId2("1A") + .g(100.0) + .b(200.0) + .ratedU1(1000) + .ratedU2(1010) + .x(300) + .r(400) + .position1(ConnectablePositionInfos.builder() + .label("cnid2wt1") + .direction(ConnectablePosition.Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .label("cnid2wt2") + .direction(ConnectablePosition.Direction.TOP).build()) + .ratioTapChanger(ratioTapChangerCreationInfos) + .substationIds(Set.of("s1")) // for the matcher + .build(); testCreateTwoWindingsTransformerInNodeBreaker(twoWindingsTransformerCreationInfos, 1); TwoWindingsTransformerCreationInfos twoWindingsTransformerCreationInfos2 = TwoWindingsTransformerCreationInfos.builder() - .id("id2wt1WithRatioTapChanger2") - .name("2wtName") - .voltageLevelId1("v1") - .busOrBusbarSectionId1("1.1") - .voltageLevelId2("v2") - .busOrBusbarSectionId2("1A") - .magnetizingConductance(100.0) - .magnetizingSusceptance(200.0) - .ratedVoltage1(1000) - .ratedVoltage2(1010) - .seriesReactance(300) - .seriesResistance(400) - .connectionDirection1(ConnectablePosition.Direction.TOP) - .connectionDirection2(ConnectablePosition.Direction.TOP) - .ratioTapChanger(ratioTapChangerCreationInfos) - .substationIds(Set.of("s1")) // for the matcher - .build(); + .id("id2wt1WithRatioTapChanger2") + .name("2wtName") + .voltageLevelId1("v1") + .busOrBusbarSectionId1("1.1") + .voltageLevelId2("v2") + .busOrBusbarSectionId2("1A") + .g(100.0) + .b(200.0) + .ratedU1(1000) + .ratedU2(1010) + .x(300) + .r(400) + .position1(ConnectablePositionInfos.builder() + .direction(ConnectablePosition.Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .direction(ConnectablePosition.Direction.TOP).build()) + .ratioTapChanger(ratioTapChangerCreationInfos) + .substationIds(Set.of("s1")) // for the matcher + .build(); testCreateTwoWindingsTransformerInNodeBreaker(twoWindingsTransformerCreationInfos2, 2); } @@ -338,107 +361,123 @@ public void testCreateTwoWindingsTransformerWithRatioTapChangerInNodeBreaker() t public void testCreateTwoWindingsTransformerWithPhaseTapChangerInNodeBreaker() throws Exception { // create new 2wt in voltage level with Node/breaker topology, having a PhaseTapChanger PhaseTapChangerCreationInfos phaseTapChangerCreationInfos = PhaseTapChangerCreationInfos.builder() - .lowTapPosition(0) - .tapPosition(1) - .regulating(true) - .targetDeadband(null) - .regulationMode(PhaseTapChanger.RegulationMode.ACTIVE_POWER_CONTROL) - .regulationValue(10.0) - .regulatingTerminalVlId("v1") - .regulatingTerminalId("v1load") - .regulatingTerminalType("LOAD") - .steps(getTapChangerSteps()) - .build(); + .lowTapPosition(0) + .tapPosition(1) + .regulating(true) + .targetDeadband(null) + .regulationMode(PhaseTapChanger.RegulationMode.ACTIVE_POWER_CONTROL) + .regulationValue(10.0) + + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("v1load") + .vlId("v1") + .type("LOAD").build()) + + .steps(getTapChangerSteps()) + .build(); TwoWindingsTransformerCreationInfos twoWindingsTransformerCreationInfos = TwoWindingsTransformerCreationInfos.builder() - .id("id2wt1WithPhaseTapChanger") - .name("2wtName") - .voltageLevelId1("v1") - .busOrBusbarSectionId1("1.1") - .voltageLevelId2("v2") - .busOrBusbarSectionId2("1A") - .magnetizingConductance(100.0) - .magnetizingSusceptance(200.0) - .ratedVoltage1(1000) - .ratedVoltage2(1010) - .seriesReactance(300) - .seriesResistance(400) - .connectionName1("cnid2wt1") - .connectionDirection1(ConnectablePosition.Direction.TOP) - .connectionName2("cnid2wt2") - .connectionDirection2(ConnectablePosition.Direction.TOP) - .phaseTapChanger(phaseTapChangerCreationInfos) - .substationIds(Set.of("s1")) // for the matcher - .build(); + .id("id2wt1WithPhaseTapChanger") + .name("2wtName") + .voltageLevelId1("v1") + .busOrBusbarSectionId1("1.1") + .voltageLevelId2("v2") + .busOrBusbarSectionId2("1A") + .g(100.0) + .b(200.0) + .ratedU1(1000) + .ratedU2(1010) + .x(300) + .r(400) + + .position1(ConnectablePositionInfos.builder() + .label("cnid2wt1") + .direction(ConnectablePosition.Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .label("cnid2wt2") + .direction(ConnectablePosition.Direction.TOP).build()) + .phaseTapChanger(phaseTapChangerCreationInfos) + .substationIds(Set.of("s1")) // for the matcher + .build(); testCreateTwoWindingsTransformerInNodeBreaker(twoWindingsTransformerCreationInfos, 1); // create new 2wt in voltage level with Node/breaker topology, having a PhaseTapChanger with BATTERY type PhaseTapChangerCreationInfos phaseTapChangerCreationInfosLine = PhaseTapChangerCreationInfos.builder() - .lowTapPosition(0) - .tapPosition(1) - .regulating(true) - .targetDeadband(null) - .regulationMode(PhaseTapChanger.RegulationMode.ACTIVE_POWER_CONTROL) - .regulationValue(10.0) - .regulatingTerminalVlId("v3") - .regulatingTerminalId("v3Battery") - .regulatingTerminalType("BATTERY") - .steps(getTapChangerSteps()) - .build(); + .lowTapPosition(0) + .tapPosition(1) + .regulating(true) + .targetDeadband(null) + .regulationMode(PhaseTapChanger.RegulationMode.ACTIVE_POWER_CONTROL) + .regulationValue(10.0) + + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("v3Battery") + .vlId("v3") + .type("BATTERY").build()) + + .steps(getTapChangerSteps()) + .build(); TwoWindingsTransformerCreationInfos twoWindingsTransformerCreationInfos2 = TwoWindingsTransformerCreationInfos.builder() - .id("id2wt1WithPhaseTapChanger2") - .name("2wtName") - .voltageLevelId1("v1") - .busOrBusbarSectionId1("1.1") - .voltageLevelId2("v2") - .busOrBusbarSectionId2("1A") - .magnetizingConductance(100.0) - .magnetizingSusceptance(200.0) - .ratedVoltage1(1000) - .ratedVoltage2(1010) - .seriesReactance(300) - .seriesResistance(400) - .connectionName1("cnid2wt1") - .connectionDirection1(ConnectablePosition.Direction.TOP) - .connectionName2("cnid2wt2") - .connectionDirection2(ConnectablePosition.Direction.TOP) - .phaseTapChanger(phaseTapChangerCreationInfosLine) - .substationIds(Set.of("s1")) // for the matcher - .build(); + .id("id2wt1WithPhaseTapChanger2") + .name("2wtName") + .voltageLevelId1("v1") + .busOrBusbarSectionId1("1.1") + .voltageLevelId2("v2") + .busOrBusbarSectionId2("1A") + .g(100.0) + .b(200.0) + .ratedU1(1000) + .ratedU2(1010) + .x(300) + .r(400) + .position1(ConnectablePositionInfos.builder() + .label("cnid2wt1") + .direction(ConnectablePosition.Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .label("cnid2wt2") + .direction(ConnectablePosition.Direction.TOP).build()) + .phaseTapChanger(phaseTapChangerCreationInfosLine) + .substationIds(Set.of("s1")) // for the matcher + .build(); testCreateTwoWindingsTransformerInNodeBreaker(twoWindingsTransformerCreationInfos2, 2); // create new 2wt in voltage level with Node/breaker topology, having a PhaseTapChanger with Compensator type PhaseTapChangerCreationInfos phaseTapChangerCreationInfosCompensator = PhaseTapChangerCreationInfos.builder() - .lowTapPosition(0) - .tapPosition(1) - .regulating(true) - .targetDeadband(null) - .regulationMode(PhaseTapChanger.RegulationMode.ACTIVE_POWER_CONTROL) - .regulationValue(10.0) - .regulatingTerminalVlId("v3") - .regulatingTerminalId("v3bCompensator") - .regulatingTerminalType("VOLTAGE_LEVEL") - .steps(getTapChangerSteps()) - .build(); + .lowTapPosition(0) + .tapPosition(1) + .regulating(true) + .targetDeadband(null) + .regulationMode(PhaseTapChanger.RegulationMode.ACTIVE_POWER_CONTROL) + .regulationValue(10.0) + + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("v3bCompensator") + .vlId("v3") + .type("VOLTAGE_LEVEL").build()) + + .steps(getTapChangerSteps()) + .build(); TwoWindingsTransformerCreationInfos twoWindingsTransformerCreationInfos3 = TwoWindingsTransformerCreationInfos.builder() - .id("id2wt1WithPhaseTapChanger3") - .name("2wtName") - .voltageLevelId1("v1") - .busOrBusbarSectionId1("1.1") - .voltageLevelId2("v2") - .busOrBusbarSectionId2("1A") - .magnetizingConductance(100.0) - .magnetizingSusceptance(200.0) - .ratedVoltage1(1000) - .ratedVoltage2(1010) - .seriesReactance(300) - .seriesResistance(400) - .connectionName1("cnid2wt1") - .connectionDirection1(ConnectablePosition.Direction.TOP) - .connectionName2("cnid2wt2") - .connectionDirection2(ConnectablePosition.Direction.TOP) - .phaseTapChanger(phaseTapChangerCreationInfosLine) - .substationIds(Set.of("s1")) // for the matcher - .build(); + .id("id2wt1WithPhaseTapChanger3") + .name("2wtName") + .voltageLevelId1("v1") + .busOrBusbarSectionId1("1.1") + .voltageLevelId2("v2") + .busOrBusbarSectionId2("1A") + .g(100.0) + .b(200.0) + .ratedU1(1000) + .ratedU2(1010) + .x(300) + .r(400) + .position1(ConnectablePositionInfos.builder() + .label("cnid2wt1") + .direction(ConnectablePosition.Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .label("cnid2wt2") + .direction(ConnectablePosition.Direction.TOP).build()) + .phaseTapChanger(phaseTapChangerCreationInfosLine) + .substationIds(Set.of("s1")) // for the matcher + .build(); testCreateTwoWindingsTransformerInNodeBreaker(twoWindingsTransformerCreationInfos3, 3); } @@ -495,27 +534,27 @@ private void testCreateTwoWindingsTransformerInNodeBreaker(TwoWindingsTransforme private List getTapChangerSteps() { return List.of( - TapChangerStepCreationInfos.builder() - .r(39.78473) - .x(39.784725) - .g(0.) - .b(0.) - .rho(1.) - .build(), - TapChangerStepCreationInfos.builder() - .r(39.78474) - .x(39.784726) - .g(0.) - .b(0.) - .rho(1.) - .build(), - TapChangerStepCreationInfos.builder() - .r(39.78475) - .x(39.784727) - .g(0.) - .b(0.) - .rho(1.) - .build() + TapChangerStepCreationInfos.builder() + .r(39.78473) + .x(39.784725) + .g(0.) + .b(0.) + .rho(1.) + .build(), + TapChangerStepCreationInfos.builder() + .r(39.78474) + .x(39.784726) + .g(0.) + .b(0.) + .rho(1.) + .build(), + TapChangerStepCreationInfos.builder() + .r(39.78475) + .x(39.784727) + .g(0.) + .b(0.) + .rho(1.) + .build() ); } } diff --git a/src/test/java/org/gridsuite/modification/server/service/BuildTest.java b/src/test/java/org/gridsuite/modification/server/service/BuildTest.java index e2e312685..e96aa892f 100644 --- a/src/test/java/org/gridsuite/modification/server/service/BuildTest.java +++ b/src/test/java/org/gridsuite/modification/server/service/BuildTest.java @@ -230,15 +230,20 @@ public MockResponse dispatch(RecordedRequest request) { @Test public void runBuildForLineSplits() throws Exception { List entities1 = List.of( - LineCreationInfos.builder().id("newLine").name("newLine").seriesResistance(1.0) - .seriesReactance(2.0).shuntConductance1(3.0).shuntSusceptance1(4.0).shuntConductance2(5.0) - .shuntSusceptance2(6.0).voltageLevelId1("v1").busOrBusbarSectionId1("1.1").voltageLevelId2("v2") - .busOrBusbarSectionId2("1B").connectionName1("cn11") - .connectionDirection1(ConnectablePosition.Direction.TOP).connectionName2("cn22") - .connectionDirection2(ConnectablePosition.Direction.TOP).build().toEntity(), - LineSplitWithVoltageLevelInfos.builder().lineToSplitId("line3").percent(0.32) - .mayNewVoltageLevelInfos(null).existingVoltageLevelId("vl1").bbsOrBusId("sjb1").newLine1Id("un") - .newLine1Name("One").newLine2Id("deux").newLine2Name("Two").build().toEntity()); + LineCreationInfos.builder().id("newLine").name("newLine").r(1.0) + .x(2.0).shuntConductance1(3.0).shuntSusceptance1(4.0).shuntConductance2(5.0) + .shuntSusceptance2(6.0).voltageLevelId1("v1").busOrBusbarSectionId1("1.1").voltageLevelId2("v2") + .busOrBusbarSectionId2("1B") + .position1(ConnectablePositionInfos.builder() + .label("cn11") + .direction(Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .label("cn22") + .direction(Direction.TOP).build()) + .build().toEntity(), + LineSplitWithVoltageLevelInfos.builder().lineToSplitId("line3").percent(0.32) + .mayNewVoltageLevelInfos(null).existingVoltageLevelId("vl1").bbsOrBusId("sjb1").newLine1Id("un") + .newLine1Name("One").newLine2Id("deux").newLine2Name("Two").build().toEntity()); modificationRepository.saveModifications(TEST_GROUP_ID, entities1); List entities2 = new ArrayList<>(); @@ -352,12 +357,17 @@ public void runBuildTest() throws Exception { .regulatingTerminalVlId("v2").qPercent(25.).reactiveCapabilityCurve(false) .reactiveCapabilityCurvePoints(List.of()).connectionName("Top") .connectionDirection(ConnectablePosition.Direction.TOP).connectionPosition(0).build().toEntity()); - entities2.add(LineCreationInfos.builder().id("newLine").name("newLine").seriesResistance(1.0) - .seriesReactance(2.0).shuntConductance1(3.0).shuntSusceptance1(4.0).shuntConductance2(5.0) - .shuntSusceptance2(6.0).voltageLevelId1("v1").busOrBusbarSectionId1("1.1").voltageLevelId2("v2") - .busOrBusbarSectionId2("1B").currentLimits1(null).currentLimits2(null).connectionName1("cn101") - .connectionDirection1(ConnectablePosition.Direction.TOP).connectionName2("cn102") - .connectionDirection2(ConnectablePosition.Direction.TOP).build().toEntity()); + entities2.add(LineCreationInfos.builder().id("newLine").name("newLine").r(1.0) + .x(2.0).shuntConductance1(3.0).shuntSusceptance1(4.0).shuntConductance2(5.0) + .shuntSusceptance2(6.0).voltageLevelId1("v1").busOrBusbarSectionId1("1.1").voltageLevelId2("v2") + .busOrBusbarSectionId2("1B").currentLimits1(null).currentLimits2(null) + .position1(ConnectablePositionInfos.builder() + .label("cn101") + .direction(Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .label("cn102") + .direction(Direction.TOP).build()) + .build().toEntity()); List tapChangerStepCreationEmbeddables = new ArrayList<>(); tapChangerStepCreationEmbeddables @@ -392,44 +402,53 @@ public void runBuildTest() throws Exception { .susceptancePerSection(1.).isIdenticalSection(true) .connectionDirection(ConnectablePosition.Direction.UNDEFINED).connectionName("shunt9").build() .toEntity()); - entities2 - .add(TwoWindingsTransformerCreationInfos.builder().id("new2wt").name("new2wt") - .seriesResistance(1.).seriesReactance(2.).magnetizingConductance(3.).magnetizingSusceptance(4.) - .ratedVoltage1(5.).ratedVoltage2(6.).ratedS(1.).voltageLevelId1("v1") - .busOrBusbarSectionId1("1.1").voltageLevelId2("v2").busOrBusbarSectionId2("1A") - .currentLimits1(CurrentLimitsInfos.builder().permanentLimit(3.).build()) - .currentLimits2(CurrentLimitsInfos.builder().permanentLimit(2.).build()) - .connectionName1("cn201").connectionDirection1(ConnectablePosition.Direction.TOP) - .connectionName2("cn202").connectionDirection2( - ConnectablePosition.Direction.TOP) - .phaseTapChanger( - PhaseTapChangerCreationInfos.builder().lowTapPosition(1).tapPosition(2) - .regulatingTerminalId("v1load").regulatingTerminalVlId("v1").regulating(false) - .regulatingTerminalType("LOAD") - .regulationMode(PhaseTapChanger.RegulationMode.CURRENT_LIMITER) - .steps(List - .of(TapChangerStepCreationInfos.builder().index(1).rho(1).r(0).x(0).g(0) - .b(0).alpha(0).build(), - TapChangerStepCreationInfos.builder().index(2).rho(1).r(0).x(0) - .g(0).b(0).alpha(0.).build(), - TapChangerStepCreationInfos.builder().index(3).rho(1).r(0).x(0) - .g(0).b(0).alpha(0.).build())) - .build()) - .ratioTapChanger( - RatioTapChangerCreationInfos.builder().lowTapPosition(5).tapPosition(6).regulating(true) - .targetDeadband(1.).regulatingTerminalId("v2load").regulatingTerminalVlId("v2") - .regulatingTerminalType("LOAD").loadTapChangingCapabilities(true).targetV(5.) - .steps(List.of( - TapChangerStepCreationInfos.builder().index(5).rho(1).r(0).x(0).g(0) - .b(0).build(), - TapChangerStepCreationInfos.builder().index(6).rho(1).r(0).x(0).g(0) - .b(0).build(), - TapChangerStepCreationInfos.builder().index(7).rho(1).r(0).x(0).g(0) - .b(0).build(), - TapChangerStepCreationInfos.builder().index(8).rho(1).r(0).x(0).g(0) - .b(0).build())) - .build()) - .build().toEntity()); + entities2.add(TwoWindingsTransformerCreationInfos.builder().id("new2wt").name("new2wt") + .r(1.).x(2.).g(3.).b(4.) + .ratedU1(5.).ratedU2(6.).ratedS(1.).voltageLevelId1("v1") + .busOrBusbarSectionId1("1.1").voltageLevelId2("v2").busOrBusbarSectionId2("1A") + .currentLimits1(CurrentLimitsInfos.builder().permanentLimit(3.).build()) + .currentLimits2(CurrentLimitsInfos.builder().permanentLimit(2.).build()) + .position1(ConnectablePositionInfos.builder() + .label("cn201") + .direction(Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .label("cn202") + .direction(Direction.TOP).build()) + .phaseTapChanger( + PhaseTapChangerCreationInfos.builder().lowTapPosition(1).tapPosition(2) + .regulating(false) + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("v1load") + .vlId("v1") + .type("LOAD").build()) + .regulationMode(PhaseTapChanger.RegulationMode.CURRENT_LIMITER) + .steps(List + .of(TapChangerStepCreationInfos.builder().index(1).rho(1).r(0).x(0).g(0) + .b(0).alpha(0).build(), + TapChangerStepCreationInfos.builder().index(2).rho(1).r(0).x(0) + .g(0).b(0).alpha(0.).build(), + TapChangerStepCreationInfos.builder().index(3).rho(1).r(0).x(0) + .g(0).b(0).alpha(0.).build())) + .build()) + .ratioTapChanger( + RatioTapChangerCreationInfos.builder().lowTapPosition(5).tapPosition(6).regulating(true) + .targetDeadband(1.) + .regulatingTerminal(RegulatingTerminalInfos.builder() + .id("v2load") + .vlId("v2") + .type("LOAD").build()) + .loadTapChangingCapabilities(true).targetV(5.) + .steps(List.of( + TapChangerStepCreationInfos.builder().index(5).rho(1).r(0).x(0).g(0) + .b(0).build(), + TapChangerStepCreationInfos.builder().index(6).rho(1).r(0).x(0).g(0) + .b(0).build(), + TapChangerStepCreationInfos.builder().index(7).rho(1).r(0).x(0).g(0) + .b(0).build(), + TapChangerStepCreationInfos.builder().index(8).rho(1).r(0).x(0).g(0) + .b(0).build())) + .build()) + .build().toEntity()); entities2.add(LoadModificationInfos.builder().id("newLoad") .name(new AttributeModification<>("newLoadName", OperationType.SET)).p0(null).build() .toEntity()); diff --git a/src/test/java/org/gridsuite/modification/server/service/ModificationRepositoryTest.java b/src/test/java/org/gridsuite/modification/server/service/ModificationRepositoryTest.java index 8fe77844f..51d0f7cd8 100644 --- a/src/test/java/org/gridsuite/modification/server/service/ModificationRepositoryTest.java +++ b/src/test/java/org/gridsuite/modification/server/service/ModificationRepositoryTest.java @@ -404,10 +404,99 @@ public void testShuntCompensatorCreation() { @Test public void testLineCreation() { - var createLineEntity1 = LineCreationInfos.builder().id("idLine1").name("nameLine1").seriesResistance(1.0).seriesReactance(1.1).shuntConductance1(10.0).shuntSusceptance1(11.0).shuntConductance2(100.0).shuntSusceptance2(100.1).voltageLevelId1("vlId11").busOrBusbarSectionId1("busId11").voltageLevelId2("vlId12").busOrBusbarSectionId2("busId12").connectionName1("cn11").connectionDirection1(ConnectablePosition.Direction.TOP).connectionName2("cn22").connectionDirection2(ConnectablePosition.Direction.TOP).build().toEntity(); - var createLineEntity2 = LineCreationInfos.builder().id("idLine2").name("nameLine2").seriesResistance(2.0).seriesReactance(2.2).shuntConductance1(20.0).shuntSusceptance1(22.0).shuntConductance2(200.0).shuntSusceptance2(200.2).voltageLevelId1("vlId21").busOrBusbarSectionId1("busId21").voltageLevelId2("vlId22").busOrBusbarSectionId2("busId22").connectionName1("cn33").connectionDirection1(ConnectablePosition.Direction.TOP).connectionName2("cn44").connectionDirection2(ConnectablePosition.Direction.BOTTOM).currentLimits2(CurrentLimitsInfos.builder().permanentLimit(5.0).build()).build().toEntity(); - var createLineEntity3 = LineCreationInfos.builder().id("idLine3").name("nameLine3").seriesResistance(3.0).seriesReactance(3.3).shuntConductance1(30.0).shuntSusceptance1(33.0).shuntConductance2(300.0).shuntSusceptance2(300.3).voltageLevelId1("vlId31").busOrBusbarSectionId1("busId31").voltageLevelId2("vlId32").busOrBusbarSectionId2("busId32").connectionName1("cn55").connectionDirection1(ConnectablePosition.Direction.TOP).connectionName2("cn66").connectionDirection2(ConnectablePosition.Direction.TOP).currentLimits1(CurrentLimitsInfos.builder().permanentLimit(5.0).build()).build().toEntity(); - var createLineEntity4 = LineCreationInfos.builder().id("idLine4").name("nameLine4").seriesResistance(3.0).seriesReactance(3.3).shuntConductance1(null).shuntSusceptance1(null).shuntConductance2(null).shuntSusceptance2(null).voltageLevelId1("vlId41").busOrBusbarSectionId1("busId41").voltageLevelId2("vlId42").busOrBusbarSectionId2("busId42").connectionName1("cn77").connectionDirection1(ConnectablePosition.Direction.TOP).connectionName2("cn88").connectionDirection2(ConnectablePosition.Direction.BOTTOM).currentLimits1(CurrentLimitsInfos.builder().permanentLimit(5.0).build()).currentLimits2(CurrentLimitsInfos.builder().permanentLimit(4.0).build()).build().toEntity(); + var createLineEntity1 = LineCreationInfos.builder() + .id("idLine1") + .name("nameLine1") + .r(1.0) + .x(1.1) + .shuntConductance1(10.0) + .shuntSusceptance1(11.0) + .shuntConductance2(100.0) + .shuntSusceptance2(100.1) + .voltageLevelId1("vlId11") + .busOrBusbarSectionId1("busId11") + .voltageLevelId2("vlId12") + .busOrBusbarSectionId2("busId12") + .position1(ConnectablePositionInfos.builder() + .label("cn11") + .direction(Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .label("cn22") + .direction(Direction.TOP).build()) + .build().toEntity(); + var createLineEntity2 = LineCreationInfos.builder() + .id("idLine2") + .name("nameLine2") + .r(2.0) + .x(2.2) + .shuntConductance1(20.0) + .shuntSusceptance1(22.0) + .shuntConductance2(200.0) + .shuntSusceptance2(200.2) + .voltageLevelId1("vlId21") + .busOrBusbarSectionId1("busId21") + .voltageLevelId2("vlId22") + .busOrBusbarSectionId2("busId22") + + .position1(ConnectablePositionInfos.builder() + .label("cn33") + .direction(Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .label("cn44") + .direction(Direction.BOTTOM).build()) + .currentLimits2(CurrentLimitsInfos.builder() + .permanentLimit(5.0) + .build()) + .build().toEntity(); + var createLineEntity3 = LineCreationInfos.builder() + .id("idLine3") + .name("nameLine3") + .r(3.0) + .x(3.3) + .shuntConductance1(30.0) + .shuntSusceptance1(33.0) + .shuntConductance2(300.0) + .shuntSusceptance2(300.3) + .voltageLevelId1("vlId31") + .busOrBusbarSectionId1("busId31") + .voltageLevelId2("vlId32") + .busOrBusbarSectionId2("busId32") + .position1(ConnectablePositionInfos.builder() + .label("cn55") + .direction(Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .label("cn66") + .direction(Direction.TOP).build()) + .currentLimits1(CurrentLimitsInfos.builder() + .permanentLimit(5.0) + .build()) + .build().toEntity(); + var createLineEntity4 = LineCreationInfos.builder() + .id("idLine4") + .name("nameLine4") + .r(3.0) + .x(3.3) + .shuntConductance1(null) + .shuntSusceptance1(null) + .shuntConductance2(null) + .shuntSusceptance2(null) + .voltageLevelId1("vlId41") + .busOrBusbarSectionId1("busId41") + .voltageLevelId2("vlId42") + .busOrBusbarSectionId2("busId42") + .position1(ConnectablePositionInfos.builder() + .label("cn77") + .direction(Direction.TOP).build()) + .position2(ConnectablePositionInfos.builder() + .label("cn88") + .direction(ConnectablePosition.Direction.BOTTOM).build()) + .currentLimits1(CurrentLimitsInfos.builder() + .permanentLimit(5.0) + .build()) + .currentLimits2(CurrentLimitsInfos.builder() + .permanentLimit(4.0) + .build()) + .build().toEntity(); networkModificationRepository.saveModifications(TEST_GROUP_ID, List.of(createLineEntity1, createLineEntity2, createLineEntity3, createLineEntity4)); assertRequestsCount(1, 13, 4, 0); @@ -877,8 +966,8 @@ public void testLineSplitWithVoltageLevel() { public void testLineAttachToVoltageLevel() { LineCreationInfos attachmentLine = LineCreationInfos.builder() .id("attachmentLineId") - .seriesResistance(50.6) - .seriesReactance(25.3) + .r(50.6) + .x(25.3) .build(); LineAttachToVoltageLevelEntity lineAttachToEntity1 = LineAttachToVoltageLevelInfos.builder() .lineToAttachToId("lineId0") diff --git a/src/test/java/org/gridsuite/modification/server/utils/MatcherLineCreationInfos.java b/src/test/java/org/gridsuite/modification/server/utils/MatcherLineCreationInfos.java index 0a2093195..f402d6796 100644 --- a/src/test/java/org/gridsuite/modification/server/utils/MatcherLineCreationInfos.java +++ b/src/test/java/org/gridsuite/modification/server/utils/MatcherLineCreationInfos.java @@ -36,8 +36,8 @@ public boolean matchesSafely(LineCreationInfos m) { return super.matchesSafely(m) && m.getId().equals(reference.getId()) && Objects.equals(m.getName(), reference.getName()) - && m.getSeriesResistance() == reference.getSeriesResistance() - && m.getSeriesReactance() == reference.getSeriesReactance() + && m.getR() == reference.getR() + && m.getX() == reference.getX() && m.getShuntConductance1() != null && m.getShuntConductance1().equals(reference.getShuntConductance1()) || m.getShuntConductance1() == null && reference.getShuntConductance1() == null && m.getShuntSusceptance1() != null && m.getShuntSusceptance1().equals(reference.getShuntSusceptance1()) diff --git a/src/test/java/org/gridsuite/modification/server/utils/MatcherTwoWindingsTransformerCreationInfos.java b/src/test/java/org/gridsuite/modification/server/utils/MatcherTwoWindingsTransformerCreationInfos.java index 15a1b3610..bfbb2d58d 100644 --- a/src/test/java/org/gridsuite/modification/server/utils/MatcherTwoWindingsTransformerCreationInfos.java +++ b/src/test/java/org/gridsuite/modification/server/utils/MatcherTwoWindingsTransformerCreationInfos.java @@ -9,6 +9,7 @@ import org.gridsuite.modification.server.dto.CurrentLimitsInfos; import org.gridsuite.modification.server.dto.PhaseTapChangerCreationInfos; import org.gridsuite.modification.server.dto.RatioTapChangerCreationInfos; +import org.gridsuite.modification.server.dto.RegulatingTerminalInfos; import org.gridsuite.modification.server.dto.TwoWindingsTransformerCreationInfos; import org.hamcrest.Description; @@ -33,14 +34,38 @@ private boolean matchesCurrentLimitsInfos(CurrentLimitsInfos cl1, CurrentLimitsI || (cl1 != null && cl2 != null && cl1.getPermanentLimit() == null && cl2.getPermanentLimit() == null); } + private boolean matchesRegulatingTerminalInfos(RegulatingTerminalInfos rt1, RegulatingTerminalInfos rt2) { + return (rt1 == null && rt2 == null) + || (rt1 != null && rt2 != null + && + Objects.equals(rt1.getVlId(), rt2.getVlId()) + && Objects.equals(rt1.getType(), rt2.getType()) + && Objects.equals(rt1.getId(), rt2.getId())); + } + private boolean matchesRatioTapChangerInfos(RatioTapChangerCreationInfos rt1, RatioTapChangerCreationInfos rt2) { return (rt1 == null && rt2 == null) - || (rt1 != null && rt2 != null && rt1.isLoadTapChangingCapabilities() == rt2.isLoadTapChangingCapabilities() && rt1.isRegulating() == rt2.isRegulating() && Objects.equals(rt1.getTargetV(), rt2.getTargetV()) && Objects.equals(rt1.getTargetDeadband(), rt2.getTargetDeadband()) && Objects.equals(rt1.getRegulatingTerminalVlId(), rt2.getRegulatingTerminalVlId()) && Objects.equals(rt1.getRegulatingTerminalType(), rt2.getRegulatingTerminalType()) && Objects.equals(rt1.getRegulatingTerminalId(), rt2.getRegulatingTerminalId()) && rt1.getLowTapPosition() == rt2.getLowTapPosition() && rt1.getTapPosition() == rt2.getTapPosition()); + || (rt1 != null && rt2 != null + && rt1.isLoadTapChangingCapabilities() == rt2.isLoadTapChangingCapabilities() + && rt1.isRegulating() == rt2.isRegulating() + && Objects.equals(rt1.getTargetV(), rt2.getTargetV()) + && Objects.equals(rt1.getTargetDeadband(), rt2.getTargetDeadband()) + && matchesRegulatingTerminalInfos(rt1.getRegulatingTerminal(), rt2.getRegulatingTerminal()) + && rt1.getLowTapPosition() == rt2.getLowTapPosition() + && rt1.getTapPosition() == rt2.getTapPosition()); } private boolean matchesPhaseTapChangerInfos(PhaseTapChangerCreationInfos pt1, PhaseTapChangerCreationInfos pt2) { return (pt1 == null && pt2 == null) - || (pt1 != null && pt2 != null && pt1.getRegulationMode().equals(pt2.getRegulationMode()) && pt1.isRegulating() == pt2.isRegulating() && pt1.getRegulationMode() == pt2.getRegulationMode() && Objects.equals(pt1.getRegulationValue(), pt2.getRegulationValue()) && Objects.equals(pt1.getTargetDeadband(), pt2.getTargetDeadband()) && Objects.equals(pt1.getRegulatingTerminalVlId(), pt2.getRegulatingTerminalVlId()) && Objects.equals(pt1.getRegulatingTerminalType(), pt2.getRegulatingTerminalType()) && Objects.equals(pt1.getRegulatingTerminalId(), pt2.getRegulatingTerminalId()) && pt1.getLowTapPosition() == pt2.getLowTapPosition() && pt1.getTapPosition() == pt2.getTapPosition()); + || (pt1 != null && pt2 != null + && pt1.getRegulationMode().equals(pt2.getRegulationMode()) + && pt1.isRegulating() == pt2.isRegulating() + && pt1.getRegulationMode() == pt2.getRegulationMode() + && Objects.equals(pt1.getRegulationValue(), pt2.getRegulationValue()) + && Objects.equals(pt1.getTargetDeadband(), pt2.getTargetDeadband()) + && matchesRegulatingTerminalInfos(pt1.getRegulatingTerminal(), pt2.getRegulatingTerminal()) + && pt1.getLowTapPosition() == pt2.getLowTapPosition() + && pt1.getTapPosition() == pt2.getTapPosition()); } @Override @@ -52,12 +77,12 @@ public boolean matchesSafely(TwoWindingsTransformerCreationInfos m) { && m.getVoltageLevelId2().equals(reference.getVoltageLevelId2()) && m.getBusOrBusbarSectionId1().equals(reference.getBusOrBusbarSectionId1()) && m.getBusOrBusbarSectionId2().equals(reference.getBusOrBusbarSectionId2()) - && m.getRatedVoltage1() == reference.getRatedVoltage1() - && m.getRatedVoltage2() == reference.getRatedVoltage2() - && m.getMagnetizingSusceptance() == reference.getMagnetizingSusceptance() - && m.getMagnetizingConductance() == reference.getMagnetizingConductance() - && m.getSeriesReactance() == reference.getSeriesReactance() - && m.getSeriesResistance() == reference.getSeriesResistance() + && m.getRatedU1() == reference.getRatedU1() + && m.getRatedU2() == reference.getRatedU2() + && m.getB() == reference.getB() + && m.getG() == reference.getG() + && m.getX() == reference.getX() + && m.getX() == reference.getX() && Objects.equals(m.getRatedS(), reference.getRatedS()) && matchesCurrentLimitsInfos(m.getCurrentLimits1(), reference.getCurrentLimits1()) && matchesCurrentLimitsInfos(m.getCurrentLimits2(), reference.getCurrentLimits2()) From cdbcfc0b10c7a47e56d079fa20b2481841f224f1 Mon Sep 17 00:00:00 2001 From: Franck LECUYER Date: Wed, 15 Feb 2023 15:23:06 +0100 Subject: [PATCH 2/2] Fix column name pb Signed-off-by: Franck LECUYER --- .../creation/TwoWindingsTransformerCreationEntity.java | 6 +++--- .../changelog/changesets/changelog_2023-02-09T12:30:40Z.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/gridsuite/modification/server/entities/equipment/creation/TwoWindingsTransformerCreationEntity.java b/src/main/java/org/gridsuite/modification/server/entities/equipment/creation/TwoWindingsTransformerCreationEntity.java index 1c5e609c0..ef7fc2fc7 100644 --- a/src/main/java/org/gridsuite/modification/server/entities/equipment/creation/TwoWindingsTransformerCreationEntity.java +++ b/src/main/java/org/gridsuite/modification/server/entities/equipment/creation/TwoWindingsTransformerCreationEntity.java @@ -35,13 +35,13 @@ public class TwoWindingsTransformerCreationEntity extends BranchCreationEntity { @Column(name = "b") private double b; - @Column(name = "ratedU1") + @Column(name = "ratedu1") private double ratedU1; - @Column(name = "ratedU2") + @Column(name = "ratedu2") private double ratedU2; - @Column(name = "ratedS") + @Column(name = "rateds") private Double ratedS; @Column(name = "phasetapchangerlowtapposition") diff --git a/src/main/resources/db/changelog/changesets/changelog_2023-02-09T12:30:40Z.xml b/src/main/resources/db/changelog/changesets/changelog_2023-02-09T12:30:40Z.xml index 98bff69e0..28ad498f6 100644 --- a/src/main/resources/db/changelog/changesets/changelog_2023-02-09T12:30:40Z.xml +++ b/src/main/resources/db/changelog/changesets/changelog_2023-02-09T12:30:40Z.xml @@ -23,12 +23,12 @@ + newColumnName="ratedu1"/> + newColumnName="ratedu2"/>