From 7abf031246fc22dc97fc49936ddfaf5177ee9ce8 Mon Sep 17 00:00:00 2001 From: ialbert Date: Wed, 7 Jun 2023 17:11:20 +0300 Subject: [PATCH] =?UTF-8?q?ReturnDepositSession=20=D1=83=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D0=BB=20=D1=83=D1=81=D0=BB=D0=BE=D0=B2=D0=B8=D0=B5=20=D0=BD?= =?UTF-8?q?=D0=B0=20sessionType=20=D0=BF=D1=80=D0=B8=20=D0=B2=D0=BA=D0=BB?= =?UTF-8?q?=D1=8E=D1=87=D0=B5=D0=BD=D0=B8=D0=B8=20=D0=B2=20=D0=BF=D1=83?= =?UTF-8?q?=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../session/stage/ReturnDepositSession.java | 13 ++++++----- .../stage/impl/InclusionObligations.java | 22 ++++++++++++------- 2 files changed, 21 insertions(+), 14 deletions(-) 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()) ); }