Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean up Report management #611

Merged
merged 13 commits into from
Sep 26, 2024
4 changes: 0 additions & 4 deletions src/main/java/org/gridsuite/study/server/StudyConstants.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,8 @@ private StudyConstants() {
public static final String REPORT_UUID = "reportUuid";
public static final String UUIDS = "uuids";
public static final String QUERY_PARAM_ERROR_ON_GROUP_NOT_FOUND = "errorOnGroupNotFound";
public static final String QUERY_PARAM_ERROR_ON_REPORT_NOT_FOUND = "errorOnReportNotFound";
public static final String QUERY_PARAM_REPORT_TYPE_FILTER = "reportTypeFilter";
public static final String QUERY_PARAM_REPORT_DEFAULT_NAME = "defaultName";
public static final String QUERY_PARAM_REPORT_SEVERITY_LEVEL = "severityLevels";
public static final String QUERY_PARAM_REPORT_NAME_FILTER = "reportNameFilter";
public static final String QUERY_PARAM_REPORT_NAME_MATCHING_TYPE = "reportNameMatchingType";
public static final String QUERY_PARAM_RECEIVER = "receiver";
public static final String QUERY_PARAM_REPORT_UUID = "reportUuid";
public static final String QUERY_PARAM_REPORTER_ID = "reporterId";
Expand Down
11 changes: 0 additions & 11 deletions src/main/java/org/gridsuite/study/server/StudyController.java
Original file line number Diff line number Diff line change
Expand Up @@ -1057,17 +1057,6 @@ public ResponseEntity<List<Report>> getNodeReport(@Parameter(description = "Stud
return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getNodeReport(nodeUuid, reportId, severityLevels));
}

@GetMapping(value = "/studies/{studyUuid}/nodes/{nodeUuid}/subreport", produces = MediaType.APPLICATION_JSON_VALUE)
@Operation(summary = "Get node sub-report")
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The node subreport"), @ApiResponse(responseCode = "404", description = "The study/node is not found")})
public ResponseEntity<Report> getSubReport(@Parameter(description = "Study uuid") @PathVariable("studyUuid") UUID studyUuid,
@Parameter(description = "Node uuid") @PathVariable("nodeUuid") UUID nodeUuid,
@Parameter(description = "The report Id") @RequestParam(name = "reportId") String reportId,
@Parameter(description = "Severity levels") @RequestParam(name = "severityLevels", required = false) Set<String> severityLevels) {
studyService.assertIsStudyAndNodeExist(studyUuid, nodeUuid);
return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getSubReport(reportId, severityLevels));
}

@GetMapping(value = "/svg-component-libraries")
@Operation(summary = "Get a list of the available svg component libraries")
@ApiResponse(responseCode = "200", description = "The list of the available svg component libraries")
Expand Down
8 changes: 3 additions & 5 deletions src/main/java/org/gridsuite/study/server/dto/BuildInfos.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,15 @@ public class BuildInfos {

private String destinationVariantId;

private UUID reportUuid;

private List<UUID> modificationGroupUuids = new ArrayList<>();

private List<String> reporterIds = new ArrayList<>();
private List<ReportInfos> reportsInfos = new ArrayList<>();

private Set<UUID> modificationsToExclude = new HashSet<>();

public void insertModificationInfos(UUID modificationGroupUuid, String reporterId) {
public void insertModificationInfos(UUID modificationGroupUuid, ReportInfos reportInfos) {
modificationGroupUuids.add(0, modificationGroupUuid);
reporterIds.add(0, reporterId);
reportsInfos.add(0, reportInfos);
}

public void addModificationsToExclude(Set<UUID> modificationsUuid) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,6 @@ public class DeleteStudyInfos {
private UUID caseUuid;

private List<NodeModificationInfos> nodesModificationInfos;

private List<UUID> reportsUuids;
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,8 @@
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.gridsuite.study.server.service.StudyService;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;

/**
Expand All @@ -29,8 +25,6 @@ public class InvalidateNodeInfos {

private List<UUID> reportUuids = new ArrayList<>();

private Map<UUID, List<StudyService.ReportType>> reportTypesPerReport = new HashMap<>();

private List<String> variantIds = new ArrayList<>();

private List<UUID> loadFlowResultUuids = new ArrayList<>();
Expand All @@ -52,13 +46,6 @@ public void addReportUuid(UUID reportUuid) {
reportUuids.add(reportUuid);
}

public void addReportTypes(UUID reportUuid, List<StudyService.ReportType> reportTypes) {
if (!reportTypes.isEmpty() && !getReportUuids().contains(reportUuid)) {
// no need to remove some report parts if we remove the whole report
reportTypesPerReport.put(reportUuid, reportTypes);
}
}

public void addVariantId(String variantId) {
variantIds.add(variantId);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@

import java.util.UUID;

import org.gridsuite.study.server.networkmodificationtree.entities.NodeType;

/**
* @author Franck Lecuyer <franck.lecuyer at rte-france.com>
*/
Expand Down Expand Up @@ -42,4 +44,6 @@ public class NodeModificationInfos {
private UUID dynamicSimulationUuid;

private UUID stateEstimationUuid;

private NodeType nodeType;
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
@Schema(description = "Report infos")
public record ReportInfos(
UUID reportUuid,
String reporterId
UUID nodeUuid
) {

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@
import org.gridsuite.study.server.dto.NodeModificationInfos;
import org.gridsuite.study.server.networkmodificationtree.dto.AbstractNode;
import org.gridsuite.study.server.networkmodificationtree.dto.BuildStatus;
import org.gridsuite.study.server.networkmodificationtree.dto.NetworkModificationNode;
import org.gridsuite.study.server.networkmodificationtree.dto.NodeBuildStatus;
import org.gridsuite.study.server.networkmodificationtree.entities.AbstractNodeInfoEntity;
import org.gridsuite.study.server.networkmodificationtree.entities.NodeType;
import org.gridsuite.study.server.repository.networkmodificationtree.NodeInfoRepository;
import org.gridsuite.study.server.utils.PropertyUtils;

Expand Down Expand Up @@ -47,6 +49,15 @@ public UUID getModificationGroupUuid(AbstractNode node) {
public void updateComputationResultUuid(AbstractNode node, UUID resultUuid, ComputationType computationType) {
}

public void updateComputationReportUuid(AbstractNode node, UUID reportUuid, ComputationType computationType) {
}

public void setModificationReports(AbstractNode node, Map<UUID, UUID> reports) {
}

public void setComputationsReports(AbstractNode node, Map<String, UUID> reports) {
}

public NodeBuildStatus getNodeBuildStatus(AbstractNode node) {
return NodeBuildStatus.from(BuildStatus.NOT_BUILT);
}
Expand All @@ -60,6 +71,18 @@ public UUID getComputationResultUuid(AbstractNode node, ComputationType computat
return null;
}

public Map<String, UUID> getComputationReports(AbstractNode node) {
return new HashMap<>();
}

public Map<UUID, UUID> getModificationReports(AbstractNode node) {
return new HashMap<>();
}

public UUID getReportUuid(AbstractNode node) {
return null;
}

public void handleExcludeModification(AbstractNode node, UUID modificationUuid, boolean active) {
}

Expand All @@ -73,8 +96,11 @@ public void invalidateNodeBuildStatus(AbstractNode node, List<UUID> changedNodes
}

public void createNodeInfo(AbstractNode nodeInfo) {
if (nodeInfo.getReportUuid() == null) {
nodeInfo.setReportUuid(UUID.randomUUID());
if (nodeInfo.getType() == NodeType.NETWORK_MODIFICATION) {
NetworkModificationNode node = (NetworkModificationNode) nodeInfo;
if (node.getModificationReports() == null) {
node.setModificationReports(Map.of(node.getId(), UUID.randomUUID()));
}
}
nodeInfoRepository.save(toEntity(nodeInfo));
}
Expand All @@ -92,7 +118,6 @@ protected U completeNodeInfo(AbstractNodeInfoEntity nodeInfoEntity, U node) {
node.setName(nodeInfoEntity.getName());
node.setDescription(nodeInfoEntity.getDescription());
node.setReadOnly(nodeInfoEntity.getReadOnly());
node.setReportUuid(nodeInfoEntity.getReportUuid());
return node;
}

Expand All @@ -101,7 +126,6 @@ protected T completeEntityNodeInfo(AbstractNode node, T entity) {
entity.setName(node.getName());
entity.setDescription(node.getDescription());
entity.setReadOnly(node.getReadOnly());
entity.setReportUuid(node.getReportUuid());
return entity;
}

Expand Down Expand Up @@ -137,10 +161,6 @@ public UUID getModificationGroupUuid(UUID nodeUuid) {
return getModificationGroupUuid(getNode(nodeUuid));
}

public UUID getReportUuid(UUID nodeUuid) {
return getNode(nodeUuid).getReportUuid();
}

public void updateComputationResultUuid(UUID nodeUuid, UUID computationResultUuid, ComputationType computationType) {
updateComputationResultUuid(getNode(nodeUuid), computationResultUuid, computationType);
}
Expand All @@ -149,6 +169,30 @@ public UUID getComputationResultUuid(UUID nodeUuid, ComputationType computationT
return getComputationResultUuid(getNode(nodeUuid), computationType);
}

public Map<String, UUID> getComputationReports(UUID nodeUuid) {
return getComputationReports(getNode(nodeUuid));
}

public Map<UUID, UUID> getModificationReports(UUID nodeUuid) {
return getModificationReports(getNode(nodeUuid));
}

public UUID getReportUuid(UUID nodeUuid) {
return getReportUuid(getNode(nodeUuid));
}

public void updateComputationReportUuid(UUID nodeUuid, UUID reportUuid, ComputationType computationType) {
updateComputationReportUuid(getNode(nodeUuid), reportUuid, computationType);
}

public void setModificationReports(UUID nodeUuid, Map<UUID, UUID> reports) {
setModificationReports(getNode(nodeUuid), reports);
}

public void setComputationsReports(UUID nodeUuid, Map<String, UUID> reports) {
setComputationsReports(getNode(nodeUuid), reports);
}

public void updateNodeBuildStatus(UUID nodeUuid, NodeBuildStatus nodeBuildStatus, List<UUID> changedNodes) {
updateNodeBuildStatus(getNode(nodeUuid), nodeBuildStatus, changedNodes);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.UUID;

Expand Down Expand Up @@ -59,7 +60,9 @@ public NetworkModificationNodeInfoEntity toEntity(AbstractNode node) {
modificationNode.getNonEvacuatedEnergyResultUuid(),
modificationNode.getDynamicSimulationResultUuid(),
modificationNode.getStateEstimationResultUuid(),
modificationNode.getNodeBuildStatus().toEntity());
modificationNode.getNodeBuildStatus().toEntity(),
modificationNode.getComputationsReports(),
modificationNode.getModificationReports());
return completeEntityNodeInfo(node, networkModificationNodeInfoEntity);
}

Expand All @@ -79,7 +82,9 @@ public NetworkModificationNode toDto(NetworkModificationNodeInfoEntity node) {
node.getNonEvacuatedEnergyResultUuid(),
node.getDynamicSimulationResultUuid(),
node.getStateEstimationResultUuid(),
node.getNodeBuildStatus().toDto()));
node.getNodeBuildStatus().toDto(),
node.getComputationReports(),
node.getModificationReports()));
}

@Override
Expand Down Expand Up @@ -115,6 +120,40 @@ public void removeModificationsToExclude(AbstractNode node, List<UUID> modificat
}
}

@Override
public void updateComputationReportUuid(AbstractNode node, UUID reportUuid, ComputationType computationType) {
NetworkModificationNode modificationNode = (NetworkModificationNode) node;
modificationNode.getComputationsReports().put(computationType.name(), reportUuid);
updateNode(modificationNode);
}

@Override
public Map<String, UUID> getComputationReports(AbstractNode node) {
return ((NetworkModificationNode) node).getComputationsReports();
}

@Override
public Map<UUID, UUID> getModificationReports(AbstractNode node) {
return ((NetworkModificationNode) node).getModificationReports();
}

@Override
public UUID getReportUuid(AbstractNode node) {
return ((NetworkModificationNode) node).getModificationReports().get(node.getId());
}

@Override
public void setModificationReports(AbstractNode node, Map<UUID, UUID> modificationReports) {
((NetworkModificationNode) node).setModificationReports(modificationReports);
updateNode(node);
}

@Override
public void setComputationsReports(AbstractNode node, Map<String, UUID> computationReports) {
((NetworkModificationNode) node).setComputationsReports(computationReports);
updateNode(node);
}

@Override
public void updateComputationResultUuid(AbstractNode node, UUID computationUuid, ComputationType computationType) {
NetworkModificationNode modificationNode = (NetworkModificationNode) node;
Expand Down Expand Up @@ -173,7 +212,7 @@ public void invalidateNodeBuildStatus(AbstractNode node, List<UUID> changedNodes

modificationNode.setNodeBuildStatus(NodeBuildStatus.from(BuildStatus.NOT_BUILT));
modificationNode.setVariantId(UUID.randomUUID().toString());
modificationNode.setReportUuid(UUID.randomUUID());
modificationNode.setModificationReports(Map.of(modificationNode.getId(), UUID.randomUUID()));
updateNode(modificationNode, changedNodes);
}

Expand All @@ -184,7 +223,6 @@ public NodeModificationInfos getNodeModificationInfos(AbstractNode node) {
.id(networkModificationNode.getId())
.modificationGroupUuid(networkModificationNode.getModificationGroupUuid())
.variantId(networkModificationNode.getVariantId())
.reportUuid(networkModificationNode.getReportUuid())
.loadFlowUuid(networkModificationNode.getLoadFlowResultUuid())
.securityAnalysisUuid(networkModificationNode.getSecurityAnalysisResultUuid())
.sensitivityAnalysisUuid(networkModificationNode.getSensitivityAnalysisResultUuid())
Expand All @@ -194,6 +232,8 @@ public NodeModificationInfos getNodeModificationInfos(AbstractNode node) {
.voltageInitUuid(networkModificationNode.getVoltageInitResultUuid())
.dynamicSimulationUuid(networkModificationNode.getDynamicSimulationResultUuid())
.stateEstimationUuid(networkModificationNode.getStateEstimationResultUuid())
.reportUuid(networkModificationNode.getModificationReports().get(networkModificationNode.getId()))
.nodeType(networkModificationNode.getType())
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

package org.gridsuite.study.server.networkmodificationtree;

import java.util.UUID;

import org.gridsuite.study.server.dto.NodeModificationInfos;
import org.gridsuite.study.server.networkmodificationtree.dto.AbstractNode;
import org.gridsuite.study.server.networkmodificationtree.dto.RootNode;
Expand All @@ -24,12 +26,13 @@ public RootNodeInfoRepositoryProxy(RootNodeInfoRepository rootNodeInfoRepository
@Override
public RootNodeInfoEntity toEntity(AbstractNode node) {
var rootNodeInfoEntity = new RootNodeInfoEntity();
rootNodeInfoEntity.setReportUuid(((RootNode) node).getReportUuid());
return completeEntityNodeInfo(node, rootNodeInfoEntity);
}

@Override
public RootNode toDto(RootNodeInfoEntity node) {
return completeNodeInfo(node, new RootNode(null));
return completeNodeInfo(node, new RootNode(null, node.getReportUuid()));
}

@Override
Expand All @@ -39,10 +42,17 @@ public String getVariantId(AbstractNode node) {

@Override
public NodeModificationInfos getNodeModificationInfos(AbstractNode node) {
RootNode rootNode = (RootNode) node;
return NodeModificationInfos.builder()
.id(node.getId())
.id(rootNode.getId())
.variantId("") // we will use the network initial variant
.reportUuid(node.getReportUuid())
.reportUuid(rootNode.getReportUuid())
.nodeType(rootNode.getType())
.build();
}

@Override
public UUID getReportUuid(AbstractNode node) {
return ((RootNode) node).getReportUuid();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
*/
package org.gridsuite.study.server.networkmodificationtree.dto;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import io.swagger.v3.oas.annotations.media.Schema;
Expand Down Expand Up @@ -51,8 +50,5 @@ public abstract class AbstractNode {

Boolean readOnly;

@JsonIgnore
private UUID reportUuid;

NodeType type;
}
Loading
Loading