Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package isjexecact.br.com.inso.Funcionalidades.CriarTarefaCompromisso; import isjexecact.br.com.inso.Funcionalidades.EnviarEmail.EnviarEmail; import isjexecact.br.com.inso.Parser.ParserUtils; import isjexecact.br.com.inso.dao.TarefaCompromisso.TarefaCompromisso; import isjexecact.br.com.inso.dao.TarefaCompromisso.TarefaCompromissoDAOHibernate; import isjexecact.br.com.inso.dao.TcLembrete.TcLembrete; import isjexecact.br.com.inso.dao.TcLembrete.TcLembreteDAOHibernate; import isjexecact.br.com.inso.dao.TcLembrete.TcLembreteId; import isjexecact.br.com.inso.dao.TcLoginLembrete.TcLoginLembrete; import isjexecact.br.com.inso.dao.TcLoginLembrete.TcLoginLembreteDAOHibernate; import isjexecact.br.com.inso.dao.TcLoginLembrete.TcLoginLembreteId; import isjexecact.br.com.inso.dao.TcParticipante.TcParticipante; import isjexecact.br.com.inso.dao.TcParticipante.TcParticipanteDAOHibernate; import isjexecact.br.com.inso.dao.TcParticipante.TcParticipanteId; import isjexecact.br.com.inso.dao.TcReftc.TcReftc; import isjexecact.br.com.inso.dao.TcReftc.TcReftcDAOHibernate; import isjexecact.br.com.inso.dao.TcResponsavel.TcResponsavel; import isjexecact.br.com.inso.dao.TcResponsavel.TcResponsavelDAOHibernate; import isjexecact.br.com.inso.dao.TcResponsavel.TcResponsavelId; import isjexecact.br.com.inso.utils.Funcoes; import isjexecact.br.com.inso.utils.HibernateUtil; import java.util.Date; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; /** * * @author glauber.duma */ public class TarefaCompromissos { private int NrControle; // Nmero de Controle private String TpTc; // [T]-Tarefa [C]-Compromisso Tipo de Agenda private String Titulo; // Ttulo private String LoginAgendado; // Agendado por private Date DtAgendado; // Data de agendamento private String HrAgendado; // Hora de agendamento private String FlParticular; // [S]-Sim [N]-No TC particular private String FlPrazo; // [S]-Sim [N]-No Flag de prazo private Date DtPrazo; // Data do prazo private String HrPrazo; // Hora do prazo private String FlInicio; // [S]-Sim [N]-No Flag de inicio private Date Dtinicio; // Data de inicio private String HrInicio; // Hora de inicio private String FlHrOcupado; // [S]-Sim [N]-No Flag de hora ocupada private String FlFim; // [S]-Sim [N]-No Flag de hora ocupada private Date DtFim; // Data de trmino private String HrFim; // Hora de trmino private String FlDiaInteiro; // [S]-Sim [N]-No Dia inteiro private String FlFila; // [S]-Sim [N]-No Fila private String FlPopupPart; // [S]-Sim [N]-No Enviar aviso ao participante via popup private String FlEmailPart; // [S]-Sim [N]-No Enviar aviso ao participante via email private String FlSmsPart; // [S]-Sim [N]-No Enviar aviso ao participante via sms private String FlNotifica; // [S]-Sim [N]-No Avisar na criao private String FlRejeita; // [S]-Sim [N]-No Permitir recusa private String FlRedireciona; // [S]-Sim [N]-No Permitir redirecionamento private String FlAutentica; //[S]-Sim [N]-No Exige autenticao private String FlPopupResp; // [S]-Sim [N]-No Enviar aviso ao responsvel via popup private String FlEmailResp; // [S]-Sim [N]-No Enviar aviso ao responsvel via email private String FlSmsResp; // [S]-Sim [N]-No Enviar aviso ao responsvel via sms private String Referencia; // Referencia a um item no sistema private String RefChave; // Chave da referencia private String NmTc; // Descrio do compromisso private int Prioridade; // Prioridade private String LoginAltera; // Login da ultima alterao private Date DtAltera; // Data da ultima alterao private String HrAltera; // Hora da ultima alterao private String TcCategoria; // Categoria da tarefa/compromisso private String Participantes; // {'alexandre','milton','celia@inso.com.br','glauber'} Participantes, pode ser usurio, grupo ou contato. private String Lembretes; // D10;H1;M30 - Lembretes private String Responsaveis; // {'alexandre','milton','master'} Responsveis, pode ser usurio ou grupo private String EmailSender; // agendaisj@inso.com.br Email do remetente. // Nova funcionalidade de baixa de tarefa / compromisso via tipo de andamento ou tipo de documento ged private Character agendaGoogle; private String baixaTpAndamento; private String baixaTpDocumento; private String localCompromisso; public TarefaCompromissos() { FlFila = "N"; DtAgendado = Funcoes.getDataAtual(); HrAgendado = Funcoes.getHoraAtual(); FlParticular = "N"; FlPrazo = "S"; DtPrazo = Funcoes.getDataAtual(); HrPrazo = Funcoes.getHoraAtual(); FlInicio = "S"; Dtinicio = Funcoes.getDataAtual(); HrInicio = Funcoes.getHoraAtual(); FlHrOcupado = "S"; FlFim = "S"; DtFim = Funcoes.getDataAtual(); HrFim = Funcoes.getHoraAtual(); FlDiaInteiro = "S"; FlFila = "N"; FlPopupPart = "N"; FlEmailPart = "S"; FlSmsPart = "N"; FlNotifica = "S"; FlRejeita = "N"; FlRedireciona = "N"; FlAutentica = "N"; FlPopupResp = "N"; FlEmailResp = "N"; FlSmsResp = "N"; Referencia = "pasta"; RefChave = "[NR_PASTA]"; Prioridade = 1; TcCategoria = "Nova Publicao"; Lembretes = "D1"; Responsaveis = "inso"; EmailSender = "agendaisj@inso.com.br"; // Nova funcionalidade de baixa de tarefa / compromisso via tipo de andamento ou tipo de documento ged this.agendaGoogle = null; this.baixaTpAndamento = ""; this.baixaTpDocumento = ""; this.localCompromisso = ""; } /// <summary> /// Cria uma tarefa / compromisso. /// </summary> /// /// /// <returns>nada.</returns> public void criarTarefaCompromisso() throws Exception { // Validao bsica Valida(); // Abertura da sesso e do controle de transao SessionFactory sessionFactory = HibernateUtil.getSessionFactory(null); Session sessao = sessionFactory.openSession(); Transaction tx = sessao.beginTransaction(); // Persistir a tarefa / compromisso TarefaCompromisso tc = atribuirTarefaCompromisso(); TarefaCompromissoDAOHibernate daotc = new TarefaCompromissoDAOHibernate(); daotc.setSession(sessao); daotc.inserirRegistro(tc); // Persistir participantes persistirParticipantes(tc, sessao); // Persistir responsaveis persistirResponsaveis(tc, sessao); // Persistir referencia persistirReferencia(tc, sessao); // Persistir lembretes persistirLembretes(tc, sessao); // Persistir lembretes dos logins persistirLoginLembrete(tc, sessao); // Otmizando o cache da session, melhorando a utilizao da memria sessao.flush(); sessao.clear(); tx.commit(); sessao.close(); // Verifica se esta configurado para enviar e-mail para participantes e responsveis if (FlEmailPart.toUpperCase().equals("S") || FlEmailResp.toUpperCase().equals("S")) { EnviaEmail(); } } /// <summary> /// Faz o envio do e-mail. /// </summary> /// <returns>nada.</returns> private void EnviaEmail() { StringBuilder sb = new StringBuilder(); // Montagem dos participantes if (FlEmailPart.toUpperCase().equals("S")) { String[] parti = Participantes.split(","); for (int ii = 0; ii < parti.length; ii++) { sb.append(ParserUtils.Login2Email(parti[ii].toString())); if (ii < (parti.length - 1)) { sb.append(","); } } } // Montagem dos responsveis if (FlEmailResp.toUpperCase().equals("S")) { String[] parti = Responsaveis.split(","); if (parti.length > 0 && sb.length() > 0) { sb.append(","); } for (int ii = 0; ii < parti.length; ii++) { sb.append(ParserUtils.Login2Email(parti[ii].toString())); if (ii < (parti.length - 1)) { sb.append(","); } } } // Montagem do corpo do e-mail e envio if (sb.length() > 0) { EnviarEmail mail = new EnviarEmail(); mail.setPara(sb.toString()); mail.setAssunto(Titulo); mail.setMensagem(NmTc); mail.setPara(sb.toString()); mail.SendEmail(); } } /// <summary> /// Efetua a persistencia dos lembretes. /// </summary> /// <param name="tc">Objeto do tipo TarefaCompromisso j persistido.</param> /// <param name="sessao">Objeto do tipo Session com o contexto e transao j inicializado.</param> /// <returns>nada.</returns> private void persistirLembretes(TarefaCompromisso tc, Session sessao) { // Persistir os lembretes String[] lembr = Lembretes.split(";"); for (String lemb : lembr) { if (!lemb.isEmpty() && 2 == lemb.length()) { // Monta o registro de tc_lembrete TcLembreteId tclembId = new TcLembreteId(); tclembId.setNrControle(tc.getNrControle()); tclembId.setTpLembrete(lemb.substring(0, 1)); int qtd = 0; try { qtd = Integer.parseInt(lemb.substring(1)); } catch (NumberFormatException conversao) { } tclembId.setQtdLembrete(qtd); TcLembrete tclembrete = new TcLembrete(); tclembrete.setId(tclembId); // Persiste o lembrete TcLembreteDAOHibernate daotclemb = new TcLembreteDAOHibernate(); daotclemb.setSession(sessao); daotclemb.inserirRegistro(tclembrete); } } } /// <summary> /// Efetua a persistencia dos participantes. /// </summary> /// <param name="tc">Objeto do tipo TarefaCompromisso j persistido.</param> /// <param name="sessao">Objeto do tipo Session com o contexto e transao j inicializado.</param> /// <returns>nada.</returns> private void persistirParticipantes(TarefaCompromisso tc, Session sessao) { // Persistir os participantes String[] parti = Participantes.split(","); for (String par : parti) { if (!par.isEmpty()) { // Monta o registro de tc_participante TcParticipanteId tcpartId = new TcParticipanteId(); tcpartId.setNrControle(tc.getNrControle()); tcpartId.setLoginParticipante(par.trim()); TcParticipante tcparti = new TcParticipante(); tcparti.setId(tcpartId); tcparti.setTcStatus("1"); // Persiste o participante TcParticipanteDAOHibernate daoparti = new TcParticipanteDAOHibernate(); daoparti.setSession(sessao); daoparti.inserirRegistro(tcparti); } } } /// <summary> /// Efetua a persistencia dos responsaveis. /// </summary> /// <param name="tc">Objeto do tipo TarefaCompromisso j persistido.</param> /// <param name="sessao">Objeto do tipo Session com o contexto e transao j inicializado.</param> /// <returns>nada.</returns> private void persistirResponsaveis(TarefaCompromisso tc, Session sessao) { // Persistir os responsaveis String[] respo = Responsaveis.split(","); for (String res : respo) { if (!res.isEmpty()) { // Objeto Id TcResponsavelId tcrespId = new TcResponsavelId(); tcrespId.setNrControle(tc.getNrControle()); tcrespId.setLoginResponsavel(res.trim()); // Objeto principal TcResponsavel tcrespo = new TcResponsavel(); tcrespo.setId(tcrespId); tcrespo.setFlAviso(FlPopupResp); // Persiste o responsavel TcResponsavelDAOHibernate daorespo = new TcResponsavelDAOHibernate(); daorespo.setSession(sessao); daorespo.inserirRegistro(tcrespo); } } } /// <summary> /// Efetua a persistencia dos Lembretes dos responsveisparticipantes. /// </summary> /// <param name="tc">Objeto do tipo TarefaCompromisso j persistido.</param> /// <param name="sessao">Objeto do tipo Session com o contexto e transao j inicializado.</param> /// <returns>nada.</returns> private void persistirLoginLembrete(TarefaCompromisso tc, Session sessao) { // Persistir os participantes String[] parti = Participantes.split(","); for (String par : parti) { if (!par.isEmpty()) { // Monta o registro de tc_login_lembrete // Objeto ID TcLoginLembreteId tcloginlembreteId = new TcLoginLembreteId(); tcloginlembreteId.setNrControle(tc.getNrControle()); tcloginlembreteId.setLoginParticipante(par.trim()); tcloginlembreteId.setDtLembrete(Dtinicio); tcloginlembreteId.setHrLembrete(HrInicio); // Objeto principal TcLoginLembrete tcloginLembrete = new TcLoginLembrete(); tcloginLembrete.setId(tcloginlembreteId); tcloginLembrete.setFlAviso(FlPopupPart); tcloginLembrete.setFlSendemail(FlEmailPart); tcloginLembrete.setFlSendsms(FlSmsPart); // Objeto de persistencia TcLoginLembreteDAOHibernate daolemb = new TcLoginLembreteDAOHibernate(); daolemb.setSession(sessao); daolemb.inserirRegistro(tcloginLembrete); } } } /// <summary> /// Efetua a persistencia da referencia. /// </summary> /// <param name="tc">Objeto do tipo TarefaCompromisso j persistido.</param> /// <param name="sessao">Objeto do tipo Session com o contexto e transao j inicializado.</param> /// <returns>nada.</returns> private void persistirReferencia(TarefaCompromisso tc, Session sessao) { // Persistir a referencia int refnum = 0; try { refnum = Integer.parseInt("0" + RefChave); } catch (NumberFormatException conversao) { } // Monta o registro de tc_reftc TcReftc tcreftc = new TcReftc(); // tcreftc.setNrControle(tc.getNrControle()); tcreftc.setChaveTc(tc.getNrControle()); tcreftc.setRefNum(refnum); tcreftc.setRefChar(RefChave); // tcreftc.setTarefaCompromisso(tc); TcReftcDAOHibernate daotcreftc = new TcReftcDAOHibernate(); daotcreftc.setSession(sessao); daotcreftc.inserirRegistro(tcreftc); } /// <summary> /// Cria e retorna um objeto TarefaCompromisso utilizado para persistencia. /// </summary> /// <returns>Objeto do tipo TarefaCompromisso.</returns> private TarefaCompromisso atribuirTarefaCompromisso() { TarefaCompromisso tc = new TarefaCompromisso(); tc.setTpTc(TpTc); tc.setTitulo(Titulo); tc.setLoginAgendado(LoginAgendado); tc.setDtAgendado(DtAgendado); tc.setHrAgendado(HrAgendado); tc.setFlParticular(FlParticular); tc.setFlPrazo(FlPrazo); tc.setDtPrazo(DtPrazo); tc.setHrPrazo(HrPrazo); tc.setFlInicio(FlInicio); tc.setDtInicio(Dtinicio); tc.setHrInicio(HrInicio); tc.setFlHrOcupado(FlHrOcupado); tc.setFlFim(FlFim); tc.setDtFim(DtFim); tc.setHrFim(HrFim); tc.setFlDiainteiro(FlDiaInteiro); tc.setFlFila(FlFila); tc.setFlPopuppart(FlPopupPart); tc.setFlEmailpart(FlEmailPart); tc.setFlSmspart(FlSmsPart); tc.setFlNotifica(FlNotifica); tc.setFlRejeita(FlRejeita); tc.setFlRedireciona(FlRedireciona); tc.setFlAutentica(FlAutentica); tc.setFlPopupresp(FlPopupResp); tc.setFlEmailresp(FlEmailResp); tc.setFlSmsresp(FlSmsResp); tc.setReferencia(Referencia); tc.setRefChave(RefChave); tc.setNmTc(NmTc); tc.setPrioridade(Prioridade); tc.setTcCategoria(TcCategoria); // Nova funcionalidade de baixa de tarefa / compromisso via tipo de andamento ou tipo de documento ged tc.setAgendaGoogle(agendaGoogle); tc.setBaixaTpAndamento(baixaTpAndamento); tc.setBaixaTpDocumento(baixaTpDocumento); tc.setLocalCompromisso(localCompromisso); return tc; } /// <summary> /// Efetua a validao dos campos necessrio para gerar uma tarefa/compromisso, gerando uma exception do campo invlido. /// </summary> /// <returns>Nada.</returns> private void Valida() throws Exception { if (null == Responsaveis || Responsaveis.isEmpty()) { throw new Exception("Responsveis pela tarefa / compromisso no foi informado."); } if (null == Titulo || Titulo.isEmpty()) { throw new Exception("Ttulo da tarefa / compromisso no foi informado."); } if (null == NmTc || NmTc.isEmpty()) { throw new Exception("Descrio da tarefa / compromisso no foi informada."); } if (null == TcCategoria || TcCategoria.isEmpty()) { throw new Exception("Tipo da tarefa / compromisso no foi informado."); } if (null == Participantes || Participantes.isEmpty()) { throw new Exception("Participantes da tarefa / compromisso no foi informado."); } } // Gets & Seters public int getNrControle() { return NrControle; } public void setNrControle(int NrControle) { this.NrControle = NrControle; } public String getTpTc() { return TpTc; } public void setTpTc(String TpTc) { this.TpTc = TpTc; } public String getTitulo() { return Titulo; } public void setTitulo(String Titulo) { this.Titulo = Titulo; } public String getLoginAgendado() { return LoginAgendado; } public void setLoginAgendado(String LoginAgendado) { this.LoginAgendado = LoginAgendado; } public Date getDtAgendado() { return DtAgendado; } public void setDtAgendado(Date DtAgendado) { this.DtAgendado = DtAgendado; } public String getHrAgendado() { return HrAgendado; } public void setHrAgendado(String HrAgendado) { this.HrAgendado = HrAgendado; } public String getFlParticular() { return FlParticular; } public void setFlParticular(String FlParticular) { this.FlParticular = FlParticular; } public String getFlPrazo() { return FlPrazo; } public void setFlPrazo(String FlPrazo) { this.FlPrazo = FlPrazo; } public Date getDtPrazo() { return DtPrazo; } public void setDtPrazo(Date DtPrazo) { this.DtPrazo = DtPrazo; } public String getHrPrazo() { return HrPrazo; } public void setHrPrazo(String HrPrazo) { this.HrPrazo = HrPrazo; } public String getFlInicio() { return FlInicio; } public void setFlInicio(String FlInicio) { this.FlInicio = FlInicio; } public Date getDtinicio() { return Dtinicio; } public void setDtinicio(Date Dtinicio) { this.Dtinicio = Dtinicio; } public String getHrInicio() { return HrInicio; } public void setHrInicio(String HrInicio) { this.HrInicio = HrInicio; } public String getFlHrOcupado() { return FlHrOcupado; } public void setFlHrOcupado(String FlHrOcupado) { this.FlHrOcupado = FlHrOcupado; } public String getFlFim() { return FlFim; } public void setFlFim(String FlFim) { this.FlFim = FlFim; } public Date getDtFim() { return DtFim; } public void setDtFim(Date DtFim) { this.DtFim = DtFim; } public String getHrFim() { return HrFim; } public void setHrFim(String HrFim) { this.HrFim = HrFim; } public String getFlDiaInteiro() { return FlDiaInteiro; } public void setFlDiaInteiro(String FlDiaInteiro) { this.FlDiaInteiro = FlDiaInteiro; } public String getFlFila() { return FlFila; } public void setFlFila(String FlFila) { this.FlFila = FlFila; } public String getFlPopupPart() { return FlPopupPart; } public void setFlPopupPart(String FlPopupPart) { this.FlPopupPart = FlPopupPart; } public String getFlEmailPart() { return FlEmailPart; } public void setFlEmailPart(String FlEmailPart) { this.FlEmailPart = FlEmailPart; } public String getFlSmsPart() { return FlSmsPart; } public void setFlSmsPart(String FlSmsPart) { this.FlSmsPart = FlSmsPart; } public String getFlNotifica() { return FlNotifica; } public void setFlNotifica(String FlNotifica) { this.FlNotifica = FlNotifica; } public String getFlRejeita() { return FlRejeita; } public void setFlRejeita(String FlRejeita) { this.FlRejeita = FlRejeita; } public String getFlRedireciona() { return FlRedireciona; } public void setFlRedireciona(String FlRedireciona) { this.FlRedireciona = FlRedireciona; } public String getFlAutentica() { return FlAutentica; } public void setFlAutentica(String FlAutentica) { this.FlAutentica = FlAutentica; } public String getFlPopupResp() { return FlPopupResp; } public void setFlPopupResp(String FlPopupResp) { this.FlPopupResp = FlPopupResp; } public String getFlEmailResp() { return FlEmailResp; } public void setFlEmailResp(String FlEmailResp) { this.FlEmailResp = FlEmailResp; } public String getFlSmsResp() { return FlSmsResp; } public void setFlSmsResp(String FlSmsResp) { this.FlSmsResp = FlSmsResp; } public String getReferencia() { return Referencia; } public void setReferencia(String Referencia) { this.Referencia = Referencia; } public String getRefChave() { return RefChave; } public void setRefChave(String RefChave) { this.RefChave = RefChave; } public String getNmTc() { return NmTc; } public void setNmTc(String NmTc) { this.NmTc = NmTc; } public int getPrioridade() { return Prioridade; } public void setPrioridade(int Prioridade) { this.Prioridade = Prioridade; } public String getLoginAltera() { return LoginAltera; } public void setLoginAltera(String LoginAltera) { this.LoginAltera = LoginAltera; } public Date getDtAltera() { return DtAltera; } public void setDtAltera(Date DtAltera) { this.DtAltera = DtAltera; } public String getHrAltera() { return HrAltera; } public void setHrAltera(String HrAltera) { this.HrAltera = HrAltera; } public String getTcCategoria() { return TcCategoria; } public void setTcCategoria(String TcCategoria) { this.TcCategoria = TcCategoria; } public String getParticipantes() { return Participantes; } public void setParticipantes(String Participantes) { this.Participantes = Participantes; } public String getLembretes() { return Lembretes; } public void setLembretes(String Lembretes) { this.Lembretes = Lembretes; } public String getResponsaveis() { return Responsaveis; } public void setResponsaveis(String Responsaveis) { this.Responsaveis = Responsaveis; } public String getEmailSender() { return EmailSender; } public void setEmailSender(String EmailSender) { this.EmailSender = EmailSender; } public Character getAgendaGoogle() { return agendaGoogle; } public void setAgendaGoogle(Character agendaGoogle) { this.agendaGoogle = agendaGoogle; } public String getBaixaTpAndamento() { return baixaTpAndamento; } public void setBaixaTpAndamento(String baixaTpAndamento) { this.baixaTpAndamento = baixaTpAndamento; } public String getBaixaTpDocumento() { return baixaTpDocumento; } public void setBaixaTpDocumento(String baixaTpDocumento) { this.baixaTpDocumento = baixaTpDocumento; } public String getLocalCompromisso() { return localCompromisso; } public void setLocalCompromisso(String localCompromisso) { this.localCompromisso = localCompromisso; } }