cls26 collector

This commit is contained in:
akulikov 2023-01-11 12:10:38 +03:00
parent 3f2aa8faa3
commit 1c27ed93f9

View file

@ -1,86 +1,82 @@
package ru.spcex.clearing.reports.services.collector; package ru.spcex.clearing.reports.services.collector;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.company.CompanySymbols; import ru.clearing.classes.statics.data.company.CompanySymbols;
import ru.clearing.classes.statics.data.company.relation.Relation; import ru.clearing.classes.statics.data.company.relation.Relation;
import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.reports.reports.bt_17_2.ReportBR_0420317; import ru.spcex.clearing.reports.reports.bt_17_2.ReportBR_0420317;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.enumeration.DocumentTypes; import ru.spcex.platform.enumeration.DocumentTypes;
import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
import java.time.Instant; import java.time.Instant;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.Collection; import java.util.Collection;
import java.util.Map; import java.util.Map;
@Component @Component
public class ReportBR_0420317_collector extends ReportWithPeriodCollector<ReportBR_0420317> { public class ReportBR_0420317_Collector extends ReportWithPeriodCollector<ReportBR_0420317> {
private Imdg<Company> companyImdg; private Imdg<Company> companyImdg;
private Imdg<Relation> relationImdg; private Imdg<Relation> relationImdg;
private Imdg<CompanySymbols> companySymbolsImdg; private Imdg<CompanySymbols> companySymbolsImdg;
@Autowired @Autowired
public ReportBR_0420317_collector(ImdgProvider imdgProvider) { public ReportBR_0420317_Collector(ImdgProvider imdgProvider) {
companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
relationImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); relationImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Relation, Relation.class);
companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
} }
Collection<Relation> searchRelation(LocalDate startDate, LocalDate endDate, String service) { Collection<Relation> searchRelation(LocalDate startDate, LocalDate endDate, String service) {
// String ql = String.format("'%s' <= updated and updated <= '%s' and service='MKR'", startDate, endDate); ImdgPredicateBuilder pb = relationImdg.predicateBuilder();
// Collection<Relation> relations = relationImdg.getCollectionObjectsBySQL(ql); Instant dateTimeLo = toInstantStartDay(startDate);
Instant dateTimeHi = toInstantStartDay(endDate);
ImdgPredicateBuilder pb = relationImdg.predicateBuilder(); ImdgPredicate p = pb.and(pb.greatEqual("updated", dateTimeLo), pb.lessEqual("updated", dateTimeHi),
Instant dateTimeLo = toInstantStartDay(startDate); pb.equals("service", service));
Instant dateTimeHi = toInstantStartDay(endDate); Collection<Relation> relations = relationImdg.getCollectionObjectsByPredicate(p);
ImdgPredicate p = pb.and(pb.greatEqual("updated", dateTimeLo), pb.lessEqual("updated", dateTimeHi), return relations;
pb.equals("service", service)); }
Collection<Relation> relations = relationImdg.getCollectionObjectsByPredicate(p);
return relations; @Override
} public ReportBR_0420317 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
validateDateRange(startDate, endDate);
@Override
public ReportBR_0420317 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { Collection<Relation> relations = searchRelation(startDate, endDate, "MKR");
validateDateRange(startDate, endDate);
ReportBR_0420317 reportBR_0420317 = new ReportBR_0420317(startDate, endDate);
Collection<Relation> relations = searchRelation(startDate, endDate, "MKR"); for (Relation relation: relations) {
Company company = relation.getConsumerId() == null ? null : companyImdg.getSingleObjectByID(relation.getConsumerId());
ReportBR_0420317 reportBR_0420317 = new ReportBR_0420317(startDate, endDate); if (company == null) {
for (Relation relation: relations) { log.warn("Company.id={} not found for relation.id={}", relation.getConsumerId(), relation.getId());
Company company = relation.getConsumerId() == null ? null : companyImdg.getSingleObjectByID(relation.getConsumerId()); continue;
if (company == null) { }
log.warn("Company.id={} not found for relation.id={}", relation.getConsumerId(), relation.getId()); CompanySymbols companySymbol = companySymbolsImdg.getSingleObjectByFieldValues(Map.of(
continue; "companySymbol", DocumentTypes.inn.getKey(),// ИНН или TIN участника клиринга
} "companyId", company.getId()
CompanySymbols companySymbol = companySymbolsImdg.getSingleObjectByFieldValues(Map.of( ));
"companySymbol", DocumentTypes.inn.getKey(),// ИНН или TIN участника клиринга ReportBR_0420317.Info_0420317 info_0420317 = new ReportBR_0420317.Info_0420317(
"companyId", company.getId() toString(company.getClearingCode()),
)); toString(toString(relation.getSupplierId())),
ReportBR_0420317.Info_0420317 info_0420317 = new ReportBR_0420317.Info_0420317( toString(relation.getService()),
company.getClearingCode(), toString(relation.getServiceStatus()),
toString(relation.getSupplierId()), toString(relation.getUpdated()),
relation.getService(), toString(company.getFullName()),
relation.getServiceStatus(), companySymbol == null ? "" : toString(companySymbol.getCompanySymbolValue()),
toString(relation.getUpdated()), toString(company.getProfile().getCountryCode()),
company.getFullName(), toString(relation.getComment()));
companySymbol == null ? null : companySymbol.getCompanySymbolValue(), reportBR_0420317.getRows().add(info_0420317);
company.getProfile().getCountryCode(), }
relation.getComment()
); return reportBR_0420317;
reportBR_0420317.getRows().add(info_0420317); }
}
@Override
return reportBR_0420317; public Class<ReportBR_0420317> getReportClass() {
} return ReportBR_0420317.class;
}
@Override }
public Class<ReportBR_0420317> getReportClass() {
return ReportBR_0420317.class;
}
}