Updated JPA query of dashboard

This commit is contained in:
nisha
2025-01-15 19:49:09 +05:30
parent 11b9918aae
commit 1b6a11a771

View File

@@ -45,17 +45,25 @@ public interface ApplicationRepository extends JpaRepository<ApplicationEntity,
@Query("SELECT a.call.id FROM ApplicationEntity a WHERE a.id = :id AND a.isDeleted = false") @Query("SELECT a.call.id FROM ApplicationEntity a WHERE a.id = :id AND a.isDeleted = false")
Long findCallIdById(@Param("id") Long id); Long findCallIdById(@Param("id") Long id);
// @Query(value = "SELECT c.name AS callName, " +
// "SUM(CASE WHEN a.status IN ('DISCARD', 'SOCCORSO', 'APPROVED', 'REJECTED', 'EVALUATION', 'APPOINTMENT', 'NDG', 'ADMISSIBLE', 'SUBMIT') THEN 1 ELSE 0 END) AS totalApplications, " +
// "SUM(CASE WHEN a.status IN ('DRAFT', 'AWAITING', 'READY') THEN 1 ELSE 0 END) AS draftApplications " +
// "FROM application a " +
// "JOIN call c ON a.call_id = c.id " +
// "WHERE a.is_deleted = false AND c.hub_id = :hubId " +
// "GROUP BY c.name", nativeQuery = true)
// List<Object[]> findApplicationsPerCallWithName(@Param("hubId") Long hubId);
@Query(value = "SELECT c.name AS callName, " + @Query(value = "SELECT c.name AS callName, " +
"SUM(CASE WHEN a.status IN ('DISCARD', 'SOCCORSO', 'APPROVED', 'REJECTED', 'EVALUATION', 'APPOINTMENT', 'NDG', 'ADMISSIBLE', 'SUBMIT') THEN 1 ELSE 0 END) AS totalApplications, " + "SUM(CASE WHEN a.status IN ('DISCARD', 'SOCCORSO', 'APPROVED', 'REJECTED', 'EVALUATION', 'APPOINTMENT', 'NDG', 'ADMISSIBLE', 'SUBMIT') THEN 1 ELSE 0 END) AS totalApplications, " +
"SUM(CASE WHEN a.status IN ('DRAFT', 'AWAITING', 'READY') THEN 1 ELSE 0 END) AS draftApplications " + "SUM(CASE WHEN a.status IN ('DRAFT', 'AWAITING', 'READY') THEN 1 ELSE 0 END) AS draftApplications " +
"FROM application a " + "FROM ApplicationEntity a " +
"JOIN call c ON a.call_id = c.id " + "JOIN a.call c " +
"WHERE a.is_deleted = false AND c.hub_id = :hubId " + "WHERE a.isDeleted = false AND c.hub.id = :hubId " +
"GROUP BY c.name", nativeQuery = true) "GROUP BY c.name")
List<Object[]> findApplicationsPerCallWithName(@Param("hubId") Long hubId); List<Object[]> findApplicationsPerCallWithName(@Param("hubId") Long hubId);
// Count Applications by Status by Hub ID // Count Applications by Status by Hub ID
@Query("SELECT a.status, COUNT(a.id) FROM ApplicationEntity a WHERE a.isDeleted = false AND a.call.hub.id = :hubId GROUP BY a.status") @Query("SELECT a.status, COUNT(a.id) FROM ApplicationEntity a WHERE a.isDeleted = false AND a.call.hub.id = :hubId GROUP BY a.status")
List<Object[]> findApplicationsByStatus(@Param("hubId") Long hubId); List<Object[]> findApplicationsByStatus(@Param("hubId") Long hubId);