6
6
*/
7
7
package org .gridsuite .shortcircuit .server .service ;
8
8
9
+ import com .fasterxml .jackson .databind .JsonMappingException ;
9
10
import com .fasterxml .jackson .databind .ObjectMapper ;
10
- import com .powsybl .shortcircuit .InitialVoltageProfileMode ;
11
11
import com .powsybl .shortcircuit .ShortCircuitParameters ;
12
- import com .powsybl .shortcircuit .StudyType ;
13
12
import com .powsybl .ws .commons .LogUtils ;
14
13
import lombok .NonNull ;
15
14
import lombok .RequiredArgsConstructor ;
15
+ import org .apache .commons .lang3 .StringUtils ;
16
16
import org .gridsuite .shortcircuit .server .dto .*;
17
17
import org .gridsuite .shortcircuit .server .entities .FaultResultEntity ;
18
18
import org .gridsuite .shortcircuit .server .entities .FeederResultEntity ;
19
19
import org .gridsuite .shortcircuit .server .entities .ShortCircuitAnalysisResultEntity ;
20
20
import org .gridsuite .shortcircuit .server .repositories .ShortCircuitAnalysisResultRepository ;
21
+ import org .gridsuite .shortcircuit .server .repositories .ShortCircuitParametersRepository ;
21
22
import org .slf4j .Logger ;
22
23
import org .slf4j .LoggerFactory ;
23
24
import org .springframework .data .domain .Page ;
@@ -41,15 +42,26 @@ public class ShortCircuitService {
41
42
@ NonNull private final NotificationService notificationService ;
42
43
@ NonNull private final UuidGeneratorService uuidGeneratorService ;
43
44
@ NonNull private final ShortCircuitAnalysisResultRepository resultRepository ;
45
+ @ NonNull private final ShortCircuitParametersRepository parametersRepository ;
44
46
@ NonNull private final ObjectMapper objectMapper ;
45
47
46
- public UUID runAndSaveResult (ShortCircuitRunContext runContext ) {
47
- Objects .requireNonNull (runContext );
48
- var resultUuid = uuidGeneratorService .generate ();
49
-
48
+ public UUID runAndSaveResult (@ NonNull final UUID networkUuid , final String variantId , final String receiver ,
49
+ final UUID parametersUuid , final Map <String , Object > parametersOverride ,
50
+ final UUID reportUuid , final String reporterId , final String reportType ,
51
+ @ NonNull final String userId , final String busId ) {
52
+ ShortCircuitParameters scParameters = EntityDtoUtils .convertInfos (parametersRepository .getByIdOrDefault (parametersUuid )).parameters ();
53
+ if (parametersOverride != null && !parametersOverride .isEmpty ()) {
54
+ try {
55
+ scParameters = objectMapper .updateValue (scParameters , parametersOverride );
56
+ } catch (final JsonMappingException ex ) {
57
+ throw new RuntimeException ("Error while updating parameters" , ex );
58
+ }
59
+ }
60
+ scParameters .setWithFortescueResult (StringUtils .isNotBlank (busId ));
61
+ final UUID resultUuid = uuidGeneratorService .generate ();
50
62
// update status to running status
51
63
setStatus (List .of (resultUuid ), ShortCircuitAnalysisStatus .RUNNING .name ());
52
- notificationService .sendRunMessage (new ShortCircuitResultContext (resultUuid , runContext ).toMessage (objectMapper ));
64
+ notificationService .sendRunMessage (new ShortCircuitResultContext (resultUuid , new ShortCircuitRunContext ( networkUuid , variantId , receiver , scParameters , reportUuid , reporterId , reportType , userId , busId ) ).toMessage (objectMapper ));
53
65
return resultUuid ;
54
66
}
55
67
@@ -158,23 +170,6 @@ public void stop(UUID resultUuid, String receiver) {
158
170
notificationService .sendCancelMessage (new ShortCircuitCancelContext (resultUuid , receiver ).toMessage ());
159
171
}
160
172
161
- private static ShortCircuitParameters getDefaultShortCircuitParameters () {
162
- return new ShortCircuitParameters ()
163
- .setStudyType (StudyType .TRANSIENT )
164
- .setMinVoltageDropProportionalThreshold (20 )
165
- .setWithFeederResult (true )
166
- .setWithLimitViolations (true )
167
- .setWithVoltageResult (false )
168
- .setWithFortescueResult (false )
169
- .setWithLoads (false )
170
- .setWithShuntCompensators (false )
171
- .setWithVSCConverterStations (true )
172
- .setWithNeutralPosition (true )
173
- .setInitialVoltageProfileMode (InitialVoltageProfileMode .NOMINAL )
174
- // the voltageRanges is not taken into account when initialVoltageProfileMode=NOMINAL
175
- .setVoltageRanges (null );
176
- }
177
-
178
173
private static ShortCircuitParameters copy (ShortCircuitParameters shortCircuitParameters ) {
179
174
return new ShortCircuitParameters ()
180
175
.setStudyType (shortCircuitParameters .getStudyType ())
0 commit comments