Merge branch 'RED-9409' into 'master'
RED-9409 - Excel QC includes hints and big merged empty space Closes RED-9409 See merge request redactmanager/redaction-report-service!75
This commit is contained in:
commit
679ae58ba0
@ -99,6 +99,10 @@ public class EntityLogConverterService {
|
||||
return;
|
||||
}
|
||||
|
||||
if (entry.getEntryType() == EntryType.HINT) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (entry.isExcluded()) {
|
||||
return;
|
||||
}
|
||||
@ -111,6 +115,14 @@ public class EntityLogConverterService {
|
||||
return;
|
||||
}
|
||||
|
||||
if (entry.getEntryType() == EntryType.IMAGE_HINT && entry.getState().equals(EntryState.SKIPPED)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (entry.getEntryType() == EntryType.AREA && (entry.getState().equals(EntryState.SKIPPED) || entry.getState().equals(EntryState.IGNORED))) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (settings.getMaxRedactionEntryValueLength() > 0 && entry.getValue() != null && entry.getValue().length() > settings.getMaxRedactionEntryValueLength()) {
|
||||
entry.setValue(entry.getValue().substring(0, settings.getMaxRedactionEntryValueLength()) + "...");
|
||||
log.info("Truncated value in dossier {}, file {} on pages {} to {} chars",
|
||||
|
||||
@ -24,6 +24,7 @@ import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
||||
@ -142,7 +143,7 @@ public class RedactionReportIntegrationTest {
|
||||
private Dossier prepareDossier() {
|
||||
|
||||
var testDossier = new Dossier();
|
||||
testDossier.setDossierName("Test Dossier");
|
||||
testDossier.setName("Test Dossier");
|
||||
testDossier.setDossierTemplateId("dossierTemplateId");
|
||||
testDossier.setId("dossierId");
|
||||
|
||||
@ -390,7 +391,7 @@ public class RedactionReportIntegrationTest {
|
||||
public void testExcelTemplateReportGenerationSingleFile() {
|
||||
|
||||
Dossier dossier = prepareDossier();
|
||||
FileModel fileModel = FileModel.builder().filename("filename").dossierId(dossier.getDossierId()).fileAttributes(Map.of("TestAttribute", "Lorem Ipsum")).build();
|
||||
FileModel fileModel = FileModel.builder().filename("filename").dossierId(dossier.getId()).fileAttributes(Map.of("TestAttribute", "Lorem Ipsum")).build();
|
||||
|
||||
EntityLog entityLog = objectMapper.readValue(new ClassPathResource("files/entityLogWithParagraphIdx.json").getInputStream(), EntityLog.class);
|
||||
List<EntityLogLegalBasis> legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() {
|
||||
@ -406,7 +407,7 @@ public class RedactionReportIntegrationTest {
|
||||
var excelModel = excelTemplateReportGenerationService.calculateExcelModel(readWorkbook.getSheetAt(0), dossier.getDossierTemplateId());
|
||||
SXSSFWorkbook writeWorkbook = new SXSSFWorkbook();
|
||||
writeWorkbook.createSheet("Sheet1");
|
||||
excelTemplateReportGenerationService.generateExcelReport(reportEntries, placeholders, "test", writeWorkbook, dossier.getDossierName(), fileModel, excelModel, true);
|
||||
excelTemplateReportGenerationService.generateExcelReport(reportEntries, placeholders, "test", writeWorkbook, dossier.getName(), fileModel, excelModel, true);
|
||||
|
||||
byte[] excelTemplateReport3 = excelTemplateReportGenerationService.toByteArray(writeWorkbook);
|
||||
try (FileOutputStream fileOutputStream = new FileOutputStream(getTemporaryDirectory() + "/Excel Report_justification.xlsx")) {
|
||||
@ -440,16 +441,16 @@ public class RedactionReportIntegrationTest {
|
||||
excelTemplateReportGenerationService.generateExcelReport(reportEntries, placeholders, "test", writeWorkbook, "dossierName", fileModel, excelModel, false);
|
||||
|
||||
EntityLog entityLogSecondFile = objectMapper.readValue(new ClassPathResource("files/entityLog.json").getInputStream(), EntityLog.class);
|
||||
List<ReportRedactionEntry> reportEntriesSecondFile = entityLogConverterService.convertAndSort(DOSSIER_ID, FILE_ID,entityLogSecondFile, legalBasisMapping, mapOfEntityDisplayName);
|
||||
List<ReportRedactionEntry> reportEntriesSecondFile = entityLogConverterService.convertAndSort(DOSSIER_ID, FILE_ID, entityLogSecondFile, legalBasisMapping, mapOfEntityDisplayName);
|
||||
FileModel fileModelSecondFile = FileModel.builder().filename("secondFile").build();
|
||||
excelTemplateReportGenerationService.generateExcelReport(reportEntriesSecondFile,
|
||||
placeholders,
|
||||
"test",
|
||||
writeWorkbook,
|
||||
"dossierName",
|
||||
fileModelSecondFile,
|
||||
excelModel,
|
||||
true);
|
||||
placeholders,
|
||||
"test",
|
||||
writeWorkbook,
|
||||
"dossierName",
|
||||
fileModelSecondFile,
|
||||
excelModel,
|
||||
true);
|
||||
|
||||
byte[] excelTemplateReport3 = excelTemplateReportGenerationService.toByteArray(writeWorkbook);
|
||||
try (FileOutputStream fileOutputStream = new FileOutputStream(getTemporaryDirectory() + "/Excel Report_multifile.xlsx")) {
|
||||
@ -458,6 +459,41 @@ public class RedactionReportIntegrationTest {
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@SneakyThrows
|
||||
void testExcelTemplateQCReportGenerationSingleFile() {
|
||||
|
||||
Dossier dossier = prepareDossier();
|
||||
FileModel fileModel = FileModel.builder().filename("filename").dossierId(dossier.getId()).fileAttributes(Map.of("TestAttribute", "Lorem Ipsum")).build();
|
||||
|
||||
EntityLog entityLog = objectMapper.readValue(new ClassPathResource("files/entityLogWithImageHints.json").getInputStream(), EntityLog.class);
|
||||
List<EntityLogLegalBasis> legalBasisMapping = objectMapper.readValue(new ClassPathResource("files/legalBasisMapping.json").getInputStream(), new TypeReference<>() {
|
||||
});
|
||||
Map<String, String> mapOfEntityDisplayName = createEntityDisplayNames(entityLog);
|
||||
List<ReportRedactionEntry> reportEntries = entityLogConverterService.convertAndSort(DOSSIER_ID, FILE_ID, entityLog, legalBasisMapping, mapOfEntityDisplayName);
|
||||
List<ReportRedactionEntry> reportEntriesOnPage16 = reportEntries.stream()
|
||||
.filter(entry -> entry.getPage() == 16)
|
||||
.collect(Collectors.toList());
|
||||
assertThat(reportEntriesOnPage16).hasSize(3);
|
||||
|
||||
ClassPathResource templateResource = new ClassPathResource("templates/Excel QC (incl. Skipped Redactions).xlsx");
|
||||
|
||||
var placeholders = buildPlaceHolderModel(new HashMap<>(), new HashMap<>(), List.of());
|
||||
|
||||
XSSFWorkbook readWorkbook = new XSSFWorkbook(templateResource.getInputStream());
|
||||
var excelModel = excelTemplateReportGenerationService.calculateExcelModel(readWorkbook.getSheetAt(0), dossier.getDossierTemplateId());
|
||||
SXSSFWorkbook writeWorkbook = new SXSSFWorkbook();
|
||||
writeWorkbook.createSheet("Sheet1");
|
||||
excelTemplateReportGenerationService.generateExcelReport(reportEntries, placeholders, "test", writeWorkbook, dossier.getName(), fileModel, excelModel, true);
|
||||
|
||||
byte[] excelTemplateReport3 = excelTemplateReportGenerationService.toByteArray(writeWorkbook);
|
||||
try (FileOutputStream fileOutputStream = new FileOutputStream(getTemporaryDirectory() + "/Excel Report QC.xlsx")) {
|
||||
fileOutputStream.write(excelTemplateReport3);
|
||||
}
|
||||
System.out.println(getTemporaryDirectory() + "/Excel Report QC.xlsx");
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@SneakyThrows
|
||||
public void testExcelPlaceholders() {
|
||||
@ -498,7 +534,7 @@ public class RedactionReportIntegrationTest {
|
||||
Dossier dossier = prepareDossier();
|
||||
FileModel fileModel = FileModel.builder()
|
||||
.filename("filename")
|
||||
.dossierId(dossier.getDossierId())
|
||||
.dossierId(dossier.getId())
|
||||
.dossierTemplateId(dossier.getDossierTemplateId())
|
||||
.fileAttributes(Map.of("TestAttribute", "Lorem Ipsum", "1b5ebe26-34f2-4c3b-983d-c0f0a010302c", "402"))
|
||||
.build();
|
||||
@ -512,7 +548,7 @@ public class RedactionReportIntegrationTest {
|
||||
Map<String, String> mapOfEntityDisplayName = createEntityDisplayNames(entityLog);
|
||||
List<ReportRedactionEntry> reportEntries = entityLogConverterService.convertAndSort(DOSSIER_ID, FILE_ID, entityLog, legalBasisMapping, mapOfEntityDisplayName);
|
||||
|
||||
when(componentClient.getComponentLog(dossier.getDossierId(), fileModel.getId(), true)).thenReturn(componentLog);
|
||||
when(componentClient.getComponentLog(dossier.getId(), fileModel.getId(), true)).thenReturn(componentLog);
|
||||
when(fileAttributesConfigClient.getFileAttributeConfigs(dossier.getDossierTemplateId())).thenReturn(fileAttributeConfigs);
|
||||
|
||||
ClassPathResource templateResource = new ClassPathResource("templates/scm_report.xlsx");
|
||||
@ -523,7 +559,7 @@ public class RedactionReportIntegrationTest {
|
||||
var excelModel = excelTemplateReportGenerationService.calculateExcelModel(readWorkbook.getSheetAt(0), dossier.getDossierTemplateId());
|
||||
SXSSFWorkbook writeWorkbook = new SXSSFWorkbook();
|
||||
writeWorkbook.createSheet("Sheet1");
|
||||
excelTemplateReportGenerationService.generateExcelReport(reportEntries, placeholders, "test", writeWorkbook, dossier.getDossierName(), fileModel, excelModel, true);
|
||||
excelTemplateReportGenerationService.generateExcelReport(reportEntries, placeholders, "test", writeWorkbook, dossier.getName(), fileModel, excelModel, true);
|
||||
|
||||
byte[] excelTemplateReport3 = excelTemplateReportGenerationService.toByteArray(writeWorkbook);
|
||||
try (FileOutputStream fileOutputStream = new FileOutputStream(getTemporaryDirectory() + "/scm_report.xlsx")) {
|
||||
|
||||
@ -78,7 +78,7 @@ public class EntityLogConverterServiceTest {
|
||||
|
||||
assertNotNull(reportEntries);
|
||||
assertFalse(reportEntries.isEmpty());
|
||||
assertEquals(reportEntries.size(), 77);
|
||||
assertEquals(62, reportEntries.size());
|
||||
assertEquals(reportEntries.get(0).getPage(), 1);
|
||||
assertEquals(reportEntries.get(0).getSection(), "[1]: Section: Rule 1/2: Redact CBI");
|
||||
assertEquals(reportEntries.get(0).getJustification(), "Article 39(e)(3) of Regulation (EC) No 178/2002 ");
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user