reports-service http://jira.mfd.msk:8088/browse/CLS-29 коллекторы для (0420312) [БТ 17.5] Сведения о клиринговом обеспечении
This commit is contained in:
parent
52365c093f
commit
16a443b137
14 changed files with 777 additions and 33 deletions
|
|
@ -14,7 +14,7 @@ public class ReportBR_0420312_P10 extends ReportWithPeriod {
|
||||||
@XStreamAlias("destination")
|
@XStreamAlias("destination")
|
||||||
private String destination;
|
private String destination;
|
||||||
|
|
||||||
@XStreamAlias("part_10")
|
@XStreamAlias("rows")
|
||||||
private final Info_0420312_P10 part_10;
|
private final Info_0420312_P10 part_10;
|
||||||
|
|
||||||
public ReportBR_0420312_P10(LocalDate startDate,
|
public ReportBR_0420312_P10(LocalDate startDate,
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,8 @@ import ru.spcex.clearing.reports.reports.ReportWithPeriod;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@XStreamAlias("clearingCoverage2")
|
@XStreamAlias("clearingCoverage2")
|
||||||
public class ReportBR_0420312_P2 extends ReportWithPeriod {
|
public class ReportBR_0420312_P2 extends ReportWithPeriod {
|
||||||
|
|
@ -14,14 +16,12 @@ public class ReportBR_0420312_P2 extends ReportWithPeriod {
|
||||||
@XStreamAlias("destination")
|
@XStreamAlias("destination")
|
||||||
private String destination;
|
private String destination;
|
||||||
|
|
||||||
@XStreamAlias("part_2")
|
@XStreamAlias("rows")
|
||||||
private final Info_0420312_P2 part_2;
|
private final List<Info_0420312_P2> rows = new ArrayList<>();
|
||||||
|
|
||||||
public ReportBR_0420312_P2(LocalDate startDate,
|
public ReportBR_0420312_P2(LocalDate startDate,
|
||||||
LocalDate endDate,
|
LocalDate endDate,
|
||||||
String destination,
|
String destination) {
|
||||||
String liabilitiesClaimsAssetsCompanyId,
|
|
||||||
String liabilitiesClaimsAssetsLiabilities) {
|
|
||||||
super(ReportId.BR_0420312_P2,
|
super(ReportId.BR_0420312_P2,
|
||||||
"0.0.1",
|
"0.0.1",
|
||||||
"0420312",
|
"0420312",
|
||||||
|
|
@ -29,7 +29,16 @@ public class ReportBR_0420312_P2 extends ReportWithPeriod {
|
||||||
startDate,
|
startDate,
|
||||||
endDate);
|
endDate);
|
||||||
this.destination = destination;
|
this.destination = destination;
|
||||||
part_2 = new Info_0420312_P2(liabilitiesClaimsAssetsCompanyId, liabilitiesClaimsAssetsLiabilities);
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
public ReportBR_0420312_P2(LocalDate startDate,
|
||||||
|
LocalDate endDate,
|
||||||
|
String destination,
|
||||||
|
String liabilitiesClaimsAssetsCompanyId,
|
||||||
|
String liabilitiesClaimsAssetsLiabilities) {
|
||||||
|
this(startDate, endDate, destination);
|
||||||
|
rows.add(new Info_0420312_P2(liabilitiesClaimsAssetsCompanyId, liabilitiesClaimsAssetsLiabilities));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Info_0420312_P2 {
|
public static class Info_0420312_P2 {
|
||||||
|
|
@ -48,6 +57,10 @@ public class ReportBR_0420312_P2 extends ReportWithPeriod {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Info_0420312_P2> getRows() {
|
||||||
|
return rows;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getReportName(LocalDateTime reportDateTime) {
|
public String getReportName(LocalDateTime reportDateTime) {
|
||||||
return "REPBR.0420312_р1-2.%s-%s.%s".formatted(
|
return "REPBR.0420312_р1-2.%s-%s.%s".formatted(
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,8 @@ import ru.spcex.clearing.reports.reports.ReportWithPeriod;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@XStreamAlias("clearingCoverage3")
|
@XStreamAlias("clearingCoverage3")
|
||||||
public class ReportBR_0420312_P3 extends ReportWithPeriod {
|
public class ReportBR_0420312_P3 extends ReportWithPeriod {
|
||||||
|
|
@ -14,14 +16,12 @@ public class ReportBR_0420312_P3 extends ReportWithPeriod {
|
||||||
@XStreamAlias("destination")
|
@XStreamAlias("destination")
|
||||||
private String destination;
|
private String destination;
|
||||||
|
|
||||||
@XStreamAlias("part_3")
|
@XStreamAlias("rows")
|
||||||
private final Info_0420312_P3 part_3;
|
private final List<Info_0420312_P3> rows = new ArrayList<>();
|
||||||
|
|
||||||
public ReportBR_0420312_P3(LocalDate startDate,
|
public ReportBR_0420312_P3(LocalDate startDate,
|
||||||
LocalDate endDate,
|
LocalDate endDate,
|
||||||
String destination,
|
String destination) {
|
||||||
String liabilitiesClaimsAssetsCompanyId,
|
|
||||||
String liabilitiesClaimsAssetsLiabilities) {
|
|
||||||
super(ReportId.BR_0420312_P3,
|
super(ReportId.BR_0420312_P3,
|
||||||
"0.0.5",
|
"0.0.5",
|
||||||
"0420312",
|
"0420312",
|
||||||
|
|
@ -29,7 +29,16 @@ public class ReportBR_0420312_P3 extends ReportWithPeriod {
|
||||||
startDate,
|
startDate,
|
||||||
endDate);
|
endDate);
|
||||||
this.destination = destination;
|
this.destination = destination;
|
||||||
part_3 = new Info_0420312_P3(liabilitiesClaimsAssetsCompanyId, liabilitiesClaimsAssetsLiabilities);
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
public ReportBR_0420312_P3(LocalDate startDate,
|
||||||
|
LocalDate endDate,
|
||||||
|
String destination,
|
||||||
|
String liabilitiesClaimsAssetsCompanyId,
|
||||||
|
String liabilitiesClaimsAssetsLiabilities) {
|
||||||
|
this(startDate, endDate, destination);
|
||||||
|
rows.add(new Info_0420312_P3(liabilitiesClaimsAssetsCompanyId, liabilitiesClaimsAssetsLiabilities));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Info_0420312_P3 {
|
public static class Info_0420312_P3 {
|
||||||
|
|
@ -49,6 +58,10 @@ public class ReportBR_0420312_P3 extends ReportWithPeriod {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Info_0420312_P3> getRows() {
|
||||||
|
return rows;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getReportName(LocalDateTime reportDateTime) {
|
public String getReportName(LocalDateTime reportDateTime) {
|
||||||
return "REPBR.0420312_р1-3.%s-%s.%s".formatted(
|
return "REPBR.0420312_р1-3.%s-%s.%s".formatted(
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,8 @@ import ru.spcex.clearing.reports.reports.ReportWithPeriod;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@XStreamAlias("clearingCoverage8")
|
@XStreamAlias("clearingCoverage8")
|
||||||
public class ReportBR_0420312_P8 extends ReportWithPeriod {
|
public class ReportBR_0420312_P8 extends ReportWithPeriod {
|
||||||
|
|
@ -14,9 +16,23 @@ public class ReportBR_0420312_P8 extends ReportWithPeriod {
|
||||||
@XStreamAlias("destination")
|
@XStreamAlias("destination")
|
||||||
private String destination;
|
private String destination;
|
||||||
|
|
||||||
@XStreamAlias("part_8")
|
@XStreamAlias("rows")
|
||||||
private final Info_0420312_P8 part_8;
|
private final List<Info_0420312_P8> rows = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
|
public ReportBR_0420312_P8(LocalDate startDate,
|
||||||
|
LocalDate endDate,
|
||||||
|
String destination) {
|
||||||
|
super(ReportId.BR_0420312_P8,
|
||||||
|
"0.0.5",
|
||||||
|
"0420312",
|
||||||
|
"Сведения о клиринговом обеспечении, часть 8",
|
||||||
|
startDate,
|
||||||
|
endDate);
|
||||||
|
this.destination = destination;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public ReportBR_0420312_P8(LocalDate startDate,
|
public ReportBR_0420312_P8(LocalDate startDate,
|
||||||
LocalDate endDate,
|
LocalDate endDate,
|
||||||
String destination,
|
String destination,
|
||||||
|
|
@ -27,20 +43,14 @@ public class ReportBR_0420312_P8 extends ReportWithPeriod {
|
||||||
String companySymbolValue,
|
String companySymbolValue,
|
||||||
String companyInfoCountryCode,
|
String companyInfoCountryCode,
|
||||||
String clearingMemberCategoryClearingMemberCategory) {
|
String clearingMemberCategoryClearingMemberCategory) {
|
||||||
super(ReportId.BR_0420312_P8,
|
this(startDate, endDate, destination);
|
||||||
"0.0.5",
|
rows.add(new Info_0420312_P8(currencyId,
|
||||||
"0420312",
|
|
||||||
"Сведения о клиринговом обеспечении, часть 8",
|
|
||||||
startDate,
|
|
||||||
endDate);
|
|
||||||
this.destination = destination;
|
|
||||||
part_8 = new Info_0420312_P8(currencyId,
|
|
||||||
liabilitiesClaimsAssetsCompanyId,
|
liabilitiesClaimsAssetsCompanyId,
|
||||||
liabilitiesClaimsAssetsFullName,
|
liabilitiesClaimsAssetsFullName,
|
||||||
companySymbolCode,
|
companySymbolCode,
|
||||||
companySymbolValue,
|
companySymbolValue,
|
||||||
companyInfoCountryCode,
|
companyInfoCountryCode,
|
||||||
clearingMemberCategoryClearingMemberCategory);
|
clearingMemberCategoryClearingMemberCategory));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Info_0420312_P8 {
|
public static class Info_0420312_P8 {
|
||||||
|
|
@ -89,6 +99,10 @@ public class ReportBR_0420312_P8 extends ReportWithPeriod {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Info_0420312_P8> getRows() {
|
||||||
|
return rows;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getReportName(LocalDateTime reportDateTime) {
|
public String getReportName(LocalDateTime reportDateTime) {
|
||||||
return "REPBR.0420312_р3-1.%s-%s.%s".formatted(
|
return "REPBR.0420312_р3-1.%s-%s.%s".formatted(
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,8 @@ import ru.spcex.clearing.reports.reports.ReportWithPeriod;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@XStreamAlias("clearingCoverage9")
|
@XStreamAlias("clearingCoverage9")
|
||||||
public class ReportBR_0420312_P9 extends ReportWithPeriod {
|
public class ReportBR_0420312_P9 extends ReportWithPeriod {
|
||||||
|
|
@ -14,16 +16,13 @@ public class ReportBR_0420312_P9 extends ReportWithPeriod {
|
||||||
@XStreamAlias("destination")
|
@XStreamAlias("destination")
|
||||||
private String destination;
|
private String destination;
|
||||||
|
|
||||||
@XStreamAlias("part_9")
|
@XStreamAlias("rows")
|
||||||
private final Info_0420312_P9 part_9;
|
private final List<Info_0420312_P9> rows = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
public ReportBR_0420312_P9(LocalDate startDate,
|
public ReportBR_0420312_P9(LocalDate startDate,
|
||||||
LocalDate endDate,
|
LocalDate endDate,
|
||||||
String destination,
|
String destination) {
|
||||||
String currencyId,
|
|
||||||
String liabilitiesClaimsAssetsCompanyId,
|
|
||||||
String liabilitiesClaimsMoneyCurrencyCode,
|
|
||||||
String liabilitiesClaimsAssetsLiabilities) {
|
|
||||||
super(ReportId.BR_0420312_P9,
|
super(ReportId.BR_0420312_P9,
|
||||||
"0.0.5",
|
"0.0.5",
|
||||||
"0420312",
|
"0420312",
|
||||||
|
|
@ -31,10 +30,21 @@ public class ReportBR_0420312_P9 extends ReportWithPeriod {
|
||||||
startDate,
|
startDate,
|
||||||
endDate);
|
endDate);
|
||||||
this.destination = destination;
|
this.destination = destination;
|
||||||
part_9 = new Info_0420312_P9(currencyId,
|
}
|
||||||
|
@Deprecated
|
||||||
|
public ReportBR_0420312_P9(LocalDate startDate,
|
||||||
|
LocalDate endDate,
|
||||||
|
String destination,
|
||||||
|
String currencyId,
|
||||||
|
String liabilitiesClaimsAssetsCompanyId,
|
||||||
|
String liabilitiesClaimsMoneyCurrencyCode,
|
||||||
|
String liabilitiesClaimsAssetsLiabilities) {
|
||||||
|
this(startDate,
|
||||||
|
endDate, destination);
|
||||||
|
rows.add( new Info_0420312_P9(currencyId,
|
||||||
liabilitiesClaimsAssetsCompanyId,
|
liabilitiesClaimsAssetsCompanyId,
|
||||||
liabilitiesClaimsMoneyCurrencyCode,
|
liabilitiesClaimsMoneyCurrencyCode,
|
||||||
liabilitiesClaimsAssetsLiabilities);
|
liabilitiesClaimsAssetsLiabilities));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Info_0420312_P9 {
|
public static class Info_0420312_P9 {
|
||||||
|
|
@ -65,6 +75,10 @@ public class ReportBR_0420312_P9 extends ReportWithPeriod {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Info_0420312_P9> getRows() {
|
||||||
|
return rows;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getReportName(LocalDateTime reportDateTime) {
|
public String getReportName(LocalDateTime reportDateTime) {
|
||||||
return "REPBR.0420312_р3-2.%s-%s.%s".formatted(
|
return "REPBR.0420312_р3-2.%s-%s.%s".formatted(
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,64 @@
|
||||||
|
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.transaction.data.execution.LiabilitiesClaimsAssets;
|
||||||
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P10;
|
||||||
|
import ru.spcex.clearing.reports.services.ReportDataCollector;
|
||||||
|
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.Collection;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class Bt17_5_P10_collector extends ReportDataCollector<ReportBR_0420312_P10> {
|
||||||
|
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public Bt17_5_P10_collector(ImdgProvider imdgProvider) {
|
||||||
|
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
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_0420312_P10 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||||
|
validateDateRange(startDate, endDate);
|
||||||
|
|
||||||
|
Collection<LiabilitiesClaimsAssets> liabilities = searchLiabilitiesClaimsAssets(startDate, endDate);
|
||||||
|
|
||||||
|
BigDecimal liabilitiesQuantitySum = liabilities.stream()
|
||||||
|
.map(LiabilitiesClaimsAssets::getLiabilitiesQuantity)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
|
||||||
|
|
||||||
|
ReportBR_0420312_P10 reportBR_0420312P10 = new ReportBR_0420312_P10(startDate, endDate, "BR",
|
||||||
|
toString(liabilitiesQuantitySum)
|
||||||
|
);
|
||||||
|
|
||||||
|
return reportBR_0420312P10;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<ReportBR_0420312_P10> getReportClass() {
|
||||||
|
return ReportBR_0420312_P10.class;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,77 @@
|
||||||
|
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.transaction.data.execution.LiabilitiesClaimsAssets;
|
||||||
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P2;
|
||||||
|
import ru.spcex.clearing.reports.services.ReportDataCollector;
|
||||||
|
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.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class Bt17_5_P2_collector extends ReportDataCollector<ReportBR_0420312_P2> {
|
||||||
|
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public Bt17_5_P2_collector(ImdgProvider imdgProvider) {
|
||||||
|
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
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_0420312_P2 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||||
|
validateDateRange(startDate, endDate);
|
||||||
|
|
||||||
|
ReportBR_0420312_P2 reportBR_0420312P1 = new ReportBR_0420312_P2(startDate, endDate, "BR");
|
||||||
|
|
||||||
|
Collection<LiabilitiesClaimsAssets> liabilities = searchLiabilitiesClaimsAssets(startDate, endDate);
|
||||||
|
Map<Long, List<LiabilitiesClaimsAssets>> indexByCompany = MapUtil.indexList(liabilities, LiabilitiesClaimsAssets::getCompanyId);
|
||||||
|
|
||||||
|
for (Map.Entry<Long, List<LiabilitiesClaimsAssets>> companyEntry : indexByCompany.entrySet()) {
|
||||||
|
final Long companyId = companyEntry.getKey();
|
||||||
|
List<LiabilitiesClaimsAssets> companyLiabilities=companyEntry.getValue();
|
||||||
|
|
||||||
|
BigDecimal liabilitiesQuantitySum = companyLiabilities.stream()
|
||||||
|
.map(LiabilitiesClaimsAssets::getLiabilitiesQuantity)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
|
||||||
|
|
||||||
|
ReportBR_0420312_P2.Info_0420312_P2 info_0420312_p2 = new ReportBR_0420312_P2.Info_0420312_P2(
|
||||||
|
toString(companyId),
|
||||||
|
toString(liabilitiesQuantitySum)
|
||||||
|
);
|
||||||
|
reportBR_0420312P1.getRows().add(info_0420312_p2);
|
||||||
|
}
|
||||||
|
|
||||||
|
return reportBR_0420312P1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<ReportBR_0420312_P2> getReportClass() {
|
||||||
|
return ReportBR_0420312_P2.class;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,77 @@
|
||||||
|
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.transaction.data.execution.LiabilitiesClaimsAssets;
|
||||||
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P3;
|
||||||
|
import ru.spcex.clearing.reports.services.ReportDataCollector;
|
||||||
|
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.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class Bt17_5_P3_collector extends ReportDataCollector<ReportBR_0420312_P3> {
|
||||||
|
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public Bt17_5_P3_collector(ImdgProvider imdgProvider) {
|
||||||
|
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
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_0420312_P3 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||||
|
validateDateRange(startDate, endDate);
|
||||||
|
|
||||||
|
ReportBR_0420312_P3 reportBR_0420312P1 = new ReportBR_0420312_P3(startDate, endDate, "BR");
|
||||||
|
|
||||||
|
Collection<LiabilitiesClaimsAssets> liabilities = searchLiabilitiesClaimsAssets(startDate, endDate);
|
||||||
|
Map<Long, List<LiabilitiesClaimsAssets>> indexByCompany = MapUtil.indexList(liabilities, LiabilitiesClaimsAssets::getCompanyId);
|
||||||
|
|
||||||
|
for (Map.Entry<Long, List<LiabilitiesClaimsAssets>> companyEntry : indexByCompany.entrySet()) {
|
||||||
|
final Long companyId = companyEntry.getKey();
|
||||||
|
List<LiabilitiesClaimsAssets> companyLiabilities=companyEntry.getValue();
|
||||||
|
|
||||||
|
BigDecimal liabilitiesQuantitySum = companyLiabilities.stream()
|
||||||
|
.map(LiabilitiesClaimsAssets::getLiabilitiesQuantity)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
|
||||||
|
|
||||||
|
// расчёт похож на 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,64 @@
|
||||||
|
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.transaction.data.execution.LiabilitiesClaimsAssets;
|
||||||
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P4;
|
||||||
|
import ru.spcex.clearing.reports.services.ReportDataCollector;
|
||||||
|
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.Collection;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class Bt17_5_P4_collector extends ReportDataCollector<ReportBR_0420312_P4> {
|
||||||
|
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public Bt17_5_P4_collector(ImdgProvider imdgProvider) {
|
||||||
|
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
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_0420312_P4 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||||
|
validateDateRange(startDate, endDate);
|
||||||
|
|
||||||
|
Collection<LiabilitiesClaimsAssets> liabilities = searchLiabilitiesClaimsAssets(startDate, endDate);
|
||||||
|
|
||||||
|
BigDecimal liabilitiesQuantitySum = liabilities.stream()
|
||||||
|
.map(LiabilitiesClaimsAssets::getLiabilitiesQuantity)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
|
||||||
|
|
||||||
|
ReportBR_0420312_P4 reportBR_0420312P4 = new ReportBR_0420312_P4(startDate, endDate,
|
||||||
|
"BR",
|
||||||
|
toString(liabilitiesQuantitySum));
|
||||||
|
|
||||||
|
return reportBR_0420312P4;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<ReportBR_0420312_P4> getReportClass() {
|
||||||
|
return ReportBR_0420312_P4.class;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,64 @@
|
||||||
|
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.transaction.data.execution.LiabilitiesClaimsAssets;
|
||||||
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P5;
|
||||||
|
import ru.spcex.clearing.reports.services.ReportDataCollector;
|
||||||
|
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.Collection;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class Bt17_5_P5_collector extends ReportDataCollector<ReportBR_0420312_P5> {
|
||||||
|
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public Bt17_5_P5_collector(ImdgProvider imdgProvider) {
|
||||||
|
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
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_0420312_P5 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||||
|
validateDateRange(startDate, endDate);
|
||||||
|
|
||||||
|
Collection<LiabilitiesClaimsAssets> liabilities = searchLiabilitiesClaimsAssets(startDate, endDate);
|
||||||
|
|
||||||
|
BigDecimal liabilitiesQuantitySum = liabilities.stream()
|
||||||
|
.map(LiabilitiesClaimsAssets::getLiabilitiesQuantity)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
|
||||||
|
|
||||||
|
ReportBR_0420312_P5 reportBR_0420312P5 = new ReportBR_0420312_P5(startDate, endDate,
|
||||||
|
"BR",
|
||||||
|
toString(liabilitiesQuantitySum));
|
||||||
|
|
||||||
|
return reportBR_0420312P5;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<ReportBR_0420312_P5> getReportClass() {
|
||||||
|
return ReportBR_0420312_P5.class;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,64 @@
|
||||||
|
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.transaction.data.execution.LiabilitiesClaimsAssets;
|
||||||
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P6;
|
||||||
|
import ru.spcex.clearing.reports.services.ReportDataCollector;
|
||||||
|
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.Collection;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class Bt17_5_P6_collector extends ReportDataCollector<ReportBR_0420312_P6> {
|
||||||
|
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public Bt17_5_P6_collector(ImdgProvider imdgProvider) {
|
||||||
|
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
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_0420312_P6 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||||
|
validateDateRange(startDate, endDate);
|
||||||
|
|
||||||
|
Collection<LiabilitiesClaimsAssets> liabilities = searchLiabilitiesClaimsAssets(startDate, endDate);
|
||||||
|
|
||||||
|
BigDecimal liabilitiesQuantitySum = liabilities.stream()
|
||||||
|
.map(LiabilitiesClaimsAssets::getLiabilitiesQuantity)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
|
||||||
|
|
||||||
|
ReportBR_0420312_P6 reportBR_0420312P5 = new ReportBR_0420312_P6(startDate, endDate,
|
||||||
|
"BR",
|
||||||
|
toString(liabilitiesQuantitySum));
|
||||||
|
|
||||||
|
return reportBR_0420312P5;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<ReportBR_0420312_P6> getReportClass() {
|
||||||
|
return ReportBR_0420312_P6.class;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
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.transaction.data.execution.LiabilitiesClaimsAssets;
|
||||||
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P7;
|
||||||
|
import ru.spcex.clearing.reports.services.ReportDataCollector;
|
||||||
|
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.Collection;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class Bt17_5_P7_collector extends ReportDataCollector<ReportBR_0420312_P7> {
|
||||||
|
private Imdg<Company> companyImdg;
|
||||||
|
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public Bt17_5_P7_collector(ImdgProvider imdgProvider) {
|
||||||
|
companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||||
|
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
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_0420312_P7 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||||
|
validateDateRange(startDate, endDate);
|
||||||
|
|
||||||
|
Collection<LiabilitiesClaimsAssets> liabilities = searchLiabilitiesClaimsAssets(startDate, endDate);
|
||||||
|
|
||||||
|
BigDecimal liabilitiesQuantitySum = liabilities.stream()
|
||||||
|
.map(LiabilitiesClaimsAssets::getLiabilitiesQuantity)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
|
||||||
|
|
||||||
|
ReportBR_0420312_P7 reportBR_0420312P5 = new ReportBR_0420312_P7(startDate, endDate,
|
||||||
|
"BR",
|
||||||
|
toString(liabilitiesQuantitySum));
|
||||||
|
|
||||||
|
return reportBR_0420312P5;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<ReportBR_0420312_P7> getReportClass() {
|
||||||
|
return ReportBR_0420312_P7.class;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,114 @@
|
||||||
|
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;
|
||||||
|
import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets;
|
||||||
|
import ru.clearing.platform.dictionary.CurrencyCodeDictionary;
|
||||||
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P8;
|
||||||
|
import ru.spcex.clearing.reports.services.ReportDataCollector;
|
||||||
|
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.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class Bt17_5_P8_collector extends ReportDataCollector<ReportBR_0420312_P8> {
|
||||||
|
private Imdg<Company> companyImdg;
|
||||||
|
private Imdg<CompanySymbols> companySymbolsImdg;
|
||||||
|
private Imdg<ClearingMemberCategory> clearingMemberCategoryImdg;
|
||||||
|
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
||||||
|
private Imdg<CurrencyCodeDictionary> currencyCodeDictionaryImdg;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public Bt17_5_P8_collector(ImdgProvider imdgProvider) {
|
||||||
|
companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||||
|
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class);
|
||||||
|
companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||||
|
clearingMemberCategoryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
|
||||||
|
currencyCodeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, CurrencyCodeDictionary.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected CompanySymbols findSymbol(DocumentTypes docType, Long companyId) {
|
||||||
|
CompanySymbols companySymbol = companySymbolsImdg.getSingleObjectByFieldValues(Map.of(
|
||||||
|
"companySymbol", docType.getKey(),
|
||||||
|
"companyId", companyId
|
||||||
|
));
|
||||||
|
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_0420312_P8 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||||
|
validateDateRange(startDate, endDate);
|
||||||
|
|
||||||
|
ReportBR_0420312_P8 reportBR_0420312P8 = new ReportBR_0420312_P8(startDate, endDate, "BR");
|
||||||
|
|
||||||
|
Collection<LiabilitiesClaimsAssets> liabilities = searchLiabilitiesClaimsAssets(startDate, endDate);
|
||||||
|
Map<Long, List<LiabilitiesClaimsAssets>> indexByCompany = MapUtil.indexList(liabilities, LiabilitiesClaimsAssets::getCompanyId);
|
||||||
|
|
||||||
|
for (Map.Entry<Long, List<LiabilitiesClaimsAssets>> companyEntry : indexByCompany.entrySet()) {
|
||||||
|
final Long companyId = companyEntry.getKey();
|
||||||
|
Company company = companyImdg.getSingleObjectByID(companyId);
|
||||||
|
if (company == null) {
|
||||||
|
log.warn("Company not found by LiabilitiesClaimsAssets.CompanyId={}", companyId);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
CompanySymbols companySymbolINN = findSymbol(DocumentTypes.inn, company.getId());
|
||||||
|
CompanySymbols companySymbolOGRN = findSymbol(DocumentTypes.ogrn, company.getId());
|
||||||
|
ClearingMemberCategory cmc = clearingMemberCategoryImdg.getSingleObjectByFieldValues(Map.of("companyId", companyId));
|
||||||
|
String clearingMemberCategory = cmc == null ? null : cmc.getClearingMemberCategory();
|
||||||
|
|
||||||
|
|
||||||
|
List<LiabilitiesClaimsAssets> companyLiabilities = companyEntry.getValue();
|
||||||
|
Map<String, List<LiabilitiesClaimsAssets>> indexByCurrency = MapUtil.indexList(companyLiabilities, LiabilitiesClaimsAssets::getCurrency);
|
||||||
|
for (Map.Entry<String, List<LiabilitiesClaimsAssets>> currencyEntry : indexByCurrency.entrySet()) {
|
||||||
|
String currencyCode = currencyEntry.getKey();
|
||||||
|
Long currencyId = MapUtil.getDictionaryIdByCode(currencyCodeDictionaryImdg, currencyCode);
|
||||||
|
if (currencyId == null) {
|
||||||
|
log.warn("No currency found for code \"{}\"", currencyEntry.getKey());
|
||||||
|
}
|
||||||
|
ReportBR_0420312_P8.Info_0420312_P8 info_0420312_p8 = new ReportBR_0420312_P8.Info_0420312_P8(
|
||||||
|
toString(currencyId),
|
||||||
|
toString(companyId),
|
||||||
|
company.getFullName(),
|
||||||
|
companySymbolINN == null ? null : companySymbolINN.getCompanySymbolValue(),
|
||||||
|
companySymbolOGRN == null ? null : companySymbolOGRN.getCompanySymbolValue(),
|
||||||
|
company.getProfile().getCountryCode(),
|
||||||
|
clearingMemberCategory
|
||||||
|
);
|
||||||
|
reportBR_0420312P8.getRows().add(info_0420312_p8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return reportBR_0420312P8;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<ReportBR_0420312_P8> getReportClass() {
|
||||||
|
return ReportBR_0420312_P8.class;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,100 @@
|
||||||
|
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;
|
||||||
|
import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets;
|
||||||
|
import ru.clearing.platform.dictionary.CurrencyCodeDictionary;
|
||||||
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P1;
|
||||||
|
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P9;
|
||||||
|
import ru.spcex.clearing.reports.services.ReportDataCollector;
|
||||||
|
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.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class Bt17_5_P9_collector extends ReportDataCollector<ReportBR_0420312_P9> {
|
||||||
|
private Imdg<Company> companyImdg;
|
||||||
|
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
||||||
|
private Imdg<CurrencyCodeDictionary> currencyCodeDictionaryImdg;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public Bt17_5_P9_collector(ImdgProvider imdgProvider) {
|
||||||
|
companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||||
|
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class);
|
||||||
|
currencyCodeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, CurrencyCodeDictionary.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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_0420312_P9 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||||
|
validateDateRange(startDate, endDate);
|
||||||
|
|
||||||
|
ReportBR_0420312_P9 reportBR_0420312P9 = new ReportBR_0420312_P9(startDate, endDate, "BR");
|
||||||
|
|
||||||
|
Collection<LiabilitiesClaimsAssets> liabilities = searchLiabilitiesClaimsAssets(startDate, endDate);
|
||||||
|
Map<Long, List<LiabilitiesClaimsAssets>> indexByCompany = MapUtil.indexList(liabilities, LiabilitiesClaimsAssets::getCompanyId);
|
||||||
|
|
||||||
|
for (Map.Entry<Long, List<LiabilitiesClaimsAssets>> companyEntry : indexByCompany.entrySet()) {
|
||||||
|
final Long companyId = companyEntry.getKey();
|
||||||
|
Company company = companyImdg.getSingleObjectByID(companyId);
|
||||||
|
if (company == null) {
|
||||||
|
log.warn("Company not found by LiabilitiesClaimsAssets.CompanyId={}", companyId);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
List<LiabilitiesClaimsAssets> companyLiabilities = companyEntry.getValue();
|
||||||
|
Map<String, List<LiabilitiesClaimsAssets>> indexByCurrency = MapUtil.indexList(companyLiabilities, LiabilitiesClaimsAssets::getCurrency);
|
||||||
|
for (Map.Entry<String, List<LiabilitiesClaimsAssets>> currencyEntry : indexByCurrency.entrySet()) {
|
||||||
|
String currencyCode = currencyEntry.getKey();
|
||||||
|
Long currencyId = MapUtil.getDictionaryIdByCode(currencyCodeDictionaryImdg, currencyCode);
|
||||||
|
if (currencyId == null) {
|
||||||
|
log.warn("No currency found for code \"{}\"", currencyEntry.getKey());
|
||||||
|
}
|
||||||
|
BigDecimal summOfLiabilities = currencyEntry.getValue().stream()
|
||||||
|
.map(LiabilitiesClaimsAssets::getLiabilitiesQuantity)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.reduce(BigDecimal::add)
|
||||||
|
.orElse(BigDecimal.ZERO);
|
||||||
|
ReportBR_0420312_P9.Info_0420312_P9 info_0420312_p9 = new ReportBR_0420312_P9.Info_0420312_P9(
|
||||||
|
toString(currencyId),
|
||||||
|
toString(companyId),
|
||||||
|
currencyCode,
|
||||||
|
toString(summOfLiabilities)
|
||||||
|
);
|
||||||
|
reportBR_0420312P9.getRows().add(info_0420312_p9);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return reportBR_0420312P9;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<ReportBR_0420312_P9> getReportClass() {
|
||||||
|
return ReportBR_0420312_P9.class;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue