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());