From a966d8099541c10d6c70c5435488f40cf8129d31 Mon Sep 17 00:00:00 2001 From: akulikov Date: Tue, 10 Jan 2023 17:14:02 +0300 Subject: [PATCH] cls-52/53, cls-92/93 --- .../reports/ReportsServiceApplication.java | 12 +- .../clearing/reports/reports/ReportId.java | 2 +- .../reports/reports/bt_12_2/ReportPA_B.java | 79 ++++++++ .../reports/bt_12_2/ReportPA_BT2_B.java | 172 ------------------ .../reports/bt_12_2/ReportPA_BT2_IV.java | 169 ----------------- .../reports/reports/bt_12_2/ReportPA_IV.java | 82 +++++++++ .../reports/bt_16_5/Report_BT16_5.java | 1 - .../collector/ReportDOCIN_Collector.java | 3 +- ...llector.java => ReportPA_B_Collector.java} | 69 ++++--- ...lector.java => ReportPA_IV_Collector.java} | 67 ++++--- 10 files changed, 236 insertions(+), 420 deletions(-) create mode 100644 clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_12_2/ReportPA_B.java delete mode 100644 clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_12_2/ReportPA_BT2_B.java delete mode 100644 clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_12_2/ReportPA_BT2_IV.java create mode 100644 clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_12_2/ReportPA_IV.java rename clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/{ReportPA_BT2_B_Collector.java => ReportPA_B_Collector.java} (59%) rename clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/{ReportPA_BT2_IV_Collector.java => ReportPA_IV_Collector.java} (62%) diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/ReportsServiceApplication.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/ReportsServiceApplication.java index 6799ab99e..38cb8d576 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/ReportsServiceApplication.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/ReportsServiceApplication.java @@ -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); } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportId.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportId.java index d0babc48c..a235a2a83 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportId.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportId.java @@ -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"), diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_12_2/ReportPA_B.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_12_2/ReportPA_B.java new file mode 100644 index 000000000..4d3be05d8 --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_12_2/ReportPA_B.java @@ -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 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 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 + ) { + } + +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_12_2/ReportPA_BT2_B.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_12_2/ReportPA_BT2_B.java deleted file mode 100644 index 443b7cccb..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_12_2/ReportPA_BT2_B.java +++ /dev/null @@ -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 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 getRows() { - return rows; - } - - public void setRows(List 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; - } - } - -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_12_2/ReportPA_BT2_IV.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_12_2/ReportPA_BT2_IV.java deleted file mode 100644 index 5895f61a7..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_12_2/ReportPA_BT2_IV.java +++ /dev/null @@ -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 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 getRows() { - return rows; - } - - public void setRows(List 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; - } - } - -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_12_2/ReportPA_IV.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_12_2/ReportPA_IV.java new file mode 100644 index 000000000..aef1d9d22 --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_12_2/ReportPA_IV.java @@ -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 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 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 + ) { + } + +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_16_5/Report_BT16_5.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_16_5/Report_BT16_5.java index 79424f6ed..dd6729682 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_16_5/Report_BT16_5.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_16_5/Report_BT16_5.java @@ -19,7 +19,6 @@ public class Report_BT16_5 extends AbstractReport { @XStreamAlias("time") private LocalTime time; - @XStreamAlias("id") private String id; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportDOCIN_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportDOCIN_Collector.java index f63cc2826..3ce9d8551 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportDOCIN_Collector.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportDOCIN_Collector.java @@ -49,8 +49,7 @@ public class ReportDOCIN_Collector extends SimpleReportCollector { toString(inDocumentJournal.getAmount()), toString(inDocumentJournal.getDossierNumber()), toString(inDocumentJournal.getComment()), - toString(inDocumentJournal.getReceiptDate()) - ); + toString(inDocumentJournal.getReceiptDate())); reportDOCIN.getRows().add(infoDOCIN); } return reportDOCIN; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportPA_BT2_B_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportPA_B_Collector.java similarity index 59% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportPA_BT2_B_Collector.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportPA_B_Collector.java index 967f88a85..1d1edf6ae 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportPA_BT2_B_Collector.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportPA_B_Collector.java @@ -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 { +public class ReportPA_B_Collector extends ReportWithPeriodCollector { private final Imdg liabilitiesClaimsAssetsImdg; private final Imdg 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 clearingMemberCategories = clearingMemberCategoryImdg.getCollectionObjectsByPredicate(clearingMemberCategoryPredicate); Set companyIds = clearingMemberCategories.stream() @@ -59,46 +57,47 @@ public class ReportPA_BT2_B_Collector extends ReportWithPeriodCollector liabilitiesClaimsAssets = liabilitiesClaimsAssetsImdg.getCollectionObjectsByPredicate(finalPredicate); - ReportPA_BT2_B report = new ReportPA_BT2_B(startDate, endDate); - List 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 getReportClass() { - return ReportPA_BT2_B.class; + public Class getReportClass() { + return ReportPA_B.class; } } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportPA_BT2_IV_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportPA_IV_Collector.java similarity index 62% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportPA_BT2_IV_Collector.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportPA_IV_Collector.java index 4e9faa35e..2664b36be 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportPA_BT2_IV_Collector.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportPA_IV_Collector.java @@ -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 { +public class ReportPA_IV_Collector extends ReportWithPeriodCollector { private final Imdg liabilitiesClaimsAssetsImdg; private final Imdg clearingStatusDictionaryImdg; private final Imdg 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 liabilitiesClaimsAssets = liabilitiesClaimsAssetsImdg.getCollectionObjectsByPredicate(finalPredicate); - ReportPA_BT2_IV report = new ReportPA_BT2_IV(startDate, endDate); - List 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 getReportClass() { - return ReportPA_BT2_IV.class; + public Class getReportClass() { + return ReportPA_IV.class; } }