From d63d080023418f7b8e3391b376e579fd437c25a6 Mon Sep 17 00:00:00 2001 From: ialbert Date: Thu, 29 Jun 2023 14:16:00 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B5=D1=81=D1=81=D0=B8=D1=8F=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D0=B2=D0=BE=D0=B7=D0=B2=D1=80=D0=B0=D1=82=D0=B0=D0=BC?= =?UTF-8?q?=20=D0=B4=D0=B5=D0=BF=D0=BE=D0=B7=D0=B8=D1=82=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B0=20=D1=81=D1=80?= =?UTF-8?q?=D0=B5=D0=B4=D1=81=D1=82=D0=B2=20(=D1=88=D0=B0=D0=B3=205)=20?= =?UTF-8?q?=D1=84=D0=BE=D1=80=D0=BC=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20PaymentInstruction=20(=D1=88=D0=B0=D0=B3=207)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../session/stage/ReturnDepositSession.java | 6 +++-- .../InspectionObligationsDepositReturn.java | 27 ++++++++++--------- 2 files changed, 19 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 34e881296..c6d0f4fb1 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 @@ -34,7 +34,7 @@ public class ReturnDepositSession extends AbstractSession implements Initializin private final InclusionObligations inclusionObligations; private final InspectionObligationsDepositReturn inspectionObligationsDepositReturn; private final FormingRegistersOnOS formingRegistersOnOS; - private final FormingPaymentInstruction formingPaymentInstruction; + private final FormingPaymentInstructionDepositReturn formingPaymentInstruction; private final UnlockResources unlockResources; private final FinishingSession finishingSession; private final EndStageNotification endStageNotification; @@ -49,7 +49,7 @@ public class ReturnDepositSession extends AbstractSession implements Initializin ObligationAdmission obligationsAdmission, InclusionObligations inclusionObligations, FormingRegistersOnOS formingRegistersOnOS, - FormingPaymentInstruction formingPaymentInstruction, + FormingPaymentInstructionDepositReturn formingPaymentInstruction, UnlockResources unlockResources, FinishingSession finishingSession, EndStageNotification endStageNotification, @@ -149,6 +149,8 @@ public class ReturnDepositSession extends AbstractSession implements Initializin if (paymentResult != null && paymentResult.getStageResult().isEmpty()) { runStage(TaskType.FormingPaymentInstruction, balanceRevise); // finishPart(req); + } else { + finishPart(req); } } catch (StageException e) { //already logged 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 5afa4673f..46fe736ae 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 @@ -108,32 +108,35 @@ public class InspectionObligationsDepositReturn implements ISessionStage { continue; } Registry omtRgs = omtInGroupO.get(); - Optional amfAssetO = searchAssetByOMT(omtRgs); - if (amfAssetO.isEmpty()) { - log.error("OM*T register.id={} groupId={} failed to find AM*F asset", omtRgs.getId(), entry.getKey()); - group.forEach(rgs -> updateStatus(rgs, RegistryStatus.MNG)); - continue; - } - Registry amfAsset = amfAssetO.get(); - log.debug("groupId={}, OM*T.id={}, AM*F.id={}", entry.getKey(), omtRgs.getId(), amfAsset.getId()); + log.debug("groupId={}, OM*T.id={}", entry.getKey(), omtRgs.getId()); BigDecimal omtBalance = safeBD(omtRgs.getBalance()); - BigDecimal amfBalance = safeBD(amfAsset.getBalance()); Optional dmx = searchDmx(omtRgs); if (dmx.isPresent()) { BigDecimal dmxBalance = safeBD(dmx.get().getBalance()); - log.debug("OM*T.id={} -> DM*X.id={}, dmxBalance={}, omtBalance={}, amfBalance={}", + log.debug("OM*T.id={} -> DM*X.id={}, dmxBalance={}, omtBalance={}", omtRgs.getId(), dmx.get().getId(), - dmxBalance, omtBalance, amfBalance + dmxBalance, omtBalance ); - if (dmxBalance.compareTo(omtBalance) >= 0 && amfBalance.compareTo(omtBalance) >= 0) { + if (dmxBalance.compareTo(omtBalance) >= 0) { group.forEach(rgs -> updateStatus(rgs, RegistryStatus.OK)); } else { group.forEach(rgs -> updateStatus(rgs, RegistryStatus.MNG)); } continue; } + + Optional amfAssetO = searchAssetByOMT(omtRgs); + if (amfAssetO.isEmpty()) { + log.error("OM*T register.id={} groupId={} failed to find AM*F asset", omtRgs.getId(), entry.getKey()); + group.forEach(rgs -> updateStatus(rgs, RegistryStatus.MNG)); + continue; + } + + Registry amfAsset = amfAssetO.get(); + log.debug("groupId={}, AM*F.id={}", entry.getKey(), amfAsset.getId()); + BigDecimal amfBalance = safeBD(amfAsset.getBalance()); Optional dmtInfo = searchDmtInfo(omtRgs); if (dmtInfo.isPresent()) { BigDecimal dmtBalance = safeBD(dmtInfo.get().getBalance());