akulikov 2023-11-15 17:26:30 +03:00
parent deaa77a05c
commit 0d134db9c6
4 changed files with 36 additions and 5 deletions

View file

@ -16,7 +16,6 @@ import ru.spcex.clearing.reports.builders.bean.KSRepTradesReport;
import ru.spcex.platform.enumeration.*;
import ru.spcex.platform.imdg.api.Imdg;
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;
@ -227,16 +226,17 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder<EmptyParams, KSRe
if (execution instanceof ExecutionDeposit) {
ksRepTradesReport.setStatus("2");
} else {
ImdgPredicate registryPredicate = RegistryCodeSqlBuilder.getInstance(
ImdgPredicateBuilder pbRegistry = registryImdg.predicateBuilder();
String registryPredicateStr = RegistryCodeSqlBuilder.getInstance(
RegistryTradingParams.OS_T,
RegistryTradingParams.TS_T,
RegistryTradingParams.OM_T,
RegistryTradingParams.TM_T
).buildPredicate(pbExecutionFond);
).build();
Long groupId = execution.getExchangeExecutionId();
Collection<Registry> registryCollection = registryImdg.getCollectionObjectsByPredicate(
pbExecutionFond.and(
registryPredicate, pbExecutionFond.equals("groupId", groupId)
pbRegistry.and(
pbRegistry.sql(registryPredicateStr), pbRegistry.equals("groupId", groupId)
)
);
if (registryCollection.isEmpty()) {

View file

@ -612,6 +612,22 @@ public class ReportServiceTest_KS {
executionFond_2.setCoverageStatus(CoverageStatus.ALWD.getKey());
executionFondImdg.insert(executionFond_2);
ExecutionFond executionFond_3 = new ExecutionFond();
executionFond_3.setSecuritySymbol("SEC_SYM");
executionFond_3.setExchangeExecutionId(666L);
executionFond_3.setMarket("3333");
executionFond_3.setCompanyId(COMPANY_ID);
executionFond_3.setTradingDate(LocalDate.now());
executionFond_3.setSide(MoneyFlowSide.BUY.getKey());
executionFond_3.setSessionId(sessionId_1);
executionFond_3.setTradingClearingRegistryId(tkrId);
executionFond_3.setSettlementAmount(BigDecimal.valueOf(8888.888888));
executionFond_3.setQuantity(BigDecimal.valueOf(123.456789));
executionFond_3.setExchangeExecutionId(222L);
executionFond_3.setExchangeExecutionTime(Instant.ofEpochMilli(LocalDateTime.of(2022, 1, 1, 1, 1, 1).toEpochSecond(ZoneOffset.UTC)));
executionFond_3.setCoverageStatus(CoverageStatus.DEND.getKey());
executionFondImdg.insert(executionFond_3);
ExecutionFond executionFond = new ExecutionFond();
executionFond.setExchangeExecutionId(888L);
executionFond.setSecuritySymbol("SEC_SYM");
@ -644,6 +660,16 @@ public class ReportServiceTest_KS {
registry.setRegistryInstrumentType(RegistryInstrumentType.S.getKey());
registryImdg.insert(registry);
Registry registry_2 = new Registry();
registry_2.setSessionId(sessionId_2);
registry_2.setRegistryCode("OM_T");
registry_2.setRegistryDesignation(RegistryDesignation.O.getKey());
registry_2.setRegistryInstrumentType(RegistryInstrumentType.M.getKey());
registry_2.setRegistryUnit(RegistryUnit.T.getKey());
registry_2.setGroupId(executionFond_3.getExchangeExecutionId());
registry_2.setRegistryStatus(RegistryStatus.FAIL.getKey());
registryImdg.insert(registry_2);
ExecutionDeposit executionDeposit = new ExecutionDeposit();
executionDeposit.setMarket("3333");
executionDeposit.setCompanyId(COMPANY_ID);
@ -674,9 +700,12 @@ public class ReportServiceTest_KS {
executionDepositImdg.delete(executionDeposit);
executionFondImdg.delete(executionFond);
executionFondImdg.delete(executionFond_2);
executionFondImdg.delete(executionFond_3);
sessionImdg.delete(session_1);
sessionImdg.delete(session_2);
registryImdg.delete(registry);
registryImdg.delete(registry_2);
tradingClearingRegistryImdg.delete(tradingClearingRegistry);
}

View file

@ -1,4 +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","0"
"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","0"
"3","20.01.1970T15:54:43","222","","TRADING_CODE","TKR","","","8888.89","-123","222","3333","20.01.1970T02:49:58","1"

1 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
2 4 20.01.1970T07:09:07 222 CONTRACT TRADING_CODE TKR 8888.89 0 222 3333 20.01.1970T02:49:58 0
3 3 20.01.1970T15:54:43 222 TRADING_CODE TKR -8888.89 123 222 3333 20.01.1970T02:49:58 1
4 3 20.01.1970T15:54:43 222 TRADING_CODE TKR -8888.89 123 222 3333 20.01.1970T02:49:58 0
5 3 20.01.1970T15:54:43 222 TRADING_CODE TKR 8888.89 -123 222 3333 20.01.1970T02:49:58 1

View file

@ -63,6 +63,7 @@ public class RegistryCodeSqlBuilder {
}
// todo fix it, see build
public ImdgPredicate buildPredicate(ImdgPredicateBuilder pb) {
List<ImdgPredicate> conditions = new ArrayList<>();
for (RegistryTradingParams tradingParams : this.registryTradingParams) {