diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java index 2a5badb39..da8277f7b 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java @@ -4,6 +4,7 @@ import java.math.BigDecimal; import java.time.Instant; import java.time.LocalDate; import java.time.format.DateTimeFormatter; +import java.util.Arrays; import java.util.Collection; import java.util.Comparator; import java.util.List; @@ -193,10 +194,17 @@ public class Sdf57Executor extends AbstractExecutor { boolean sessionIsPresent = sessionImdg.getFirstObjectByFieldValues(Map.of( "workflowStatus", SessionStatus.ACTV.getKey() )) != null; - boolean existActiveCurrSession = sessionImdg.getFirstObjectByFieldValues( - Map.of( - "workflowStatus", SessionStatus.ACTV.getKey(), - "sessionType", SessionType.CURR.getKey() + + ImdgPredicateBuilder sessionPredicateBuilder = sessionImdg.predicateBuilder(); + boolean existActiveCurrSession = sessionImdg.getFirstObjectByPredicate( + sessionPredicateBuilder.and( + sessionPredicateBuilder.equals("workflowStatus", SessionStatus.ACTV.getKey()), + sessionPredicateBuilder.in("sessionType", + Arrays.asList( + SessionType.CURR.getKey(), + SessionType.IPO0.getKey(), + SessionType.UNIT.getKey()) + .toArray(new String[0])) )) != null; sdf = sdf.stream().sorted(Comparator.comparing(SpcexObjectBase::getId)).toList(); for (SDf57 sdf57 : sdf) {