From 8255f4a1eb83a434af6dcaa2b0ace9543c07cba2 Mon Sep 17 00:00:00 2001 From: ialbert Date: Wed, 31 May 2023 14:38:55 +0300 Subject: [PATCH] sdf57 executor --- .../classes/statics/data/registry/Registry.java | 4 +++- .../clearing/service/executors/Sdf57Executor.java | 11 ++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/Registry.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/Registry.java index dd68a819e..8e80869b4 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/Registry.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/Registry.java @@ -414,7 +414,9 @@ public class Registry extends BusinessObject implements Cloneable { @Override public Registry clone() { try { - return (Registry) super.clone(); + Registry clone = (Registry) super.clone(); + clone.setId(null); + return clone; } catch (CloneNotSupportedException e) { throw new RuntimeException("never", e); // it is Cloneable } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java index 65e02cfcc..d5d60b7ca 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java @@ -170,7 +170,16 @@ public class Sdf57Executor extends AbstractExecutor { Registry registryUnitF = findRegByUnit(stmt, rgs, RegistryUnit.F).orElse(copyRegF(rgs, null)); //передаю null т.к. отнимется ниже по коду registryUnitF.setBalance(rgs.getBalance().subtract(registryUnitB.getBalance())); registryUnitF.setUpdated(Instant.now()); - registryImdg.update(registryUnitF); + //registry F всегда меняется + if (registryUnitF.getId() == null) { + registryImdg.insert(registryUnitF); + } else { + registryImdg.update(registryUnitF); + } + //нужно сохранить registry B только если его не было + if (registryUnitB.getId() == null) { + registryImdg.insert(registryUnitB); + } registryImdg.update(rgs); }; Consumer create = (dsgn) -> {