From 52d4c654a1d71d08a71b6debeb96b08937b3a4de Mon Sep 17 00:00:00 2001 From: AKurakin Date: Tue, 7 Feb 2023 15:44:26 +0300 Subject: [PATCH] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-189=20Payme?= =?UTF-8?q?ntInstructionCreator=20=D0=9F=D0=B5=D0=A0=D0=B5=D0=94=D0=B5?= =?UTF-8?q?=D0=BB=D0=9A=D0=B0=20=D1=87=D0=B0=D1=81=D1=82=D1=8C=20=D1=81=20?= =?UTF-8?q?PaymentInstruction?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ru/spcex/clearing/service/Clearing.java | 23 ++++----- .../builder/PaymentInstructionCreator.java | 48 ++++++++++--------- 2 files changed, 38 insertions(+), 33 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Clearing.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Clearing.java index e41fcedce..4ee47443d 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Clearing.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Clearing.java @@ -224,18 +224,19 @@ public class Clearing { log.trace("LiabilitiesClaimsAssets {} was updated: {}", lca.getId(), lca); log.trace("creating paymentInstructions"); - List 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 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); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java index 960aa3206..d30f94370 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java @@ -465,33 +465,35 @@ public class PaymentInstructionCreator { * 2.2.2.1. Выполнить Изменение liabilitiesClaimsAssets по paymentInstruction. */ public void updateFieldLiabilitiesClaimsAssetsByPayment(LiabilitiesClaimsAssets liabilitiesClaimsAssets, + LiabilitiesClaimsMoney liabilitiesClaimsMoney, List paymentInstructions, Collection 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()); }