diff --git a/src/main/java/net/gepafin/tendermanagement/dao/DashboardDao.java b/src/main/java/net/gepafin/tendermanagement/dao/DashboardDao.java index 273e60b4..f2ddb971 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/DashboardDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/DashboardDao.java @@ -2,7 +2,6 @@ package net.gepafin.tendermanagement.dao; import net.gepafin.tendermanagement.constants.GepafinConstant; import net.gepafin.tendermanagement.entities.CompanyEntity; -import net.gepafin.tendermanagement.entities.UserActionEntity; import net.gepafin.tendermanagement.entities.UserEntity; import net.gepafin.tendermanagement.entities.UserWithCompanyEntity; import net.gepafin.tendermanagement.entities.*; @@ -12,19 +11,13 @@ import net.gepafin.tendermanagement.repositories.*; import net.gepafin.tendermanagement.service.CompanyService; import net.gepafin.tendermanagement.util.Validator; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Component; import java.math.BigDecimal; import java.math.RoundingMode; -import java.time.temporal.ChronoUnit; import java.util.*; import java.time.LocalDate; import java.time.LocalDateTime; -import java.time.LocalTime; -import java.util.List; import java.util.List; import java.util.stream.Collectors; @@ -361,7 +354,7 @@ public class DashboardDao { return PreInstructorWidgetResponseBean.builder() .assignedApplication(ApplicationToConsider.builder() .totalAssignedApplication(0L) - .additionalApplication(BigDecimal.ZERO) + .additionalApplicationPercentage(BigDecimal.ZERO) .build()) .evaluatedApplication(EvaluatedApplication.builder() .evaluatedApplication(0L) @@ -394,12 +387,12 @@ public class DashboardDao { } LocalDateTime yesterday = LocalDateTime.now().minusDays(1); - Long newApplicationsAddedYesterday = assignedApplicationsRepository.countApplicationsAddedYesterdayForHub(hubId, yesterday); + Long newApplicationsAddedYesterday = assignedApplicationsRepository.countApplicationsAddedYesterdayForHub(applicationIds, hubId, yesterday); if (newApplicationsAddedYesterday != null && totalAssignedApplications != null && totalAssignedApplications > 0) { BigDecimal percentageAdded = BigDecimal.valueOf(newApplicationsAddedYesterday) .divide(BigDecimal.valueOf(totalAssignedApplications), 4, RoundingMode.HALF_UP) .multiply(BigDecimal.valueOf(100)); - responseBean.getAssignedApplication().setAdditionalApplication(percentageAdded.setScale(2, RoundingMode.HALF_UP)); + responseBean.getAssignedApplication().setAdditionalApplicationPercentage(percentageAdded.setScale(2, RoundingMode.HALF_UP)); } List statuses = Arrays.asList(ApplicationStatusTypeEnum.APPROVED.getValue(), ApplicationStatusTypeEnum.REJECTED.getValue()); @@ -414,7 +407,7 @@ public class DashboardDao { } } - Long rescueInstructorsInProgress = applicationRepository.countApplicationsByIdsAndStatus(applicationIds, ApplicationStatusTypeEnum.SOCCORSO.getValue()); + Long rescueInstructorsInProgress = assignedApplicationsRepository.countApplicationsByIdsAndStatus(applicationIds, AssignedApplicationEnum.SOCCORSO.getValue()); if (rescueInstructorsInProgress != null) { responseBean.getAmendmentInProgress().setTotalAmendmentInProgress(rescueInstructorsInProgress); } diff --git a/src/main/java/net/gepafin/tendermanagement/model/response/ApplicationToConsider.java b/src/main/java/net/gepafin/tendermanagement/model/response/ApplicationToConsider.java index c417403c..b7f9715b 100644 --- a/src/main/java/net/gepafin/tendermanagement/model/response/ApplicationToConsider.java +++ b/src/main/java/net/gepafin/tendermanagement/model/response/ApplicationToConsider.java @@ -11,5 +11,5 @@ public class ApplicationToConsider { public Long totalAssignedApplication; - private BigDecimal additionalApplication; + private BigDecimal additionalApplicationPercentage; } diff --git a/src/main/java/net/gepafin/tendermanagement/repositories/ApplicationRepository.java b/src/main/java/net/gepafin/tendermanagement/repositories/ApplicationRepository.java index 0a5fa214..0f8bbf89 100644 --- a/src/main/java/net/gepafin/tendermanagement/repositories/ApplicationRepository.java +++ b/src/main/java/net/gepafin/tendermanagement/repositories/ApplicationRepository.java @@ -93,8 +93,6 @@ public interface ApplicationRepository extends JpaRepository findApplicationIdsByHubId(@Param("hubId") Long hubId); - @Query("SELECT COUNT(a) FROM ApplicationEntity a WHERE a.id IN :applicationIds AND a.status = :status AND a.isDeleted = false") - Long countApplicationsByIdsAndStatus(@Param("applicationIds") List applicationIds, @Param("status") String status); @Query("SELECT COUNT(a) FROM ApplicationEntity a WHERE a.id IN :applicationIds AND a.status IN :statuses AND a.isDeleted = false AND a.updatedDate >= :sevenDaysAgo") Long countEvaluatedApplicationsInLast7Days(@Param("applicationIds") List applicationIds, diff --git a/src/main/java/net/gepafin/tendermanagement/repositories/AssignedApplicationsRepository.java b/src/main/java/net/gepafin/tendermanagement/repositories/AssignedApplicationsRepository.java index 6476f4b1..2a9e2da5 100644 --- a/src/main/java/net/gepafin/tendermanagement/repositories/AssignedApplicationsRepository.java +++ b/src/main/java/net/gepafin/tendermanagement/repositories/AssignedApplicationsRepository.java @@ -31,16 +31,17 @@ public interface AssignedApplicationsRepository extends JpaRepository applicationIds); @Query(""" - SELECT COUNT(aa) - FROM AssignedApplicationsEntity aa - JOIN ApplicationEntity a ON aa.application.id = a.id - WHERE a.hubId = :hubId - AND a.isDeleted = false - AND aa.createdDate >= :yesterday -""") - Long countApplicationsAddedYesterdayForHub( - @Param("hubId") Long hubId, - @Param("yesterday") LocalDateTime yesterday - ); + SELECT COUNT(aa) + FROM AssignedApplicationsEntity aa + JOIN aa.application a + WHERE a.hubId = :hubId + AND a.isDeleted = false + AND aa.createdDate >= :yesterday + AND (:applicationIds IS NULL OR aa.application.id IN :applicationIds) + """) + Long countApplicationsAddedYesterdayForHub(@Param("applicationIds") List applicationIds, @Param("hubId") Long hubId, @Param("yesterday") LocalDateTime yesterday); + + @Query("SELECT COUNT(a) FROM AssignedApplicationsEntity a WHERE a.application.id IN :applicationIds AND a.status = :status AND a.isDeleted = false") + Long countApplicationsByIdsAndStatus(@Param("applicationIds") List applicationIds, @Param("status") String status); }