http://jira.mfd.msk:8088/browse/CLS-189 PaymentInstructionCreator ПеРеДелКа часть с PaymentInstruction

This commit is contained in:
AKurakin 2023-02-07 15:44:26 +03:00
parent afb0e6c182
commit 52d4c654a1
2 changed files with 38 additions and 33 deletions

View file

@ -224,18 +224,19 @@ public class Clearing {
log.trace("LiabilitiesClaimsAssets {} was updated: {}", lca.getId(), lca); log.trace("LiabilitiesClaimsAssets {} was updated: {}", lca.getId(), lca);
log.trace("creating paymentInstructions"); log.trace("creating paymentInstructions");
List<PaymentInstruction> paymentInstructions = paymentInstructionCreator.createAndSavePaymentInstructions(lca, Collections.singleton(category)); // только для первой ноги lca создать PaymentInstruction's
paymentInstructionCreator.updateFieldLiabilitiesClaimsAssetsByPayment(lca, paymentInstructions, Collections.singleton(category));
liabilitiesClaimsAssetsImdg.update(lca);
var firstLegLiabilitiesClaimsMoney = lcmFirstLegFound.orElseGet(() -> wrapperFirstLegCreated.firstLegCreated); var firstLegLiabilitiesClaimsMoney = lcmFirstLegFound.orElseGet(() -> wrapperFirstLegCreated.firstLegCreated);
var secondLegLiabilitiesClaimsMoney = lcmSecondLegFound.orElseGet(() -> wrapperSecondLegCreated.secondLegCreated); List<PaymentInstruction> paymentInstructions = paymentInstructionCreator.createAndSavePaymentInstructions(lca, Collections.singleton(category));
log.trace("updating LiabilitiesClaimsMoney by payment"); paymentInstructionCreator.updateFieldLiabilitiesClaimsAssetsByPayment(lca, firstLegLiabilitiesClaimsMoney, paymentInstructions, Collections.singleton(category));
log.trace("firstLegLiabilitiesClaimsMoney: {}; secondLegLiabilitiesClaimsMoney: {}", firstLegLiabilitiesClaimsMoney, secondLegLiabilitiesClaimsMoney); liabilitiesClaimsAssetsImdg.update(lca);
if (paymentInstructionCreator.updateFieldLiabilitiesClaimsMoneyByPayment(firstLegLiabilitiesClaimsMoney, true, paymentInstructions, Collections.singleton(category)) ) { // var secondLegLiabilitiesClaimsMoney = lcmSecondLegFound.orElseGet(() -> wrapperSecondLegCreated.secondLegCreated);
liabilitiesClaimsMoneyImdg.update(firstLegLiabilitiesClaimsMoney); // log.trace("updating LiabilitiesClaimsMoney by payment");
log.trace("LiabilitiesClaimsMoney first leg {} was updated", firstLegLiabilitiesClaimsMoney.getId(), secondLegLiabilitiesClaimsMoney.getId()); // log.trace("firstLegLiabilitiesClaimsMoney: {}; secondLegLiabilitiesClaimsMoney: {}", firstLegLiabilitiesClaimsMoney, secondLegLiabilitiesClaimsMoney);
} // if (paymentInstructionCreator.updateFieldLiabilitiesClaimsMoneyByPayment(firstLegLiabilitiesClaimsMoney, true, paymentInstructions, Collections.singleton(category)) ) {
log.trace("firstLegLiabilitiesClaimsMoney: {}; secondLegLiabilitiesClaimsMoney: {}", firstLegLiabilitiesClaimsMoney, secondLegLiabilitiesClaimsMoney); // liabilitiesClaimsMoneyImdg.update(firstLegLiabilitiesClaimsMoney);
// log.trace("LiabilitiesClaimsMoney first leg {} was updated", firstLegLiabilitiesClaimsMoney.getId(), secondLegLiabilitiesClaimsMoney.getId());
// }
// log.trace("firstLegLiabilitiesClaimsMoney: {}; secondLegLiabilitiesClaimsMoney: {}", firstLegLiabilitiesClaimsMoney, secondLegLiabilitiesClaimsMoney);
execDeposit.setSessionId(clearingSessionId); execDeposit.setSessionId(clearingSessionId);
execDeposit.setUpdated(Instant.now()); execDeposit.setUpdated(Instant.now());
executionDepositImdg.update(execDeposit); executionDepositImdg.update(execDeposit);

View file

@ -465,33 +465,35 @@ public class PaymentInstructionCreator {
* 2.2.2.1. Выполнить Изменение liabilitiesClaimsAssets по paymentInstruction. * 2.2.2.1. Выполнить Изменение liabilitiesClaimsAssets по paymentInstruction.
*/ */
public void updateFieldLiabilitiesClaimsAssetsByPayment(LiabilitiesClaimsAssets liabilitiesClaimsAssets, public void updateFieldLiabilitiesClaimsAssetsByPayment(LiabilitiesClaimsAssets liabilitiesClaimsAssets,
LiabilitiesClaimsMoney liabilitiesClaimsMoney,
List<PaymentInstruction> paymentInstructions, List<PaymentInstruction> paymentInstructions,
Collection<ClearingCategory> clearingCategory) { Collection<ClearingCategory> clearingCategory) {
final boolean isFirstLeg = true;
final boolean isSecondLeg = !isFirstLeg;
PaymentInstruction paymentIAny = paymentInstructions.iterator().next(); PaymentInstruction paymentIAny = paymentInstructions.iterator().next();
if (clearingCategory.contains(ClearingCategory.I) || clearingCategory.contains(ClearingCategory.V)) { // if (clearingCategory.contains(ClearingCategory.I) || clearingCategory.contains(ClearingCategory.V)) {
BigDecimal amount = bdFromLongSafe(paymentIAny.getCreditLegAmount()); // BigDecimal amount = bdFromLongSafe(paymentIAny.getCreditLegAmount());
// При обновлении (по paymentInstruction и категория I и счет CLRN):=liabilitiesClaimsAssets.liabilitiesQuantity - paymentInstruction.creditLeg_amount //// При обновлении (по paymentInstruction и категория I и счет CLRN):=liabilitiesClaimsAssets.liabilitiesQuantity - paymentInstruction.creditLeg_amount
// При обновлении (по paymentInstruction и категория V и счет INFO):=liabilitiesClaimsAssets.liabilitiesQuantity - paymentInstruction.creditLeg_amount //// При обновлении (по paymentInstruction и категория V и счет INFO):=liabilitiesClaimsAssets.liabilitiesQuantity - paymentInstruction.creditLeg_amount
amount = liabilitiesClaimsAssets.getLiabilitiesQuantity().subtract(amount); // amount = liabilitiesClaimsAssets.getLiabilitiesQuantity().subtract(amount);
liabilitiesClaimsAssets.setLiabilitiesQuantity(amount); // liabilitiesClaimsAssets.setLiabilitiesQuantity(amount);
} // }
if (clearingCategory.contains(ClearingCategory.B)) { // if (clearingCategory.contains(ClearingCategory.B)) {
BigDecimal amount = bdFromLongSafe(paymentIAny.getCreditLegAmount()); // BigDecimal amount = bdFromLongSafe(paymentIAny.getCreditLegAmount());
// При обновлении (по paymentInstruction и категория B и счет CLRN): из paymentInstruction.creditLeg_amount // // При обновлении (по paymentInstruction и категория B и счет CLRN): из paymentInstruction.creditLeg_amount
liabilitiesClaimsAssets.setLiabilitiesQuantity(amount); // liabilitiesClaimsAssets.setLiabilitiesQuantity(amount);
} // }
if (clearingCategory.contains(ClearingCategory.I) || clearingCategory.contains(ClearingCategory.V)) { // if (clearingCategory.contains(ClearingCategory.I) || clearingCategory.contains(ClearingCategory.V)) {
BigDecimal amount = bdFromLongSafe(paymentIAny.getDebitLegAmount()); // BigDecimal amount = bdFromLongSafe(paymentIAny.getDebitLegAmount());
liabilitiesClaimsAssets.setClaimsQuantity(amount); // liabilitiesClaimsAssets.setClaimsQuantity(amount);
} // }
if (clearingCategory.contains(ClearingCategory.B)) { // if (clearingCategory.contains(ClearingCategory.B)) {
BigDecimal amount = bdFromLongSafe(paymentIAny.getDebitLegAmount()); // BigDecimal amount = bdFromLongSafe(paymentIAny.getDebitLegAmount());
amount = safeBD(liabilitiesClaimsAssets.getClaimsQuantity()).subtract(amount); // amount = safeBD(liabilitiesClaimsAssets.getClaimsQuantity()).subtract(amount);
liabilitiesClaimsAssets.setClaimsQuantity(amount); // liabilitiesClaimsAssets.setClaimsQuantity(amount);
} // }
// //на базе успешного/неуспешного изменения по paymentInstruction // //на базе успешного/неуспешного изменения по paymentInstruction
// if (TransactionStatus.fail.equalsByKey(paymentIAny.getTransactionStatus())) { // if (TransactionStatus.fail.equalsByKey(paymentIAny.getTransactionStatus())) {
@ -500,6 +502,8 @@ public class PaymentInstructionCreator {
// liabilitiesClaimsAssets.setClearingStatus(ClearingStatus.OK.getKey()); // liabilitiesClaimsAssets.setClearingStatus(ClearingStatus.OK.getKey());
// } // }
liabilitiesClaimsAssets.setLiabilitiesClaimsMoneyId(liabilitiesClaimsMoney.getId());
liabilitiesClaimsAssets.setPaymentId(paymentIAny.getId());
liabilitiesClaimsAssets.setUpdated(Instant.now()); liabilitiesClaimsAssets.setUpdated(Instant.now());
} }