RED-6543: Fixed findings in license report #14

Merged
dominique.eiflaender1 merged 1 commits from RED-6543 into master 2023-06-21 09:46:52 +02:00
4 changed files with 38 additions and 15 deletions

View File

@ -50,16 +50,16 @@ public class LicenseReportService {
adds.computeIfAbsent(YearMonth.from(file.getAdded()), entry -> new ArrayList<>()).add(file);
if (file.getDeleted() != null) {
if (file.getDeleted() != null && file.getDeleted().toInstant().isBefore(licenseReportRequest.getEndDate())) {
softDeletes.computeIfAbsent(YearMonth.from(file.getDeleted()), entry -> new ArrayList<>()).add(file);
}
if (file.getHardDeletedTime() != null) {
if (file.getHardDeletedTime() != null && file.getHardDeletedTime().toInstant().isBefore(licenseReportRequest.getEndDate())) {
hardDeletes.computeIfAbsent(YearMonth.from(file.getHardDeletedTime()), entry -> new ArrayList<>()).add(file);
}
if (dossiersById.get(file.getDossierId()).getArchivedTime() != null) {
if (dossiersById.get(file.getDossierId()).getArchivedTime() != null && dossiersById.get(file.getDossierId()).getArchivedTime().toInstant().isBefore(licenseReportRequest.getEndDate())) {
archives.computeIfAbsent(YearMonth.from(dossiersById.get(file.getDossierId()).getArchivedTime()), entry -> new ArrayList<>()).add(file);
}
if (file.getOcrStartTime() != null) {
if (file.getOcrStartTime() != null && file.getOcrStartTime().toInstant().isBefore(licenseReportRequest.getEndDate())) {
ocrs.computeIfAbsent(YearMonth.from(file.getOcrStartTime()), entry -> new ArrayList<>()).add(file);
}
}
@ -70,24 +70,35 @@ public class LicenseReportService {
List<MonthlyReportData> monthlyData = new ArrayList<>();
// This values are what is in system at that point. Including all added values before the period.
long activeFilesUploadedBytes = 0;
long trashFilesUploadedBytes = 0;
long archivedFilesUploadedBytes = 0;
// This values are not what is currently in the system at that point. They are what is added in the period.
int numberOfAnalyzedPages = 0;
int numberOfOcrPages = 0;
int numberOfAnalyzedFiles = 0;
int numberOfAnalyses = 0;
int numberOfOcrFiles = 0;
while (!currentMonth.isAfter(endMonth)) {
int currentMonthNumberOfAnalyzedPages = 0;
int currentMonthNumberOfOcrPages = 0;
var addedFilesInMonth = adds.get(currentMonth);
if (addedFilesInMonth != null) {
for (var add : addedFilesInMonth) {
activeFilesUploadedBytes += add.getFileSize();
numberOfAnalyzedPages += add.getNumberOfPages();
numberOfAnalyzedFiles++;
numberOfAnalyses += add.getNumberOfAnalyses();
if(add.getAdded().toInstant().isAfter(licenseReportRequest.getStartDate())) {
numberOfAnalyzedPages += add.getNumberOfPages();
currentMonthNumberOfAnalyzedPages += add.getNumberOfPages();
numberOfAnalyzedFiles++;
}
}
}
@ -121,19 +132,28 @@ public class LicenseReportService {
var ocrFilesInMonth = ocrs.get(currentMonth);
if (ocrFilesInMonth != null) {
for (var ocrFile : ocrFilesInMonth) {
numberOfOcrPages += ocrFile.getNumberOfPages(); // We count the entire document if ocr is performed.
numberOfOcrFiles++;
if(ocrFile.getOcrStartTime().toInstant().isAfter(licenseReportRequest.getStartDate())) {
numberOfOcrPages += ocrFile.getNumberOfPages(); // We count the entire document if ocr is performed.
currentMonthNumberOfOcrPages += ocrFile.getNumberOfPages();
numberOfOcrFiles++;
}
}
}
if (currentMonth.equals(reportStartMonth) || currentMonth.isAfter(reportStartMonth)) {
var monthEndDate = currentMonth.atEndOfMonth().atTime(23, 59).atZone(UTC_ZONE_ID).toInstant();
monthlyData.add(MonthlyReportData.builder()
.startDate(currentMonth.atDay(1).atStartOfDay(UTC_ZONE_ID).toInstant())
.endDate(monthEndDate.isBefore(licenseReportRequest.getEndDate()) ? monthEndDate : licenseReportRequest.getEndDate())
.activeFilesUploadedBytes(activeFilesUploadedBytes)
.trashFilesUploadedBytes(trashFilesUploadedBytes)
.archivedFilesUploadedBytes(archivedFilesUploadedBytes)
.totalFilesUploadedBytes(activeFilesUploadedBytes + trashFilesUploadedBytes + archivedFilesUploadedBytes)
.numberOfAnalyzedPages(numberOfAnalyzedPages)
.numberOfOcrPages(numberOfOcrPages)
.numberOfAnalyzedPages(currentMonthNumberOfAnalyzedPages)
.numberOfOcrPages(currentMonthNumberOfOcrPages)
.build());
}
@ -148,7 +168,6 @@ public class LicenseReportService {
.numberOfAnalyzedPages(numberOfAnalyzedPages)
.numberOfOcrPages(numberOfOcrPages)
.numberOfAnalyzedFiles(numberOfAnalyzedFiles)
.numberOfAnalyses(numberOfAnalyses)
.numberOfOcrFiles(numberOfOcrFiles)
.numberOfDossiers(addDossiers.stream()
.filter(dossier -> dossier.getHardDeletedTime() == null || dossier.getHardDeletedTime()
@ -161,4 +180,5 @@ public class LicenseReportService {
.build();
}
}

View File

@ -77,7 +77,7 @@ public class LicenseReportTest extends AbstractPersistenceServerServiceTest {
LicenseReport licenseReport = licenseReportClient.getReport(LicenseReportRequest.builder()
.startDate(Instant.parse("2023-01-01T10:00:00Z"))
.endDate(Instant.parse("2023-05-01T10:00:00Z"))
.endDate(Instant.parse("2023-05-01T11:00:00Z"))
.build());
assertThat(licenseReport.getTotalFilesUploadedBytes()).isEqualTo(900L);

View File

@ -24,7 +24,6 @@ public class LicenseReport {
private int numberOfDossiers;
private int numberOfAnalyzedPages;
private int numberOfOcrPages;
private int numberOfAnalyses;
private Instant startDate;
private Instant endDate;

View File

@ -1,5 +1,7 @@
package com.iqser.red.service.persistence.service.v1.api.shared.model.license;
import java.time.Instant;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -11,6 +13,8 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
public class MonthlyReportData {
private Instant startDate;
private Instant endDate;
private long totalFilesUploadedBytes;
private long activeFilesUploadedBytes;
private long trashFilesUploadedBytes;