Сессия по возвратам депозитов проверка средств (шаг 5) формирование PaymentInstruction (шаг 7)

This commit is contained in:
ialbert 2023-06-29 14:16:00 +03:00
parent 27e9c75e78
commit d63d080023
2 changed files with 19 additions and 14 deletions

View file

@ -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

View file

@ -108,32 +108,35 @@ public class InspectionObligationsDepositReturn implements ISessionStage {
continue;
}
Registry omtRgs = omtInGroupO.get();
Optional<Registry> 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<Registry> 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<Registry> 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<Registry> dmtInfo = searchDmtInfo(omtRgs);
if (dmtInfo.isPresent()) {
BigDecimal dmtBalance = safeBD(dmtInfo.get().getBalance());