kafka reports
This commit is contained in:
parent
5ce07b5404
commit
59a93ee43f
33 changed files with 248 additions and 120 deletions
|
|
@ -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<? extends AbstractReport> 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 если будет запущен как сервис, сделать выход опционально, по другому.
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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<Info_0420317> rows = new ArrayList<>();
|
||||
|
||||
public ReportBR_0420317(LocalDate startDate, LocalDate endDate, String destination) {
|
||||
super("0.0.1",
|
||||
super(ReportId.BR_0420317,
|
||||
"0.0.1",
|
||||
"0420317",
|
||||
"Сведения о предоставлении, прекращении, приостановке," +
|
||||
" возобновлении допуска к клиринговому обслуживанию",
|
||||
|
|
|
|||
|
|
@ -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<Info_0420318> 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,
|
||||
|
|
|
|||
|
|
@ -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<Info_0420314_P1> 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,
|
||||
|
|
|
|||
|
|
@ -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<Info_0420314_P2> 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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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<ReportId, ReportDataCollector> 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<String, Object> kafkaQueue, ImdgProvider imdgProvider,
|
||||
List<ReportDataCollector> 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<Object> userRequest) {
|
||||
log.debug("newReportDo request received");
|
||||
// todo logic
|
||||
private void newReportWithPeriod(BaseRequest<ReportWithPeriodRequest> 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");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,10 +7,16 @@ import ru.spcex.clearing.reports.reports.AbstractReport;
|
|||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
public abstract class DOCXReportBuilder<R extends AbstractReport> extends FileReportBuilder<R> {
|
||||
public class DOCXReportBuilder extends FileReportBuilder {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
||||
protected DOCXReportBuilder(Class<R> reportClass, File templateResource) throws IOException {
|
||||
protected DOCXReportBuilder(Class<? extends AbstractReport> reportClass, File templateResource) throws IOException {
|
||||
super(reportClass);
|
||||
}
|
||||
|
||||
@Override
|
||||
public File createReport(AbstractReport report) throws IOException {
|
||||
// todo implement
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,10 +2,13 @@ package ru.spcex.clearing.reports.services.builders;
|
|||
|
||||
import ru.spcex.clearing.reports.reports.AbstractReport;
|
||||
|
||||
public abstract class FileReportBuilder<R extends AbstractReport> {
|
||||
protected final Class<R> reportClass;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
protected FileReportBuilder(Class<R> reportClass) {
|
||||
public abstract class FileReportBuilder {
|
||||
protected final Class<? extends AbstractReport> reportClass;
|
||||
|
||||
protected FileReportBuilder(Class<? extends AbstractReport> reportClass) {
|
||||
this.reportClass = reportClass;
|
||||
}
|
||||
|
||||
|
|
@ -13,4 +16,6 @@ public abstract class FileReportBuilder<R extends AbstractReport> {
|
|||
if (System.getProperty("os.name").toLowerCase().contains("windows")) reportName = reportName.replace(":", "_");
|
||||
return reportName + extension;
|
||||
}
|
||||
|
||||
public abstract File createReport(AbstractReport report) throws IOException;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<R extends AbstractReport> extends FileReportBuilder<R> {
|
||||
public class XMLReportBuilder extends FileReportBuilder {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
||||
protected final XStream xStream;
|
||||
|
||||
protected final ReportDataCollector<R> collector;
|
||||
|
||||
public XMLReportBuilder(Class<R> reportClass, ReportDataCollector<R> collector) {
|
||||
public XMLReportBuilder(Class<? extends AbstractReport> 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");
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue