diff --git a/src/main/java/org/gridsuite/study/server/dto/DeleteNodeInfos.java b/src/main/java/org/gridsuite/study/server/dto/DeleteNodeInfos.java index 0a0368a77..c555c1aba 100644 --- a/src/main/java/org/gridsuite/study/server/dto/DeleteNodeInfos.java +++ b/src/main/java/org/gridsuite/study/server/dto/DeleteNodeInfos.java @@ -19,35 +19,12 @@ @NoArgsConstructor @Getter @Setter -public class DeleteNodeInfos { - private List removedNodeUuids = new ArrayList<>(); +public class DeleteNodeInfos extends NodeInfos { + private List removedNodeUuids = new ArrayList<>(); private List modificationGroupUuids = new ArrayList<>(); - - private List reportUuids = new ArrayList<>(); - private Map> variantIds = new HashMap<>(); - private List loadFlowResultUuids = new ArrayList<>(); - - private List securityAnalysisResultUuids = new ArrayList<>(); - - private List sensitivityAnalysisResultUuids = new ArrayList<>(); - - private List shortCircuitAnalysisResultUuids = new ArrayList<>(); - - private List oneBusShortCircuitAnalysisResultUuids = new ArrayList<>(); - - private List voltageInitResultUuids = new ArrayList<>(); - - private List dynamicSimulationResultUuids = new ArrayList<>(); - - private List dynamicSecurityAnalysisResultUuids = new ArrayList<>(); - - private List stateEstimationResultUuids = new ArrayList<>(); - - private List pccMinResultUuids = new ArrayList<>(); - public void addRemovedNodeUuid(UUID removedNodeUuid) { removedNodeUuids.add(removedNodeUuid); } @@ -56,52 +33,8 @@ public void addModificationGroupUuid(UUID modificationGroupUuid) { modificationGroupUuids.add(modificationGroupUuid); } - public void addReportUuid(UUID reportUuid) { - reportUuids.add(reportUuid); - } - public void addVariantId(UUID networkUuid, String variantId) { variantIds.getOrDefault(networkUuid, new ArrayList<>()).add(variantId); } - public void addLoadFlowResultUuid(UUID loadFlowResultUuid) { - loadFlowResultUuids.add(loadFlowResultUuid); - } - - public void addSecurityAnalysisResultUuid(UUID securityAnalysisResultUuid) { - securityAnalysisResultUuids.add(securityAnalysisResultUuid); - } - - public void addDynamicSimulationResultUuid(UUID dynamicSimulationResultUuid) { - dynamicSimulationResultUuids.add(dynamicSimulationResultUuid); - } - - public void addDynamicSecurityAnalysisResultUuid(UUID dynamicSecurityAnalysisResultUuid) { - dynamicSecurityAnalysisResultUuids.add(dynamicSecurityAnalysisResultUuid); - } - - public void addSensitivityAnalysisResultUuid(UUID sensitivityAnalysisResultUuid) { - sensitivityAnalysisResultUuids.add(sensitivityAnalysisResultUuid); - } - - public void addShortCircuitAnalysisResultUuid(UUID shortCircuitAnalysisResultUuid) { - shortCircuitAnalysisResultUuids.add(shortCircuitAnalysisResultUuid); - } - - public void addOneBusShortCircuitAnalysisResultUuid(UUID oneBusShortCircuitAnalysisResultUuid) { - oneBusShortCircuitAnalysisResultUuids.add(oneBusShortCircuitAnalysisResultUuid); - } - - public void addVoltageInitResultUuid(UUID voltageInitResultUuid) { - voltageInitResultUuids.add(voltageInitResultUuid); - } - - public void addStateEstimationResultUuid(UUID stateEstimationResultUuid) { - stateEstimationResultUuids.add(stateEstimationResultUuid); - } - - public void addPccMinResultUuid(UUID pccMinResultUuid) { - pccMinResultUuids.add(pccMinResultUuid); - } - } diff --git a/src/main/java/org/gridsuite/study/server/dto/InvalidateNodeInfos.java b/src/main/java/org/gridsuite/study/server/dto/InvalidateNodeInfos.java index d959ea16d..f2368d0cc 100644 --- a/src/main/java/org/gridsuite/study/server/dto/InvalidateNodeInfos.java +++ b/src/main/java/org/gridsuite/study/server/dto/InvalidateNodeInfos.java @@ -10,165 +10,61 @@ import lombok.NoArgsConstructor; import lombok.Setter; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.UUID; +import java.util.*; /** * @author Nicolas Noir */ @NoArgsConstructor -public class InvalidateNodeInfos { +public class InvalidateNodeInfos extends NodeInfos { @Getter @Setter private UUID networkUuid; private Set nodeUuids = new HashSet<>(); private Set groupUuids = new HashSet<>(); - - private Set reportUuids = new HashSet<>(); private Set variantIds = new HashSet<>(); - private Set loadFlowResultUuids = new HashSet<>(); - private Set securityAnalysisResultUuids = new HashSet<>(); - private Set sensitivityAnalysisResultUuids = new HashSet<>(); - private Set shortCircuitAnalysisResultUuids = new HashSet<>(); - private Set oneBusShortCircuitAnalysisResultUuids = new HashSet<>(); - private Set voltageInitResultUuids = new HashSet<>(); - private Set stateEstimationResultUuids = new HashSet<>(); - private Set pccMinResultUuids = new HashSet<>(); - private Set dynamicSimulationResultUuids = new HashSet<>(); - private Set dynamicSecurityAnalysisResultUuids = new HashSet<>(); - public List getNodeUuids() { - return nodeUuids.stream().toList(); + return new ArrayList<>(nodeUuids); } public List getGroupUuids() { - return groupUuids.stream().toList(); + return new ArrayList<>(groupUuids); } - public List getReportUuids() { - return reportUuids.stream().toList(); + public void addNodeUuid(UUID nodeUuid) { + nodeUuids.add(nodeUuid); } public List getVariantIds() { return variantIds.stream().toList(); } - public List getLoadFlowResultUuids() { - return loadFlowResultUuids.stream().toList(); - } - - public List getSecurityAnalysisResultUuids() { - return securityAnalysisResultUuids.stream().toList(); - } - - public List getSensitivityAnalysisResultUuids() { - return sensitivityAnalysisResultUuids.stream().toList(); - } - - public List getShortCircuitAnalysisResultUuids() { - return shortCircuitAnalysisResultUuids.stream().toList(); - } - - public List getOneBusShortCircuitAnalysisResultUuids() { - return oneBusShortCircuitAnalysisResultUuids.stream().toList(); - } - - public List getVoltageInitResultUuids() { - return voltageInitResultUuids.stream().toList(); - } - - public List getStateEstimationResultUuids() { - return stateEstimationResultUuids.stream().toList(); - } - - public List getPccMinResultUuids() { - return pccMinResultUuids.stream().toList(); - } - - public List getDynamicSimulationResultUuids() { - return dynamicSimulationResultUuids.stream().toList(); - } - - public List getDynamicSecurityAnalysisResultUuids() { - return dynamicSecurityAnalysisResultUuids.stream().toList(); - } - - public void addReportUuid(UUID reportUuid) { - reportUuids.add(reportUuid); - } - public void addVariantId(String variantId) { variantIds.add(variantId); } - public void addLoadFlowResultUuid(UUID loadFlowResultUuid) { - loadFlowResultUuids.add(loadFlowResultUuid); - } - - public void addSecurityAnalysisResultUuid(UUID securityAnalysisResultUuid) { - securityAnalysisResultUuids.add(securityAnalysisResultUuid); - } - - public void addSensitivityAnalysisResultUuid(UUID sensitivityAnalysisResultUuid) { - sensitivityAnalysisResultUuids.add(sensitivityAnalysisResultUuid); - } - - public void addShortCircuitAnalysisResultUuid(UUID shortCircuitAnalysisResultUuid) { - shortCircuitAnalysisResultUuids.add(shortCircuitAnalysisResultUuid); - } - - public void addOneBusShortCircuitAnalysisResultUuid(UUID oneBusShortCircuitAnalysisResultUuid) { - oneBusShortCircuitAnalysisResultUuids.add(oneBusShortCircuitAnalysisResultUuid); - } - - public void addVoltageInitResultUuid(UUID voltageInitResultUuid) { - voltageInitResultUuids.add(voltageInitResultUuid); - } - - public void addDynamicSimulationResultUuid(UUID dynamicSimulationResultUuid) { - dynamicSimulationResultUuids.add(dynamicSimulationResultUuid); - } - - public void addDynamicSecurityAnalysisResultUuid(UUID dynamicSecurityAnalysisResultUuid) { - dynamicSecurityAnalysisResultUuids.add(dynamicSecurityAnalysisResultUuid); - } - - public void addStateEstimationResultUuid(UUID stateEstimationResultUuid) { - stateEstimationResultUuids.add(stateEstimationResultUuid); - } - - public void addPccMinResultUuid(UUID pccMinResultUuid) { - pccMinResultUuids.add(pccMinResultUuid); - } - public void addGroupUuids(List groupUuids) { this.groupUuids.addAll(groupUuids); } - public void addNodeUuid(UUID nodeUuid) { - this.nodeUuids.add(nodeUuid); - } - - public void add(InvalidateNodeInfos invalidateNodeInfos) { - nodeUuids.addAll(invalidateNodeInfos.getNodeUuids()); - groupUuids.addAll(invalidateNodeInfos.getGroupUuids()); + public void add(InvalidateNodeInfos infos) { + nodeUuids.addAll(infos.getNodeUuids()); + groupUuids.addAll(infos.getGroupUuids()); - reportUuids.addAll(invalidateNodeInfos.getReportUuids()); - variantIds.addAll(invalidateNodeInfos.getVariantIds()); + reportUuids.addAll(infos.getReportUuids()); + variantIds.addAll(infos.getVariantIds()); - loadFlowResultUuids.addAll(invalidateNodeInfos.getLoadFlowResultUuids()); - securityAnalysisResultUuids.addAll(invalidateNodeInfos.getSecurityAnalysisResultUuids()); - sensitivityAnalysisResultUuids.addAll(invalidateNodeInfos.getSensitivityAnalysisResultUuids()); - shortCircuitAnalysisResultUuids.addAll(invalidateNodeInfos.getShortCircuitAnalysisResultUuids()); - oneBusShortCircuitAnalysisResultUuids.addAll(invalidateNodeInfos.getOneBusShortCircuitAnalysisResultUuids()); - voltageInitResultUuids.addAll(invalidateNodeInfos.getVoltageInitResultUuids()); - stateEstimationResultUuids.addAll(invalidateNodeInfos.getStateEstimationResultUuids()); - pccMinResultUuids.addAll(invalidateNodeInfos.getPccMinResultUuids()); - dynamicSimulationResultUuids.addAll(invalidateNodeInfos.getDynamicSimulationResultUuids()); - dynamicSecurityAnalysisResultUuids.addAll(invalidateNodeInfos.getDynamicSecurityAnalysisResultUuids()); + loadFlowResultUuids.addAll(infos.getLoadFlowResultUuids()); + securityAnalysisResultUuids.addAll(infos.getSecurityAnalysisResultUuids()); + sensitivityAnalysisResultUuids.addAll(infos.getSensitivityAnalysisResultUuids()); + shortCircuitAnalysisResultUuids.addAll(infos.getShortCircuitAnalysisResultUuids()); + oneBusShortCircuitAnalysisResultUuids.addAll(infos.getOneBusShortCircuitAnalysisResultUuids()); + voltageInitResultUuids.addAll(infos.getVoltageInitResultUuids()); + stateEstimationResultUuids.addAll(infos.getStateEstimationResultUuids()); + pccMinResultUuids.addAll(infos.getPccMinResultUuids()); + dynamicSimulationResultUuids.addAll(infos.getDynamicSimulationResultUuids()); + dynamicSecurityAnalysisResultUuids.addAll(infos.getDynamicSecurityAnalysisResultUuids()); } } diff --git a/src/main/java/org/gridsuite/study/server/dto/NodeInfos.java b/src/main/java/org/gridsuite/study/server/dto/NodeInfos.java new file mode 100644 index 000000000..6ec8d6c2c --- /dev/null +++ b/src/main/java/org/gridsuite/study/server/dto/NodeInfos.java @@ -0,0 +1,120 @@ +package org.gridsuite.study.server.dto; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.experimental.SuperBuilder; + +import java.util.*; + +/** + * Common base class for DTOs that track analysis results, reports, and variants. + */ + +@NoArgsConstructor +@Getter +@Setter +@SuperBuilder +public class NodeInfos { + + protected List reportUuids = new ArrayList<>(); + protected List loadFlowResultUuids = new ArrayList<>(); + protected List securityAnalysisResultUuids = new ArrayList<>(); + protected List sensitivityAnalysisResultUuids = new ArrayList<>(); + protected List shortCircuitAnalysisResultUuids = new ArrayList<>(); + protected List oneBusShortCircuitAnalysisResultUuids = new ArrayList<>(); + protected List voltageInitResultUuids = new ArrayList<>(); + protected List stateEstimationResultUuids = new ArrayList<>(); + protected List pccMinResultUuids = new ArrayList<>(); + protected List dynamicSimulationResultUuids = new ArrayList<>(); + protected List dynamicSecurityAnalysisResultUuids = new ArrayList<>(); + + public List getReportUuids() { + return new ArrayList<>(reportUuids); + } + + public List getLoadFlowResultUuids() { + return new ArrayList<>(loadFlowResultUuids); + } + + public List getSecurityAnalysisResultUuids() { + return new ArrayList<>(securityAnalysisResultUuids); + } + + public List getSensitivityAnalysisResultUuids() { + return new ArrayList<>(sensitivityAnalysisResultUuids); + } + + public List getShortCircuitAnalysisResultUuids() { + return new ArrayList<>(shortCircuitAnalysisResultUuids); + } + + public List getOneBusShortCircuitAnalysisResultUuids() { + return new ArrayList<>(oneBusShortCircuitAnalysisResultUuids); + } + + public List getVoltageInitResultUuids() { + return new ArrayList<>(voltageInitResultUuids); + } + + public List getStateEstimationResultUuids() { + return new ArrayList<>(stateEstimationResultUuids); + } + + public List getPccMinResultUuids() { + return new ArrayList<>(pccMinResultUuids); + } + + public List getDynamicSimulationResultUuids() { + return new ArrayList<>(dynamicSimulationResultUuids); + } + + public List getDynamicSecurityAnalysisResultUuids() { + return new ArrayList<>(dynamicSecurityAnalysisResultUuids); + } + + // Adders + public void addReportUuid(UUID reportUuid) { + reportUuids.add(reportUuid); + } + + public void addLoadFlowResultUuid(UUID uuid) { + loadFlowResultUuids.add(uuid); + } + + public void addSecurityAnalysisResultUuid(UUID uuid) { + securityAnalysisResultUuids.add(uuid); + } + + public void addSensitivityAnalysisResultUuid(UUID uuid) { + sensitivityAnalysisResultUuids.add(uuid); + } + + public void addShortCircuitAnalysisResultUuid(UUID uuid) { + shortCircuitAnalysisResultUuids.add(uuid); + } + + public void addOneBusShortCircuitAnalysisResultUuid(UUID uuid) { + oneBusShortCircuitAnalysisResultUuids.add(uuid); + } + + public void addVoltageInitResultUuid(UUID uuid) { + voltageInitResultUuids.add(uuid); + } + + public void addStateEstimationResultUuid(UUID uuid) { + stateEstimationResultUuids.add(uuid); + } + + public void addPccMinResultUuid(UUID uuid) { + pccMinResultUuids.add(uuid); + } + + public void addDynamicSimulationResultUuid(UUID uuid) { + dynamicSimulationResultUuids.add(uuid); + } + + public void addDynamicSecurityAnalysisResultUuid(UUID uuid) { + dynamicSecurityAnalysisResultUuids.add(uuid); + } +} diff --git a/src/main/java/org/gridsuite/study/server/service/NodeDeletionService.java b/src/main/java/org/gridsuite/study/server/service/NodeDeletionService.java new file mode 100644 index 000000000..ae2301c18 --- /dev/null +++ b/src/main/java/org/gridsuite/study/server/service/NodeDeletionService.java @@ -0,0 +1,45 @@ +package org.gridsuite.study.server.service; + +import lombok.RequiredArgsConstructor; + +import org.gridsuite.study.server.dto.NodeInfos; +import org.gridsuite.study.server.service.dynamicsecurityanalysis.DynamicSecurityAnalysisService; +import org.gridsuite.study.server.service.dynamicsimulation.DynamicSimulationService; +import org.gridsuite.study.server.service.shortcircuit.ShortCircuitService; +import org.springframework.stereotype.Service; + +import java.util.concurrent.CompletableFuture; + +@Service +@RequiredArgsConstructor +public class NodeDeletionService { + + private final StudyServerExecutionService studyServerExecutionService; + private final ReportService reportService; + private final LoadFlowService loadFlowService; + private final SecurityAnalysisService securityAnalysisService; + private final SensitivityAnalysisService sensitivityAnalysisService; + private final ShortCircuitService shortCircuitService; + private final VoltageInitService voltageInitService; + private final DynamicSimulationService dynamicSimulationService; + private final DynamicSecurityAnalysisService dynamicSecurityAnalysisService; + private final StateEstimationService stateEstimationService; + private final PccMinService pccMinService; + + // /!\ Do not wait completion and do not throw exception + public CompletableFuture delete(NodeInfos infos) { + return CompletableFuture.allOf( + studyServerExecutionService.runAsync(() -> reportService.deleteReports(infos.getReportUuids())), + studyServerExecutionService.runAsync(() -> loadFlowService.deleteLoadFlowResults(infos.getLoadFlowResultUuids())), + studyServerExecutionService.runAsync(() -> securityAnalysisService.deleteSecurityAnalysisResults(infos.getSecurityAnalysisResultUuids())), + studyServerExecutionService.runAsync(() -> sensitivityAnalysisService.deleteSensitivityAnalysisResults(infos.getSensitivityAnalysisResultUuids())), + studyServerExecutionService.runAsync(() -> shortCircuitService.deleteShortCircuitAnalysisResults(infos.getShortCircuitAnalysisResultUuids())), + studyServerExecutionService.runAsync(() -> shortCircuitService.deleteShortCircuitAnalysisResults(infos.getOneBusShortCircuitAnalysisResultUuids())), + studyServerExecutionService.runAsync(() -> voltageInitService.deleteVoltageInitResults(infos.getVoltageInitResultUuids())), + studyServerExecutionService.runAsync(() -> dynamicSimulationService.deleteResults(infos.getDynamicSimulationResultUuids())), + studyServerExecutionService.runAsync(() -> dynamicSecurityAnalysisService.deleteResults(infos.getDynamicSecurityAnalysisResultUuids())), + studyServerExecutionService.runAsync(() -> stateEstimationService.deleteStateEstimationResults(infos.getStateEstimationResultUuids())), + studyServerExecutionService.runAsync(() -> pccMinService.deletePccMinResults(infos.getPccMinResultUuids())) + ); + } +} diff --git a/src/main/java/org/gridsuite/study/server/service/RootNetworkNodeInfoService.java b/src/main/java/org/gridsuite/study/server/service/RootNetworkNodeInfoService.java index ab4397dd3..f219d7cf9 100644 --- a/src/main/java/org/gridsuite/study/server/service/RootNetworkNodeInfoService.java +++ b/src/main/java/org/gridsuite/study/server/service/RootNetworkNodeInfoService.java @@ -40,7 +40,6 @@ import org.springframework.transaction.annotation.Transactional; import java.util.*; -import java.util.concurrent.CompletableFuture; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -67,6 +66,7 @@ public class RootNetworkNodeInfoService { private final StateEstimationService stateEstimationService; private final PccMinService pccMinService; private final ReportService reportService; + private final NodeDeletionService nodeDeletionService; public RootNetworkNodeInfoService(RootNetworkNodeInfoRepository rootNetworkNodeInfoRepository, NetworkModificationNodeInfoRepository networkModificationNodeInfoRepository, @@ -80,7 +80,7 @@ public RootNetworkNodeInfoService(RootNetworkNodeInfoRepository rootNetworkNodeI DynamicSecurityAnalysisService dynamicSecurityAnalysisService, StateEstimationService stateEstimationService, PccMinService pccMinService, - ReportService reportService) { + ReportService reportService, NodeDeletionService nodeDeletionService) { this.rootNetworkNodeInfoRepository = rootNetworkNodeInfoRepository; this.networkModificationNodeInfoRepository = networkModificationNodeInfoRepository; this.studyServerExecutionService = studyServerExecutionService; @@ -94,6 +94,7 @@ public RootNetworkNodeInfoService(RootNetworkNodeInfoRepository rootNetworkNodeI this.stateEstimationService = stateEstimationService; this.pccMinService = pccMinService; this.reportService = reportService; + this.nodeDeletionService = nodeDeletionService; } public void createRootNetworkLinks(@NonNull UUID studyUuid, @NonNull RootNetworkEntity rootNetworkEntity) { @@ -563,21 +564,22 @@ public void updateRootNetworkNode(UUID nodeUuid, UUID rootNetworkUuid, RootNetwo } } - public void deleteRootNetworkNodeRemoteInfos(List rootNetworkNodeInfo) { - CompletableFuture.allOf( - studyServerExecutionService.runAsync(() -> reportService.deleteReports(rootNetworkNodeInfo.stream().map(this::getReportUuids).flatMap(Collection::stream).toList())), - studyServerExecutionService.runAsync(() -> loadFlowService.deleteLoadFlowResults(rootNetworkNodeInfo.stream().map(RootNetworkNodeInfo::getLoadFlowResultUuid).filter(Objects::nonNull).toList())), - studyServerExecutionService.runAsync(() -> securityAnalysisService.deleteSecurityAnalysisResults(rootNetworkNodeInfo.stream() - .map(RootNetworkNodeInfo::getSecurityAnalysisResultUuid).filter(Objects::nonNull).toList())), - studyServerExecutionService.runAsync(() -> sensitivityAnalysisService.deleteSensitivityAnalysisResults(rootNetworkNodeInfo.stream().map(RootNetworkNodeInfo::getSensitivityAnalysisResultUuid).filter(Objects::nonNull).toList())), - studyServerExecutionService.runAsync(() -> shortCircuitService.deleteShortCircuitAnalysisResults(rootNetworkNodeInfo.stream().map(RootNetworkNodeInfo::getShortCircuitAnalysisResultUuid).filter(Objects::nonNull).toList())), - studyServerExecutionService.runAsync(() -> shortCircuitService.deleteShortCircuitAnalysisResults(rootNetworkNodeInfo.stream().map(RootNetworkNodeInfo::getOneBusShortCircuitAnalysisResultUuid).filter(Objects::nonNull).toList())), - studyServerExecutionService.runAsync(() -> voltageInitService.deleteVoltageInitResults(rootNetworkNodeInfo.stream().map(RootNetworkNodeInfo::getVoltageInitResultUuid).filter(Objects::nonNull).toList())), - studyServerExecutionService.runAsync(() -> dynamicSimulationService.deleteResults(rootNetworkNodeInfo.stream().map(RootNetworkNodeInfo::getDynamicSimulationResultUuid).filter(Objects::nonNull).toList())), - studyServerExecutionService.runAsync(() -> dynamicSecurityAnalysisService.deleteResults(rootNetworkNodeInfo.stream().map(RootNetworkNodeInfo::getDynamicSecurityAnalysisResultUuid).filter(Objects::nonNull).toList())), - studyServerExecutionService.runAsync(() -> stateEstimationService.deleteStateEstimationResults(rootNetworkNodeInfo.stream().map(RootNetworkNodeInfo::getStateEstimationResultUuid).filter(Objects::nonNull).toList())), - studyServerExecutionService.runAsync(() -> pccMinService.deletePccMinResults(rootNetworkNodeInfo.stream().map(RootNetworkNodeInfo::getPccMinResultUuid).filter(Objects::nonNull).toList())) - ); + public void deleteRootNetworkNodeRemoteInfos(List rootNetworkNodeInfos) { + NodeInfos infos = NodeInfos.builder() + .reportUuids(rootNetworkNodeInfos.stream().map(this::getReportUuids).flatMap(Collection::stream).toList()) + .loadFlowResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getLoadFlowResultUuid).filter(Objects::nonNull).toList()) + .securityAnalysisResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getSecurityAnalysisResultUuid).filter(Objects::nonNull).toList()) + .sensitivityAnalysisResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getSensitivityAnalysisResultUuid).filter(Objects::nonNull).toList()) + .shortCircuitAnalysisResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getShortCircuitAnalysisResultUuid).filter(Objects::nonNull).toList()) + .oneBusShortCircuitAnalysisResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getOneBusShortCircuitAnalysisResultUuid).filter(Objects::nonNull).toList()) + .voltageInitResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getVoltageInitResultUuid).filter(Objects::nonNull).toList()) + .dynamicSimulationResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getDynamicSimulationResultUuid).filter(Objects::nonNull).toList()) + .dynamicSecurityAnalysisResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getDynamicSecurityAnalysisResultUuid).filter(Objects::nonNull).toList()) + .stateEstimationResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getStateEstimationResultUuid).filter(Objects::nonNull).toList()) + .pccMinResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getPccMinResultUuid).filter(Objects::nonNull).toList()) + .build(); + + nodeDeletionService.delete(infos); } @Transactional diff --git a/src/main/java/org/gridsuite/study/server/service/StudyService.java b/src/main/java/org/gridsuite/study/server/service/StudyService.java index 23ab3ed24..75fa54e5a 100644 --- a/src/main/java/org/gridsuite/study/server/service/StudyService.java +++ b/src/main/java/org/gridsuite/study/server/service/StudyService.java @@ -107,6 +107,7 @@ public class StudyService { StudyServerExecutionService studyServerExecutionService; private final String defaultDynamicSimulationProvider; + private final NodeDeletionService nodeDeletionService; private final StudyRepository studyRepository; private final StudyCreationRequestRepository studyCreationRequestRepository; @@ -165,7 +166,7 @@ public enum ReportType { @Autowired public StudyService( - @Value("${dynamic-simulation.default-provider}") String defaultDynamicSimulationProvider, + @Value("${dynamic-simulation.default-provider}") String defaultDynamicSimulationProvider, NodeDeletionService nodeDeletionService, StudyRepository studyRepository, StudyCreationRequestRepository studyCreationRequestRepository, NetworkService networkStoreService, @@ -202,6 +203,7 @@ public StudyService( RootNetworkNodeInfoService rootNetworkNodeInfoService, DirectoryService directoryService) { this.defaultDynamicSimulationProvider = defaultDynamicSimulationProvider; + this.nodeDeletionService = nodeDeletionService; this.studyRepository = studyRepository; this.studyCreationRequestRepository = studyCreationRequestRepository; this.networkStoreService = networkStoreService; @@ -2304,17 +2306,7 @@ private CompletableFuture deleteInvalidationInfos(InvalidateNodeInfos inva return CompletableFuture.allOf( studyServerExecutionService.runAsync(() -> networkStoreService.deleteVariants(invalidateNodeInfos.getNetworkUuid(), invalidateNodeInfos.getVariantIds())), studyServerExecutionService.runAsync(() -> networkModificationService.deleteIndexedModifications(invalidateNodeInfos.getGroupUuids(), invalidateNodeInfos.getNetworkUuid())), - studyServerExecutionService.runAsync(() -> reportService.deleteReports(invalidateNodeInfos.getReportUuids())), - studyServerExecutionService.runAsync(() -> loadflowService.deleteLoadFlowResults(invalidateNodeInfos.getLoadFlowResultUuids())), - studyServerExecutionService.runAsync(() -> securityAnalysisService.deleteSecurityAnalysisResults(invalidateNodeInfos.getSecurityAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> sensitivityAnalysisService.deleteSensitivityAnalysisResults(invalidateNodeInfos.getSensitivityAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> shortCircuitService.deleteShortCircuitAnalysisResults(invalidateNodeInfos.getShortCircuitAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> shortCircuitService.deleteShortCircuitAnalysisResults(invalidateNodeInfos.getOneBusShortCircuitAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> voltageInitService.deleteVoltageInitResults(invalidateNodeInfos.getVoltageInitResultUuids())), - studyServerExecutionService.runAsync(() -> dynamicSimulationService.deleteResults(invalidateNodeInfos.getDynamicSimulationResultUuids())), - studyServerExecutionService.runAsync(() -> dynamicSecurityAnalysisService.deleteResults(invalidateNodeInfos.getDynamicSecurityAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> stateEstimationService.deleteStateEstimationResults(invalidateNodeInfos.getStateEstimationResultUuids())), - studyServerExecutionService.runAsync(() -> pccMinService.deletePccMinResults(invalidateNodeInfos.getPccMinResultUuids())) + nodeDeletionService.delete(invalidateNodeInfos) ); } @@ -2324,17 +2316,7 @@ private void deleteNodesInfos(DeleteNodeInfos deleteNodeInfos) { studyServerExecutionService.runAsync(() -> deleteNodeInfos.getVariantIds().forEach(networkStoreService::deleteVariants)), studyServerExecutionService.runAsync(() -> deleteNodeInfos.getModificationGroupUuids().forEach(networkModificationService::deleteModifications)), studyServerExecutionService.runAsync(() -> deleteNodeInfos.getRemovedNodeUuids().forEach(dynamicSimulationEventService::deleteEventsByNodeId)), - studyServerExecutionService.runAsync(() -> reportService.deleteReports(deleteNodeInfos.getReportUuids())), - studyServerExecutionService.runAsync(() -> loadflowService.deleteLoadFlowResults(deleteNodeInfos.getLoadFlowResultUuids())), - studyServerExecutionService.runAsync(() -> securityAnalysisService.deleteSecurityAnalysisResults(deleteNodeInfos.getSecurityAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> sensitivityAnalysisService.deleteSensitivityAnalysisResults(deleteNodeInfos.getSensitivityAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> shortCircuitService.deleteShortCircuitAnalysisResults(deleteNodeInfos.getShortCircuitAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> shortCircuitService.deleteShortCircuitAnalysisResults(deleteNodeInfos.getOneBusShortCircuitAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> voltageInitService.deleteVoltageInitResults(deleteNodeInfos.getVoltageInitResultUuids())), - studyServerExecutionService.runAsync(() -> dynamicSimulationService.deleteResults(deleteNodeInfos.getDynamicSimulationResultUuids())), - studyServerExecutionService.runAsync(() -> dynamicSecurityAnalysisService.deleteResults(deleteNodeInfos.getDynamicSecurityAnalysisResultUuids())), - studyServerExecutionService.runAsync(() -> stateEstimationService.deleteStateEstimationResults(deleteNodeInfos.getStateEstimationResultUuids())), - studyServerExecutionService.runAsync(() -> pccMinService.deletePccMinResults(deleteNodeInfos.getPccMinResultUuids())) + nodeDeletionService.delete(deleteNodeInfos) ); }