Email notification for document and application status.
This commit is contained in:
@@ -1,72 +1,65 @@
|
||||
//package net.gepafin.tendermanagement.scheduler;
|
||||
//
|
||||
//import net.gepafin.tendermanagement.dao.CommunicationDao;
|
||||
//import net.gepafin.tendermanagement.entities.ApplicationAmendmentRequestEntity;
|
||||
//import net.gepafin.tendermanagement.entities.ApplicationEntity;
|
||||
//import net.gepafin.tendermanagement.entities.UserEntity;
|
||||
//import net.gepafin.tendermanagement.repositories.ApplicationAmendmentRepository;
|
||||
//import net.gepafin.tendermanagement.repositories.ApplicationRepository;
|
||||
//import net.gepafin.tendermanagement.repositories.UserRepository;
|
||||
//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.List;
|
||||
//
|
||||
//@Component
|
||||
//public class NotificationScheduler {
|
||||
//
|
||||
// @Autowired
|
||||
// UserRepository userRepository;
|
||||
//
|
||||
// @Autowired
|
||||
// ApplicationRepository applicationRepository;
|
||||
//
|
||||
// @Autowired
|
||||
// ApplicationAmendmentRepository applicationAmendmentRepository;
|
||||
//
|
||||
// @Autowired
|
||||
// CommunicationDao communicationDao;
|
||||
//
|
||||
// @Scheduled(cron = "0 0/10 * * * ?", zone = "Asia/Kolkata")
|
||||
// void sendNotificationForRejectedApplicationToBeneficiary() {
|
||||
//
|
||||
// List<ApplicationEntity> applicationsList = applicationRepository.findByIsDeletedFalse();
|
||||
// List<ApplicationAmendmentRequestEntity> amendmentRequestList = applicationAmendmentRepository.findByIsDeletedFalse();
|
||||
//
|
||||
// LocalDateTime today = LocalDateTime.now();
|
||||
//
|
||||
// for (ApplicationEntity application : applicationsList) {
|
||||
// ApplicationAmendmentRequestEntity amendmentRequest = getAmendmentRequestForApplication(application, amendmentRequestList);
|
||||
//
|
||||
// if (amendmentRequest != null) {
|
||||
// LocalDateTime requestDate = amendmentRequest.getStartedDate();
|
||||
//
|
||||
// // Check if requestDate + 7 days is less than or equal to today
|
||||
// if (requestDate.plusDays(7).isAfter(today)) {
|
||||
// // Update the application status to REJECTED
|
||||
// application.setStatus("REJECTED");
|
||||
// applicationRepository.save(application); // Save updated application
|
||||
//
|
||||
// // Update the amendment request status to CLOSED
|
||||
// amendmentRequest.setStatus("CLOSED");
|
||||
// applicationAmendmentRepository.save(amendmentRequest); // Save updated amendment request
|
||||
//
|
||||
// // Get the user associated with the application
|
||||
// UserEntity user = userRepository.findById(application.getUserId()).orElse(null); // Adjust according to your UserRepository's method
|
||||
//
|
||||
// // Send email notification if user is found
|
||||
// if (user != null && user.getEmail() != null) {
|
||||
// communicationDao.sendApplicationFailureNotificationEmail(user.getEmail(), application);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// private ApplicationAmendmentRequestEntity getAmendmentRequestForApplication(ApplicationEntity application, List<ApplicationAmendmentRequestEntity> amendmentRequestList) {
|
||||
//
|
||||
// return amendmentRequestList.stream().filter(request -> request.getId().equals(application.getId())).findFirst().orElse(null);
|
||||
// }
|
||||
//}
|
||||
package net.gepafin.tendermanagement.scheduler;
|
||||
|
||||
import net.gepafin.tendermanagement.dao.EmailNotificationDao;
|
||||
import net.gepafin.tendermanagement.entities.ApplicationAmendmentRequestEntity;
|
||||
import net.gepafin.tendermanagement.entities.ApplicationEntity;
|
||||
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||
import net.gepafin.tendermanagement.repositories.ApplicationAmendmentRequestRepository;
|
||||
import net.gepafin.tendermanagement.repositories.ApplicationRepository;
|
||||
import net.gepafin.tendermanagement.repositories.UserRepository;
|
||||
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.List;
|
||||
|
||||
@Component
|
||||
public class NotificationScheduler {
|
||||
|
||||
@Autowired
|
||||
UserRepository userRepository;
|
||||
|
||||
@Autowired
|
||||
ApplicationRepository applicationRepository;
|
||||
|
||||
@Autowired
|
||||
ApplicationAmendmentRequestRepository applicationAmendmentRepository;
|
||||
|
||||
@Autowired
|
||||
EmailNotificationDao emailNotificationDao;
|
||||
|
||||
@Scheduled(cron = "0 0/1 * * * ?")
|
||||
void sendNotificationForRejectedApplicationToBeneficiary() {
|
||||
|
||||
List<ApplicationEntity> applicationsList = applicationRepository.findByIsDeletedFalse();
|
||||
List<ApplicationAmendmentRequestEntity> amendmentRequestList = applicationAmendmentRepository.findByIsDeletedFalse();
|
||||
|
||||
LocalDateTime today = LocalDateTime.now();
|
||||
|
||||
for (ApplicationEntity application : applicationsList) {
|
||||
ApplicationAmendmentRequestEntity amendmentRequest = getAmendmentRequestForApplication(application, amendmentRequestList);
|
||||
|
||||
if (amendmentRequest != null) {
|
||||
LocalDateTime requestDate = amendmentRequest.getCreatedDate();
|
||||
|
||||
// Eg :- Check if requestDate + 7 days is less than or equal to today
|
||||
if (requestDate.plusDays(amendmentRequest.getResponseDays()).isAfter(today)) {
|
||||
// Update the application status to REJECTED
|
||||
application.setStatus("REJECTED");
|
||||
applicationRepository.save(application); // Save updated application
|
||||
|
||||
// Update the amendment request status to CLOSED
|
||||
// amendmentRequest.setStatus("CLOSE");
|
||||
// applicationAmendmentRepository.save(amendmentRequest); // Save updated amendment request
|
||||
emailNotificationDao.sendApplicationFailureNotificationEmail(amendmentRequest);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private ApplicationAmendmentRequestEntity getAmendmentRequestForApplication(ApplicationEntity application, List<ApplicationAmendmentRequestEntity> amendmentRequestList) {
|
||||
|
||||
return amendmentRequestList.stream().filter(request -> request.getId().equals(application.getId())).findFirst().orElse(null);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user