cls-52/53, cls-92/93

This commit is contained in:
akulikov 2023-01-10 17:14:02 +03:00
parent 552fbe26d0
commit a966d80995
10 changed files with 236 additions and 420 deletions

View file

@ -9,11 +9,13 @@ import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.context.ConfigurableApplicationContext;
import ru.spcex.clearing.reports.reports.bt_13.ReportDOCIN;
import ru.spcex.clearing.reports.reports.bt_12_2.ReportPA_IV;
import ru.spcex.clearing.reports.services.ReportsServiceCommand;
import ru.spcex.clearing.reports.services.collector.ReportDOCIN_Collector;
import ru.spcex.clearing.reports.services.collector.ReportPA_IV_Collector;
import ru.spcex.platform.imdg.api.ImdgProvider;
import java.time.LocalDate;
@SpringBootApplication
public class ReportsServiceApplication {
public static void main(String[] args) {
@ -41,10 +43,10 @@ public class ReportsServiceApplication {
public static void test(ConfigurableApplicationContext context) {
ImdgProvider imdg = context.getBean(ImdgProvider.class);
ReportDOCIN_Collector collector = new ReportDOCIN_Collector(imdg);
ReportDOCIN report = collector.collectReport();
ReportPA_IV_Collector collector = new ReportPA_IV_Collector(imdg);
ReportPA_IV report = collector.collectReportWithPeriod(LocalDate.of(2020, 1, 1), LocalDate.now());
XStream xStream = new XStream(new XppDriver(new NoNameCoder()));
xStream.processAnnotations(ReportDOCIN.class);
xStream.processAnnotations(ReportPA_IV.class);
String out = xStream.toXML(report);
System.out.println(out);
}

View file

@ -6,7 +6,7 @@ import ru.spcex.platform.utils.enumeration.IEnumKey;
* Идентификаторы отчётов
*/
public enum ReportId implements IEnumKey {
PA_BT2_B("REPPA.BT12.2.B"), PA_BT2_IV("REPPA.BT12.2.IV"),
PA_B("REPPA.B"), PA_IV("REPPA.IV"),
BT13_11("DOCIN"), BT13_12("DOCOUT"),

View file

@ -0,0 +1,79 @@
package ru.spcex.clearing.reports.reports.bt_12_2;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import ru.spcex.clearing.reports.reports.ReportId;
import ru.spcex.clearing.reports.reports.ReportWithPeriod;
import ru.spcex.platform.enumeration.ClearingMemberCategoryD;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@XStreamAlias("netPositionBank")
public class ReportPA_B extends ReportWithPeriod {
@XStreamAsAttribute
@XStreamAlias("clearingMemberCategory")
private String clearingMemberCategory;
@XStreamAlias("rows")
private List<Info_PA_B> rows = new ArrayList<>();
@XStreamAlias("total")
private Total total;
public ReportPA_B(LocalDate startDate,
LocalDate endDate) {
super(ReportId.PA_B,
"0.0.1",
"BT12.2",
"Отчет по нетто-позиции участника клиринга в секции МКР (Уполномоченный банк)",
startDate,
endDate);
this.clearingMemberCategory = ClearingMemberCategoryD.B.getKey();
}
@Override
public String getReportName(LocalDateTime reportDateTime) {
return "REPPA.B.%s-%s.%s".formatted(
DATE_FORMATTER.format(startDate),
DATE_FORMATTER.format(endDate),
DATE_TIME_FORMATTER.format(reportDateTime)
);
}
public void setTotal(Total total) {
this.total = total;
}
public List<Info_PA_B> getRows() {
return rows;
}
@XStreamAlias("total")
public record Total(@XStreamAsAttribute @XStreamAlias("claimsAmount") String claimsAmount,
@XStreamAsAttribute @XStreamAlias("liabilitiesAmount") String liabilitiesAmount,
@XStreamAsAttribute @XStreamAlias("paymentAmount") String paymentAmount) {
}
@XStreamAlias("row")
public record Info_PA_B(
@XStreamAsAttribute @XStreamAlias("id") String id,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_fullName") String liabilitiesClaimsAssetsFullName,
@XStreamAsAttribute @XStreamAlias("company_clearingCode") String companyClearingCode,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_settlementDate") String liabilitiesClaimsAssetsSettlementDate,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_refundDate") String liabilitiesClaimsAssetsRefundDate,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_tradingDate") String liabilitiesClaimsAssetsTradingDate,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_contract") String liabilitiesClaimsAssetsContract,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_liabilitiesQuantity") String liabilitiesClaimsAssetsLiabilitiesQuantity,
@XStreamAsAttribute @XStreamAlias("chargeCommission") String chargeCommission,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_ClaimsQuantity") String liabilitiesClaimsAssetsClaimsQuantity,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_refundPaymentId") String liabilitiesClaimsAssetsRefundPaymentId,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_clearingStatus") String liabilitiesClaimsAssetsClearingStatus,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_comment") String liabilitiesClaimsAssetsComment
) {
}
}

View file

@ -1,172 +0,0 @@
package ru.spcex.clearing.reports.reports.bt_12_2;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.thoughtworks.xstream.annotations.XStreamConverter;
import ru.spcex.clearing.reports.reports.ReportId;
import ru.spcex.clearing.reports.reports.ReportWithPeriod;
import ru.spcex.clearing.reports.xml_test.FormattedLocalDateConverter;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@XStreamAlias("netPositionBank")
public class ReportPA_BT2_B extends ReportWithPeriod {
@XStreamAsAttribute
@XStreamAlias("clearingMemberCategory")
private String clearingMemberCategory;
@XStreamAlias("rows")
private List<Row> rows;
@XStreamAlias("total")
private Total total;
public ReportPA_BT2_B(LocalDate startDate,
LocalDate endDate) {
super(ReportId.PA_BT2_B,
"0.0.1",
"BT12.2",
"Отчет по нетто-позиции участника клиринга в секции МКР (Уполномоченный банк)",
startDate,
endDate);
this.clearingMemberCategory = "B";
}
@Override
public String getReportName(LocalDateTime reportDateTime) {
return "REPPA.B.%s-%s.%s".formatted(
DATE_FORMATTER.format(startDate),
DATE_FORMATTER.format(endDate),
DATE_TIME_FORMATTER.format(reportDateTime)
);
}
public Total getTotal() {
return total;
}
public void setTotal(Total total) {
this.total = total;
}
public List<Row> getRows() {
return rows;
}
public void setRows(List<Row> rows) {
this.rows = rows;
}
@XStreamAlias("total")
public static class Total {
@XStreamAsAttribute
@XStreamAlias("claimsAmount")
private BigDecimal claimsAmount;
@XStreamAsAttribute
@XStreamAlias("liabilitiesAmount")
private BigDecimal liabilitiesAmount;
@XStreamAsAttribute
@XStreamAlias("paymentAmount")
private BigDecimal paymentAmount;
public Total(BigDecimal claimsAmount, BigDecimal liabilitiesAmount, BigDecimal paymentAmount) {
this.claimsAmount = claimsAmount;
this.liabilitiesAmount = liabilitiesAmount;
this.paymentAmount = paymentAmount;
}
}
@XStreamAlias("row")
public static class Row {
@XStreamAsAttribute
@XStreamAlias("id")
private Long id;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_fullName")
private String liabilitiesClaimsAssetsFullName;
@XStreamAsAttribute
@XStreamAlias("company_clearingCode")
private String companyClearingCode;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_settlementDate")
@XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
private LocalDate liabilitiesClaimsAssetsSettlementDate;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_refundDate")
@XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
private LocalDate liabilitiesClaimsAssetsRefundDate;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_tradingDate")
@XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
private LocalDate liabilitiesClaimsAssetsTradingDate;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_contract")
private String liabilitiesClaimsAssetsContract;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_liabilitiesQuantity")
private BigDecimal liabilitiesClaimsAssetsLiabilitiesQuantity;
@XStreamAsAttribute
@XStreamAlias("chargeCommission")
private String chargeCommission;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_ClaimsQuantity")
private BigDecimal liabilitiesClaimsAssetsClaimsQuantity;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_refundPaymentId")
private Long liabilitiesClaimsAssetsRefundPaymentId;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_clearingStatus")
private Long liabilitiesClaimsAssetsClearingStatus;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_comment")
private String liabilitiesClaimsAssetsComment;
public Row(Long id,
String liabilitiesClaimsAssetsFullName,
String companyClearingCode,
LocalDate liabilitiesClaimsAssetsSettlementDate,
LocalDate liabilitiesClaimsAssetsRefundDate,
LocalDate liabilitiesClaimsAssetsTradingDate,
String liabilitiesClaimsAssetsContract,
BigDecimal liabilitiesClaimsAssetsLiabilitiesQuantity,
String chargeCommission,
BigDecimal liabilitiesClaimsAssetsClaimsQuantity,
Long liabilitiesClaimsAssetsRefundPaymentId,
Long liabilitiesClaimsAssetsClearingStatus,
String liabilitiesClaimsAssetsComment) {
this.id = id;
this.liabilitiesClaimsAssetsFullName = liabilitiesClaimsAssetsFullName;
this.companyClearingCode = companyClearingCode;
this.liabilitiesClaimsAssetsSettlementDate = liabilitiesClaimsAssetsSettlementDate;
this.liabilitiesClaimsAssetsRefundDate = liabilitiesClaimsAssetsRefundDate;
this.liabilitiesClaimsAssetsTradingDate = liabilitiesClaimsAssetsTradingDate;
this.liabilitiesClaimsAssetsContract = liabilitiesClaimsAssetsContract;
this.liabilitiesClaimsAssetsLiabilitiesQuantity = liabilitiesClaimsAssetsLiabilitiesQuantity;
this.chargeCommission = chargeCommission;
this.liabilitiesClaimsAssetsClaimsQuantity = liabilitiesClaimsAssetsClaimsQuantity;
this.liabilitiesClaimsAssetsRefundPaymentId = liabilitiesClaimsAssetsRefundPaymentId;
this.liabilitiesClaimsAssetsClearingStatus = liabilitiesClaimsAssetsClearingStatus;
this.liabilitiesClaimsAssetsComment = liabilitiesClaimsAssetsComment;
}
}
}

View file

@ -1,169 +0,0 @@
package ru.spcex.clearing.reports.reports.bt_12_2;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.thoughtworks.xstream.annotations.XStreamConverter;
import ru.spcex.clearing.reports.reports.ReportId;
import ru.spcex.clearing.reports.reports.ReportWithPeriod;
import ru.spcex.clearing.reports.xml_test.FormattedLocalDateConverter;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@XStreamAlias("netPositionInitiator")
public class ReportPA_BT2_IV extends ReportWithPeriod {
@XStreamAsAttribute
@XStreamAlias("clearingMemberCategory")
private String clearingMemberCategory;
@XStreamAlias("rows")
private List<Row> rows;
@XStreamAlias("total")
private Total total;
public ReportPA_BT2_IV(LocalDate startDate,
LocalDate endDate) {
super(ReportId.PA_BT2_IV,
"0.0.1",
"BT2",
"Отчет по нетто-позиции участника клиринга в секции МКР (Вкладчик)",
startDate,
endDate);
this.clearingMemberCategory = "I,V";
}
@Override
public String getReportName(LocalDateTime reportDateTime) {
return "REPPA.BT12.2.IV.%s-%s.%s".formatted(
DATE_FORMATTER.format(startDate),
DATE_FORMATTER.format(endDate),
DATE_TIME_FORMATTER.format(reportDateTime)
);
}
public List<Row> getRows() {
return rows;
}
public void setRows(List<Row> rows) {
this.rows = rows;
}
public Total getTotal() {
return total;
}
public void setTotal(Total total) {
this.total = total;
}
@XStreamAlias("total")
public static class Total {
@XStreamAlias("claimsAmount")
private BigDecimal claimsAmount;
@XStreamAlias("liabilitiesAmount")
private BigDecimal liabilitiesAmount;
@XStreamAlias("paymentAmount")
private BigDecimal paymentAmount;
public Total(BigDecimal claimsAmount, BigDecimal liabilitiesAmount, BigDecimal paymentAmount) {
this.claimsAmount = claimsAmount;
this.liabilitiesAmount = liabilitiesAmount;
this.paymentAmount = paymentAmount;
}
}
@XStreamAlias("row")
public static class Row {
@XStreamAsAttribute
@XStreamAlias("id")
private Long id;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_fullName")
private String liabilitiesClaimsAssetsFullName;
@XStreamAsAttribute
@XStreamAlias("company_clearingCode")
private String companyClearingCode;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_settlementDate")
@XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
private LocalDate liabilitiesClaimsAssetsSettlementDate;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_refundDate")
@XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
private LocalDate liabilitiesClaimsAssetsRefundDate;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_tradingDate")
@XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
private LocalDate liabilitiesClaimsAssetsTradingDate;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_contract")
private String liabilitiesClaimsAssetsContract;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_liabilitiesQuantity")
private BigDecimal liabilitiesClaimsAssetsLiabilitiesQuantity;
@XStreamAsAttribute
@XStreamAlias("chargeCommission")
private String chargeCommission;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_ClaimsQuantity")
private BigDecimal liabilitiesClaimsAssetsClaimsQuantity;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_refundPaymentId")
private Long liabilitiesClaimsAssetsRefundPaymentId;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_clearingStatus")
private Long liabilitiesClaimsAssetsClearingStatus;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_comment")
private String liabilitiesClaimsAssetsComment;
public Row(Long id,
String liabilitiesClaimsAssetsFullName,
String companyClearingCode,
LocalDate liabilitiesClaimsAssetsSettlementDate,
LocalDate liabilitiesClaimsAssetsRefundDate,
LocalDate liabilitiesClaimsAssetsTradingDate,
String liabilitiesClaimsAssetsContract,
BigDecimal liabilitiesClaimsAssetsLiabilitiesQuantity,
String chargeCommission,
BigDecimal liabilitiesClaimsAssetsClaimsQuantity,
Long liabilitiesClaimsAssetsRefundPaymentId,
Long liabilitiesClaimsAssetsClearingStatus,
String liabilitiesClaimsAssetsComment) {
this.id = id;
this.liabilitiesClaimsAssetsFullName = liabilitiesClaimsAssetsFullName;
this.companyClearingCode = companyClearingCode;
this.liabilitiesClaimsAssetsSettlementDate = liabilitiesClaimsAssetsSettlementDate;
this.liabilitiesClaimsAssetsRefundDate = liabilitiesClaimsAssetsRefundDate;
this.liabilitiesClaimsAssetsTradingDate = liabilitiesClaimsAssetsTradingDate;
this.liabilitiesClaimsAssetsContract = liabilitiesClaimsAssetsContract;
this.liabilitiesClaimsAssetsLiabilitiesQuantity = liabilitiesClaimsAssetsLiabilitiesQuantity;
this.chargeCommission = chargeCommission;
this.liabilitiesClaimsAssetsClaimsQuantity = liabilitiesClaimsAssetsClaimsQuantity;
this.liabilitiesClaimsAssetsRefundPaymentId = liabilitiesClaimsAssetsRefundPaymentId;
this.liabilitiesClaimsAssetsClearingStatus = liabilitiesClaimsAssetsClearingStatus;
this.liabilitiesClaimsAssetsComment = liabilitiesClaimsAssetsComment;
}
}
}

View file

@ -0,0 +1,82 @@
package ru.spcex.clearing.reports.reports.bt_12_2;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import ru.spcex.clearing.reports.reports.ReportId;
import ru.spcex.clearing.reports.reports.ReportWithPeriod;
import ru.spcex.platform.enumeration.ClearingMemberCategoryD;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@XStreamAlias("netPositionInitiator")
public class ReportPA_IV extends ReportWithPeriod {
@XStreamAsAttribute
@XStreamAlias("clearingMemberCategory")
private String clearingMemberCategory;
@XStreamAlias("rows")
private List<Info_PA_IV> rows = new ArrayList<>();
@XStreamAlias("total")
private Total total;
public ReportPA_IV(LocalDate startDate,
LocalDate endDate) {
super(ReportId.PA_IV,
"0.0.1",
"BT2",
"Отчет по нетто-позиции участника клиринга в секции МКР (Вкладчик)",
startDate,
endDate);
this.clearingMemberCategory = "%s,%s".formatted(
ClearingMemberCategoryD.I.getKey(),
ClearingMemberCategoryD.V.getKey()
);
}
@Override
public String getReportName(LocalDateTime reportDateTime) {
return "REPPA.BT12.2.IV.%s-%s.%s".formatted(
DATE_FORMATTER.format(startDate),
DATE_FORMATTER.format(endDate),
DATE_TIME_FORMATTER.format(reportDateTime)
);
}
public void setTotal(Total total) {
this.total = total;
}
public List<Info_PA_IV> getRows() {
return rows;
}
@XStreamAlias("total")
public record Total(@XStreamAsAttribute @XStreamAlias("claimsAmount") String claimsAmount,
@XStreamAsAttribute @XStreamAlias("liabilitiesAmount") String liabilitiesAmount,
@XStreamAsAttribute @XStreamAlias("paymentAmount") String paymentAmount) {
}
@XStreamAlias("row")
public record Info_PA_IV(
@XStreamAsAttribute @XStreamAlias("id") String id,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_fullName") String liabilitiesClaimsAssetsFullName,
@XStreamAsAttribute @XStreamAlias("company_clearingCode") String companyClearingCode,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_settlementDate") String liabilitiesClaimsAssetsSettlementDate,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_refundDate") String liabilitiesClaimsAssetsRefundDate,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_tradingDate") String liabilitiesClaimsAssetsTradingDate,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_contract") String liabilitiesClaimsAssetsContract,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_liabilitiesQuantity") String liabilitiesClaimsAssetsLiabilitiesQuantity,
@XStreamAsAttribute @XStreamAlias("chargeCommission") String chargeCommission,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_ClaimsQuantity") String liabilitiesClaimsAssetsClaimsQuantity,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_refundPaymentId") String liabilitiesClaimsAssetsRefundPaymentId,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_clearingStatus") String liabilitiesClaimsAssetsClearingStatus,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_comment") String liabilitiesClaimsAssetsComment
) {
}
}

View file

@ -19,7 +19,6 @@ public class Report_BT16_5 extends AbstractReport {
@XStreamAlias("time")
private LocalTime time;
@XStreamAlias("id")
private String id;

View file

@ -49,8 +49,7 @@ public class ReportDOCIN_Collector extends SimpleReportCollector<ReportDOCIN> {
toString(inDocumentJournal.getAmount()),
toString(inDocumentJournal.getDossierNumber()),
toString(inDocumentJournal.getComment()),
toString(inDocumentJournal.getReceiptDate())
);
toString(inDocumentJournal.getReceiptDate()));
reportDOCIN.getRows().add(infoDOCIN);
}
return reportDOCIN;

View file

@ -3,8 +3,9 @@ package ru.spcex.clearing.reports.services.collector;
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.reports.reports.bt_12_2.ReportPA_BT2_B;
import ru.spcex.clearing.reports.reports.bt_12_2.ReportPA_B;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.enumeration.ClearingMemberCategoryD;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
@ -13,18 +14,15 @@ import ru.spcex.platform.imdg.iml.hazelcast.adapter.predicate.ImdgPredicateBuild
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
public class ReportPA_BT2_B_Collector extends ReportWithPeriodCollector<ReportPA_BT2_B> {
public class ReportPA_B_Collector extends ReportWithPeriodCollector<ReportPA_B> {
private final Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
private final Imdg<ClearingMemberCategory> clearingMemberCategoryImdg;
public ReportPA_BT2_B_Collector(ImdgProvider imdgProvider) {
public ReportPA_B_Collector(ImdgProvider imdgProvider) {
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(
IMDGDistributedNames.Map_LiabilitiesClaimsAssets,
LiabilitiesClaimsAssets.class
@ -36,11 +34,11 @@ public class ReportPA_BT2_B_Collector extends ReportWithPeriodCollector<ReportPA
}
@Override
public ReportPA_BT2_B collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
public ReportPA_B collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
validateDateRange(startDate, endDate);
ImdgPredicateBuilder builder = new ImdgPredicateBuilderHazelcast();
ImdgPredicate clearingMemberCategoryPredicate = builder.equals("clearingMemberCategory", "B");
ImdgPredicate clearingMemberCategoryPredicate = builder.equals("clearingMemberCategory", ClearingMemberCategoryD.B.getKey());
Collection<ClearingMemberCategory> clearingMemberCategories =
clearingMemberCategoryImdg.getCollectionObjectsByPredicate(clearingMemberCategoryPredicate);
Set<Long> companyIds = clearingMemberCategories.stream()
@ -59,46 +57,47 @@ public class ReportPA_BT2_B_Collector extends ReportWithPeriodCollector<ReportPA
Collection<LiabilitiesClaimsAssets> liabilitiesClaimsAssets =
liabilitiesClaimsAssetsImdg.getCollectionObjectsByPredicate(finalPredicate);
ReportPA_BT2_B report = new ReportPA_BT2_B(startDate, endDate);
List<ReportPA_BT2_B.Row> rows = new ArrayList<>(liabilitiesClaimsAssets.size());
ReportPA_B report = new ReportPA_B(startDate, endDate);
BigDecimal claimsAmount = BigDecimal.ZERO;
BigDecimal liabilitiesAmount = BigDecimal.ZERO;
BigDecimal paymentAmount = BigDecimal.ZERO;
for (LiabilitiesClaimsAssets liabilitiesClaimsAsset : liabilitiesClaimsAssets) {
ReportPA_BT2_B.Row row = new ReportPA_BT2_B.Row(
liabilitiesClaimsAsset.getId(),
liabilitiesClaimsAsset.getFullName(),
liabilitiesClaimsAsset.getClearingCode(),
liabilitiesClaimsAsset.getSettlementDate() != null ? LocalDate.ofInstant(liabilitiesClaimsAsset.getSettlementDate(), ZoneId.systemDefault()) : null,
liabilitiesClaimsAsset.getRefundDate() != null ? LocalDate.ofInstant(liabilitiesClaimsAsset.getRefundDate(), ZoneId.systemDefault()) : null,
liabilitiesClaimsAsset.getTradingDate() != null ? LocalDate.ofInstant(liabilitiesClaimsAsset.getTradingDate(), ZoneId.systemDefault()) : null,
liabilitiesClaimsAsset.getContract(),
liabilitiesClaimsAsset.getLiabilitiesQuantity(),
"NOT PRESENTED ON DB", // todo спросить в таске, в базе нету этого поля
liabilitiesClaimsAsset.getClaimsQuantity(),
liabilitiesClaimsAsset.getRefundPaymentId(),
liabilitiesClaimsAsset.getClearingStatus(),
liabilitiesClaimsAsset.getComment()
ReportPA_B.Info_PA_B infoPAB = new ReportPA_B.Info_PA_B(
toString(liabilitiesClaimsAsset.getId()),
toString(liabilitiesClaimsAsset.getFullName()),
toString(liabilitiesClaimsAsset.getClearingCode()),
toString(liabilitiesClaimsAsset.getSettlementDate()),
toString(liabilitiesClaimsAsset.getRefundDate()),
toString(liabilitiesClaimsAsset.getTradingDate()),
toString(liabilitiesClaimsAsset.getContract()),
toString(liabilitiesClaimsAsset.getLiabilitiesQuantity()),
"",
toString(liabilitiesClaimsAsset.getClaimsQuantity()),
toString(liabilitiesClaimsAsset.getRefundPaymentId()),
toString(liabilitiesClaimsAsset.getClearingStatus()),
toString(liabilitiesClaimsAsset.getComment())
);
rows.add(row);
if (liabilitiesClaimsAsset.getClaimsQuantity() != null)
report.getRows().add(infoPAB);
if (liabilitiesClaimsAsset.getClaimsQuantity() != null) {
claimsAmount = claimsAmount.add(liabilitiesClaimsAsset.getClaimsQuantity());
if (liabilitiesClaimsAsset.getLiabilitiesQuantity() != null)
paymentAmount = paymentAmount.add(liabilitiesClaimsAsset.getClaimsQuantity());
}
if (liabilitiesClaimsAsset.getLiabilitiesQuantity() != null) {
liabilitiesAmount = liabilitiesAmount.add(liabilitiesClaimsAsset.getLiabilitiesQuantity());
paymentAmount = paymentAmount.add(BigDecimal.ZERO); // todo спросить в таске, в тз не указано поле для подсчёта
paymentAmount = paymentAmount.add(liabilitiesClaimsAsset.getLiabilitiesQuantity().negate());
}
}
ReportPA_BT2_B.Total total = new ReportPA_BT2_B.Total(claimsAmount, liabilitiesAmount, paymentAmount);
report.setRows(rows);
ReportPA_B.Total total = new ReportPA_B.Total(
toString(claimsAmount),
toString(liabilitiesAmount),
toString(paymentAmount));
report.setTotal(total);
return report;
}
@Override
public Class<ReportPA_BT2_B> getReportClass() {
return ReportPA_BT2_B.class;
public Class<ReportPA_B> getReportClass() {
return ReportPA_B.class;
}
}

View file

@ -4,7 +4,7 @@ import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets;
import ru.clearing.platform.dictionary.ClearingStatusDictionary;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.reports.reports.bt_12_2.ReportPA_BT2_IV;
import ru.spcex.clearing.reports.reports.bt_12_2.ReportPA_IV;
import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
@ -14,19 +14,16 @@ import ru.spcex.platform.imdg.iml.hazelcast.adapter.predicate.ImdgPredicateBuild
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
public class ReportPA_BT2_IV_Collector extends ReportWithPeriodCollector<ReportPA_BT2_IV> {
public class ReportPA_IV_Collector extends ReportWithPeriodCollector<ReportPA_IV> {
private final Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
private final Imdg<ClearingStatusDictionary> clearingStatusDictionaryImdg;
private final Imdg<ClearingMemberCategory> clearingMemberCategoryImdg;
public ReportPA_BT2_IV_Collector(ImdgProvider imdgProvider) {
public ReportPA_IV_Collector(ImdgProvider imdgProvider) {
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(
IMDGDistributedNames.Map_LiabilitiesClaimsAssets,
LiabilitiesClaimsAssets.class
@ -42,7 +39,7 @@ public class ReportPA_BT2_IV_Collector extends ReportWithPeriodCollector<ReportP
}
@Override
public ReportPA_BT2_IV collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
public ReportPA_IV collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
validateDateRange(startDate, endDate);
ImdgPredicateBuilder builder = new ImdgPredicateBuilderHazelcast();
@ -68,46 +65,46 @@ public class ReportPA_BT2_IV_Collector extends ReportWithPeriodCollector<ReportP
Collection<LiabilitiesClaimsAssets> liabilitiesClaimsAssets =
liabilitiesClaimsAssetsImdg.getCollectionObjectsByPredicate(finalPredicate);
ReportPA_BT2_IV report = new ReportPA_BT2_IV(startDate, endDate);
List<ReportPA_BT2_IV.Row> rows = new ArrayList<>(liabilitiesClaimsAssets.size());
ReportPA_IV report = new ReportPA_IV(startDate, endDate);
BigDecimal claimsAmount = BigDecimal.ZERO;
BigDecimal liabilitiesAmount = BigDecimal.ZERO;
BigDecimal paymentAmount = BigDecimal.ZERO;
for (LiabilitiesClaimsAssets liabilitiesClaimsAsset : liabilitiesClaimsAssets) {
ReportPA_BT2_IV.Row row = new ReportPA_BT2_IV.Row(
liabilitiesClaimsAsset.getId(),
liabilitiesClaimsAsset.getFullName(),
liabilitiesClaimsAsset.getClearingCode(),
liabilitiesClaimsAsset.getSettlementDate() != null ? LocalDate.ofInstant(liabilitiesClaimsAsset.getSettlementDate(), ZoneId.systemDefault()) : null,
liabilitiesClaimsAsset.getRefundDate() != null ? LocalDate.ofInstant(liabilitiesClaimsAsset.getRefundDate(), ZoneId.systemDefault()) : null,
liabilitiesClaimsAsset.getTradingDate() != null ? LocalDate.ofInstant(liabilitiesClaimsAsset.getTradingDate(), ZoneId.systemDefault()) : null,
liabilitiesClaimsAsset.getContract(),
liabilitiesClaimsAsset.getLiabilitiesQuantity(),
"NOT PRESENTED ON DB", // todo спросить в таске, в базе нету этого поля
liabilitiesClaimsAsset.getClaimsQuantity(),
liabilitiesClaimsAsset.getRefundPaymentId(),
liabilitiesClaimsAsset.getClearingStatus(),
liabilitiesClaimsAsset.getComment()
);
rows.add(row);
if (liabilitiesClaimsAsset.getClaimsQuantity() != null)
ReportPA_IV.Info_PA_IV row = new ReportPA_IV.Info_PA_IV(
toString(liabilitiesClaimsAsset.getId()),
toString(liabilitiesClaimsAsset.getFullName()),
toString(liabilitiesClaimsAsset.getClearingCode()),
toString(liabilitiesClaimsAsset.getSettlementDate()),
toString(liabilitiesClaimsAsset.getRefundDate()),
toString(liabilitiesClaimsAsset.getTradingDate()),
toString(liabilitiesClaimsAsset.getContract()),
toString(liabilitiesClaimsAsset.getLiabilitiesQuantity()),
"",
toString(liabilitiesClaimsAsset.getClaimsQuantity()),
toString(liabilitiesClaimsAsset.getRefundPaymentId()),
toString(liabilitiesClaimsAsset.getClearingStatus()),
toString(liabilitiesClaimsAsset.getComment()));
report.getRows().add(row);
if (liabilitiesClaimsAsset.getClaimsQuantity() != null) {
claimsAmount = claimsAmount.add(liabilitiesClaimsAsset.getClaimsQuantity());
if (liabilitiesClaimsAsset.getLiabilitiesQuantity() != null)
paymentAmount = paymentAmount.add(liabilitiesClaimsAsset.getClaimsQuantity());
}
if (liabilitiesClaimsAsset.getLiabilitiesQuantity() != null) {
liabilitiesAmount = liabilitiesAmount.add(liabilitiesClaimsAsset.getLiabilitiesQuantity());
paymentAmount = paymentAmount.add(BigDecimal.ZERO); // todo спросить в таске, в тз не указано поле для подсчёта
paymentAmount = paymentAmount.add(liabilitiesClaimsAsset.getLiabilitiesQuantity().negate());
}
}
ReportPA_BT2_IV.Total total = new ReportPA_BT2_IV.Total(claimsAmount, liabilitiesAmount, paymentAmount);
report.setRows(rows);
ReportPA_IV.Total total = new ReportPA_IV.Total(
toString(claimsAmount),
toString(liabilitiesAmount),
toString(paymentAmount));
report.setTotal(total);
return report;
}
@Override
public Class<ReportPA_BT2_IV> getReportClass() {
return ReportPA_BT2_IV.class;
public Class<ReportPA_IV> getReportClass() {
return ReportPA_IV.class;
}
}