This commit is contained in:
parent
be311962cb
commit
f595f0f251
9 changed files with 40 additions and 19 deletions
|
|
@ -24,7 +24,6 @@ public class ReportBuildersConfig {
|
|||
KSRepDepoRegistersReportBuilder ksRepDepoRegistersReportBuilder,
|
||||
KSRepDepoRegisterQuantitiesReportBuilder ksRepDepoRegisterQuantitiesReportBuilder,
|
||||
KSRepTradesReportBuilder ksRepTradesReportBuilder,
|
||||
KSRepFirmDetailsReportBuilder ksRepFirmDetailsReportBuilder,
|
||||
KSSessionListReportBuilder ksSessionListReportBuilder,
|
||||
KSCommissionTradesReportBuilder ksCommissionTradesReportBuilder
|
||||
) {
|
||||
|
|
@ -34,7 +33,6 @@ public class ReportBuildersConfig {
|
|||
resultMap.put(ReportBuilderType.KS_REP_DEPO_REGISTERS, List.of(ksRepDepoRegistersReportBuilder));
|
||||
resultMap.put(ReportBuilderType.KS_REP_DEPO_REGISTER_QUANTITIES, List.of(ksRepDepoRegisterQuantitiesReportBuilder));
|
||||
resultMap.put(ReportBuilderType.KS_REP_TRADES, List.of(ksRepTradesReportBuilder));
|
||||
resultMap.put(ReportBuilderType.KS_REP_FIRM_DETAILS, List.of(ksRepFirmDetailsReportBuilder));
|
||||
resultMap.put(ReportBuilderType.KS_SESSION_LIST, List.of(ksSessionListReportBuilder));
|
||||
resultMap.put(ReportBuilderType.KS_COMMISSION_TRADES, List.of(ksCommissionTradesReportBuilder));
|
||||
return resultMap;
|
||||
|
|
@ -72,7 +70,6 @@ public class ReportBuildersConfig {
|
|||
KSRepDepoRegistersReportBuilder ksRepDepoRegistersReportBuilder,
|
||||
KSRepDepoRegisterQuantitiesReportBuilder ksRepDepoRegisterQuantitiesReportBuilder,
|
||||
KSRepTradesReportBuilder ksRepTradesReportBuilder,
|
||||
KSRepFirmDetailsReportBuilder ksRepFirmDetailsReportBuilder,
|
||||
KSRepCashNettoReportBuilder ksRepCashNettoReportBuilder,
|
||||
KSRepDepoNettoReportBuilder ksRepDepoNettoReportBuilder,
|
||||
KSSessionListReportBuilder ksSessionListReportBuilder,
|
||||
|
|
@ -84,7 +81,6 @@ public class ReportBuildersConfig {
|
|||
resultMap.put(ReportBuilderType.KS_REP_DEPO_REGISTERS, List.of(ksRepDepoRegistersReportBuilder));
|
||||
resultMap.put(ReportBuilderType.KS_REP_DEPO_REGISTER_QUANTITIES, List.of(ksRepDepoRegisterQuantitiesReportBuilder));
|
||||
resultMap.put(ReportBuilderType.KS_REP_TRADES, List.of(ksRepTradesReportBuilder));
|
||||
resultMap.put(ReportBuilderType.KS_REP_FIRM_DETAILS, List.of(ksRepFirmDetailsReportBuilder));
|
||||
resultMap.put(ReportBuilderType.KS_REP_CASH_NETTO, List.of(ksRepCashNettoReportBuilder));
|
||||
resultMap.put(ReportBuilderType.KS_REP_DEPO_NETTO, List.of(ksRepDepoNettoReportBuilder));
|
||||
resultMap.put(ReportBuilderType.KS_SESSION_LIST, List.of(ksSessionListReportBuilder));
|
||||
|
|
@ -99,7 +95,6 @@ public class ReportBuildersConfig {
|
|||
KSRepDepoRegistersReportBuilder ksRepDepoRegistersReportBuilder,
|
||||
KSRepDepoRegisterQuantitiesReportBuilder ksRepDepoRegisterQuantitiesReportBuilder,
|
||||
KSRepTradesReportBuilder ksRepTradesReportBuilder,
|
||||
KSRepFirmDetailsReportBuilder ksRepFirmDetailsReportBuilder,
|
||||
KSRepCashNettoReportBuilder ksRepCashNettoReportBuilder,
|
||||
KSRepDepoNettoReportBuilder ksRepDepoNettoReportBuilder,
|
||||
KSSessionListReportBuilder ksSessionListReportBuilder,
|
||||
|
|
@ -111,7 +106,6 @@ public class ReportBuildersConfig {
|
|||
resultMap.put(ReportBuilderType.KS_REP_DEPO_REGISTERS, List.of(ksRepDepoRegistersReportBuilder));
|
||||
resultMap.put(ReportBuilderType.KS_REP_DEPO_REGISTER_QUANTITIES, List.of(ksRepDepoRegisterQuantitiesReportBuilder));
|
||||
resultMap.put(ReportBuilderType.KS_REP_TRADES, List.of(ksRepTradesReportBuilder));
|
||||
resultMap.put(ReportBuilderType.KS_REP_FIRM_DETAILS, List.of(ksRepFirmDetailsReportBuilder));
|
||||
resultMap.put(ReportBuilderType.KS_REP_CASH_NETTO, List.of(ksRepCashNettoReportBuilder));
|
||||
resultMap.put(ReportBuilderType.KS_REP_DEPO_NETTO, List.of(ksRepDepoNettoReportBuilder));
|
||||
resultMap.put(ReportBuilderType.KS_SESSION_LIST, List.of(ksSessionListReportBuilder));
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import com.opencsv.bean.CsvDate;
|
|||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@Deprecated
|
||||
public class KSRepFirmDetailsReport {
|
||||
@CsvBindByName(column = "FIRMID")
|
||||
@CsvBindByPosition(position = 0)
|
||||
|
|
|
|||
|
|
@ -93,6 +93,12 @@ public class KSRepCashRegisterSumsReportBuilder extends CSVReportBuilder<EmptyPa
|
|||
searchTCRAsInfo = true;
|
||||
} else {
|
||||
Account account = accountImdg.getSingleObjectByID(statement.getAccountId());
|
||||
if (account == null) {
|
||||
log.warn("Unexpected state: for statement (id = {}) not found account for accountId = {}. Statement was skipped",
|
||||
statement.getId(),
|
||||
statement.getAccountId());
|
||||
continue;
|
||||
}
|
||||
searchTCRAsInfo = AccountType.Info.equalsByKey(account.getAccountType());
|
||||
if (!searchTCRAsInfo && !AccountType.Clrn.equalsByKey(account.getAccountType())) {
|
||||
log.warn("Unexpected account[{}] type {}", account.getId(), account.getAccountType());
|
||||
|
|
@ -156,7 +162,7 @@ public class KSRepCashRegisterSumsReportBuilder extends CSVReportBuilder<EmptyPa
|
|||
if (!WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) {
|
||||
log.debug("For statement id = {}, company with id = {} not active",
|
||||
statement.getId(), company.getId());
|
||||
//continue;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ import java.util.Collection;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Deprecated
|
||||
@Component
|
||||
public class KSRepFirmDetailsReportBuilder extends CSVReportBuilder<EmptyParams, KSRepFirmDetailsReport> {
|
||||
private final Imdg<Company> companyImdg;
|
||||
|
|
|
|||
|
|
@ -130,9 +130,12 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder<EmptyParams, KSRe
|
|||
|
||||
if (execution instanceof ExecutionDeposit executionDeposit) {
|
||||
BigDecimal firstLegAmount = executionDeposit.getFirstLegAmount() != null ? executionDeposit.getFirstLegAmount() : BigDecimal.ZERO;
|
||||
if (Arrays.asList(Side.BUY.getKey(), "B","BUY").contains(executionDeposit.getSide())) {
|
||||
String sideStr = executionDeposit.getSide();
|
||||
Side side = IEnumKey.getEnumByKey(Side.class, sideStr);
|
||||
MoneyFlowSide mfSide = IEnumKey.getEnumByKey(MoneyFlowSide.class, sideStr);
|
||||
if (side == Side.BUY || mfSide == MoneyFlowSide.BUY) {
|
||||
ksRepTradesReport.setCashLiability(firstLegAmount);
|
||||
} else if (Arrays.asList(Side.SELL.getKey(), "S","SELL").contains((executionDeposit.getSide()))) {
|
||||
} else if (side == Side.SELL || mfSide == MoneyFlowSide.SELL) {
|
||||
firstLegAmount = firstLegAmount.negate();
|
||||
ksRepTradesReport.setCashLiability(firstLegAmount);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
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.company.Company;
|
||||
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||
import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
|
||||
|
|
@ -77,6 +78,7 @@ public class ReportServiceTest_KS {
|
|||
private static int reportRequestWithSessionIdListCnt = 0;
|
||||
private static int reportRequestWithPeriodCnt = 0;
|
||||
private Imdg<Statement> statementImdg;
|
||||
private Imdg<Account> accountImdg;
|
||||
private Imdg<Registry> registryImdg;
|
||||
private Imdg<Market> marketImdg;
|
||||
private Imdg<Company> companyImdg;
|
||||
|
|
@ -178,22 +180,30 @@ public class ReportServiceTest_KS {
|
|||
registry_1.setRegistryDesignation("A");
|
||||
registry_1.setRegistryInstrumentType("M");
|
||||
registry_1.setRegistryUnit("T");
|
||||
registry_1.setTradingClearingRegistry("TRADING_CLEARING_REGISTRY");
|
||||
registry_1.setTradingClearingRegistry("0008CAT00001");
|
||||
registryImdg.insert(registry_1);
|
||||
|
||||
TradingClearingRegistry tkr = new TradingClearingRegistry();
|
||||
tkr.setMoneyAccountId(777L);
|
||||
tkr.setCode("0008CAT00001");
|
||||
tkr.setCompanyId(COMPANY_ID);
|
||||
tradingClearingRegistryImdg.insert(tkr);
|
||||
|
||||
Account account = new Account();
|
||||
account.setAccountType(AccountType.Info.getKey());
|
||||
account.setAccount("ACCOUNT");
|
||||
Long accountId = accountImdg.insert(account);
|
||||
|
||||
Statement statement_1 = new Statement();
|
||||
statement_1.setAddresseeId(COMPANY_ID);
|
||||
statement_1.setAccount("ACCOUNT");
|
||||
statement_1.setAccountId(777L);
|
||||
statement_1.setAccountId(accountId);
|
||||
statement_1.setInOutDirection(InOutDirection.in.getKey());
|
||||
statement_1.setInOutSDfType(InOutSDfType.type57.getKey());
|
||||
statement_1.setOperationStatus(OperationStatus.Executed.getKey());
|
||||
statement_1.setAmount(BigDecimal.valueOf(7777.777777777));
|
||||
statement_1.setCreated(Instant.now());
|
||||
statement_1.setComment("Зачислить на ТКР 0008CAT00001");
|
||||
statementImdg.insert(statement_1);
|
||||
|
||||
String jsonString = TestUtils.getJsonStringForSystem(reportRequest, 0L);
|
||||
|
|
@ -213,6 +223,7 @@ public class ReportServiceTest_KS {
|
|||
registryImdg.delete(registry_1);
|
||||
statementImdg.delete(statement_1);
|
||||
tradingClearingRegistryImdg.delete(tkr);
|
||||
accountImdg.delete(account);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -344,6 +355,7 @@ public class ReportServiceTest_KS {
|
|||
executionFond.setMarket("3333");
|
||||
executionFond.setCompanyId(COMPANY_ID);
|
||||
executionFond.setTradingDate(LocalDate.now());
|
||||
executionFond.setSide(MoneyFlowSide.SELL.getKey());
|
||||
executionFond.setSessionId(sessionId_1);
|
||||
executionFond.setTradingClearingRegistryId(tkrId);
|
||||
executionFond.setSettlementAmount(BigDecimal.valueOf(8888.888888));
|
||||
|
|
@ -372,6 +384,7 @@ public class ReportServiceTest_KS {
|
|||
executionDeposit.setMarket("3333");
|
||||
executionDeposit.setCompanyId(COMPANY_ID);
|
||||
executionDeposit.setTradingDate(LocalDate.now());
|
||||
executionDeposit.setSide(Side.BUY.getKey());
|
||||
executionDeposit.setSessionId(sessionId_2);
|
||||
executionDeposit.setTradingClearingRegistryId(tkrId);
|
||||
executionDeposit.setFirstLegAmount(BigDecimal.valueOf(8888.888888));
|
||||
|
|
@ -528,7 +541,7 @@ public class ReportServiceTest_KS {
|
|||
sessionImdg.delete(session);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Deprecated
|
||||
@Order(8)
|
||||
public void createReportTest_KSRepFirmDetailsReport() throws IOException, CsvValidationException {
|
||||
clearTestDir();
|
||||
|
|
@ -645,11 +658,11 @@ public class ReportServiceTest_KS {
|
|||
companySymbolsImdg.insert(companySymbols);
|
||||
|
||||
Registry registry = new Registry();
|
||||
registry.setRegistryStatus(RegistryStatus.OK.getKey());
|
||||
registry.setRegistryStatus(RegistryStatus.CLRD.getKey());
|
||||
registry.setCompanyId(COMPANY_ID);
|
||||
registry.setRegistryCode("DM_T");
|
||||
registry.setRegistryDesignation(RegistryDesignation.D.getKey());
|
||||
registry.setRegistryInstrumentType(RegistryInstrumentType.M.getKey());
|
||||
registry.setRegistryCode("TS_T");
|
||||
registry.setRegistryDesignation(RegistryDesignation.T.getKey());
|
||||
registry.setRegistryInstrumentType(RegistryInstrumentType.S.getKey());
|
||||
registry.setRegistryUnit(RegistryUnit.T.getKey());
|
||||
registry.setBalance(BigDecimal.valueOf(77.777777777));
|
||||
registry.setSecuritySymbol("SECURITY_SYMBOL");
|
||||
|
|
@ -660,6 +673,8 @@ public class ReportServiceTest_KS {
|
|||
registry.setContract("CONT~RACT");
|
||||
registry.setClearingCode("CLEARING_CODE");
|
||||
registry.setGroupId(23071812300L);
|
||||
registry.setSessionType(SessionType.XDEP.getKey());
|
||||
registry.setValueDate(LocalDate.now().minusDays(10));
|
||||
registryImdg.insert(registry);
|
||||
|
||||
Registry omtRegistry = new Registry();
|
||||
|
|
@ -761,6 +776,7 @@ public class ReportServiceTest_KS {
|
|||
equitySecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class);
|
||||
tradingClearingRegistryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class);
|
||||
sTradesImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_STrades, STrades.class);
|
||||
accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class);
|
||||
}
|
||||
|
||||
private void clearTestDir() throws IOException {
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
"FIRM_ID","FIRM_ID_INITIATOR","SECCODE","CLASS_CODE","AGREEMENT_NUMBER","AGREEMENT_NUMBER_POSTFIX","AGREEMENT_DATE","SUM","REPAYM_DATE","EXEC_STATUS"
|
||||
"CLEARING_CODE","TRADING_CODE","SECURITY_SYMBOL","market","CONT","CONT~RACT","01.01.1991","77.78","05.09.2023","Исполнено"
|
||||
"CLEARING_CODE","TRADING_CODE","CONT~RACT","market","CONT","CONT~RACT","01.01.1991","77.78","05.09.2023","Исполнено"
|
||||
|
|
|
|||
|
|
|
@ -1,2 +1,2 @@
|
|||
"FIRMID","ACCOUNT","TKR","REGISTER_CODE","ADD_SUM","ADD_TIME","ADD_DATE","TRADE_NUM"
|
||||
"1","ACCOUNT","TRADING_CLEARING_REGISTRY","AM_T","7777.78","15:49:30","01.08.2023",""
|
||||
"1","","0008CAT00001","AM_T","7777.78","15:49:30","01.08.2023",""
|
||||
|
|
|
|||
|
|
|
@ -1,3 +1,3 @@
|
|||
"SESSION_ID","SESSION_DATE","TR_ID","FIRM_ID","TKR","CASH_LIABILITY","DEPO_LIABILITY","TRADE_NUM","CLASS_CODE","TRADE_DATE","STATUS"
|
||||
"4","20.01.1970T07:09:07","8","TRADING_CODE","TKR","8888.89","0","222",3333,"20.01.1970T02:49:58","0"
|
||||
"3","20.01.1970T15:54:43","5","TRADING_CODE","TKR","8888.89","123","222",3333,"20.01.1970T02:49:58","1"
|
||||
"3","20.01.1970T15:54:43","5","TRADING_CODE","TKR","8888.89","-123","222",3333,"20.01.1970T02:49:58","1"
|
||||
|
|
|
|||
|
Loading…
Add table
Reference in a new issue