Pull request #106: RED-2747
Merge in RED/redaction-report-service from RED-2747-rrs1 to master * commit '4d9a80beeac2d376d8ff1f58bd66bf2fff6415c6': RED-2747 Report does not show attribute values
This commit is contained in:
commit
c0e0865913
@ -268,15 +268,19 @@ public class WordReportGenerationService {
|
|||||||
String escapedReplace = Matcher.quoteReplacement(replace);
|
String escapedReplace = Matcher.quoteReplacement(replace);
|
||||||
try {
|
try {
|
||||||
paragraphText = paragraphText.replaceAll(escapedSearch, escapedReplace);
|
paragraphText = paragraphText.replaceAll(escapedSearch, escapedReplace);
|
||||||
|
XWPFRun run = p.getRuns().get(0);
|
||||||
|
run.setText(paragraphText, 0);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("Could not replace {} with {}", escapedSearch, escapedReplace);
|
log.error("Could not replace {} with {}", escapedSearch, escapedReplace);
|
||||||
throw new RuntimeException(String.format("Could not replace %s with %s", escapedSearch, escapedReplace), e);
|
throw new RuntimeException(String.format("Could not replace %s with %s", escapedSearch, escapedReplace), e);
|
||||||
}
|
}
|
||||||
int size = p.getRuns().size();
|
int size = p.getRuns().size();
|
||||||
for (int i = 0; i <= size; i++) {
|
for (int i = 1; i <= size; i++) {
|
||||||
p.removeRun(0);
|
// 0th run has to stay for placeholders without "\n", because it contains the value of the placeholder
|
||||||
|
p.removeRun(1);
|
||||||
}
|
}
|
||||||
if (paragraphText.contains("\n")) {
|
if (paragraphText.contains("\n")) {
|
||||||
|
p.removeRun(0);
|
||||||
String[] stringsOnNewLines = paragraphText.split("\n");
|
String[] stringsOnNewLines = paragraphText.split("\n");
|
||||||
for (int i = 0; i < stringsOnNewLines.length; i++) {
|
for (int i = 0; i < stringsOnNewLines.length; i++) {
|
||||||
p.insertNewRun(i);
|
p.insertNewRun(i);
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import java.util.Arrays;
|
|||||||
import java.util.Base64;
|
import java.util.Base64;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.ListIterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
@ -33,10 +34,12 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.Re
|
|||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.Dossier;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.Dossier;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttribute;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttribute;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttributeType;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttributeType;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileAttribute;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileAttributeConfig;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileAttributeConfig;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileAttributeType;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileAttributeType;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasisMapping;
|
||||||
import com.iqser.red.service.redaction.report.v1.api.model.ReportType;
|
import com.iqser.red.service.redaction.report.v1.api.model.ReportType;
|
||||||
import com.iqser.red.service.redaction.report.v1.server.client.DossierAttributesClient;
|
import com.iqser.red.service.redaction.report.v1.server.client.DossierAttributesClient;
|
||||||
import com.iqser.red.service.redaction.report.v1.server.client.DossierAttributesConfigClient;
|
import com.iqser.red.service.redaction.report.v1.server.client.DossierAttributesConfigClient;
|
||||||
@ -186,7 +189,7 @@ public class RedactionReportIntegrationTest {
|
|||||||
.build();
|
.build();
|
||||||
byte[] report = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE, reportEntries, dossierTemplateId, reportTemplate, fileStatus, project);
|
byte[] report = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE, reportEntries, dossierTemplateId, reportTemplate, fileStatus, project);
|
||||||
|
|
||||||
try (FileOutputStream fileOutputStream = new FileOutputStream(getTemporaryDirectory() + "/efsa_template.docx")) {
|
try (FileOutputStream fileOutputStream = new FileOutputStream(getTemporaryDirectory() + "/efsa_template_wrg.docx")) {
|
||||||
fileOutputStream.write(report);
|
fileOutputStream.write(report);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -251,10 +254,10 @@ public class RedactionReportIntegrationTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testReportGeneration() throws IOException {
|
public void testReportGeneration() throws IOException {
|
||||||
|
|
||||||
ClassPathResource redactionLogResource = new ClassPathResource("files/redactionLogSingleStudyOral.json");
|
ClassPathResource redactionLogResource = new ClassPathResource("files/redactionLog.json");
|
||||||
ClassPathResource redactionLogResource2 = new ClassPathResource("files/excelReportRedactionLog.json");
|
ClassPathResource redactionLogResource2 = new ClassPathResource("files/excelReportRedactionLog.json");
|
||||||
ClassPathResource imageResource = new ClassPathResource("files/exampleImage.jpg");
|
ClassPathResource imageResource = new ClassPathResource("files/exampleImage.jpg");
|
||||||
ClassPathResource legalBasisMappingResource = new ClassPathResource("files/legalBasisSingleStudyOral.json");
|
ClassPathResource legalBasisMappingResource = new ClassPathResource("files/legalBasisMapping.json");
|
||||||
List<LegalBasis> legalBasisMapping = objectMapper.readValue(legalBasisMappingResource.getInputStream(), new TypeReference<>() {
|
List<LegalBasis> legalBasisMapping = objectMapper.readValue(legalBasisMappingResource.getInputStream(), new TypeReference<>() {
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -268,12 +271,22 @@ public class RedactionReportIntegrationTest {
|
|||||||
List<ReportRedactionEntry> reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping);
|
List<ReportRedactionEntry> reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping);
|
||||||
List<ReportRedactionEntry> reportEntries2 = redactionLogConverterService.convertAndSort(redactionLog2, legalBasisMapping);
|
List<ReportRedactionEntry> reportEntries2 = redactionLogConverterService.convertAndSort(redactionLog2, legalBasisMapping);
|
||||||
|
|
||||||
DossierAttributeConfig dossierAttributeConfig = new DossierAttributeConfig("id", "label", true, "{{dossier.attribute.name}}", DossierAttributeType.TEXT, dossierTemplateId);
|
DossierAttributeConfig dossierAttributeConfig = new DossierAttributeConfig("id", "Active Substance", true, "{{dossier.attribute.ActiveSubstance}}", DossierAttributeType.TEXT, dossierTemplateId);
|
||||||
DossierAttributeConfig dossierAttributeConfig2 = new DossierAttributeConfig("id2", "label2", false, "{{dossier.attribute.Signature}}", DossierAttributeType.IMAGE, dossierTemplateId);
|
DossierAttributeConfig dossierAttributeConfig2 = new DossierAttributeConfig("id2", "Rapporteur Member State", false,"{{dossier.attribute.RapporteurMemberState}}", DossierAttributeType.TEXT, dossierTemplateId);
|
||||||
when(dossierAttributesConfigClient.getDossierAttributes(dossierTemplateId)).thenReturn(List.of(dossierAttributeConfig, dossierAttributeConfig2));
|
DossierAttributeConfig dossierAttributeConfig3 = new DossierAttributeConfig("id3", "Dossier Name", true, "{{dossier.attribute.Name}}", DossierAttributeType.TEXT, dossierTemplateId);
|
||||||
DossierAttribute dossierAttribute = new DossierAttribute(dossierId, "id", "Michael");
|
DossierAttributeConfig dossierAttributeConfig4 = new DossierAttributeConfig("id4", "Company", false, "{{dossier.attribute.Company}}", DossierAttributeType.TEXT, dossierTemplateId);
|
||||||
DossierAttribute dossierAttribute2 = new DossierAttribute(dossierId, "id2", Base64.getEncoder().encodeToString(IOUtils.toByteArray(imageResource.getInputStream())));
|
DossierAttributeConfig dossierAttributeConfig5 = new DossierAttributeConfig("id5", "Date", true, "{{dossier.attribute.Date}}", DossierAttributeType.DATE, dossierTemplateId);
|
||||||
when(dossierAttributesClient.getDossierAttributes("dossierId")).thenReturn(List.of(dossierAttribute, dossierAttribute2));
|
DossierAttributeConfig dossierAttributeConfig6 = new DossierAttributeConfig("id6", "Signature", false, "{{dossier.attribute.Signature}}", DossierAttributeType.IMAGE, dossierTemplateId);
|
||||||
|
when(dossierAttributesConfigClient.getDossierAttributes(dossierTemplateId)).thenReturn(List.of(dossierAttributeConfig, dossierAttributeConfig2, dossierAttributeConfig3, dossierAttributeConfig4, dossierAttributeConfig5, dossierAttributeConfig6));
|
||||||
|
|
||||||
|
DossierAttribute dossierAttribute = new DossierAttribute(dossierId, "id", "Aktive Substanz \n Test Return");
|
||||||
|
DossierAttribute dossierAttribute2 = new DossierAttribute(dossierId, "id2", "Reporter Status");
|
||||||
|
DossierAttribute dossierAttribute3 = new DossierAttribute(dossierId, "id3", "Dossier Name");
|
||||||
|
DossierAttribute dossierAttribute4 = new DossierAttribute(dossierId, "id4", "Firma");
|
||||||
|
DossierAttribute dossierAttribute5 = new DossierAttribute(dossierId, "id5", OffsetDateTime.now().format(FORMAT_DATE_ENG));
|
||||||
|
DossierAttribute dossierAttribute6 = new DossierAttribute(dossierId, "id6", "data:image/png;base64," + Base64.getEncoder().encodeToString(IOUtils.toByteArray(imageResource.getInputStream())));
|
||||||
|
|
||||||
|
when(dossierAttributesClient.getDossierAttributes("dossierId")).thenReturn(List.of(dossierAttribute, dossierAttribute2, dossierAttribute3, dossierAttribute4, dossierAttribute5, dossierAttribute6));
|
||||||
|
|
||||||
FileAttributeConfig fileAttributeConfig = new FileAttributeConfig("3e9b9569-5d2e-4619-848b-dd0a3e96527f", "", "Document Title", true, true, false, false, "{{file.attribute.placeholder}}", FileAttributeType.TEXT, dossierTemplateId);
|
FileAttributeConfig fileAttributeConfig = new FileAttributeConfig("3e9b9569-5d2e-4619-848b-dd0a3e96527f", "", "Document Title", true, true, false, false, "{{file.attribute.placeholder}}", FileAttributeType.TEXT, dossierTemplateId);
|
||||||
when(fileAttributesConfigClient.getFileAttributeConfigs(dossierTemplateId)).thenReturn(List.of(fileAttributeConfig));
|
when(fileAttributesConfigClient.getFileAttributeConfigs(dossierTemplateId)).thenReturn(List.of(fileAttributeConfig));
|
||||||
@ -300,9 +313,10 @@ public class RedactionReportIntegrationTest {
|
|||||||
.uploadDate(OffsetDateTime.now())
|
.uploadDate(OffsetDateTime.now())
|
||||||
.build();
|
.build();
|
||||||
byte[] wordReport = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE, reportEntries, dossierTemplateId, reportTemplate, fileModel, dossier);
|
byte[] wordReport = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE, reportEntries, dossierTemplateId, reportTemplate, fileModel, dossier);
|
||||||
try (FileOutputStream fileOutputStream = new FileOutputStream(getTemporaryDirectory() + "/efsa_template.docx")) {
|
try (FileOutputStream fileOutputStream = new FileOutputStream(getTemporaryDirectory() + "/efsa_template1.docx")) {
|
||||||
fileOutputStream.write(wordReport);
|
fileOutputStream.write(wordReport);
|
||||||
}
|
}
|
||||||
|
|
||||||
ReportTemplate reportTemplate2 = ReportTemplate.builder()
|
ReportTemplate reportTemplate2 = ReportTemplate.builder()
|
||||||
.dossierTemplateId("dossierTemplateId")
|
.dossierTemplateId("dossierTemplateId")
|
||||||
.templateId("templateId")
|
.templateId("templateId")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user