diff --git a/pom.xml b/pom.xml
index 3c643eeae..205972300 100644
--- a/pom.xml
+++ b/pom.xml
@@ -51,7 +51,7 @@
**/migration/**/*
gridsuite
org.gridsuite:network-modification-server
- 0.54.0
+ 0.55.0
diff --git a/src/main/java/org/gridsuite/modification/server/entities/equipment/modification/VoltageInitModificationEntity.java b/src/main/java/org/gridsuite/modification/server/entities/equipment/modification/VoltageInitModificationEntity.java
index 368d43361..b935beade 100644
--- a/src/main/java/org/gridsuite/modification/server/entities/equipment/modification/VoltageInitModificationEntity.java
+++ b/src/main/java/org/gridsuite/modification/server/entities/equipment/modification/VoltageInitModificationEntity.java
@@ -26,6 +26,10 @@
import jakarta.persistence.ForeignKey;
import jakarta.persistence.Index;
import jakarta.persistence.Table;
+import jakarta.persistence.Column;
+
+import java.time.Instant;
+import java.time.temporal.ChronoUnit;
import java.util.List;
import java.util.stream.Collectors;
@@ -75,6 +79,15 @@ public class VoltageInitModificationEntity extends ModificationEntity {
foreignKey = @ForeignKey(name = "VoltageInitModificationEntity_buses_fk1"))
private List buses;
+ @Column(name = "rootNetworkName")
+ private String rootNetworkName;
+
+ @Column(name = "nodeName")
+ private String nodeName;
+
+ @Column(name = "computationDate", columnDefinition = "timestamptz")
+ private Instant computationDate;
+
public VoltageInitModificationEntity(VoltageInitModificationInfos voltageInitModificationInfos) {
super(voltageInitModificationInfos);
assignAttributes(voltageInitModificationInfos);
@@ -93,7 +106,10 @@ private void assignAttributes(VoltageInitModificationInfos voltageInitModificati
vscConverterStations = toEmbeddableVoltageInitVscConverterStations(voltageInitModificationInfos.getVscConverterStations());
shuntCompensators = toEmbeddableVoltageInitShuntCompensators(voltageInitModificationInfos.getShuntCompensators());
buses = toEmbeddableVoltageInitBuses(voltageInitModificationInfos.getBuses());
-
+ rootNetworkName = voltageInitModificationInfos.getRootNetworkName();
+ nodeName = voltageInitModificationInfos.getNodeName();
+ //We need to limit the precision to avoid database precision storage limit issue (postgres has a precision of 6 digits while h2 can go to 9)
+ this.computationDate = voltageInitModificationInfos.getComputationDate() != null ? voltageInitModificationInfos.getComputationDate().truncatedTo(ChronoUnit.MICROS) : null;
}
public static List toEmbeddableVoltageInitGenerators(List generators) {
@@ -187,6 +203,9 @@ public VoltageInitModificationInfos toModificationInfos() {
.vscConverterStations(toVscConverterStationsModification(vscConverterStations))
.shuntCompensators(toShuntCompensatorsModification(shuntCompensators))
.buses(toBusesModification(buses))
+ .rootNetworkName(getRootNetworkName())
+ .nodeName(getNodeName())
+ .computationDate(getComputationDate())
.build();
}
}
diff --git a/src/main/resources/db/changelog/changesets/changelog_20251205T094612Z.xml b/src/main/resources/db/changelog/changesets/changelog_20251205T094612Z.xml
new file mode 100644
index 000000000..4cb20c9aa
--- /dev/null
+++ b/src/main/resources/db/changelog/changesets/changelog_20251205T094612Z.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/db/changelog/db.changelog-master.yaml b/src/main/resources/db/changelog/db.changelog-master.yaml
index 671f84e69..f0346ee9a 100644
--- a/src/main/resources/db/changelog/db.changelog-master.yaml
+++ b/src/main/resources/db/changelog/db.changelog-master.yaml
@@ -443,4 +443,7 @@ databaseChangeLog:
relativeToChangelogFile: true
- include:
file: changesets/changelog_20251128T072356Z.xml
- relativeToChangelogFile: true
\ No newline at end of file
+ relativeToChangelogFile: true
+ - include:
+ file: changesets/changelog_20251205T094612Z.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 fa2ed09f3..3c9ea4108 100644
--- a/src/test/java/org/gridsuite/modification/server/ModificationControllerTest.java
+++ b/src/test/java/org/gridsuite/modification/server/ModificationControllerTest.java
@@ -60,6 +60,7 @@
import java.io.IOException;
import java.io.InputStream;
+import java.time.Instant;
import java.util.*;
import java.util.stream.Collectors;
@@ -1609,6 +1610,9 @@ void testCreateVoltageInitModification() throws Exception {
.v(226.)
.angle(0.6)
.build()))
+ .rootNetworkName("rootNetwork")
+ .nodeName("node")
+ .computationDate(Instant.now())
.build();
UUID groupUuid = UUID.randomUUID();
diff --git a/src/test/java/org/gridsuite/modification/server/VoltageInitReportTest.java b/src/test/java/org/gridsuite/modification/server/VoltageInitReportTest.java
index 1bfcfb1bb..24429be04 100644
--- a/src/test/java/org/gridsuite/modification/server/VoltageInitReportTest.java
+++ b/src/test/java/org/gridsuite/modification/server/VoltageInitReportTest.java
@@ -147,6 +147,9 @@ private static List voltageInitModifications() {
VoltageInitShuntCompensatorModificationInfos.builder().shuntCompensatorId("v5shunt").sectionCount(0).connect(false).build(),
VoltageInitShuntCompensatorModificationInfos.builder().shuntCompensatorId("v6shunt").sectionCount(1).connect(false).build()))
.buses(List.of())
+ .rootNetworkName("rootNetwork")
+ .nodeName("node")
+ .computationDate(Instant.now())
.build())
);
}
diff --git a/src/test/java/org/gridsuite/modification/server/modifications/VoltageInitModificationTest.java b/src/test/java/org/gridsuite/modification/server/modifications/VoltageInitModificationTest.java
index 75190819a..d262b1b70 100644
--- a/src/test/java/org/gridsuite/modification/server/modifications/VoltageInitModificationTest.java
+++ b/src/test/java/org/gridsuite/modification/server/modifications/VoltageInitModificationTest.java
@@ -14,8 +14,11 @@
import org.junit.jupiter.api.Test;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.ResultActions;
+import com.fasterxml.jackson.core.type.TypeReference;
+import java.time.Instant;
import java.util.List;
+import java.util.Map;
import java.util.UUID;
import static org.gridsuite.modification.server.utils.NetworkUtil.createGenerator;
@@ -205,6 +208,9 @@ protected ModificationInfos buildModification() {
.v(230.)
.angle(0.5)
.build()))
+ .rootNetworkName("rootNetwork1")
+ .nodeName("node1")
+ .computationDate(Instant.now())
.build();
}
@@ -266,6 +272,9 @@ protected ModificationInfos buildModificationUpdate() {
.connect(false)
.build()))
.buses(List.of())
+ .rootNetworkName("rootNetwork2")
+ .nodeName("node2")
+ .computationDate(Instant.now())
.build();
}
@@ -366,4 +375,20 @@ protected void assertAfterNetworkModificationDeletion() {
assertEquals(225., getNetwork().getShuntCompensator("v5shunt").getTargetV(), 0.001);
assertEquals(0, getNetwork().getShuntCompensator("v6shunt").getSectionCount());
}
+
+ @Override
+ protected void testCreationModificationMessage(ModificationInfos modificationInfos) throws Exception {
+ assertEquals("VOLTAGE_INIT_MODIFICATION", modificationInfos.getMessageType());
+ Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { });
+ assertEquals("rootNetwork1", createdValues.get("rootNetworkName"));
+ assertEquals("node1", createdValues.get("nodeName"));
+ }
+
+ @Override
+ protected void testUpdateModificationMessage(ModificationInfos modificationInfos) throws Exception {
+ assertEquals("VOLTAGE_INIT_MODIFICATION", modificationInfos.getMessageType());
+ Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { });
+ assertEquals("rootNetwork2", updatedValues.get("rootNetworkName"));
+ assertEquals("node2", updatedValues.get("nodeName"));
+ }
}