From ea0b8a74dd902eb2d079ba4e88bba1c0bba5b1c2 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Fri, 22 Sep 2023 17:26:40 +0300 Subject: [PATCH] =?UTF-8?q?reports-service=20http://jira.mfd.msk:8088/brow?= =?UTF-8?q?se/CLS-497=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reports/reports/PairRegistry3Id.java | 66 +++++++++++++++++++ .../reports/reports/PairRegistryId.java | 8 +++ .../ks/KSRepDepoNettoReportBuilder.java | 13 ++-- .../reports/ks/KSRepTradesReportBuilder.java | 25 +++++-- 4 files changed, 101 insertions(+), 11 deletions(-) create mode 100644 clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/PairRegistry3Id.java diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/PairRegistry3Id.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/PairRegistry3Id.java new file mode 100644 index 000000000..6a49cfb55 --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/PairRegistry3Id.java @@ -0,0 +1,66 @@ +package ru.spcex.clearing.reports.reports; + +import ru.clearing.classes.statics.data.registry.Registry; + +import java.util.Objects; + +public class PairRegistry3Id { + private String account; + private Long securityId; + private Long sessionId; + + public PairRegistry3Id() { + } + + public PairRegistry3Id(Registry registry) { + this.account = registry.getAccount(); + this.sessionId = registry.getSessionId(); + this.securityId = registry.getSecurityId(); + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public Long getSecurityId() { + return securityId; + } + + public void setSecurityId(Long securityId) { + this.securityId = securityId; + } + + public Long getSessionId() { + return sessionId; + } + + public void setSessionId(Long sessionId) { + this.sessionId = sessionId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PairRegistry3Id that = (PairRegistry3Id) o; + return Objects.equals(account, that.account) && Objects.equals(securityId, that.securityId) && Objects.equals(sessionId, that.sessionId); + } + + @Override + public int hashCode() { + return Objects.hash(account, securityId, sessionId); + } + + @Override + public String toString() { + return "{" + + "account='" + account + '\'' + + ", securityId=" + securityId + + ", sessionId=" + sessionId + + '}'; + } +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/PairRegistryId.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/PairRegistryId.java index 3e490d324..5a4a4012f 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/PairRegistryId.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/PairRegistryId.java @@ -48,4 +48,12 @@ public class PairRegistryId { result = 31 * result + (sessionId != null ? sessionId.hashCode() : 0); return result; } + + @Override + public String toString() { + return "{" + + "account='" + account + '\'' + + ", sessionId=" + sessionId + + '}'; + } } 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 4295fff86..1e33b4e51 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 @@ -5,7 +5,7 @@ import ru.clearing.classes.statics.data.misc.Session; import ru.clearing.classes.statics.data.registry.Registry; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.reports.reports.CSVReportBuilder; -import ru.spcex.clearing.reports.reports.PairRegistryId; +import ru.spcex.clearing.reports.reports.PairRegistry3Id; import ru.spcex.clearing.reports.reports.SessionIdParam; import ru.spcex.clearing.reports.reports.bean.KSRepDepoNettoReport; import ru.spcex.platform.enumeration.*; @@ -79,16 +79,15 @@ public class KSRepDepoNettoReportBuilder extends CSVReportBuilder registries = registryImdg.getCollectionObjectsByPredicate(finalPredicate); log.debug("Found {} Registry by query: {}", registries.size(), finalPredicate); - Map> registryMap = registries.stream().collect(Collectors.groupingBy(PairRegistryId::new)); + Map> registryMap = registries.stream().collect(Collectors.groupingBy(PairRegistry3Id::new)); rows = new ArrayList<>(registries.size()); - for (Map.Entry> entry : registryMap.entrySet()) { - PairRegistryId pairRegistryId = entry.getKey(); + for (Map.Entry> entry : registryMap.entrySet()) { + PairRegistry3Id pairRegistryId = entry.getKey(); List groupedRegistry = entry.getValue(); try { if (groupedRegistry.isEmpty()) { - log.warn("Empty OS_T and TS_T registries for account = {} and sessionId = {}. Registries with id = [{}] was skipped", - pairRegistryId.getAccount(), - pairRegistryId.getSessionId(), + log.warn("Empty OS_T and TS_T registries for {}. Registries with id = [{}] was skipped", + pairRegistryId, groupedRegistry.stream().map(r -> String.valueOf(r.getId())).collect(Collectors.joining(", ")) ); continue; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepTradesReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepTradesReportBuilder.java index 004d89191..c7220caf8 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepTradesReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepTradesReportBuilder.java @@ -25,6 +25,7 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -129,15 +130,31 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder