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 557125aaa..bf40cf2e6 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 @@ -224,55 +224,50 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder registryCollection = registryImdg.getCollectionObjectsByPredicate( pbRegistry.and( - pbRegistry.sql(registryPredicateStr), pbRegistry.equals("groupId", groupId) + pbRegistry.equals("groupId", groupId), + pbRegistry.equals("companyId", execution.getCompanyId()), + pbRegistry.in("registryStatus", + RegistryStatus.NACC.getKey(), + RegistryStatus.NACC.getKey(), + RegistryStatus.FAIL.getKey(), + RegistryStatus.UNCV.getKey()), + pbRegistry.sql(registryPredicateStr) ) ); if (registryCollection.isEmpty()) { log.warn( - "Broken execution (empty registries). Registry for groupId = {} not found. Execution (id = {}) skipped", + "Broken execution (empty registries). Registry for groupId = {}, companyId = {} not found. Execution (id = {}) skipped", groupId, + execution.getCompanyId(), execution.getId() ); continue; } - boolean allOk = checkRegistryStatus( - registryCollection, - List.of(RegistryStatus.NACK, RegistryStatus.NACC, RegistryStatus.FAIL, RegistryStatus.UNCV) - ); - if (allOk) { - for (Registry registry : registryCollection) { - RegistryInstrumentType registryInstrumentType = IEnumKey.getEnumByKey(RegistryInstrumentType.class, registry.getRegistryInstrumentType()); - if (registryInstrumentType == RegistryInstrumentType.M) { - ksRepTradesReport.setStatus("2"); - break; - } - if (registryInstrumentType == RegistryInstrumentType.S) { - ksRepTradesReport.setStatus("3"); - break; - } - } + Registry registry = registryCollection.iterator().next(); + RegistryStatus registryStatus = IEnumKey.getEnumByKey(RegistryStatus.class, registry.getRegistryStatus()); + if (registryStatus == RegistryStatus.NACK || registryStatus == RegistryStatus.UNCV) { + status = "3"; + } else if (registryStatus == RegistryStatus.NACC || registryStatus == RegistryStatus.FAIL) { + status = "2"; } } - } } ksRepTradesReport.setStatus(status); rows.add(ksRepTradesReport); } catch (Throwable e) { - log.error("Can't create report row for execution_%s (id = %d), skipped".formatted(execution instanceof ExecutionFond ? "fond" : "deposit", execution.getId()), e); + log.error("Can't create report row for execution_%s (id = %d), skipped".formatted( + execution instanceof ExecutionFond ? "fond" : "deposit", + execution.getId()), e + ); } } } 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 6c4a16474..2b1b094bf 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 @@ -651,9 +651,9 @@ public class ReportServiceTest_KS { Registry registry = new Registry(); registry.setSessionId(sessionId_2); - registry.setRegistryCode("OM_T"); - registry.setRegistryDesignation(RegistryDesignation.O.getKey()); - registry.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); + registry.setCompanyId(COMPANY_ID); + registry.setRegistryCode("_S_T"); + registry.setRegistryInstrumentType(RegistryInstrumentType.S.getKey()); registry.setRegistryUnit(RegistryUnit.T.getKey()); registry.setGroupId(Long.parseLong("%s%d%d".formatted(dateFormatter_yyyyMMdd.format(LocalDate.now()), 222, marketId))); registry.setRegistryStatus(RegistryStatus.FAIL.getKey()); @@ -662,9 +662,9 @@ public class ReportServiceTest_KS { 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.setCompanyId(COMPANY_ID); + registry_2.setRegistryCode("_S_T"); + registry_2.setRegistryInstrumentType(RegistryInstrumentType.S.getKey()); registry_2.setRegistryUnit(RegistryUnit.T.getKey()); registry_2.setGroupId(executionFond_3.getExchangeExecutionId()); registry_2.setRegistryStatus(RegistryStatus.FAIL.getKey()); 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 1445a25c5..8504a5ba0 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,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","0" +"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","0" +"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","1" diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryTradingParams.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryTradingParams.java index f3358101a..6976b2cf8 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryTradingParams.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryTradingParams.java @@ -112,6 +112,7 @@ public record RegistryTradingParams(RegistryDesignation registryDesignation, public final static RegistryTradingParams DMAI; public final static RegistryTradingParams D__I; public final static RegistryTradingParams D__V; + public final static RegistryTradingParams _S_T; static { OS_T = new RegistryTradingParams(RegistryDesignation.O, @@ -255,6 +256,10 @@ public record RegistryTradingParams(RegistryDesignation registryDesignation, null, null, RegistryUnit.T); + _S_T = new RegistryTradingParams(null, + RegistryInstrumentType.S, + null, + RegistryUnit.T); } }