email recuo fase

git-svn-id: https://svn.coded.pt/svn/SIPRP@2058 bb69d46d-e84e-40c8-a05a-06db0d633741
lxbfYeaa
Sérgio Condenço 11 years ago
parent d34dd0f173
commit 86872eaba6

@ -29,6 +29,7 @@ import com.evolute.entity.evo.EvoDataProvider;
import com.evolute.utils.Singleton;
import com.evolute.utils.arrays.Virtual2DArray;
import com.evolute.utils.db.Connector;
import com.evolute.utils.error.ErrorLogger;
import com.evolute.utils.sql.Expression;
import com.evolute.utils.sql.Field;
import com.evolute.utils.sql.Select;
@ -48,6 +49,7 @@ import db.data.siprp.outer.RecomendacoesData;
import db.data.siprp.outer.SeccoesData;
import db.data.siprp.outer.TiposUtilizadoresData;
import db.data.siprp.outer.EstabelecimentosData;
import db.data.siprp.outer.UtilizadoresData;
import global.Global;
import java.sql.Connection;
@ -62,8 +64,20 @@ import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.Properties;
import java.util.StringTokenizer;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import shst.companydataloaders.SIPRPPropertiesLoader;
import utils.Strings;
import utils.Utils;
@ -74,6 +88,13 @@ import utils.Utils;
public class AnalisesDataProvider extends GenericDataProvider
{
private static final String SMTP_HOST = "smtp.siprp.pt";
private static final int SMTP_PORT = 587;
private static final String MAIL_USER = "servico@siprp.pt";
private static final String MAIL_PASS = "GR33%df5";
private static final String MAIL_BCC = "acidentes.auchan@siprp.pt";
private static final String MAIL_BCC2 = "siprp.aat@evolute.pt";
private static AnalisesDataProvider INSTANCE = null;
private AnalisesDataProvider() throws Exception
@ -1733,7 +1754,164 @@ public class AnalisesDataProvider extends GenericDataProvider
analisesAcidentesData.update( c );
analisesAcidentesData.save();
analisesAcidentesData.refresh();
this.sendEmailRecuoFaseAcidente(analisesAcidentesData, c);
}
private void sendEmailRecuoFaseAcidente( AnalisesAcidentesData analise, Correcao correcao ) throws Exception
{
Integer estabelecimentoId = analise.getEstabelecimento_id();
EstabelecimentosData estabelecimento = EvoBaseProvider.getInstance().getProvider().load(EstabelecimentosData.class,
new Object[]{estabelecimentoId},
new String[]{EstabelecimentosData.ID_FULL});
Integer estado = correcao.getEstado_corr();
AcidentadosData acidentado = analise.toAcidentado_id();
Integer tipo = null;
String responsavel_loja = "n";
switch ( estado.intValue() )
{
case Global.ESTADO_RH1:
tipo = new Integer( Global.TIPO_UTILIZADOR_RH );
break;
case Global.ESTADO_HS:
tipo = new Integer( Global.TIPO_UTILIZADOR_HS );
break;
case Global.ESTADO_RH2:
tipo = new Integer( Global.TIPO_UTILIZADOR_RH );
break;
case Global.ESTADO_CONSOLIDACAO:
tipo = new Integer( Global.TIPO_UTILIZADOR_HS );
break;
case Global.ESTADO_ASSINATURA_SEG:
tipo = new Integer( Global.TIPO_UTILIZADOR_SEGURANCA );
responsavel_loja = "y";
break;
case Global.ESTADO_ASSINATURA_RH:
tipo = new Integer( Global.TIPO_UTILIZADOR_RH );
responsavel_loja = "y";
break;
case Global.ESTADO_FECHAR:
tipo = new Integer( Global.TIPO_UTILIZADOR_HS );
break;
}
String assunto = "Comunicacao de Analise de Acidentes de Trabalho" + ( acidentado != null ? " de " + acidentado.getNome() : "" ) + " - " +
(estabelecimento != null ? estabelecimento.getNome() : "");
String texto_email = "<p>Esta &eacute; uma mensagem autom&aacute;tica da equipa da SIPRP:</p>";
texto_email += "<p>Recebeu um processo de an&aacute;lise de acidente de trabalho para completar.</p>";
texto_email += "<p>Por favor, aceda a www.siprp.pt, separador colaboradores em 'Acesso &agrave; Gest&atilde;o "
+ "de An&aacute;lises de Acidentes de Trabalho' e prossiga com a gest&atilde;o do processo " + analise.getAnalise_nr() + ".</p>";
System.out.println( "Sending mail to next user." );
List<UtilizadoresData> list = getUtilizadoresListByTipo( tipo, responsavel_loja, estabelecimentoId );
System.out.println("Utilizadores para enviar email: " + list.size());
ListIterator<UtilizadoresData> iter = list.listIterator();
while ( iter.hasNext() )
{
UtilizadoresData u = iter.next();
System.out.println( "USER MAIL NEXT FASE : " + u.getLogin() + " ; " + u.getEmail() );
try
{
sendEmail( analise, u.getEmail(), Global.ENDERECO_ENVIO, assunto, texto_email );
}
catch ( Exception ex1 )
{
ErrorLogger.logException( ex1 );
System.out.println( "MAIL ERROR : " + ex1.getMessage() );
}
}
}
private void sendEmail( AnalisesAcidentesData a, String emailTo, String emailFrom, String assunto, String texto_email )
throws Exception
{
boolean isDebug = SIPRPPropertiesLoader.getInstance().findProperty( "debug", false );
System.out.println( "\nAnaliseAcidenteTrabalho . sendEmailWithPdf() : debug ? " + isDebug );
if( assunto != null )
{
assunto = StringPlainer.convertString( assunto, true, false );
}
if ( ! isDebug )
{
System.out.println( "\temailTo : " + emailTo );
System.out.println( "\temailFrom : " + emailFrom );
System.out.println( "\tAnaliseAcidente : " + ( a == null ? "null" : a.getId() ) );
System.out.println( "\t\tTecnicoSaudeID : " + ( a == null ? "a null" : "" + a.getTecnico_saude_id() ) );
System.out.println( "\t\tMedicoID : " + ( a == null ? "a null" : "" + a.getMedico_id() ) );
Properties props = new Properties();
//props.put("mail.transport.protocol", "smtp");
props.put( "mail.smtp.host", SMTP_HOST );
props.put( "mail.from", emailFrom );
props.put( "mail.smtp.auth", "true" );
props.put( "mail.smtp.user", MAIL_USER );
props.put( "mail.smtp.password", MAIL_PASS );
// props.put( "mail.smtp.starttls.enable","true" );
// Authenticator auth = new SMTPAuthenticator();
// Session session = Session.getDefaultInstance(props, auth);
Session session = Session.getDefaultInstance( props );
Message msg = new MimeMessage( session );
msg.setFrom( new InternetAddress( emailFrom ) );
InternetAddress[] address = { new InternetAddress( emailTo ) };
msg.setRecipients( Message.RecipientType.TO, address );
InternetAddress[] addressBCC = new InternetAddress[ 2 ];
addressBCC[ 0 ] = new InternetAddress( MAIL_BCC );
addressBCC[ 1 ] = new InternetAddress( MAIL_BCC2);
msg.setRecipients( Message.RecipientType.BCC, addressBCC );
( ( MimeMessage ) msg ).setSubject( assunto, "UTF-8" );
msg.setSentDate( new Date() );
Multipart multipart = new MimeMultipart();
BodyPart msgBodyPart = new MimeBodyPart();
String html;
html = "<html><head> <meta content='text/html;charset=ISO-8859-1' http-equiv='Content-Type'></head>";
html += "<body bgcolor='#ffffff' text='#000000'>";
html += "<div>" + texto_email + "</div>";
html += "<body></html>";
msgBodyPart.setContent( html, "text/html" );
multipart.addBodyPart( msgBodyPart );
msg.setContent( multipart );
Transport t;
t = session.getTransport( "smtp" );
t.connect( SMTP_HOST, SMTP_PORT, MAIL_USER, MAIL_PASS );
t.sendMessage( msg, msg.getAllRecipients() );
t.close();
System.out.println( "Email Enviado !!!! " + emailTo );
}
}
public List< UtilizadoresData > getUtilizadoresListByTipo( Integer tipo, String responsavel_loja, Integer estabelecimento_id ) throws Exception
{
List<UtilizadoresData> utilizadoresData;
if( tipo != null && ( tipo == Global.TIPO_UTILIZADOR_RH || tipo == Global.TIPO_UTILIZADOR_SEGURANCA ) )
{
utilizadoresData = EvoBaseProvider.getInstance().getProvider().listLoad( UtilizadoresData.class,
new Object[]{ "y", "n", tipo, estabelecimento_id, responsavel_loja },
new String[]{ UtilizadoresData.ACTIVO_FULL, UtilizadoresData.APAGADO_FULL, UtilizadoresData.TIPO_FULL,
UtilizadoresData.ESTABELECIMENTO_ID_FULL, UtilizadoresData.RESPONSAVEL_LOJA_FULL },
new String[]{ UtilizadoresData.NOME_FULL }, null );
}
else
{
utilizadoresData = EvoBaseProvider.getInstance().getProvider().listLoad( UtilizadoresData.class,
new Object[]{ "y", "n", tipo, responsavel_loja },
new String[]{ UtilizadoresData.ACTIVO_FULL, UtilizadoresData.APAGADO_FULL, UtilizadoresData.TIPO_FULL,
UtilizadoresData.RESPONSAVEL_LOJA_FULL },
new String[]{ UtilizadoresData.NOME_FULL }, null );
}
return utilizadoresData;
}
public Integer createRecomendacao( Recomendacao r ) throws Exception
{

Loading…
Cancel
Save