Email notification for document and application status.
This commit is contained in:
@@ -59,7 +59,7 @@ public class ApplicationAmendmentRequestDao {
|
|||||||
private ApplicationFormFieldRepository applicationFormFieldRepository;
|
private ApplicationFormFieldRepository applicationFormFieldRepository;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private CommunicationDao communicationDao;
|
private EmailNotificationDao emailNotificationDao;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ApplicationEvaluationService applicationEvaluationService;
|
private ApplicationEvaluationService applicationEvaluationService;
|
||||||
@@ -177,7 +177,7 @@ public class ApplicationAmendmentRequestDao {
|
|||||||
ApplicationAmendmentRequestResponse applicationAmendmentRequestResponse = convertEntityToResponse(applicationAmendmentRequestEntity);
|
ApplicationAmendmentRequestResponse applicationAmendmentRequestResponse = convertEntityToResponse(applicationAmendmentRequestEntity);
|
||||||
log.info("Application submitted successfully for amendment", applicationAmendmentRequestResponse);
|
log.info("Application submitted successfully for amendment", applicationAmendmentRequestResponse);
|
||||||
if(Boolean.TRUE.equals(applicationAmendmentRequestResponse.isSendEmail())){
|
if(Boolean.TRUE.equals(applicationAmendmentRequestResponse.isSendEmail())){
|
||||||
communicationDao.sendMailToNotifyBeneficiaryRegardingNewAmendment(applicationAmendmentRequestEntity);
|
emailNotificationDao.sendMailToNotifyBeneficiaryRegardingNewAmendment(applicationAmendmentRequestEntity);
|
||||||
}
|
}
|
||||||
return applicationAmendmentRequestResponse;
|
return applicationAmendmentRequestResponse;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,33 +29,51 @@ public class ApplicationEvaluationDao {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ApplicationEvaluationRepository applicationEvaluationRepository;
|
private ApplicationEvaluationRepository applicationEvaluationRepository;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ApplicationService applicationService;
|
private ApplicationService applicationService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private CallRepository callRepository;
|
private CallRepository callRepository;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ApplicationRepository applicationRepository;
|
private ApplicationRepository applicationRepository;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserService userService;
|
private UserService userService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private EvaluationCriteriaRepository evaluationCriteriaRepository;
|
private EvaluationCriteriaRepository evaluationCriteriaRepository;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private FormRepository formRepository;
|
private FormRepository formRepository;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private CallTargetAudienceChecklistRepository callTargetAudienceChecklistRepository;
|
private CallTargetAudienceChecklistRepository callTargetAudienceChecklistRepository;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private DocumentRepository documentRepository;
|
private DocumentRepository documentRepository;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ApplicationFormRepository applicationFormRepository;
|
private ApplicationFormRepository applicationFormRepository;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ApplicationFormFieldRepository applicationFormFieldRepository;
|
private ApplicationFormFieldRepository applicationFormFieldRepository;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private AssignedApplicationsRepository assignedApplicationsRepository;
|
private AssignedApplicationsRepository assignedApplicationsRepository;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private CriteriaFormFieldRepository criteriaFormFieldRepository;
|
private CriteriaFormFieldRepository criteriaFormFieldRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private EmailNotificationDao emailNotificationDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
ApplicationAmendmentRequestRepository applicationAmendmentRequestRepository;
|
||||||
|
|
||||||
private ApplicationEvaluationEntity convertToEntity(UserEntity user, ApplicationEvaluationRequest req, Long assignedApplciationId) {
|
private ApplicationEvaluationEntity convertToEntity(UserEntity user, ApplicationEvaluationRequest req, Long assignedApplciationId) {
|
||||||
|
|
||||||
ApplicationEvaluationEntity entity = new ApplicationEvaluationEntity();
|
ApplicationEvaluationEntity entity = new ApplicationEvaluationEntity();
|
||||||
|
|
||||||
AssignedApplicationsEntity assignedApplications = assignedApplicationsRepository.findByIdAndIsDeletedFalse(assignedApplciationId).orElse(null);
|
AssignedApplicationsEntity assignedApplications = assignedApplicationsRepository.findByIdAndIsDeletedFalse(assignedApplciationId).orElse(null);
|
||||||
@@ -73,6 +91,7 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private ApplicationEvaluationResponse convertToResponse(ApplicationEvaluationEntity entity) {
|
private ApplicationEvaluationResponse convertToResponse(ApplicationEvaluationEntity entity) {
|
||||||
|
|
||||||
ApplicationEvaluationResponse response = new ApplicationEvaluationResponse();
|
ApplicationEvaluationResponse response = new ApplicationEvaluationResponse();
|
||||||
populateBasicDetails(entity, response);
|
populateBasicDetails(entity, response);
|
||||||
|
|
||||||
@@ -91,16 +110,16 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void populateBasicDetails(ApplicationEvaluationEntity entity, ApplicationEvaluationResponse response) {
|
private void populateBasicDetails(ApplicationEvaluationEntity entity, ApplicationEvaluationResponse response) {
|
||||||
|
|
||||||
response.setId(entity.getId());
|
response.setId(entity.getId());
|
||||||
response.setApplicationId(entity.getApplicationId());
|
response.setApplicationId(entity.getApplicationId());
|
||||||
|
|
||||||
List<AssignedApplicationsEntity> assignedApplicationsList =
|
List<AssignedApplicationsEntity> assignedApplicationsList = assignedApplicationsRepository.findAllByApplicationId(entity.getApplicationId());
|
||||||
assignedApplicationsRepository.findAllByApplicationId(entity.getApplicationId());
|
|
||||||
|
|
||||||
if (assignedApplicationsList.isEmpty()) {
|
if (assignedApplicationsList.isEmpty()) {
|
||||||
response.setAssignedApplicationId(null);
|
response.setAssignedApplicationId(null);
|
||||||
} else {
|
} else {
|
||||||
// AssignedApplicationsEntity assignedApplications = assignedApplicationsList.get(0);
|
// AssignedApplicationsEntity assignedApplications = assignedApplicationsList.get(0);
|
||||||
response.setAssignedApplicationId(entity.getAssignedApplicationsEntity().getId());
|
response.setAssignedApplicationId(entity.getAssignedApplicationsEntity().getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,20 +129,18 @@ public class ApplicationEvaluationDao {
|
|||||||
response.setUpdatedDate(entity.getUpdatedDate());
|
response.setUpdatedDate(entity.getUpdatedDate());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void setCriteriaResponses(ApplicationEvaluationEntity entity, ApplicationEvaluationResponse response, List<EvaluationCriteriaEntity> evaluationCriterias) {
|
private void setCriteriaResponses(ApplicationEvaluationEntity entity, ApplicationEvaluationResponse response, List<EvaluationCriteriaEntity> evaluationCriterias) {
|
||||||
List<CriteriaResponse> criteriaResponsesFromEntity = entity.getCriteria() != null
|
|
||||||
? Utils.convertJsonToList(entity.getCriteria(), new TypeReference<List<CriteriaResponse>>() {
|
List<CriteriaResponse> criteriaResponsesFromEntity = entity.getCriteria() != null ?
|
||||||
})
|
Utils.convertJsonToList(entity.getCriteria(), new TypeReference<List<CriteriaResponse>>() {
|
||||||
: new ArrayList<>();
|
}) :
|
||||||
|
new ArrayList<>();
|
||||||
|
|
||||||
List<CriteriaResponse> criteriaResponsesFromDB = getCriteriaResponse(entity.getApplicationId());
|
List<CriteriaResponse> criteriaResponsesFromDB = getCriteriaResponse(entity.getApplicationId());
|
||||||
addMissingCriteriaResponses(criteriaResponsesFromEntity, criteriaResponsesFromDB, entity.getApplicationId());
|
addMissingCriteriaResponses(criteriaResponsesFromEntity, criteriaResponsesFromDB, entity.getApplicationId());
|
||||||
criteriaResponsesFromEntity.forEach(criteriaResponse -> {
|
criteriaResponsesFromEntity.forEach(criteriaResponse -> {
|
||||||
EvaluationCriteriaEntity matchingEvaluationCriteria = evaluationCriterias.stream()
|
EvaluationCriteriaEntity matchingEvaluationCriteria = evaluationCriterias.stream()
|
||||||
.filter(evaluationCriteria -> evaluationCriteria.getId().equals(criteriaResponse.getId()))
|
.filter(evaluationCriteria -> evaluationCriteria.getId().equals(criteriaResponse.getId())).findFirst().orElse(null);
|
||||||
.findFirst()
|
|
||||||
.orElse(null);
|
|
||||||
|
|
||||||
if (matchingEvaluationCriteria != null) {
|
if (matchingEvaluationCriteria != null) {
|
||||||
criteriaResponse.setLabel(matchingEvaluationCriteria.getLookupData().getValue());
|
criteriaResponse.setLabel(matchingEvaluationCriteria.getLookupData().getValue());
|
||||||
@@ -138,9 +155,8 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void addMissingCriteriaResponses(List<CriteriaResponse> criteriaResponsesFromEntity, List<CriteriaResponse> criteriaResponsesFromDB, Long applicationId) {
|
private void addMissingCriteriaResponses(List<CriteriaResponse> criteriaResponsesFromEntity, List<CriteriaResponse> criteriaResponsesFromDB, Long applicationId) {
|
||||||
Set<Long> existingCriteriaIds = criteriaResponsesFromEntity.stream()
|
|
||||||
.map(CriteriaResponse::getId)
|
Set<Long> existingCriteriaIds = criteriaResponsesFromEntity.stream().map(CriteriaResponse::getId).collect(Collectors.toSet());
|
||||||
.collect(Collectors.toSet());
|
|
||||||
|
|
||||||
for (CriteriaResponse dbResponse : criteriaResponsesFromDB) {
|
for (CriteriaResponse dbResponse : criteriaResponsesFromDB) {
|
||||||
if (!existingCriteriaIds.contains(dbResponse.getId())) {
|
if (!existingCriteriaIds.contains(dbResponse.getId())) {
|
||||||
@@ -152,8 +168,8 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<CriteriaMappedField> getMappedFieldsForCriteria(Long evaluationCriteriaId, Long applicationId) {
|
private List<CriteriaMappedField> getMappedFieldsForCriteria(Long evaluationCriteriaId, Long applicationId) {
|
||||||
List<CriteriaFormFieldEntity> criteriaFormFields = criteriaFormFieldRepository
|
|
||||||
.findByEvaluationCriteriaIdAndIsDeletedFalse(evaluationCriteriaId);
|
List<CriteriaFormFieldEntity> criteriaFormFields = criteriaFormFieldRepository.findByEvaluationCriteriaIdAndIsDeletedFalse(evaluationCriteriaId);
|
||||||
List<CriteriaMappedField> mappedFields = new ArrayList<>();
|
List<CriteriaMappedField> mappedFields = new ArrayList<>();
|
||||||
|
|
||||||
Set<String> uniqueFieldIds = new HashSet<>();
|
Set<String> uniqueFieldIds = new HashSet<>();
|
||||||
@@ -170,10 +186,7 @@ public class ApplicationEvaluationDao {
|
|||||||
FormEntity formEntity = formRepository.findById(formField.getFormId()).orElse(null);
|
FormEntity formEntity = formRepository.findById(formField.getFormId()).orElse(null);
|
||||||
if (formEntity != null) {
|
if (formEntity != null) {
|
||||||
List<ContentResponseBean> contentBeans = Utils.convertJsonStringToList(formEntity.getContent(), ContentResponseBean.class);
|
List<ContentResponseBean> contentBeans = Utils.convertJsonStringToList(formEntity.getContent(), ContentResponseBean.class);
|
||||||
contentBeans.stream()
|
contentBeans.stream().filter(contentBean -> contentBean.getId().equals(formFieldId)).findFirst().ifPresent(contentBean -> {
|
||||||
.filter(contentBean -> contentBean.getId().equals(formFieldId))
|
|
||||||
.findFirst()
|
|
||||||
.ifPresent(contentBean -> {
|
|
||||||
String label = contentBean.getLabel();
|
String label = contentBean.getLabel();
|
||||||
if (contentBean.getSettings() != null) {
|
if (contentBean.getSettings() != null) {
|
||||||
for (SettingResponseBean setting : contentBean.getSettings()) {
|
for (SettingResponseBean setting : contentBean.getSettings()) {
|
||||||
@@ -187,8 +200,8 @@ public class ApplicationEvaluationDao {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Optional<ApplicationFormFieldEntity> formFieldEntityOptional = applicationFormFieldRepository
|
Optional<ApplicationFormFieldEntity> formFieldEntityOptional = applicationFormFieldRepository.findByFieldIdAndApplicationFormIdAndApplicationFormApplicationId(
|
||||||
.findByFieldIdAndApplicationFormIdAndApplicationFormApplicationId(formFieldId, applicationForm.getId(), applicationId);
|
formFieldId, applicationForm.getId(), applicationId);
|
||||||
|
|
||||||
formFieldEntityOptional.ifPresent(field -> mappedField.setFieldValue(field.getFieldValue()));
|
formFieldEntityOptional.ifPresent(field -> mappedField.setFieldValue(field.getFieldValue()));
|
||||||
|
|
||||||
@@ -201,19 +214,18 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setChecklistResponses(ApplicationEvaluationEntity entity, ApplicationEvaluationResponse response, List<CallTargetAudienceChecklistEntity> checklistEntities) {
|
private void setChecklistResponses(ApplicationEvaluationEntity entity, ApplicationEvaluationResponse response, List<CallTargetAudienceChecklistEntity> checklistEntities) {
|
||||||
List<ChecklistResponse> checklistResponsesFromEntity = entity.getChecklist() != null
|
|
||||||
? Utils.convertJsonToList(entity.getChecklist(), new TypeReference<List<ChecklistResponse>>() {
|
List<ChecklistResponse> checklistResponsesFromEntity = entity.getChecklist() != null ?
|
||||||
})
|
Utils.convertJsonToList(entity.getChecklist(), new TypeReference<List<ChecklistResponse>>() {
|
||||||
: new ArrayList<>();
|
}) :
|
||||||
|
new ArrayList<>();
|
||||||
|
|
||||||
List<ChecklistResponse> checklistResponsesFromDB = getChecklistResponse(entity.getApplicationId());
|
List<ChecklistResponse> checklistResponsesFromDB = getChecklistResponse(entity.getApplicationId());
|
||||||
addMissingChecklistResponses(checklistResponsesFromEntity, checklistResponsesFromDB);
|
addMissingChecklistResponses(checklistResponsesFromEntity, checklistResponsesFromDB);
|
||||||
|
|
||||||
checklistResponsesFromEntity.forEach(checklistResponse -> {
|
checklistResponsesFromEntity.forEach(checklistResponse -> {
|
||||||
CallTargetAudienceChecklistEntity matchingChecklist = checklistEntities.stream()
|
CallTargetAudienceChecklistEntity matchingChecklist = checklistEntities.stream().filter(checklistEntity -> checklistEntity.getId().equals(checklistResponse.getId()))
|
||||||
.filter(checklistEntity -> checklistEntity.getId().equals(checklistResponse.getId()))
|
.findFirst().orElse(null);
|
||||||
.findFirst()
|
|
||||||
.orElse(null);
|
|
||||||
|
|
||||||
if (matchingChecklist != null) {
|
if (matchingChecklist != null) {
|
||||||
checklistResponse.setLabel(matchingChecklist.getLookupData().getValue());
|
checklistResponse.setLabel(matchingChecklist.getLookupData().getValue());
|
||||||
@@ -224,9 +236,8 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void addMissingChecklistResponses(List<ChecklistResponse> checklistResponsesFromEntity, List<ChecklistResponse> checklistResponsesFromDB) {
|
private void addMissingChecklistResponses(List<ChecklistResponse> checklistResponsesFromEntity, List<ChecklistResponse> checklistResponsesFromDB) {
|
||||||
Set<Long> existingChecklistIds = checklistResponsesFromEntity.stream()
|
|
||||||
.map(ChecklistResponse::getId)
|
Set<Long> existingChecklistIds = checklistResponsesFromEntity.stream().map(ChecklistResponse::getId).collect(Collectors.toSet());
|
||||||
.collect(Collectors.toSet());
|
|
||||||
|
|
||||||
for (ChecklistResponse dbResponse : checklistResponsesFromDB) {
|
for (ChecklistResponse dbResponse : checklistResponsesFromDB) {
|
||||||
if (!existingChecklistIds.contains(dbResponse.getId())) {
|
if (!existingChecklistIds.contains(dbResponse.getId())) {
|
||||||
@@ -236,10 +247,9 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setFieldResponses(ApplicationEvaluationEntity entity, ApplicationEvaluationResponse response, List<ApplicationFormEntity> applicationFormEntities) {
|
private void setFieldResponses(ApplicationEvaluationEntity entity, ApplicationEvaluationResponse response, List<ApplicationFormEntity> applicationFormEntities) {
|
||||||
List<FieldResponse> fieldResponsesFromEntity = entity.getFile() != null
|
|
||||||
? Utils.convertJsonToList(entity.getFile(), new TypeReference<List<FieldResponse>>() {
|
List<FieldResponse> fieldResponsesFromEntity = entity.getFile() != null ? Utils.convertJsonToList(entity.getFile(), new TypeReference<List<FieldResponse>>() {
|
||||||
})
|
}) : new ArrayList<>();
|
||||||
: new ArrayList<>();
|
|
||||||
List<FieldResponse> fieldResponsesFromDB = getFieldResponses(entity.getApplicationId());
|
List<FieldResponse> fieldResponsesFromDB = getFieldResponses(entity.getApplicationId());
|
||||||
addMissingFieldResponses(fieldResponsesFromEntity, fieldResponsesFromDB);
|
addMissingFieldResponses(fieldResponsesFromEntity, fieldResponsesFromDB);
|
||||||
|
|
||||||
@@ -267,10 +277,9 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
fieldResponse.setLabel(label);
|
fieldResponse.setLabel(label);
|
||||||
|
|
||||||
Optional<ApplicationFormFieldEntity> optionalFormField = applicationFormFieldRepository
|
Optional<ApplicationFormFieldEntity> optionalFormField =
|
||||||
.findByFieldIdAndApplicationFormIdAndApplicationFormApplicationId(
|
applicationFormFieldRepository.findByFieldIdAndApplicationFormIdAndApplicationFormApplicationId(
|
||||||
fieldResponse.getId(), applicationForm.getId(), entity.getApplicationId()
|
fieldResponse.getId(), applicationForm.getId(), entity.getApplicationId());
|
||||||
);
|
|
||||||
|
|
||||||
if (optionalFormField.isPresent()) {
|
if (optionalFormField.isPresent()) {
|
||||||
ApplicationFormFieldEntity formField = optionalFormField.get();
|
ApplicationFormFieldEntity formField = optionalFormField.get();
|
||||||
@@ -307,9 +316,8 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void addMissingFieldResponses(List<FieldResponse> fieldResponsesFromEntity, List<FieldResponse> fieldResponsesFromDB) {
|
private void addMissingFieldResponses(List<FieldResponse> fieldResponsesFromEntity, List<FieldResponse> fieldResponsesFromDB) {
|
||||||
Set<String> existingFieldIds = fieldResponsesFromEntity.stream()
|
|
||||||
.map(FieldResponse::getId)
|
Set<String> existingFieldIds = fieldResponsesFromEntity.stream().map(FieldResponse::getId).collect(Collectors.toSet());
|
||||||
.collect(Collectors.toSet());
|
|
||||||
|
|
||||||
for (FieldResponse dbResponse : fieldResponsesFromDB) {
|
for (FieldResponse dbResponse : fieldResponsesFromDB) {
|
||||||
if (!existingFieldIds.contains(dbResponse.getId())) {
|
if (!existingFieldIds.contains(dbResponse.getId())) {
|
||||||
@@ -319,6 +327,7 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setApplicationDetails(ApplicationEvaluationResponse response, ApplicationEvaluationEntity entity) {
|
private void setApplicationDetails(ApplicationEvaluationResponse response, ApplicationEvaluationEntity entity) {
|
||||||
|
|
||||||
ApplicationEntity application = applicationService.validateApplication(entity.getApplicationId() != null ? entity.getApplicationId() : null);
|
ApplicationEntity application = applicationService.validateApplication(entity.getApplicationId() != null ? entity.getApplicationId() : null);
|
||||||
UserEntity user = userService.validateUser(application.getUserId());
|
UserEntity user = userService.validateUser(application.getUserId());
|
||||||
|
|
||||||
@@ -329,16 +338,16 @@ public class ApplicationEvaluationDao {
|
|||||||
String beneficiary = String.join(" ", firstName, lastName).trim();
|
String beneficiary = String.join(" ", firstName, lastName).trim();
|
||||||
response.setApplicationStatus(ApplicationStatusTypeEnum.valueOf(application.getStatus()));
|
response.setApplicationStatus(ApplicationStatusTypeEnum.valueOf(application.getStatus()));
|
||||||
response.setBeneficiary(beneficiary);
|
response.setBeneficiary(beneficiary);
|
||||||
response.setMinScore(call.getThreshold()!=null?call.getThreshold():null);
|
response.setMinScore(call.getThreshold() != null ? call.getThreshold() : null);
|
||||||
response.setCallName(application.getCall().getName()!=null?application.getCall().getName():null);
|
response.setCallName(application.getCall().getName() != null ? application.getCall().getName() : null);
|
||||||
response.setProtocolNumber(application.getProtocol() != null ? application.getProtocol().getProtocolNumber() : null);
|
response.setProtocolNumber(application.getProtocol() != null ? application.getProtocol().getProtocolNumber() : null);
|
||||||
response.setSubmissionDate(application.getSubmissionDate() != null ? application.getSubmissionDate() : null);
|
response.setSubmissionDate(application.getSubmissionDate() != null ? application.getSubmissionDate() : null);
|
||||||
response.setEvaluationDate(application.getSubmissionDate() != null ? application.getSubmissionDate().plusDays(30) : null);
|
response.setEvaluationDate(application.getSubmissionDate() != null ? application.getSubmissionDate().plusDays(30) : null);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public ApplicationEvaluationResponse createOrUpdateApplicationEvaluation(UserEntity user, ApplicationEvaluationRequest req, Long assignedApplciationId) {
|
public ApplicationEvaluationResponse createOrUpdateApplicationEvaluation(UserEntity user, ApplicationEvaluationRequest req, Long assignedApplciationId) {
|
||||||
|
|
||||||
Optional<ApplicationEvaluationEntity> existingEntityOptional = applicationEvaluationRepository.findByAssignedApplicationsEntity_IdAndIsDeletedFalse(assignedApplciationId);
|
Optional<ApplicationEvaluationEntity> existingEntityOptional = applicationEvaluationRepository.findByAssignedApplicationsEntity_IdAndIsDeletedFalse(assignedApplciationId);
|
||||||
ApplicationEvaluationEntity entity;
|
ApplicationEvaluationEntity entity;
|
||||||
|
|
||||||
@@ -358,34 +367,28 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<ChecklistRequest> filterNonNullChecklist(List<ChecklistRequest> checklistRequests) {
|
private List<ChecklistRequest> filterNonNullChecklist(List<ChecklistRequest> checklistRequests) {
|
||||||
return checklistRequests.stream()
|
|
||||||
.filter(request -> request.getValid() != null)
|
return checklistRequests.stream().filter(request -> request.getValid() != null).collect(Collectors.toList());
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<CriteriaRequest> filterNonNullCriteria(List<CriteriaRequest> criteriaRequests) {
|
private List<CriteriaRequest> filterNonNullCriteria(List<CriteriaRequest> criteriaRequests) {
|
||||||
return criteriaRequests.stream()
|
|
||||||
.filter(request -> request.getScore() != null && request.getValid() != null)
|
return criteriaRequests.stream().filter(request -> request.getScore() != null && request.getValid() != null).collect(Collectors.toList());
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<FieldRequest> filterNonNullFields(List<FieldRequest> fieldRequests) {
|
private List<FieldRequest> filterNonNullFields(List<FieldRequest> fieldRequests) {
|
||||||
return fieldRequests.stream()
|
|
||||||
.filter(request -> request.getValid() != null)
|
return fieldRequests.stream().filter(request -> request.getValid() != null).collect(Collectors.toList());
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<CriteriaRequest> processCriteria(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
private List<CriteriaRequest> processCriteria(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
||||||
List<CriteriaResponse> existingCriteriaList = entity.getCriteria() != null
|
|
||||||
? Utils.convertJsonToList(entity.getCriteria(), new TypeReference<List<CriteriaResponse>>() {
|
|
||||||
})
|
|
||||||
: new ArrayList<>();
|
|
||||||
|
|
||||||
Map<Long, CriteriaResponse> existingCriteriaMap = existingCriteriaList.stream()
|
List<CriteriaResponse> existingCriteriaList = entity.getCriteria() != null ? Utils.convertJsonToList(entity.getCriteria(), new TypeReference<List<CriteriaResponse>>() {
|
||||||
.collect(Collectors.toMap(CriteriaResponse::getId, criteria -> criteria));
|
}) : new ArrayList<>();
|
||||||
|
|
||||||
List<CriteriaRequest> updatedCriteriaList = req.getCriteria().stream()
|
Map<Long, CriteriaResponse> existingCriteriaMap = existingCriteriaList.stream().collect(Collectors.toMap(CriteriaResponse::getId, criteria -> criteria));
|
||||||
.map(incoming -> {
|
|
||||||
|
List<CriteriaRequest> updatedCriteriaList = req.getCriteria().stream().map(incoming -> {
|
||||||
CriteriaRequest request = new CriteriaRequest();
|
CriteriaRequest request = new CriteriaRequest();
|
||||||
request.setId(incoming.getId());
|
request.setId(incoming.getId());
|
||||||
request.setScore(incoming.getScore());
|
request.setScore(incoming.getScore());
|
||||||
@@ -397,38 +400,31 @@ public class ApplicationEvaluationDao {
|
|||||||
request.setValid(incoming.getValid() != null ? incoming.getValid() : null);
|
request.setValid(incoming.getValid() != null ? incoming.getValid() : null);
|
||||||
}
|
}
|
||||||
return request;
|
return request;
|
||||||
})
|
}).collect(Collectors.toList());
|
||||||
.collect(Collectors.toList());
|
|
||||||
|
|
||||||
List<CriteriaRequest> missingCriteriaRequests = existingCriteriaList.stream()
|
List<CriteriaRequest> missingCriteriaRequests = existingCriteriaList.stream()
|
||||||
.filter(existing -> !updatedCriteriaList.stream()
|
.filter(existing -> !updatedCriteriaList.stream().map(CriteriaRequest::getId).toList().contains(existing.getId())).map(existing -> {
|
||||||
.map(CriteriaRequest::getId)
|
|
||||||
.toList()
|
|
||||||
.contains(existing.getId()))
|
|
||||||
.map(existing -> {
|
|
||||||
CriteriaRequest request = new CriteriaRequest();
|
CriteriaRequest request = new CriteriaRequest();
|
||||||
request.setId(existing.getId());
|
request.setId(existing.getId());
|
||||||
request.setScore(existing.getScore());
|
request.setScore(existing.getScore());
|
||||||
request.setValid(existing.getValid());
|
request.setValid(existing.getValid());
|
||||||
return request;
|
return request;
|
||||||
})
|
}).toList();
|
||||||
.toList();
|
|
||||||
|
|
||||||
updatedCriteriaList.addAll(missingCriteriaRequests);
|
updatedCriteriaList.addAll(missingCriteriaRequests);
|
||||||
return updatedCriteriaList;
|
return updatedCriteriaList;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<ChecklistRequest> processChecklist(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
private List<ChecklistRequest> processChecklist(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
||||||
List<ChecklistResponse> existingChecklistList = entity.getChecklist() != null
|
|
||||||
? Utils.convertJsonToList(entity.getChecklist(), new TypeReference<List<ChecklistResponse>>() {
|
|
||||||
})
|
|
||||||
: new ArrayList<>();
|
|
||||||
|
|
||||||
Map<Long, ChecklistResponse> existingChecklistMap = existingChecklistList.stream()
|
List<ChecklistResponse> existingChecklistList = entity.getChecklist() != null ?
|
||||||
.collect(Collectors.toMap(ChecklistResponse::getId, checklist -> checklist));
|
Utils.convertJsonToList(entity.getChecklist(), new TypeReference<List<ChecklistResponse>>() {
|
||||||
|
}) :
|
||||||
|
new ArrayList<>();
|
||||||
|
|
||||||
List<ChecklistRequest> updatedChecklistList = req.getChecklist().stream()
|
Map<Long, ChecklistResponse> existingChecklistMap = existingChecklistList.stream().collect(Collectors.toMap(ChecklistResponse::getId, checklist -> checklist));
|
||||||
.map(incoming -> {
|
|
||||||
|
List<ChecklistRequest> updatedChecklistList = req.getChecklist().stream().map(incoming -> {
|
||||||
ChecklistRequest request = new ChecklistRequest();
|
ChecklistRequest request = new ChecklistRequest();
|
||||||
request.setId(incoming.getId());
|
request.setId(incoming.getId());
|
||||||
request.setValid(incoming.getValid());
|
request.setValid(incoming.getValid());
|
||||||
@@ -438,37 +434,28 @@ public class ApplicationEvaluationDao {
|
|||||||
request.setValid(null);
|
request.setValid(null);
|
||||||
}
|
}
|
||||||
return request;
|
return request;
|
||||||
})
|
}).collect(Collectors.toList());
|
||||||
.collect(Collectors.toList());
|
|
||||||
|
|
||||||
List<ChecklistRequest> missingChecklistRequests = existingChecklistList.stream()
|
List<ChecklistRequest> missingChecklistRequests = existingChecklistList.stream()
|
||||||
.filter(existing -> !updatedChecklistList.stream()
|
.filter(existing -> !updatedChecklistList.stream().map(ChecklistRequest::getId).toList().contains(existing.getId())).map(existing -> {
|
||||||
.map(ChecklistRequest::getId)
|
|
||||||
.toList()
|
|
||||||
.contains(existing.getId()))
|
|
||||||
.map(existing -> {
|
|
||||||
ChecklistRequest request = new ChecklistRequest();
|
ChecklistRequest request = new ChecklistRequest();
|
||||||
request.setId(existing.getId());
|
request.setId(existing.getId());
|
||||||
request.setValid(existing.getValid() != null ? existing.getValid() : null);
|
request.setValid(existing.getValid() != null ? existing.getValid() : null);
|
||||||
return request;
|
return request;
|
||||||
})
|
}).toList();
|
||||||
.toList();
|
|
||||||
|
|
||||||
updatedChecklistList.addAll(missingChecklistRequests);
|
updatedChecklistList.addAll(missingChecklistRequests);
|
||||||
return updatedChecklistList;
|
return updatedChecklistList;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<FieldRequest> processField(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
private List<FieldRequest> processField(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
||||||
List<FieldResponse> existingFieldList = entity.getFile() != null
|
|
||||||
? Utils.convertJsonToList(entity.getFile(), new TypeReference<List<FieldResponse>>() {
|
|
||||||
})
|
|
||||||
: new ArrayList<>();
|
|
||||||
|
|
||||||
Map<String, FieldResponse> existingFieldMap = existingFieldList.stream()
|
List<FieldResponse> existingFieldList = entity.getFile() != null ? Utils.convertJsonToList(entity.getFile(), new TypeReference<List<FieldResponse>>() {
|
||||||
.collect(Collectors.toMap(FieldResponse::getId, field -> field));
|
}) : new ArrayList<>();
|
||||||
|
|
||||||
List<FieldRequest> updatedFieldList = req.getFiles().stream()
|
Map<String, FieldResponse> existingFieldMap = existingFieldList.stream().collect(Collectors.toMap(FieldResponse::getId, field -> field));
|
||||||
.map(incoming -> {
|
|
||||||
|
List<FieldRequest> updatedFieldList = req.getFiles().stream().map(incoming -> {
|
||||||
FieldRequest request = new FieldRequest();
|
FieldRequest request = new FieldRequest();
|
||||||
request.setId(incoming.getId());
|
request.setId(incoming.getId());
|
||||||
request.setValid(incoming.getValid());
|
request.setValid(incoming.getValid());
|
||||||
@@ -478,69 +465,59 @@ public class ApplicationEvaluationDao {
|
|||||||
request.setValid(incoming.getValid() != null ? incoming.getValid() : null);
|
request.setValid(incoming.getValid() != null ? incoming.getValid() : null);
|
||||||
}
|
}
|
||||||
return request;
|
return request;
|
||||||
})
|
}).collect(Collectors.toList());
|
||||||
.collect(Collectors.toList());
|
|
||||||
|
|
||||||
List<FieldRequest> missingFieldRequests = existingFieldList.stream()
|
List<FieldRequest> missingFieldRequests = existingFieldList.stream()
|
||||||
.filter(existing -> !updatedFieldList.stream()
|
.filter(existing -> !updatedFieldList.stream().map(FieldRequest::getId).toList().contains(existing.getId())).map(existing -> {
|
||||||
.map(FieldRequest::getId)
|
|
||||||
.toList()
|
|
||||||
.contains(existing.getId()))
|
|
||||||
.map(existing -> {
|
|
||||||
FieldRequest request = new FieldRequest();
|
FieldRequest request = new FieldRequest();
|
||||||
request.setId(existing.getId());
|
request.setId(existing.getId());
|
||||||
request.setValid(existing.getValid());
|
request.setValid(existing.getValid());
|
||||||
return request;
|
return request;
|
||||||
})
|
}).toList();
|
||||||
.toList();
|
|
||||||
|
|
||||||
updatedFieldList.addAll(missingFieldRequests);
|
updatedFieldList.addAll(missingFieldRequests);
|
||||||
return updatedFieldList;
|
return updatedFieldList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationEvaluationEntity validateApplicationEvaluation(Long id) {
|
public ApplicationEvaluationEntity validateApplicationEvaluation(Long id) {
|
||||||
|
|
||||||
Optional<ApplicationEvaluationEntity> entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(id);
|
Optional<ApplicationEvaluationEntity> entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(id);
|
||||||
if (entityOptional.isEmpty()) {
|
if (entityOptional.isEmpty()) {
|
||||||
throw new ResourceNotFoundException(Status.NOT_FOUND,
|
throw new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.APPLICATION_EVALUATION_NOT_FOUND, id));
|
||||||
Translator.toLocale(GepafinConstant.APPLICATION_EVALUATION_NOT_FOUND, id));
|
|
||||||
}
|
}
|
||||||
return entityOptional.get();
|
return entityOptional.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public List<ApplicationEvaluationResponse> getApplicationEvaluationByApplicationId(UserEntity user, Long applicationId, Long assignedApplicationId) {
|
public List<ApplicationEvaluationResponse> getApplicationEvaluationByApplicationId(UserEntity user, Long applicationId, Long assignedApplicationId) {
|
||||||
|
|
||||||
if (applicationId != null && assignedApplicationId == null) {
|
if (applicationId != null && assignedApplicationId == null) {
|
||||||
applicationService.validateApplication(applicationId);
|
applicationService.validateApplication(applicationId);
|
||||||
List<ApplicationEvaluationEntity> evaluationEntities = applicationEvaluationRepository.findByApplicationIdAndIsDeletedFalse(applicationId);
|
List<ApplicationEvaluationEntity> evaluationEntities = applicationEvaluationRepository.findByApplicationIdAndIsDeletedFalse(applicationId);
|
||||||
return evaluationEntities.stream()
|
return evaluationEntities.stream().map(this::convertToResponse).collect(Collectors.toList());
|
||||||
.map(this::convertToResponse)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Optional<ApplicationEvaluationEntity> entityOptional =
|
Optional<ApplicationEvaluationEntity> entityOptional = (applicationId != null && assignedApplicationId != null) ?
|
||||||
(applicationId != null && assignedApplicationId != null)
|
applicationEvaluationRepository.findByApplicationIdAndAssignedApplicationsEntity_IdAndIsDeletedFalse(applicationId, assignedApplicationId) :
|
||||||
? applicationEvaluationRepository.findByApplicationIdAndAssignedApplicationsEntity_IdAndIsDeletedFalse(applicationId, assignedApplicationId)
|
applicationEvaluationRepository.findByAssignedApplicationsEntity_IdAndIsDeletedFalse(assignedApplicationId);
|
||||||
: applicationEvaluationRepository.findByAssignedApplicationsEntity_IdAndIsDeletedFalse(assignedApplicationId);
|
|
||||||
|
|
||||||
return entityOptional
|
return entityOptional.map(entity -> Collections.singletonList(convertToResponse(entity)))
|
||||||
.map(entity -> Collections.singletonList(convertToResponse(entity)))
|
|
||||||
.orElseGet(() -> Collections.singletonList(getEvaluationResponseByApplicationid(user, applicationId, assignedApplicationId)));
|
.orElseGet(() -> Collections.singletonList(getEvaluationResponseByApplicationid(user, applicationId, assignedApplicationId)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public ApplicationEvaluationResponse getEvaluationResponseByApplicationid(UserEntity user, Long applicationId, Long assignedApplicationId) {
|
public ApplicationEvaluationResponse getEvaluationResponseByApplicationid(UserEntity user, Long applicationId, Long assignedApplicationId) {
|
||||||
|
|
||||||
ApplicationEvaluationEntity entity = new ApplicationEvaluationEntity();
|
ApplicationEvaluationEntity entity = new ApplicationEvaluationEntity();
|
||||||
ApplicationEvaluationResponse response = new ApplicationEvaluationResponse();
|
ApplicationEvaluationResponse response = new ApplicationEvaluationResponse();
|
||||||
CallEntity call = null;
|
CallEntity call = null;
|
||||||
ApplicationEntity application=null;
|
ApplicationEntity application = null;
|
||||||
AssignedApplicationsEntity assignedApplications = null;
|
AssignedApplicationsEntity assignedApplications = null;
|
||||||
if (applicationId != null && assignedApplicationId==null) {
|
if (applicationId != null && assignedApplicationId == null) {
|
||||||
application = applicationService.validateApplication(applicationId);
|
application = applicationService.validateApplication(applicationId);
|
||||||
call = callRepository.findCallEntityByApplicationId(applicationId);
|
call = callRepository.findCallEntityByApplicationId(applicationId);
|
||||||
assignedApplications = assignedApplicationsRepository.findByApplicationIdAndIsDeletedFalse(applicationId).orElse(null);
|
assignedApplications = assignedApplicationsRepository.findByApplicationIdAndIsDeletedFalse(applicationId).orElse(null);
|
||||||
} else if (assignedApplicationId != null) {
|
} else if (assignedApplicationId != null) {
|
||||||
assignedApplications = assignedApplicationsRepository.findByIdAndIsDeletedFalse(assignedApplicationId).orElseThrow(() ->
|
assignedApplications = assignedApplicationsRepository.findByIdAndIsDeletedFalse(assignedApplicationId)
|
||||||
new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.ASSIGNED_APPLICATION_NOT_FOUND_MSG)));
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.ASSIGNED_APPLICATION_NOT_FOUND_MSG)));
|
||||||
application = applicationService.validateApplication(assignedApplications.getApplication().getId());
|
application = applicationService.validateApplication(assignedApplications.getApplication().getId());
|
||||||
call = callRepository.findCallEntityByApplicationId(application.getId());
|
call = callRepository.findCallEntityByApplicationId(application.getId());
|
||||||
|
|
||||||
@@ -556,7 +533,7 @@ public class ApplicationEvaluationDao {
|
|||||||
response.setNote(null);
|
response.setNote(null);
|
||||||
response.setApplicationStatus(ApplicationStatusTypeEnum.valueOf(application.getStatus()));
|
response.setApplicationStatus(ApplicationStatusTypeEnum.valueOf(application.getStatus()));
|
||||||
response.setStatus(ApplicationEvaluationStatusTypeEnum.valueOf(ApplicationEvaluationStatusTypeEnum.OPEN.getValue()));
|
response.setStatus(ApplicationEvaluationStatusTypeEnum.valueOf(ApplicationEvaluationStatusTypeEnum.OPEN.getValue()));
|
||||||
response.setMinScore(call.getThreshold()!=null?call.getThreshold():null);
|
response.setMinScore(call.getThreshold() != null ? call.getThreshold() : null);
|
||||||
setCriteriaResponses(entity, application.getId(), response, evaluationCriterias);
|
setCriteriaResponses(entity, application.getId(), response, evaluationCriterias);
|
||||||
setChecklistResponses(entity, application.getId(), response, checklistEntities);
|
setChecklistResponses(entity, application.getId(), response, checklistEntities);
|
||||||
setFileResponses(entity, application.getId(), response, applicationFormEntities);
|
setFileResponses(entity, application.getId(), response, applicationFormEntities);
|
||||||
@@ -566,17 +543,15 @@ public class ApplicationEvaluationDao {
|
|||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setCriteriaResponses(ApplicationEvaluationEntity entity, Long applicationId, ApplicationEvaluationResponse response, List<EvaluationCriteriaEntity> evaluationCriterias) {
|
private void setCriteriaResponses(ApplicationEvaluationEntity entity, Long applicationId, ApplicationEvaluationResponse response,
|
||||||
List<CriteriaResponse> criteriaResponses = entity.getCriteria() != null
|
List<EvaluationCriteriaEntity> evaluationCriterias) {
|
||||||
? Utils.convertJsonToList(entity.getCriteria(), new TypeReference<List<CriteriaResponse>>() {
|
|
||||||
})
|
List<CriteriaResponse> criteriaResponses = entity.getCriteria() != null ? Utils.convertJsonToList(entity.getCriteria(), new TypeReference<List<CriteriaResponse>>() {
|
||||||
: getCriteriaResponse(applicationId);
|
}) : getCriteriaResponse(applicationId);
|
||||||
|
|
||||||
criteriaResponses.forEach(criteriaResponse -> {
|
criteriaResponses.forEach(criteriaResponse -> {
|
||||||
EvaluationCriteriaEntity matchingEvaluationCriteria = evaluationCriterias.stream()
|
EvaluationCriteriaEntity matchingEvaluationCriteria = evaluationCriterias.stream()
|
||||||
.filter(evaluationCriteria -> evaluationCriteria.getId().equals(criteriaResponse.getId()))
|
.filter(evaluationCriteria -> evaluationCriteria.getId().equals(criteriaResponse.getId())).findFirst().orElse(null);
|
||||||
.findFirst()
|
|
||||||
.orElse(null);
|
|
||||||
|
|
||||||
List<ApplicationFormEntity> applicationForms = applicationFormRepository.findByApplicationId(applicationId);
|
List<ApplicationFormEntity> applicationForms = applicationFormRepository.findByApplicationId(applicationId);
|
||||||
Map<String, CriteriaMappedField> mappedFieldMap = new HashMap<>();
|
Map<String, CriteriaMappedField> mappedFieldMap = new HashMap<>();
|
||||||
@@ -585,8 +560,7 @@ public class ApplicationEvaluationDao {
|
|||||||
criteriaResponse.setLabel(matchingEvaluationCriteria.getLookupData().getValue());
|
criteriaResponse.setLabel(matchingEvaluationCriteria.getLookupData().getValue());
|
||||||
criteriaResponse.setMaxScore(matchingEvaluationCriteria.getScore());
|
criteriaResponse.setMaxScore(matchingEvaluationCriteria.getScore());
|
||||||
|
|
||||||
List<CriteriaFormFieldEntity> criteriaFormFields = criteriaFormFieldRepository
|
List<CriteriaFormFieldEntity> criteriaFormFields = criteriaFormFieldRepository.findByEvaluationCriteriaIdAndIsDeletedFalse(matchingEvaluationCriteria.getId());
|
||||||
.findByEvaluationCriteriaIdAndIsDeletedFalse(matchingEvaluationCriteria.getId());
|
|
||||||
|
|
||||||
for (ApplicationFormEntity applicationForm : applicationForms) {
|
for (ApplicationFormEntity applicationForm : applicationForms) {
|
||||||
for (CriteriaFormFieldEntity criteriaFormField : criteriaFormFields) {
|
for (CriteriaFormFieldEntity criteriaFormField : criteriaFormFields) {
|
||||||
@@ -598,10 +572,7 @@ public class ApplicationEvaluationDao {
|
|||||||
|
|
||||||
if (formEntity != null) {
|
if (formEntity != null) {
|
||||||
List<ContentResponseBean> contentResponseBeans = Utils.convertJsonStringToList(formEntity.getContent(), ContentResponseBean.class);
|
List<ContentResponseBean> contentResponseBeans = Utils.convertJsonStringToList(formEntity.getContent(), ContentResponseBean.class);
|
||||||
contentResponseBeans.stream()
|
contentResponseBeans.stream().filter(bean -> bean.getId().equals(formFieldId)).findFirst().ifPresent(contentResponseBean -> {
|
||||||
.filter(bean -> bean.getId().equals(formFieldId))
|
|
||||||
.findFirst()
|
|
||||||
.ifPresent(contentResponseBean -> {
|
|
||||||
String label = contentResponseBean.getLabel();
|
String label = contentResponseBean.getLabel();
|
||||||
if (contentResponseBean.getSettings() != null) {
|
if (contentResponseBean.getSettings() != null) {
|
||||||
for (SettingResponseBean setting : contentResponseBean.getSettings()) {
|
for (SettingResponseBean setting : contentResponseBean.getSettings()) {
|
||||||
@@ -614,8 +585,9 @@ public class ApplicationEvaluationDao {
|
|||||||
mappedField.setFieldLabel(label);
|
mappedField.setFieldLabel(label);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
Optional<ApplicationFormFieldEntity> formFieldEntityOptional = applicationFormFieldRepository
|
Optional<ApplicationFormFieldEntity> formFieldEntityOptional =
|
||||||
.findByFieldIdAndApplicationFormIdAndApplicationFormApplicationId(formFieldId, applicationForm.getId(), applicationId);
|
applicationFormFieldRepository.findByFieldIdAndApplicationFormIdAndApplicationFormApplicationId(
|
||||||
|
formFieldId, applicationForm.getId(), applicationId);
|
||||||
|
|
||||||
formFieldEntityOptional.ifPresent(formField -> mappedField.setFieldValue(formField.getFieldValue()));
|
formFieldEntityOptional.ifPresent(formField -> mappedField.setFieldValue(formField.getFieldValue()));
|
||||||
mappedFieldMap.put(formFieldId, mappedField);
|
mappedFieldMap.put(formFieldId, mappedField);
|
||||||
@@ -629,17 +601,15 @@ public class ApplicationEvaluationDao {
|
|||||||
response.setCriteria(criteriaResponses);
|
response.setCriteria(criteriaResponses);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setChecklistResponses(ApplicationEvaluationEntity entity, Long applicationId, ApplicationEvaluationResponse response, List<CallTargetAudienceChecklistEntity> checklistEntities) {
|
private void setChecklistResponses(ApplicationEvaluationEntity entity, Long applicationId, ApplicationEvaluationResponse response,
|
||||||
List<ChecklistResponse> checklistResponses = entity.getChecklist() != null
|
List<CallTargetAudienceChecklistEntity> checklistEntities) {
|
||||||
? Utils.convertJsonToList(entity.getChecklist(), new TypeReference<List<ChecklistResponse>>() {
|
|
||||||
})
|
List<ChecklistResponse> checklistResponses = entity.getChecklist() != null ? Utils.convertJsonToList(entity.getChecklist(), new TypeReference<List<ChecklistResponse>>() {
|
||||||
: getChecklistResponse(applicationId);
|
}) : getChecklistResponse(applicationId);
|
||||||
|
|
||||||
checklistResponses.forEach(checklistResponse -> {
|
checklistResponses.forEach(checklistResponse -> {
|
||||||
CallTargetAudienceChecklistEntity matchingChecklist = checklistEntities.stream()
|
CallTargetAudienceChecklistEntity matchingChecklist = checklistEntities.stream().filter(checklistEntity -> checklistEntity.getId().equals(checklistResponse.getId()))
|
||||||
.filter(checklistEntity -> checklistEntity.getId().equals(checklistResponse.getId()))
|
.findFirst().orElse(null);
|
||||||
.findFirst()
|
|
||||||
.orElse(null);
|
|
||||||
|
|
||||||
if (matchingChecklist != null) {
|
if (matchingChecklist != null) {
|
||||||
checklistResponse.setLabel(matchingChecklist.getLookupData().getValue());
|
checklistResponse.setLabel(matchingChecklist.getLookupData().getValue());
|
||||||
@@ -649,11 +619,11 @@ public class ApplicationEvaluationDao {
|
|||||||
response.setChecklist(checklistResponses);
|
response.setChecklist(checklistResponses);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setFileResponses(ApplicationEvaluationEntity entity, Long applicationId, ApplicationEvaluationResponse response, List<ApplicationFormEntity> applicationFormEntities) {
|
private void setFileResponses(ApplicationEvaluationEntity entity, Long applicationId, ApplicationEvaluationResponse response,
|
||||||
List<FieldResponse> fieldResponses = entity.getFile() != null
|
List<ApplicationFormEntity> applicationFormEntities) {
|
||||||
? Utils.convertJsonToList(entity.getFile(), new TypeReference<List<FieldResponse>>() {
|
|
||||||
})
|
List<FieldResponse> fieldResponses = entity.getFile() != null ? Utils.convertJsonToList(entity.getFile(), new TypeReference<List<FieldResponse>>() {
|
||||||
: getFieldResponses(applicationId);
|
}) : getFieldResponses(applicationId);
|
||||||
Set<String> processedFieldIds = new HashSet<>();
|
Set<String> processedFieldIds = new HashSet<>();
|
||||||
|
|
||||||
fieldResponses.forEach(fieldResponse -> {
|
fieldResponses.forEach(fieldResponse -> {
|
||||||
@@ -678,8 +648,9 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
fieldResponse.setLabel(label);
|
fieldResponse.setLabel(label);
|
||||||
|
|
||||||
Optional<ApplicationFormFieldEntity> optionalFormField = applicationFormFieldRepository
|
Optional<ApplicationFormFieldEntity> optionalFormField =
|
||||||
.findByFieldIdAndApplicationFormIdAndApplicationFormApplicationId(fieldResponse.getId(), applicationForm.getId(), applicationId);
|
applicationFormFieldRepository.findByFieldIdAndApplicationFormIdAndApplicationFormApplicationId(
|
||||||
|
fieldResponse.getId(), applicationForm.getId(), applicationId);
|
||||||
|
|
||||||
if (optionalFormField.isPresent() && optionalFormField.get().getFieldValue() != null) {
|
if (optionalFormField.isPresent() && optionalFormField.get().getFieldValue() != null) {
|
||||||
String[] documentIds = optionalFormField.get().getFieldValue().split(",");
|
String[] documentIds = optionalFormField.get().getFieldValue().split(",");
|
||||||
@@ -715,8 +686,8 @@ public class ApplicationEvaluationDao {
|
|||||||
response.setFiles(fieldResponses);
|
response.setFiles(fieldResponses);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void setApplicationDetails(ApplicationEvaluationResponse response, Long applicationId, UserEntity user) {
|
private void setApplicationDetails(ApplicationEvaluationResponse response, Long applicationId, UserEntity user) {
|
||||||
|
|
||||||
ApplicationEntity application = applicationService.validateApplication(applicationId);
|
ApplicationEntity application = applicationService.validateApplication(applicationId);
|
||||||
userService.validateUser(application.getUserId());
|
userService.validateUser(application.getUserId());
|
||||||
String firstName = user.getFirstName() != null ? user.getFirstName() : "";
|
String firstName = user.getFirstName() != null ? user.getFirstName() : "";
|
||||||
@@ -725,7 +696,7 @@ public class ApplicationEvaluationDao {
|
|||||||
String beneficiary = String.join(" ", firstName, lastName).trim();
|
String beneficiary = String.join(" ", firstName, lastName).trim();
|
||||||
response.setBeneficiary(beneficiary);
|
response.setBeneficiary(beneficiary);
|
||||||
|
|
||||||
response.setCallName(application.getCall().getName()!=null?application.getCall().getName():null);
|
response.setCallName(application.getCall().getName() != null ? application.getCall().getName() : null);
|
||||||
response.setProtocolNumber(application.getProtocol() != null ? application.getProtocol().getProtocolNumber() : null);
|
response.setProtocolNumber(application.getProtocol() != null ? application.getProtocol().getProtocolNumber() : null);
|
||||||
response.setSubmissionDate(application.getSubmissionDate() != null ? application.getSubmissionDate() : null);
|
response.setSubmissionDate(application.getSubmissionDate() != null ? application.getSubmissionDate() : null);
|
||||||
response.setEvaluationDate(application.getSubmissionDate() != null ? application.getSubmissionDate().plusDays(30) : null);
|
response.setEvaluationDate(application.getSubmissionDate() != null ? application.getSubmissionDate().plusDays(30) : null);
|
||||||
@@ -733,6 +704,7 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<CriteriaResponse> getCriteriaResponse(Long applicationId) {
|
List<CriteriaResponse> getCriteriaResponse(Long applicationId) {
|
||||||
|
|
||||||
CallEntity call = callRepository.findCallEntityByApplicationId(applicationId);
|
CallEntity call = callRepository.findCallEntityByApplicationId(applicationId);
|
||||||
List<EvaluationCriteriaEntity> evaluationCriterias = evaluationCriteriaRepository.findByCallId(call.getId());
|
List<EvaluationCriteriaEntity> evaluationCriterias = evaluationCriteriaRepository.findByCallId(call.getId());
|
||||||
|
|
||||||
@@ -744,8 +716,7 @@ public class ApplicationEvaluationDao {
|
|||||||
response.setMaxScore(criteria.getScore());
|
response.setMaxScore(criteria.getScore());
|
||||||
response.setValid(null);
|
response.setValid(null);
|
||||||
|
|
||||||
List<CriteriaFormFieldEntity> criteriaFormFields = criteriaFormFieldRepository
|
List<CriteriaFormFieldEntity> criteriaFormFields = criteriaFormFieldRepository.findByEvaluationCriteriaIdAndIsDeletedFalse(criteria.getId());
|
||||||
.findByEvaluationCriteriaIdAndIsDeletedFalse(criteria.getId());
|
|
||||||
|
|
||||||
List<CriteriaMappedField> mappedFields = new ArrayList<>();
|
List<CriteriaMappedField> mappedFields = new ArrayList<>();
|
||||||
Set<String> processedFormFieldIds = new HashSet<>();
|
Set<String> processedFormFieldIds = new HashSet<>();
|
||||||
@@ -760,12 +731,8 @@ public class ApplicationEvaluationDao {
|
|||||||
|
|
||||||
FormEntity formEntity = formRepository.findById(criteriaFormField.getFormId()).orElse(null);
|
FormEntity formEntity = formRepository.findById(criteriaFormField.getFormId()).orElse(null);
|
||||||
if (formEntity != null) {
|
if (formEntity != null) {
|
||||||
List<ContentResponseBean> contentResponseBeans = Utils.convertJsonStringToList(
|
List<ContentResponseBean> contentResponseBeans = Utils.convertJsonStringToList(formEntity.getContent(), ContentResponseBean.class);
|
||||||
formEntity.getContent(), ContentResponseBean.class);
|
contentResponseBeans.stream().filter(bean -> bean.getId().equals(criteriaFormField.getFormFieldId())).findFirst().ifPresent(contentResponseBean -> {
|
||||||
contentResponseBeans.stream()
|
|
||||||
.filter(bean -> bean.getId().equals(criteriaFormField.getFormFieldId()))
|
|
||||||
.findFirst()
|
|
||||||
.ifPresent(contentResponseBean -> {
|
|
||||||
String label = contentResponseBean.getLabel();
|
String label = contentResponseBean.getLabel();
|
||||||
if (contentResponseBean.getSettings() != null) {
|
if (contentResponseBean.getSettings() != null) {
|
||||||
for (SettingResponseBean setting : contentResponseBean.getSettings()) {
|
for (SettingResponseBean setting : contentResponseBean.getSettings()) {
|
||||||
@@ -779,13 +746,9 @@ public class ApplicationEvaluationDao {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
applicationFormRepository.findByApplicationId(applicationId).stream()
|
applicationFormRepository.findByApplicationId(applicationId).stream().flatMap(
|
||||||
.flatMap(applicationForm -> applicationFormFieldRepository
|
applicationForm -> applicationFormFieldRepository.findByFieldIdAndApplicationFormIdAndApplicationFormApplicationId(criteriaFormField.getFormFieldId(),
|
||||||
.findByFieldIdAndApplicationFormIdAndApplicationFormApplicationId(
|
applicationForm.getId(), applicationId).stream()).findFirst().ifPresent(formField -> mappedField.setFieldValue(formField.getFieldValue()));
|
||||||
criteriaFormField.getFormFieldId(), applicationForm.getId(), applicationId)
|
|
||||||
.stream())
|
|
||||||
.findFirst()
|
|
||||||
.ifPresent(formField -> mappedField.setFieldValue(formField.getFieldValue()));
|
|
||||||
|
|
||||||
mappedFields.add(mappedField);
|
mappedFields.add(mappedField);
|
||||||
processedFormFieldIds.add(criteriaFormField.getFormFieldId());
|
processedFormFieldIds.add(criteriaFormField.getFormFieldId());
|
||||||
@@ -799,6 +762,7 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<ChecklistResponse> getChecklistResponse(Long applicationId) {
|
List<ChecklistResponse> getChecklistResponse(Long applicationId) {
|
||||||
|
|
||||||
CallEntity call = callRepository.findCallEntityByApplicationId(applicationId);
|
CallEntity call = callRepository.findCallEntityByApplicationId(applicationId);
|
||||||
List<CallTargetAudienceChecklistEntity> checklistEntities = callTargetAudienceChecklistRepository.findByCallId(call.getId());
|
List<CallTargetAudienceChecklistEntity> checklistEntities = callTargetAudienceChecklistRepository.findByCallId(call.getId());
|
||||||
List<ChecklistResponse> checklistResponses = checklistEntities.stream().map(checklist -> {
|
List<ChecklistResponse> checklistResponses = checklistEntities.stream().map(checklist -> {
|
||||||
@@ -814,6 +778,7 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public List<FieldResponse> getFieldResponses(Long applicationId) {
|
public List<FieldResponse> getFieldResponses(Long applicationId) {
|
||||||
|
|
||||||
List<ApplicationFormEntity> applicationFormEntities = applicationFormRepository.findByApplicationId(applicationId);
|
List<ApplicationFormEntity> applicationFormEntities = applicationFormRepository.findByApplicationId(applicationId);
|
||||||
List<FieldResponse> fieldResponses = new ArrayList<>();
|
List<FieldResponse> fieldResponses = new ArrayList<>();
|
||||||
|
|
||||||
@@ -828,8 +793,8 @@ public class ApplicationEvaluationDao {
|
|||||||
String fieldId = contentResponseBean.getId();
|
String fieldId = contentResponseBean.getId();
|
||||||
Long applicationFormId = applicationForm.getId();
|
Long applicationFormId = applicationForm.getId();
|
||||||
|
|
||||||
Optional<ApplicationFormFieldEntity> optionalFormField = applicationFormFieldRepository
|
Optional<ApplicationFormFieldEntity> optionalFormField = applicationFormFieldRepository.findByFieldIdAndApplicationFormIdAndApplicationFormApplicationId(
|
||||||
.findByFieldIdAndApplicationFormIdAndApplicationFormApplicationId(fieldId, applicationFormId, applicationId);
|
fieldId, applicationFormId, applicationId);
|
||||||
|
|
||||||
if (optionalFormField.isPresent()) {
|
if (optionalFormField.isPresent()) {
|
||||||
ApplicationFormFieldEntity formField = optionalFormField.get();
|
ApplicationFormFieldEntity formField = optionalFormField.get();
|
||||||
@@ -881,33 +846,43 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void deleteById(Long id) {
|
public void deleteById(Long id) {
|
||||||
|
|
||||||
ApplicationEvaluationEntity applicationEvaluationEntity = validateApplicationEvaluation(id);
|
ApplicationEvaluationEntity applicationEvaluationEntity = validateApplicationEvaluation(id);
|
||||||
applicationEvaluationEntity.setIsDeleted(true);
|
applicationEvaluationEntity.setIsDeleted(true);
|
||||||
applicationEvaluationEntity = saveApplicationEvaluationEntity(applicationEvaluationEntity);
|
applicationEvaluationEntity = saveApplicationEvaluationEntity(applicationEvaluationEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationEvaluationEntity saveApplicationEvaluationEntity(ApplicationEvaluationEntity applicationEvaluationEntityData) {
|
public ApplicationEvaluationEntity saveApplicationEvaluationEntity(ApplicationEvaluationEntity applicationEvaluationEntityData) {
|
||||||
|
|
||||||
return applicationEvaluationRepository.save(applicationEvaluationEntityData);
|
return applicationEvaluationRepository.save(applicationEvaluationEntityData);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationEvaluationResponse updateApplicationEvaluationStatus(ApplicationEntity application, AssignedApplicationsEntity assignedApplicationsEntity) {
|
public ApplicationEvaluationResponse updateApplicationEvaluationStatus(ApplicationEntity application, AssignedApplicationsEntity assignedApplicationsEntity) {
|
||||||
Optional<ApplicationEvaluationEntity> existingEntityOptional = applicationEvaluationRepository.findByAssignedApplicationsEntity_IdAndIsDeletedFalse(assignedApplicationsEntity.getId());
|
|
||||||
ApplicationEvaluationEntity entity = null;
|
|
||||||
|
|
||||||
|
Optional<ApplicationEvaluationEntity> existingEntityOptional = applicationEvaluationRepository.findByAssignedApplicationsEntity_IdAndIsDeletedFalse(
|
||||||
|
assignedApplicationsEntity.getId());
|
||||||
|
ApplicationEvaluationEntity entity;
|
||||||
|
|
||||||
|
String statusType = application.getStatus();
|
||||||
if (existingEntityOptional.isPresent()) {
|
if (existingEntityOptional.isPresent()) {
|
||||||
ApplicationEvaluationEntity existingEntity = existingEntityOptional.get();
|
ApplicationEvaluationEntity existingEntity = existingEntityOptional.get();
|
||||||
if (Boolean.TRUE.equals(
|
if (Boolean.TRUE.equals(application.getStatus().equals(ApplicationStatusTypeEnum.APPROVED.getValue()) || application.getStatus()
|
||||||
application.getStatus().equals(ApplicationStatusTypeEnum.APPROVED.getValue()) ||
|
.equals(ApplicationStatusTypeEnum.REJECTED.getValue()))) {
|
||||||
application.getStatus().equals(ApplicationStatusTypeEnum.REJECTED.getValue())
|
|
||||||
)) {
|
|
||||||
existingEntity.setStatus(ApplicationEvaluationStatusTypeEnum.CLOSE.getValue());
|
existingEntity.setStatus(ApplicationEvaluationStatusTypeEnum.CLOSE.getValue());
|
||||||
assignedApplicationsEntity.setStatus(AssignedApplicationEnum.CLOSE.getValue());
|
assignedApplicationsEntity.setStatus(AssignedApplicationEnum.CLOSE.getValue());
|
||||||
} entity = applicationEvaluationRepository.save(existingEntity);
|
}
|
||||||
assignedApplicationsEntity=assignedApplicationsRepository.save(assignedApplicationsEntity);
|
entity = applicationEvaluationRepository.save(existingEntity);
|
||||||
|
assignedApplicationsRepository.save(assignedApplicationsEntity);
|
||||||
return convertToResponse(entity);}return null;
|
ApplicationAmendmentRequestEntity amendmentRequest = applicationAmendmentRequestRepository.findByApplicationEvaluationIdAndIsDeletedFalse(existingEntity.getId());
|
||||||
|
if (Boolean.TRUE.equals(statusType.equals((ApplicationStatusTypeEnum.APPROVED.getValue())))) {
|
||||||
|
emailNotificationDao.sendAdmissibilityNotificationEmailForApprovedApplication(amendmentRequest);
|
||||||
|
}
|
||||||
|
if (Boolean.TRUE.equals(statusType.equals((ApplicationStatusTypeEnum.REJECTED.getValue())))) {
|
||||||
|
emailNotificationDao.sendInadmissibilityEmailForRejectedApplication(amendmentRequest);
|
||||||
|
}
|
||||||
|
return convertToResponse(entity);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,25 +3,12 @@ package net.gepafin.tendermanagement.dao;
|
|||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.entities.ApplicationAmendmentRequestEntity;
|
import net.gepafin.tendermanagement.entities.ApplicationAmendmentRequestEntity;
|
||||||
import net.gepafin.tendermanagement.entities.ApplicationEntity;
|
|
||||||
import net.gepafin.tendermanagement.entities.CallEntity;
|
|
||||||
import net.gepafin.tendermanagement.entities.CommunicationEntity;
|
import net.gepafin.tendermanagement.entities.CommunicationEntity;
|
||||||
import net.gepafin.tendermanagement.entities.CompanyEntity;
|
|
||||||
import net.gepafin.tendermanagement.entities.ProtocolEntity;
|
|
||||||
import net.gepafin.tendermanagement.entities.SystemEmailTemplatesEntity;
|
|
||||||
import net.gepafin.tendermanagement.entities.UserEntity;
|
|
||||||
import net.gepafin.tendermanagement.model.request.CommunicationRequestBean;
|
import net.gepafin.tendermanagement.model.request.CommunicationRequestBean;
|
||||||
import net.gepafin.tendermanagement.model.response.ApplicationAmendmentResponse;
|
import net.gepafin.tendermanagement.model.response.ApplicationAmendmentResponse;
|
||||||
import net.gepafin.tendermanagement.model.response.CommunicationResponseBean;
|
import net.gepafin.tendermanagement.model.response.CommunicationResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.response.SystemEmailTemplateResponse;
|
|
||||||
import net.gepafin.tendermanagement.repositories.CommunicationRepository;
|
import net.gepafin.tendermanagement.repositories.CommunicationRepository;
|
||||||
import net.gepafin.tendermanagement.service.ApplicationAmendmentRequestService;
|
import net.gepafin.tendermanagement.service.ApplicationAmendmentRequestService;
|
||||||
import net.gepafin.tendermanagement.service.ApplicationService;
|
|
||||||
import net.gepafin.tendermanagement.service.SystemEmailTemplatesService;
|
|
||||||
import net.gepafin.tendermanagement.service.UserService;
|
|
||||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
|
||||||
import net.gepafin.tendermanagement.util.MailUtil;
|
|
||||||
import net.gepafin.tendermanagement.util.Utils;
|
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@@ -30,9 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class CommunicationDao {
|
public class CommunicationDao {
|
||||||
@@ -44,19 +29,6 @@ public class CommunicationDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
ApplicationAmendmentRequestService applicationAmendmentRequestService;
|
ApplicationAmendmentRequestService applicationAmendmentRequestService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private MailUtil mailUtil;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SystemEmailTemplatesService systemEmailTemplatesService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private ApplicationService applicationService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private UserService userService;
|
|
||||||
|
|
||||||
|
|
||||||
public CommunicationResponseBean addCommentToAmendmentRequest(CommunicationRequestBean communicationReq, Long amendmentId) {
|
public CommunicationResponseBean addCommentToAmendmentRequest(CommunicationRequestBean communicationReq, Long amendmentId) {
|
||||||
|
|
||||||
log.info("Adding communication request...");
|
log.info("Adding communication request...");
|
||||||
@@ -127,123 +99,4 @@ public class CommunicationDao {
|
|||||||
communicationEntity.setCommentedDate(LocalDateTime.now());
|
communicationEntity.setCommentedDate(LocalDateTime.now());
|
||||||
return communicationEntity;
|
return communicationEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendMailToNotifyBeneficiaryRegardingNewAmendment(ApplicationAmendmentRequestEntity applicationAmendmentRequest) {
|
|
||||||
|
|
||||||
ApplicationEntity applicationEntity = applicationService.validateApplication(applicationAmendmentRequest.getApplicationId());
|
|
||||||
|
|
||||||
SystemEmailTemplateResponse systemEmailTemplateResponse = systemEmailTemplatesService.retrieveTemplateByTypeAndCall(
|
|
||||||
SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.DOCUMENTATION_INTEGRATION_REQUEST, applicationEntity.getCall(), null);
|
|
||||||
|
|
||||||
// Create the map for subject placeholders
|
|
||||||
Map<String, String> subjectPlaceholders = new HashMap<>();
|
|
||||||
subjectPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
|
||||||
subjectPlaceholders.put("{{company_name}}", applicationEntity.getCompany().getCompanyName());
|
|
||||||
|
|
||||||
// Create the map for body placeholders
|
|
||||||
Map<String, String> bodyPlaceholders = new HashMap<>();
|
|
||||||
bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
|
||||||
bodyPlaceholders.put("{{protocol_number}}", applicationEntity.getProtocol().getProtocolNumber().toString());
|
|
||||||
bodyPlaceholders.put("{{protocol_date}}", DateTimeUtil.formatLocalDateTime(applicationAmendmentRequest.getProtocol().getCreatedDate(), GepafinConstant.DD_MM_YYYY));
|
|
||||||
bodyPlaceholders.put("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationAmendmentRequest.getProtocol().getTime(), GepafinConstant.HH_MM_SS));
|
|
||||||
bodyPlaceholders.put("{{form_dataInput}}", "");
|
|
||||||
|
|
||||||
// Replace placeholders in the subject and body
|
|
||||||
String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders);
|
|
||||||
String body = Utils.replacePlaceholders(systemEmailTemplateResponse.getHtmlContent(), bodyPlaceholders);
|
|
||||||
UserEntity userEntity = userService.validateUser(applicationEntity.getUserId());
|
|
||||||
mailUtil.sendByMailGun(subject, body, List.of(userEntity.getBeneficiary().getEmail()), null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void sendApplicationFailureNotificationEmail(String userEmail, ApplicationEntity applicationEntity) {
|
|
||||||
|
|
||||||
CallEntity call = applicationEntity.getCall();
|
|
||||||
CompanyEntity company = applicationEntity.getCompany();
|
|
||||||
ProtocolEntity protocol = applicationEntity.getProtocol();
|
|
||||||
SystemEmailTemplateResponse systemEmailTemplateResponse = systemEmailTemplatesService.retrieveTemplateByTypeAndCall(
|
|
||||||
SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.INADMISSIBILITY_NOTIFICATION_DUE_TO_FAILURE, call, null);
|
|
||||||
|
|
||||||
// Create the map for subject placeholders
|
|
||||||
Map<String, String> subjectPlaceholders = new HashMap<>();
|
|
||||||
subjectPlaceholders.put("{{call_name}}", call.getName());
|
|
||||||
subjectPlaceholders.put("{{company_name}}", company.getCompanyName());
|
|
||||||
|
|
||||||
// Create the map for body placeholders
|
|
||||||
Map<String, String> bodyPlaceholders = new HashMap<>();
|
|
||||||
bodyPlaceholders.put("{{call_name}}", call.getName());
|
|
||||||
bodyPlaceholders.put("{{date_time_emailSend}}", DateTimeUtil.formatLocalDateTime(protocol.getCreatedDate(), GepafinConstant.DD_MM_YYYY_HH_MM));
|
|
||||||
|
|
||||||
// Replace placeholders in the subject and body
|
|
||||||
String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders);
|
|
||||||
String body = Utils.replacePlaceholders(systemEmailTemplateResponse.getHtmlContent(), bodyPlaceholders);
|
|
||||||
|
|
||||||
mailUtil.sendByMailGun(subject, body, List.of(userEmail), null);
|
|
||||||
mailUtil.sendByMailGun(subject, body, List.of(applicationEntity.getCompany().getEmail()), null);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void sendAdmissibilityNotificationEmail(UserEntity userEntity, ApplicationEntity applicationEntity) {
|
|
||||||
|
|
||||||
CallEntity call = applicationEntity.getCall();
|
|
||||||
CompanyEntity company = applicationEntity.getCompany();
|
|
||||||
ProtocolEntity protocol = applicationEntity.getProtocol();
|
|
||||||
SystemEmailTemplateResponse systemEmailTemplateResponse = systemEmailTemplatesService.retrieveTemplateByTypeAndCall(
|
|
||||||
SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.ADMISSIBILITY_NOTIFICATION, call, null);
|
|
||||||
|
|
||||||
// Create the map for subject placeholders
|
|
||||||
Map<String, String> subjectPlaceholders = new HashMap<>();
|
|
||||||
subjectPlaceholders.put("{{call_name}}", call.getName());
|
|
||||||
subjectPlaceholders.put("{{company_name}}", company.getCompanyName());
|
|
||||||
|
|
||||||
// Create the map for body placeholders
|
|
||||||
Map<String, String> bodyPlaceholders = new HashMap<>();
|
|
||||||
bodyPlaceholders.put("{{call_name}}", call.getName());
|
|
||||||
bodyPlaceholders.put("{{protocol_number}}", protocol.getProtocolNumber().toString());
|
|
||||||
bodyPlaceholders.put("{{protocol_date}}", DateTimeUtil.formatCreatedDate(protocol.getCreatedDate()));
|
|
||||||
bodyPlaceholders.put("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(protocol.getTime(), GepafinConstant.HH_MM_SS));
|
|
||||||
|
|
||||||
// Replace placeholders in the subject and body
|
|
||||||
String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders);
|
|
||||||
String body = Utils.replacePlaceholders(systemEmailTemplateResponse.getHtmlContent(), bodyPlaceholders);
|
|
||||||
|
|
||||||
String email = userEntity.getEmail();
|
|
||||||
if (userEntity.getBeneficiary() != null) {
|
|
||||||
email = userEntity.getBeneficiary().getEmail();
|
|
||||||
}
|
|
||||||
mailUtil.sendByMailGun(subject, body, List.of(email), null);
|
|
||||||
mailUtil.sendByMailGun(subject, body, List.of(applicationEntity.getCompany().getEmail()), null);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void sendInadmissibilityTemplateEmail(UserEntity userEntity, ApplicationEntity applicationEntity) {
|
|
||||||
|
|
||||||
CallEntity call = applicationEntity.getCall();
|
|
||||||
CompanyEntity company = applicationEntity.getCompany();
|
|
||||||
ProtocolEntity protocol = applicationEntity.getProtocol();
|
|
||||||
SystemEmailTemplateResponse systemEmailTemplateResponse = systemEmailTemplatesService.retrieveTemplateByTypeAndCall(
|
|
||||||
SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.INADMISSIBILITY_TEMPLATE, call, null);
|
|
||||||
|
|
||||||
// Create the map for subject placeholders
|
|
||||||
Map<String, String> subjectPlaceholders = new HashMap<>();
|
|
||||||
subjectPlaceholders.put("{{call_name}}", call.getName());
|
|
||||||
subjectPlaceholders.put("{{company_name}}", company.getCompanyName());
|
|
||||||
|
|
||||||
// Create the map for body placeholders
|
|
||||||
Map<String, String> bodyPlaceholders = new HashMap<>();
|
|
||||||
bodyPlaceholders.put("{{call_name}}", call.getName());
|
|
||||||
bodyPlaceholders.put("{{protocol_number}}", protocol.getProtocolNumber().toString());
|
|
||||||
bodyPlaceholders.put("{{protocol_date}}", DateTimeUtil.formatCreatedDate(protocol.getCreatedDate()));
|
|
||||||
bodyPlaceholders.put("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(protocol.getTime(), GepafinConstant.HH_MM_SS));
|
|
||||||
bodyPlaceholders.put("{{form_text}}", "YOUR_FORM_TEXT_HERE"); // Replace with actual data input if available
|
|
||||||
|
|
||||||
// Replace placeholders in the subject and body
|
|
||||||
String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders);
|
|
||||||
String body = Utils.replacePlaceholders(systemEmailTemplateResponse.getHtmlContent(), bodyPlaceholders);
|
|
||||||
|
|
||||||
String email = userEntity.getEmail();
|
|
||||||
if (userEntity.getBeneficiary() != null) {
|
|
||||||
email = userEntity.getBeneficiary().getEmail();
|
|
||||||
}
|
|
||||||
mailUtil.sendByMailGun(subject, body, List.of(email), null);
|
|
||||||
mailUtil.sendByMailGun(subject, body, List.of(applicationEntity.getCompany().getEmail()), null);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,158 @@
|
|||||||
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.entities.ApplicationAmendmentRequestEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.ApplicationEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.SystemEmailTemplatesEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||||
|
import net.gepafin.tendermanagement.model.response.SystemEmailTemplateResponse;
|
||||||
|
import net.gepafin.tendermanagement.repositories.CallRepository;
|
||||||
|
import net.gepafin.tendermanagement.service.ApplicationService;
|
||||||
|
import net.gepafin.tendermanagement.service.SystemEmailTemplatesService;
|
||||||
|
import net.gepafin.tendermanagement.service.UserService;
|
||||||
|
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
||||||
|
import net.gepafin.tendermanagement.util.MailUtil;
|
||||||
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class EmailNotificationDao {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MailUtil mailUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SystemEmailTemplatesService systemEmailTemplatesService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ApplicationService applicationService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UserService userService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
CallRepository callRepository;
|
||||||
|
|
||||||
|
public void sendMailToNotifyBeneficiaryRegardingNewAmendment(ApplicationAmendmentRequestEntity applicationAmendmentRequest) {
|
||||||
|
|
||||||
|
ApplicationEntity applicationEntity = applicationService.validateApplication(applicationAmendmentRequest.getApplicationId());
|
||||||
|
|
||||||
|
SystemEmailTemplateResponse systemEmailTemplateResponse = systemEmailTemplatesService.retrieveTemplateByTypeAndCall(
|
||||||
|
SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.DOCUMENTATION_INTEGRATION_REQUEST, applicationEntity.getCall(), null);
|
||||||
|
|
||||||
|
// Create the map for subject placeholders
|
||||||
|
Map<String, String> subjectPlaceholders = new HashMap<>();
|
||||||
|
subjectPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
||||||
|
subjectPlaceholders.put("{{company_name}}", applicationEntity.getCompany().getCompanyName());
|
||||||
|
|
||||||
|
// Create the map for body placeholders
|
||||||
|
Map<String, String> bodyPlaceholders = new HashMap<>();
|
||||||
|
bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
||||||
|
bodyPlaceholders.put("{{protocol_number}}", applicationEntity.getProtocol().getProtocolNumber().toString());
|
||||||
|
bodyPlaceholders.put("{{protocol_date}}", DateTimeUtil.formatLocalDateTime(applicationAmendmentRequest.getProtocol().getCreatedDate(), GepafinConstant.DD_MM_YYYY));
|
||||||
|
bodyPlaceholders.put("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationAmendmentRequest.getProtocol().getTime(), GepafinConstant.HH_MM_SS));
|
||||||
|
bodyPlaceholders.put("{{form_dataInput}}", "");
|
||||||
|
|
||||||
|
// Replace placeholders in the subject and body
|
||||||
|
String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders);
|
||||||
|
String body = Utils.replacePlaceholders(systemEmailTemplateResponse.getHtmlContent(), bodyPlaceholders);
|
||||||
|
UserEntity userEntity = userService.validateUser(applicationEntity.getUserId());
|
||||||
|
mailUtil.sendByMailGun(subject, body, List.of(userEntity.getBeneficiary().getEmail()), null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void sendApplicationFailureNotificationEmail(ApplicationAmendmentRequestEntity amendmentRequest) {
|
||||||
|
|
||||||
|
ApplicationEntity applicationEntity = applicationService.validateApplication(amendmentRequest.getApplicationId());
|
||||||
|
SystemEmailTemplateResponse systemEmailTemplateResponse = systemEmailTemplatesService.retrieveTemplateByTypeAndCall(
|
||||||
|
SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.INADMISSIBILITY_NOTIFICATION_DUE_TO_FAILURE, applicationEntity.getCall(), null);
|
||||||
|
|
||||||
|
// Create the map for subject placeholders
|
||||||
|
Map<String, String> subjectPlaceholders = new HashMap<>();
|
||||||
|
subjectPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
||||||
|
subjectPlaceholders.put("{{company_name}}", applicationEntity.getCompany().getCompanyName());
|
||||||
|
|
||||||
|
// Create the map for body placeholders
|
||||||
|
Map<String, String> bodyPlaceholders = new HashMap<>();
|
||||||
|
bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
||||||
|
bodyPlaceholders.put("{{date_time_emailSend}}", DateTimeUtil.formatLocalDateTime(amendmentRequest.getCreatedDate(), GepafinConstant.DD_MM_YYYY_HH_MM));
|
||||||
|
|
||||||
|
// Replace placeholders in the subject and body
|
||||||
|
String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders);
|
||||||
|
String body = Utils.replacePlaceholders(systemEmailTemplateResponse.getHtmlContent(), bodyPlaceholders);
|
||||||
|
UserEntity userEntity = userService.validateUser(applicationEntity.getUserId());
|
||||||
|
if (userEntity.getBeneficiary().getEmail() != null) {
|
||||||
|
mailUtil.sendByMailGun(subject, body, List.of(userEntity.getBeneficiary().getEmail()), null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void sendAdmissibilityNotificationEmailForApprovedApplication(ApplicationAmendmentRequestEntity amendmentRequest) {
|
||||||
|
|
||||||
|
ApplicationEntity applicationEntity = applicationService.validateApplication(amendmentRequest.getApplicationId());
|
||||||
|
SystemEmailTemplateResponse systemEmailTemplateResponse = systemEmailTemplatesService.retrieveTemplateByTypeAndCall(
|
||||||
|
SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.ADMISSIBILITY_NOTIFICATION, applicationEntity.getCall(), null);
|
||||||
|
|
||||||
|
// Create the map for subject placeholders
|
||||||
|
Map<String, String> subjectPlaceholders = new HashMap<>();
|
||||||
|
subjectPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
||||||
|
subjectPlaceholders.put("{{company_name}}", applicationEntity.getCompany().getCompanyName());
|
||||||
|
|
||||||
|
// Create the map for body placeholders
|
||||||
|
Map<String, String> bodyPlaceholders = new HashMap<>();
|
||||||
|
bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
||||||
|
bodyPlaceholders.put("{{protocol_number}}", applicationEntity.getProtocol().getProtocolNumber().toString());
|
||||||
|
bodyPlaceholders.put("{{protocol_date}}", DateTimeUtil.formatCreatedDate(applicationEntity.getProtocol().getCreatedDate()));
|
||||||
|
bodyPlaceholders.put("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationEntity.getProtocol().getTime(), GepafinConstant.HH_MM_SS));
|
||||||
|
|
||||||
|
// Replace placeholders in the subject and body
|
||||||
|
String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders);
|
||||||
|
String body = Utils.replacePlaceholders(systemEmailTemplateResponse.getHtmlContent(), bodyPlaceholders);
|
||||||
|
|
||||||
|
UserEntity userEntity = userService.validateUser(applicationEntity.getUserId());
|
||||||
|
String userEmail;
|
||||||
|
String companyEmail;
|
||||||
|
if (userEntity.getBeneficiary().getEmail() != null && applicationEntity.getCompany().getEmail() != null) {
|
||||||
|
userEmail = userEntity.getBeneficiary().getEmail();
|
||||||
|
companyEmail = applicationEntity.getCompany().getEmail();
|
||||||
|
mailUtil.sendByMailGun(subject, body, List.of(userEmail), null);
|
||||||
|
mailUtil.sendByMailGun(subject, body, List.of(companyEmail), null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void sendInadmissibilityEmailForRejectedApplication(ApplicationAmendmentRequestEntity amendmentRequest) {
|
||||||
|
|
||||||
|
ApplicationEntity applicationEntity = applicationService.validateApplication(amendmentRequest.getApplicationId());
|
||||||
|
SystemEmailTemplateResponse systemEmailTemplateResponse = systemEmailTemplatesService.retrieveTemplateByTypeAndCall(
|
||||||
|
SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.INADMISSIBILITY_TEMPLATE, applicationEntity.getCall(), null);
|
||||||
|
|
||||||
|
// Create the map for subject placeholders
|
||||||
|
Map<String, String> subjectPlaceholders = new HashMap<>();
|
||||||
|
subjectPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
||||||
|
subjectPlaceholders.put("{{company_name}}", applicationEntity.getCompany().getCompanyName());
|
||||||
|
|
||||||
|
// Create the map for body placeholders
|
||||||
|
Map<String, String> bodyPlaceholders = new HashMap<>();
|
||||||
|
bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
||||||
|
bodyPlaceholders.put("{{protocol_number}}", applicationEntity.getProtocol().getProtocolNumber().toString());
|
||||||
|
bodyPlaceholders.put("{{protocol_date}}", DateTimeUtil.formatCreatedDate(applicationEntity.getProtocol().getCreatedDate()));
|
||||||
|
bodyPlaceholders.put("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationEntity.getProtocol().getTime(), GepafinConstant.HH_MM_SS));
|
||||||
|
bodyPlaceholders.put("{{form_text}}", "");
|
||||||
|
|
||||||
|
// Replace placeholders in the subject and body
|
||||||
|
String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders);
|
||||||
|
String body = Utils.replacePlaceholders(systemEmailTemplateResponse.getHtmlContent(), bodyPlaceholders);
|
||||||
|
|
||||||
|
UserEntity userEntity = userService.validateUser(applicationEntity.getUserId());
|
||||||
|
String userEmail;
|
||||||
|
String companyEmail;
|
||||||
|
if (userEntity.getBeneficiary().getEmail() != null && applicationEntity.getCompany().getEmail() != null) {
|
||||||
|
userEmail = userEntity.getBeneficiary().getEmail();
|
||||||
|
companyEmail = applicationEntity.getCompany().getEmail();
|
||||||
|
mailUtil.sendByMailGun(subject, body, List.of(userEmail), null);
|
||||||
|
mailUtil.sendByMailGun(subject, body, List.of(companyEmail), null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -17,4 +17,10 @@ public interface ApplicationAmendmentRequestRepository extends JpaRepository<App
|
|||||||
"WHERE app.user_id = :userId AND ar.is_deleted = false",
|
"WHERE app.user_id = :userId AND ar.is_deleted = false",
|
||||||
nativeQuery = true)
|
nativeQuery = true)
|
||||||
List<ApplicationAmendmentRequestEntity> findByUserId(@Param("userId") Long userId);
|
List<ApplicationAmendmentRequestEntity> findByUserId(@Param("userId") Long userId);
|
||||||
|
|
||||||
|
List<ApplicationAmendmentRequestEntity> findByIsDeletedFalse();
|
||||||
|
|
||||||
|
@Query(value = "SELECT amr FROM ApplicationAmendmentRequestEntity amr " + "WHERE amr.applicationEvaluationEntity.id = :id " + "AND amr.applicationEvaluationEntity.isDeleted = false")
|
||||||
|
ApplicationAmendmentRequestEntity findByApplicationEvaluationIdAndIsDeletedFalse(Long id);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,72 +1,65 @@
|
|||||||
//package net.gepafin.tendermanagement.scheduler;
|
package net.gepafin.tendermanagement.scheduler;
|
||||||
//
|
|
||||||
//import net.gepafin.tendermanagement.dao.CommunicationDao;
|
import net.gepafin.tendermanagement.dao.EmailNotificationDao;
|
||||||
//import net.gepafin.tendermanagement.entities.ApplicationAmendmentRequestEntity;
|
import net.gepafin.tendermanagement.entities.ApplicationAmendmentRequestEntity;
|
||||||
//import net.gepafin.tendermanagement.entities.ApplicationEntity;
|
import net.gepafin.tendermanagement.entities.ApplicationEntity;
|
||||||
//import net.gepafin.tendermanagement.entities.UserEntity;
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||||
//import net.gepafin.tendermanagement.repositories.ApplicationAmendmentRepository;
|
import net.gepafin.tendermanagement.repositories.ApplicationAmendmentRequestRepository;
|
||||||
//import net.gepafin.tendermanagement.repositories.ApplicationRepository;
|
import net.gepafin.tendermanagement.repositories.ApplicationRepository;
|
||||||
//import net.gepafin.tendermanagement.repositories.UserRepository;
|
import net.gepafin.tendermanagement.repositories.UserRepository;
|
||||||
//import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
//import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
//import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
//
|
|
||||||
//import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
//import java.util.List;
|
import java.util.List;
|
||||||
//
|
|
||||||
//@Component
|
@Component
|
||||||
//public class NotificationScheduler {
|
public class NotificationScheduler {
|
||||||
//
|
|
||||||
// @Autowired
|
@Autowired
|
||||||
// UserRepository userRepository;
|
UserRepository userRepository;
|
||||||
//
|
|
||||||
// @Autowired
|
@Autowired
|
||||||
// ApplicationRepository applicationRepository;
|
ApplicationRepository applicationRepository;
|
||||||
//
|
|
||||||
// @Autowired
|
@Autowired
|
||||||
// ApplicationAmendmentRepository applicationAmendmentRepository;
|
ApplicationAmendmentRequestRepository applicationAmendmentRepository;
|
||||||
//
|
|
||||||
// @Autowired
|
@Autowired
|
||||||
// CommunicationDao communicationDao;
|
EmailNotificationDao emailNotificationDao;
|
||||||
//
|
|
||||||
// @Scheduled(cron = "0 0/10 * * * ?", zone = "Asia/Kolkata")
|
@Scheduled(cron = "0 0/1 * * * ?")
|
||||||
// void sendNotificationForRejectedApplicationToBeneficiary() {
|
void sendNotificationForRejectedApplicationToBeneficiary() {
|
||||||
//
|
|
||||||
// List<ApplicationEntity> applicationsList = applicationRepository.findByIsDeletedFalse();
|
List<ApplicationEntity> applicationsList = applicationRepository.findByIsDeletedFalse();
|
||||||
// List<ApplicationAmendmentRequestEntity> amendmentRequestList = applicationAmendmentRepository.findByIsDeletedFalse();
|
List<ApplicationAmendmentRequestEntity> amendmentRequestList = applicationAmendmentRepository.findByIsDeletedFalse();
|
||||||
//
|
|
||||||
// LocalDateTime today = LocalDateTime.now();
|
LocalDateTime today = LocalDateTime.now();
|
||||||
//
|
|
||||||
// for (ApplicationEntity application : applicationsList) {
|
for (ApplicationEntity application : applicationsList) {
|
||||||
// ApplicationAmendmentRequestEntity amendmentRequest = getAmendmentRequestForApplication(application, amendmentRequestList);
|
ApplicationAmendmentRequestEntity amendmentRequest = getAmendmentRequestForApplication(application, amendmentRequestList);
|
||||||
//
|
|
||||||
// if (amendmentRequest != null) {
|
if (amendmentRequest != null) {
|
||||||
// LocalDateTime requestDate = amendmentRequest.getStartedDate();
|
LocalDateTime requestDate = amendmentRequest.getCreatedDate();
|
||||||
//
|
|
||||||
// // Check if requestDate + 7 days is less than or equal to today
|
// Eg :- Check if requestDate + 7 days is less than or equal to today
|
||||||
// if (requestDate.plusDays(7).isAfter(today)) {
|
if (requestDate.plusDays(amendmentRequest.getResponseDays()).isAfter(today)) {
|
||||||
// // Update the application status to REJECTED
|
// Update the application status to REJECTED
|
||||||
// application.setStatus("REJECTED");
|
application.setStatus("REJECTED");
|
||||||
// applicationRepository.save(application); // Save updated application
|
applicationRepository.save(application); // Save updated application
|
||||||
//
|
|
||||||
// // Update the amendment request status to CLOSED
|
// Update the amendment request status to CLOSED
|
||||||
// amendmentRequest.setStatus("CLOSED");
|
// amendmentRequest.setStatus("CLOSE");
|
||||||
// applicationAmendmentRepository.save(amendmentRequest); // Save updated amendment request
|
// applicationAmendmentRepository.save(amendmentRequest); // Save updated amendment request
|
||||||
//
|
emailNotificationDao.sendApplicationFailureNotificationEmail(amendmentRequest);
|
||||||
// // 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);
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private ApplicationAmendmentRequestEntity getAmendmentRequestForApplication(ApplicationEntity application, List<ApplicationAmendmentRequestEntity> amendmentRequestList) {
|
|
||||||
//
|
|
||||||
// return amendmentRequestList.stream().filter(request -> request.getId().equals(application.getId())).findFirst().orElse(null);
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|||||||
@@ -292,11 +292,11 @@ application.amendment.not.found = Application Amendment Request not found with t
|
|||||||
application.amendment.get.success = Application Amendment details fetched successfully with given ID.
|
application.amendment.get.success = Application Amendment details fetched successfully with given ID.
|
||||||
application.amendment.update.successfully = Application Amendment Updated Successfully.
|
application.amendment.update.successfully = Application Amendment Updated Successfully.
|
||||||
|
|
||||||
added.comment.to.amendment.request.success = Application Amendment Comment Added Successfully.;
|
added.comment.to.amendment.request.success = Application Amendment Comment Added Successfully.
|
||||||
comment.not.found = Comment Not Found.";
|
comment.not.found = Comment Not Found.
|
||||||
comment.updated.successfully = Comment Updated Successfully.";
|
comment.updated.successfully = Comment Updated Successfully.
|
||||||
comment.deleted.successfully = Comment Deleted Successfully.";
|
comment.deleted.successfully = Comment Deleted Successfully.
|
||||||
comment.not.associate.with.amendment = Comment Not Associated with Amendment Request.";
|
comment.not.associate.with.amendment = Comment Not Associated with Amendment Request.
|
||||||
amendment.found.success = Amendment Request Found Successfully.";
|
amendment.found.success = Amendment Request Found Successfully.
|
||||||
invalid.amendment.for.comment = Invalid Amendment Request for the Given Comment.";
|
invalid.amendment.for.comment = Invalid Amendment Request for the Given Comment.
|
||||||
DD_MM_YYYY_HH_MM = DD-MM-YYYY HH:MM.";
|
DD_MM_YYYY_HH_MM = dd_MM_yyyy HH:mm
|
||||||
|
|||||||
@@ -294,5 +294,5 @@ comment.deleted.successfully = Commento eliminato con successo.
|
|||||||
comment.not.associate.with.amendment = Il commento non � associato alla richiesta di emendamento.
|
comment.not.associate.with.amendment = Il commento non � associato alla richiesta di emendamento.
|
||||||
amendment.found.success = Richiesta di emendamento trovata con successo.
|
amendment.found.success = Richiesta di emendamento trovata con successo.
|
||||||
invalid.amendment.for.comment = Richiesta di emendamento non valida per il commento fornito.
|
invalid.amendment.for.comment = Richiesta di emendamento non valida per il commento fornito.
|
||||||
DD_MM_YYYY_HH_MM = DD-MM-YYYY HH:MM.
|
DD_MM_YYYY_HH_MM = dd_MM_yyyy HH:mm
|
||||||
create.application.data.amendment.msg =Emendamento alla domanda inviato con successo
|
create.application.data.amendment.msg =Emendamento alla domanda inviato con successo
|
||||||
|
|||||||
Reference in New Issue
Block a user