Added field rejectedReasonSubject for application rejection

This commit is contained in:
rajesh
2025-10-17 15:04:55 +05:30
parent 115bb1a3a8
commit 6d41a044d0
7 changed files with 29 additions and 14 deletions

View File

@@ -597,9 +597,9 @@ public class ApplicationAmendmentRequestDao {
Map<String, String> bodyPlaceholders = emailNotificationDao.prepareEmailPlaceholders(applicationEntity, entity); Map<String, String> bodyPlaceholders = emailNotificationDao.prepareEmailPlaceholders(applicationEntity, entity);
EmailContentResponse emailContent =null; EmailContentResponse emailContent =null;
if(entity.getType()!=null && entity.getType().equals(ApplicationAmendmentRequestTypeEnum.SPECIAL.getValue())){ if(entity.getType()!=null && entity.getType().equals(ApplicationAmendmentRequestTypeEnum.SPECIAL.getValue())){
emailContent=emailNotificationDao.prepareEmailContent(applicationEntity, SystemEmailTemplatesEntityTypeEnum.SPECIAL_APPLICATION_AMENDMENT_REQUESTED, hubEntity, bodyPlaceholders); emailContent=emailNotificationDao.prepareEmailContent(applicationEntity, SystemEmailTemplatesEntityTypeEnum.SPECIAL_APPLICATION_AMENDMENT_REQUESTED, hubEntity, bodyPlaceholders,null);
}else { }else {
emailContent = emailNotificationDao.prepareEmailContent(applicationEntity, SystemEmailTemplatesEntityTypeEnum.DOCUMENTATION_INTEGRATION_REQUEST, hubEntity, bodyPlaceholders); emailContent = emailNotificationDao.prepareEmailContent(applicationEntity, SystemEmailTemplatesEntityTypeEnum.DOCUMENTATION_INTEGRATION_REQUEST, hubEntity, bodyPlaceholders,null);
} }
String body = emailContent.getBody(); String body = emailContent.getBody();
response.setEmailTemplate(body); response.setEmailTemplate(body);

View File

@@ -2034,8 +2034,9 @@ public class ApplicationEvaluationDao {
} }
if (Boolean.TRUE.equals(statusType.equals((ApplicationStatusTypeEnum.REJECTED.getValue())))) { if (Boolean.TRUE.equals(statusType.equals((ApplicationStatusTypeEnum.REJECTED.getValue())))) {
String tipoInammissibilita =null; String tipoInammissibilita =null;
String emailType=null;
if(Boolean.TRUE.equals(hub.getUniqueUuid().equals(defaultHubUuid))) { if(Boolean.TRUE.equals(hub.getUniqueUuid().equals(defaultHubUuid))) {
if (applicationEvaluationRequest.getMotivation() == null || applicationEvaluationRequest.getRejectedReason() == null) { if (applicationEvaluationRequest.getMotivation() == null || applicationEvaluationRequest.getRejectedReason() == null || applicationEvaluationRequest.getRejectedReasonSubject()==null) {
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.MORE_FIELDS_REQUIRED_FOR_REJECTION)); throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.MORE_FIELDS_REQUIRED_FOR_REJECTION));
} }
if (files != null) { if (files != null) {
@@ -2049,12 +2050,13 @@ public class ApplicationEvaluationDao {
application.setRejectedDocument(rejectedDocumentId); application.setRejectedDocument(rejectedDocumentId);
} }
tipoInammissibilita=applicationEvaluationRequest.getRejectedReason(); tipoInammissibilita=applicationEvaluationRequest.getRejectedReason();
emailType=applicationEvaluationRequest.getRejectedReasonSubject();
application.setRejectedReason(applicationEvaluationRequest.getRejectedReason()); application.setRejectedReason(applicationEvaluationRequest.getRejectedReason());
} }
application.setDateRejected(DateTimeUtil.DateServerToUTC(LocalDateTime.now())); application.setDateRejected(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
application.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now())); application.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
application = applicationRepository.save(application); application = applicationRepository.save(application);
emailNotificationDao.sendInadmissibilityEmailForRejectedApplication(application,existingEntity,tipoInammissibilita); emailNotificationDao.sendInadmissibilityEmailForRejectedApplication(application,existingEntity,tipoInammissibilita,emailType);
emailSendResponse = emailDao.buildEmailSendResponseFromRequest(request); emailSendResponse = emailDao.buildEmailSendResponseFromRequest(request);
responses = List.of(emailSendResponse); responses = List.of(emailSendResponse);
if (!Boolean.TRUE.equals(emailSendResponse.getIsEmailSend())) { if (!Boolean.TRUE.equals(emailSendResponse.getIsEmailSend())) {
@@ -2470,6 +2472,7 @@ public class ApplicationEvaluationDao {
request.setMotivation(formRequestBean.getMotivation()); request.setMotivation(formRequestBean.getMotivation());
request.setAmountAccepted(formRequestBean.getAmountAccepted()); request.setAmountAccepted(formRequestBean.getAmountAccepted());
request.setRejectedReason(formRequestBean.getRejectedReason()); request.setRejectedReason(formRequestBean.getRejectedReason());
request.setRejectedReasonSubject(formRequestBean.getRejectedReasonSubject());
request.setCriteria(null); request.setCriteria(null);
request.setChecklist(null); request.setChecklist(null);

View File

@@ -98,13 +98,13 @@ public class EmailNotificationDao {
private ApplicationDao applicationDao; private ApplicationDao applicationDao;
public void sendEmail(ApplicationEntity applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum templateType, Map<String, String> bodyPlaceholders, public void sendEmail(ApplicationEntity applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum templateType, Map<String, String> bodyPlaceholders,
List<String> additionalRecipients, Long amendmentId) { List<String> additionalRecipients, Long amendmentId,String emailType) {
HubEntity hubEntity = hubService.valdateHub(applicationEntity.getHubId()); HubEntity hubEntity = hubService.valdateHub(applicationEntity.getHubId());
// String service = determineService(applicationEntity.getHubId()); // String service = determineService(applicationEntity.getHubId());
// String legalMail = service.equals("Gepafin S.p.a.") ? "bandi.gepafin@legalmail.it" : "bandi.sviluppumbria@legalmail.it"; // String legalMail = service.equals("Gepafin S.p.a.") ? "bandi.gepafin@legalmail.it" : "bandi.sviluppumbria@legalmail.it";
EmailContentResponse emailContent = prepareEmailContent(applicationEntity, templateType, hubEntity, bodyPlaceholders); EmailContentResponse emailContent = prepareEmailContent(applicationEntity, templateType, hubEntity, bodyPlaceholders,emailType);
UserEntity userEntity = userService.validateUser(applicationEntity.getUserId()); UserEntity userEntity = userService.validateUser(applicationEntity.getUserId());
sendEmails(applicationEntity, userEntity, additionalRecipients,amendmentId,emailContent.getSystemEmailTemplateResponse(),emailContent.getSubject(),emailContent.getBody()); sendEmails(applicationEntity, userEntity, additionalRecipients,amendmentId,emailContent.getSystemEmailTemplateResponse(),emailContent.getSubject(),emailContent.getBody());
} }
@@ -113,7 +113,7 @@ public class EmailNotificationDao {
ApplicationEntity applicationEntity, ApplicationEntity applicationEntity,
SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum templateType, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum templateType,
HubEntity hubEntity, HubEntity hubEntity,
Map<String, String> bodyPlaceholders Map<String, String> bodyPlaceholders,String emailType
) { ) {
SystemEmailTemplateResponse systemEmailTemplateResponse = systemEmailTemplatesService.retrieveTemplateByTypeAndCall(templateType, hubEntity, null); SystemEmailTemplateResponse systemEmailTemplateResponse = systemEmailTemplatesService.retrieveTemplateByTypeAndCall(templateType, hubEntity, null);
if(Boolean.TRUE.equals(templateType.equals(SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.DOCUMENTATION_INTEGRATION_REQUEST)) && Boolean.TRUE.equals(validator.isProductionProfileActivated()) && applicationEntity.getCall().getId().equals(23l)) { if(Boolean.TRUE.equals(templateType.equals(SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.DOCUMENTATION_INTEGRATION_REQUEST)) && Boolean.TRUE.equals(validator.isProductionProfileActivated()) && applicationEntity.getCall().getId().equals(23l)) {
@@ -124,6 +124,7 @@ public class EmailNotificationDao {
subjectPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName()); subjectPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
subjectPlaceholders.put("{{company_name}}", company.getCompanyName()); subjectPlaceholders.put("{{company_name}}", company.getCompanyName());
// bodyPlaceholders.put("{{legal_mail}}", legalMail); // bodyPlaceholders.put("{{legal_mail}}", legalMail);
subjectPlaceholders.put("{{email_type}}",emailType);
String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders); String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders);
String body = Utils.replacePlaceholders(systemEmailTemplateResponse.getHtmlContent(), bodyPlaceholders); String body = Utils.replacePlaceholders(systemEmailTemplateResponse.getHtmlContent(), bodyPlaceholders);
@@ -270,7 +271,7 @@ public class EmailNotificationDao {
ApplicationEntity applicationEntity = applicationService.validateApplication(applicationAmendmentRequestEntity.getApplicationId()); ApplicationEntity applicationEntity = applicationService.validateApplication(applicationAmendmentRequestEntity.getApplicationId());
Map<String, String> bodyPlaceholders = prepareEmailPlaceholders(applicationEntity, applicationAmendmentRequestEntity); Map<String, String> bodyPlaceholders = prepareEmailPlaceholders(applicationEntity, applicationAmendmentRequestEntity);
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.DOCUMENTATION_INTEGRATION_REQUEST, bodyPlaceholders, null, sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.DOCUMENTATION_INTEGRATION_REQUEST, bodyPlaceholders, null,
applicationAmendmentRequestEntity.getId()); applicationAmendmentRequestEntity.getId(),null);
} }
public Map<String, String> prepareEmailPlaceholders(ApplicationEntity applicationEntity, ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity){ public Map<String, String> prepareEmailPlaceholders(ApplicationEntity applicationEntity, ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity){
Map<String, String> bodyPlaceholders = new HashMap<>(); Map<String, String> bodyPlaceholders = new HashMap<>();
@@ -362,7 +363,7 @@ public class EmailNotificationDao {
} }
bodyPlaceholders.put("{{date_time_emailSend}}", DateTimeUtil.formatLocalDateTime(lastReminderDateTime, GepafinConstant.DD_MM_YYYY)); bodyPlaceholders.put("{{date_time_emailSend}}", DateTimeUtil.formatLocalDateTime(lastReminderDateTime, GepafinConstant.DD_MM_YYYY));
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.INADMISSIBILITY_NOTIFICATION_DUE_TO_FAILURE, bodyPlaceholders, null,amendmentRequest.getId()); sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.INADMISSIBILITY_NOTIFICATION_DUE_TO_FAILURE, bodyPlaceholders, null,amendmentRequest.getId(),null);
} }
public void sendAdmissibilityNotificationEmailForAdmissibleApplication(ApplicationEntity applicationEntity) { public void sendAdmissibilityNotificationEmailForAdmissibleApplication(ApplicationEntity applicationEntity) {
@@ -380,10 +381,10 @@ public class EmailNotificationDao {
bodyPlaceholders.put("{{protocol_date}}", protocolDate); bodyPlaceholders.put("{{protocol_date}}", protocolDate);
bodyPlaceholders.put("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationEntity.getProtocol().getTime(), GepafinConstant.HH_MM_SS)); bodyPlaceholders.put("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationEntity.getProtocol().getTime(), GepafinConstant.HH_MM_SS));
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.ADMISSIBILITY_NOTIFICATION, bodyPlaceholders, null,null); sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.ADMISSIBILITY_NOTIFICATION, bodyPlaceholders, null,null,null);
} }
public void sendInadmissibilityEmailForRejectedApplication(ApplicationEntity applicationEntity,ApplicationEvaluationEntity applicationEvaluationEntity,String tipoInammissibilita) { public void sendInadmissibilityEmailForRejectedApplication(ApplicationEntity applicationEntity,ApplicationEvaluationEntity applicationEvaluationEntity,String tipoInammissibilita,String emailType) {
Map<String, String> bodyPlaceholders = new HashMap<>(); Map<String, String> bodyPlaceholders = new HashMap<>();
bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName()); bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
String protocolNumber=applicationEntity.getProtocol().getExternalProtocolNumber(); String protocolNumber=applicationEntity.getProtocol().getExternalProtocolNumber();
@@ -400,7 +401,7 @@ public class EmailNotificationDao {
HubEntity hubEntity = hubService.valdateHub(applicationEntity.getHubId()); HubEntity hubEntity = hubService.valdateHub(applicationEntity.getHubId());
bodyPlaceholders.put("{{tipo_inammissibilita}}", tipoInammissibilita); bodyPlaceholders.put("{{tipo_inammissibilita}}", tipoInammissibilita);
bodyPlaceholders.put("{{form_text}}", applicationEvaluationEntity.getMotivation()); bodyPlaceholders.put("{{form_text}}", applicationEvaluationEntity.getMotivation());
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.INADMISSIBILITY_TEMPLATE, bodyPlaceholders, null,null); sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.INADMISSIBILITY_TEMPLATE, bodyPlaceholders, null,null,emailType);
} }
public void sendMail(Long hubId, String subject, String body, List<String> recipientEmails, EmailLogRequest emailLogRequest) { public void sendMail(Long hubId, String subject, String body, List<String> recipientEmails, EmailLogRequest emailLogRequest) {
@@ -442,7 +443,7 @@ public class EmailNotificationDao {
Map<String, String> bodyPlaceholders = prepareEmailPlaceholdersForTechnicalEvaluationRejected(applicationEntity,hub,applicationEvaluationEntity); Map<String, String> bodyPlaceholders = prepareEmailPlaceholdersForTechnicalEvaluationRejected(applicationEntity,hub,applicationEvaluationEntity);
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.INADMISSIBILITY_NOTIFICATION_DUE_TO_TECHNICAL_EVALUATION_FAILURE, bodyPlaceholders, null, sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.INADMISSIBILITY_NOTIFICATION_DUE_TO_TECHNICAL_EVALUATION_FAILURE, bodyPlaceholders, null,
null); null,null);
} }
// public void sendMailForApplicationTechnicalEvaluationRejected(ApplicationEntity applicationEntity,HubEntity hub,ApplicationEvaluationEntity applicationEvaluationEntity,Map<String, Object> emailJson) { // public void sendMailForApplicationTechnicalEvaluationRejected(ApplicationEntity applicationEntity,HubEntity hub,ApplicationEvaluationEntity applicationEvaluationEntity,Map<String, Object> emailJson) {
@@ -491,6 +492,6 @@ public class EmailNotificationDao {
Map<String, String> bodyPlaceholders = prepareEmailPlaceholders(applicationEntity, applicationAmendmentRequestEntity); Map<String, String> bodyPlaceholders = prepareEmailPlaceholders(applicationEntity, applicationAmendmentRequestEntity);
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.SPECIAL_APPLICATION_AMENDMENT_REQUESTED, bodyPlaceholders, null, sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.SPECIAL_APPLICATION_AMENDMENT_REQUESTED, bodyPlaceholders, null,
applicationAmendmentRequestEntity.getId()); applicationAmendmentRequestEntity.getId(),null);
} }
} }

View File

@@ -17,4 +17,6 @@ public class ApplicationEvaluationFormRequestBean {
private String motivation; private String motivation;
private BigDecimal amountAccepted; private BigDecimal amountAccepted;
private String rejectedReason; private String rejectedReason;
private String rejectedReasonSubject;
} }

View File

@@ -18,4 +18,5 @@ public class ApplicationEvaluationRequest {
private String motivation; private String motivation;
private BigDecimal amountAccepted; private BigDecimal amountAccepted;
private String rejectedReason; private String rejectedReason;
private String rejectedReasonSubject;
} }

View File

@@ -3087,4 +3087,9 @@
<changeSet id="16-10-2025_RK_13352" author="Rajesh Khore"> <changeSet id="16-10-2025_RK_13352" author="Rajesh Khore">
<sqlFile dbms="postgresql" path="db/dump/update_system_email_template_of_application_rejected_16_10_2025.sql"/> <sqlFile dbms="postgresql" path="db/dump/update_system_email_template_of_application_rejected_16_10_2025.sql"/>
</changeSet> </changeSet>
<changeSet id="17-10-2025_RK_140552" author="Rajesh Khore">
<sqlFile dbms="postgresql" path="db/dump/update_system_email_template_of_application_rejected_17_10_2025.sql"/>
</changeSet>
</databaseChangeLog> </databaseChangeLog>

View File

@@ -0,0 +1,3 @@
UPDATE gepafin_schema.system_email_template
SET subject = 'BANDO {{call_name}} {{email_type}} {{company_name}}'
WHERE "type" = 'INADMISSIBILITY_NOTIFICATION' and "email_scenario" = 'APPLICATION_REJECTED' and "system" = true;