updated code for Amendment scheduler

This commit is contained in:
harish
2024-11-28 12:37:12 +05:30
parent 3735da36fc
commit 51998245d6
11 changed files with 256 additions and 105 deletions

View File

@@ -1,6 +1,8 @@
package net.gepafin.tendermanagement.repositories;
import net.gepafin.tendermanagement.entities.ApplicationAmendmentRequestEntity;
import net.gepafin.tendermanagement.entities.ApplicationEvaluationEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
@@ -9,6 +11,7 @@ import org.springframework.data.repository.query.Param;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Optional;
import java.util.Set;
public interface ApplicationAmendmentRequestRepository extends JpaRepository<ApplicationAmendmentRequestEntity,Long>, JpaSpecificationExecutor<ApplicationAmendmentRequestEntity> {
Optional<ApplicationAmendmentRequestEntity> findByIdAndIsDeletedFalse(Long id);
@@ -45,10 +48,22 @@ public interface ApplicationAmendmentRequestRepository extends JpaRepository<App
List<ApplicationAmendmentRequestEntity> findAllByApplicationEvaluationIdAndStatusAndIsDeletedFalse(Long id, String status);
@Query("SELECT a FROM ApplicationAmendmentRequestEntity a " +
"WHERE a.applicationId = :applicationId " +
"AND a.isDeleted = false " +
"WHERE a.isDeleted = false " +
"AND a.status <> 'CLOSE' " +
"AND a.endDate < :currentTime")
List<ApplicationAmendmentRequestEntity> findActiveAmendments(Long applicationId, LocalDateTime currentTime);
List<ApplicationAmendmentRequestEntity> findAmendmentsDueForExpiration(LocalDateTime currentTime);
@Query("SELECT DISTINCT a.applicationEvaluationEntity " +
"FROM ApplicationAmendmentRequestEntity a " +
"WHERE a.applicationEvaluationEntity.id IN :applicationEvaluationIds " +
"AND a.isDeleted = false " +
"AND NOT EXISTS ( " +
" SELECT 1 FROM ApplicationAmendmentRequestEntity activeAmendment" +
" WHERE activeAmendment.applicationEvaluationEntity.id = a.applicationEvaluationEntity.id " +
" AND activeAmendment.status <> 'CLOSE' " +
" AND activeAmendment.isDeleted = false) ")
Set<ApplicationEvaluationEntity> findEvaluationsWithoutActiveAmendmentsByIds(@Param("applicationEvaluationIds") Set<Long> applicationEvaluationIds);
}