cls26 collector
This commit is contained in:
parent
3f2aa8faa3
commit
1c27ed93f9
1 changed files with 82 additions and 86 deletions
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Add table
Reference in a new issue