Skip to content

Commit 2090a19

Browse files
authored
Add root network's original case uuid (#798)
Signed-off-by: Ayoub LABIDI <[email protected]>
1 parent 293cfa4 commit 2090a19

17 files changed

+111
-37
lines changed

src/main/java/org/gridsuite/study/server/controller/StudyController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ public ResponseEntity<Void> updateRootNetwork(@PathVariable("studyUuid") UUID st
223223
.id(rootNetworkUuid)
224224
.name(name)
225225
// .importParameters(importParameters) CANNOT BE PLACED IN DTO (not same type)
226-
.caseInfos(new CaseInfos(caseUuid, null, caseFormat))
226+
.caseInfos(new CaseInfos(caseUuid, null, null, caseFormat))
227227
.tag(tag)
228228
.build();
229229
// then pass importParameters separately

src/main/java/org/gridsuite/study/server/dto/BasicRootNetworkInfos.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
import java.util.UUID;
44

5-
public record BasicRootNetworkInfos(UUID rootNetworkUuid, String name, String tag, boolean isCreating) { }
5+
public record BasicRootNetworkInfos(UUID rootNetworkUuid, UUID originalCaseUuid, String name, String tag, boolean isCreating) { }

src/main/java/org/gridsuite/study/server/dto/CaseInfos.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
public class CaseInfos {
2222
private UUID caseUuid;
2323

24+
private UUID originalCaseUuid;
25+
2426
private String caseName;
2527

2628
private String caseFormat;
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/**
2+
* Copyright (c) 2025, RTE (http://www.rte-france.com)
3+
* This Source Code Form is subject to the terms of the Mozilla Public
4+
* License, v. 2.0. If a copy of the MPL was not distributed with this
5+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
6+
*/
7+
package org.gridsuite.study.server.dto;
8+
9+
import java.util.UUID;
10+
11+
public record RootNetworkCreationInfos(
12+
UUID caseUuid,
13+
UUID originalCaseUuid,
14+
UUID studyUuid,
15+
UUID rootNetworkUuid,
16+
String caseFormat
17+
) { }
18+

src/main/java/org/gridsuite/study/server/dto/RootNetworkInfos.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public RootNetworkEntity toEntity() {
3737
.networkUuid(networkInfos.getNetworkUuid())
3838
.networkId(networkInfos.getNetworkId())
3939
.caseUuid(caseInfos.getCaseUuid())
40+
.originalCaseUuid(caseInfos.getOriginalCaseUuid())
4041
.caseName(caseInfos.getCaseName())
4142
.caseFormat(caseInfos.getCaseFormat())
4243
.reportUuid(reportUuid)

src/main/java/org/gridsuite/study/server/dto/caseimport/CaseImportReceiver.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public class CaseImportReceiver {
2424
private UUID studyUuid;
2525
private UUID rootNetworkUuid;
2626
private UUID caseUuid;
27+
private UUID originalCaseUuid;
2728
private UUID reportUuid;
2829
private String userId;
2930
private Long startTime;

src/main/java/org/gridsuite/study/server/repository/rootnetwork/RootNetworkEntity.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ public class RootNetworkEntity {
6161
@Column(name = "caseUuid", nullable = false)
6262
private UUID caseUuid;
6363

64+
@Column(name = "originalCaseUuid")
65+
private UUID originalCaseUuid;
66+
6467
@Column(name = "caseName", nullable = false)
6568
private String caseName;
6669

@@ -88,7 +91,7 @@ public RootNetworkInfos toDto() {
8891
.name(this.name)
8992
.networkInfos(new NetworkInfos(this.networkUuid, this.networkId))
9093
.importParameters(this.importParameters)
91-
.caseInfos(new CaseInfos(this.caseUuid, this.caseName, this.caseFormat))
94+
.caseInfos(new CaseInfos(this.caseUuid, this.originalCaseUuid, this.caseName, this.caseFormat))
9295
.reportUuid(this.reportUuid)
9396
.tag(tag)
9497
.build();
@@ -99,6 +102,6 @@ public RootNetworkInfos toDto() {
99102
}
100103

101104
public BasicRootNetworkInfos toBasicDto() {
102-
return new BasicRootNetworkInfos(getId(), getName(), getTag(), false);
105+
return new BasicRootNetworkInfos(getId(), getOriginalCaseUuid(), getName(), getTag(), false);
103106
}
104107
}

src/main/java/org/gridsuite/study/server/repository/rootnetwork/RootNetworkRequestEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,6 @@ public RootNetworkRequestInfos toDto() {
4747
}
4848

4949
public BasicRootNetworkInfos toBasicDto() {
50-
return new BasicRootNetworkInfos(getId(), getName(), getTag(), true);
50+
return new BasicRootNetworkInfos(getId(), null, getName(), getTag(), true);
5151
}
5252
}

src/main/java/org/gridsuite/study/server/service/ConsumerService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ public Consumer<Message<String>> consumeCaseImportSucceeded() {
234234
UUID rootNetworkUuid = receiver.getRootNetworkUuid();
235235
CaseImportAction caseImportAction = receiver.getCaseImportAction();
236236

237-
CaseInfos caseInfos = new CaseInfos(caseUuid, caseName, caseFormat);
237+
CaseInfos caseInfos = new CaseInfos(caseUuid, receiver.getOriginalCaseUuid(), caseName, caseFormat);
238238
NetworkInfos networkInfos = new NetworkInfos(networkUuid, networkId);
239239
try {
240240
switch (caseImportAction) {

src/main/java/org/gridsuite/study/server/service/NetworkConversionService.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import jakarta.servlet.http.HttpServletResponse;
1919

2020
import org.apache.commons.lang3.StringUtils;
21+
import org.gridsuite.study.server.dto.RootNetworkCreationInfos;
2122
import org.gridsuite.study.server.dto.caseimport.CaseImportAction;
2223
import org.gridsuite.study.server.dto.caseimport.CaseImportReceiver;
2324
import org.gridsuite.study.server.StudyException;
@@ -64,23 +65,22 @@ public NetworkConversionService(@Value("${powsybl.services.network-conversion-se
6465
* - one variant for root node - INITIAL_VARIANT
6566
* - one variant cloned from the previous one for the 1st node - *variantId*
6667
*/
67-
public void persistNetwork(UUID caseUuid, UUID studyUuid, UUID rootNetworkUuid, String variantId, String userId, UUID importReportUuid, String caseFormat, Map<String, Object> importParameters, CaseImportAction caseImportAction) {
68+
public void persistNetwork(RootNetworkCreationInfos rootNetworkCreationInfos, String variantId, String userId, UUID importReportUuid, Map<String, Object> importParameters, CaseImportAction caseImportAction) {
6869
String receiver;
6970
try {
7071
receiver = URLEncoder.encode(objectMapper.writeValueAsString(
71-
new CaseImportReceiver(studyUuid, rootNetworkUuid, caseUuid, importReportUuid, userId, System.nanoTime(), caseImportAction
72-
)),
73-
StandardCharsets.UTF_8);
72+
new CaseImportReceiver(rootNetworkCreationInfos.studyUuid(), rootNetworkCreationInfos.rootNetworkUuid(), rootNetworkCreationInfos.caseUuid(), rootNetworkCreationInfos.originalCaseUuid(), importReportUuid, userId, System.nanoTime(), caseImportAction
73+
)), StandardCharsets.UTF_8);
7474
} catch (JsonProcessingException e) {
7575
throw new UncheckedIOException(e);
7676
}
7777

7878
UriComponentsBuilder builder = UriComponentsBuilder.fromPath(DELIMITER + NETWORK_CONVERSION_API_VERSION + "/networks")
79-
.queryParam(CASE_UUID, caseUuid)
79+
.queryParam(CASE_UUID, rootNetworkCreationInfos.caseUuid())
8080
.queryParamIfPresent(QUERY_PARAM_VARIANT_ID, Optional.ofNullable(variantId))
8181
.queryParam(REPORT_UUID, importReportUuid)
8282
.queryParam(QUERY_PARAM_RECEIVER, receiver)
83-
.queryParam(CASE_FORMAT, caseFormat);
83+
.queryParam(CASE_FORMAT, rootNetworkCreationInfos.caseFormat());
8484

8585
String path = builder
8686
.buildAndExpand()

0 commit comments

Comments
 (0)