http://jira.mfd.msk:8088/browse/CLS-497 KSRepTradesReportBuilder
This commit is contained in:
parent
632bdf9e09
commit
085b0cf4ce
3 changed files with 40 additions and 11 deletions
|
|
@ -2,6 +2,7 @@ package ru.spcex.clearing.reports.builders.ks;
|
|||
|
||||
import org.springframework.stereotype.Component;
|
||||
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.execution.ExecutionCommon;
|
||||
import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
|
||||
|
|
@ -37,6 +38,7 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder<EmptyParams, KSRe
|
|||
private final Imdg<Company> companyImdg;
|
||||
private final Imdg<TradingClearingRegistry> tradingClearingRegistryImdg;
|
||||
private final Imdg<Account> accountImdg;
|
||||
private final Imdg<AccountSymbols> accountSymbolsImdg;
|
||||
|
||||
private List<KSRepTradesReport> rows = null;
|
||||
|
||||
|
|
@ -48,6 +50,7 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder<EmptyParams, KSRe
|
|||
companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||
tradingClearingRegistryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class);
|
||||
accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class);
|
||||
accountSymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_AccountSymbols, AccountSymbols.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -168,12 +171,7 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder<EmptyParams, KSRe
|
|||
}
|
||||
ksRepTradesReport.setAccount(account);
|
||||
|
||||
String depoAccount = "";
|
||||
if (tkr.getDepoAccountId() != null) {
|
||||
Account depoAccountFromImdg = accountImdg.getSingleObjectByID(tkr.getDepoAccountId());
|
||||
if (depoAccountFromImdg != null) depoAccount = depoAccountFromImdg.getAccount();
|
||||
}
|
||||
ksRepTradesReport.setDepoAccount(depoAccount);
|
||||
|
||||
|
||||
if (execution.getCompanyId() != null) {
|
||||
Company company = companyImdg.getSingleObjectByID(execution.getCompanyId());
|
||||
|
|
@ -192,6 +190,7 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder<EmptyParams, KSRe
|
|||
continue;
|
||||
}
|
||||
|
||||
String depoAccount = "";
|
||||
String agreementNumber = "";
|
||||
if (execution instanceof ExecutionDeposit executionDeposit) {
|
||||
agreementNumber = executionDeposit.getContract();
|
||||
|
|
@ -212,6 +211,18 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder<EmptyParams, KSRe
|
|||
ksRepTradesReport.setDepoLiability(BigDecimal.ZERO);
|
||||
} else if (execution instanceof ExecutionFond executionFond) {
|
||||
|
||||
if (tkr.getDepoAccountId() != null) {
|
||||
AccountSymbols accountSymbols = accountSymbolsImdg.getFirstObjectByFieldValues(Map.of(
|
||||
"accountId", tkr.getDepoAccountId()
|
||||
));
|
||||
if (accountSymbols != null) {
|
||||
depoAccount = accountSymbols.getAccountSymbolValue();
|
||||
} else {
|
||||
Account depoAccountFromImdg = accountImdg.getSingleObjectByID(tkr.getDepoAccountId());
|
||||
if (depoAccountFromImdg != null) depoAccount = depoAccountFromImdg.getAccount();
|
||||
}
|
||||
}
|
||||
|
||||
Company company = null;
|
||||
BigDecimal settlementAmount = executionFond.getSettlementAmount() != null ? executionFond.getSettlementAmount() : BigDecimal.ZERO;
|
||||
if (Arrays.asList(Side.BUY.getKey(), "B","BUY").contains(executionFond.getSide())) {
|
||||
|
|
@ -249,6 +260,7 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder<EmptyParams, KSRe
|
|||
quantity = quantity.negate();
|
||||
ksRepTradesReport.setDepoLiability(quantity);
|
||||
}
|
||||
ksRepTradesReport.setDepoAccount(depoAccount);
|
||||
|
||||
ksRepTradesReport.setAgreementNumber(agreementNumber);
|
||||
ksRepTradesReport.setTradeNum(execution.getExchangeExecutionId());
|
||||
|
|
|
|||
|
|
@ -586,8 +586,23 @@ public class ReportServiceTest_KS {
|
|||
|
||||
TradingClearingRegistry tradingClearingRegistry = new TradingClearingRegistry();
|
||||
tradingClearingRegistry.setCode("TKR");
|
||||
tradingClearingRegistry.setDepoAccountId(777L);
|
||||
Long tkrId = tradingClearingRegistryImdg.insert(tradingClearingRegistry);
|
||||
|
||||
Account account = new Account();
|
||||
account.setAccount("ACCOUNT");
|
||||
Long accountId = accountImdg.insert(account);
|
||||
|
||||
TradingClearingRegistry tradingClearingRegistry_1 = new TradingClearingRegistry();
|
||||
tradingClearingRegistry_1.setCode("TKR");
|
||||
tradingClearingRegistry_1.setDepoAccountId(accountId);
|
||||
Long tkrId_1 = tradingClearingRegistryImdg.insert(tradingClearingRegistry_1);
|
||||
|
||||
AccountSymbols accountSymbols = new AccountSymbols();
|
||||
accountSymbols.setAccountId(777L);
|
||||
accountSymbols.setAccountSymbolValue("ACC_SYMBOL_VALUE");
|
||||
accountSymbolsImdg.insert(accountSymbols);
|
||||
|
||||
Session session_1 = new Session();
|
||||
session_1.setCreated(Instant.ofEpochMilli(LocalDateTime.of(2023, 6, 30, 0, 0, 0).toEpochSecond(ZoneOffset.UTC)));
|
||||
Long sessionId_1 = sessionImdg.insert(session_1);
|
||||
|
|
@ -604,7 +619,7 @@ public class ReportServiceTest_KS {
|
|||
executionFond_2.setTradingDate(LocalDate.now());
|
||||
executionFond_2.setSide(MoneyFlowSide.BUY.getKey());
|
||||
executionFond_2.setSessionId(sessionId_1);
|
||||
executionFond_2.setTradingClearingRegistryId(tkrId);
|
||||
executionFond_2.setTradingClearingRegistryId(tkrId_1);
|
||||
executionFond_2.setSettlementAmount(BigDecimal.valueOf(8888.888888));
|
||||
executionFond_2.setQuantity(BigDecimal.valueOf(123.456789));
|
||||
executionFond_2.setExchangeExecutionId(222L);
|
||||
|
|
@ -707,6 +722,8 @@ public class ReportServiceTest_KS {
|
|||
registryImdg.delete(registry);
|
||||
registryImdg.delete(registry_2);
|
||||
tradingClearingRegistryImdg.delete(tradingClearingRegistry);
|
||||
accountSymbolsImdg.delete(accountSymbols);
|
||||
accountImdg.delete(account);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
"SESSION_ID","SESSION_DATE","TR_ID","AGREEMENT_NUMBER","FIRM_ID","TKR","ACCOUNT","DEPO_ACCOUNT","CASH_LIABILITY","DEPO_LIABILITY","TRADE_NUM","CLASS_CODE","TRADE_DATE","STATUS"
|
||||
"4","20.01.1970T07:09:07","222","CONTRACT","TRADING_CODE","TKR","","","8888.89","0","222","3333","20.01.1970T02:49:58","2"
|
||||
"3","20.01.1970T15:54:43","222","","TRADING_CODE","TKR","","","-8888.89","123","222","3333","20.01.1970T02:49:58","1"
|
||||
"3","20.01.1970T15:54:43","222","","TRADING_CODE","TKR","","","-8888.89","123","222","3333","20.01.1970T02:49:58","2"
|
||||
"3","20.01.1970T15:54:43","222","","TRADING_CODE","TKR","","","8888.89","-123","222","3333","20.01.1970T02:49:58","2"
|
||||
"7","20.01.1970T07:09:07","222","CONTRACT","TRADING_CODE","TKR","","","8888.89","0","222","3333","20.01.1970T02:49:58","2"
|
||||
"6","20.01.1970T15:54:43","222","","TRADING_CODE","TKR","","ACCOUNT","-8888.89","123","222","3333","20.01.1970T02:49:58","1"
|
||||
"6","20.01.1970T15:54:43","222","","TRADING_CODE","TKR","","ACC_SYMBOL_VALUE","8888.89","-123","222","3333","20.01.1970T02:49:58","2"
|
||||
"6","20.01.1970T15:54:43","222","","TRADING_CODE","TKR","","ACC_SYMBOL_VALUE","-8888.89","123","222","3333","20.01.1970T02:49:58","2"
|
||||
|
|
|
|||
|
Loading…
Add table
Reference in a new issue