cls27 collector

This commit is contained in:
akulikov 2023-01-11 12:06:57 +03:00
parent dd101f97d0
commit 3a6fb8e5b2

View file

@ -1,6 +1,7 @@
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.generated.ClearingMemberCategory;
@ -13,15 +14,17 @@ import ru.spcex.platform.enumeration.ClearingCategory;
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.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
import java.util.*;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
@Component
public class ReportBR_0420318_Collector extends ReportWithPeriodCollector<ReportBR_0420318> {
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
@ -48,35 +51,21 @@ public class ReportBR_0420318_Collector extends ReportWithPeriodCollector<Report
return companySymbol;
}
Collection<LiabilitiesClaimsAssets> searchLiabilitiesClaimsAssets(LocalDate startDate, LocalDate endDate) {
// String ql = String.format("'%s' <= refundDate and refundDate <= '%s'", formatToIMDGInstant(startDate), formatToIMDGInstant(endDate));
// Collection<LiabilitiesClaimsAssets> 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<LiabilitiesClaimsAssets> liabilities = liabilitiesClaimsAssetsImdg.getCollectionObjectsByPredicate(p);
return liabilities;
}
@Override
public ReportBR_0420318 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
validateDateRange(startDate, endDate);
Collection<LiabilitiesClaimsAssets> allLiabilities = searchLiabilitiesClaimsAssets(startDate, endDate);
Collection<LiabilitiesClaimsAssets> allLiabilities = searchLiabilitiesClaimsAssets(liabilitiesClaimsAssetsImdg, startDate, endDate);
ReportBR_0420318 reportBR_0420318 = new ReportBR_0420318(startDate, endDate);
Map<Long, List<LiabilitiesClaimsAssets>> indexByCompany = MapUtil.indexList(allLiabilities, LiabilitiesClaimsAssets::getCompanyId);
for (Map.Entry<Long, List<LiabilitiesClaimsAssets>> liabilitysByCompanyE : indexByCompany.entrySet()) {
final Long companyId = liabilitysByCompanyE.getKey();
final List<LiabilitiesClaimsAssets> liabilitysByCompany = liabilitysByCompanyE.getValue();
for (Map.Entry<Long, List<LiabilitiesClaimsAssets>> liabilitiesByCompanyE : indexByCompany.entrySet()) {
final Long companyId = liabilitiesByCompanyE.getKey();
final List<LiabilitiesClaimsAssets> liabilitiesByCompany = liabilitiesByCompanyE.getValue();
Company company = companyImdg.getSingleObjectByID(companyId);
CompanySymbols companySymbolINN = findSymbol(DocumentTypes.inn, company.getId());
CompanySymbols companySymbolOGRN = findSymbol(DocumentTypes.ogrn, company.getId());
Instant liabilitiesClaimsAssets_settlementDate = null;
Collection<ClearingMemberCategory> cmcLst = clearingMemberCategoryImdg.getCollectionObjectsByFieldValues(Map.of("companyId", companyId));
@ -84,7 +73,7 @@ public class ReportBR_0420318_Collector extends ReportWithPeriodCollector<Report
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<String, List<LiabilitiesClaimsAssets>> indexByCurrency = MapUtil.indexList(liabilitysByCompany, LiabilitiesClaimsAssets::getCurrency);
Map<String, List<LiabilitiesClaimsAssets>> indexByCurrency = MapUtil.indexList(liabilitiesByCompany, LiabilitiesClaimsAssets::getCurrency);
for (Map.Entry<String, List<LiabilitiesClaimsAssets>> entryCurrency: indexByCurrency.entrySet()) {
final String currencyCode = entryCurrency.getKey();
@ -120,16 +109,16 @@ public class ReportBR_0420318_Collector extends ReportWithPeriodCollector<Report
ReportBR_0420318.Info_0420318 info_0420318 = new ReportBR_0420318.Info_0420318(
toString(firstLiability.getFullName()),
toString(companySymbolINN == null ? null : companySymbolINN.getCompanySymbolValue()),
company.getProfile().getCountryCode(),
toString(company.getProfile().getCountryCode()),
toString(liabilitiesClaimsAssets_settlementDate),
contracts,
currencyCode,
toString(contracts),
toString(currencyCode),
toString(liabilitiesClaimsAssets_liabilitiesQuantity),
(liabilitiesClaimsMoney == null ? null : liabilitiesClaimsMoney.getFullName()),
liabilitiesClaimsMoney == null ? "" : toString(liabilitiesClaimsMoney.getFullName()),
toString(liabilitiesCount),
comments,
toString(companySymbolINN == null ? null : companySymbolINN.getCompanySymbolValue()), // второй раз по ТЗ
firstLiability.getFullName()
toString(comments),
companySymbolINN == null ? "" : toString(companySymbolINN.getCompanySymbolValue()), // второй раз по ТЗ
toString(firstLiability.getFullName())
);
reportBR_0420318.getRows().add(info_0420318);
}