From 560ffc160af9483f2c16537c86ac4898868cd35a Mon Sep 17 00:00:00 2001 From: AKurakin Date: Thu, 2 Feb 2023 15:33:59 +0300 Subject: [PATCH] =?UTF-8?q?clearing-service=20http://jira.mfd.msk:8088/bro?= =?UTF-8?q?wse/CLS-189=20=D0=B4=D0=BE=D0=B4=D0=B5=D0=BB=D0=BA=D0=B8=202.2.?= =?UTF-8?q?2.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../builder/PaymentInstructionCreator.java | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) 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 dccab61c4..8cff462fe 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 @@ -22,10 +22,7 @@ import java.math.BigDecimal; import java.time.Instant; import java.time.LocalDate; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; @@ -507,29 +504,38 @@ public class PaymentInstructionCreator { if (liabilitiesClaimsAssets == null) { throw new RuntimeException("IMDG not found LiabilitiesClaimsMoney.id=" + lmId); } - - updateFieldLiabilitiesClaimsMoneyByPayment(liabilitiesClaimsMoney, liabilitiesClaimsAssets, paymentInstructions, clearingCategory); + if (!Objects.equals(liabilitiesClaimsMoney.getSettlementDate(), liabilitiesClaimsAssets.getSettlementDate())) { + log.warn("Date not match: LiabilitiesClaimsMoney[{}].settlementDate={} and LiabilitiesClaimsAssets[{}].settlementDate={}. It is first leg?", + liabilitiesClaimsMoney.getId(), liabilitiesClaimsMoney.getSettlementDate(), liabilitiesClaimsAssets.getId(), liabilitiesClaimsAssets.getSettlementDate() + ); + } + updateFieldLiabilitiesClaimsMoneyByPayment(liabilitiesClaimsMoney, paymentInstructions, clearingCategory); liabilitiesClaimsMoneyImdg.update(liabilitiesClaimsMoney); return liabilitiesClaimsMoney; } + /** + * Обновление liabilitiesClaimsMoney первой ноги по liabilitiesClaimsAssets + * @param liabilitiesClaimsMoney обновить этот объект + * @param paymentInstructions + * @param clearingCategory + * @return были внесены изменения в liabilitiesClaimsMoney + */ protected boolean updateFieldLiabilitiesClaimsMoneyByPayment(LiabilitiesClaimsMoney liabilitiesClaimsMoney, - LiabilitiesClaimsAssets liabilitiesClaimsAssets, List paymentInstructions, Collection clearingCategory) { boolean modified = false; - boolean isFirstLeg = true; // todo уточню ТЗ и допишу. PaymentInstruction paymentIAny=paymentInstructions.iterator().next(); - if ((clearingCategory.contains(ClearingCategory.I) || clearingCategory.contains(ClearingCategory.V)) && isFirstLeg) { + if ((clearingCategory.contains(ClearingCategory.I) || clearingCategory.contains(ClearingCategory.V))) { BigDecimal amount = liabilitiesClaimsMoney.getLiabilitiesAmount().subtract(new BigDecimal((Long)paymentIAny.getCreditLegAmount())); liabilitiesClaimsMoney.setLiabilitiesAmount(amount); modified = true; } - if ((clearingCategory.contains(ClearingCategory.B)) && isFirstLeg) { + if ((clearingCategory.contains(ClearingCategory.B))) { BigDecimal amount = liabilitiesClaimsMoney.getClaimsAmount().subtract(new BigDecimal((Long)paymentIAny.getDebitLegAmount())); liabilitiesClaimsMoney.setClaimsAmount(amount); modified = true;