From c469b08e1860ca6f70382c35c1462cfe2c590401 Mon Sep 17 00:00:00 2001 From: rajesh Date: Tue, 14 Oct 2025 19:41:00 +0530 Subject: [PATCH] Updated response of communication API --- .../dao/ApplicationEvaluationDao.java | 2 +- .../tendermanagement/dao/AppointmentDao.java | 3 +- .../dao/CommunicationDao.java | 10 +++- .../dao/EmailNotificationDao.java | 46 +++++++++++-------- .../request/AppointmentCreationRequest.java | 1 + .../repositories/CommunicationRepository.java | 8 ++-- 6 files changed, 42 insertions(+), 28 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java index fbbd5a50..f5ba0615 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java @@ -2623,7 +2623,7 @@ public class ApplicationEvaluationDao { application.setStatus(ApplicationStatusForEvaluation.TECHNICAL_EVALUATION_REJECTED.getValue()); log.info("Application status updated to {} for applicationId: {}", ApplicationStatusForEvaluation.TECHNICAL_EVALUATION_REJECTED, application.getId()); - emailNotificationDao.sendMailForApplicationTechnicalEvaluationRejected(application, hub, existingEntity,applicationRequest.getEmailJson()); + emailNotificationDao.sendMailForApplicationTechnicalEvaluationRejected(application, hub, existingEntity); application.setDateRejected(DateTimeUtil.DateServerToUTC(LocalDateTime.now())); application.setEmailJson(Utils.convertMapIntoJsonString(applicationRequest.getEmailJson())); emailSendResponse = emailDao.buildEmailSendResponseFromRequest(request); diff --git a/src/main/java/net/gepafin/tendermanagement/dao/AppointmentDao.java b/src/main/java/net/gepafin/tendermanagement/dao/AppointmentDao.java index fcccd5e6..cbd2f300 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/AppointmentDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/AppointmentDao.java @@ -1144,10 +1144,9 @@ public class AppointmentDao { richiestaCliente.setNota(requestNota); richiestaCliente.setDurataMesiFinanziamento(createAppointmentRequest.getDurataMesiFinanziamento()); richiestaCliente.setImportoBreveTermine(createAppointmentRequest.getImportoBreveTermine()); - richiestaCliente.setDataAppuntamento(createAppointmentRequest.getDataAppuntamento()); richiestaClienteList.add(richiestaCliente); } - + input.setDataAppuntamento(createAppointmentRequest.getDataAppuntamento()); input.setRichiestaCliente(richiestaClienteList); appointmentCreationRequest.setInput(input); return appointmentCreationRequest; diff --git a/src/main/java/net/gepafin/tendermanagement/dao/CommunicationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/CommunicationDao.java index 686ac828..81960f9d 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/CommunicationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/CommunicationDao.java @@ -120,11 +120,17 @@ public class CommunicationDao { public ApplicationAmendmentResponse getAmendmentComments(Long amendmentId) { ApplicationAmendmentRequestEntity amendmentData = applicationAmendmentRequestService.validateApplicationAmendmentRequest(amendmentId); - List commentsList = communicationRepository.findCommentListDetailsByAmendmentId(amendmentId); + List commentsList = communicationRepository.findByApplicationAmendmentRequestIdAndIsDeletedFalse(amendmentId); if (commentsList == null) { throw new CustomValidationException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.COMMENT_NOT_FOUND)); } - return new ApplicationAmendmentResponse(amendmentData, commentsList); + List communicationResponseBeans=new ArrayList<>(); + for(CommunicationEntity communicationEntity:commentsList){ + List communicationDocumentBeans=getDocumentResponseBean(communicationEntity); + CommunicationResponseBean communicationResponseBean=convertToCommunicationResponseBean(communicationEntity,communicationDocumentBeans); + communicationResponseBeans.add(communicationResponseBean); + } + return new ApplicationAmendmentResponse(amendmentData, communicationResponseBeans); } public CommunicationResponseBean updateAmendmentComment(CommunicationRequestBean communicationRequestBean, Long amendmentId, Long commentId) { diff --git a/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java index 3af44ecb..cc676a7b 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java @@ -429,28 +429,36 @@ public class EmailNotificationDao { throw new IllegalArgumentException("Failed to parse email configuration JSON", e); } } - public void sendMailForApplicationTechnicalEvaluationRejected(ApplicationEntity applicationEntity,HubEntity hub,ApplicationEvaluationEntity applicationEvaluationEntity,Map emailJson) { - HubEntity hubEntity = hubService.valdateHub(applicationEntity.getHubId()); - SystemEmailTemplateResponse systemEmailTemplateResponse=new SystemEmailTemplateResponse(); - systemEmailTemplateResponse.setSubject((String) emailJson.get("subject")); - systemEmailTemplateResponse.setHtmlContent((String) emailJson.get("message")); - Map subjectPlaceholders = new HashMap<>(); - CompanyEntity company = companyService.validateCompany(applicationEntity.getCompanyId()); - subjectPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName()); - subjectPlaceholders.put("{{company_name}}", company.getCompanyName()); + public void sendMailForApplicationTechnicalEvaluationRejected(ApplicationEntity applicationEntity,HubEntity hub,ApplicationEvaluationEntity applicationEvaluationEntity) { + Map bodyPlaceholders = prepareEmailPlaceholdersForTechnicalEvaluationRejected(applicationEntity,hub,applicationEvaluationEntity); - String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders); - String body = Utils.replacePlaceholders(systemEmailTemplateResponse.getHtmlContent(), bodyPlaceholders); - SystemEmailTemplateResponse systemEmailTemplateResponse1=new SystemEmailTemplateResponse(); - systemEmailTemplateResponse1.setSubject(subject); - systemEmailTemplateResponse1.setHtmlContent(body); - systemEmailTemplateResponse1.setEmailScenario(EmailScenarioTypeEnum.APPLICATION_TECHNICAL_EVALUATION_REJECTED); - EmailContentResponse emailContentResponse=new EmailContentResponse(subject,body,systemEmailTemplateResponse1); - UserEntity userEntity = userService.validateUser(applicationEntity.getUserId()); - sendEmails(applicationEntity, userEntity, null,null,emailContentResponse.getSystemEmailTemplateResponse(),emailContentResponse.getSubject(),emailContentResponse.getBody()); - + sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.INADMISSIBILITY_NOTIFICATION_DUE_TO_TECHNICAL_EVALUATION_FAILURE, bodyPlaceholders, null, + null); } + +// public void sendMailForApplicationTechnicalEvaluationRejected(ApplicationEntity applicationEntity,HubEntity hub,ApplicationEvaluationEntity applicationEvaluationEntity,Map emailJson) { +// +// HubEntity hubEntity = hubService.valdateHub(applicationEntity.getHubId()); +// SystemEmailTemplateResponse systemEmailTemplateResponse=new SystemEmailTemplateResponse(); +// systemEmailTemplateResponse.setSubject((String) emailJson.get("subject")); +// systemEmailTemplateResponse.setHtmlContent((String) emailJson.get("message")); +// Map subjectPlaceholders = new HashMap<>(); +// CompanyEntity company = companyService.validateCompany(applicationEntity.getCompanyId()); +// subjectPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName()); +// subjectPlaceholders.put("{{company_name}}", company.getCompanyName()); +// Map bodyPlaceholders = prepareEmailPlaceholdersForTechnicalEvaluationRejected(applicationEntity,hub,applicationEvaluationEntity); +// String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders); +// String body = Utils.replacePlaceholders(systemEmailTemplateResponse.getHtmlContent(), bodyPlaceholders); +// SystemEmailTemplateResponse systemEmailTemplateResponse1=new SystemEmailTemplateResponse(); +// systemEmailTemplateResponse1.setSubject(subject); +// systemEmailTemplateResponse1.setHtmlContent(body); +// systemEmailTemplateResponse1.setEmailScenario(EmailScenarioTypeEnum.APPLICATION_TECHNICAL_EVALUATION_REJECTED); +// EmailContentResponse emailContentResponse=new EmailContentResponse(subject,body,systemEmailTemplateResponse1); +// UserEntity userEntity = userService.validateUser(applicationEntity.getUserId()); +// sendEmails(applicationEntity, userEntity, null,null,emailContentResponse.getSystemEmailTemplateResponse(),emailContentResponse.getSubject(),emailContentResponse.getBody()); +// +// } public Map prepareEmailPlaceholdersForTechnicalEvaluationRejected(ApplicationEntity applicationEntity,HubEntity hub,ApplicationEvaluationEntity applicationEvaluationEntity) { Map bodyPlaceholders = new HashMap<>(); bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName()); diff --git a/src/main/java/net/gepafin/tendermanagement/model/request/AppointmentCreationRequest.java b/src/main/java/net/gepafin/tendermanagement/model/request/AppointmentCreationRequest.java index 71597790..8a16a021 100644 --- a/src/main/java/net/gepafin/tendermanagement/model/request/AppointmentCreationRequest.java +++ b/src/main/java/net/gepafin/tendermanagement/model/request/AppointmentCreationRequest.java @@ -15,6 +15,7 @@ public class AppointmentCreationRequest { private Long id; private String ndg; private List richiestaCliente; + private LocalDateTime dataAppuntamento; } @Data diff --git a/src/main/java/net/gepafin/tendermanagement/repositories/CommunicationRepository.java b/src/main/java/net/gepafin/tendermanagement/repositories/CommunicationRepository.java index 3bbdba34..751493bf 100644 --- a/src/main/java/net/gepafin/tendermanagement/repositories/CommunicationRepository.java +++ b/src/main/java/net/gepafin/tendermanagement/repositories/CommunicationRepository.java @@ -11,10 +11,10 @@ import java.util.Optional; public interface CommunicationRepository extends JpaRepository { - @Query("SELECT new net.gepafin.tendermanagement.model.response.CommunicationResponseBean( " + "c.commentedDate, c.communicationComment, c.communicationTitle, c.createdDate, c" + - ".updatedDate, " + "c.applicationAmendmentRequest.id, c.senderUserId, c.receiverUserId, c.id " + ") " + "FROM CommunicationEntity c " + "WHERE c" + - ".applicationAmendmentRequest.id = :amendmentId AND c.isDeleted = false") - List findCommentListDetailsByAmendmentId(@Param("amendmentId") Long amendmentId); + // @Query("SELECT new net.gepafin.tendermanagement.model.response.CommunicationResponseBean( " + "c.commentedDate, c.communicationComment, c.communicationTitle, c.createdDate, c" + +// ".updatedDate, " + "c.applicationAmendmentRequest.id, c.senderUserId, c.receiverUserId, c.id " + ") " + "FROM CommunicationEntity c " + "WHERE c" + +// ".applicationAmendmentRequest.id = :amendmentId AND c.isDeleted = false") + List findByApplicationAmendmentRequestIdAndIsDeletedFalse(Long amendmentId); Optional findByIdAndIsDeletedFalse(Long commentId);