From 4c687e8d594d23c7b5026be2b3be77a16f1711fc Mon Sep 17 00:00:00 2001 From: AKurakin Date: Mon, 16 Jan 2023 18:08:11 +0300 Subject: [PATCH] =?UTF-8?q?balance-service=20http://jira.mfd.msk:8088/brow?= =?UTF-8?q?se/CLS-74=20=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D0=BE=D0=B5=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20AccountBalanceService?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/AccountBalanceService.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) 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); + } }