diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountBalanceService.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountBalanceService.java index 3e46d3f42..daa2280dc 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountBalanceService.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountBalanceService.java @@ -35,7 +35,7 @@ public class AccountBalanceService { } public AccountResult createAccountBalance(Long addresseeId, Long accountId, BigDecimal amount, - String cashMovementCurrencyCode) { + String cashMovementCurrencyCode) { IValidator validator = validationFactory.apply(new AccountBalanceValidation(addresseeId, accountId)); Optional validationError = validator .tillFirstError(); @@ -66,14 +66,23 @@ public class AccountBalanceService { return new AccountResult(accountBalance); } else { accountBalance.setUpdated(Instant.now()); - accountBalance.setAccountId(accountId); - accountBalance.setAccountType(account.getAccountType()); + accountBalance.setAccountId(accountId);//+ + accountBalance.setAccountType(account.getAccountType());//++ accountBalance.setAccount(account.getAccount()); - accountBalance.setOpenBalanceAmount(amount); - accountBalance.setFreeBalanceAmount(amount); - accountBalance.setBalanceAmount(amount); +// accountBalance.setOpenBalanceAmount();// на базе изменения statement по sDf16/sDf09): не меняется. + accountBalance.setFreeBalanceAmount(plus(accountBalance.getFreeBalanceAmount(), amount)); + accountBalance.setChangeBalanceAmount(plus(accountBalance.getChangeBalanceAmount(), amount)); + accountBalance.setCreditAmount(plus(accountBalance.getCreditAmount(), amount)); + accountBalance.setDebitAmount(plus(accountBalance.getDebitAmount(), amount)); + accountBalance.setBalanceAmount(plus(accountBalance.getBalanceAmount(), amount)); accountBalance.setCurrencyCode(cashMovementCurrencyCode); return new AccountResult(accountBalance); } } + + BigDecimal plus(BigDecimal a, BigDecimal b) { + if (a == null) return b; + if (b == null) return a; + return a.add(b); + } }