From 679b5cc01babb416cf2ede0fd519974ae8f3e053 Mon Sep 17 00:00:00 2001 From: ialbert Date: Fri, 30 Jun 2023 17:20:15 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BF=D0=BE=20=D1=84=D0=B8=D0=BD=D0=B0=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D0=BE=D0=B9=20=D0=9C=D0=9A=D0=A0=20=D1=81=D0=B5?= =?UTF-8?q?=D1=81=D1=81=D0=B8=D0=B8=205/7=20=D1=88=D0=B0=D0=B3=20bugfix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FormingPaymentInstructionReturnMkr.java | 32 ++++++++-------- .../InspectionObligationsDepositReturn.java | 38 ++++++++++--------- 2 files changed, 37 insertions(+), 33 deletions(-) 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 b12c6c828..e4d4a0982 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 @@ -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 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(); + //}) .toList(); for (int i = 0; i < allLiabilities.size(); i++) { //сортировка чтобы найти сделки с одинаковыми направлениями и адресатами и схлопнуть в одну diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligationsDepositReturn.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligationsDepositReturn.java index bb7271717..46eadf2dd 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligationsDepositReturn.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligationsDepositReturn.java @@ -112,24 +112,28 @@ public class InspectionObligationsDepositReturn implements ISessionStage { log.debug("groupId={}, OM*T.id={}", entry.getKey(), omtRgs.getId()); BigDecimal omtBalance = safeBD(omtRgs.getBalance()); - if (omtRgs.getValueDate() != null - && omtRgs.getSettlementDate() != null - && omtRgs.getValueDate().isBefore(omtRgs.getSettlementDate())) { - Optional dmx = searchDmx(omtRgs); - if (dmx.isPresent()) { - BigDecimal dmxBalance = safeBD(dmx.get().getBalance()); - log.debug("OM*T.id={} -> DM*X.id={}, dmxBalance={}, omtBalance={}", - omtRgs.getId(), - dmx.get().getId(), - dmxBalance, omtBalance - ); - if (dmxBalance.compareTo(omtBalance) >= 0) { - group.forEach(rgs -> updateStatus(rgs, RegistryStatus.OK)); - } else { - group.forEach(rgs -> updateStatus(rgs, registryStatusForDmxCheckFailed())); - } - continue; + //первая часть сделки депозита + if (omtRgs.getValueDate() == null + || omtRgs.getSettlementDate() == null + || !omtRgs.getValueDate().isBefore(omtRgs.getSettlementDate())) { + continue; + } + + //вторая часть сделки - возврат депозита + Optional dmx = searchDmx(omtRgs); + if (dmx.isPresent()) { + BigDecimal dmxBalance = safeBD(dmx.get().getBalance()); + log.debug("OM*T.id={} -> DM*X.id={}, dmxBalance={}, omtBalance={}", + omtRgs.getId(), + dmx.get().getId(), + dmxBalance, omtBalance + ); + if (dmxBalance.compareTo(omtBalance) >= 0) { + group.forEach(rgs -> updateStatus(rgs, RegistryStatus.OK)); + } else { + group.forEach(rgs -> updateStatus(rgs, registryStatusForDmxCheckFailed())); } + continue; } Optional amfAssetO = searchAssetByOMT(omtRgs);