From 31959cd75362d99ff66bff67eb0c8d7bd4b9c17f Mon Sep 17 00:00:00 2001 From: AKurakin Date: Tue, 10 Jan 2023 17:39:26 +0300 Subject: [PATCH] =?UTF-8?q?reports-service=20=D0=BF=D0=BE=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=B8=D0=BB=20CLS-29,=20=D1=87=D0=B0=D1=81=D1=82?= =?UTF-8?q?=D1=8C=20CLS-27?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReportBR_0420312_P10_collector.java | 8 +- .../ReportBR_0420312_P4_collector.java | 10 +- .../ReportBR_0420312_P6_collector.java | 8 +- .../ReportBR_0420312_P7_collector.java | 9 +- .../ReportBR_0420312_P8_collector.java | 7 +- .../ReportBR_0420312_P9_collector.java | 7 +- .../collector/ReportBR_0420318_Collector.java | 102 +++++++++++++++++- 7 files changed, 121 insertions(+), 30 deletions(-) diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420312_P10_collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420312_P10_collector.java index 9b8acb7a8..8514ca132 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420312_P10_collector.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420312_P10_collector.java @@ -49,12 +49,10 @@ public class ReportBR_0420312_P10_collector extends ReportWithPeriodCollector liabilities = searchLiabilitiesClaimsAssets(startDate, endDate); Map> indexByCompany = MapUtil.indexList(liabilities, LiabilitiesClaimsAssets::getCompanyId); @@ -98,12 +98,11 @@ public class ReportBR_0420312_P8_collector extends ReportWithPeriodCollector liabilities = searchLiabilitiesClaimsAssets(startDate, endDate); Map> indexByCompany = MapUtil.indexList(liabilities, LiabilitiesClaimsAssets::getCompanyId); @@ -82,12 +82,11 @@ public class ReportBR_0420312_P9_collector extends ReportWithPeriodCollector { + + private Imdg liabilitiesClaimsAssetsImdg; + private Imdg liabilitiesClaimsMoneyImdg; + + private Imdg companyImdg; + private Imdg companySymbolsImdg; + private Imdg clearingMemberCategoryImdg; + + @Autowired + public ReportBR_0420318_Collector(ImdgProvider imdgProvider) { + liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class); + //liabilitiesClaimsMoneyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsMoney, LiabilitiesClaimsMoney.class);//fixme MapStore!!!! + companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); + companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); + } + + protected CompanySymbols findSymbol(DocumentTypes docType, Long companyId) { + CompanySymbols companySymbol = companySymbolsImdg.getSingleObjectByFieldValues(Map.of( + "companySymbol", docType.getKey(), + "companyId", companyId + )); + return companySymbol; + } + + + 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_0420318 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { + validateDateRange(startDate, endDate); + Collection liabilities = searchLiabilitiesClaimsAssets(startDate, endDate); + + ReportBR_0420318 reportBR_0420318 = new ReportBR_0420318(startDate, endDate); + + for (LiabilitiesClaimsAssets liability: liabilities) { + final Long companyId = liability.getCompanyId(); + Company company = companyImdg.getSingleObjectByID(companyId); + CompanySymbols companySymbolCntr = findSymbol(DocumentTypes.cntr, company.getId()); + CompanySymbols companySymbolINN = findSymbol(DocumentTypes.inn, company.getId()); + CompanySymbols companySymbolOGRN = findSymbol(DocumentTypes.ogrn, company.getId()); + + Instant liabilitiesClaimsAssets_settlementDate = null; + Collection cmcLst = clearingMemberCategoryImdg.getCollectionObjectsByFieldValues(Map.of("companyId", companyId)); + + boolean checkCategoryB = cmcLst.stream().anyMatch(cmc -> ClearingCategory.B.equalsByKey(cmc.getClearingMemberCategory())); + boolean checkCategoryIV = cmcLst.stream().anyMatch(cmc -> ClearingCategory.I.equalsByKey(cmc.getClearingMemberCategory()) || ClearingCategory.V.equalsByKey(cmc.getClearingMemberCategory())); + if (checkCategoryB) { + liabilitiesClaimsAssets_settlementDate = liability.getRefundDate(); + } + if (checkCategoryIV) { + liabilitiesClaimsAssets_settlementDate = liability.getSettlementDate(); + } + + BigDecimal liabilitiesQuantity = liability.getLiabilitiesQuantity(); //todo summ? + + final String currencyCode = liability.getCurrency(); + LiabilitiesClaimsMoney liabilitiesClaimsMoney = liabilitiesClaimsMoneyImdg.getSingleObjectByFieldValues(Map.of("currency", currencyCode)); + + ReportBR_0420318.Info_0420318 info_0420318 = new ReportBR_0420318.Info_0420318( + toString(liability.getFullName()), + toString(companySymbolINN == null? null: companySymbolINN.getCompanySymbolValue()), + company.getProfile().getCountryCode(), + toString(liabilitiesClaimsAssets_settlementDate), + "liabilitiesClaimsAssets_accountType", + liability.getContract(), + currencyCode, + "liabilitiesAmount_amount",//fixme liabilitiesClaimsAssets_liabilitiesQuantity toString(liabilitiesQuantity) + (liabilitiesClaimsMoney == null ? null : liabilitiesClaimsMoney.getFullName()),//todo уточнить объект ли "liabilitiesClaimsMoney_name", использовать? + "liabilitiesClaimsAssets_liabilities", + "liabilitiesClaimsAssets_comment", + "companySymbol_value", + "liabilitiesClaimsAssets_fullNames" + ); + reportBR_0420318.getRows().add(info_0420318); + } - return null; + return reportBR_0420318; } @Override