From f515bc5687ad36a498b985264f39f91fa3b0027f Mon Sep 17 00:00:00 2001 From: akulikov Date: Wed, 11 Jan 2023 11:41:43 +0300 Subject: [PATCH] cls29 collector3 fix --- ...ava => ReportBR_0420312_P3_Collector.java} | 137 ++++++++---------- 1 file changed, 61 insertions(+), 76 deletions(-) rename clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/{ReportBR_0420312_P3_collector.java => ReportBR_0420312_P3_Collector.java} (66%) diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420312_P3_collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420312_P3_Collector.java similarity index 66% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420312_P3_collector.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420312_P3_Collector.java index ac97655cd..ecc9c9ad9 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420312_P3_collector.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420312_P3_Collector.java @@ -1,76 +1,61 @@ -package ru.spcex.clearing.reports.services.collector; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P3; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -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.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -@Component -public class ReportBR_0420312_P3_collector extends ReportWithPeriodCollector { - private Imdg liabilitiesClaimsAssetsImdg; - - @Autowired - public ReportBR_0420312_P3_collector(ImdgProvider imdgProvider) { - liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class); - } - - Collection searchLiabilitiesClaimsAssets(LocalDate startDate, LocalDate endDate) { -// String ql = String.format("'%s' <= refundDate and refundDate <= '%s'", formatToIMDGInstant(startDate), formatToIMDGInstant(endDate)); -// Collection liabilities = liabilitiesClaimsAssetsImdg.getCollectionObjectsBySQL(ql); - - ImdgPredicateBuilder pb = liabilitiesClaimsAssetsImdg.predicateBuilder(); - Instant dateTimeLo = toInstantStartDay(startDate); - Instant dateTimeHi = toInstantStartDay(endDate); - ImdgPredicate p = pb.and(pb.greatEqual("refundDate", dateTimeLo), pb.lessEqual("refundDate", dateTimeHi)); - Collection liabilities = liabilitiesClaimsAssetsImdg.getCollectionObjectsByPredicate(p); - return liabilities; - } - - @Override - public ReportBR_0420312_P3 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - - ReportBR_0420312_P3 reportBR_0420312P1 = new ReportBR_0420312_P3(startDate, endDate, "BR"); - - Collection liabilities = searchLiabilitiesClaimsAssets(startDate, endDate); - Map> indexByCompany = MapUtil.indexList(liabilities, LiabilitiesClaimsAssets::getCompanyId); - - for (Map.Entry> companyEntry : indexByCompany.entrySet()) { - final Long companyId = companyEntry.getKey(); - List companyLiabilities=companyEntry.getValue(); - - BigDecimal liabilitiesQuantitySum = companyLiabilities.stream() - .map(LiabilitiesClaimsAssets::getLiabilitiesQuantity) - .filter(Objects::nonNull) - .reduce(BigDecimal::add).orElse(BigDecimal.ZERO); - - // расчёт похож на ReportBR_0420312_P2 - ReportBR_0420312_P3.Info_0420312_P3 info_0420312_p3 = new ReportBR_0420312_P3.Info_0420312_P3( - toString(companyId), - toString(liabilitiesQuantitySum) - ); - reportBR_0420312P1.getRows().add(info_0420312_p3); - } - - return reportBR_0420312P1; - } - - @Override - public Class getReportClass() { - return ReportBR_0420312_P3.class; - } -} +package ru.spcex.clearing.reports.services.collector; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P3; +import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgProvider; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +@Component +public class ReportBR_0420312_P3_Collector extends ReportWithPeriodCollector { + private Imdg liabilitiesClaimsAssetsImdg; + + @Autowired + public ReportBR_0420312_P3_Collector(ImdgProvider imdgProvider) { + liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class); + } + + @Override + public ReportBR_0420312_P3 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { + validateDateRange(startDate, endDate); + + ReportBR_0420312_P3 reportBR_0420312P1 = new ReportBR_0420312_P3(startDate, endDate, "BR"); + + Collection liabilities = searchLiabilitiesClaimsAssets(liabilitiesClaimsAssetsImdg, startDate, endDate); + Map> indexByCompany = MapUtil.indexList(liabilities, LiabilitiesClaimsAssets::getCompanyId); + + for (Map.Entry> companyEntry : indexByCompany.entrySet()) { + final Long companyId = companyEntry.getKey(); + List companyLiabilities=companyEntry.getValue(); + + BigDecimal liabilitiesQuantitySum = companyLiabilities.stream() + .map(LiabilitiesClaimsAssets::getLiabilitiesQuantity) + .filter(Objects::nonNull) + .reduce(BigDecimal::add).orElse(BigDecimal.ZERO); + + // расчёт похож на ReportBR_0420312_P2 + ReportBR_0420312_P3.Info_0420312_P3 info_0420312_p3 = new ReportBR_0420312_P3.Info_0420312_P3( + toString(companyId), + toString(liabilitiesQuantitySum) + ); + reportBR_0420312P1.getRows().add(info_0420312_p3); + } + + return reportBR_0420312P1; + } + + @Override + public Class getReportClass() { + return ReportBR_0420312_P3.class; + } +}