clearing-service http://jira.mfd.msk:8088/browse/CLS-189 доделки 2.2.2.2
This commit is contained in:
parent
118ad70db0
commit
560ffc160a
1 changed files with 16 additions and 10 deletions
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue