|
15 | 15 | import com.univocity.parsers.csv.CsvWriter;
|
16 | 16 | import com.univocity.parsers.csv.CsvWriterSettings;
|
17 | 17 | import jakarta.persistence.EntityManager;
|
18 |
| -import lombok.SneakyThrows; |
19 | 18 | import org.apache.commons.lang3.StringUtils;
|
20 | 19 | import org.gridsuite.shortcircuit.server.ShortCircuitException;
|
21 | 20 | import org.gridsuite.shortcircuit.server.computation.service.AbstractComputationService;
|
@@ -69,17 +68,12 @@ public ShortCircuitService(final NotificationService notificationService, final
|
69 | 68 | this.entityManager = entityManager;
|
70 | 69 | }
|
71 | 70 |
|
72 |
| - @SneakyThrows |
73 | 71 | public UUID runAndSaveResult(UUID networkUuid, String variantId, String receiver, UUID reportUuid, String reporterId, String reportType,
|
74 |
| - String userId, String busId, @Nullable final UUID parametersUuid, @Nullable final String parametersPatch) { |
75 |
| - ShortCircuitParameters parameters = Optional.ofNullable(parametersUuid) |
76 |
| - .flatMap(parametersRepository::findById) |
77 |
| - .map(ShortCircuitService::fromEntity) |
78 |
| - .map(ShortCircuitParametersInfos::parameters) |
79 |
| - .orElseGet(() -> getDefaultDtoParameters().parameters()); |
80 |
| - if (parametersPatch != null) { |
81 |
| - parameters = updateDto(parameters, parametersPatch); |
82 |
| - } |
| 72 | + String userId, String busId, final Optional<UUID> parametersUuid, final Optional<ShortCircuitParametersInfos> givenParameters) { |
| 73 | + ShortCircuitParameters parameters = givenParameters.or(() -> parametersUuid.flatMap(parametersRepository::findById) |
| 74 | + .map(ShortCircuitService::fromEntity)) |
| 75 | + .map(ShortCircuitParametersInfos::parameters) |
| 76 | + .orElseGet(() -> getDefaultDtoParameters().parameters()); |
83 | 77 | parameters.setWithFortescueResult(StringUtils.isBlank(busId));
|
84 | 78 | return runAndSaveResult(new ShortCircuitRunContext(networkUuid, variantId, receiver, parameters, reportUuid, reporterId, reportType, userId, null, busId));
|
85 | 79 | }
|
@@ -183,25 +177,6 @@ private static ShortCircuitParametersInfos getDefaultDtoParameters() {
|
183 | 177 | return fromEntity(new AnalysisParametersEntity());
|
184 | 178 | }
|
185 | 179 |
|
186 |
| - private static void updateEntity(AnalysisParametersEntity parametersEntity, final ShortCircuitParametersInfos parametersInfos) { |
187 |
| - parametersEntity.setPredefinedParameters(parametersInfos.predefinedParameters()); |
188 |
| - final ShortCircuitParameters scParameters = parametersInfos.parameters(); |
189 |
| - parametersEntity.setWithLimitViolations(scParameters.isWithLimitViolations()); |
190 |
| - parametersEntity.setWithVoltageResult(scParameters.isWithVoltageResult()); |
191 |
| - parametersEntity.setWithFortescueResult(scParameters.isWithFortescueResult()); |
192 |
| - parametersEntity.setWithFeederResult(scParameters.isWithFeederResult()); |
193 |
| - parametersEntity.setStudyType(scParameters.getStudyType()); |
194 |
| - parametersEntity.setMinVoltageDropProportionalThreshold(scParameters.getMinVoltageDropProportionalThreshold()); |
195 |
| - parametersEntity.setWithLoads(scParameters.isWithLoads()); |
196 |
| - parametersEntity.setWithShuntCompensators(scParameters.isWithShuntCompensators()); |
197 |
| - parametersEntity.setWithVscConverterStations(scParameters.isWithVSCConverterStations()); |
198 |
| - parametersEntity.setWithNeutralPosition(scParameters.isWithNeutralPosition()); |
199 |
| - parametersEntity.setInitialVoltageProfileMode(scParameters.getInitialVoltageProfileMode()); |
200 |
| - //scParameters.isDetailedReport() |
201 |
| - //scParameters.getVoltageRanges() |
202 |
| - //scParameters.getSubTransientCoefficient() |
203 |
| - } |
204 |
| - |
205 | 180 | private static ShortCircuitAnalysisResultEntity sortByElementId(ShortCircuitAnalysisResultEntity result) {
|
206 | 181 | result.setFaultResults(result.getFaultResults().stream()
|
207 | 182 | .sorted(Comparator.comparing(fr -> fr.getFault().getElementId()))
|
@@ -421,35 +396,21 @@ public Optional<UUID> duplicateParameters(UUID sourceParametersUuid) {
|
421 | 396 | .map(AnalysisParametersEntity::getId);
|
422 | 397 | }
|
423 | 398 |
|
424 |
| - private <T> T updateDto(T parameters, final String parametersPatch) throws IllegalArgumentException, IOException { |
425 |
| - return objectMapper.readerForUpdating(parameters).readValue(parametersPatch); |
426 |
| - } |
427 |
| - |
428 |
| - @SneakyThrows |
429 |
| - public UUID createParameters(@Nullable final String parametersPatch) { |
430 |
| - ShortCircuitParametersInfos parameters = getDefaultDtoParameters(); |
431 |
| - if (parametersPatch != null) { |
432 |
| - parameters = updateDto(parameters, parametersPatch); |
433 |
| - } |
434 |
| - return parametersRepository.save(toEntity(parameters)).getId(); |
| 399 | + public UUID createParameters(@Nullable final ShortCircuitParametersInfos parameters) { |
| 400 | + return parametersRepository.save(parameters != null ? toEntity(parameters) : new AnalysisParametersEntity()).getId(); |
435 | 401 | }
|
436 | 402 |
|
437 | 403 | /**
|
438 | 404 | * Use the ability of Jackson to update an object with a partial Json.
|
439 | 405 | */
|
440 |
| - @SneakyThrows |
441 |
| - public boolean updateParameters(final UUID parametersUuid, @Nullable final String parametersPatch) { |
| 406 | + @Transactional |
| 407 | + public boolean updateOrResetParameters(final UUID parametersUuid, @Nullable final ShortCircuitParametersInfos givenParameters) { |
442 | 408 | AnalysisParametersEntity parameters = parametersRepository.findById(parametersUuid).orElse(null);
|
443 | 409 | if (parameters == null) {
|
444 | 410 | return false;
|
445 | 411 | } else {
|
446 |
| - if (parametersPatch == null) { |
447 |
| - // we simply reset |
448 |
| - updateEntity(parameters, getDefaultDtoParameters()); |
449 |
| - } else { |
450 |
| - updateEntity(parameters, updateDto(fromEntity(parameters), parametersPatch)); |
451 |
| - } |
452 |
| - parametersRepository.save(parameters); |
| 412 | + AnalysisParametersEntity newParameters = givenParameters != null ? toEntity(givenParameters) : new AnalysisParametersEntity(); |
| 413 | + entityManager.merge(newParameters.setId(parameters.getId())); |
453 | 414 | return true;
|
454 | 415 | }
|
455 | 416 | }
|
|
0 commit comments