diff --git a/redaction-report-service-v1/redaction-report-service-api-v1/pom.xml b/redaction-report-service-v1/redaction-report-service-api-v1/pom.xml
index bada9dd..720e510 100644
--- a/redaction-report-service-v1/redaction-report-service-api-v1/pom.xml
+++ b/redaction-report-service-v1/redaction-report-service-api-v1/pom.xml
@@ -17,7 +17,7 @@
com.iqser.red.service
redaction-service-api-v1
- 1.5.4
+ 1.5.8
diff --git a/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/MultiFileRedactionLog.java b/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/MultiFileRedactionLog.java
index 8d0bac9..b30d588 100644
--- a/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/MultiFileRedactionLog.java
+++ b/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/MultiFileRedactionLog.java
@@ -16,4 +16,6 @@ public class MultiFileRedactionLog {
private List redactionLogs = new ArrayList<>();
+ private String template;
+
}
diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java
index 9e0787b..c481bd4 100644
--- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java
+++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java
@@ -15,6 +15,7 @@ import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
+import org.apache.xmlbeans.XmlCursor;
import org.springframework.stereotype.Service;
import com.iqser.red.service.configuration.v1.api.model.LegalBasisMapping;
@@ -32,18 +33,30 @@ import lombok.RequiredArgsConstructor;
public class ReportGenerationService {
private final LegalBasisMappingClient legalBasisMappingClient;
- private byte[] template;
+ private byte[] efsaTemplate;
+ private byte[] syngentaTemplate;
@PostConstruct
public void init() {
- template = ResourceLoader.load("templates/EFSA Template 1.docx");
+ efsaTemplate = ResourceLoader.load("templates/EFSA Template.docx");
+ syngentaTemplate = ResourceLoader.load("templates/Syngenta Template.docx");
}
public byte[] generateReport(MultiFileRedactionLog multiFileRedactionLog) {
+ byte[] template;
+
+ if(multiFileRedactionLog.getTemplate().equals("EFSA Template")){
+ template = efsaTemplate;
+ } else if(multiFileRedactionLog.getTemplate().equals("Syngenta Template")){
+ template = syngentaTemplate;
+ } else {
+ template = syngentaTemplate;
+ }
+
try (ByteArrayInputStream is = new ByteArrayInputStream(template)) {
XWPFDocument doc = new XWPFDocument(is);
LegalBasisMapping legalBasisMapping = legalBasisMappingClient.getLegalBasisMapping();
@@ -60,13 +73,13 @@ public class ReportGenerationService {
XWPFTable table = doc.getTables().get(0);
- multiFileRedactionLog.getRedactionLogs().forEach(fileRedactionLog -> {
+ XmlCursor cursor = table.getCTTbl().newCursor();
+ XWPFParagraph newParagraph = doc.insertNewParagraph(cursor);
+ XWPFRun run = newParagraph.createRun();
+ run.setText("Applied rules: EFSA 1 (Vertebrate Authors)");
+ run.setFontSize(10);
- XWPFTableRow singelColumnRow = table.createRow();
- singelColumnRow.getCell(3).getCTTc().newCursor().removeXml();
- singelColumnRow.getCell(2).getCTTc().newCursor().removeXml();
- singelColumnRow.getCell(1).getCTTc().newCursor().removeXml();
- setText(singelColumnRow.getCell(0), fileRedactionLog.getFilename());
+ multiFileRedactionLog.getRedactionLogs().forEach(fileRedactionLog -> {
fileRedactionLog.getRedactionLogEntry().forEach(entry -> {
@@ -94,10 +107,10 @@ public class ReportGenerationService {
.collect(Collectors.toList());
pages.forEach(page -> {
XWPFTableRow row = table.createRow();
- setText(row.getCell(0), String.valueOf(page));
- setText(row.getCell(1), entry.getSection());
- setText(row.getCell(2), entry.getLegalBasis());
- setText(row.getCell(3), reasonByLegalBasis.get(entry.getLegalBasis()));
+ setText(row.getCell(0), fileRedactionLog.getFilename());
+ setText(row.getCell(1), String.valueOf(page));
+ setText(row.getCell(2), entry.getSection());
+ setText(row.getCell(3), entry.getLegalBasis() + " " + reasonByLegalBasis.get(entry.getLegalBasis()));
});
}
});
diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/templates/EFSA Template 1.docx b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/templates/EFSA Template 1.docx
deleted file mode 100644
index e05d404..0000000
Binary files a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/templates/EFSA Template 1.docx and /dev/null differ
diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/templates/EFSA Template.docx b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/templates/EFSA Template.docx
new file mode 100644
index 0000000..723d370
Binary files /dev/null and b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/templates/EFSA Template.docx differ
diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/templates/Syngenta Template.docx b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/templates/Syngenta Template.docx
new file mode 100644
index 0000000..35e4c78
Binary files /dev/null and b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/templates/Syngenta Template.docx differ
diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java
index bb09d15..aae14be 100644
--- a/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java
+++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java
@@ -51,7 +51,7 @@ public class RedactionReportIntegrationTest {
RedactionLog redactionLog = objectMapper.readValue(redactionLogResource.getInputStream(), RedactionLog.class);
redactionLog.setFilename("TestFile");
- MultiFileRedactionLog multiFileRedactionLog = new MultiFileRedactionLog(List.of(redactionLog));
+ MultiFileRedactionLog multiFileRedactionLog = new MultiFileRedactionLog(List.of(redactionLog), "EFSA Template");
ReportResult reportResult = redactionReportController.generateReport(multiFileRedactionLog);