clearing-service http://jira.mfd.msk:8088/browse/CLS-189 доделки 2.2.2.2

This commit is contained in:
AKurakin 2023-02-02 15:33:59 +03:00
parent 118ad70db0
commit 560ffc160a

View file

@ -22,10 +22,7 @@ import java.math.BigDecimal;
import java.time.Instant; import java.time.Instant;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.*;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicLong;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -507,29 +504,38 @@ public class PaymentInstructionCreator {
if (liabilitiesClaimsAssets == null) { if (liabilitiesClaimsAssets == null) {
throw new RuntimeException("IMDG not found LiabilitiesClaimsMoney.id=" + lmId); throw new RuntimeException("IMDG not found LiabilitiesClaimsMoney.id=" + lmId);
} }
if (!Objects.equals(liabilitiesClaimsMoney.getSettlementDate(), liabilitiesClaimsAssets.getSettlementDate())) {
updateFieldLiabilitiesClaimsMoneyByPayment(liabilitiesClaimsMoney, liabilitiesClaimsAssets, paymentInstructions, clearingCategory); 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); liabilitiesClaimsMoneyImdg.update(liabilitiesClaimsMoney);
return liabilitiesClaimsMoney; return liabilitiesClaimsMoney;
} }
/**
* Обновление liabilitiesClaimsMoney первой ноги по liabilitiesClaimsAssets
* @param liabilitiesClaimsMoney обновить этот объект
* @param paymentInstructions
* @param clearingCategory
* @return были внесены изменения в liabilitiesClaimsMoney
*/
protected boolean updateFieldLiabilitiesClaimsMoneyByPayment(LiabilitiesClaimsMoney liabilitiesClaimsMoney, protected boolean updateFieldLiabilitiesClaimsMoneyByPayment(LiabilitiesClaimsMoney liabilitiesClaimsMoney,
LiabilitiesClaimsAssets liabilitiesClaimsAssets,
List<PaymentInstruction> paymentInstructions, List<PaymentInstruction> paymentInstructions,
Collection<ClearingCategory> clearingCategory) { Collection<ClearingCategory> clearingCategory) {
boolean modified = false; boolean modified = false;
boolean isFirstLeg = true; // todo уточню ТЗ и допишу.
PaymentInstruction paymentIAny=paymentInstructions.iterator().next(); 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())); BigDecimal amount = liabilitiesClaimsMoney.getLiabilitiesAmount().subtract(new BigDecimal((Long)paymentIAny.getCreditLegAmount()));
liabilitiesClaimsMoney.setLiabilitiesAmount(amount); liabilitiesClaimsMoney.setLiabilitiesAmount(amount);
modified = true; modified = true;
} }
if ((clearingCategory.contains(ClearingCategory.B)) && isFirstLeg) { if ((clearingCategory.contains(ClearingCategory.B))) {
BigDecimal amount = liabilitiesClaimsMoney.getClaimsAmount().subtract(new BigDecimal((Long)paymentIAny.getDebitLegAmount())); BigDecimal amount = liabilitiesClaimsMoney.getClaimsAmount().subtract(new BigDecimal((Long)paymentIAny.getDebitLegAmount()));
liabilitiesClaimsMoney.setClaimsAmount(amount); liabilitiesClaimsMoney.setClaimsAmount(amount);
modified = true; modified = true;