From a84c98cc5df3858a4eeba13230b12cebb8f5e7ad Mon Sep 17 00:00:00 2001 From: deiflaender Date: Fri, 30 Jun 2023 13:00:42 +0200 Subject: [PATCH] RED-6543: Fixed license report QA findings 3 --- .../v1/processor/service/LicenseReportService.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/LicenseReportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/LicenseReportService.java index 88c7ba434..8e679b838 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/LicenseReportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/LicenseReportService.java @@ -14,6 +14,7 @@ import java.util.stream.Collectors; import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.license.LicenseReport; import com.iqser.red.service.persistence.service.v1.api.shared.model.license.LicenseReportRequest; @@ -34,13 +35,18 @@ public class LicenseReportService { public LicenseReport getLicenseReport(LicenseReportRequest licenseReportRequest) { + if(licenseReportRequest.getEndDate().isBefore(licenseReportRequest.getStartDate())){ + throw new BadRequestException("Invalid date period: End date is before start date."); + } + var files = fileStatusService.getStatusesAddedBefore(OffsetDateTime.ofInstant(licenseReportRequest.getEndDate(), UTC_ZONE_ID)); var addDossiers = dossierService.getAllDossiers(); if (files == null || files.isEmpty()) { return LicenseReport.builder() .startDate(licenseReportRequest.getStartDate()) - .endDate(licenseReportRequest.getEndDate()).numberOfDossiers(addDossiers.stream() + .endDate(licenseReportRequest.getEndDate()) + .numberOfDossiers(addDossiers.stream() .filter(dossier -> dossier.getDate().toInstant().isAfter(licenseReportRequest.getStartDate()) && (dossier.getHardDeletedTime() == null || dossier.getHardDeletedTime() .isAfter(OffsetDateTime.ofInstant(licenseReportRequest.getEndDate(), UTC_ZONE_ID)))) .collect(Collectors.toSet()) @@ -78,7 +84,7 @@ public class LicenseReportService { } } - YearMonth currentMonth = YearMonth.from(files.get(0).getAdded()); + YearMonth currentMonth = files.get(0).getAdded().toInstant().isBefore(licenseReportRequest.getStartDate()) ? YearMonth.from(files.get(0).getAdded()) : YearMonth.from(licenseReportRequest.getStartDate().atZone(UTC_ZONE_ID).toLocalDate()); YearMonth endMonth = YearMonth.from(licenseReportRequest.getEndDate().atZone(UTC_ZONE_ID).toLocalDate()); YearMonth reportStartMonth = YearMonth.from(licenseReportRequest.getStartDate().atZone(UTC_ZONE_ID).toLocalDate());