This commit is contained in:
parent
8255f4a1eb
commit
e641510e7c
2 changed files with 28 additions and 20 deletions
|
|
@ -5,8 +5,10 @@ import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.clearing.classes.statics.data.account.Account;
|
import ru.clearing.classes.statics.data.account.Account;
|
||||||
import ru.clearing.classes.statics.data.account.ClearingAccount;
|
import ru.clearing.classes.statics.data.account.DepoAccount;
|
||||||
import ru.clearing.classes.statics.data.company.Company;
|
import ru.clearing.classes.statics.data.company.Company;
|
||||||
|
import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity;
|
||||||
|
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity;
|
||||||
import ru.clearing.classes.statics.data.registry.Registry;
|
import ru.clearing.classes.statics.data.registry.Registry;
|
||||||
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
||||||
import ru.clearing.classes.statics.data.sdf.SDf08;
|
import ru.clearing.classes.statics.data.sdf.SDf08;
|
||||||
|
|
@ -48,9 +50,10 @@ public class Sdf08Executor extends AbstractExecutor<SDf08> {
|
||||||
private final Imdg<Statement> statementImdg;
|
private final Imdg<Statement> statementImdg;
|
||||||
private final ImdgProvider imdgProvider;
|
private final ImdgProvider imdgProvider;
|
||||||
private final Imdg<Registry> registryImdg;
|
private final Imdg<Registry> registryImdg;
|
||||||
private final Imdg<Security> securityImdg;
|
private final Imdg<FixedIncomeSecurity> fixedIncomeSecurityImdg;
|
||||||
|
private final Imdg<EquitySecurity> equitySecurityImdg;
|
||||||
private final Function<SDf08, IValidator> sDf08Validator;
|
private final Function<SDf08, IValidator> sDf08Validator;
|
||||||
private final Imdg<ClearingAccount> clearingAccountImdg;
|
private final Imdg<DepoAccount> depoAccountImdg;
|
||||||
private final Imdg<TradingClearingRegistry> tradingClearingRegistryImdg;
|
private final Imdg<TradingClearingRegistry> tradingClearingRegistryImdg;
|
||||||
private final Imdg<Company> companyImdg;
|
private final Imdg<Company> companyImdg;
|
||||||
private final Imdg<SDf09> sdf09Imdg;
|
private final Imdg<SDf09> sdf09Imdg;
|
||||||
|
|
@ -62,8 +65,9 @@ public class Sdf08Executor extends AbstractExecutor<SDf08> {
|
||||||
this.imdgProvider = imdgProvider;
|
this.imdgProvider = imdgProvider;
|
||||||
this.statementImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Statement, Statement.class);
|
this.statementImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Statement, Statement.class);
|
||||||
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||||
this.securityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Security, Security.class);
|
this.fixedIncomeSecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, FixedIncomeSecurity.class);
|
||||||
this.clearingAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class);
|
this.equitySecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class);
|
||||||
|
this.depoAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class);
|
||||||
this.tradingClearingRegistryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class);
|
this.tradingClearingRegistryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class);
|
||||||
this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||||
this.sdf09Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf09, SDf09.class);
|
this.sdf09Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf09, SDf09.class);
|
||||||
|
|
@ -164,7 +168,7 @@ public class Sdf08Executor extends AbstractExecutor<SDf08> {
|
||||||
Statement stmt = new Statement();
|
Statement stmt = new Statement();
|
||||||
stmt.setAddresseeId(account.getCompanyId());
|
stmt.setAddresseeId(account.getCompanyId());
|
||||||
stmt.setSenderId(Sender.Rdc.getId());
|
stmt.setSenderId(Sender.Rdc.getId());
|
||||||
stmt.setStatementType(StatementType.incr.getKey());
|
stmt.setStatementType(StatementType.full.getKey());
|
||||||
stmt.setAccountId(account.getId());
|
stmt.setAccountId(account.getId());
|
||||||
stmt.setAccount(account.getAccount());
|
stmt.setAccount(account.getAccount());
|
||||||
stmt.setInOutDirection(InOutDirection.in.getKey());
|
stmt.setInOutDirection(InOutDirection.in.getKey());
|
||||||
|
|
@ -173,9 +177,12 @@ public class Sdf08Executor extends AbstractExecutor<SDf08> {
|
||||||
}
|
}
|
||||||
stmt.setOperationStatus(OperationStatus.Pending.getKey());
|
stmt.setOperationStatus(OperationStatus.Pending.getKey());
|
||||||
stmt.setInSDfId(sdf08.getId());
|
stmt.setInSDfId(sdf08.getId());
|
||||||
stmt.setInOutSDfType(InOutSDfType.type1.getKey());
|
stmt.setInOutSDfType(InOutSDfType.type08.getKey());
|
||||||
stmt.setClearingDate(LocalDate.now());
|
stmt.setClearingDate(LocalDate.now());
|
||||||
Security security = securityImdg.getSingleObjectByFieldValues(Map.of("securitySymbol", sdf08.getSecurityCode()));
|
Security security = fixedIncomeSecurityImdg.getSingleObjectByFieldValues(Map.of("securitySymbol", sdf08.getSecurityCode()));
|
||||||
|
if (security == null) {
|
||||||
|
security = equitySecurityImdg.getSingleObjectByFieldValues(Map.of("securitySymbol", sdf08.getSecurityCode()));
|
||||||
|
}
|
||||||
if (security != null) {
|
if (security != null) {
|
||||||
stmt.setSecurityId(security.getId());
|
stmt.setSecurityId(security.getId());
|
||||||
}
|
}
|
||||||
|
|
@ -208,14 +215,14 @@ public class Sdf08Executor extends AbstractExecutor<SDf08> {
|
||||||
rgs.setAccount(account.getAccount());
|
rgs.setAccount(account.getAccount());
|
||||||
rgs.setRegistryDesignation(RegistryDesignation.A.getKey());
|
rgs.setRegistryDesignation(RegistryDesignation.A.getKey());
|
||||||
rgs.setRegistryInstrumentType(RegistryInstrumentType.S.getKey());
|
rgs.setRegistryInstrumentType(RegistryInstrumentType.S.getKey());
|
||||||
ClearingAccount accountForStatement = clearingAccountImdg.getSingleObjectByID(statement.getAccountId());
|
DepoAccount depoAccount = depoAccountImdg.getSingleObjectByID(statement.getAccountId());
|
||||||
if (accountForStatement != null) {
|
if (depoAccount != null) {
|
||||||
rgs.setRegistryCapacity(accountForStatement.getClearingAccountType());
|
rgs.setRegistryCapacity(depoAccount.getDepoAccountType());
|
||||||
}
|
}
|
||||||
rgs.setRegistryUnit(RegistryUnit.T.getKey());
|
rgs.setRegistryUnit(RegistryUnit.T.getKey());
|
||||||
rgs.setRegistryCode(RegistryUtil.clearingCode(rgs));
|
rgs.setRegistryCode(RegistryUtil.clearingCode(rgs));
|
||||||
Collection<TradingClearingRegistry> tcrsByAccount = tradingClearingRegistryImdg.getCollectionObjectsByFieldValues(Map.of(
|
Collection<TradingClearingRegistry> tcrsByAccount = tradingClearingRegistryImdg.getCollectionObjectsByFieldValues(Map.of(
|
||||||
"moneyAccountId", statement.getAccountId(),
|
"depoAccountId", statement.getAccountId(),
|
||||||
"companyId", statement.getAddresseeId()
|
"companyId", statement.getAddresseeId()
|
||||||
));
|
));
|
||||||
if (!tcrsByAccount.isEmpty()) {
|
if (!tcrsByAccount.isEmpty()) {
|
||||||
|
|
@ -227,19 +234,20 @@ public class Sdf08Executor extends AbstractExecutor<SDf08> {
|
||||||
rgs.setRegistryStatus(RegistryStatus.PROC.getKey());
|
rgs.setRegistryStatus(RegistryStatus.PROC.getKey());
|
||||||
rgs.setSecurityId(statement.getSecurityId());
|
rgs.setSecurityId(statement.getSecurityId());
|
||||||
if (statement.getSecurityId() != null) {
|
if (statement.getSecurityId() != null) {
|
||||||
Security security = securityImdg.getSingleObjectByID(statement.getSecurityId());
|
Security security = fixedIncomeSecurityImdg.getSingleObjectByID(statement.getSecurityId());
|
||||||
|
if (security == null) {
|
||||||
|
security = equitySecurityImdg.getSingleObjectByID(statement.getSecurityId());
|
||||||
|
}
|
||||||
if (security != null) {
|
if (security != null) {
|
||||||
rgs.setSecuritySymbol(security.getSecuritySymbol());
|
rgs.setSecuritySymbol(security.getSecuritySymbol());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rgs.setCheckBalance(BigDecimalUtil.safeBD(statement.getAmount()));
|
rgs.setCheckBalance(BigDecimalUtil.safeBD(statement.getAmount()));
|
||||||
rgs.setDiffBalance(rgs.getCheckBalance().negate());
|
rgs.setBalance(BigDecimalUtil.safeBD(statement.getAmount()));
|
||||||
rgs.setBalanceDimension(BalanceDimension.MONY.getKey()); //fixme ! смотри описание и ссылка на начало html'ки
|
rgs.setDiffBalance(rgs.getBalance().subtract(rgs.getCheckBalance()));
|
||||||
//fixme !rgs.setSettlementCode();
|
rgs.setBalanceDimension(BalanceDimension.MONY.getKey());
|
||||||
rgs.setTradingDate(statement.getSettlementDate()); //fixme ! today ?
|
rgs.setTradingDate(statement.getSettlementDate());
|
||||||
rgs.setClearingDate(LocalDate.now());
|
rgs.setClearingDate(LocalDate.now());
|
||||||
//fixme rgs.setRefundDate();
|
|
||||||
//fixme rgs.setValueDate();
|
|
||||||
//создается на базе stmt, companyCred, accountDeb
|
//создается на базе stmt, companyCred, accountDeb
|
||||||
rgs.setCounterPartyId(statement.getAddresseeId());
|
rgs.setCounterPartyId(statement.getAddresseeId());
|
||||||
rgs.setCreated(Instant.now());
|
rgs.setCreated(Instant.now());
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package ru.spcex.platform.enumeration;
|
||||||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||||
|
|
||||||
public enum InOutSDfType implements IEnumKey {
|
public enum InOutSDfType implements IEnumKey {
|
||||||
type1("0102"), type16("1617"), type9("0910"), type57("57");
|
type1("0102"), type16("1617"), type9("0910"), type57("57"), type08("0809");
|
||||||
|
|
||||||
private final String key;
|
private final String key;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue