diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepTradesReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepTradesReportBuilder.java index 6f0fa2d9f..557125aaa 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepTradesReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepTradesReportBuilder.java @@ -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 registryCollection = registryImdg.getCollectionObjectsByPredicate( - pbExecutionFond.and( - registryPredicate, pbExecutionFond.equals("groupId", groupId) + pbRegistry.and( + pbRegistry.sql(registryPredicateStr), pbRegistry.equals("groupId", groupId) ) ); if (registryCollection.isEmpty()) { diff --git a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_KS.java b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_KS.java index f12f83a9e..6c4a16474 100644 --- a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_KS.java +++ b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_KS.java @@ -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); } diff --git a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_TRADES_expected.csv b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_TRADES_expected.csv index 6cd6c8765..1445a25c5 100644 --- a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_TRADES_expected.csv +++ b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_TRADES_expected.csv @@ -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" diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/specific/RegistryCodeSqlBuilder.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/specific/RegistryCodeSqlBuilder.java index 376b4cdde..8d83a82c7 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/specific/RegistryCodeSqlBuilder.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/specific/RegistryCodeSqlBuilder.java @@ -63,6 +63,7 @@ public class RegistryCodeSqlBuilder { } + // todo fix it, see build public ImdgPredicate buildPredicate(ImdgPredicateBuilder pb) { List conditions = new ArrayList<>(); for (RegistryTradingParams tradingParams : this.registryTradingParams) {