This commit is contained in:
akulikov 2023-10-31 16:45:14 +03:00
parent 2a61062eb9
commit 9eff119ff2
7 changed files with 63 additions and 6 deletions

View file

@ -1,6 +1,8 @@
package ru.spcex.clearing.reports.builders.ks;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.account.AccountSymbols;
import ru.clearing.classes.statics.data.misc.Session;
import ru.clearing.classes.statics.data.registry.Registry;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
@ -28,12 +30,14 @@ import java.util.stream.Collectors;
public class KSRepDepoNettoReportBuilder extends CSVReportBuilder<SessionIdParam, KSRepDepoNettoReport> {
private final Imdg<Registry> registryImdg;
private final Imdg<Session> sessionImdg;
private final Imdg<AccountSymbols> accountSymbolsImdg;
private List<KSRepDepoNettoReport> rows = null;
public KSRepDepoNettoReportBuilder(ImdgProvider imdgProvider) {
registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
accountSymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_AccountSymbols, AccountSymbols.class);
}
@Override
@ -128,7 +132,13 @@ public class KSRepDepoNettoReportBuilder extends CSVReportBuilder<SessionIdParam
ksRepDepoNettoReport.setFirmId(registry.getTradingCode());
ksRepDepoNettoReport.setSessionId(registry.getSessionId());
ksRepDepoNettoReport.setTkr(registry.getTradingClearingRegistry());
ksRepDepoNettoReport.setAccount(registry.getAccount());
String account = registry.getAccount();
AccountSymbols accountSymbols = accountSymbolsImdg.getFirstObjectByFieldValues(Map.of("accountId", registry.getAccountId()));
if (accountSymbols != null && !StringUtils.isBlank(accountSymbols.getAccountSymbolValue()))
account = accountSymbols.getAccountSymbolValue();
ksRepDepoNettoReport.setAccount(account);
ksRepDepoNettoReport.setSecurityId(registry.getSecuritySymbol());
ksRepDepoNettoReport.setDate(nowDate);

View file

@ -1,6 +1,8 @@
package ru.spcex.clearing.reports.builders.ks;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.account.AccountSymbols;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.registry.Registry;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
@ -13,6 +15,7 @@ import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
import ru.spcex.platform.utils.enumeration.IEnumKey;
import java.math.BigDecimal;
import java.time.Instant;
@ -22,17 +25,20 @@ import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@Component
public class KSRepDepoRegisterQuantitiesReportBuilder extends CSVReportBuilder<EmptyParams, KSRepDepoRegisterQuantitiesReport> {
private final Imdg<Registry> registryImdg;
private final Imdg<Company> companyImdg;
private final Imdg<AccountSymbols> accountSymbolsImdg;
private List<KSRepDepoRegisterQuantitiesReport> rows = null;
public KSRepDepoRegisterQuantitiesReportBuilder(ImdgProvider imdgProvider) {
registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
accountSymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_AccountSymbols, AccountSymbols.class);
}
@Override
@ -105,8 +111,14 @@ public class KSRepDepoRegisterQuantitiesReportBuilder extends CSVReportBuilder<E
pairRegistry.getId());
}
String firmId = registry.getTradingCode();
String account = registry.getAccount();
AccountSymbols accountSymbols = null;
if (IEnumKey.getEnumByKey(AccountType.class, registry.getAccountType()) == AccountType.Depo)
accountSymbols = accountSymbolsImdg.getFirstObjectByFieldValues(Map.of("accountId", registry.getAccountId()));
if (accountSymbols != null && !StringUtils.isBlank(accountSymbols.getAccountSymbolValue()))
account = accountSymbols.getAccountSymbolValue();
String firmId = registry.getTradingCode();
String tkr = registry.getTradingClearingRegistry();
String tradeNum = "";
String securityId = registry.getSecuritySymbol();

View file

@ -1,6 +1,8 @@
package ru.spcex.clearing.reports.builders.ks;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.account.AccountSymbols;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.registry.Registry;
import ru.clearing.platform.dictionary.RegistryCodeDictionary;
@ -29,6 +31,7 @@ public class KSRepDepoRegistersReportBuilder extends CSVReportBuilder<EmptyParam
private final Imdg<Registry> registryImdg;
private final Imdg<Company> companyImdg;
private final Imdg<RegistryCodeDictionary> registryCodeDictionaryImdg;
private final Imdg<AccountSymbols> accountSymbolsImdg;
private List<KSRepDepoRegistersReport> rows = null;
@ -36,6 +39,7 @@ public class KSRepDepoRegistersReportBuilder extends CSVReportBuilder<EmptyParam
registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
registryCodeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_RegistryCodeDictionary, RegistryCodeDictionary.class);
accountSymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_AccountSymbols, AccountSymbols.class);
}
@Override
@ -92,7 +96,13 @@ public class KSRepDepoRegistersReportBuilder extends CSVReportBuilder<EmptyParam
KSRepDepoRegistersReport ksRepDepoRegistersReport = new KSRepDepoRegistersReport();
ksRepDepoRegistersReport.setFirmId(registry.getTradingCode());
ksRepDepoRegistersReport.setAccount(registry.getAccount());
String account = registry.getAccount();
AccountSymbols accountSymbols = accountSymbolsImdg.getFirstObjectByFieldValues(Map.of("accountId", registry.getAccountId()));
if (accountSymbols != null && !StringUtils.isBlank(accountSymbols.getAccountSymbolValue()))
account = accountSymbols.getAccountSymbolValue();
ksRepDepoRegistersReport.setAccount(account);
ksRepDepoRegistersReport.setTkr(registry.getTradingClearingRegistry());
ksRepDepoRegistersReport.setDate(nowDate);
ksRepDepoRegistersReport.setSecurityId(registry.getSecuritySymbol());

View file

@ -15,6 +15,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import ru.clearing.classes.statics.data.account.Account;
import ru.clearing.classes.statics.data.account.AccountSymbols;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.company.CompanySymbols;
import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
@ -91,6 +92,7 @@ public class ReportServiceTest_KS {
private Imdg<EquitySecurity> equitySecurityImdg;
private Imdg<TradingClearingRegistry> tradingClearingRegistryImdg;
private Imdg<STrades> sTradesImdg;
private Imdg<AccountSymbols> accountSymbolsImdg;
private Long COMPANY_ID;
@Autowired
@ -269,6 +271,11 @@ public class ReportServiceTest_KS {
registryCodeDictionary.setName("AS_T_NAME");
registryCodeDictionaryImdg.insert(registryCodeDictionary);
AccountSymbols accountSymbols = new AccountSymbols();
accountSymbols.setAccountId(888L);
accountSymbols.setAccountSymbolValue("ACCOUNT_SYMBOL_VALUE");
accountSymbolsImdg.insert(accountSymbols);
Registry registry = new Registry();
registry.setCompanyId(COMPANY_ID);
registry.setSecurityId(777L);
@ -349,6 +356,7 @@ public class ReportServiceTest_KS {
registryImdg.delete(addWithdrawRegistry_1);
registryImdg.delete(addWithdrawRegistry_2);
registryImdg.delete(addWithdrawRegistry_3);
accountSymbolsImdg.delete(accountSymbols);
}
@Test
@ -359,6 +367,11 @@ public class ReportServiceTest_KS {
ReportRequest reportRequest = new ReportRequest();
reportRequest.setReportId(ReportBuilderType.KS_REP_DEPO_REGISTER_QUANTITIES.getKey());
AccountSymbols accountSymbols = new AccountSymbols();
accountSymbols.setAccountId(777L);
accountSymbols.setAccountSymbolValue("ACCOUNT_SYMBOL_VALUE");
accountSymbolsImdg.insert(accountSymbols);
Registry registry_1 = new Registry();
registry_1.setUpdated(Instant.now());
registry_1.setSecuritySymbol("SECURITY_SYMBOL");
@ -367,6 +380,8 @@ public class ReportServiceTest_KS {
registry_1.setTradingClearingRegistry("0008CAT00001");
registry_1.setCompanyId(COMPANY_ID);
registry_1.setAccount("ACCOUNT");
registry_1.setAccountId(777L);
registry_1.setAccountType(AccountType.Depo.getKey());
registry_1.setRegistryCode("DS_I");
registry_1.setRegistryDesignation("D");
registry_1.setRegistryInstrumentType("S");
@ -399,6 +414,7 @@ public class ReportServiceTest_KS {
registryImdg.delete(registry_1);
registryImdg.delete(pairRegistry);
accountSymbolsImdg.delete(accountSymbols);
}
@Test
@ -564,6 +580,11 @@ public class ReportServiceTest_KS {
reportRequest.setReportId(ReportBuilderType.KS_REP_DEPO_NETTO.getKey());
reportRequest.setSessionId(sessionId);
AccountSymbols accountSymbols = new AccountSymbols();
accountSymbols.setAccountId(777L);
accountSymbols.setAccountSymbolValue("ACCOUNT_SYMBOL_VALUE");
accountSymbolsImdg.insert(accountSymbols);
Registry registry_1 = new Registry();
registry_1.setTradingCode("TRADING_CODE");
registry_1.setClearingDate(LocalDate.now());
@ -579,6 +600,7 @@ public class ReportServiceTest_KS {
registry_1.setSessionId(sessionId);
registry_1.setAccount("ACCOUNT");
registry_1.setAccountType(AccountType.Depo.getKey());
registry_1.setAccountId(777L);
registry_1.setBalance(BigDecimal.valueOf(44.4444444));
registryImdg.insert(registry_1);
@ -596,6 +618,7 @@ public class ReportServiceTest_KS {
registry_2.setSecuritySymbol("SECURITY_SYMBOL");
registry_2.setSessionId(sessionId);
registry_2.setAccount("ACCOUNT");
registry_2.setAccountId(777L);
registry_2.setAccountType(AccountType.Depo.getKey());
registry_2.setBalance(BigDecimal.valueOf(22.2222222));
registryImdg.insert(registry_2);
@ -617,6 +640,7 @@ public class ReportServiceTest_KS {
registryImdg.delete(registry_1);
registryImdg.delete(registry_2);
sessionImdg.delete(session);
accountSymbolsImdg.delete(accountSymbols);
}
@Deprecated
@ -853,6 +877,7 @@ public class ReportServiceTest_KS {
statementImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Statement, Statement.class);
equitySecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class);
tradingClearingRegistryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class);
accountSymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_AccountSymbols, AccountSymbols.class);
sTradesImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_STrades, STrades.class);
accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class);
}

View file

@ -1,2 +1,2 @@
"FIRMID","SESSION_ID","SESSION_DATE","ACCOUNT","TKR","SECURITYID","VALUE","DATE"
"TRADING_CODE","2","20.01.1970T02:49:58","ACCOUNT","TKR","SECURITY_SYMBOL","22","07.07.2023"
"TRADING_CODE","2","20.01.1970T02:49:58","ACCOUNT_SYMBOL_VALUE","TKR","SECURITY_SYMBOL","22","07.07.2023"

1 FIRMID SESSION_ID SESSION_DATE ACCOUNT TKR SECURITYID VALUE DATE
2 TRADING_CODE 2 20.01.1970T02:49:58 ACCOUNT ACCOUNT_SYMBOL_VALUE TKR SECURITY_SYMBOL 22 07.07.2023

View file

@ -1,2 +1,2 @@
"FIRMID","ACCOUNT","TKR","DATE","SECURITYID","REGISTER_CODE","REGISTER_NAME","OPEN_QUANTITY","CHANGE_QUANTITY","ADD_WITHDRAW_DEPO","CLOSE_QUANTITY","REMARKS","TRADE_NUM"
"TRADING_CODE","ACCOUNT","TRADING_CLEARING_REGISTRY","02.10.2023","SECURITY_SYMBOL","AS_T","AS_T_NAME","78","67","111","255","",""
"TRADING_CODE","ACCOUNT_SYMBOL_VALUE","TRADING_CLEARING_REGISTRY","02.10.2023","SECURITY_SYMBOL","AS_T","AS_T_NAME","78","67","111","255","",""

1 FIRMID ACCOUNT TKR DATE SECURITYID REGISTER_CODE REGISTER_NAME OPEN_QUANTITY CHANGE_QUANTITY ADD_WITHDRAW_DEPO CLOSE_QUANTITY REMARKS TRADE_NUM
2 TRADING_CODE ACCOUNT ACCOUNT_SYMBOL_VALUE TRADING_CLEARING_REGISTRY 02.10.2023 SECURITY_SYMBOL AS_T AS_T_NAME 78 67 111 255

View file

@ -1,2 +1,2 @@
"FIRMID","ACCOUNT","TKR","SECURITYID","REGISTER_CODE","ADD_QUANTITY","ADD_TIME","ADD_DATE","TRADE_NUM"
"TRADING_CODE","ACCOUNT","0008CAT00001","SECURITY_SYMBOL","AS_T","10","13:55:53","02.10.2023",""
"TRADING_CODE","ACCOUNT_SYMBOL_VALUE","0008CAT00001","SECURITY_SYMBOL","AS_T","10","13:55:53","02.10.2023",""

1 FIRMID ACCOUNT TKR SECURITYID REGISTER_CODE ADD_QUANTITY ADD_TIME ADD_DATE TRADE_NUM
2 TRADING_CODE ACCOUNT ACCOUNT_SYMBOL_VALUE 0008CAT00001 SECURITY_SYMBOL AS_T 10 13:55:53 02.10.2023