etreshenkov 2023-05-25 16:43:33 +03:00
parent d10b79f05e
commit d1ae9e05c8
3 changed files with 16 additions and 4 deletions

View file

@ -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<SDf57> {
private final Imdg<ClearingAccount> clearingAccountImdg;
private final Imdg<TradingClearingRegistry> tradingClearingRegistryImdg;
private final Imdg<Security> securityImdg;
private final Imdg<Currency> currencyImdg;
private final IMessageResolver messageResolver;
// private final Pair<>
public Sdf57Executor(@Qualifier("sdf57Validator") Function<SDf57, IValidator> sDf57Validator,
LoggingService errorLogger,
@ -75,6 +78,7 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
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<SDf57> {
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<SDf57> {
//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<SDf57> {
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()));

View file

@ -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<List<ExecutionCommon>> dealsPreparationResult;
{

View file

@ -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());