RSS-115: Enabled multifile report for rss
This commit is contained in:
parent
f19b8b68f4
commit
060861e7c3
@ -91,17 +91,21 @@ public class ExcelReportGenerationService {
|
||||
sheet.setColumnWidth(columnWidthEntry.getKey(), columnWidthEntry.getValue());
|
||||
}
|
||||
|
||||
addRows(workbook, sheet, excelModel.getCellsToCopyBeforeRedactionPlaceholderRow(), 0, placeholderModel, dossierName, fileModel.getFilename());
|
||||
excelModel.setRowsBeforeRedactionEntryRowsAdded(true);
|
||||
addRows(workbook, sheet, excelModel.getCellsToCopyBeforeRedactionPlaceholderRow(), excelModel.isHasRssPlaceHolders() ? excelModel.getWrittenRows()
|
||||
.size() : 0, placeholderModel, dossierName, fileModel.getFilename(), excelModel);
|
||||
|
||||
if(!excelModel.isHasRssPlaceHolders()) {
|
||||
excelModel.setRowsBeforeRedactionEntryRowsAdded(true);
|
||||
}
|
||||
}
|
||||
|
||||
if(excelModel.getRedactionPlaceholderRow() != -1) {
|
||||
if(!excelModel.isHasRssPlaceHolders()) {
|
||||
addRedactionEntryRows(sheet, reportEntries, fileModel.getFilename(), excelModel, placeholderModel);
|
||||
}
|
||||
|
||||
if (isLastFile) {
|
||||
addRows(workbook, sheet, excelModel.getCellsToCopyAfterRedactionPlaceholderRow(), excelModel.getWrittenRows()
|
||||
.size(), placeholderModel, dossierName, fileModel.getFilename());
|
||||
.size(), placeholderModel, dossierName, fileModel.getFilename(), excelModel);
|
||||
}
|
||||
}
|
||||
|
||||
@ -116,7 +120,7 @@ public class ExcelReportGenerationService {
|
||||
@SneakyThrows
|
||||
@Timed("redactmanager_excel-addRows")
|
||||
private void addRows(SXSSFWorkbook workbook, Sheet sheet, Map<CellIdentifier, Cell> copiedCells, int numberOfRowsToShift, PlaceholderModel placeholderModel, String dossierName,
|
||||
String filename) {
|
||||
String filename, ExcelModel excelModel) {
|
||||
|
||||
Set<Integer> createdCopyRows = new HashSet<>();
|
||||
for (Map.Entry<CellIdentifier, Cell> cellsToCopyEntry : copiedCells.entrySet()) {
|
||||
@ -126,9 +130,13 @@ public class ExcelReportGenerationService {
|
||||
if (!createdCopyRows.contains(indexToAddRow)) {
|
||||
sheet.createRow(indexToAddRow);
|
||||
createdCopyRows.add(indexToAddRow);
|
||||
if (excelModel.isHasRssPlaceHolders()) {
|
||||
excelModel.getWrittenRows().add(indexToAddRow);
|
||||
}
|
||||
}
|
||||
|
||||
var createdCell = sheet.getRow(indexToAddRow).createCell(cellsToCopyEntry.getKey().getColumnIndex());
|
||||
|
||||
createdCell.setCellValue(cellsToCopyEntry.getValue().getStringCellValue());
|
||||
CellStyle newCellStyle = workbook.createCellStyle();
|
||||
newCellStyle.cloneStyleFrom(cellsToCopyEntry.getValue().getCellStyle());
|
||||
@ -160,6 +168,7 @@ public class ExcelReportGenerationService {
|
||||
Map<Integer, Integer> columnWidths = new HashMap<>();
|
||||
Map<CellIdentifier, Cell> cellsToCopyBeforePlaceholderRow = new HashMap<>();
|
||||
Map<CellIdentifier, Cell> cellsToCopyAfterPlaceholderRow = new HashMap<>();
|
||||
Map<CellIdentifier, Cell> cellsToCopyInPlaceholderRow = new HashMap<>();
|
||||
boolean hasRssPlaceHolders = false;
|
||||
int placeholderRow = -1;
|
||||
for (int j = 0; j < sheet.getLastRowNum() + 1; j++) {
|
||||
@ -179,6 +188,7 @@ public class ExcelReportGenerationService {
|
||||
if (containsRedactionPlaceholder(cellStringValue)) {
|
||||
placeholderCellPos.put(i, getFunctionForPlaceHolder(cellStringValue));
|
||||
placeholderRow = j;
|
||||
cellsToCopyInPlaceholderRow.put(new CellIdentifier(j, i), cell);
|
||||
} else {
|
||||
if (placeholderRow == -1) {
|
||||
cellsToCopyBeforePlaceholderRow.put(new CellIdentifier(j, i), cell);
|
||||
@ -190,6 +200,13 @@ public class ExcelReportGenerationService {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (hasRssPlaceHolders) {
|
||||
cellsToCopyBeforePlaceholderRow.putAll(cellsToCopyInPlaceholderRow);
|
||||
cellsToCopyBeforePlaceholderRow.putAll(cellsToCopyAfterPlaceholderRow);
|
||||
cellsToCopyAfterPlaceholderRow = new HashMap<>();
|
||||
}
|
||||
|
||||
log.debug("Calculate Placeholder Cells took: {}", System.currentTimeMillis() - start);
|
||||
return new ExcelModel(placeholderCellPos, placeholderRow, columnWidths, cellsToCopyBeforePlaceholderRow, cellsToCopyAfterPlaceholderRow, new ArrayList<>(), false, hasRssPlaceHolders);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user