diff --git a/clearing-parent/reports-service/pom.xml b/clearing-parent/reports-service/pom.xml
index 457291ada..969ee84ed 100644
--- a/clearing-parent/reports-service/pom.xml
+++ b/clearing-parent/reports-service/pom.xml
@@ -24,6 +24,12 @@
org.springframework.boot
spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
org.springframework.boot
diff --git a/clearing-parent/reports-service/readme.md b/clearing-parent/reports-service/readme.md
index 995cd56a8..4ab9323ef 100644
--- a/clearing-parent/reports-service/readme.md
+++ b/clearing-parent/reports-service/readme.md
@@ -48,4 +48,9 @@ DAILY - все ежедневные
reports-service.kafka-consumer - группа настроек для подключения к очереди kafka
-и другие настройки.
\ No newline at end of file
+и другие настройки.
+
+Рабочие папки
+-------------
+
+* Из настройки reports-service.ReportModuleOut=./report_out - путь к папке для результатов генерации отчётов
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/notifications/NotificationBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/notifications/NotificationBuilder.java
index 56cdad6b8..9773f4a1e 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/notifications/NotificationBuilder.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/notifications/NotificationBuilder.java
@@ -1,19 +1,20 @@
package ru.spcex.clearing.reports.notifications;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import ru.spcex.clearing.reports.exceptions.ConfigException;
import ru.spcex.clearing.reports.services.DOCXService;
import java.io.File;
import java.net.URL;
import java.time.LocalDate;
-import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.TextStyle;
-import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
public abstract class NotificationBuilder {
+ protected final Logger log = LoggerFactory.getLogger(getClass());
protected final DateTimeFormatter filenameDateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy'T'HH:mm:ss");
protected final DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
protected final DOCXService docxService;
@@ -41,17 +42,17 @@ public abstract class NotificationBuilder {
}
- protected File getTemplateFile() {
- File templateFile;
+ protected URL getTemplateFile() {
String templateResourceName = getTemplateResourceName();
+ URL resource = null;
try {
- URL resource = getClass().getClassLoader().getResource(templateResourceName);
+ resource = getClass().getClassLoader().getResource(templateResourceName);
if (resource == null) throw new Exception();
- templateFile = new File(resource.toURI());
} catch (Exception e) {
- throw new ConfigException("Can't read template resource " + templateResourceName, e);
+ throw new ConfigException("Can't read template resource " + templateResourceName +" (URL \""+resource+"\")", e);
}
- return templateFile;
+ log.info("Use resource: {}", resource);
+ return resource;
}
protected String normalizeFilenameForOS(String filename) {
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/DOCXService.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/DOCXService.java
index 02e1813eb..67cd092ea 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/DOCXService.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/DOCXService.java
@@ -5,6 +5,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
+import java.net.URL;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -43,7 +44,7 @@ public class DOCXService {
/**
* Файл шаблона
*/
- private File templateFile;
+ private URL templateFile;
/**
* Флаг инициализации
@@ -53,13 +54,14 @@ public class DOCXService {
/**
* (ре)Инициализация сервиса
*/
- public boolean init(File templateFile, String keyPattern) {
+ public boolean init(URL templateFile, String keyPattern) {
initialized = false;
- if (templateFile == null || !templateFile.exists() || !templateFile.isFile()) {
- log.warn("Invalid templateFile");
+ if (templateFile == null /*|| !templateFile.exists() || !templateFile.isFile()*/) {
+ log.warn("Invalid templateFile {}", templateFile);
return false;
}
this.templateFile = templateFile;
+ log.debug("{} use template from {}", getClass().getSimpleName(), templateFile);
if (keyPattern != null) {
try {
this.keyPattern = Pattern.compile(keyPattern);
@@ -108,7 +110,7 @@ public class DOCXService {
}
}
- try (InputStream inputStream = new FileInputStream(templateFile);
+ try (InputStream inputStream = templateFile.openStream(); //new FileInputStream(templateFile);
OutputStream outputStream = new FileOutputStream(outputFile)) {
XWPFDocument doc = new XWPFDocument(inputStream);
@@ -125,7 +127,7 @@ public class DOCXService {
boolean checkOk = checkIntersection(valuesMap, notPresentInMap);
if (!checkOk) {
log.error("Can't insert values in file {}. Keys not in map: {}.",
- templateFile.getAbsolutePath(),
+ templateFile.toExternalForm()/*templateFile.getAbsolutePath()*/,
String.join(", ", notPresentInMap));
return false;
}
diff --git a/clearing-parent/reports-service/src/main/resources/application.properties b/clearing-parent/reports-service/src/main/resources/application.properties
index ffa1ebe50..ed2aa2053 100644
--- a/clearing-parent/reports-service/src/main/resources/application.properties
+++ b/clearing-parent/reports-service/src/main/resources/application.properties
@@ -1,6 +1,3 @@
-server.port=8080
-server.servlet.context-path=/reports_service
-spring.main.web-application-type=servlet
reports-service.kafka-consumer.bootstrap-servers=localhost:9092
diff --git a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/DOCXServiceTest.java b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/DOCXServiceTest.java
index ffd640744..2cfff9e9d 100644
--- a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/DOCXServiceTest.java
+++ b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/DOCXServiceTest.java
@@ -19,7 +19,7 @@ class DOCXServiceTest {
valuesMap.put("${test3}", "======== TEST 3 =========");
DOCXService service = new DOCXService();
- service.init(new File(getClass().getClassLoader().getResource("REC.ACTV_TEST.docx").getPath()), null);
+ service.init(getClass().getClassLoader().getResource("REC.ACTV_TEST.docx"), null);
service.insertValues(new File("output.docx"),
valuesMap,
false);