Aggiornata email di apertura tickets

This commit is contained in:
2024-10-29 15:41:03 +01:00
parent af9b5e99b2
commit 0aa5f3ad77
7 changed files with 175 additions and 163 deletions

View File

@@ -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<EntityBase> entitiesList, List<EmailFileAttachment> attachments, List<AnomalieDTO> anomalie, List<Exception> 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));

View File

@@ -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<String> renderExceptionsToHtml(List<Exception> exceptions, boolean applyConsoleStyle) {
List<String> renderedExceptions = new ArrayList<>();
@@ -95,7 +119,6 @@ public class MailTemplateService {
return renderedExceptions;
}
public String renderExceptionToHtml(Exception ex, boolean applyConsoleStyle) {
StringBuilder htmlContent = new StringBuilder();

View File

@@ -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<Exception> exceptions) {
public GenericComunicationMailTemplateDataDTO setExceptions(List<Exception> exceptions) {
this.exceptions = exceptions;
return this;
}

View File

@@ -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;
}
}

View File

@@ -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("<p style=\"color: red; font-weight:bold\">%s<br/></p>", 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,

View File

@@ -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,

View File

@@ -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<String> listEmailCcn= new ArrayList<>();
List<String> 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<VtbCliePersRif> vtbCliePersRifs = new ArrayList<VtbCliePersRif>();
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");
}
}