Done ticket GEPAFINBE-153
This commit is contained in:
@@ -92,5 +92,68 @@ public interface ApplicationRepository extends JpaRepository<ApplicationEntity,
|
||||
@Query("SELECT a.id FROM ApplicationEntity a WHERE a.hubId = :hubId AND a.isDeleted = false")
|
||||
List<Long> findApplicationIdsByHubId(@Param("hubId") Long hubId);
|
||||
|
||||
@Query("SELECT CASE WHEN COUNT(CASE WHEN a.submissionDate IS NOT NULL THEN 1 ELSE NULL END) > 0 THEN " +
|
||||
"CAST((SUM(CASE WHEN a.status = 'APPROVED' THEN 1 ELSE 0 END) * 100.0) / " +
|
||||
"COUNT(CASE WHEN a.submissionDate IS NOT NULL THEN 1 ELSE NULL END) AS BigDecimal) " +
|
||||
"ELSE CAST(0 AS BigDecimal) END " +
|
||||
"FROM ApplicationEntity a " +
|
||||
"WHERE a.hubId = :hubId AND a.userId = :userId AND a.userWithCompany.id = :userWithCompanyId " +
|
||||
"AND a.isDeleted = false")
|
||||
BigDecimal findSuccessRateByHubIdAndUserIdAndUserWithCompanyId(
|
||||
@Param("hubId") Long hubId,
|
||||
@Param("userId") Long userId,
|
||||
@Param("userWithCompanyId") Long userWithCompanyId);
|
||||
|
||||
|
||||
@Query("SELECT a.status, COUNT(a.id) FROM ApplicationEntity a WHERE a.isDeleted = false AND a.userId = :userId AND a.userWithCompany.id = :userWithCompanyId AND a.call.hub.id = :hubId GROUP BY a.status")
|
||||
List<Object[]> findApplicationsByStatusAndUserIdAndUserWithCompanyId(@Param("hubId") Long hubId,
|
||||
@Param("userId") Long userId,
|
||||
@Param("userWithCompanyId") Long userWithCompanyId);
|
||||
|
||||
@Query("""
|
||||
SELECT TO_CHAR(a.submissionDate, 'Mon') AS month,
|
||||
SUM(a.amountRequested) AS totalRequested,
|
||||
SUM(a.amountAccepted) AS totalApproved
|
||||
FROM ApplicationEntity a
|
||||
WHERE a.isDeleted = false
|
||||
AND a.status = 'APPROVED'
|
||||
AND a.call.hub.id = :hubId
|
||||
AND a.userId = :userId
|
||||
AND a.userWithCompany.id = :userWithCompanyId
|
||||
GROUP BY TO_CHAR(a.submissionDate, 'Mon'), EXTRACT(YEAR FROM a.submissionDate), EXTRACT(MONTH FROM a.submissionDate)
|
||||
ORDER BY EXTRACT(YEAR FROM a.submissionDate), EXTRACT(MONTH FROM a.submissionDate)
|
||||
""")
|
||||
List<Object[]> findRequestedVsApprovedAmountsPerMonth(
|
||||
@Param("hubId") Long hubId,
|
||||
@Param("userId") Long userId,
|
||||
@Param("userWithCompanyId") Long userWithCompanyId
|
||||
);
|
||||
|
||||
@Query("SELECT COUNT(a) FROM ApplicationEntity a " +
|
||||
"WHERE a.hubId = :hubId " +
|
||||
"AND a.userId = :userId " +
|
||||
"AND a.userWithCompany.id = :userWithCompanyId " +
|
||||
"AND a.isDeleted = false " +
|
||||
"AND a.status IN :statusList " +
|
||||
"AND a.submissionDate IS NOT NULL")
|
||||
Long countSubmittedApplicationsByHubIdAndUserId(
|
||||
@Param("hubId") Long hubId,
|
||||
@Param("userId") Long userId,
|
||||
@Param("userWithCompanyId") Long userWithCompanyId,
|
||||
@Param("statusList") List<String> statusList
|
||||
);
|
||||
|
||||
@Query("SELECT COUNT(a) FROM ApplicationEntity a " +
|
||||
"WHERE a.hubId = :hubId " +
|
||||
"AND a.userId = :userId " +
|
||||
"AND a.userWithCompany.id = :userWithCompanyId " +
|
||||
"AND a.status = :status " +
|
||||
"AND a.isDeleted = false")
|
||||
Long countSubmittedApplicationsByHubIdAndUserIdAndStatus(
|
||||
@Param("hubId") Long hubId,
|
||||
@Param("userId") Long userId,
|
||||
@Param("userWithCompanyId") Long userWithCompanyId,
|
||||
@Param("status") String status);
|
||||
@Query("SELECT SUM(a.amountAccepted) FROM ApplicationEntity a WHERE a.hubId = :hubId AND a.userId = :userId AND a.status = 'APPROVED' AND a.userWithCompany.id = :userWithCompanyId AND a.isDeleted = false")
|
||||
BigDecimal sumAmountRequestedByHubIdAndUserId(@Param("hubId") Long hubId, @Param("userId") Long userId, @Param("userWithCompanyId") Long userWithCompanyId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user