From 0aa5f3ad77aa2e160f0366a7eb119ae13e9a33f7 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Tue, 29 Oct 2024 15:41:03 +0100 Subject: [PATCH] Aggiornata email di apertura tickets --- .../it/integry/ems/service/MailService.java | 21 +- .../ems/service/MailTemplateService.java | 33 ++- ...nericComunicationMailTemplateDataDTO.java} | 10 +- ...TicketNotificationMailTemplateDataDTO.java | 30 +++ .../Import/service/OrdiniImportService.java | 12 +- .../service/MesProductionServiceV2.java | 6 +- .../system/controller/SystemController.java | 226 +++++++----------- 7 files changed, 175 insertions(+), 163 deletions(-) rename ems-core/src/main/java/it/integry/ems/service/dto/{MailTemplateDataDTO.java => GenericComunicationMailTemplateDataDTO.java} (69%) create mode 100644 ems-core/src/main/java/it/integry/ems/service/dto/TicketNotificationMailTemplateDataDTO.java diff --git a/ems-core/src/main/java/it/integry/ems/service/MailService.java b/ems-core/src/main/java/it/integry/ems/service/MailService.java index e3243dae3a..6eb15ad2c6 100644 --- a/ems-core/src/main/java/it/integry/ems/service/MailService.java +++ b/ems-core/src/main/java/it/integry/ems/service/MailService.java @@ -14,7 +14,8 @@ import it.integry.ems.media.MimeTypesHandler; import it.integry.ems.response.FileItem; import it.integry.ems.rules.completing.CommonRules; import it.integry.ems.service.dto.CustomEmailDTO; -import it.integry.ems.service.dto.MailTemplateDataDTO; +import it.integry.ems.service.dto.GenericComunicationMailTemplateDataDTO; +import it.integry.ems.service.dto.TicketNotificationMailTemplateDataDTO; import it.integry.ems.settings.Model.MailConfigurationModel; import it.integry.ems.settings.Model.SettingsModel; import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; @@ -307,6 +308,14 @@ public class MailService { return sendMailPrimary(null, null, to, cc, null, subject, msg, false, false, null, null, null); } + public void sendTicketNotificationMail(final MultiDBTransactionManager multiDBTransactionManager, final String to, final String cc, final String ccn, final String subject, final TicketNotificationMailTemplateDataDTO mailData) throws Exception { + String htmlMailContent = mailTemplateService.getTicketNotificationEmailTemplate(mailData); + + // SEND + this.sendMailPrimary(multiDBTransactionManager, "noreply@integry.it", "Integry Ticketing", to, cc, ccn, + subject, htmlMailContent, true, false, null, null, + null, false, null); + } public void sendErrorMailByGestNameSection(MultiDBTransactionManager multiDBTransactionManager, String gestName, String section, String mailTitle, List entitiesList, List attachments, List anomalie, List customExceptions) throws Exception { @@ -340,11 +349,11 @@ public class MailService { subject = String.format("[%s] %s", nomeAzienda, subject); - final MailTemplateDataDTO mailTemplateData = new MailTemplateDataDTO() + final GenericComunicationMailTemplateDataDTO mailTemplateData = new GenericComunicationMailTemplateDataDTO() .setTitle(subject) .setContent(mailMessage.toString()); - String htmlMailText = mailTemplateService.getGenericEmailTemplate(Level.ERROR, mailTemplateData); + String htmlMailText = mailTemplateService.getGenericComunicationEmailTemplate(Level.ERROR, mailTemplateData); // SEND this.sendMailPrimary(multiDBTransactionManager, null, null, emailDestination, null, null, @@ -394,7 +403,7 @@ public class MailService { String subject = String.format("[%s] Errore durante operazione di %s su %s", nomeAzienda, action, InetAddress.getLocalHost().getHostName()); - final MailTemplateDataDTO mailTemplateData = new MailTemplateDataDTO() + final GenericComunicationMailTemplateDataDTO mailTemplateData = new GenericComunicationMailTemplateDataDTO() .setTitle(mailTitle) .setContent(mailMessage.toString()); @@ -437,7 +446,7 @@ public class MailService { attachedFiles.add(new EmailFileAttachment("stackTrace.txt", stacktrace.getBytes())); - String htmlMailText = mailTemplateService.getGenericEmailTemplate(Level.ERROR, mailTemplateData); + String htmlMailText = mailTemplateService.getGenericComunicationEmailTemplate(Level.ERROR, mailTemplateData); if (attachments != null && !attachments.isEmpty()) attachedFiles.addAll(attachments); @@ -521,7 +530,7 @@ public class MailService { private void internalSendSystemMail(Level mailLevel, String mailSubject, String mailTitle, String mailContent, Date footerDate) throws Exception { - String htmlEmail = mailTemplateService.getGenericEmailTemplate(mailLevel, new MailTemplateDataDTO() + String htmlEmail = mailTemplateService.getGenericComunicationEmailTemplate(mailLevel, new GenericComunicationMailTemplateDataDTO() .setTitle(mailTitle) .setContent(mailContent)); diff --git a/ems-core/src/main/java/it/integry/ems/service/MailTemplateService.java b/ems-core/src/main/java/it/integry/ems/service/MailTemplateService.java index 549fe50a4e..3ddf09a247 100644 --- a/ems-core/src/main/java/it/integry/ems/service/MailTemplateService.java +++ b/ems-core/src/main/java/it/integry/ems/service/MailTemplateService.java @@ -1,13 +1,15 @@ package it.integry.ems.service; import it.integry.common.var.CommonConstants; -import it.integry.ems.service.dto.MailTemplateDataDTO; +import it.integry.ems.service.dto.GenericComunicationMailTemplateDataDTO; +import it.integry.ems.service.dto.TicketNotificationMailTemplateDataDTO; import it.integry.ems_model.utility.UtilityLocalDate; import it.integry.ems_model.utility.UtilityString; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.exception.ExceptionUtils; import org.springframework.stereotype.Service; +import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.nio.charset.StandardCharsets; @@ -17,14 +19,21 @@ import java.util.List; @Service public class MailTemplateService { + private final String baseUrl = "https://www2.studioml.it/ems-api/mail_models/"; - public String getGenericEmailTemplate(MailService.Level level, MailTemplateDataDTO mailTemplateData) throws Exception { - URL url = new URL("https://www2.studioml.it/ems-api/mail_models/integry-generic-communication-mail-template.html"); + private String downloadTemplate(String fileName) throws IOException { + URL url = new URL(baseUrl + fileName); InputStream inputStream = url.openStream(); - String htmlMailBody = IOUtils.toString(inputStream, StandardCharsets.UTF_8); + String htmlMailBody = IOUtils.toString(inputStream, StandardCharsets.ISO_8859_1); inputStream.close(); + return htmlMailBody; + } + + public String getGenericComunicationEmailTemplate(MailService.Level level, GenericComunicationMailTemplateDataDTO mailTemplateData) throws Exception { + String htmlMailBody = downloadTemplate("integry-generic-communication-mail-template.html"); + String bannerBgColor; switch (level) { @@ -84,6 +93,21 @@ public class MailTemplateService { return htmlMailBody; } + public String getTicketNotificationEmailTemplate(TicketNotificationMailTemplateDataDTO data) throws Exception { + String htmlMailBody = downloadTemplate("integry-ticket-notification-mail-template.html"); + + String personaRif = ""; + + if (data.getPersonaRif() != null) + personaRif = " " + data.getPersonaRif(); + + + htmlMailBody = htmlMailBody.replace("#PERSONA_RIF#", personaRif); + htmlMailBody = htmlMailBody.replace("#ACTIVITY_ID#", data.getActivityId()); + htmlMailBody = htmlMailBody.replace("#HELPDESK_URL#", data.getHelpdeskUrl()); + + return htmlMailBody; + } public List renderExceptionsToHtml(List exceptions, boolean applyConsoleStyle) { List renderedExceptions = new ArrayList<>(); @@ -95,7 +119,6 @@ public class MailTemplateService { return renderedExceptions; } - public String renderExceptionToHtml(Exception ex, boolean applyConsoleStyle) { StringBuilder htmlContent = new StringBuilder(); diff --git a/ems-core/src/main/java/it/integry/ems/service/dto/MailTemplateDataDTO.java b/ems-core/src/main/java/it/integry/ems/service/dto/GenericComunicationMailTemplateDataDTO.java similarity index 69% rename from ems-core/src/main/java/it/integry/ems/service/dto/MailTemplateDataDTO.java rename to ems-core/src/main/java/it/integry/ems/service/dto/GenericComunicationMailTemplateDataDTO.java index 40f75f2b21..3d11ec19da 100644 --- a/ems-core/src/main/java/it/integry/ems/service/dto/MailTemplateDataDTO.java +++ b/ems-core/src/main/java/it/integry/ems/service/dto/GenericComunicationMailTemplateDataDTO.java @@ -3,7 +3,7 @@ package it.integry.ems.service.dto; import java.util.ArrayList; import java.util.List; -public class MailTemplateDataDTO { +public class GenericComunicationMailTemplateDataDTO { private String title; private String subtitle; @@ -17,7 +17,7 @@ public class MailTemplateDataDTO { return title; } - public MailTemplateDataDTO setTitle(String title) { + public GenericComunicationMailTemplateDataDTO setTitle(String title) { this.title = title; return this; } @@ -26,7 +26,7 @@ public class MailTemplateDataDTO { return subtitle; } - public MailTemplateDataDTO setSubtitle(String subtitle) { + public GenericComunicationMailTemplateDataDTO setSubtitle(String subtitle) { this.subtitle = subtitle; return this; } @@ -35,7 +35,7 @@ public class MailTemplateDataDTO { return content; } - public MailTemplateDataDTO setContent(String content) { + public GenericComunicationMailTemplateDataDTO setContent(String content) { this.content = content; return this; } @@ -44,7 +44,7 @@ public class MailTemplateDataDTO { return exceptions; } - public MailTemplateDataDTO setExceptions(List exceptions) { + public GenericComunicationMailTemplateDataDTO setExceptions(List exceptions) { this.exceptions = exceptions; return this; } diff --git a/ems-core/src/main/java/it/integry/ems/service/dto/TicketNotificationMailTemplateDataDTO.java b/ems-core/src/main/java/it/integry/ems/service/dto/TicketNotificationMailTemplateDataDTO.java new file mode 100644 index 0000000000..1aac125dd6 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/service/dto/TicketNotificationMailTemplateDataDTO.java @@ -0,0 +1,30 @@ +package it.integry.ems.service.dto; + +public class TicketNotificationMailTemplateDataDTO { + + private final String activityId; + private final String personaRif; + private String helpdeskUrl; + + public TicketNotificationMailTemplateDataDTO(String activityId, String personaRif) { + this.activityId = activityId; + this.personaRif = personaRif; + } + + public String getActivityId() { + return activityId; + } + + public String getPersonaRif() { + return personaRif; + } + + public String getHelpdeskUrl() { + return helpdeskUrl; + } + + public TicketNotificationMailTemplateDataDTO setHelpdeskUrl(String helpdeskUrl) { + this.helpdeskUrl = helpdeskUrl; + return this; + } +} diff --git a/ems-engine/src/main/java/it/integry/ems/order/Import/service/OrdiniImportService.java b/ems-engine/src/main/java/it/integry/ems/order/Import/service/OrdiniImportService.java index 9ba2103c72..6cfee0d06f 100644 --- a/ems-engine/src/main/java/it/integry/ems/order/Import/service/OrdiniImportService.java +++ b/ems-engine/src/main/java/it/integry/ems/order/Import/service/OrdiniImportService.java @@ -3,25 +3,20 @@ package it.integry.ems.order.Import.service; import com.annimon.stream.Stream; import com.fasterxml.jackson.databind.ObjectMapper; import it.integry.common.var.CommonConstants; -import it.integry.ems.Import.dto.AnomalieDTO; import it.integry.ems.Import.dto.ImportRequestDTO; -import it.integry.ems.javabeans.RequestDataDTO; import it.integry.ems.order.Import.dto.DialogoJsonDTO; import it.integry.ems.rules.completing.QueryRules; import it.integry.ems.service.EntityProcessor; import it.integry.ems.service.MailService; import it.integry.ems.service.MailTemplateService; import it.integry.ems.service.MapService; -import it.integry.ems.service.dto.MailTemplateDataDTO; +import it.integry.ems.service.dto.GenericComunicationMailTemplateDataDTO; import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; import it.integry.ems.utility.UtilityDirs; -import it.integry.ems.utility.UtilityEntity; import it.integry.ems.utility.UtilityFile; import it.integry.ems_model.base.EntityBase; import it.integry.ems_model.entity.DtbOrdr; import it.integry.ems_model.entity.DtbOrdt; -import it.integry.ems_model.entity.WdtbOrdt; -import it.integry.ems_model.exception.EntityException; import it.integry.ems_model.service.SetupGest; import it.integry.ems_model.types.OperationType; import it.integry.ems_model.utility.*; @@ -31,7 +26,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; -import java.io.File; import java.io.StringWriter; import java.math.BigDecimal; import java.sql.Connection; @@ -286,10 +280,10 @@ public class OrdiniImportService { mailMessage.append(String.format("

%s

", alreadyExists)); } - final MailTemplateDataDTO mailTemplateData = new MailTemplateDataDTO() + final GenericComunicationMailTemplateDataDTO mailTemplateData = new GenericComunicationMailTemplateDataDTO() .setTitle(subject) .setContent(String.valueOf(mailMessage)); - String htmlMailText = mailTemplateService.getGenericEmailTemplate(MailService.Level.SUCCESS, mailTemplateData); + String htmlMailText = mailTemplateService.getGenericComunicationEmailTemplate(MailService.Level.SUCCESS, mailTemplateData); mailService.sendMailPrimary(multiDBTransactionManager, null, null, emailDestination, null, null, subject, htmlMailText, true, false, null, null, diff --git a/ems-engine/src/main/java/it/integry/ems/production/service/MesProductionServiceV2.java b/ems-engine/src/main/java/it/integry/ems/production/service/MesProductionServiceV2.java index 4e645daea1..b575ea7f37 100644 --- a/ems-engine/src/main/java/it/integry/ems/production/service/MesProductionServiceV2.java +++ b/ems-engine/src/main/java/it/integry/ems/production/service/MesProductionServiceV2.java @@ -18,7 +18,7 @@ import it.integry.ems.report.dto.JasperDTO; import it.integry.ems.report.dto.PairsDTO; import it.integry.ems.rules.completing.DocumentRules; import it.integry.ems.service.*; -import it.integry.ems.service.dto.MailTemplateDataDTO; +import it.integry.ems.service.dto.GenericComunicationMailTemplateDataDTO; import it.integry.ems.service.exception.EmptyReportException; import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; import it.integry.ems.utility.UtilityEntity; @@ -1058,11 +1058,11 @@ public class MesProductionServiceV2 { String subject = "Pedane in Quarantena"; - final MailTemplateDataDTO mailTemplateData = new MailTemplateDataDTO() + final GenericComunicationMailTemplateDataDTO mailTemplateData = new GenericComunicationMailTemplateDataDTO() .setTitle(subject) .setContent(testoMailQuarantena); - String htmlMailText = mailTemplateService.getGenericEmailTemplate(MailService.Level.INFO, mailTemplateData); + String htmlMailText = mailTemplateService.getGenericComunicationEmailTemplate(MailService.Level.INFO, mailTemplateData); // SEND mailService.sendMailPrimary(multiDBTransactionManager, null, null, Arrays.asList(indirizziQuarantena.split("\\|")), null, null, diff --git a/ems-engine/src/main/java/it/integry/ems/system/controller/SystemController.java b/ems-engine/src/main/java/it/integry/ems/system/controller/SystemController.java index 6814284143..b8c5a00df7 100644 --- a/ems-engine/src/main/java/it/integry/ems/system/controller/SystemController.java +++ b/ems-engine/src/main/java/it/integry/ems/system/controller/SystemController.java @@ -22,6 +22,7 @@ import it.integry.ems.service.MailService; import it.integry.ems.service.PrinterService; import it.integry.ems.service.ReportProcessor; import it.integry.ems.service.dto.CustomEmailDTO; +import it.integry.ems.service.dto.TicketNotificationMailTemplateDataDTO; import it.integry.ems.service.exception.EmptyReportException; import it.integry.ems.settings.Model.AvailableConnectionsModel; import it.integry.ems.settings.Model.SettingsModel; @@ -51,7 +52,6 @@ import net.schmizz.sshj.SSHClient; import net.schmizz.sshj.sftp.SFTPClient; import net.schmizz.sshj.transport.verification.PromiscuousVerifier; import org.apache.commons.codec.binary.Base64; -import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.text.WordUtils; import org.apache.logging.log4j.LogManager; @@ -65,10 +65,8 @@ import org.springframework.web.util.HtmlUtils; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.IOException; -import java.io.InputStream; import java.lang.reflect.Method; import java.math.BigDecimal; -import java.net.URL; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.text.SimpleDateFormat; @@ -742,7 +740,7 @@ public class SystemController { emailTo = emailPersRif; } - List listEmailCcn= new ArrayList<>(); + List listEmailCcn = new ArrayList<>(); if (!activity.getUserCreator().equals(activity.getUserName())) { // SE SONO DIVERSI (E NON E' "CC") MANDA UN EMAIL AD // "ASSEGNATO A" @@ -755,10 +753,10 @@ public class SystemController { String emailAssegnatoA = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), query); if (!UtilityString.isNullOrEmpty(emailAssegnatoA)) { - if (UtilityString.isNullOrEmpty(emailTo) ) + if (UtilityString.isNullOrEmpty(emailTo)) emailTo = UtilityString.streNull(emailAssegnatoA); else - listEmailCcn.add( emailAssegnatoA ); + listEmailCcn.add(emailAssegnatoA); } } @@ -769,7 +767,7 @@ public class SystemController { "from jtb_comt \n" + "inner join jrl_flav_users on jtb_comt.cod_jflav_tec = jrl_flav_users.cod_jflav and jrl_flav_users.flag_jflav_default = 's'\n" + "inner join stb_user on jrl_flav_users.user_name =stb_user.user_name " + - "where cod_jcom = %S ", activity.getCodJcom()) ; + "where cod_jcom = %S ", activity.getCodJcom()); String emailResponsabile = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), query); if (!UtilityString.isNullOrEmpty(emailResponsabile) && !listEmailCcn.contains(emailResponsabile)) @@ -929,142 +927,100 @@ public class SystemController { public void notifica(String activityID, String personaRif, String emailPersRif, String inseritoDa, String ccn, String azione, String note, MultiDBTransactionManager multiDBTransactionManager) throws Exception { /** - * IL PARAMETRO 'azione' PUO' ASSUMERE I SEGUENTI VALORI: 'A' - - * Apertura, 'B' - Apertura da Cliente, 'U' - Cambio Stato, 'C' - - * Chiusura, 'F' - Note feedback, 'S' - Sollecito - */String htmlNotifyMail, subject, codAnag = "", includeFb = "", activityResultId, emailUtente = "", emailTo = "", query; - String webUrl = "https://www.studioml.it/integry/"; - String taskUrl = "https://task.studioml.it/"; + * IL PARAMETRO 'azione' PUO' ASSUMERE I SEGUENTI VALORI: + * 'A' - Apertura, + * 'B' - Apertura da Cliente, + * 'U' - Cambio Stato, + * 'C' - Chiusura, + * 'F' - Note feedback, + * 'S' - Sollecito + * + */ + String emailUtente = ""; + String taskUrl = "https://task.studioml.it/ViewTicket/" + activityID; String emailHelpdesk = "helpdesk@integry.it"; - PreparedStatement info; - ResultSet res; - - - /** VALUTARE SE IL SEGUENTE CONTROLLO LO SI DEBBA FARE IN WINACT: */ - // CONTROLLO PER INSERIRE LINK FEEDBACK DEL CLIENTE SE ... - includeFb = ""; - if ("C".equals(azione)) { // ... MESSAGGIO DI CHIUSURA TICKET - includeFb = "&linkfb=1"; + String subject = "Integry - Ticket n. " + activityID; + if ("A".equals(azione)) { + subject = "Integry - Apertura attivita n. " + activityID; + } else if ("B".equals(azione)) { + subject = "Integry - Nuova attivita da " + personaRif + " ticket n. " + activityID; + } else if ("F".equals(azione)) { + subject = "Integry - Feedback negativo da " + personaRif + " ticket n. " + activityID; + } else if ("S".equals(azione)) { + subject = "Integry - Sollecito da " + personaRif + " per ticket n. " + activityID; } else if ("U".equals(azione)) { - // ... OPPURE AGG. A STATO "RISCONTRO CLIE." - query = " SELECT activity_result_id FROM stb_activity WHERE activity_id = " - + UtilityDB.valueToString(activityID); - info = multiDBTransactionManager.prepareStatement(query); - res = info.executeQuery(); - if (res.next()) { - activityResultId = res.getString(1); - if ("RISCONTRO CLIE.".equals(activityResultId)) { - includeFb = "&linkfb=1"; - } - } - res.close(); - info.close(); - - } else if ("F".equals(azione) || "S".equals(azione)) { - // RECUPERA EMAIL UTENTE PER INVIO NOTIFICA FEEDBACK NEGATIVO O - // SOLLECITO - query = "SELECT e_mail " + - "FROM stb_activity INNER JOIN jtb_flav ON cod_jflav = user_name " + - "WHERE activity_id = " + UtilityDB.valueToString(activityID); - info = multiDBTransactionManager.prepareStatement(query); - res = info.executeQuery(); - if (res.next()) { - emailUtente = res.getString(1); - } - if (emailUtente.length() == 0) { - emailUtente = emailHelpdesk; - } - res.close(); - info.close(); + subject = "Integry - Aggiornamento attivita n. " + activityID; + } else if ("C".equals(azione)) { + subject = "Integry - Chiusura attivita n. " + activityID; } - URL url = new URL(webUrl + "mail_models/ticket_mail.php?act=" + azione + includeFb); - InputStream is = url.openStream(); - htmlNotifyMail = IOUtils.toString(is); + String emailTo; - if (!UtilityString.isNullOrEmpty(htmlNotifyMail)) { - htmlNotifyMail = htmlNotifyMail.replace("%%ACTIVITY_ID%%", activityID); - htmlNotifyMail = htmlNotifyMail.replace("%%PERSONA_RIF%%", personaRif == null ? "" : personaRif); - htmlNotifyMail = htmlNotifyMail.replace("%%EXTERNAL_URL%%", taskUrl); - htmlNotifyMail = htmlNotifyMail.replace("%%NOTE%%", note == null ? "" : note); - - subject = "Integry - Ticket n. " + activityID; - if ("A".equals(azione)) { - subject = "Integry - Apertura attivita n. " + activityID; - } else if ("B".equals(azione)) { - subject = "Integry - Nuova attivita da " + personaRif + " ticket n. " + activityID; - } else if ("F".equals(azione)) { - subject = "Integry - Feedback negativo da " + personaRif + " ticket n. " + activityID; - } else if ("S".equals(azione)) { - subject = "Integry - Sollecito da " + personaRif + " per ticket n. " + activityID; - } else if ("U".equals(azione)) { - subject = "Integry - Aggiornamento attivita n. " + activityID; - } else if ("C".equals(azione)) { - subject = "Integry - Chiusura attivita n. " + activityID; - } - - if ("B".equals(azione)) { - emailTo = emailHelpdesk; - } else if ("F".equals(azione) || "S".equals(azione)) { - emailTo = emailUtente; - } else { - emailTo = emailPersRif; - } - - if (!emailTo.isEmpty()) { - mailService.sendMailPrimary("noreply@integry.it", "Integry Ticketing", emailTo, null, ccn, subject, htmlNotifyMail, true, true, null, null, null); - - StbActivity activity = new StbActivity(); - activity.setOperation(OperationType.NO_OP); - activity.setActivityId(activityID); - - StbActivityNotification activityNotification = new StbActivityNotification(); - activity.getStbActivityNotification().add(activityNotification); - activityNotification.setOperation(OperationType.INSERT); - activityNotification.setActivityId(activityID); - activityNotification.setNotificationDate(new Date()); - activityNotification.setNotificationType(azione); - if (note != null) { - activityNotification.setNotificationNote(note); - } - - query = "SELECT stb_activity.cod_anag " - + "FROM stb_activity LEFT OUTER JOIN vtb_clie_pers_rif ON stb_activity.cod_anag = vtb_clie_pers_rif.cod_anag AND " - + " stb_activity.persona_rif = vtb_clie_pers_rif.persona_rif AND " - + " vtb_clie_pers_rif.e_mail IS NULL " + "WHERE stb_activity.activity_id = " - + UtilityDB.valueToString(activityID) + " AND " - + " vtb_clie_pers_rif.e_mail IS NULL"; - - info = multiDBTransactionManager.prepareStatement(query); - res = info.executeQuery(); - if (res.next()) - codAnag = res.getString(1); - res.close(); - info.close(); - - String domainIntegry = "integry.it"; - if (!UtilityString.isNullOrEmpty(codAnag) && !UtilityString.isNullOrEmpty(personaRif) - && !UtilityString.isNullOrEmpty(emailPersRif) && !emailPersRif.toUpperCase().contains(domainIntegry.toUpperCase())) { - GtbAnag gtbAnag = new GtbAnag(); - gtbAnag.setCodAnag(codAnag); - List vtbCliePersRifs = new ArrayList(); - VtbCliePersRif persRif = new VtbCliePersRif(); - persRif.setOperation(OperationType.INSERT_OR_UPDATE); - persRif.setCodAnag(codAnag); - persRif.setPersonaRif(personaRif); - persRif.seteMail(emailPersRif); - vtbCliePersRifs.add(persRif); - gtbAnag.setVtbCliePersRif(vtbCliePersRifs); - entityProcessor.processEntity(gtbAnag, multiDBTransactionManager); - } - entityProcessor.processEntity(activity, multiDBTransactionManager); - } else { - throw new Exception("Email destinatario non specificata"); - } + if ("B".equals(azione)) { + emailTo = emailHelpdesk; + } else if ("F".equals(azione) || "S".equals(azione)) { + emailTo = emailUtente; } else { - throw new Exception("Modello mail non trovato in url " + webUrl); + emailTo = emailPersRif; + } + + if (!emailTo.isEmpty()) { + + TicketNotificationMailTemplateDataDTO mailData = new TicketNotificationMailTemplateDataDTO(activityID, personaRif) + .setHelpdeskUrl(taskUrl); + + mailService.sendTicketNotificationMail(multiDBTransactionManager, emailTo, null, ccn, subject, mailData); + + StbActivity activity = new StbActivity(); + activity.setOperation(OperationType.NO_OP); + activity.setActivityId(activityID); + + StbActivityNotification activityNotification = new StbActivityNotification(); + activity.getStbActivityNotification().add(activityNotification); + activityNotification.setOperation(OperationType.INSERT); + activityNotification.setActivityId(activityID); + activityNotification.setNotificationDate(new Date()); + activityNotification.setNotificationType(azione); + + if (note != null) { + activityNotification.setNotificationNote(note); + } + + String query = "SELECT stb_activity.cod_anag " + + "FROM stb_activity LEFT OUTER JOIN vtb_clie_pers_rif ON stb_activity.cod_anag = vtb_clie_pers_rif.cod_anag AND " + + " stb_activity.persona_rif = vtb_clie_pers_rif.persona_rif AND " + + " vtb_clie_pers_rif.e_mail IS NULL " + "WHERE stb_activity.activity_id = " + + UtilityDB.valueToString(activityID) + " AND " + + " vtb_clie_pers_rif.e_mail IS NULL"; + + String codAnag = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), query); + + + String domainIntegry = "integry.it"; + if (!UtilityString.isNullOrEmpty(codAnag) && + !UtilityString.isNullOrEmpty(personaRif) && + !UtilityString.isNullOrEmpty(emailPersRif) && + !emailPersRif.toUpperCase().contains(domainIntegry.toUpperCase())) { + + GtbAnag gtbAnag = new GtbAnag() + .setCodAnag(codAnag); + + VtbCliePersRif persRif = new VtbCliePersRif() + .setCodAnag(codAnag) + .setPersonaRif(personaRif) + .seteMail(emailPersRif); + + persRif.setOperation(OperationType.INSERT_OR_UPDATE); + + gtbAnag.getVtbCliePersRif().add(persRif); + entityProcessor.processEntity(gtbAnag, multiDBTransactionManager); + } + + entityProcessor.processEntity(activity, multiDBTransactionManager); + } else { + throw new Exception("Email destinatario non specificata"); } }