From 61332c5b737e9a125856ce6b1e027341f0c54660 Mon Sep 17 00:00:00 2001 From: ialbert Date: Fri, 30 Jun 2023 18:44:32 +0300 Subject: [PATCH] =?UTF-8?q?=D1=84=D0=B8=D0=BD=D0=B0=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=81=D0=B5=D1=81=D1=81=D0=B8=D1=8F=20=D0=9C?= =?UTF-8?q?=D0=9A=D0=A0=20=D1=88=D0=B0=D0=B3=207?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ormingPaymentInstructionDealsFinalMkr.java | 5 ++- .../FormingPaymentInstructionReturnMkr.java | 36 +++++++++---------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDealsFinalMkr.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDealsFinalMkr.java index efd2ce8e8..afc4d7ef0 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDealsFinalMkr.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDealsFinalMkr.java @@ -40,6 +40,7 @@ import ru.spcex.platform.utils.number.BigDecimalUtil; import ru.spcex.platform.utils.time.TimeUtil; import java.time.Instant; +import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.function.Function; @@ -100,7 +101,9 @@ public class FormingPaymentInstructionDealsFinalMkr implements ISessionStage { RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance( LM_T, CM_T ); - ImdgPredicate rgsCodePrdct = rgsPb.sql(registryCodeSqlBuilder.build()); + ImdgPredicate rgsCodePrdct = rgsPb.and( + rgsPb.sql(registryCodeSqlBuilder.build()), + rgsPb.equals("settlementDate", LocalDate.now())); Collection registries = registryImdg.getCollectionObjectsByPredicate(rgsCodePrdct); return registries.stream() .filter(rgs -> Objects.equals(rgs.getValueDate(), rgs.getSettlementDate())) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionReturnMkr.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionReturnMkr.java index e4d4a0982..110fbf216 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionReturnMkr.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionReturnMkr.java @@ -138,9 +138,9 @@ public class FormingPaymentInstructionReturnMkr implements ISessionStage { for (Registry relatedRegistry : relatedRegistries) { if (equalsByRegistry(AM_T, relatedRegistry)) { relatedRegistry.setSettledDebit(safeBD(relatedRegistry.getSettledDebit()).add(safeBD(requirementByMoney.getBalance()))); + log.trace("updated related registry.id={} for CM*T.id={}", relatedRegistry.getId(), requirementByMoney.getId()); + registryImdg.update(relatedRegistry); } - log.trace("updated related registry.id={} for CM*T.id={}", relatedRegistry.getId(), requirementByMoney.getId()); - registryImdg.update(relatedRegistry); } } @@ -149,22 +149,22 @@ public class FormingPaymentInstructionReturnMkr implements ISessionStage { List allLiabilities = rgsAll .stream() .filter(registry -> RegistryDesignation.L.equalsByKey(registry.getRegistryDesignation())) - //.filter(obligation -> { - // //если valueDate < settlement date - // if (!(obligation.getValueDate() != null - // && obligation.getSettlementDate() != null - // && obligation.getValueDate().isBefore(obligation.getSettlementDate()))) { - // return true; - // } - // Optional dmx = searchDmx(obligation); - // if (dmx.isPresent()) { - // log.debug("LM*T#id={}, DM*X#id={} found, no action needed for group {}, skipping liability", - // obligation.getId(), - // obligation.getId(), - // obligation.getGroupId()); - // } - // return dmx.isEmpty(); - //}) + .filter(obligation -> { + //если valueDate < settlement date + if (!(obligation.getValueDate() != null + && obligation.getSettlementDate() != null + && obligation.getValueDate().isBefore(obligation.getSettlementDate()))) { + return false; + } + Optional dmx = searchDmx(obligation); + if (dmx.isPresent()) { + log.debug("LM*T#id={}, DM*X#id={} found, no action needed for group {}, skipping liability", + obligation.getId(), + obligation.getId(), + obligation.getGroupId()); + } + return dmx.isEmpty(); + }) .toList(); for (int i = 0; i < allLiabilities.size(); i++) { //сортировка чтобы найти сделки с одинаковыми направлениями и адресатами и схлопнуть в одну