diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/ReturnDepositSession.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/ReturnDepositSession.java index de4867b1c..cc5d7f958 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/ReturnDepositSession.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/ReturnDepositSession.java @@ -75,11 +75,13 @@ public class ReturnDepositSession extends AbstractSession implements Initializin public void afterPropertiesSet() throws Exception { ImdgPredicateBuilder rgsPrctBuilder = registryImdg.predicateBuilder(); inclusionObligations.addRegistryCondition( - rgsPrctBuilder.or(rgsPrctBuilder.equals("registryStatus", RegistryStatus.PROC.getKey()), - rgsPrctBuilder.equals("registryStatus", RegistryStatus.MNG.getKey())) - ); - inclusionObligations.addRegistryCondition( - rgsPrctBuilder.less("valueDate", LocalDate.now()) + rgsPrctBuilder.and( + rgsPrctBuilder.or( + rgsPrctBuilder.equals("registryStatus", RegistryStatus.PROC.getKey()), + rgsPrctBuilder.equals("registryStatus", RegistryStatus.MNG.getKey()) + ), + rgsPrctBuilder.less("valueDate", LocalDate.now()) + ) ); } @@ -120,7 +122,6 @@ public class ReturnDepositSession extends AbstractSession implements Initializin //stage 4 { InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload(); - inclusionToPoolPayload.setSessionType(currSession.getSessionType()); runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations); } //stage 5 diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InclusionObligations.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InclusionObligations.java index 16f74a20f..5bb008ec1 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InclusionObligations.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InclusionObligations.java @@ -13,7 +13,10 @@ import ru.spcex.clearing.session.stage.ISessionStage; import ru.spcex.clearing.session.stage.StageResult; import ru.spcex.clearing.session.stage.Task; import ru.spcex.clearing.session.stage.task.InclusionToPoolPayload; +import ru.spcex.platform.enumeration.RegistryDesignation; +import ru.spcex.platform.enumeration.RegistryInstrumentType; import ru.spcex.platform.enumeration.RegistryStatus; +import ru.spcex.platform.enumeration.RegistryUnit; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgId; import ru.spcex.platform.imdg.api.ImdgProvider; @@ -74,22 +77,25 @@ public class InclusionObligations implements ISessionStage { private StageResult inclusionToPool(String sessionType, Long counterPartyId) { String sqlCondition = String.format("registryDesignation in ('%s', '%s') and " + "registryInstrumentType in ('%s', '%s') and " + - "registryUnit = '%s' and " + - "sessionType = '%s'", - "O", "T", - "S", "M", - "T", - sessionType); + "registryUnit = '%s'", + RegistryDesignation.O.getKey(), RegistryDesignation.T.getKey(), + RegistryInstrumentType.S.getKey(), RegistryInstrumentType.M.getKey(), + RegistryUnit.T.getKey()); ImdgPredicateBuilder prdctBuilder = registryImdg.predicateBuilder(); + ImdgPredicate defaultCondition = prdctBuilder.sql(sqlCondition); + if (sessionType != null) { + //не всегда нужное условие + defaultCondition = prdctBuilder.and(defaultCondition, prdctBuilder.equals("sessionType", sessionType)); + } ImdgPredicate registryPredicate; if (registryConditions.size() > 0) { registryPredicate = prdctBuilder.and( - prdctBuilder.sql(sqlCondition), + defaultCondition, prdctBuilder.and(registryConditions.toArray(new ImdgPredicate[0])) ); } else { registryPredicate = prdctBuilder.and( - prdctBuilder.sql(sqlCondition), + defaultCondition, prdctBuilder.equals("registryStatus", RegistryStatus.PROC.getKey()) ); }