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 dcb4a6d4e..60edb6f6f 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 @@ -9,6 +9,7 @@ import ru.clearing.classes.statics.data.account.Account; import ru.clearing.classes.statics.data.account.AccountBalance; import ru.clearing.classes.statics.data.account.ClearingAccount; import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.misc.Currency; import ru.clearing.classes.statics.data.registry.Registry; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.clearing.classes.statics.data.sdf.SDf02; @@ -63,7 +64,9 @@ public class Sdf57Executor extends AbstractExecutor { private final Imdg clearingAccountImdg; private final Imdg tradingClearingRegistryImdg; private final Imdg securityImdg; + private final Imdg currencyImdg; private final IMessageResolver messageResolver; +// private final Pair<> public Sdf57Executor(@Qualifier("sdf57Validator") Function sDf57Validator, LoggingService errorLogger, @@ -75,6 +78,7 @@ public class Sdf57Executor extends AbstractExecutor { this.accountBalanceImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class); this.clearingAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class); this.tradingClearingRegistryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); + this.currencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Currency, Currency.class); this.sDf57Validator = sDf57Validator; this.errorLogger = errorLogger; this.imdgProvider = imdgProvider; @@ -83,6 +87,8 @@ public class Sdf57Executor extends AbstractExecutor { this.securityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Security, Security.class); } + //todo доделать контроль sdf01 и sdf57 + @Override public String exportTableName() { return null; @@ -178,7 +184,7 @@ public class Sdf57Executor extends AbstractExecutor { //todo понять что происходит со инициатором/контрагентом, особенно если у нас только один Statement findReg(stmt, RegistryDesignation.A).ifPresentOrElse(update, () -> create.accept(RegistryDesignation.A)); - if (!StringUtils.isEmpty(sdf57.getSpecif())) { + if (!StringUtils.isEmpty(sdf57.getSpecif()) && sdf57.getSpecif().contains("№")) { //todo доделать 11. Идентификация средств УК на клиринговом счете findReg(stmt, RegistryDesignation.D).ifPresentOrElse(update, () -> create.accept(RegistryDesignation.D)); } @@ -215,6 +221,11 @@ public class Sdf57Executor extends AbstractExecutor { statement.setStatementType(StatementType.incr.getKey()); statement.setContract(getContractFromSpecif(sdf57.getSpecif())); statement.setAccountId(accountDeb.getId()); + + Currency currency = currencyImdg.getSingleObjectByFieldValues(Map.of("currencyCode", "RUB")); + if (currency != null) { + statement.setSecurityId(currency.getId()); + } statement.setAccount(accountDeb.getAccount()); statement.setInOutDirection(inOutDirection.getKey()); statement.setSettlementDate(payDate(sdf57.getPay_date())); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java index e5495dc46..135e58125 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java @@ -95,8 +95,8 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali log.error("cannot continue session, current stage is {}", currStage.get()); throw new StageException(); } - //stage 0 - runStage(TaskType.ContinueRevise, balanceRevise); +// //stage 0 +// runStage(TaskType.ContinueRevise, balanceRevise); //stage 1 StageResult> dealsPreparationResult; { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/BalanceRevise.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/BalanceRevise.java index 94346090e..4f606bb1e 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/BalanceRevise.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/BalanceRevise.java @@ -59,7 +59,8 @@ public class BalanceRevise implements ISessionStage { return sendSdfs(); } case ContinueRevise -> { - cashFlow(); //((SdfClearingRequest) task.getData()).getGroupId() if needed + //больше не используются, удалить после проверки + cashFlow(); //((SdfClearingRequest) task.getData()).getGroupId() if needed //todo убрать это отсюда return revise(); } default -> throw new IllegalStateException("unknown task " + task.getTaskType());