/* * Sistema de Ouvidoria: um canal através do qual os usuários * podem encaminhar suas reclamações, elogios e sugestões. * * Copyright (C) 2011 SERPRO * * Este programa é software livre; você pode redistribuí-lo e/ou * modificá-lo sob os termos da Licença Pública Geral GNU, conforme * publicada pela Free Software Foundation; tanto a versão 2 da * Licença como (a seu critério) qualquer versão mais nova. * * Este programa é distribuído na expectativa de ser útil, mas SEM * QUALQUER GARANTIA; sem mesmo a garantia implícita de * COMERCIALIZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM * PARTICULAR. Consulte a Licença Pública Geral GNU para obter mais * detalhes. * * Você deve ter recebido uma cópia da Licença Pública Geral GNU, * sob o título "LICENCA.txt", junto com esse programa. Se não, * acesse o Portal do Software Público Brasileiro no endereço * http://www.softwarepublico.gov.br/ ou escreva para a Fundação do * Software Livre (FSF) Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02111-1301, USA. * * Contatos através do seguinte endereço internet: * http://www.serpro.gov.br/sistemaouvidoria/ */ package br.gov.serpro.ouvidoria.struts.action.gerencial.administracao; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; import org.apache.struts.upload.FormFile; import org.quartz.Scheduler; import br.gov.serpro.ouvidoria.agendador.OuvidoriaScheduler; import br.gov.serpro.ouvidoria.controller.gerencial.administracao.ConfiguracoesOrgaoCtrl; import br.gov.serpro.ouvidoria.controller.gerencial.administracao.OrgaoCtrl; import br.gov.serpro.ouvidoria.dao.DaoException; import br.gov.serpro.ouvidoria.model.ConfiguracoesOrgao; import br.gov.serpro.ouvidoria.model.MeioEnvioResposta; import br.gov.serpro.ouvidoria.model.Orgao; import br.gov.serpro.ouvidoria.model.TipoAcionador; import br.gov.serpro.ouvidoria.struts.DispatchActionSupport; import br.gov.serpro.ouvidoria.struts.form.CadastrarConfiguracoesOrgaoForm; import br.gov.serpro.ouvidoria.util.Constants; /** * Objetivo: Exibir os dados da configuração de um órgão. * * @author SERPRO * @version $Revision: 1.1.2.5 $, $Date: 2011/10/21 12:51:37 $ * @version 0.1, 2004/12/27 */ public class AtualizarConfiguracoesOrgaoAction extends DispatchActionSupport { private static Logger log; private static String horaAgendadaAntiga = null; public ActionForward exibir(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { Orgao localOrgao = null; final String idOrgao = request.getParameter("id"); OrgaoCtrl orgaoCtrl = new OrgaoCtrl(getDaoFactory()); ConfiguracoesOrgaoCtrl configuracoesOrgaoCtrl = new ConfiguracoesOrgaoCtrl( getDaoFactory()); if (idOrgao == null) { localOrgao = getOrgao(request); } else { localOrgao = orgaoCtrl.get(new Long(idOrgao)); } ConfiguracoesOrgao configuracoes = localOrgao.getConfiguracoes(); if (configuracoes == null) { configuracoes = new ConfiguracoesOrgao(); request.setAttribute("function", "incluir"); } else request.setAttribute("function", "alterar"); request.setAttribute("orgao", localOrgao); request.setAttribute("configuracoes", configuracoes); request.setAttribute("listaMeioEnvioRespostaTodos", configuracoesOrgaoCtrl.listarMeioEnvioResposta()); request.setAttribute("diretorioContextoAplicacao", configuracoesOrgaoCtrl.getParametrosGerais() .getDiretorioContextoAplicacao()); request.setAttribute("listaDiretoriosCores", configuracoesOrgaoCtrl .listarDiretoriosCores(this.servlet.getServletContext() .getRealPath(""))); horaAgendadaAntiga = configuracoes.getHoraEnvioNotificacao(); return mapping.findForward("exibir"); } public ActionForward salvar(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ActionMessages msgs = new ActionMessages(); final String id = request.getParameter("id"); final String idOrgao = request.getParameter("idOrgao"); final String meiosEnvioResp = request.getParameter("meiosEnvioResp"); /*Campos de notificação por email*/ final String textoNotificacaoPendencia = request.getParameter("textoNotificacaoPendencia"); final String textoNotificacaoAtraso = request.getParameter("textoNotificacaoAtraso");; final String textoNotificacaoAtrasoCritico = request.getParameter("textoNotificacaoAtrasoCritico"); final String notificacaoEmail = request.getParameter("notificacaoEmail"); final String horaEnvioNotificacao = request.getParameter("horaEnvioNotificacao"); /**/ final String[] tipoAcionador = request.getParameterValues("tipoAcionador"); Collection listaMeioEnvioResposta = new ArrayList(); final String strPermiteMsgDigitalizadaAcionamento = request .getParameter("permiteMsgDigitalizadaAcionamento"); Boolean permiteMsgDigitalizadaAcionamento; final String strTamanhoMaxArquivoCartaDigitalizada = request .getParameter("tamanhoMaxArquivoCartaDigitalizada"); Integer tamanhoMaxArquivoCartaDigitalizada = null; final String strPermiteArquivoAnexoAcionamento = request .getParameter("permiteArquivoAnexoAcionamento"); Boolean permiteArquivoAnexoAcionamento; final String strTamanhoMaxArquivoAnexo = request .getParameter("tamanhoMaxArquivoAnexo"); Integer tamanhoMaxArquivoAnexo = null; final String strPossuiCodigoAcesso = request .getParameter("possuiCodigoAcesso"); Boolean possuiCodigoAcesso; final String strAtendenteConsultaMsgNoAtendimento = request .getParameter("atendenteConsultaMsgNoAtendimento"); Boolean atendenteConsultaMsgNoAtendimento; final String strExigeCertificadoDigitalGeral = request .getParameter("exigeCertificadoDigitalGeral"); Boolean exigeCertificadoDigitalGeral; final String strExigeCertificadoDigitalOrgao = request .getParameter("exigeCertificadoDigitalOrgao"); Boolean exigeCertificadoDigitalOrgao; final String strExisteBloqueioProtocoloPeloCodigo = request .getParameter("existeBloqueioProtocoloPeloCodigo"); Boolean existeBloqueioProtocoloPeloCodigo; final String strExisteBloqueioProtocoloPelaPergunta = request .getParameter("existeBloqueioProtocoloPelaPergunta"); Boolean existeBloqueioProtocoloPelaPergunta; final String strTempoBloqueioProtocoloPeloCodigo = request .getParameter("tempoBloqueioProtocoloPeloCodigo"); Integer tempoBloqueioProtocoloPeloCodigo = null; final String strTempoBloqueioProtocoloPelaPergunta = request .getParameter("tempoBloqueioProtocoloPelaPergunta"); Integer tempoBloqueioProtocoloPelaPergunta = null; final String strQtdeTentativasPossiveisCodigoAcesso = request .getParameter("qtdeTentativasPossiveisCodigoAcesso"); Integer qtdeTentativasPossiveisCodigoAcesso = null; final String strQtdeTentativasPossiveisPergunta = request .getParameter("qtdeTentativasPossiveisPergunta"); Integer qtdeTentativasPossiveisPergunta = null; final String textoApresentacaoOuvidoria = request .getParameter("textoApresentacaoOuvidoria"); final String textoRespostaAcionamento = request .getParameter("textoRespostaAcionamento"); final String textoApresentacaoFormulario = request .getParameter("textoApresentacaoFormulario"); final String textoCanaisComunicacao = request .getParameter("textoCanaisComunicacao"); final String textoApresentacaoResposta = request .getParameter("textoApresentacaoResposta"); final String textoInformacaoOuvidoria = request .getParameter("textoInformacaoOuvidoria"); final String esquemaCoresLayout = request .getParameter("esquemaCoresLayout"); final String nomeExibicaoOrgao = request .getParameter("nomeExibicaoOrgao"); final String descricaoImagemLogo = request .getParameter("descricaoImagemLogo"); final String descricaoImagemBanner = request .getParameter("descricaoImagemBanner"); final String descricaoImagem3 = request .getParameter("descricaoImagem3"); final String descricaoImagem4 = request .getParameter("descricaoImagem4"); final String descricaoImagem5 = request .getParameter("descricaoImagem5"); final String linkImagemLogo = request.getParameter("linkImagemLogo"); final String linkImagemBanner = request .getParameter("linkImagemBanner"); final String linkImagem3 = request.getParameter("linkImagem3"); final String linkImagem4 = request.getParameter("linkImagem4"); final String linkImagem5 = request.getParameter("linkImagem5"); CadastrarConfiguracoesOrgaoForm _form = (CadastrarConfiguracoesOrgaoForm) form; final FormFile imagemLogo = _form.getImagemLogo(); final FormFile imagemBanner = _form.getImagemBanner(); final FormFile imagem3 = _form.getImagem3(); final FormFile imagem4 = _form.getImagem4(); final FormFile imagem5 = _form.getImagem5(); final String urlBaseFuncionarios = request .getParameter("urlBaseFuncionarios"); final String textoConsultaRespostaNoPrazo = request .getParameter("textoConsultaRespostaNoPrazo"); final String textoConsultaRespostaSemPrazo = request .getParameter("textoConsultaRespostaSemPrazo"); final String textoConsultaRespostaEmAtraso = request .getParameter("textoConsultaRespostaEmAtraso"); final String textoAvaliacaoResposta = request .getParameter("textoAvaliacaoResposta"); final String nomeDiretorioOrgao = request .getParameter("nomeDiretorioOrgao"); final String remetenteEmail = request.getParameter("remetenteEmail"); final String textoLegislacaoOuvidoria = request .getParameter("textoLegislacaoOuvidoria"); final String corCabecalhoLogo = request .getParameter("corCabecalhoLogo"); final String corCabecalhoBanner = request .getParameter("corCabecalhoBanner"); final String urlSuporteUsuario = request .getParameter("urlSuporteUsuario"); OrgaoCtrl orgaoCtrl = new OrgaoCtrl(getDaoFactory()); ConfiguracoesOrgaoCtrl configuracoesOrgaoCtrl = new ConfiguracoesOrgaoCtrl( getDaoFactory()); try { if (idOrgao == null || idOrgao.trim().length() == 0) msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.masc", "Orgão")); if (strPermiteMsgDigitalizadaAcionamento != null) { permiteMsgDigitalizadaAcionamento = Boolean.TRUE; if (strTamanhoMaxArquivoCartaDigitalizada == null || strTamanhoMaxArquivoCartaDigitalizada.trim() .length() == 0) msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.masc", "Tamanho máximo para carta digitalizada")); else tamanhoMaxArquivoCartaDigitalizada = new Integer( strTamanhoMaxArquivoCartaDigitalizada); } else { permiteMsgDigitalizadaAcionamento = Boolean.FALSE; tamanhoMaxArquivoCartaDigitalizada = null; } if (strPermiteArquivoAnexoAcionamento != null) { permiteArquivoAnexoAcionamento = Boolean.TRUE; if (strTamanhoMaxArquivoAnexo == null || strTamanhoMaxArquivoAnexo.trim().length() == 0) msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.masc", "Tamanho máximo para arquivos anexos")); else tamanhoMaxArquivoAnexo = new Integer( strTamanhoMaxArquivoAnexo); } else { permiteArquivoAnexoAcionamento = Boolean.FALSE; tamanhoMaxArquivoAnexo = null; } // possui código de acesso if (strPossuiCodigoAcesso != null) { possuiCodigoAcesso = Boolean.TRUE; // existe bloqueio pelo código de acesso if (strExisteBloqueioProtocoloPeloCodigo != null) { existeBloqueioProtocoloPeloCodigo = Boolean.TRUE; if (strTempoBloqueioProtocoloPeloCodigo == null || strTempoBloqueioProtocoloPeloCodigo.trim() .length() == 0) msgs .add( ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.masc", "Tempo de bloqueio pelo código de acesso")); else tempoBloqueioProtocoloPeloCodigo = new Integer( strTempoBloqueioProtocoloPeloCodigo); if (strQtdeTentativasPossiveisCodigoAcesso == null || strQtdeTentativasPossiveisCodigoAcesso.trim() .length() == 0) msgs .add( ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.masc", "Número máximo de falhas no código de acesso")); else qtdeTentativasPossiveisCodigoAcesso = new Integer( strQtdeTentativasPossiveisCodigoAcesso); } else { existeBloqueioProtocoloPeloCodigo = Boolean.FALSE; tempoBloqueioProtocoloPeloCodigo = null; qtdeTentativasPossiveisCodigoAcesso = null; } // existe bloqueio pela pergunta if (strExisteBloqueioProtocoloPelaPergunta != null) { existeBloqueioProtocoloPelaPergunta = Boolean.TRUE; if (strTempoBloqueioProtocoloPelaPergunta == null || strTempoBloqueioProtocoloPelaPergunta.trim() .length() == 0) msgs .add( ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.masc", "Tempo de bloqueio pela pergunta")); else tempoBloqueioProtocoloPelaPergunta = new Integer( strTempoBloqueioProtocoloPelaPergunta); if (strQtdeTentativasPossiveisPergunta == null || strQtdeTentativasPossiveisPergunta.trim() .length() == 0) msgs .add( ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.masc", "Número máximo de falhas na pergunta")); else qtdeTentativasPossiveisPergunta = new Integer( strQtdeTentativasPossiveisPergunta); } else { existeBloqueioProtocoloPelaPergunta = Boolean.FALSE; tempoBloqueioProtocoloPelaPergunta = null; qtdeTentativasPossiveisPergunta = null; } } else { possuiCodigoAcesso = Boolean.FALSE; existeBloqueioProtocoloPeloCodigo = null; existeBloqueioProtocoloPelaPergunta = null; tempoBloqueioProtocoloPeloCodigo = null; tempoBloqueioProtocoloPelaPergunta = null; qtdeTentativasPossiveisCodigoAcesso = null; qtdeTentativasPossiveisPergunta = null; } if (strAtendenteConsultaMsgNoAtendimento != null) atendenteConsultaMsgNoAtendimento = Boolean.TRUE; else atendenteConsultaMsgNoAtendimento = Boolean.FALSE; if (strExigeCertificadoDigitalGeral != null) exigeCertificadoDigitalGeral = Boolean.TRUE; else exigeCertificadoDigitalGeral = Boolean.FALSE; if (strExigeCertificadoDigitalOrgao != null) exigeCertificadoDigitalOrgao = Boolean.TRUE; else exigeCertificadoDigitalOrgao = Boolean.FALSE; if (textoApresentacaoOuvidoria == null || textoApresentacaoOuvidoria.trim().length() == 0) msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.masc", "Texto de apresentação da ouvidoria")); if (textoRespostaAcionamento == null || textoRespostaAcionamento.trim().length() == 0) msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.masc", "Texto de resposta no momento do acionamento")); if (textoApresentacaoResposta == null || textoApresentacaoResposta.trim().length() == 0) msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.masc", "Texto de apresentação da resposta")); if (textoInformacaoOuvidoria == null || textoInformacaoOuvidoria.trim().length() == 0) msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.masc", "Texto com informações sobre a ouvidoria")); if (textoConsultaRespostaNoPrazo == null || textoConsultaRespostaNoPrazo.trim().length() == 0) msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.masc", "Texto de consulta de resposta no prazo")); if (textoConsultaRespostaSemPrazo == null || textoConsultaRespostaSemPrazo.trim().length() == 0) msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.masc", "Texto de consulta de resposta sem prazo")); if (textoConsultaRespostaEmAtraso == null || textoConsultaRespostaEmAtraso.trim().length() == 0) msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.masc", "Texto de consulta de resposta em atraso")); if (textoAvaliacaoResposta == null || textoAvaliacaoResposta.trim().length() == 0) msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.masc", "Texto de avaliação da resposta")); if (esquemaCoresLayout == null || esquemaCoresLayout.trim().length() == 0) msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.masc", "Diretório de esquema de cores")); if (nomeExibicaoOrgao == null || nomeExibicaoOrgao.trim().length() == 0) msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.masc", "Nome do órgão para exibição")); if (id == null || id.trim().length() == 0) { if (nomeDiretorioOrgao == null || nomeDiretorioOrgao.trim().length() == 0) msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.masc", "Nome do diretório do órgão")); } if (remetenteEmail == null || remetenteEmail.trim().length() == 0) msgs .add( ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.masc", "Remetente dos emails que serão enviados pela aplicação")); if (corCabecalhoLogo == null || corCabecalhoLogo.trim().length() == 0) msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.fem", "Cor referente a página do logo")); if (corCabecalhoBanner == null || corCabecalhoBanner.trim().length() == 0) msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.fem", "Cor referente a página do banner")); if (urlSuporteUsuario == null || urlSuporteUsuario.trim().length() == 0) msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao.fem", "URL de suporte ao usuário")); Collection listaTipoAcionador = new ArrayList(); if (tipoAcionador != null) { for (int i = 0; i < tipoAcionador.length; i++) { listaTipoAcionador.add(TipoAcionador.get(new Long( tipoAcionador[i]))); } } if (meiosEnvioResp != null) { int posIni = 0; int pos = 0; String idMeioEnvioRespSel = ""; // Recupera meios de envio de resposta selecionados para // o órgão while (posIni < meiosEnvioResp.length()) { pos = meiosEnvioResp.indexOf(",", posIni); if (pos > 0) { idMeioEnvioRespSel = meiosEnvioResp.substring(posIni, pos); MeioEnvioResposta mer = configuracoesOrgaoCtrl .getMeioEnvioResposta(new Long( idMeioEnvioRespSel)); listaMeioEnvioResposta.add(mer); } posIni = pos + 1; } } if (!msgs.isEmpty()) { saveErrors(request, msgs); return mapping.findForward("error"); } Orgao localOrgao = orgaoCtrl.get(new Long(idOrgao)); if (id != null && id.trim().length() > 0) { configuracoesOrgaoCtrl.update(id, localOrgao, permiteMsgDigitalizadaAcionamento, tamanhoMaxArquivoCartaDigitalizada, permiteArquivoAnexoAcionamento, tamanhoMaxArquivoAnexo, atendenteConsultaMsgNoAtendimento, exigeCertificadoDigitalGeral, exigeCertificadoDigitalOrgao, possuiCodigoAcesso, existeBloqueioProtocoloPeloCodigo, existeBloqueioProtocoloPelaPergunta, tempoBloqueioProtocoloPeloCodigo, tempoBloqueioProtocoloPelaPergunta, qtdeTentativasPossiveisCodigoAcesso, qtdeTentativasPossiveisPergunta, textoApresentacaoOuvidoria, textoRespostaAcionamento, textoApresentacaoFormulario, textoCanaisComunicacao, textoApresentacaoResposta, textoInformacaoOuvidoria, textoConsultaRespostaNoPrazo, textoConsultaRespostaSemPrazo, textoConsultaRespostaEmAtraso, textoAvaliacaoResposta, textoLegislacaoOuvidoria, esquemaCoresLayout, nomeExibicaoOrgao, imagemLogo, corCabecalhoLogo, imagemBanner, corCabecalhoBanner, imagem3, imagem4, imagem5, descricaoImagemLogo, descricaoImagemBanner, descricaoImagem3, descricaoImagem4, descricaoImagem5, linkImagemLogo, linkImagemBanner, linkImagem3, linkImagem4, linkImagem5, urlBaseFuncionarios, urlSuporteUsuario, remetenteEmail, listaMeioEnvioResposta, listaTipoAcionador, notificacaoEmail, horaEnvioNotificacao, textoNotificacaoPendencia, textoNotificacaoAtraso, textoNotificacaoAtrasoCritico); msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "message.atualizar.alterar")); } else { configuracoesOrgaoCtrl.insert(localOrgao, permiteMsgDigitalizadaAcionamento, tamanhoMaxArquivoCartaDigitalizada, permiteArquivoAnexoAcionamento, tamanhoMaxArquivoAnexo, atendenteConsultaMsgNoAtendimento, exigeCertificadoDigitalGeral, exigeCertificadoDigitalOrgao, possuiCodigoAcesso, existeBloqueioProtocoloPeloCodigo, existeBloqueioProtocoloPelaPergunta, tempoBloqueioProtocoloPeloCodigo, tempoBloqueioProtocoloPelaPergunta, qtdeTentativasPossiveisCodigoAcesso, qtdeTentativasPossiveisPergunta, textoApresentacaoOuvidoria, textoRespostaAcionamento, textoApresentacaoFormulario, textoCanaisComunicacao, textoApresentacaoResposta, textoInformacaoOuvidoria, textoConsultaRespostaNoPrazo, textoConsultaRespostaSemPrazo, textoConsultaRespostaEmAtraso, textoAvaliacaoResposta, textoLegislacaoOuvidoria, esquemaCoresLayout, nomeExibicaoOrgao, nomeDiretorioOrgao, imagemLogo, corCabecalhoLogo, imagemBanner, corCabecalhoBanner, imagem3, imagem4, imagem5, descricaoImagemLogo, descricaoImagemBanner, descricaoImagem3, descricaoImagem4, descricaoImagem5, linkImagemLogo, linkImagemBanner, linkImagem3, linkImagem4, linkImagem5, urlBaseFuncionarios, urlSuporteUsuario, remetenteEmail, listaMeioEnvioResposta, listaTipoAcionador, notificacaoEmail, horaEnvioNotificacao, textoNotificacaoPendencia, textoNotificacaoAtraso, textoNotificacaoAtrasoCritico); msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "message.atualizar.incluir")); } } catch (DaoException daoe) { if (Constants.DEBUG) { daoe.printStackTrace(System.out); } msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( "error.atualizarConfiguracoesOrgao")); } //Caso o admistrador retire a indicação de agendamento o agendador será parado if(notificacaoEmail==null || notificacaoEmail.equals("")){ boolean agendamentoFinalizado = OuvidoriaScheduler.sched.deleteJob( "EnviarAlertaJob", Scheduler.DEFAULT_GROUP); if(agendamentoFinalizado){ getLog().info("\n\n Job 'EnviarAlertaJob' Finalizado em:"+new Date(System.currentTimeMillis())); } }else if(horaAgendadaAntiga!=null && horaEnvioNotificacao!=null && !horaAgendadaAntiga.equals(horaEnvioNotificacao)){ //Caso a hora antiga seja diferente da atual o agendador deverá ser reiniciado OuvidoriaScheduler.restart(request); } saveMessages(request, msgs); return mapping.findForward("success"); } protected static Logger getLog() { if (log == null) { log = Logger.getLogger("OuvidoriaScheduler ------> "); } return log; } }