cls29 collector3 fix
This commit is contained in:
parent
8661628eb9
commit
f515bc5687
1 changed files with 61 additions and 76 deletions
|
|
@ -1,76 +1,61 @@
|
||||||
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.transaction.data.execution.LiabilitiesClaimsAssets;
|
import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P3;
|
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P3;
|
||||||
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
|
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
|
||||||
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.ImdgPredicateBuilder;
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.math.BigDecimal;
|
import java.util.Collection;
|
||||||
import java.time.Instant;
|
import java.util.List;
|
||||||
import java.time.LocalDate;
|
import java.util.Map;
|
||||||
import java.util.Collection;
|
import java.util.Objects;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
@Component
|
||||||
import java.util.Objects;
|
public class ReportBR_0420312_P3_Collector extends ReportWithPeriodCollector<ReportBR_0420312_P3> {
|
||||||
|
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
||||||
@Component
|
|
||||||
public class ReportBR_0420312_P3_collector extends ReportWithPeriodCollector<ReportBR_0420312_P3> {
|
@Autowired
|
||||||
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
public ReportBR_0420312_P3_Collector(ImdgProvider imdgProvider) {
|
||||||
|
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class);
|
||||||
@Autowired
|
}
|
||||||
public ReportBR_0420312_P3_collector(ImdgProvider imdgProvider) {
|
|
||||||
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class);
|
@Override
|
||||||
}
|
public ReportBR_0420312_P3 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||||
|
validateDateRange(startDate, endDate);
|
||||||
Collection<LiabilitiesClaimsAssets> searchLiabilitiesClaimsAssets(LocalDate startDate, LocalDate endDate) {
|
|
||||||
// String ql = String.format("'%s' <= refundDate and refundDate <= '%s'", formatToIMDGInstant(startDate), formatToIMDGInstant(endDate));
|
ReportBR_0420312_P3 reportBR_0420312P1 = new ReportBR_0420312_P3(startDate, endDate, "BR");
|
||||||
// Collection<LiabilitiesClaimsAssets> liabilities = liabilitiesClaimsAssetsImdg.getCollectionObjectsBySQL(ql);
|
|
||||||
|
Collection<LiabilitiesClaimsAssets> liabilities = searchLiabilitiesClaimsAssets(liabilitiesClaimsAssetsImdg, startDate, endDate);
|
||||||
ImdgPredicateBuilder pb = liabilitiesClaimsAssetsImdg.predicateBuilder();
|
Map<Long, List<LiabilitiesClaimsAssets>> indexByCompany = MapUtil.indexList(liabilities, LiabilitiesClaimsAssets::getCompanyId);
|
||||||
Instant dateTimeLo = toInstantStartDay(startDate);
|
|
||||||
Instant dateTimeHi = toInstantStartDay(endDate);
|
for (Map.Entry<Long, List<LiabilitiesClaimsAssets>> companyEntry : indexByCompany.entrySet()) {
|
||||||
ImdgPredicate p = pb.and(pb.greatEqual("refundDate", dateTimeLo), pb.lessEqual("refundDate", dateTimeHi));
|
final Long companyId = companyEntry.getKey();
|
||||||
Collection<LiabilitiesClaimsAssets> liabilities = liabilitiesClaimsAssetsImdg.getCollectionObjectsByPredicate(p);
|
List<LiabilitiesClaimsAssets> companyLiabilities=companyEntry.getValue();
|
||||||
return liabilities;
|
|
||||||
}
|
BigDecimal liabilitiesQuantitySum = companyLiabilities.stream()
|
||||||
|
.map(LiabilitiesClaimsAssets::getLiabilitiesQuantity)
|
||||||
@Override
|
.filter(Objects::nonNull)
|
||||||
public ReportBR_0420312_P3 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
.reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
|
||||||
validateDateRange(startDate, endDate);
|
|
||||||
|
// расчёт похож на ReportBR_0420312_P2
|
||||||
ReportBR_0420312_P3 reportBR_0420312P1 = new ReportBR_0420312_P3(startDate, endDate, "BR");
|
ReportBR_0420312_P3.Info_0420312_P3 info_0420312_p3 = new ReportBR_0420312_P3.Info_0420312_P3(
|
||||||
|
toString(companyId),
|
||||||
Collection<LiabilitiesClaimsAssets> liabilities = searchLiabilitiesClaimsAssets(startDate, endDate);
|
toString(liabilitiesQuantitySum)
|
||||||
Map<Long, List<LiabilitiesClaimsAssets>> indexByCompany = MapUtil.indexList(liabilities, LiabilitiesClaimsAssets::getCompanyId);
|
);
|
||||||
|
reportBR_0420312P1.getRows().add(info_0420312_p3);
|
||||||
for (Map.Entry<Long, List<LiabilitiesClaimsAssets>> companyEntry : indexByCompany.entrySet()) {
|
}
|
||||||
final Long companyId = companyEntry.getKey();
|
|
||||||
List<LiabilitiesClaimsAssets> companyLiabilities=companyEntry.getValue();
|
return reportBR_0420312P1;
|
||||||
|
}
|
||||||
BigDecimal liabilitiesQuantitySum = companyLiabilities.stream()
|
|
||||||
.map(LiabilitiesClaimsAssets::getLiabilitiesQuantity)
|
@Override
|
||||||
.filter(Objects::nonNull)
|
public Class<ReportBR_0420312_P3> getReportClass() {
|
||||||
.reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
|
return ReportBR_0420312_P3.class;
|
||||||
|
}
|
||||||
// расчёт похож на ReportBR_0420312_P2
|
}
|
||||||
ReportBR_0420312_P3.Info_0420312_P3 info_0420312_p3 = new ReportBR_0420312_P3.Info_0420312_P3(
|
|
||||||
toString(companyId),
|
|
||||||
toString(liabilitiesQuantitySum)
|
|
||||||
);
|
|
||||||
reportBR_0420312P1.getRows().add(info_0420312_p3);
|
|
||||||
}
|
|
||||||
|
|
||||||
return reportBR_0420312P1;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<ReportBR_0420312_P3> getReportClass() {
|
|
||||||
return ReportBR_0420312_P3.class;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Add table
Reference in a new issue