Skip to content

Commit

Permalink
Merge branch 'main' into bug-new-modification-point
Browse files Browse the repository at this point in the history
  • Loading branch information
ne0ds authored Feb 2, 2024
2 parents d5b18ed + 2d7600c commit a9215f4
Show file tree
Hide file tree
Showing 28 changed files with 359 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,9 @@ public class BranchModificationInfos extends BasicEquipmentModificationInfos {
@Schema(description = "Current limits Side 2")
private CurrentLimitsModificationInfos currentLimits2;

@Schema(description = "Connected 1")
private AttributeModification<Boolean> connected1;

@Schema(description = "Connected 2")
private AttributeModification<Boolean> connected2;
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,7 @@ public class InjectionModificationInfos extends BasicEquipmentModificationInfos

@Schema(description = "Bus id modification")
private AttributeModification<String> busOrBusbarSectionId;

@Schema(description = "Connected")
private AttributeModification<Boolean> connected;
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
@Schema(description = "Shunt compensator modification")
@JsonTypeName("SHUNT_COMPENSATOR_MODIFICATION")
@ModificationErrorTypeName("MODIFY_SHUNT_COMPENSATOR_ERROR")
public class ShuntCompensatorModificationInfos extends BasicEquipmentModificationInfos {
public class ShuntCompensatorModificationInfos extends InjectionModificationInfos {

@Schema(description = "Maximum number of sections")
private AttributeModification<Integer> maximumSectionCount;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ public BatteryModificationInfos toModificationInfos() {
.equipmentName(AttributeModification.toAttributeModification(getEquipmentNameValue(), getEquipmentNameOp()))
.voltageLevelId(AttributeModification.toAttributeModification(getVoltageLevelIdValue(), getVoltageLevelIdOp()))
.busOrBusbarSectionId(AttributeModification.toAttributeModification(getBusOrBusbarSectionIdValue(), getBusOrBusbarSectionIdOp()))
.connected(toAttributeModification(getConnected()))
.activePowerSetpoint(toAttributeModification(getActivePowerSetpoint()))
.maxActivePower(toAttributeModification(getMaxActivePower()))
.minActivePower(toAttributeModification(getMinActivePower()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import lombok.NoArgsConstructor;
import org.gridsuite.modification.server.dto.BranchModificationInfos;
import org.gridsuite.modification.server.dto.ModificationInfos;
import org.gridsuite.modification.server.entities.equipment.modification.attribute.BooleanModificationEmbedded;
import org.gridsuite.modification.server.entities.equipment.modification.attribute.DoubleModificationEmbedded;

import jakarta.persistence.*;
Expand Down Expand Up @@ -52,6 +53,20 @@ public class BranchModificationEntity extends BasicEquipmentModificationEntity {
), nullable = true)
private CurrentLimitsModificationEntity currentLimits2;

@Embedded
@AttributeOverrides(value = {
@AttributeOverride(name = "value", column = @Column(name = "connected1")),
@AttributeOverride(name = "opType", column = @Column(name = "connected1Op"))
})
private BooleanModificationEmbedded connected1;

@Embedded
@AttributeOverrides(value = {
@AttributeOverride(name = "value", column = @Column(name = "connected2")),
@AttributeOverride(name = "opType", column = @Column(name = "connected2Op"))
})
private BooleanModificationEmbedded connected2;

protected BranchModificationEntity(BranchModificationInfos branchModificationInfos) {
super(branchModificationInfos);
assignAttributes(branchModificationInfos);
Expand All @@ -77,5 +92,7 @@ private void assignAttributes(BranchModificationInfos branchModificationInfos) {
} else {
currentLimits2 = branchModificationInfos.getCurrentLimits2().toEntity();
}
this.connected1 = branchModificationInfos.getConnected1() != null ? new BooleanModificationEmbedded(branchModificationInfos.getConnected1()) : null;
this.connected2 = branchModificationInfos.getConnected2() != null ? new BooleanModificationEmbedded(branchModificationInfos.getConnected2()) : null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,7 @@ public GeneratorModificationInfos toModificationInfos() {
.equipmentName(AttributeModification.toAttributeModification(getEquipmentNameValue(), getEquipmentNameOp()))
.voltageLevelId(AttributeModification.toAttributeModification(getVoltageLevelIdValue(), getVoltageLevelIdOp()))
.busOrBusbarSectionId(AttributeModification.toAttributeModification(getBusOrBusbarSectionIdValue(), getBusOrBusbarSectionIdOp()))
.connected(toAttributeModification(getConnected()))
.energySource(toAttributeModification(getEnergySource()))
.activePowerSetpoint(toAttributeModification(getActivePowerSetpoint()))
.maxActivePower(toAttributeModification(getMaxActivePower()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,19 @@
*/
package org.gridsuite.modification.server.entities.equipment.modification;

import jakarta.persistence.AttributeOverride;
import jakarta.persistence.AttributeOverrides;
import jakarta.persistence.Column;
import jakarta.persistence.Embedded;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.MappedSuperclass;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.gridsuite.modification.server.dto.InjectionModificationInfos;
import org.gridsuite.modification.server.dto.ModificationInfos;
import org.gridsuite.modification.server.dto.OperationType;

import jakarta.persistence.Column;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.MappedSuperclass;
import org.gridsuite.modification.server.entities.equipment.modification.attribute.BooleanModificationEmbedded;

/**
* @author Nicolas Noir <nicolas.noir at rte-france.com>
Expand All @@ -38,6 +41,13 @@ public class InjectionModificationEntity extends BasicEquipmentModificationEntit
@Enumerated(EnumType.STRING)
private OperationType busOrBusbarSectionIdOp;

@Embedded
@AttributeOverrides(value = {
@AttributeOverride(name = "value", column = @Column(name = "connected")),
@AttributeOverride(name = "opType", column = @Column(name = "connectedOp"))
})
private BooleanModificationEmbedded connected;

protected InjectionModificationEntity(InjectionModificationInfos modificationInfos) {
super(modificationInfos);
assignAttributes(modificationInfos);
Expand All @@ -54,5 +64,6 @@ private void assignAttributes(InjectionModificationInfos modificationInfos) {
this.voltageLevelIdOp = modificationInfos.getVoltageLevelId() != null ? modificationInfos.getVoltageLevelId().getOp() : null;
this.busOrBusbarSectionIdValue = modificationInfos.getBusOrBusbarSectionId() != null ? modificationInfos.getBusOrBusbarSectionId().getValue() : null;
this.busOrBusbarSectionIdOp = modificationInfos.getBusOrBusbarSectionId() != null ? modificationInfos.getBusOrBusbarSectionId().getOp() : null;
this.connected = modificationInfos.getConnected() != null ? new BooleanModificationEmbedded(modificationInfos.getConnected()) : null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,8 @@ public LineModificationInfos toModificationInfos() {
.stashed(getStashed())
.equipmentId(getEquipmentId())
.equipmentName(AttributeModification.toAttributeModification(getEquipmentNameValue(), getEquipmentNameOp()))
.connected1(toAttributeModification(getConnected1()))
.connected2(toAttributeModification(getConnected2()))
.seriesResistance(toAttributeModification(getSeriesResistance()))
.seriesReactance(toAttributeModification(getSeriesReactance()))
.shuntConductance1(toAttributeModification(getShuntConductance1()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
import jakarta.persistence.*;
import org.springframework.util.CollectionUtils;

import static org.gridsuite.modification.server.entities.equipment.modification.attribute.IAttributeModificationEmbeddable.toAttributeModification;

/**
* @author Nicolas Noir <nicolas.noir at rte-france.com>
*/
Expand Down Expand Up @@ -83,6 +85,7 @@ public LoadModificationInfos toModificationInfos() {
.equipmentName(AttributeModification.toAttributeModification(getEquipmentNameValue(), getEquipmentNameOp()))
.voltageLevelId(AttributeModification.toAttributeModification(getVoltageLevelIdValue(), getVoltageLevelIdOp()))
.busOrBusbarSectionId(AttributeModification.toAttributeModification(getBusOrBusbarSectionIdValue(), getBusOrBusbarSectionIdOp()))
.connected(toAttributeModification(getConnected()))
.loadType(AttributeModification.toAttributeModification(getLoadTypeValue(), getLoadTypeOp()))
.p0(AttributeModification.toAttributeModification(getP0Value(), getP0Op()))
.q0(AttributeModification.toAttributeModification(getQ0Value(), getQ0Op()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import org.gridsuite.modification.server.dto.AttributeModification;
import org.gridsuite.modification.server.dto.ModificationInfos;
import org.gridsuite.modification.server.dto.ShuntCompensatorModificationInfos;
import org.gridsuite.modification.server.dto.ShuntCompensatorType;
import org.gridsuite.modification.server.entities.equipment.modification.attribute.DoubleModificationEmbedded;
import org.gridsuite.modification.server.entities.equipment.modification.attribute.EnumModificationEmbedded;
import org.gridsuite.modification.server.entities.equipment.modification.attribute.IAttributeModificationEmbeddable;
import org.gridsuite.modification.server.entities.equipment.modification.attribute.IntegerModificationEmbedded;

import jakarta.persistence.AttributeOverride;
Expand All @@ -34,7 +36,7 @@
@Getter
@Entity
@Table(name = "shuntCompensatorModification")
public class ShuntCompensatorModificationEntity extends BasicEquipmentModificationEntity {
public class ShuntCompensatorModificationEntity extends InjectionModificationEntity {

@Embedded
@AttributeOverrides(value = {
Expand Down Expand Up @@ -103,6 +105,9 @@ public ShuntCompensatorModificationInfos toModificationInfos() {
.stashed(getStashed())
.equipmentId(getEquipmentId())
.equipmentName(toAttributeModification(getEquipmentNameValue(), getEquipmentNameOp()))
.voltageLevelId(AttributeModification.toAttributeModification(getVoltageLevelIdValue(), getVoltageLevelIdOp()))
.busOrBusbarSectionId(AttributeModification.toAttributeModification(getBusOrBusbarSectionIdValue(), getBusOrBusbarSectionIdOp()))
.connected(IAttributeModificationEmbeddable.toAttributeModification(getConnected()))
.shuntCompensatorType(toAttributeModification(getShuntCompensatorType()))
.maxQAtNominalV(toAttributeModification(getMaxQAtNominalV()))
.maxSusceptance(toAttributeModification(getMaxSusceptance()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@

import jakarta.persistence.*;

import static org.gridsuite.modification.server.entities.equipment.modification.attribute.IAttributeModificationEmbeddable.toAttributeModification;

/**
* @author Florent MILLOT <florent.millot at rte-france.com>
*/
Expand Down Expand Up @@ -351,6 +353,8 @@ public TwoWindingsTransformerModificationInfos toModificationInfos() {
.stashed(getStashed())
.equipmentId(getEquipmentId())
.equipmentName(AttributeModification.toAttributeModification(getEquipmentNameValue(), getEquipmentNameOp()))
.connected1(toAttributeModification(getConnected1()))
.connected2(toAttributeModification(getConnected2()))
.seriesResistance(AttributeModification.toAttributeModification(getSeriesResistance()))
.seriesReactance(AttributeModification.toAttributeModification(getSeriesReactance()))
.magnetizingConductance(AttributeModification.toAttributeModification(getMagnetizingConductance()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,20 @@ protected void modifyBranch(Branch<?> branch, BranchModificationInfos branchModi
ModificationUtils.getInstance().reportModifications(limitsReporter, side2LimitsReports, "side2LimitsModification",
" Side 2");
}
if (branchModificationInfos.getConnected1() != null) {
updateConnection(branch, Branch.Side.ONE, modificationInfos.getConnected1().getValue());
}
if (branchModificationInfos.getConnected2() != null) {
updateConnection(branch, Branch.Side.TWO, modificationInfos.getConnected2().getValue());
}
}

private void updateConnection(Branch<?> branch, Branch.Side side, Boolean connectionChange) {
if (branch.getTerminal(side).isConnected() && Boolean.FALSE.equals(connectionChange)) {
branch.getTerminal(side).disconnect();
} else if (!branch.getTerminal(side).isConnected() && Boolean.TRUE.equals(connectionChange)) {
branch.getTerminal(side).connect();
}
}

protected void modifyCurrentLimits(CurrentLimitsModificationInfos currentLimitsInfos, CurrentLimitsAdder limitsAdder, CurrentLimits currentLimits, List<Report> limitsReports) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ private void modifyBattery(Battery battery, BatteryModificationInfos modificatio

modifyBatteryLimitsAttributes(modificationInfos, battery, subReporter);
modifyBatterySetpointsAttributes(modificationInfos, battery, subReporter);
ModificationUtils.getInstance().modifyInjectionConnection(modificationInfos, battery);
}

private void modifyBatterySetpointsAttributes(BatteryModificationInfos modificationInfos,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,8 @@ private void modifyGenerator(Generator generator, GeneratorModificationInfos mod
modifyGeneratorSetpointsAttributes(modificationInfos, generator, subReporter);
modifyGeneratorShortCircuitAttributes(modificationInfos, generator, subReporter);
modifyGeneratorStartUpAttributes(modificationInfos, generator, subReporter);

ModificationUtils.getInstance().modifyInjectionConnection(modificationInfos, generator);
}

private void modifyGeneratorShortCircuitAttributes(GeneratorModificationInfos modificationInfos,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public void apply(Network network, Reporter subReporter) {
.build());
}
reportElementaryCreations(subReporter);
ModificationUtils.getInstance().disconnectInjection(modificationInfos, network.getLoad(modificationInfos.getEquipmentId()), subReporter);
ModificationUtils.getInstance().disconnectCreatedInjection(modificationInfos, network.getLoad(modificationInfos.getEquipmentId()), subReporter);

// properties
Load load = network.getLoad(modificationInfos.getEquipmentId());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,6 @@ private void modifyLoad(Load load, Reporter subReporter) {
// properties
PropertiesUtils.applyProperties(load, subReporter, modificationInfos.getProperties());

// TODO connectivity modification
ModificationUtils.getInstance().modifyInjectionConnection(modificationInfos, load);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -527,7 +527,7 @@ public Terminal getTerminalFromIdentifiable(Network network, String equipmentId,
return null;
}

public void disconnectInjection(InjectionCreationInfos modificationInfos, Injection<?> injection, Reporter subReporter) {
public void disconnectCreatedInjection(InjectionCreationInfos modificationInfos, Injection<?> injection, Reporter subReporter) {
// A newly created injection is connected by default, unless we choose not to do
if (!modificationInfos.isConnected()) {
injection.getTerminal().disconnect();
Expand All @@ -540,6 +540,16 @@ public void disconnectInjection(InjectionCreationInfos modificationInfos, Inject
}
}

public void modifyInjectionConnection(InjectionModificationInfos modificationInfos, Injection<?> injection) {
if (modificationInfos.getConnected() != null) {
if (injection.getTerminal().isConnected() && Boolean.FALSE.equals(modificationInfos.getConnected().getValue())) {
injection.getTerminal().disconnect();
} else if (!injection.getTerminal().isConnected() && Boolean.TRUE.equals(modificationInfos.getConnected().getValue())) {
injection.getTerminal().connect();
}
}
}

public void disconnectBranch(BranchCreationInfos modificationInfos, Branch<?> branch, Reporter subReporter) {
// A newly created branch is connected by default on both sides, unless we choose not to do
if (!modificationInfos.isConnected1()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ public void apply(Network network, Reporter subReporter) {
.withSeverity(TypedValue.INFO_SEVERITY)
.build());
}
ModificationUtils.getInstance().disconnectInjection(modificationInfos, network.getShuntCompensator(modificationInfos.getEquipmentId()), subReporter);
ModificationUtils.getInstance().disconnectCreatedInjection(modificationInfos, network.getShuntCompensator(modificationInfos.getEquipmentId()), subReporter);
}

private ShuntCompensatorAdder createShuntAdderInNodeBreaker(VoltageLevel voltageLevel, ShuntCompensatorCreationInfos shuntCompensatorInfos) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,8 @@ public void apply(Network network, Reporter subReporter) {
if (shuntCompensator.getModelType() == ShuntCompensatorModelType.LINEAR) {
applyModificationOnLinearModel(subReporter, shuntCompensator, voltageLevel);
}

ModificationUtils.getInstance().modifyInjectionConnection(modificationInfos, shuntCompensator);
}

private void modifyMaximumSectionCount(List<Report> reports, ShuntCompensator shuntCompensator, ShuntCompensatorLinearModel model) {
Expand Down
Loading

0 comments on commit a9215f4

Please sign in to comment.