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 f95d0af68..19185ae84 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 @@ -1,18 +1,42 @@ package ru.spcex.clearing.reports; +import org.apache.commons.lang3.exception.ExceptionUtils; +import org.slf4j.Logger; 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.services.ReportDataCollector; import ru.spcex.clearing.reports.services.ReportsService; +import ru.spcex.clearing.reports.services.builders.XMLReportBuilder; +import ru.spcex.platform.imdg.api.ImdgProvider; + +import java.time.LocalDate; +import java.util.Map; @SpringBootApplication public class ReportsServiceApplication { public static void main(String[] args) { try { SpringApplicationBuilder builder = new SpringApplicationBuilder(ReportsServiceApplication.class); - builder.run(args); + ConfigurableApplicationContext context = builder.run(args); + + //todo это тест. Переписать код: + Logger log = LoggerFactory.getLogger(ReportsServiceApplication.class); + ImdgProvider imdg = context.getBean(ImdgProvider.class); + log.info("Wait IMDG..."); + imdg.waitAvailable(); + log.info("Run generate report."); + Map allReports = context.getBeansOfType(ReportDataCollector.class); + System.out.println(allReports); + for (ReportDataCollector collector:allReports.values()) { + XMLReportBuilder xmlReportBuilder = new XMLReportBuilder(collector.getReportClass(), collector); + LocalDate date2 = LocalDate.now(); + LocalDate date1 = LocalDate.of(date2.getYear(), date2.getMonth(), 1);//date2.minusMonths(1); + xmlReportBuilder.createReport(date1, date2); + } } catch (Throwable e) { - LoggerFactory.getLogger(ReportsServiceApplication.class).error("DBF-Loader start failed: {} -> {}", e.getClass().getSimpleName(), e.getMessage()); + LoggerFactory.getLogger(ReportsServiceApplication.class).error("DBF-Loader start failed: {} -> {}", e.getClass().getSimpleName(), ExceptionUtils.getStackTrace(e)); System.exit(-1); } ReportsService reportsService = new ReportsService(); diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportDataCollector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportDataCollector.java index 69101ef75..739c83759 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportDataCollector.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportDataCollector.java @@ -44,6 +44,7 @@ public abstract class ReportDataCollector { throw new IllegalArgumentException("deprecated"); } + abstract public Class getReportClass(); protected String toString(Long val) { if (val == null) return null; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/Bt17_1_P1_collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/Bt17_1_P1_collector.java index 073f8d7b2..a81b79c22 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/Bt17_1_P1_collector.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/Bt17_1_P1_collector.java @@ -135,4 +135,9 @@ public class Bt17_1_P1_collector extends ReportDataCollector getReportClass() { + return ReportBR_0420315_P1.class; + } } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/Bt17_1_P2_collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/Bt17_1_P2_collector.java index 9c3db398c..8bc56a177 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/Bt17_1_P2_collector.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/Bt17_1_P2_collector.java @@ -58,4 +58,9 @@ public class Bt17_1_P2_collector extends ReportDataCollector getReportClass() { + return ReportBR_0420315_P2.class; + } } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/Bt17_2_collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/Bt17_2_collector.java index 65aa7b0a8..6081329ea 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/Bt17_2_collector.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/Bt17_2_collector.java @@ -74,4 +74,9 @@ public class Bt17_2_collector extends ReportDataCollector { return String.format("REPBR.0420317.%s-%s.%s", DATE_FORMATTER.format(startDate), DATE_FORMATTER.format(endDate), DATE_TIME_FORMATTER.format(dateTimeNow)); } + + @Override + public Class getReportClass() { + return ReportBR_0420317.class; + } } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/Bt17_5_P1_collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/Bt17_5_P1_collector.java index d89f4383b..463f6ba36 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/Bt17_5_P1_collector.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/Bt17_5_P1_collector.java @@ -61,4 +61,9 @@ public class Bt17_5_P1_collector extends ReportDataCollector getReportClass() { + return ReportBR_0420312_P1.class; + } } diff --git a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportDataCollectorTest.java b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportDataCollectorTest.java index 9dbff0808..7341332e7 100644 --- a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportDataCollectorTest.java +++ b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportDataCollectorTest.java @@ -1,6 +1,7 @@ package ru.spcex.clearing.reports.services; import org.junit.jupiter.api.Test; +import ru.spcex.clearing.reports.reports.AbstractReport; import java.time.Instant; import java.time.LocalDate; @@ -28,7 +29,7 @@ class ReportDataCollectorTest extends ReportDataCollector { } @Override - public Object collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { + public AbstractReport collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { throw new IllegalStateException("test"); } @@ -36,4 +37,9 @@ class ReportDataCollectorTest extends ReportDataCollector { public String getFileName(LocalDate startDate, LocalDate endDate, LocalDateTime dateTimeNow) { throw new IllegalStateException("test"); } + + @Override + public Class getReportClass() { + return AbstractReport.class; + } } \ No newline at end of file