заполнение registry#securitySymbol при обработке SDF01/57
This commit is contained in:
parent
aea33dcd13
commit
bfca0aadf5
1 changed files with 27 additions and 4 deletions
|
|
@ -3,8 +3,12 @@ package ru.spcex.clearing.service.builder;
|
|||
import ru.clearing.classes.statics.data.account.Account;
|
||||
import ru.clearing.classes.statics.data.account.ClearingAccount;
|
||||
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.misc.Currency;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
||||
import ru.clearing.classes.statics.data.security.MoneyMarketSecurity;
|
||||
import ru.clearing.classes.statics.data.security.Security;
|
||||
import ru.clearing.classes.statics.data.statement.Statement;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
|
|
@ -30,6 +34,11 @@ public class RegistryBuilder {
|
|||
private final Imdg<ClearingAccount> clearingAccountImdg;
|
||||
private final Imdg<TradingClearingRegistry> tradingClearingRegistryImdg;
|
||||
private final Imdg<Security> securityImdg;
|
||||
private final Imdg<FixedIncomeSecurity> fixedIncomeSecurityImdg;
|
||||
private final Imdg<MoneyMarketSecurity> moneyMarketSecurityImdg;
|
||||
private final Imdg<EquitySecurity> equitySecurityImdg;
|
||||
private final Imdg<Currency> currencyImdg;
|
||||
|
||||
|
||||
public static RegistryBuilder builder(ImdgProvider imdgProvider) {
|
||||
return new RegistryBuilder(imdgProvider);
|
||||
|
|
@ -40,6 +49,10 @@ public class RegistryBuilder {
|
|||
this.clearingAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class);
|
||||
this.tradingClearingRegistryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class);
|
||||
this.securityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Security, Security.class);
|
||||
this.fixedIncomeSecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, FixedIncomeSecurity.class);
|
||||
this.moneyMarketSecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, MoneyMarketSecurity.class);
|
||||
this.equitySecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class);
|
||||
this.currencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Currency, Currency.class);
|
||||
}
|
||||
|
||||
public RegistryBuilder statement(Statement statement) {
|
||||
|
|
@ -101,10 +114,8 @@ public class RegistryBuilder {
|
|||
rgs.setRegistryStatus(RegistryStatus.PROC.getKey());
|
||||
rgs.setSecurityId(statement.getSecurityId());
|
||||
if (statement.getSecurityId() != null) {
|
||||
Security security = securityImdg.getSingleObjectByID(statement.getSecurityId());
|
||||
if (security != null) {
|
||||
rgs.setSecuritySymbol(security.getSecuritySymbol());
|
||||
}
|
||||
String securitySymbol = obtainSecuritySymbol(statement.getSecurityId());
|
||||
rgs.setSecuritySymbol(securitySymbol);
|
||||
}
|
||||
//fixme !rgs.setSettlementCode();
|
||||
rgs.setTradingDate(statement.getSettlementDate()); //fixme ! today ?
|
||||
|
|
@ -124,4 +135,16 @@ public class RegistryBuilder {
|
|||
rgs.setCheckBalance(BigDecimal.ZERO);
|
||||
return rgs;
|
||||
}
|
||||
|
||||
private String obtainSecuritySymbol(Long securityId) {
|
||||
Security security = fixedIncomeSecurityImdg.getSingleObjectByID(securityId);
|
||||
if (security != null) return security.getSecuritySymbol();
|
||||
security = moneyMarketSecurityImdg.getSingleObjectByID(securityId);
|
||||
if (security != null) return security.getSecuritySymbol();
|
||||
security = equitySecurityImdg.getSingleObjectByID(securityId);
|
||||
if (security != null) return security.getSecuritySymbol();
|
||||
Currency currency = currencyImdg.getSingleObjectByID(securityId);
|
||||
if (currency != null) return currency.getCurrencyCode();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue