From 934b9babd302e3927398a0cfd86e3d721e34ef96 Mon Sep 17 00:00:00 2001 From: akulikov Date: Tue, 3 Oct 2023 17:28:05 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-497 --- .../KSRepCashRegisterSumsReportBuilder.java | 19 +++++++++++++++++- ...epDepoRegisterQuantitiesReportBuilder.java | 19 +++++++++++++++++- .../services/ReportServiceTest_KS.java | 20 +++++++++++++++++++ .../ks/KS_REP_CASH_REGISTER_SUMS_expected.csv | 2 +- ..._REP_DEPO_REGISTER_QUANTITIES_expected.csv | 2 +- 5 files changed, 58 insertions(+), 4 deletions(-) diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashRegisterSumsReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashRegisterSumsReportBuilder.java index 318df170b..bd4e78a2f 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashRegisterSumsReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashRegisterSumsReportBuilder.java @@ -88,11 +88,28 @@ public class KSRepCashRegisterSumsReportBuilder extends CSVReportBuilder pairRegistries = registryImdg.getCollectionObjectsByPredicate( + pb.and( + pb.equals("tradingCode", registry.getTradingCode()), + pb.equals("account", registry.getAccount()), + pairRegistryPredicate + ) + ); + if (pairRegistries.isEmpty()) log.warn("Pair AM_T registry for registry (id = {}) not found", registry.getId()); + pairRegistry = pairRegistries.iterator().next(); + if (pairRegistries.size() > 1) { + log.warn("For registry (id = {}) found > 1 AM_T registry, use first (id = {})", + registry.getId(), + pairRegistry.getId()); + } + String firmId = registry.getTradingCode(); String account = registry.getAccount(); String tkr = registry.getTradingClearingRegistry(); String tradeNum = ""; - String registerCode = registry.getRegistryCode(); + String registerCode = pairRegistry != null ? pairRegistry.getRegistryCode() : ""; BigDecimal addSum = registry.getBalance() != null ? registry.getBalance() :BigDecimal.ZERO; Instant addTime = registry.getUpdated(); LocalDate addDate = LocalDate.now(); diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoRegisterQuantitiesReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoRegisterQuantitiesReportBuilder.java index 6b67bae7c..3dc0011d6 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoRegisterQuantitiesReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoRegisterQuantitiesReportBuilder.java @@ -88,12 +88,29 @@ public class KSRepDepoRegisterQuantitiesReportBuilder extends CSVReportBuilder pairRegistries = registryImdg.getCollectionObjectsByPredicate( + pb.and( + pb.equals("tradingCode", registry.getTradingCode()), + pb.equals("account", registry.getAccount()), + pairRegistryPredicate + ) + ); + if (pairRegistries.isEmpty()) log.warn("Pair AS_T registry for registry (id = {}) not found", registry.getId()); + pairRegistry = pairRegistries.iterator().next(); + if (pairRegistries.size() > 1) { + log.warn("For registry (id = {}) found > 1 AS_T registry, use first (id = {})", + registry.getId(), + pairRegistry.getId()); + } + String firmId = registry.getTradingCode(); String account = registry.getAccount(); String tkr = registry.getTradingClearingRegistry(); String tradeNum = ""; String securityId = registry.getSecuritySymbol(); - String registerCode = registry.getRegistryCode(); + String registerCode = pairRegistry != null ? pairRegistry.getRegistryCode() : ""; BigDecimal addQuantity = registry.getBalance() != null ? registry.getBalance() :BigDecimal.ZERO; Instant addTime = registry.getUpdated(); LocalDate addDate = LocalDate.now(); 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 b223b9199..5c90a2970 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 @@ -232,6 +232,15 @@ public class ReportServiceTest_KS { registry_1.setRegistryUnit("I"); registryImdg.insert(registry_1); + Registry pairRegistry = new Registry(); + pairRegistry.setTradingCode("TRADING_CODE"); + pairRegistry.setAccount("ACCOUNT"); + pairRegistry.setRegistryCode("AM_T"); + pairRegistry.setRegistryDesignation("A"); + pairRegistry.setRegistryInstrumentType("M"); + pairRegistry.setRegistryUnit("T"); + registryImdg.insert(pairRegistry); + String jsonString = TestUtils.getJsonStringForSystem(reportRequest, 0L); TestUtils.addRecordToKafka((MockConsumer) reportService.getConsumer(), @@ -247,6 +256,7 @@ public class ReportServiceTest_KS { compareCSVFiles(expectedFile, outFile, Arrays.asList("FIRMID", "ADD_DATE", "ADD_TIME")); registryImdg.delete(registry_1); + registryImdg.delete(pairRegistry); } @Test @@ -370,6 +380,15 @@ public class ReportServiceTest_KS { registry_1.setBalance(BigDecimal.TEN); registryImdg.insert(registry_1); + Registry pairRegistry = new Registry(); + pairRegistry.setTradingCode("TRADING_CODE"); + pairRegistry.setAccount("ACCOUNT"); + pairRegistry.setRegistryCode("AS_T"); + pairRegistry.setRegistryDesignation("A"); + pairRegistry.setRegistryInstrumentType("S"); + pairRegistry.setRegistryUnit("T"); + registryImdg.insert(pairRegistry); + String jsonString = TestUtils.getJsonStringForSystem(reportRequest, 0L); TestUtils.addRecordToKafka((MockConsumer) reportService.getConsumer(), @@ -385,6 +404,7 @@ public class ReportServiceTest_KS { compareCSVFiles(expectedFile, outFile, Arrays.asList("FIRMID", "ADD_DATE", "ADD_TIME")); registryImdg.delete(registry_1); + registryImdg.delete(pairRegistry); } @Test diff --git a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_REGISTER_SUMS_expected.csv b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_REGISTER_SUMS_expected.csv index 8ccfdd127..2eec3e2b8 100644 --- a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_REGISTER_SUMS_expected.csv +++ b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_REGISTER_SUMS_expected.csv @@ -1,2 +1,2 @@ "FIRMID","ACCOUNT","TKR","REGISTER_CODE","ADD_SUM","ADD_TIME","ADD_DATE","TRADE_NUM" -"TRADING_CODE","ACCOUNT","0008CAT00001","DM_I","0.00","13:02:50","02.10.2023","" +"TRADING_CODE","ACCOUNT","0008CAT00001","AM_T","0.00","13:02:50","02.10.2023","" diff --git a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_DEPO_REGISTER_QUANTITIES_expected.csv b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_DEPO_REGISTER_QUANTITIES_expected.csv index c26be1cc2..bc00925db 100644 --- a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_DEPO_REGISTER_QUANTITIES_expected.csv +++ b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_DEPO_REGISTER_QUANTITIES_expected.csv @@ -1,2 +1,2 @@ "FIRMID","ACCOUNT","TKR","SECURITYID","REGISTER_CODE","ADD_QUANTITY","ADD_TIME","ADD_DATE","TRADE_NUM" -"TRADING_CODE","ACCOUNT","0008CAT00001","SECURITY_SYMBOL","DS_I","10","13:55:53","02.10.2023","" +"TRADING_CODE","ACCOUNT","0008CAT00001","SECURITY_SYMBOL","AS_T","10","13:55:53","02.10.2023",""