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

View file

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