http://jira.mfd.msk:8088/browse/CLS-189 AccountBalance change
This commit is contained in:
parent
ef0a4a09c7
commit
e105aad7eb
1 changed files with 18 additions and 13 deletions
|
|
@ -19,7 +19,6 @@ import ru.spcex.platform.imdg.api.Imdg;
|
|||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||
import ru.spcex.platform.utils.number.BigDecimalUtil;
|
||||
import ru.spcex.platform.utils.validation.IValidator;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
|
@ -29,6 +28,8 @@ import java.util.Map;
|
|||
import java.util.Optional;
|
||||
import java.util.function.Function;
|
||||
|
||||
import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD;
|
||||
|
||||
@Component
|
||||
public class AccountBalanceService {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
|
@ -99,7 +100,7 @@ public class AccountBalanceService {
|
|||
|
||||
public void updateAccountBalanceByClearing(AccountBalanceClearingRequest req) {
|
||||
ClearingCategory category = getClearingCategoryByCompanyId(req.getCompanyId());
|
||||
req.setFirstLegAmount(BigDecimalUtil.safeBD(req.getFirstLegAmount()));
|
||||
req.setFirstLegAmount(safeBD(req.getFirstLegAmount()));
|
||||
if (category.equals(ClearingCategory.I)) {
|
||||
updateAccountCategoryIClrn(req.getAccountId(), req.getCompanyId(), req.getFirstLegAmount());
|
||||
updateAccountCategoryITran(req.getFirstLegAmount());
|
||||
|
|
@ -121,9 +122,9 @@ public class AccountBalanceService {
|
|||
private void updateAccountCategoryIClrn(Long accountId, Long companyId, BigDecimal firstLegAmount) {
|
||||
AccountBalance accountBalance = loadAccountBalance(accountId, companyId, AccountType.Clrn);
|
||||
log.trace("updating AccountBalance {} I CLRN", accountBalance.getId());
|
||||
BigDecimal previousFreeBalanceAmount = BigDecimalUtil.safeBD(accountBalance.getFreeBalanceAmount());
|
||||
BigDecimal previousChangeBalanceAmount = BigDecimalUtil.safeBD(accountBalance.getChangeBalanceAmount());
|
||||
BigDecimal previousBalanceAmount = BigDecimalUtil.safeBD(accountBalance.getBalanceAmount());
|
||||
BigDecimal previousFreeBalanceAmount = safeBD(accountBalance.getFreeBalanceAmount());
|
||||
BigDecimal previousChangeBalanceAmount = safeBD(accountBalance.getChangeBalanceAmount());
|
||||
BigDecimal previousBalanceAmount = safeBD(accountBalance.getBalanceAmount());
|
||||
accountBalance.setFreeBalanceAmount(previousFreeBalanceAmount.subtract(firstLegAmount));
|
||||
accountBalance.setChangeBalanceAmount(previousChangeBalanceAmount.subtract(firstLegAmount));
|
||||
accountBalance.setBalanceAmount(previousBalanceAmount.subtract(firstLegAmount));
|
||||
|
|
@ -135,7 +136,7 @@ public class AccountBalanceService {
|
|||
private void updateAccountCategoryITran(BigDecimal firstLegAmount) {
|
||||
AccountBalance accountBalance = loadAccountBalance(AccountType.Tran);
|
||||
log.trace("updating AccountBalance {} I TRAN", accountBalance.getId());
|
||||
BigDecimal previousDebitAmount = BigDecimalUtil.safeBD(accountBalance.getDebitAmount());
|
||||
BigDecimal previousDebitAmount = safeBD(accountBalance.getDebitAmount());
|
||||
accountBalance.setDebitAmount(previousDebitAmount.add(firstLegAmount.abs()));
|
||||
accountBalance.setUpdated(Instant.now());
|
||||
log.trace("updateAccountCategoryITran: {}", accountBalance.getId());
|
||||
|
|
@ -145,9 +146,9 @@ public class AccountBalanceService {
|
|||
private void updateAccountCategoryVInfo(Long accountId, Long companyId, BigDecimal firstLegAmount) {
|
||||
AccountBalance accountBalance = loadAccountBalance(accountId, companyId, AccountType.Info);
|
||||
log.trace("updating AccountBalance {} V INFO", accountBalance.getId());
|
||||
BigDecimal previousFreeBalanceAmount = BigDecimalUtil.safeBD(accountBalance.getFreeBalanceAmount());
|
||||
BigDecimal changeBalanceAmount = BigDecimalUtil.safeBD(accountBalance.getChangeBalanceAmount());
|
||||
BigDecimal balanceAmount = BigDecimalUtil.safeBD(accountBalance.getBalanceAmount());
|
||||
BigDecimal previousFreeBalanceAmount = safeBD(accountBalance.getFreeBalanceAmount());
|
||||
BigDecimal changeBalanceAmount = safeBD(accountBalance.getChangeBalanceAmount());
|
||||
BigDecimal balanceAmount = safeBD(accountBalance.getBalanceAmount());
|
||||
accountBalance.setFreeBalanceAmount(previousFreeBalanceAmount.subtract(firstLegAmount));
|
||||
accountBalance.setChangeBalanceAmount(changeBalanceAmount.subtract(firstLegAmount));
|
||||
accountBalance.setBalanceAmount(balanceAmount.subtract(firstLegAmount));
|
||||
|
|
@ -159,9 +160,9 @@ public class AccountBalanceService {
|
|||
private void updateAccountCategoryVAnlt(BigDecimal firstLegAmount) {
|
||||
AccountBalance accountBalance = loadAccountBalance(AccountType.Anlt);
|
||||
log.trace("updating AccountBalance {} V ANLT", accountBalance.getId());
|
||||
BigDecimal previousFreeBalanceAmount = BigDecimalUtil.safeBD(accountBalance.getFreeBalanceAmount());
|
||||
BigDecimal previousChangeBalanceAmount = BigDecimalUtil.safeBD(accountBalance.getChangeBalanceAmount());
|
||||
BigDecimal previousBalanceAmount = BigDecimalUtil.safeBD(accountBalance.getBalanceAmount());
|
||||
BigDecimal previousFreeBalanceAmount = safeBD(accountBalance.getFreeBalanceAmount());
|
||||
BigDecimal previousChangeBalanceAmount = safeBD(accountBalance.getChangeBalanceAmount());
|
||||
BigDecimal previousBalanceAmount = safeBD(accountBalance.getBalanceAmount());
|
||||
accountBalance.setFreeBalanceAmount(previousFreeBalanceAmount.subtract(firstLegAmount));
|
||||
accountBalance.setChangeBalanceAmount(previousChangeBalanceAmount.subtract(firstLegAmount));
|
||||
accountBalance.setBalanceAmount(previousBalanceAmount.subtract(firstLegAmount));
|
||||
|
|
@ -173,8 +174,12 @@ public class AccountBalanceService {
|
|||
private void updateAccountCategoryBClrn(Long accountId, Long companyId, BigDecimal firstLegAmount) {
|
||||
AccountBalance accountBalance = loadAccountBalance(accountId, companyId, AccountType.Clrn);
|
||||
log.trace("updating AccountBalance {} B CLRN", accountBalance.getId());
|
||||
BigDecimal debitAmount = BigDecimalUtil.safeBD(accountBalance.getDebitAmount());
|
||||
BigDecimal debitAmount = safeBD(accountBalance.getDebitAmount());
|
||||
BigDecimal prevFreeBalanceAmount = safeBD(accountBalance.getFreeBalanceAmount());
|
||||
BigDecimal prevBalanceAmount = safeBD(accountBalance.getBalanceAmount());
|
||||
accountBalance.setDebitAmount(plus(debitAmount, firstLegAmount.abs()));
|
||||
accountBalance.setFreeBalanceAmount(plus(prevFreeBalanceAmount, firstLegAmount));
|
||||
accountBalance.setBalanceAmount(plus(prevBalanceAmount, firstLegAmount));
|
||||
accountBalance.setUpdated(Instant.now());
|
||||
log.trace("updateAccountCategoryBClrn: {}", accountBalance.getId());
|
||||
accountBalanceImdg.update(accountBalance);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue