From 1c27ed93f92b385b62938a17f56bd7a7cf0d267b Mon Sep 17 00:00:00 2001 From: akulikov Date: Wed, 11 Jan 2023 12:10:38 +0300 Subject: [PATCH] cls26 collector --- ...r.java => ReportBR_0420317_Collector.java} | 168 +++++++++--------- 1 file changed, 82 insertions(+), 86 deletions(-) rename clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/{ReportBR_0420317_collector.java => ReportBR_0420317_Collector.java} (79%) diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420317_collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420317_Collector.java similarity index 79% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420317_collector.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420317_Collector.java index c0aff2dd4..8699ec969 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420317_collector.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420317_Collector.java @@ -1,86 +1,82 @@ -package ru.spcex.clearing.reports.services.collector; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.company.Company; -import ru.clearing.classes.statics.data.company.CompanySymbols; -import ru.clearing.classes.statics.data.company.relation.Relation; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt_17_2.ReportBR_0420317; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -import ru.spcex.platform.enumeration.DocumentTypes; -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 java.time.Instant; -import java.time.LocalDate; -import java.util.Collection; -import java.util.Map; - -@Component -public class ReportBR_0420317_collector extends ReportWithPeriodCollector { - private Imdg companyImdg; - private Imdg relationImdg; - private Imdg companySymbolsImdg; - - @Autowired - public ReportBR_0420317_collector(ImdgProvider imdgProvider) { - companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); - relationImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); - companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); - } - - Collection searchRelation(LocalDate startDate, LocalDate endDate, String service) { -// String ql = String.format("'%s' <= updated and updated <= '%s' and service='MKR'", startDate, endDate); -// Collection relations = relationImdg.getCollectionObjectsBySQL(ql); - - ImdgPredicateBuilder pb = relationImdg.predicateBuilder(); - Instant dateTimeLo = toInstantStartDay(startDate); - Instant dateTimeHi = toInstantStartDay(endDate); - ImdgPredicate p = pb.and(pb.greatEqual("updated", dateTimeLo), pb.lessEqual("updated", dateTimeHi), - pb.equals("service", service)); - Collection relations = relationImdg.getCollectionObjectsByPredicate(p); - return relations; - } - - @Override - public ReportBR_0420317 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - - Collection relations = searchRelation(startDate, endDate, "MKR"); - - ReportBR_0420317 reportBR_0420317 = new ReportBR_0420317(startDate, endDate); - for (Relation relation: relations) { - Company company = relation.getConsumerId() == null ? null : companyImdg.getSingleObjectByID(relation.getConsumerId()); - if (company == null) { - log.warn("Company.id={} not found for relation.id={}", relation.getConsumerId(), relation.getId()); - continue; - } - CompanySymbols companySymbol = companySymbolsImdg.getSingleObjectByFieldValues(Map.of( - "companySymbol", DocumentTypes.inn.getKey(),// ИНН или TIN участника клиринга - "companyId", company.getId() - )); - ReportBR_0420317.Info_0420317 info_0420317 = new ReportBR_0420317.Info_0420317( - company.getClearingCode(), - toString(relation.getSupplierId()), - relation.getService(), - relation.getServiceStatus(), - toString(relation.getUpdated()), - company.getFullName(), - companySymbol == null ? null : companySymbol.getCompanySymbolValue(), - company.getProfile().getCountryCode(), - relation.getComment() - ); - reportBR_0420317.getRows().add(info_0420317); - } - - return reportBR_0420317; - } - - @Override - public Class getReportClass() { - return ReportBR_0420317.class; - } -} +package ru.spcex.clearing.reports.services.collector; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.company.CompanySymbols; +import ru.clearing.classes.statics.data.company.relation.Relation; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.reports.reports.bt_17_2.ReportBR_0420317; +import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; +import ru.spcex.platform.enumeration.DocumentTypes; +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 java.time.Instant; +import java.time.LocalDate; +import java.util.Collection; +import java.util.Map; + +@Component +public class ReportBR_0420317_Collector extends ReportWithPeriodCollector { + private Imdg companyImdg; + private Imdg relationImdg; + private Imdg companySymbolsImdg; + + @Autowired + public ReportBR_0420317_Collector(ImdgProvider imdgProvider) { + companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); + relationImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); + companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); + } + + Collection searchRelation(LocalDate startDate, LocalDate endDate, String service) { + ImdgPredicateBuilder pb = relationImdg.predicateBuilder(); + Instant dateTimeLo = toInstantStartDay(startDate); + Instant dateTimeHi = toInstantStartDay(endDate); + ImdgPredicate p = pb.and(pb.greatEqual("updated", dateTimeLo), pb.lessEqual("updated", dateTimeHi), + pb.equals("service", service)); + Collection relations = relationImdg.getCollectionObjectsByPredicate(p); + return relations; + } + + @Override + public ReportBR_0420317 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { + validateDateRange(startDate, endDate); + + Collection relations = searchRelation(startDate, endDate, "MKR"); + + ReportBR_0420317 reportBR_0420317 = new ReportBR_0420317(startDate, endDate); + for (Relation relation: relations) { + Company company = relation.getConsumerId() == null ? null : companyImdg.getSingleObjectByID(relation.getConsumerId()); + if (company == null) { + log.warn("Company.id={} not found for relation.id={}", relation.getConsumerId(), relation.getId()); + continue; + } + CompanySymbols companySymbol = companySymbolsImdg.getSingleObjectByFieldValues(Map.of( + "companySymbol", DocumentTypes.inn.getKey(),// ИНН или TIN участника клиринга + "companyId", company.getId() + )); + ReportBR_0420317.Info_0420317 info_0420317 = new ReportBR_0420317.Info_0420317( + toString(company.getClearingCode()), + toString(toString(relation.getSupplierId())), + toString(relation.getService()), + toString(relation.getServiceStatus()), + toString(relation.getUpdated()), + toString(company.getFullName()), + companySymbol == null ? "" : toString(companySymbol.getCompanySymbolValue()), + toString(company.getProfile().getCountryCode()), + toString(relation.getComment())); + reportBR_0420317.getRows().add(info_0420317); + } + + return reportBR_0420317; + } + + @Override + public Class getReportClass() { + return ReportBR_0420317.class; + } +}