updated code for Amendment scheduler
This commit is contained in:
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user