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 d2c475738..9881cb698 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 @@ -133,6 +133,7 @@ public class Sdf57Executor extends AbstractExecutor { Consumer createRegistryIfNeeded = stmtCmpAcc -> { Statement stmt = stmtCmpAcc.statement(); + Statement counterStmt = stmtCmpAcc.counterStatement(); Company company = stmtCmpAcc.company(); Account account = stmtCmpAcc.account(); Optional err = validateActiveness(company, account, stmt); @@ -145,6 +146,8 @@ public class Sdf57Executor extends AbstractExecutor { Registry registry = createRegistryByStatement(stmt, company, account, dsgn); registryImdg.insert(registry); }; + + //todo понять что происходит со инициатором/контрагентом, особенно если у нас только один Statement findReg(stmt, RegistryDesignation.A).ifPresentOrElse(update, () -> create.accept(RegistryDesignation.A)); findReg(stmt, RegistryDesignation.D).ifPresentOrElse(update, () -> create.accept(RegistryDesignation.D)); stmt.setOperationStatus(OperationStatus.Executed.getKey()); @@ -154,13 +157,14 @@ public class Sdf57Executor extends AbstractExecutor { statementImdg.update(stmt); } }; - statementDeb.ifPresent(stmt -> createRegistryIfNeeded.accept(new StmtCmpAcc(stmt, companyDeb, accountDeb))); - statementCred.ifPresent(stmt -> createRegistryIfNeeded.accept(new StmtCmpAcc(stmt, companyCred, accountCred))); + statementDeb.ifPresent(stmt -> createRegistryIfNeeded.accept(new StmtCmpAcc(stmt, statementCred.orElse(null), companyDeb, accountDeb))); + statementCred.ifPresent(stmt -> createRegistryIfNeeded.accept(new StmtCmpAcc(stmt, statementDeb.orElse(null), companyCred, accountCred))); } return result; } - private static record StmtCmpAcc(Statement statement, Company company, Account account) { + private static record StmtCmpAcc(Statement statement, Statement counterStatement, Company company, + Account account) { } private Optional validateActiveness(Company company, Account account, Statement statement) {