From c01f499648345266fab43af6af7a956f4b3d725f Mon Sep 17 00:00:00 2001 From: akulikov Date: Thu, 13 Jul 2023 19:46:39 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-358 fix KSRepTrades and logs for KSRepDepoNetto --- .../reports/reports/CSVReportBuilder.java | 2 +- .../ks/KSRepDepoNettoReportBuilder.java | 4 +- .../reports/ks/KSRepTradesReportBuilder.java | 86 ++++++++++--------- .../services/ReportServiceTest_KS.java | 13 ++- 4 files changed, 60 insertions(+), 45 deletions(-) diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/CSVReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/CSVReportBuilder.java index 019c72974..e35889902 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/CSVReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/CSVReportBuilder.java @@ -33,7 +33,7 @@ public abstract class CSVReportBuilder { protected static final Logger log = LoggerFactory.getLogger(CSVReportBuilder.class); protected DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy'T'HH:mm:ss"); protected DateTimeFormatter dateTimeFormatter_YYMMDDHHmmssSSS = DateTimeFormatter.ofPattern("yyMMddHHmmssSSS"); - protected DateTimeFormatter dateFormatter_yyMMdd = DateTimeFormatter.ofPattern("yyMMdd"); + protected DateTimeFormatter dateFormatter_yyyyMMdd = DateTimeFormatter.ofPattern("yyyyMMdd"); /** * Возвращает списком значения CSV отчета. Каждый элемент списка - строка, элемент массива внутри списка - столбец. diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoNettoReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoNettoReportBuilder.java index 119bcdec8..761ec11be 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoNettoReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoNettoReportBuilder.java @@ -83,7 +83,7 @@ public class KSRepDepoNettoReportBuilder extends CSVReportBuilder groupedRegistry = entry.getValue(); try { if (groupedRegistry.size() != 2) { - log.warn("Invalid OM_T and TM_T registries for GroupId = {} and SettlementDate = {}. Registries with id = [{}] was skipped", + log.warn("Invalid OS_T and TS_T registries for GroupId = {} and SettlementDate = {}. Registries with id = [{}] was skipped", pairRegistryId.getGroupId(), pairRegistryId.getSettlementDate(), groupedRegistry.stream().map(r -> String.valueOf(r.getId())).collect(Collectors.joining(", ")) @@ -99,7 +99,7 @@ public class KSRepDepoNettoReportBuilder extends CSVReportBuilder executionFondImdg; private final Imdg sessionImdg; private final Imdg registryImdg; + private final Imdg marketImdg; private final Imdg companyImdg; private List rows = null; @@ -43,6 +46,7 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder registries, Collection registryStatuses) { + for (Registry registry : registries) { + RegistryStatus registryStatus = IEnumKey.getEnumByKey(RegistryStatus.class, registry.getRegistryStatus()); + if (registryStatuses.contains(registryStatus)) continue; + return false; + } + return true; + } + + private boolean checkRegistryInstrumentType(Collection registries, Collection RegistryInstrumentTypes) { + for (Registry registry : registries) { + RegistryInstrumentType RegistryInstrumentType = IEnumKey.getEnumByKey(RegistryInstrumentType.class, registry.getRegistryInstrumentType()); + if (RegistryInstrumentTypes.contains(RegistryInstrumentType)) continue; + return false; + } + return true; + } } 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 5d859c6ba..8a77fbcd4 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 @@ -18,6 +18,7 @@ import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.CompanySymbols; import ru.clearing.classes.statics.data.execution.ExecutionDeposit; import ru.clearing.classes.statics.data.execution.ExecutionFond; +import ru.clearing.classes.statics.data.misc.Market; import ru.clearing.classes.statics.data.misc.Session; import ru.clearing.classes.statics.data.profile.ProfileDocument; import ru.clearing.classes.statics.data.registry.Registry; @@ -63,13 +64,14 @@ import static org.junit.jupiter.api.Assertions.assertEquals; }) @TestMethodOrder(MethodOrderer.OrderAnnotation.class) public class ReportServiceTest_KS { - protected DateTimeFormatter dateFormatter_yyMMdd = DateTimeFormatter.ofPattern("yyMMdd"); + protected DateTimeFormatter dateFormatter_yyyyMMdd = DateTimeFormatter.ofPattern("yyyyMMdd"); private static File outFolder; private static int reportRequestCnt = 0; private static int reportRequestWithSessionIdCnt = 0; private static int reportRequestWithSessionIdListCnt = 0; private static int reportRequestWithPeriodCnt = 0; private Imdg registryImdg; + private Imdg marketImdg; private Imdg companyImdg; private Imdg registryCodeDictionaryImdg; private Imdg executionDepositImdg; @@ -303,19 +305,23 @@ public class ReportServiceTest_KS { executionFond.setCoverageStatus(CoverageStatus.ALWD.getKey()); executionFondImdg.insert(executionFond); + Market market = new Market(); + market.setCode("3333"); + Long marketId = marketImdg.insert(market); + Registry registry = new Registry(); registry.setSessionId(sessionId_2); registry.setRegistryCode("OM_T"); registry.setRegistryDesignation(RegistryDesignation.O.getKey()); registry.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); registry.setRegistryUnit(RegistryUnit.T.getKey()); - registry.setGroupId(Long.parseLong("%s%d%s".formatted(dateFormatter_yyMMdd.format(LocalDate.now()), 222, "333"))); + registry.setGroupId(Long.parseLong("%s%d%d".formatted(dateFormatter_yyyyMMdd.format(LocalDate.now()), 222, marketId))); registry.setRegistryStatus(RegistryStatus.FAIL.getKey()); registry.setRegistryInstrumentType(RegistryInstrumentType.S.getKey()); registryImdg.insert(registry); ExecutionDeposit executionDeposit = new ExecutionDeposit(); - executionDeposit.setMarket("333"); + executionDeposit.setMarket("3333"); executionDeposit.setCompanyId(COMPANY_ID); executionDeposit.setTradingDate(LocalDate.now()); executionDeposit.setSessionId(sessionId_2); @@ -599,6 +605,7 @@ public class ReportServiceTest_KS { sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); profileDocumentImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class); + marketImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Market, Market.class); } private void clearTestDir() throws IOException {