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 3da76df1d..405fff0a8 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 @@ -264,7 +264,7 @@ public class Sdf57Executor extends AbstractExecutor { .status() .find(); } - if (dm__Found.isPresent()) { + if (dm__Found.isPresent() && !RegistryStatus.OK.equalsByKey(dm__Found.get().getRegistryStatus())) { Registry dm__ = dm__Found.get(); dm__.setBalance(safeBD(dm__.getBalance()).add(safeBD(stmt.getAmount()))); dm__.setUpdated(Instant.now()); @@ -273,6 +273,8 @@ public class Sdf57Executor extends AbstractExecutor { stmt.getId(), sdf57.getSpecif(), dm__.getId()); + } else if (dm__Found.isPresent() && RegistryStatus.OK.equalsByKey(dm__Found.get().getRegistryStatus())) { + log.warn(messageResolver.resolve(new EnumMessage(ClearingError.ObligationsAlreadyCalculated))); } else if (om_tFound.isPresent()) { Registry om_t = om_tFound.get(); Registry registryD = copyRegD(om_t, stmt, RegistryUnit.T);