From 7bda8ea334497b299620135a773a26bf4e640fc3 Mon Sep 17 00:00:00 2001 From: ialbert Date: Wed, 7 Jun 2023 16:04:35 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=B8=D1=82=D0=BE=D0=B3=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D1=8F=20=D0=9C=D0=9A=D0=A0=20=D1=83=D1=81=D0=BB=D0=BE=D0=B2?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B2=D1=8B=D0=B1=D0=BE=D1=80=D0=BA=D0=B8=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B3=D0=B8=D1=81=D1=82=D1=80=D0=BE=D0=B2=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D1=88=D0=B0=D0=B3=D0=B5=204?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../clearing/session/stage/FinalMkrSession.java | 12 +++++++----- .../ru/spcex/platform/utils/collection/Pair.java | 7 +++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/FinalMkrSession.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/FinalMkrSession.java index 4b5096a46..39da49f47 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/FinalMkrSession.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/FinalMkrSession.java @@ -88,11 +88,13 @@ public class FinalMkrSession extends AbstractSession implements InitializingBean //fixme спросить у Кости нужны ли эти поправки 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.lessEqual("valueDate", LocalDate.now()) + ) ); inspectionObligations.setSessionType(sectionType()); } diff --git a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/collection/Pair.java b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/collection/Pair.java index 3fb512341..281bf36fb 100644 --- a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/collection/Pair.java +++ b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/collection/Pair.java @@ -1,5 +1,7 @@ package ru.spcex.platform.utils.collection; +import java.util.function.Consumer; + public class Pair { private T1 first; private T2 second; @@ -24,4 +26,9 @@ public class Pair { public void setSecond(T2 second) { this.second = second; } + + public static void forEach(Pair p, Consumer consumer) { + consumer.accept(p.getFirst()); + consumer.accept(p.getSecond()); + } } From 7abf031246fc22dc97fc49936ddfaf5177ee9ce8 Mon Sep 17 00:00:00 2001 From: ialbert Date: Wed, 7 Jun 2023 17:11:20 +0300 Subject: [PATCH 2/2] =?UTF-8?q?ReturnDepositSession=20=D1=83=D0=B1=D1=80?= =?UTF-8?q?=D0=B0=D0=BB=20=D1=83=D1=81=D0=BB=D0=BE=D0=B2=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=BD=D0=B0=20sessionType=20=D0=BF=D1=80=D0=B8=20=D0=B2=D0=BA?= =?UTF-8?q?=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D0=B8=D0=B8=20=D0=B2=20=D0=BF?= =?UTF-8?q?=D1=83=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()) ); }