From 59a93ee43f101f11dea2bcefa4f0803382482125 Mon Sep 17 00:00:00 2001 From: akulikov Date: Tue, 27 Dec 2022 11:27:50 +0300 Subject: [PATCH] kafka reports --- .../reports/ReportsServiceApplication.java | 6 +- .../reports/reports/AbstractReport.java | 8 ++- .../clearing/reports/reports/ReportId.java | 24 ++++++++ .../reports/ReportWithClearingStatus.java | 6 +- .../{ => reports}/ReportWithPeriod.java | 8 +-- .../reports/bt_12_2/ReportPA_BT2_B.java | 8 +-- .../reports/bt_12_2/ReportPA_BT2_IV.java | 8 +-- .../reports/reports/bt_13/Report_BT13_11.java | 4 +- .../reports/reports/bt_13/Report_BT13_12.java | 38 +----------- .../reports/bt_16_5/Report_BT16_5.java | 6 +- .../reports/bt_17_1/ReportBR_0420315_P1.java | 4 +- .../reports/bt_17_1/ReportBR_0420315_P2.java | 6 +- .../reports/bt_17_2/ReportBR_0420317.java | 6 +- .../reports/bt_17_3/ReportBR_0420318.java | 4 +- .../reports/bt_17_4/ReportBR_0420314_P1.java | 4 +- .../reports/bt_17_4/ReportBR_0420314_P2.java | 6 +- .../reports/bt_17_5/ReportBR_0420312_P1.java | 6 +- .../reports/bt_17_5/ReportBR_0420312_P10.java | 6 +- .../reports/bt_17_5/ReportBR_0420312_P2.java | 6 +- .../reports/bt_17_5/ReportBR_0420312_P3.java | 6 +- .../reports/bt_17_5/ReportBR_0420312_P4.java | 6 +- .../reports/bt_17_5/ReportBR_0420312_P5.java | 6 +- .../reports/bt_17_5/ReportBR_0420312_P6.java | 6 +- .../reports/bt_17_5/ReportBR_0420312_P7.java | 6 +- .../reports/bt_17_5/ReportBR_0420312_P8.java | 6 +- .../reports/bt_17_5/ReportBR_0420312_P9.java | 6 +- .../reports/services/QCommandExecutor.java | 61 +++++++++++++------ .../services/builders/DOCXReportBuilder.java | 10 ++- .../services/builders/FileReportBuilder.java | 11 +++- .../services/builders/XMLReportBuilder.java | 14 ++--- .../ru/spcex/platform/enumeration/Task.java | 3 +- .../domain/cud/reports/ReportRequest.java | 23 +++++++ .../cud/reports/ReportWithPeriodRequest.java | 40 ++++++++++++ 33 files changed, 248 insertions(+), 120 deletions(-) create mode 100644 clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportId.java rename clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/{ => reports}/ReportWithPeriod.java (85%) create mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequest.java create mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportWithPeriodRequest.java 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 c12ab17d1..9d5ddc570 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 @@ -6,6 +6,7 @@ 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.AbstractReport; import ru.spcex.clearing.reports.services.ReportDataCollector; import ru.spcex.clearing.reports.services.ReportsService; import ru.spcex.clearing.reports.services.builders.XMLReportBuilder; @@ -31,10 +32,11 @@ public class ReportsServiceApplication { log.info("Report types: {}", allReports); for (ReportDataCollector collector:allReports.values()) { log.info("Make report {}", collector); - XMLReportBuilder xmlReportBuilder = new XMLReportBuilder(collector.getReportClass(), collector); + XMLReportBuilder xmlReportBuilder = new XMLReportBuilder<>(collector.getReportClass()); LocalDate date2 = LocalDate.now(); LocalDate date1 = LocalDate.of(date2.getYear(), date2.getMonth(), 1);//date2.minusMonths(1); - xmlReportBuilder.createReport(date1, date2); + AbstractReport report = collector.collectReportWithPeriod(date1, date2); + xmlReportBuilder.createReport(report); } log.info("Shutdown application after work"); context.close(); // todo если будет запущен как сервис, сделать выход опционально, по другому. diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/AbstractReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/AbstractReport.java index 7f82058a3..8a1293fb1 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/AbstractReport.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/AbstractReport.java @@ -2,6 +2,7 @@ package ru.spcex.clearing.reports.reports; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; +import com.thoughtworks.xstream.annotations.XStreamOmitField; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -13,6 +14,9 @@ public abstract class AbstractReport { protected static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("dd.MM.yyyy"); protected static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("dd.MM.yyyy'T'HH:mm:ss"); + @XStreamOmitField + protected ReportId reportId; + @XStreamAsAttribute @XStreamAlias("version") protected String version; @@ -25,9 +29,11 @@ public abstract class AbstractReport { @XStreamAlias("name") protected String name; - public AbstractReport(String version, + public AbstractReport(ReportId reportId, + String version, String code, String name) { + this.reportId = reportId; this.version = version; this.code = code; this.name = name; 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 new file mode 100644 index 000000000..e00830a7f --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportId.java @@ -0,0 +1,24 @@ +package ru.spcex.clearing.reports.reports; + +/** + * Идентификаторы отчётов + */ +public enum ReportId { + PA_BT2_B, PA_BT2_IV, + + BT13_11, BT13_12, + + BT16_5, + + BR_0420315_P1, BR_0420315_P2, + + BR_0420317, + + BR_0420318, + + BR_0420314_P1, BR_0420314_P2, + + BR_0420312_P1, BR_0420312_P2, BR_0420312_P3, BR_0420312_P4, + BR_0420312_P5, BR_0420312_P6, BR_0420312_P7, BR_0420312_P8, + BR_0420312_P9, BR_0420312_P10, +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportWithClearingStatus.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportWithClearingStatus.java index e211edeea..e86e5007c 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportWithClearingStatus.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportWithClearingStatus.java @@ -2,7 +2,6 @@ package ru.spcex.clearing.reports.reports; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.ReportWithPeriod; import java.time.LocalDate; @@ -11,13 +10,14 @@ public abstract class ReportWithClearingStatus extends ReportWithPeriod { @XStreamAlias("clearingStatus") protected String clearingStatus; - public ReportWithClearingStatus(String version, + public ReportWithClearingStatus(ReportId reportId, + String version, String code, String name, LocalDate startDate, LocalDate endDate, String clearingStatus) { - super(version, code, name, startDate, endDate); + super(reportId, version, code, name, startDate, endDate); this.clearingStatus = clearingStatus; } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/ReportWithPeriod.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportWithPeriod.java similarity index 85% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/ReportWithPeriod.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportWithPeriod.java index 77a00ec6e..2895b8b4b 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/ReportWithPeriod.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportWithPeriod.java @@ -1,9 +1,8 @@ -package ru.spcex.clearing.reports; +package ru.spcex.clearing.reports.reports; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; import com.thoughtworks.xstream.annotations.XStreamConverter; -import ru.spcex.clearing.reports.reports.AbstractReport; import ru.spcex.clearing.reports.xml_test.FormattedLocalDateConverter; import java.time.LocalDate; @@ -24,12 +23,13 @@ public abstract class ReportWithPeriod extends AbstractReport { protected LocalDate endDate; - public ReportWithPeriod(String version, + public ReportWithPeriod(ReportId reportId, + String version, String code, String name, LocalDate startDate, LocalDate endDate) { - super(version, code, name); + super(reportId, version, code, name); this.startDate = startDate; this.endDate = endDate; } 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 index ac062d5fb..ff587a3b4 100644 --- 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 @@ -2,19 +2,18 @@ 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.ReportWithPeriod; +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; import java.time.LocalDate; import java.time.LocalDateTime; @XStreamAlias("netPositionBank") public class ReportPA_BT2_B extends ReportWithPeriod { - @XStreamAsAttribute @XStreamAlias("clearingMemberCategory") private String clearingMemberCategory; - @XStreamAlias("liabilitiesClaimsAssets_fullName") private String liabilitiesClaimsAssetsFullName; @@ -73,7 +72,8 @@ public class ReportPA_BT2_B extends ReportWithPeriod { String claimsAmount, String liabilitiesAmount, String paymentAmount) { - super("0.0.1", + super(ReportId.PA_BT2_B, + "0.0.1", "BT2", "Отчет по нетто-позиции участника клиринга в секции МКР (Уполномоченный банк)", startDate, 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 index e10ac91bb..dfae151ed 100644 --- 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 @@ -2,19 +2,18 @@ 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.ReportWithPeriod; +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; import java.time.LocalDate; import java.time.LocalDateTime; @XStreamAlias("netPositionInitiator") public class ReportPA_BT2_IV extends ReportWithPeriod { - @XStreamAsAttribute @XStreamAlias("clearingMemberCategory") private String clearingMemberCategory; - @XStreamAlias("liabilitiesClaimsAssets_fullName") private String liabilitiesClaimsAssetsFullName; @@ -73,7 +72,8 @@ public class ReportPA_BT2_IV extends ReportWithPeriod { String claimsAmount, String liabilitiesAmount, String paymentAmount) { - super("0.0.1", + super(ReportId.PA_BT2_IV, + "0.0.1", "BT2", "Отчет по нетто-позиции участника клиринга в секции МКР (Вкладчик)", startDate, diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_13/Report_BT13_11.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_13/Report_BT13_11.java index 893c204ab..c2e631be7 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_13/Report_BT13_11.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_13/Report_BT13_11.java @@ -3,6 +3,7 @@ package ru.spcex.clearing.reports.reports.bt_13; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; import ru.spcex.clearing.reports.reports.AbstractReport; +import ru.spcex.clearing.reports.reports.ReportId; import java.time.LocalDate; import java.time.LocalDateTime; @@ -18,7 +19,6 @@ public class Report_BT13_11 extends AbstractReport { @XStreamAlias("time") private LocalTime time; - @XStreamAlias("inDocumentJournal_registrationDate") private String inDocumentJournalRegistrationDate; @@ -74,7 +74,7 @@ public class Report_BT13_11 extends AbstractReport { String inDocumentJournalDossierNumber, String inDocumentJournalComment, String inDocumentJournalReceiptDate) { - super("0.0.1", "BT 13.11", "Журнал Входящих документов"); + super(ReportId.BT13_11, "0.0.1", "BT 13.11", "Журнал Входящих документов"); this.date = date; this.time = time; this.inDocumentJournalRegistrationDate = inDocumentJournalRegistrationDate; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_13/Report_BT13_12.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_13/Report_BT13_12.java index de765fe63..34a98c0ac 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_13/Report_BT13_12.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_13/Report_BT13_12.java @@ -3,6 +3,7 @@ package ru.spcex.clearing.reports.reports.bt_13; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; import ru.spcex.clearing.reports.reports.AbstractReport; +import ru.spcex.clearing.reports.reports.ReportId; import java.time.LocalDate; import java.time.LocalDateTime; @@ -18,7 +19,6 @@ public class Report_BT13_12 extends AbstractReport { @XStreamAlias("time") private LocalTime time; - @XStreamAlias("outDocumentJournal_registrationDate") private String outDocumentJournalRegistrationDate; @@ -70,41 +70,7 @@ public class Report_BT13_12 extends AbstractReport { String outDocumentJournalAmount, String outDocumentJournalDossierNumber, String outDocumentJournalPostDate) { - super("0.0.1", "BT 13.12", "Журнал Исходящих документов"); - this.date = date; - this.time = time; - this.outDocumentJournalRegistrationDate = outDocumentJournalRegistrationDate; - this.outDocumentJournalRegistrationTime = outDocumentJournalRegistrationTime; - this.outDocumentJournalRegistrationNumber = outDocumentJournalRegistrationNumber; - this.outDocumentJournalDocumentName = outDocumentJournalDocumentName; - this.outDocumentJournalAddress = outDocumentJournalAddress; - this.outDocumentJournalQuantity = outDocumentJournalQuantity; - this.outDocumentJournalClearingCode = outDocumentJournalClearingCode; - this.outDocumentJournalCourierType = outDocumentJournalCourierType; - this.outDocumentJournal_emailDate = outDocumentJournal_emailDate; - this.outDocumentJournalAmount = outDocumentJournalAmount; - this.outDocumentJournalDossierNumber = outDocumentJournalDossierNumber; - this.outDocumentJournalPostDate = outDocumentJournalPostDate; - } - - public Report_BT13_12(String version, - String code, - String name, - LocalDate date, - LocalTime time, - String outDocumentJournalRegistrationDate, - String outDocumentJournalRegistrationTime, - String outDocumentJournalRegistrationNumber, - String outDocumentJournalDocumentName, - String outDocumentJournalAddress, - String outDocumentJournalQuantity, - String outDocumentJournalClearingCode, - String outDocumentJournalCourierType, - String outDocumentJournal_emailDate, - String outDocumentJournalAmount, - String outDocumentJournalDossierNumber, - String outDocumentJournalPostDate) { - super(version, code, name); + super(ReportId.BT13_12, "0.0.1", "BT 13.12", "Журнал Исходящих документов"); this.date = date; this.time = time; this.outDocumentJournalRegistrationDate = outDocumentJournalRegistrationDate; 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 3dc1d5737..79424f6ed 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 @@ -3,6 +3,7 @@ package ru.spcex.clearing.reports.reports.bt_16_5; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; import ru.spcex.clearing.reports.reports.AbstractReport; +import ru.spcex.clearing.reports.reports.ReportId; import java.time.LocalDate; import java.time.LocalDateTime; @@ -57,7 +58,10 @@ public class Report_BT16_5 extends AbstractReport { String accountBalanceDebitAmount, String accountBalanceCreditAmount, String accountBalanceCloseAmount) { - super("0.0.1", "BT 16.5", "Отчет о денежных средствах на счете внутреннего учета (клиринговом регистре) Участника клиринга"); + super(ReportId.BT16_5, + "0.0.1", + "BT 16.5", + "Отчет о денежных средствах на счете внутреннего учета (клиринговом регистре) Участника клиринга"); this.date = date; this.time = time; this.clearingHouse = clearingHouse; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_1/ReportBR_0420315_P1.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_1/ReportBR_0420315_P1.java index 47600c673..4e39e10ff 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_1/ReportBR_0420315_P1.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_1/ReportBR_0420315_P1.java @@ -2,6 +2,7 @@ package ru.spcex.clearing.reports.reports.bt_17_1; 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.ReportWithClearingStatus; import java.time.LocalDate; @@ -28,7 +29,8 @@ public class ReportBR_0420315_P1 extends ReportWithClearingStatus { String destination, String clearingMemberCategory, String clearingStatus) { - super("0.0.1", + super(ReportId.BR_0420315_P1, + "0.0.1", "0420315", "Сведения об исполненных обязательствах, допущенных к клирингу, за отчетный период, часть 1", startDate, diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_1/ReportBR_0420315_P2.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_1/ReportBR_0420315_P2.java index a7c87f98d..8fe84ff00 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_1/ReportBR_0420315_P2.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_1/ReportBR_0420315_P2.java @@ -2,7 +2,8 @@ package ru.spcex.clearing.reports.reports.bt_17_1; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.ReportWithPeriod; +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; import java.time.LocalDate; import java.time.LocalDateTime; @@ -21,7 +22,8 @@ public class ReportBR_0420315_P2 extends ReportWithPeriod { String destination, String contractQty, String liabilitiesAmount) { - super("0.0.1", + super(ReportId.BR_0420315_P2, + "0.0.1", "0420315", "Сведения об исполненных обязательствах, допущенных к клирингу, за отчетный период, часть 2", startDate, diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_2/ReportBR_0420317.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_2/ReportBR_0420317.java index 2357530a0..71ef299a7 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_2/ReportBR_0420317.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_2/ReportBR_0420317.java @@ -2,7 +2,8 @@ package ru.spcex.clearing.reports.reports.bt_17_2; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.ReportWithPeriod; +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; import java.time.LocalDate; import java.time.LocalDateTime; @@ -19,7 +20,8 @@ public class ReportBR_0420317 extends ReportWithPeriod { private final List rows = new ArrayList<>(); public ReportBR_0420317(LocalDate startDate, LocalDate endDate, String destination) { - super("0.0.1", + super(ReportId.BR_0420317, + "0.0.1", "0420317", "Сведения о предоставлении, прекращении, приостановке," + " возобновлении допуска к клиринговому обслуживанию", diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_3/ReportBR_0420318.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_3/ReportBR_0420318.java index 73dc19c81..507b07940 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_3/ReportBR_0420318.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_3/ReportBR_0420318.java @@ -2,6 +2,7 @@ package ru.spcex.clearing.reports.reports.bt_17_3; 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.ReportWithClearingStatus; import java.time.LocalDate; @@ -19,7 +20,8 @@ public class ReportBR_0420318 extends ReportWithClearingStatus { private final List rows = new ArrayList<>(); public ReportBR_0420318(LocalDate startDate, LocalDate endDate, String clearingStatus, String destination) { - super("0.0.1", + super(ReportId.BR_0420318, + "0.0.1", "0420318", "Сведения о неисполненных обязательствах", startDate, diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_4/ReportBR_0420314_P1.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_4/ReportBR_0420314_P1.java index 0940041db..e59e2757c 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_4/ReportBR_0420314_P1.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_4/ReportBR_0420314_P1.java @@ -2,6 +2,7 @@ package ru.spcex.clearing.reports.reports.bt_17_4; 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.ReportWithClearingStatus; import java.time.LocalDate; @@ -19,7 +20,8 @@ public class ReportBR_0420314_P1 extends ReportWithClearingStatus { private final List rows = new ArrayList<>(); public ReportBR_0420314_P1(LocalDate startDate, LocalDate endDate, String clearingStatus, String destination) { - super("0.0.1", + super(ReportId.BR_0420314_P1, + "0.0.1", "0420314", "Сведения об УК и операциях, проведенных по торговым счетам, часть 1", startDate, diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_4/ReportBR_0420314_P2.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_4/ReportBR_0420314_P2.java index 478698b15..10bfcfb72 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_4/ReportBR_0420314_P2.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_4/ReportBR_0420314_P2.java @@ -2,7 +2,8 @@ package ru.spcex.clearing.reports.reports.bt_17_4; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.ReportWithPeriod; +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; import java.time.LocalDate; import java.time.LocalDateTime; @@ -23,7 +24,8 @@ public class ReportBR_0420314_P2 extends ReportWithPeriod { private final List rows = new ArrayList<>(); public ReportBR_0420314_P2(LocalDate startDate, LocalDate endDate, String transactionStatus, String destination) { - super("0.0.1", + super(ReportId.BR_0420314_P2, + "0.0.1", "0420314", "Сведения об УК и операциях, проведенных по торговым счетам, часть 2", startDate, diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P1.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P1.java index dce10d12a..13f432afb 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P1.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P1.java @@ -2,7 +2,8 @@ package ru.spcex.clearing.reports.reports.bt_17_5; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.ReportWithPeriod; +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; import java.time.LocalDate; import java.time.LocalDateTime; @@ -22,7 +23,8 @@ public class ReportBR_0420312_P1 extends ReportWithPeriod { public ReportBR_0420312_P1(LocalDate startDate, LocalDate endDate, String destination) { - super("0.0.1", + super(ReportId.BR_0420312_P1, + "0.0.1", "0420312", "Сведения о клиринговом обеспечении, часть 1", startDate, diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P10.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P10.java index 0f79fe269..04dc1bc7f 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P10.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P10.java @@ -2,7 +2,8 @@ package ru.spcex.clearing.reports.reports.bt_17_5; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.ReportWithPeriod; +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; import java.time.LocalDate; import java.time.LocalDateTime; @@ -20,7 +21,8 @@ public class ReportBR_0420312_P10 extends ReportWithPeriod { LocalDate endDate, String destination, String liabilitiesAmount) { - super("0.0.5", + super(ReportId.BR_0420312_P10, + "0.0.5", "0420312", "Сведения о клиринговом обеспечении, часть 10", startDate, diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P2.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P2.java index 84dbf562d..4623ebdcf 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P2.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P2.java @@ -2,7 +2,8 @@ package ru.spcex.clearing.reports.reports.bt_17_5; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.ReportWithPeriod; +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; import java.time.LocalDate; import java.time.LocalDateTime; @@ -21,7 +22,8 @@ public class ReportBR_0420312_P2 extends ReportWithPeriod { String destination, String liabilitiesClaimsAssetsCompanyId, String liabilitiesClaimsAssetsLiabilities) { - super("0.0.1", + super(ReportId.BR_0420312_P2, + "0.0.1", "0420312", "Сведения о клиринговом обеспечении, часть 2", startDate, diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P3.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P3.java index 97442b1a9..466573a88 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P3.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P3.java @@ -2,7 +2,8 @@ package ru.spcex.clearing.reports.reports.bt_17_5; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.ReportWithPeriod; +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; import java.time.LocalDate; import java.time.LocalDateTime; @@ -21,7 +22,8 @@ public class ReportBR_0420312_P3 extends ReportWithPeriod { String destination, String liabilitiesClaimsAssetsCompanyId, String liabilitiesClaimsAssetsLiabilities) { - super("0.0.5", + super(ReportId.BR_0420312_P3, + "0.0.5", "0420312", "Сведения о клиринговом обеспечении, часть 3", startDate, diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P4.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P4.java index d4725b978..89aeb0761 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P4.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P4.java @@ -2,7 +2,8 @@ package ru.spcex.clearing.reports.reports.bt_17_5; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.ReportWithPeriod; +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; import java.time.LocalDate; import java.time.LocalDateTime; @@ -20,7 +21,8 @@ public class ReportBR_0420312_P4 extends ReportWithPeriod { LocalDate endDate, String destination, String liabilitiesAmount) { - super("0.0.5", + super(ReportId.BR_0420312_P4, + "0.0.5", "0420312", "Сведения о клиринговом обеспечении, часть 4", startDate, diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P5.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P5.java index 1af1850eb..e3117b3b9 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P5.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P5.java @@ -2,7 +2,8 @@ package ru.spcex.clearing.reports.reports.bt_17_5; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.ReportWithPeriod; +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; import java.time.LocalDate; import java.time.LocalDateTime; @@ -20,7 +21,8 @@ public class ReportBR_0420312_P5 extends ReportWithPeriod { LocalDate endDate, String destination, String liabilitiesAmount) { - super("0.0.5", + super(ReportId.BR_0420312_P5, + "0.0.5", "0420312", "Сведения о клиринговом обеспечении, часть 5", startDate, diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P6.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P6.java index 6b5126f7e..997a7243b 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P6.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P6.java @@ -2,7 +2,8 @@ package ru.spcex.clearing.reports.reports.bt_17_5; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.ReportWithPeriod; +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; import java.time.LocalDate; import java.time.LocalDateTime; @@ -20,7 +21,8 @@ public class ReportBR_0420312_P6 extends ReportWithPeriod { LocalDate endDate, String destination, String liabilitiesAmount) { - super("0.0.5", + super(ReportId.BR_0420312_P6, + "0.0.5", "0420312", "Сведения о клиринговом обеспечении, часть 6", startDate, diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P7.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P7.java index 81b539868..5c7e6523b 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P7.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P7.java @@ -2,7 +2,8 @@ package ru.spcex.clearing.reports.reports.bt_17_5; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.ReportWithPeriod; +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; import java.time.LocalDate; import java.time.LocalDateTime; @@ -20,7 +21,8 @@ public class ReportBR_0420312_P7 extends ReportWithPeriod { LocalDate endDate, String destination, String liabilitiesAmount) { - super("0.0.5", + super(ReportId.BR_0420312_P7, + "0.0.5", "0420312", "Сведения о клиринговом обеспечении, часть 7", startDate, diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P8.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P8.java index 563ffc599..686540b2f 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P8.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P8.java @@ -2,7 +2,8 @@ package ru.spcex.clearing.reports.reports.bt_17_5; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.ReportWithPeriod; +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; import java.time.LocalDate; import java.time.LocalDateTime; @@ -26,7 +27,8 @@ public class ReportBR_0420312_P8 extends ReportWithPeriod { String companySymbolValue, String companyInfoCountryCode, String clearingMemberCategoryClearingMemberCategory) { - super("0.0.5", + super(ReportId.BR_0420312_P8, + "0.0.5", "0420312", "Сведения о клиринговом обеспечении, часть 8", startDate, diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P9.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P9.java index 3438b9d05..5973b8bbc 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P9.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P9.java @@ -2,7 +2,8 @@ package ru.spcex.clearing.reports.reports.bt_17_5; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.ReportWithPeriod; +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; import java.time.LocalDate; import java.time.LocalDateTime; @@ -23,7 +24,8 @@ public class ReportBR_0420312_P9 extends ReportWithPeriod { String liabilitiesClaimsAssetsCompanyId, String liabilitiesClaimsMoneyCurrencyCode, String liabilitiesClaimsAssetsLiabilities) { - super("0.0.5", + super(ReportId.BR_0420312_P9, + "0.0.5", "0420312", "Сведения о клиринговом обеспечении, часть 9", startDate, diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/QCommandExecutor.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/QCommandExecutor.java index a093f6eec..90b95ed39 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/QCommandExecutor.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/QCommandExecutor.java @@ -1,27 +1,28 @@ package ru.spcex.clearing.reports.services; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.InitializingBean; -import ru.spcex.clearing.platform.messaging.service.QueueConsumer; - import org.apache.kafka.clients.consumer.Consumer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.InitializingBean; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; -import ru.spcex.clearing.platform.messaging.domain.Consts; -//import ru.spcex.clearing.platform.messaging.domain.cud.balance.ExportToFileRequest; todo use class? +import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportWithPeriodRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; -import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; +import ru.spcex.clearing.reports.reports.AbstractReport; +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.services.builders.XMLReportBuilder; import ru.spcex.platform.enumeration.Task; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgId; import ru.spcex.platform.imdg.api.ImdgProvider; +import java.io.File; +import java.io.IOException; +import java.time.LocalDate; +import java.util.HashMap; import java.util.List; +import java.util.Map; public class QCommandExecutor extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); + private final Map collectorForReport = new HashMap<>(); // private final ImdgId idGenerator; // private final KafkaSender kafkaReqProducer; @@ -29,21 +30,45 @@ public class QCommandExecutor extends QueueConsumer implements InitializingBean public QCommandExecutor(Consumer kafkaQueue, ImdgProvider imdgProvider, List listOfCollectors) { super(kafkaQueue); -// todo constructor } @Override public void afterPropertiesSet() { log.debug("Init queue listener {}", getClass().getSimpleName()); -// callback(Object.class) -// .setConsumer(this::newReportDo) -// .forDestination(Task.getVerification!!!.topic(), callbacks::put); // todo здесь надо указать команду из ТЗ или согласовать с фронтэндом -// init(); + callback(ReportWithPeriodRequest.class) + .setConsumer(this::newReportWithPeriod) + .forDestination(Task.createReport.topic(), callbacks::put); } - private void newReportDo(BaseRequest userRequest) { - log.debug("newReportDo request received"); - // todo logic + private void newReportWithPeriod(BaseRequest reportRequest) { + log.debug("newReportWithPeriod request received"); + + ReportWithPeriodRequest request = reportRequest.getRequestPayload(); + + if (request.getReportId() == null || request.getReportId().isBlank()) + throw new IllegalStateException("ReportID is empty"); + ReportId reportId = ReportId.valueOf(request.getReportId()); + ReportDataCollector reportDataCollector = collectorForReport.get(reportId); + if (reportDataCollector == null) + throw new IllegalStateException("Collector for ReportID " + reportId + " not implemented yet"); + + if (request.getStartDate() == null || request.getEndDate() == null) + throw new IllegalStateException("StartDate or EndDate is null"); + LocalDate startDate = request.getStartDate(); + LocalDate endDate = request.getEndDate(); + if (startDate.isAfter(endDate)) throw new IllegalStateException("StartDate > EndDate"); + + XMLReportBuilder reportBuilder = new XMLReportBuilder(reportDataCollector.getReportClass()); + AbstractReport report = reportDataCollector.collectReportWithPeriod(startDate, endDate); + File reportFile = null; + try { + reportFile = reportBuilder.createReport(report); + } catch (IOException e) { + } + + if (reportFile != null) { + // put file in folder + } log.debug("successfully processed"); } } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/builders/DOCXReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/builders/DOCXReportBuilder.java index ebf56d43d..2788ca791 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/builders/DOCXReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/builders/DOCXReportBuilder.java @@ -7,10 +7,16 @@ import ru.spcex.clearing.reports.reports.AbstractReport; import java.io.File; import java.io.IOException; -public abstract class DOCXReportBuilder extends FileReportBuilder { +public class DOCXReportBuilder extends FileReportBuilder { private final Logger log = LoggerFactory.getLogger(getClass()); - protected DOCXReportBuilder(Class reportClass, File templateResource) throws IOException { + protected DOCXReportBuilder(Class reportClass, File templateResource) throws IOException { super(reportClass); } + + @Override + public File createReport(AbstractReport report) throws IOException { + // todo implement + return null; + } } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/builders/FileReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/builders/FileReportBuilder.java index d22e38111..dcde34308 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/builders/FileReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/builders/FileReportBuilder.java @@ -2,10 +2,13 @@ package ru.spcex.clearing.reports.services.builders; import ru.spcex.clearing.reports.reports.AbstractReport; -public abstract class FileReportBuilder { - protected final Class reportClass; +import java.io.File; +import java.io.IOException; - protected FileReportBuilder(Class reportClass) { +public abstract class FileReportBuilder { + protected final Class reportClass; + + protected FileReportBuilder(Class reportClass) { this.reportClass = reportClass; } @@ -13,4 +16,6 @@ public abstract class FileReportBuilder { if (System.getProperty("os.name").toLowerCase().contains("windows")) reportName = reportName.replace(":", "_"); return reportName + extension; } + + public abstract File createReport(AbstractReport report) throws IOException; } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/builders/XMLReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/builders/XMLReportBuilder.java index 0d25b8cf6..61995cab6 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/builders/XMLReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/builders/XMLReportBuilder.java @@ -6,30 +6,24 @@ import com.thoughtworks.xstream.io.xml.XppDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ru.spcex.clearing.reports.reports.AbstractReport; -import ru.spcex.clearing.reports.services.ReportDataCollector; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; -import java.time.LocalDate; import java.time.LocalDateTime; -public class XMLReportBuilder extends FileReportBuilder { +public class XMLReportBuilder extends FileReportBuilder { private final Logger log = LoggerFactory.getLogger(getClass()); - protected final XStream xStream; - protected final ReportDataCollector collector; - - public XMLReportBuilder(Class reportClass, ReportDataCollector collector) { + public XMLReportBuilder(Class reportClass) { super(reportClass); - this.collector = collector; this.xStream = new XStream(new XppDriver(new NoNameCoder())); xStream.processAnnotations(reportClass); } - public File createReport(LocalDate startDate, LocalDate endDate) throws IOException { - R report = collector.collectReportWithPeriod(startDate, endDate); + @Override + public File createReport(AbstractReport report) throws IOException { String reportName = report.getReportName(LocalDateTime.now()); String reportFileName = makeFileName(reportName, ".xml"); diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java index 8233a188e..3d5a6ddcd 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java @@ -14,7 +14,8 @@ public enum Task implements IEnumKey { startPostClearing("SPOC"),// Запуск постклиринга createOrder("CORD"), createOrderConfirm("CORC"), - getAllBalance("GALB"); + getAllBalance("GALB"), + createReport("RPRT");// Создание отчёта (report-service) private final String key; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequest.java new file mode 100644 index 000000000..17952def1 --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequest.java @@ -0,0 +1,23 @@ +package ru.spcex.clearing.platform.messaging.domain.cud.reports; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Запрос отчёта (без параметров) report-service + */ +public class ReportRequest { + /** + * Идентификатор отчёта + * см. {@link ru.spcex.clearing.reports.reports.ReportsEnum} + */ + @JsonProperty + protected String reportId; + + public String getReportId() { + return reportId; + } + + public void setReportId(String reportId) { + this.reportId = reportId; + } +} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportWithPeriodRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportWithPeriodRequest.java new file mode 100644 index 000000000..4f4c80c75 --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportWithPeriodRequest.java @@ -0,0 +1,40 @@ +package ru.spcex.clearing.platform.messaging.domain.cud.reports; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer; +import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; + +import java.time.LocalDate; + +/** + * Запрос отчёта с периодом report-service + */ +public class ReportWithPeriodRequest extends ReportRequest { + @JsonSerialize(using = LocalDateSerializer.class) + @JsonDeserialize(using = LocalDateDeserializer.class) + @JsonProperty + protected LocalDate startDate; + + @JsonSerialize(using = LocalDateSerializer.class) + @JsonDeserialize(using = LocalDateDeserializer.class) + @JsonProperty + protected LocalDate endDate; + + public LocalDate getStartDate() { + return startDate; + } + + public void setStartDate(LocalDate startDate) { + this.startDate = startDate; + } + + public LocalDate getEndDate() { + return endDate; + } + + public void setEndDate(LocalDate endDate) { + this.endDate = endDate; + } +}