From 2c268d84fa0e6206bda0708297df28486d23a71c Mon Sep 17 00:00:00 2001 From: ialbert Date: Fri, 26 May 2023 18:51:17 +0300 Subject: [PATCH] SDF01 executor --- .../service/executors/Sdf01Executor.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf01Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf01Executor.java index 1fd894fa6..e684df89f 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf01Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf01Executor.java @@ -150,14 +150,15 @@ public class Sdf01Executor extends AbstractExecutor { registryImdg.insert(registry); return registry; }; - Optional reg = findReg(stmt); - Registry regFinal; + Registry rgs; if (reg.isPresent()) { - update.accept(reg.get()); - regFinal = reg.get(); + rgs = reg.get(); + updateReg(stmt, rgs); + registryImdg.update(rgs); } else { - regFinal = create.get(); + rgs = createRegistryByStatement(stmt, company, account); + registryImdg.insert(rgs); } //todo //1. stmt.setOperationStatus в зависимости от diffBalance = 0 @@ -292,7 +293,7 @@ public class Sdf01Executor extends AbstractExecutor { } } rgs.setCheckBalance(BigDecimalUtil.safeBD(statement.getAmount())); - rgs.setCheckBalance(rgs.getCheckBalance().negate()); + rgs.setDiffBalance(rgs.getCheckBalance().negate()); rgs.setBalanceDimension(BalanceDimension.MONY.getKey()); //fixme ! смотри описание и ссылка на начало html'ки //fixme !rgs.setSettlementCode(); rgs.setTradingDate(statement.getSettlementDate()); //fixme ! today ? @@ -311,6 +312,10 @@ public class Sdf01Executor extends AbstractExecutor { case in -> r.setBalance(r.getBalance().add(s.getAmount())); case out -> r.setBalance(r.getBalance().subtract(s.getAmount())); } + r.setCheckBalance(s.getAmount()); + BigDecimal balance = BigDecimalUtil.safeBD(r.getBalance()); + BigDecimal checkBalance = BigDecimalUtil.safeBD(r.getCheckBalance()); + r.setDiffBalance(balance.subtract(checkBalance)); r.setUpdated(Instant.now()); }