RED-2747
Report does not show attribute values
This commit is contained in:
parent
a87aa3032a
commit
4d9a80beea
@ -268,15 +268,19 @@ public class WordReportGenerationService {
|
||||
String escapedReplace = Matcher.quoteReplacement(replace);
|
||||
try {
|
||||
paragraphText = paragraphText.replaceAll(escapedSearch, escapedReplace);
|
||||
XWPFRun run = p.getRuns().get(0);
|
||||
run.setText(paragraphText, 0);
|
||||
} catch (Exception e) {
|
||||
log.error("Could not replace {} with {}", escapedSearch, escapedReplace);
|
||||
throw new RuntimeException(String.format("Could not replace %s with %s", escapedSearch, escapedReplace), e);
|
||||
}
|
||||
int size = p.getRuns().size();
|
||||
for (int i = 0; i <= size; i++) {
|
||||
p.removeRun(0);
|
||||
for (int i = 1; i <= size; i++) {
|
||||
// 0th run has to stay for placeholders without "\n", because it contains the value of the placeholder
|
||||
p.removeRun(1);
|
||||
}
|
||||
if (paragraphText.contains("\n")) {
|
||||
p.removeRun(0);
|
||||
String[] stringsOnNewLines = paragraphText.split("\n");
|
||||
for (int i = 0; i < stringsOnNewLines.length; i++) {
|
||||
p.insertNewRun(i);
|
||||
|
||||
@ -12,6 +12,7 @@ import java.util.Arrays;
|
||||
import java.util.Base64;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
import java.util.Map;
|
||||
|
||||
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.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.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.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.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.server.client.DossierAttributesClient;
|
||||
import com.iqser.red.service.redaction.report.v1.server.client.DossierAttributesConfigClient;
|
||||
@ -186,7 +189,7 @@ public class RedactionReportIntegrationTest {
|
||||
.build();
|
||||
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);
|
||||
}
|
||||
}
|
||||
@ -251,10 +254,10 @@ public class RedactionReportIntegrationTest {
|
||||
@Test
|
||||
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 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<>() {
|
||||
});
|
||||
|
||||
@ -268,12 +271,22 @@ public class RedactionReportIntegrationTest {
|
||||
List<ReportRedactionEntry> reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping);
|
||||
List<ReportRedactionEntry> reportEntries2 = redactionLogConverterService.convertAndSort(redactionLog2, legalBasisMapping);
|
||||
|
||||
DossierAttributeConfig dossierAttributeConfig = new DossierAttributeConfig("id", "label", true, "{{dossier.attribute.name}}", DossierAttributeType.TEXT, dossierTemplateId);
|
||||
DossierAttributeConfig dossierAttributeConfig2 = new DossierAttributeConfig("id2", "label2", false, "{{dossier.attribute.Signature}}", DossierAttributeType.IMAGE, dossierTemplateId);
|
||||
when(dossierAttributesConfigClient.getDossierAttributes(dossierTemplateId)).thenReturn(List.of(dossierAttributeConfig, dossierAttributeConfig2));
|
||||
DossierAttribute dossierAttribute = new DossierAttribute(dossierId, "id", "Michael");
|
||||
DossierAttribute dossierAttribute2 = new DossierAttribute(dossierId, "id2", Base64.getEncoder().encodeToString(IOUtils.toByteArray(imageResource.getInputStream())));
|
||||
when(dossierAttributesClient.getDossierAttributes("dossierId")).thenReturn(List.of(dossierAttribute, dossierAttribute2));
|
||||
DossierAttributeConfig dossierAttributeConfig = new DossierAttributeConfig("id", "Active Substance", true, "{{dossier.attribute.ActiveSubstance}}", DossierAttributeType.TEXT, dossierTemplateId);
|
||||
DossierAttributeConfig dossierAttributeConfig2 = new DossierAttributeConfig("id2", "Rapporteur Member State", false,"{{dossier.attribute.RapporteurMemberState}}", DossierAttributeType.TEXT, dossierTemplateId);
|
||||
DossierAttributeConfig dossierAttributeConfig3 = new DossierAttributeConfig("id3", "Dossier Name", true, "{{dossier.attribute.Name}}", DossierAttributeType.TEXT, dossierTemplateId);
|
||||
DossierAttributeConfig dossierAttributeConfig4 = new DossierAttributeConfig("id4", "Company", false, "{{dossier.attribute.Company}}", DossierAttributeType.TEXT, dossierTemplateId);
|
||||
DossierAttributeConfig dossierAttributeConfig5 = new DossierAttributeConfig("id5", "Date", true, "{{dossier.attribute.Date}}", DossierAttributeType.DATE, dossierTemplateId);
|
||||
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);
|
||||
when(fileAttributesConfigClient.getFileAttributeConfigs(dossierTemplateId)).thenReturn(List.of(fileAttributeConfig));
|
||||
@ -300,9 +313,10 @@ public class RedactionReportIntegrationTest {
|
||||
.uploadDate(OffsetDateTime.now())
|
||||
.build();
|
||||
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);
|
||||
}
|
||||
|
||||
ReportTemplate reportTemplate2 = ReportTemplate.builder()
|
||||
.dossierTemplateId("dossierTemplateId")
|
||||
.templateId("templateId")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user