Done ticket GEPAFINBE-179

This commit is contained in:
Piyush
2025-03-03 16:00:46 +05:30
parent ee5faa701c
commit b4165e38fd

View File

@@ -8,8 +8,6 @@ import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@@ -112,24 +110,31 @@ public interface ApplicationRepository extends JpaRepository<ApplicationEntity,
@Param("userId") Long userId, @Param("userId") Long userId,
@Param("userWithCompanyId") Long userWithCompanyId); @Param("userWithCompanyId") Long userWithCompanyId);
@Query(""" @Query(value = """
SELECT TO_CHAR(a.submissionDate, 'Mon') AS month, WITH months AS (
SUM(a.amountRequested) AS totalRequested, SELECT TO_CHAR(generate_series(CURRENT_DATE - INTERVAL '5 months', CURRENT_DATE, INTERVAL '1 month'), 'Mon') AS month_label,
SUM(a.amountAccepted) AS totalApproved EXTRACT(YEAR FROM generate_series(CURRENT_DATE - INTERVAL '5 months', CURRENT_DATE, INTERVAL '1 month')) AS year_value,
FROM ApplicationEntity a EXTRACT(MONTH FROM generate_series(CURRENT_DATE - INTERVAL '5 months', CURRENT_DATE, INTERVAL '1 month')) AS month_value
WHERE a.isDeleted = false )
SELECT m.month_label AS month,
COALESCE(SUM(a.amount_requested), 0) AS totalRequested,
COALESCE(SUM(a.amount_accepted), 0) AS totalApproved
FROM months m
LEFT JOIN {h-schema}application a ON EXTRACT(YEAR FROM a.date_accepted) = m.year_value
AND EXTRACT(MONTH FROM a.date_accepted) = m.month_value
AND a.is_deleted = false
AND a.status = 'APPROVED' AND a.status = 'APPROVED'
AND a.call.hub.id = :hubId AND a.hub_id = :hubId
AND a.userId = :userId AND a.user_id = :userId
AND a.userWithCompany.id = :userWithCompanyId AND a.user_with_company_id = :userWithCompanyId
GROUP BY TO_CHAR(a.submissionDate, 'Mon'), EXTRACT(YEAR FROM a.submissionDate), EXTRACT(MONTH FROM a.submissionDate) GROUP BY m.month_label, m.year_value, m.month_value
ORDER BY EXTRACT(YEAR FROM a.submissionDate), EXTRACT(MONTH FROM a.submissionDate) ORDER BY m.year_value, m.month_value
""") """, nativeQuery = true)
List<Object[]> findRequestedVsApprovedAmountsPerMonth( List<Object[]> findRequestedVsApprovedAmountsPerMonth(@Param("hubId") Long hubId,
@Param("hubId") Long hubId,
@Param("userId") Long userId, @Param("userId") Long userId,
@Param("userWithCompanyId") Long userWithCompanyId @Param("userWithCompanyId") Long userWithCompanyId);
);
@Query("SELECT COUNT(a) FROM ApplicationEntity a " + @Query("SELECT COUNT(a) FROM ApplicationEntity a " +
"WHERE a.hubId = :hubId " + "WHERE a.hubId = :hubId " +
@@ -164,4 +169,5 @@ public interface ApplicationRepository extends JpaRepository<ApplicationEntity,
); );
ApplicationEntity findByIdAndCompanyIdAndIsDeletedFalse(Long id,Long companyId); ApplicationEntity findByIdAndCompanyIdAndIsDeletedFalse(Long id,Long companyId);
} }