Done ticket GEPAFINBE-90
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
package net.gepafin.tendermanagement.scheduler;
|
||||
|
||||
import net.gepafin.tendermanagement.entities.ApplicationEvaluationEntity;
|
||||
import net.gepafin.tendermanagement.enums.ApplicationEvaluationStatusTypeEnum;
|
||||
import net.gepafin.tendermanagement.repositories.ApplicationEvaluationRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
public class ApplicationEvaluationScheduler {
|
||||
|
||||
|
||||
@Autowired
|
||||
private ApplicationEvaluationRepository applicationEvaluationRepository;
|
||||
|
||||
@Scheduled(cron = "0 0 1 * * ?") // Runs daily at midnight
|
||||
public void updateExpiredEvaluations() {
|
||||
LocalDateTime currentDate = LocalDateTime.now();
|
||||
List<ApplicationEvaluationEntity> evaluations = applicationEvaluationRepository.findAllByIsDeletedFalseAndEndDateBefore(currentDate);
|
||||
|
||||
for (ApplicationEvaluationEntity evaluation : evaluations) {
|
||||
evaluation.setStatus(ApplicationEvaluationStatusTypeEnum.EXPIRED.getValue());
|
||||
}
|
||||
applicationEvaluationRepository.saveAll(evaluations);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,26 @@
|
||||
package net.gepafin.tendermanagement.scheduler;
|
||||
|
||||
import net.gepafin.tendermanagement.dao.ApplicationAmendmentRequestDao;
|
||||
import net.gepafin.tendermanagement.dao.EmailNotificationDao;
|
||||
import net.gepafin.tendermanagement.entities.ApplicationAmendmentRequestEntity;
|
||||
import net.gepafin.tendermanagement.entities.ApplicationEntity;
|
||||
import net.gepafin.tendermanagement.entities.ApplicationEvaluationEntity;
|
||||
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||
import net.gepafin.tendermanagement.enums.ApplicationAmendmentRequestEnum;
|
||||
import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum;
|
||||
import net.gepafin.tendermanagement.repositories.ApplicationAmendmentRequestRepository;
|
||||
import net.gepafin.tendermanagement.repositories.ApplicationEvaluationRepository;
|
||||
import net.gepafin.tendermanagement.repositories.ApplicationRepository;
|
||||
import net.gepafin.tendermanagement.repositories.UserRepository;
|
||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Component
|
||||
public class NotificationScheduler {
|
||||
@@ -31,6 +37,12 @@ public class NotificationScheduler {
|
||||
@Autowired
|
||||
EmailNotificationDao emailNotificationDao;
|
||||
|
||||
@Autowired
|
||||
private ApplicationAmendmentRequestDao applicationAmendmentRequestDao;
|
||||
|
||||
@Autowired
|
||||
private ApplicationEvaluationRepository applicationEvaluationRepository;
|
||||
|
||||
@Scheduled(cron = "0 0 1 * * ?")
|
||||
void sendNotificationForRejectedApplicationToBeneficiary() {
|
||||
|
||||
@@ -40,17 +52,18 @@ public class NotificationScheduler {
|
||||
LocalDateTime today = LocalDateTime.now();
|
||||
|
||||
for (ApplicationEntity application : applicationsList) {
|
||||
ApplicationAmendmentRequestEntity amendmentRequest = getAmendmentRequestForApplication(application, amendmentRequestList);
|
||||
|
||||
if (amendmentRequest != null) {
|
||||
LocalDateTime requestDate = amendmentRequest.getStartDate();
|
||||
if (requestDate.plusDays(amendmentRequest.getResponseDays()).isBefore(today)) {
|
||||
// Update the application status to REJECTED
|
||||
List<ApplicationAmendmentRequestEntity> amendmentRequestEntities = applicationAmendmentRepository.findActiveAmendments(application.getId(), DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||
List<ApplicationAmendmentRequestEntity> applicationAmendmentRequestEntities = new ArrayList<>();
|
||||
if (amendmentRequestEntities != null && Boolean.FALSE.equals(amendmentRequestEntities.isEmpty())) {
|
||||
for (ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity : amendmentRequestEntities) {
|
||||
if (amendmentRequestEntities.size() == 1) {
|
||||
applicationAmendmentRequestDao.calculateEndDateAndSuspensionDays(applicationAmendmentRequestEntity.getApplicationEvaluationEntity());
|
||||
}
|
||||
application.setStatus(ApplicationStatusTypeEnum.REJECTED.getValue());
|
||||
applicationRepository.save(application);
|
||||
amendmentRequest.setStatus(ApplicationAmendmentRequestEnum.CLOSE.getValue());
|
||||
applicationAmendmentRepository.save(amendmentRequest);
|
||||
emailNotificationDao.sendApplicationFailureNotificationEmail(amendmentRequest);
|
||||
applicationAmendmentRequestEntity.setStatus(ApplicationAmendmentRequestEnum.CLOSE.getValue());
|
||||
applicationAmendmentRepository.save(applicationAmendmentRequestEntity);
|
||||
emailNotificationDao.sendApplicationFailureNotificationEmail(applicationAmendmentRequestEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user