RED-6543: Fixed findings in license report #14
@ -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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user