diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420318_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420318_Collector.java index 58f853637..fc0db50b7 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420318_Collector.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420318_Collector.java @@ -67,58 +67,41 @@ public class ReportBR_0420318_Collector extends ReportWithPeriodCollector 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())); - Map> indexByCurrency = MapUtil.indexList(liabilitiesByCompany, LiabilitiesClaimsAssets::getCurrency); - - for (Map.Entry> entryCurrency: indexByCurrency.entrySet()) { - final String currencyCode = entryCurrency.getKey(); - final List claimsAssets = entryCurrency.getValue(); - LiabilitiesClaimsAssets firstLiability = claimsAssets.get(0); + for (LiabilitiesClaimsAssets liability : liabilitiesByCompany) { + final String currencyCode = liability.getCurrency(); + Instant liabilitiesClaimsAssets_settlementDate = null; if (checkCategoryB) { - liabilitiesClaimsAssets_settlementDate = firstLiability.getRefundDate(); + liabilitiesClaimsAssets_settlementDate = liability.getRefundDate(); } if (checkCategoryIV) { - liabilitiesClaimsAssets_settlementDate = firstLiability.getSettlementDate(); + liabilitiesClaimsAssets_settlementDate = liability.getSettlementDate(); } - BigDecimal liabilitiesClaimsAssets_liabilitiesQuantity = claimsAssets.stream() - .map(LiabilitiesClaimsAssets::getLiabilitiesQuantity) - .filter(Objects::nonNull) - .reduce(BigDecimal::add) - .orElse(BigDecimal.ZERO); + BigDecimal liabilitiesClaimsAssets_liabilitiesQuantity = liability.getLiabilitiesQuantity(); LiabilitiesClaimsMoney liabilitiesClaimsMoney = liabilitiesClaimsMoneyImdg.getSingleObjectByFieldValues(Map.of("currency", currencyCode)); - long liabilitiesCount = claimsAssets.size(); - String contracts = claimsAssets.stream() - .map(LiabilitiesClaimsAssets::getContract) - .distinct() - .collect(Collectors.joining(",")); - String comments = claimsAssets.stream() - .map(LiabilitiesClaimsAssets::getContract) - .filter(Objects::nonNull) - .distinct() - .collect(Collectors.joining(",")); + BigDecimal liabilitiesCount = liability.getClaimsQuantity(); ReportBR_0420318.Info_0420318 info_0420318 = new ReportBR_0420318.Info_0420318( - toString(firstLiability.getFullName()), + toString(liability.getFullName()), toString(companySymbolINN == null ? null : companySymbolINN.getCompanySymbolValue()), toString(company.getProfile().getCountryCode()), toString(liabilitiesClaimsAssets_settlementDate), - toString(contracts), + toString(liability.getContract()), toString(currencyCode), toString(liabilitiesClaimsAssets_liabilitiesQuantity), liabilitiesClaimsMoney == null ? "" : toString(liabilitiesClaimsMoney.getFullName()), toString(liabilitiesCount), - toString(comments), - companySymbolINN == null ? "" : toString(companySymbolINN.getCompanySymbolValue()), // второй раз по ТЗ - toString(firstLiability.getFullName()) + toString(liability.getComment()), + companySymbolINN == null ? "" : toString(companySymbolINN.getCompanySymbolValue()), + toString(liability.getFullName()) ); reportBR_0420318.getRows().add(info_0420318); }