From 4afe9aade2f3c7aa768ce876027bc361014cb3a9 Mon Sep 17 00:00:00 2001 From: gibransodre Date: Tue, 13 Dec 2016 11:30:34 -0200 Subject: [PATCH] Listar questionários com filtros e enviar relatório para o MPF. --- WebContent/WEB-INF/jsp/planoTrabalho/enviarRelatorioPlanoTrabalho.jsp | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ WebContent/WEB-INF/jsp/planoTrabalho/planoTrabalho.jsp | 8 ++++---- WebContent/WEB-INF/jsp/questionario/listaQuestionario.jsp | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++------------------- WebContent/WEB-INF/jsp/questionario/questionario.jsp | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++--------------- WebContent/WEB-INF/mail.properties | 2 +- WebContent/css/default.css | 4 ++++ src/br/com/controller/PlanoTrabalhoController.java | 214 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------ src/br/com/controller/QuestionarioController.java | 41 ++++++++++++++++++++++++++++++++++++++--- src/br/com/controller/relatorioController.java | 80 +------------------------------------------------------------------------------- src/br/com/dao/PlanoTrabalhoDao.java | 53 ++++++++++++++++++++++++++++++++++++----------------- src/br/com/dao/QuestionarioDao.java | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------- src/br/com/model/entity/PlanoTrabalho.java | 16 ++++++++++++++++ src/br/com/model/entity/Questionario.java | 19 ++++++++++++++----- 13 files changed, 558 insertions(+), 164 deletions(-) create mode 100644 WebContent/WEB-INF/jsp/planoTrabalho/enviarRelatorioPlanoTrabalho.jsp diff --git a/WebContent/WEB-INF/jsp/planoTrabalho/enviarRelatorioPlanoTrabalho.jsp b/WebContent/WEB-INF/jsp/planoTrabalho/enviarRelatorioPlanoTrabalho.jsp new file mode 100644 index 0000000..d830378 --- /dev/null +++ b/WebContent/WEB-INF/jsp/planoTrabalho/enviarRelatorioPlanoTrabalho.jsp @@ -0,0 +1,50 @@ +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@taglib prefix="t" tagdir="/WEB-INF/tags"%> +<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> +<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> + + + + + +
+ +
+ +
+ + + +
+
+
+
+ + +
+
+ Envio de Relatório e Plano de trabalho para MPF + +

+ + +
+ +
+ +
+
diff --git a/WebContent/WEB-INF/jsp/planoTrabalho/planoTrabalho.jsp b/WebContent/WEB-INF/jsp/planoTrabalho/planoTrabalho.jsp index 7ee9de4..85e91b5 100644 --- a/WebContent/WEB-INF/jsp/planoTrabalho/planoTrabalho.jsp +++ b/WebContent/WEB-INF/jsp/planoTrabalho/planoTrabalho.jsp @@ -14,12 +14,12 @@
  • Página Inicial
  • -
  • | Plano de Trabalho
  • +
  • | Anexo de Relatório e Plano de Trabalho
  • -

    Plano de Trabalho

    +

    Anexo de Relatório e Plano de Trabalho

    Conforme determina a portaria que regula este formulário circunstanciado em seu artigo 4º:

    @@ -29,7 +29,7 @@
    - Plano de Trabalho + Anexo de Relatório e Plano de Trabalho

    @@ -43,7 +43,7 @@ text/plain, application/pdf, image/*">



    - +
    diff --git a/WebContent/WEB-INF/jsp/questionario/listaQuestionario.jsp b/WebContent/WEB-INF/jsp/questionario/listaQuestionario.jsp index b558222..0c56f40 100644 --- a/WebContent/WEB-INF/jsp/questionario/listaQuestionario.jsp +++ b/WebContent/WEB-INF/jsp/questionario/listaQuestionario.jsp @@ -5,7 +5,8 @@ -
    +
    Filtros @@ -21,14 +22,28 @@ +

    + +

    - +

    @@ -52,7 +67,9 @@ Resposta Email Data Relatório Respondido Relatório Respondido - Plano de Trabalho Enviado + Plano de Trabalho Anexado + Relatório Anexado + Relatório Enviado download Plano de Trabalho download Relatório Assinado Visualizar Relatório @@ -66,10 +83,12 @@ + + ${contador.count} ${questionario.noOrgao} @@ -88,21 +107,36 @@ - - - - - - - - + + + + + + Plano de Trabalho + + + + Plano de Trabalho + + + + + Relatório Assinado + + + Relatório Assinado + + - Plano de Trabalho - - Relatório Assinado - Visualizar Relatório + Visualizar Relatório + diff --git a/WebContent/WEB-INF/jsp/questionario/questionario.jsp b/WebContent/WEB-INF/jsp/questionario/questionario.jsp index 9abcdfa..6defe0a 100644 --- a/WebContent/WEB-INF/jsp/questionario/questionario.jsp +++ b/WebContent/WEB-INF/jsp/questionario/questionario.jsp @@ -54,8 +54,12 @@ table, th, td {
    -
    - + + + + +
    +
    @@ -67,20 +71,29 @@ table, th, td { - + + + + + - + - + + + - + + + @@ -92,20 +105,42 @@ table, th, td { - + + + - - - - - - - - + + + + + diff --git a/WebContent/WEB-INF/mail.properties b/WebContent/WEB-INF/mail.properties index e7170d4..756381b 100644 --- a/WebContent/WEB-INF/mail.properties +++ b/WebContent/WEB-INF/mail.properties @@ -8,4 +8,4 @@ prop.email.auth = false prop.email.to = govbr@planejamento.gov.br prop.email.from = govbr@planejamento.gov.br prop.email.copiaEmailTo = fabricio.souza@planejamento.gov.br -prop.email.anexosTo = gibran.sodre@planejamento.gov.br \ No newline at end of file +prop.email.anexosTo = gibransodre@hotmail.com \ No newline at end of file diff --git a/WebContent/css/default.css b/WebContent/css/default.css index b396d47..a25d2ab 100644 --- a/WebContent/css/default.css +++ b/WebContent/css/default.css @@ -32,6 +32,10 @@ strong p { font-size: 14px !important; } +#botaoAnexar +{ + margin-left: 35%; +} #botaoVoltar { width: 10%; float: left; diff --git a/src/br/com/controller/PlanoTrabalhoController.java b/src/br/com/controller/PlanoTrabalhoController.java index 607863e..a770ac0 100644 --- a/src/br/com/controller/PlanoTrabalhoController.java +++ b/src/br/com/controller/PlanoTrabalhoController.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import javax.activation.DataHandler; import javax.servlet.ServletContext; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; @@ -19,13 +20,19 @@ import br.com.caelum.vraptor.ioc.spring.VRaptorRequestHolder; import br.com.caelum.vraptor.validator.ValidationMessage; import br.com.dao.HashDao; import br.com.dao.PlanoTrabalhoDao; +import br.com.dao.QuestionarioDao; +import br.com.model.entity.EnvioEmailSemAutenticacao; import br.com.model.entity.PlanoTrabalho; import br.com.model.entity.Questionario; +import br.com.model.utilities.Email; +import br.com.util.DateUtil; +import br.com.util.Validacao; @Resource public class PlanoTrabalhoController extends DefaultMultipartConfig { + private List mensagemValidacaoCampos = new ArrayList(); private Validator validator; private Result result; private ServletContext application; @@ -89,7 +96,7 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { HashDao hashDao = new HashDao(); questionario = new Questionario(); questionario = hashDao.verificarHash(path, valorHash); - String nomeExtensaoPlanoTrabalho = filePlano.getFileName(); + String nomeExtensaoPlanoTrabalho = filePlano.getContentType(); if (questionario != null && questionario.getDtInicioQuestionario() != null) { PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao(); @@ -97,9 +104,9 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario); - if (planoTrabalho.getArquivoPlanoTrabalho() == null) { + if (planoTrabalho.getIdPlanoTrabalho() == 0) { if (planoTrabalhoDao.salvarPlanoTrabalho(path, filePlano.getFile(), questionario, - nomeExtensaoPlanoTrabalho)) { + filePlano.getFileName(), nomeExtensaoPlanoTrabalho)) { mensagemPlano = "Plano de trabalho anexado com sucesso!"; statusPlano = true; } else { @@ -107,7 +114,7 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { } } else { if (planoTrabalhoDao.atualizarPlanoTrabalho(path, filePlano.getFile(), questionario, - planoTrabalho.getIdPlanoTrabalho(), nomeExtensaoPlanoTrabalho)) { + planoTrabalho.getIdPlanoTrabalho(), filePlano.getFileName(),nomeExtensaoPlanoTrabalho)) { mensagemPlano = "Plano de trabalho anexado com sucesso!"; statusPlano = true; } else { @@ -156,7 +163,7 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { HashDao hashDao = new HashDao(); questionario = new Questionario(); questionario = hashDao.verificarHash(path, valorHash); - String nomeExtensaoRelatorio = fileRelatorio.getFileName(); + String nomeExtensaoRelatorio = fileRelatorio.getContentType(); if (questionario != null && questionario.getDtInicioQuestionario() != null) { PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao(); @@ -164,9 +171,9 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario); - if (planoTrabalho.getArquivoRelatorioAss() == null) { + if (planoTrabalho.getIdPlanoTrabalho() == 0) { if (planoTrabalhoDao.salvarRelatorioAss(path, fileRelatorio.getFile(), questionario, - nomeExtensaoRelatorio)) { + fileRelatorio.getFileName(), nomeExtensaoRelatorio)) { mensagemRelatorio = "Relatório anexado com sucesso!"; statusRelatorio = true; } else { @@ -174,7 +181,7 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { } } else { if (planoTrabalhoDao.atualizarRelatorioAss(path, fileRelatorio.getFile(), questionario, - planoTrabalho.getIdPlanoTrabalho(), nomeExtensaoRelatorio)) { + planoTrabalho.getIdPlanoTrabalho(), fileRelatorio.getFileName(), nomeExtensaoRelatorio)) { mensagemRelatorio = "Relatório anexado com sucesso!"; statusRelatorio = true; } else { @@ -222,9 +229,9 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { if (questionario != null && questionario.getIdQuestionario() > 0) { planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario); - if (planoTrabalho != null) { + if (planoTrabalho != null && planoTrabalho.getArquivoPlanoTrabalho() != null) { try { - String nome = planoTrabalho.getNomeExtensaoPlanoTrabalho(); + String nome = planoTrabalho.getNomePlanoTrabalho(); dados = planoTrabalho.getArquivoPlanoTrabalho(); response.setContentType("inline/download"); String arq = "attachment;filename=" + nome; @@ -237,6 +244,16 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { } } + else + { + this.validator.add(new ValidationMessage("", "")); + this.validator.onErrorUsePageOf(QuestionarioController.class).listaQuestionario(); + } + } + else + { + this.validator.add(new ValidationMessage("", "")); + this.validator.onErrorUsePageOf(QuestionarioController.class).listaQuestionario(); } } @@ -253,9 +270,9 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { if (questionario != null && questionario.getIdQuestionario() > 0) { planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario); - if (planoTrabalho != null) { + if (planoTrabalho != null && planoTrabalho.getArquivoRelatorioAss() != null) { try { - String nome = planoTrabalho.getNomeExtensaoRelatorioAss(); + String nome = planoTrabalho.getNomeRelatorioAss(); dados = planoTrabalho.getArquivoRelatorioAss(); response.setContentType("inline/download"); String arq = "attachment;filename=" + nome; @@ -268,6 +285,179 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { } } + else + { + this.validator.add(new ValidationMessage("", "")); + this.validator.onErrorUsePageOf(QuestionarioController.class).listaQuestionario(); + } + } + else + { + this.validator.add(new ValidationMessage("", "")); + this.validator.onErrorUsePageOf(QuestionarioController.class).listaQuestionario(); } } + + @Path("/enviar-relatorio-plano-trabalho") + public void enviarRelatorioPlanoTrabalho() { + + } + + private void enviarEmail(Questionario questionario) { + QuestionarioDao questionarioDao; + + StringBuffer mensagemMPF = new StringBuffer(); + StringBuffer mensagemOrgao = new StringBuffer(); + String assuntoMPF = ""; + String assuntoOrgao = ""; + + PlanoTrabalho planoTrabalho = new PlanoTrabalho(); + PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao(); + + planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario); + + if(planoTrabalho != null && planoTrabalho.getArquivoPlanoTrabalho() != null && planoTrabalho.getArquivoRelatorioAss() != null) + { + DataHandler dataHandlerRelatorio; + DataHandler dataHandlerPlano; + + dataHandlerRelatorio = + new DataHandler(planoTrabalho.getArquivoRelatorioAss(), + planoTrabalho.getNomeExtensaoRelatorioAss()); + dataHandlerPlano = + new DataHandler(planoTrabalho.getArquivoPlanoTrabalho(), + planoTrabalho.getNomeExtensaoPlanoTrabalho()); + + Email email = new Email(this.application.getRealPath("") + "/WEB-INF/mail.properties"); + + EnvioEmailSemAutenticacao envioEmailSemAutenticacao = + new EnvioEmailSemAutenticacao(email.getHost(), Integer.toString(email.getPort())); + + assuntoMPF = "Registro de Encaminhamento do Relatório Circunstanciado de Acessibilidade Digital - " + questionario.getNoOrgao(); + + mensagemMPF.append("À Procuradoria Federal dos Diretos do Cidadão,
    "); + mensagemMPF.append("

    Conforme Portaria Interministerial xxxx/2016 do Ministério da Justiça e Cidadania e do"); + mensagemMPF.append(" Ministério do Planejamento, Desenvolvimento e Gestão, o(a) " + questionario.getNoOrgao()); + mensagemMPF.append(" encaminha o Relatório Circunstanciado relativo aos ambientes digitais desta"); + mensagemMPF.append(" instituição.

    "); + mensagemMPF.append("Dados do Responsável:
    "); + mensagemMPF.append("Nome: " + questionario.getResponsavel() +"
    "); + mensagemMPF.append("Cargo: "+ questionario.getCargoResponsavel() + "
    "); + mensagemMPF.append("Telefone: " + questionario.getTelefone() + "
    "); + mensagemMPF.append("email: "+ questionario.getEmailDestinoOrgao() + "
    "); + + + String mensagemRetornoMPF = + envioEmailSemAutenticacao.sendMailComAnexo(questionario.getEmailDestinoOrgao(), + email.getAnexosTo(), assuntoMPF, mensagemMPF.toString(), email.getAuth(), email.getAuthUser(), + email.getAuthPass(), dataHandlerRelatorio, planoTrabalho.getNomeRelatorioAss(), + dataHandlerPlano, planoTrabalho.getNomePlanoTrabalho()); + + + + if (mensagemRetornoMPF.equalsIgnoreCase("")) { + + + assuntoOrgao = "Registro de Encaminhamento do Relatório Circunstanciado de Acessibilidade Digital - " + questionario.getNoOrgao(); + + mensagemOrgao.append("

    Prezado(a) "+ questionario.getResponsavel() +", "+ questionario.getCargoResponsavel() +" do "+ questionario.getNoOrgao() +", você concluiu com sucesso o processo de "); + mensagemOrgao.append("envio do Relatório Circunstanciado (Formulário Eletrônico de Acessibilidade Digital e "); + mensagemOrgao.append("Plano de Trabalho) à Procuradoria Federal dos Direitos do Cidadão do Ministério "); + mensagemOrgao.append("Público Federal.

    "); + mensagemOrgao.append("

    Conforme previsto na portaria interministerial xxx/2016 do Ministério da Justiça e "); + mensagemOrgao.append("Cidadania e do Ministério do Planejamento, Desenvolvimento e Gestão, além do "); + mensagemOrgao.append("envio, o relatório circunstanciado deverá ser publicado no portal do órgão/entidade e "); + mensagemOrgao.append("o seu reporte , na forma de síntese, deverá ser registrado na seção "); + mensagemOrgao.append("\"Medidas Relativas à Acessibilidade\" do Relatório de Gestão referente a 2016 e, nos "); + mensagemOrgao.append("anos subsequentes, indicar nessa seção o monitoramento das metas propostas nos "); + mensagemOrgao.append("planos de trabalho.

    "); + mensagemOrgao.append("

    Em caso de dúvida acesse http://fad.governoeletronico.gov.br/fad/contato/contato-site​​​.

    "); + mensagemOrgao.append("

    Brasília, "+ DateUtil.dataHoraAtual() +".

    "); + mensagemOrgao.append("

    Encaminhado por:

    "); + mensagemOrgao.append("

    http://fad.governoeletronico.gov.br​

    "); + mensagemOrgao.append("

    Coordenação-Geral de Padrões de Governo Digital

    "); + mensagemOrgao.append("

    Departamento de Governo Digital

    "); + mensagemOrgao.append("

    Secretaria de Tecnologia da Informação

    "); + mensagemOrgao.append("

    Ministério do Planejamento, Desenvolvimento e Gestão

    "); + + //questionario.getEmailDestinoOrgao() + String mensagemRetornoOrgao = + envioEmailSemAutenticacao.sendMailComAnexo(email.getFrom(), + "gibransodre@hotmail.com", assuntoOrgao, mensagemOrgao.toString(), email.getAuth(), + email.getAuthUser(), email.getAuthPass(), dataHandlerRelatorio, + planoTrabalho.getNomeRelatorioAss(), dataHandlerPlano, + planoTrabalho.getNomePlanoTrabalho()); + + + if (mensagemRetornoOrgao.equalsIgnoreCase("")) { + + questionarioDao = new QuestionarioDao(); + + if (questionarioDao.atualizarFlagEnviado(path, questionario.getIdQuestionario())) { + result.include("mensagemEnvio", + "Mensagem enviada com Sucesso, você recebeu um email com os anexos!"); + result.include("statusEnvio", true); + } + } + } else { + result.include("mensagemEnvio", "Não foi possível enviar o email com os anexos!"); + result.include("statusEnvio", false); + } + }else + { + result.include("mensagemEnvio", "É preciso ter o Relatório e o Plano de Trabalho anexados!"); + result.include("statusEnvio", false); + } + + this.validator.add(new ValidationMessage("", "")); + this.validator.onErrorUsePageOf(PlanoTrabalhoController.class).confirmacaoEnvioEmailMPF(); + } + + @Path("/enviar-email-mpf-alternativo") + public void enviarEmailMPFAlternativo(String valorHash) { + + Validacao validacao = new Validacao(); + mensagemValidacaoCampos = new ArrayList(); + mensagemValidacaoCampos = validacao.validarHash(path, valorHash); + + if (mensagemValidacaoCampos.size() > 0) { + result.include("mensagemValidacaoCampos", mensagemValidacaoCampos); + this.validator.add(new ValidationMessage("", "")); + this.validator.onErrorUsePageOf(PlanoTrabalhoController.class).enviarRelatorioPlanoTrabalho(); + } + + HashDao hashDao = new HashDao(); + Questionario questionario = new Questionario(); + questionario = hashDao.verificarHash(path, valorHash); + + + + if (questionario != null && questionario.getIdQuestionario() > 0) { + + enviarEmail(questionario); + + } + + } + + + @Path("/enviar-email-mpf") + public void enviarEmailMPF() { + Questionario questionario = new Questionario(); + + questionario = + (Questionario) VRaptorRequestHolder.currentRequest().getServletContext() + .getAttribute("questionario"); + + if (questionario != null && questionario.getIdQuestionario() > 0) { + + enviarEmail(questionario); + + } + + } + + public void confirmacaoEnvioEmailMPF() { + + } } diff --git a/src/br/com/controller/QuestionarioController.java b/src/br/com/controller/QuestionarioController.java index 6586c12..3f2bd22 100644 --- a/src/br/com/controller/QuestionarioController.java +++ b/src/br/com/controller/QuestionarioController.java @@ -10,6 +10,8 @@ import java.util.Properties; import javax.servlet.ServletContext; +import org.apache.jasper.tagplugins.jstl.core.ForEach; + import br.com.caelum.vraptor.Path; import br.com.caelum.vraptor.Resource; import br.com.caelum.vraptor.Result; @@ -51,6 +53,38 @@ public class QuestionarioController { QuestionarioDao questionarioDao = new QuestionarioDao(); List lsquestionario = new ArrayList(); lsquestionario = questionarioDao.retornarListaQuestionario(path); + + + int relatorioRespondido = 0; + int planoTrabalhoAnexado = 0; + int relatorioAnexado = 0; + int relatorioEnviado = 0; + + for (Questionario questionario : lsquestionario) { + + if(questionario.getDataRespostaQuestionario() != null) + { + relatorioRespondido++; + } + if(questionario.isPlanoTrabalhoAnexado()) + { + planoTrabalhoAnexado++; + } + if(questionario.isRelatorioAnexado()) + { + relatorioAnexado++; + } + if(questionario.isFlagEnviado()) + { + relatorioEnviado++; + } + + } + + result.include("totalRelatorioRespondido", relatorioRespondido); + result.include("totalPlanoTrabalhoAnexado", planoTrabalhoAnexado); + result.include("totalRelatorioAnexado", relatorioAnexado); + result.include("totalRelatorioEnviado", relatorioEnviado); result.include("lsquestionario", lsquestionario); result.include("totalSolicitacoes", lsquestionario.size()); } @@ -62,18 +96,19 @@ public class QuestionarioController { @Path("/lista-questionario") public void listaQuestionario() { - listarQuestionarioComFiltro("todos", "todos",""); + listarQuestionarioComFiltro("todos", "todos","todos", ""); } @Path("/listar-questionario") - public void listarQuestionarioComFiltro(String statusRelatorio, String statusPlanoTrabalho, String nomeOrgao) { + public void listarQuestionarioComFiltro(String statusRelatorio, String statusPlanoTrabalho, String relatorioAnexado, String nomeOrgao) { QuestionarioDao questionarioDao = new QuestionarioDao(); List lsquestionario = new ArrayList(); - lsquestionario = questionarioDao.retornarListaQuestionarioComFiltro(path, statusRelatorio, statusPlanoTrabalho, nomeOrgao); + lsquestionario = questionarioDao.retornarListaQuestionarioComFiltro(path, statusRelatorio, statusPlanoTrabalho, relatorioAnexado, nomeOrgao); result.include("lsquestionario", lsquestionario); result.include("totalSolicitacoes", lsquestionario.size()); result.include("statusRel", statusRelatorio.equalsIgnoreCase("todos")? "" :statusRelatorio); + result.include("relatorioAnex", relatorioAnexado.equalsIgnoreCase("todos")? "" :relatorioAnexado); result.include("statusPlanoTrab", statusPlanoTrabalho.equalsIgnoreCase("todos")? "" :statusPlanoTrabalho); result.include("nomeOrgao", nomeOrgao != null? nomeOrgao:""); diff --git a/src/br/com/controller/relatorioController.java b/src/br/com/controller/relatorioController.java index 8f22bb0..685118f 100644 --- a/src/br/com/controller/relatorioController.java +++ b/src/br/com/controller/relatorioController.java @@ -81,87 +81,9 @@ public class relatorioController { } } - @Path("/enviar-email-mpf") - public void enviarEmailMPF() { - Questionario questionario = new Questionario(); - QuestionarioDao questionarioDao; - - UploadedFile fileRelatorio; + - String mensagemMPF = ""; - String mensagemOrgao = ""; - String assuntoMPF = ""; - String assuntoOrgao = ""; - questionario = - (Questionario) VRaptorRequestHolder.currentRequest().getServletContext() - .getAttribute("questionario"); - - fileRelatorio = - (UploadedFile) VRaptorRequestHolder.currentRequest().getServletContext() - .getAttribute("fileRelatorio"); - - PlanoTrabalho planoTrabalho = new PlanoTrabalho(); - PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao(); - - planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario); - - DataHandler dataHandlerRelatorio; - DataHandler dataHandlerPlano; - - dataHandlerRelatorio = - new DataHandler(planoTrabalho.getArquivoRelatorioAss(), fileRelatorio.getContentType()); - dataHandlerPlano = - new DataHandler(planoTrabalho.getArquivoPlanoTrabalho(), fileRelatorio.getContentType()); - - Email email = new Email(this.application.getRealPath("") + "/WEB-INF/mail.properties"); - - EnvioEmailSemAutenticacao envioEmailSemAutenticacao = - new EnvioEmailSemAutenticacao(email.getHost(), Integer.toString(email.getPort())); - - - String mensagemRetornoMPF = - envioEmailSemAutenticacao.sendMailComAnexo(questionario.getEmailDestinoOrgao(), - email.getAnexosTo(), assuntoMPF, mensagemMPF, email.getAuth(), email.getAuthUser(), - email.getAuthPass(), dataHandlerRelatorio, planoTrabalho.getNomeExtensaoRelatorioAss(), - dataHandlerPlano, planoTrabalho.getNomeExtensaoPlanoTrabalho()); - - if (mensagemRetornoMPF.equalsIgnoreCase("")) { - String mensagemRetornoOrgao = - envioEmailSemAutenticacao.sendMailComAnexo(email.getFrom(), - questionario.getEmailDestinoOrgao(), assuntoOrgao, mensagemOrgao, email.getAuth(), - email.getAuthUser(), email.getAuthPass(), dataHandlerRelatorio, - planoTrabalho.getNomeExtensaoRelatorioAss(), dataHandlerPlano, - planoTrabalho.getNomeExtensaoPlanoTrabalho()); - - - if (mensagemRetornoOrgao.equalsIgnoreCase("")) { - - questionarioDao = new QuestionarioDao(); - - if(questionarioDao.atualizarFlagEnviado(path, questionario.getIdQuestionario())) - { - result.include("mensagemEnvio", "Mensagem enviada com Sucesso, você recebeu um email com os anexos!"); - result.include("statusEnvio", true); - } - } - } - else - { - result.include("mensagemEnvio", "Não foi possível enviar o email com os anexos!"); - result.include("statusEnvio", false); - } - - this.validator.add(new ValidationMessage("", "")); - this.validator.onErrorUsePageOf(relatorioController.class).confirmacaoEnvioEmailMPF(); - } - - public void confirmacaoEnvioEmailMPF() - { - - } - - @Get("/relatorio-imprimir/{id}") public void relatorioImprimir(String id) { if (id != null) { diff --git a/src/br/com/dao/PlanoTrabalhoDao.java b/src/br/com/dao/PlanoTrabalhoDao.java index d8a8a2a..5921445 100644 --- a/src/br/com/dao/PlanoTrabalhoDao.java +++ b/src/br/com/dao/PlanoTrabalhoDao.java @@ -13,7 +13,7 @@ import br.com.model.entity.Questionario; public class PlanoTrabalhoDao { - public int verificaPlanoTrabalho(String path, Integer idQuestionario) + public PlanoTrabalho verificaPlanoTrabalho(String path, Integer idQuestionario) { @@ -23,6 +23,7 @@ public class PlanoTrabalhoDao { ResultSet rset = null; //boolean existePlanoTrabalho = false; int idPlanoTrabalho = -1; + PlanoTrabalho planoTrabalho = new PlanoTrabalho(); try { @@ -33,8 +34,17 @@ public class PlanoTrabalhoDao { rset = estado.executeQuery(sql); - while (rset.next()) { - idPlanoTrabalho = rset.getInt("id_plano_trabalho"); + while (rset.next()) { + planoTrabalho.setIdPlanoTrabalho(rset.getInt("id_plano_trabalho")); + planoTrabalho.setArquivoPlanoTrabalho(rset.getBytes("arquivo_plano_trabalho")); + planoTrabalho.setArquivoRelatorioAss(rset.getBytes("arquivo_relatorio_ass")); + planoTrabalho.setNomeExtensaoPlanoTrabalho(rset.getString("extensao_plano_trabalho")); + planoTrabalho.setNomeExtensaoRelatorioAss(rset.getString("extensao_relatorio_ass")); + planoTrabalho.setNomePlanoTrabalho(rset.getString("nome_plano_trabalho")); + planoTrabalho.setNomeRelatorioAss(rset.getString("nome_relatorio_ass")); + + Questionario quest = new Questionario(path, idQuestionario); + planoTrabalho.setQuestionario(quest); } } catch (SQLException e) { @@ -51,10 +61,10 @@ public class PlanoTrabalhoDao { } } - return idPlanoTrabalho; + return planoTrabalho; } - public boolean salvarPlanoTrabalho(String path, InputStream file, Questionario questionario, String nomeExtensao) + public boolean salvarPlanoTrabalho(String path, InputStream file, Questionario questionario, String nomeArquivo,String nomeExtensao) { StringBuffer sql = new StringBuffer(); @@ -66,13 +76,14 @@ public class PlanoTrabalhoDao { try { sql = new StringBuffer(); - sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_plano_trabalho, extensao_plano_trabalho) VALUES (?, ?, ?); "); + sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_plano_trabalho, nome_plano_trabalho,extensao_plano_trabalho) VALUES (?, ?, ?, ?); "); estado = con.prepareStatement(sql.toString()); estado.setInt(1, questionario.getIdQuestionario()); estado.setBinaryStream(2, file); - estado.setString(3, nomeExtensao); + estado.setString(3, nomeArquivo); + estado.setString(4, nomeExtensao); resultado = estado.executeUpdate(); @@ -91,7 +102,7 @@ public class PlanoTrabalhoDao { return salvoComSucesso; } - public boolean salvarRelatorioAss(String path, InputStream file, Questionario questionario, String nomeExtensao) + public boolean salvarRelatorioAss(String path, InputStream file, Questionario questionario, String nomeArquivo, String nomeExtensao) { StringBuffer sql = new StringBuffer(); @@ -103,13 +114,14 @@ public class PlanoTrabalhoDao { try { sql = new StringBuffer(); - sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_relatorio_ass, extensao_relatorio_ass) VALUES (?, ?, ?); "); + sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_relatorio_ass, nome_relatorio_ass, extensao_relatorio_ass) VALUES (?, ?, ?, ?); "); estado = con.prepareStatement(sql.toString()); estado.setInt(1, questionario.getIdQuestionario()); estado.setBinaryStream(2, file); - estado.setString(3, nomeExtensao); + estado.setString(3, nomeArquivo); + estado.setString(4, nomeExtensao); resultado = estado.executeUpdate(); @@ -128,7 +140,7 @@ public class PlanoTrabalhoDao { return salvoComSucesso; } - public boolean atualizarPlanoTrabalho(String path, InputStream file, Questionario questionario, int idPlanoTrabalho, String nomeExtensao) + public boolean atualizarPlanoTrabalho(String path, InputStream file, Questionario questionario, int idPlanoTrabalho, String nomeArquivo, String nomeExtensao) { StringBuffer sql = new StringBuffer(); @@ -143,6 +155,7 @@ public class PlanoTrabalhoDao { //sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_plano_trabalho) VALUES (?, ?); "); sql.append(" UPDATE public.plano_trabalho"); sql.append(" SET arquivo_plano_trabalho=?,"); + sql.append( " nome_plano_trabalho =?, "); sql.append( " extensao_plano_trabalho =? "); sql.append(" WHERE id_plano_trabalho=?;"); @@ -150,8 +163,10 @@ public class PlanoTrabalhoDao { //estado.setInt(1, questionario.getIdQuestionario()); estado.setBinaryStream(1, file); - estado.setString(2, nomeExtensao); - estado.setInt(3, idPlanoTrabalho); + estado.setString(2, nomeArquivo); + estado.setString(3, nomeExtensao); + estado.setInt(4, idPlanoTrabalho); + resultado = estado.executeUpdate(); @@ -170,7 +185,7 @@ public class PlanoTrabalhoDao { return salvoComSucesso; } - public boolean atualizarRelatorioAss(String path, InputStream file, Questionario questionario, int idPlanoTrabalho, String nomeExtensao) + public boolean atualizarRelatorioAss(String path, InputStream file, Questionario questionario, int idPlanoTrabalho, String nomeArquivo, String nomeExtensao) { StringBuffer sql = new StringBuffer(); @@ -185,6 +200,7 @@ public class PlanoTrabalhoDao { //sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_plano_trabalho) VALUES (?, ?); "); sql.append(" UPDATE public.plano_trabalho"); sql.append(" SET arquivo_relatorio_ass=?,"); + sql.append( " nome_relatorio_ass =?, "); sql.append( " extensao_relatorio_ass =? "); sql.append(" WHERE id_plano_trabalho=?;"); @@ -192,8 +208,9 @@ public class PlanoTrabalhoDao { //estado.setInt(1, questionario.getIdQuestionario()); estado.setBinaryStream(1, file); - estado.setString(2, nomeExtensao); - estado.setInt(3, idPlanoTrabalho); + estado.setString(2, nomeArquivo); + estado.setString(3, nomeExtensao); + estado.setInt(4, idPlanoTrabalho); resultado = estado.executeUpdate(); @@ -240,7 +257,9 @@ public class PlanoTrabalhoDao { planoTrabalho.setArquivoPlanoTrabalho(rset.getBytes("arquivo_plano_trabalho")); planoTrabalho.setNomeExtensaoPlanoTrabalho(rset.getString("extensao_plano_trabalho")); planoTrabalho.setArquivoRelatorioAss(rset.getBytes("arquivo_relatorio_ass")); - planoTrabalho.setNomeExtensaoRelatorioAss(rset.getString("extensao_relatorio_ass")); + planoTrabalho.setNomeExtensaoRelatorioAss(rset.getString("extensao_relatorio_ass")); + planoTrabalho.setNomePlanoTrabalho(rset.getString("nome_plano_trabalho")); + planoTrabalho.setNomeRelatorioAss(rset.getString("nome_relatorio_ass")); planoTrabalho.setQuestionario(questionario); } diff --git a/src/br/com/dao/QuestionarioDao.java b/src/br/com/dao/QuestionarioDao.java index 7f7f03c..255558f 100644 --- a/src/br/com/dao/QuestionarioDao.java +++ b/src/br/com/dao/QuestionarioDao.java @@ -16,6 +16,7 @@ import java.util.Date; import java.util.List; import br.com.caelum.vraptor.interceptor.multipart.UploadedFile; +import br.com.model.entity.PlanoTrabalho; import br.com.model.entity.Questionario; import br.com.util.DateUtil; import br.com.util.GeradorCodigoHash; @@ -66,10 +67,34 @@ public class QuestionarioDao { questionario.setDtRespostaEmail(dataRespostaQuestionario); } + PlanoTrabalho planoTrabalho = new PlanoTrabalho(); + + planoTrabalho = planoTrabalhoDao.verificaPlanoTrabalho(path, rset.getInt("id_questionario")); questionario.setDataRespostaQuestionario(respostaQuestionarioDao.verificaRespostaQuestionario(path, rset.getInt("id_questionario"))); - questionario.setPlanoTrabalhoEnviado( planoTrabalhoDao.verificaPlanoTrabalho(path, rset.getInt("id_questionario")) > -1 ? true : false); + + //verifica se foi anexado plano de trabalho + if(planoTrabalho != null && planoTrabalho.getArquivoPlanoTrabalho() != null) + { + questionario.setPlanoTrabalhoAnexado(true); + } + else + { + questionario.setPlanoTrabalhoAnexado(false); + } + + + //verifica se anexado Relatório assinado + if(planoTrabalho != null && planoTrabalho.getArquivoRelatorioAss() != null) + { + questionario.setRelatorioAnexado(true); + } + else + { + questionario.setRelatorioAnexado(false); + } + listaQuestionario.add(questionario); } @@ -80,7 +105,7 @@ public class QuestionarioDao { return listaQuestionario; } - public List retornarListaQuestionarioComFiltro(String path, String statusRelatorio, String statusPlanoTrabalho, String nomeOrgao) { + public List retornarListaQuestionarioComFiltro(String path, String statusRelatorio, String statusPlanoTrabalho, String relatorioAnexado, String nomeOrgao) { List listaQuestionario = new ArrayList(); @@ -114,6 +139,7 @@ public class QuestionarioDao { questionario.setFlagEnviado(rset.getBoolean("flag_enviado")); dataRespostaQuestionario = rset.getString("data_resposta_email"); + if(dataRespostaQuestionario != null) { questionario.setDtRespostaEmail(DateUtil.dataHoraFormatadaDiaMesAnoComParametro(dataRespostaQuestionario)); @@ -126,21 +152,75 @@ public class QuestionarioDao { questionario.setDataRespostaQuestionario(respostaQuestionarioDao.verificaRespostaQuestionario(path, rset.getInt("id_questionario"))); - questionario.setPlanoTrabalhoEnviado( planoTrabalhoDao.verificaPlanoTrabalho(path, rset.getInt("id_questionario")) > -1 ? true : false); - if(statusPlanoTrabalho.equalsIgnoreCase("todos")) + PlanoTrabalho planoTrabalho = new PlanoTrabalho(); + + planoTrabalho = planoTrabalhoDao.verificaPlanoTrabalho(path, rset.getInt("id_questionario")); + + //verifica se foi anexado plano de trabalho + if(planoTrabalho != null && planoTrabalho.getArquivoPlanoTrabalho() != null) { - listaQuestionario.add(questionario); + questionario.setPlanoTrabalhoAnexado(true); + } + else + { + questionario.setPlanoTrabalhoAnexado(false); + } + //verifica se foi anexado o Relatório + if(planoTrabalho != null && planoTrabalho.getArquivoRelatorioAss() != null) + { + questionario.setRelatorioAnexado(true); } else { - if(statusPlanoTrabalho.equalsIgnoreCase("sim") && questionario.isPlanoTrabalhoEnviado()) + questionario.setRelatorioAnexado(false); + } + + + if(statusPlanoTrabalho.equalsIgnoreCase("todos") && relatorioAnexado.equalsIgnoreCase("todos")) + { + listaQuestionario.add(questionario); + } + else + { + if(statusPlanoTrabalho.equalsIgnoreCase("sim") && questionario.isPlanoTrabalhoAnexado()) { - listaQuestionario.add(questionario); + if(relatorioAnexado.equalsIgnoreCase("sim") && questionario.isRelatorioAnexado()) + { + listaQuestionario.add(questionario); + } + else if(relatorioAnexado.equalsIgnoreCase("todos")) + { + listaQuestionario.add(questionario); + } + else if(relatorioAnexado.equalsIgnoreCase("nao") && !questionario.isRelatorioAnexado()) + { + listaQuestionario.add(questionario); + } } - else if(statusPlanoTrabalho.equalsIgnoreCase("nao") && !questionario.isPlanoTrabalhoEnviado()) + else if(statusPlanoTrabalho.equalsIgnoreCase("nao") && !questionario.isPlanoTrabalhoAnexado()) + { + if(relatorioAnexado.equalsIgnoreCase("sim") && questionario.isRelatorioAnexado()) + { + listaQuestionario.add(questionario); + } else if(relatorioAnexado.equalsIgnoreCase("todos")) + { + listaQuestionario.add(questionario); + } + else if(relatorioAnexado.equalsIgnoreCase("nao") && !questionario.isRelatorioAnexado()) + { + listaQuestionario.add(questionario); + } + }else if(statusPlanoTrabalho.equalsIgnoreCase("todos")) { - listaQuestionario.add(questionario); + if(relatorioAnexado.equalsIgnoreCase("sim") && questionario.isRelatorioAnexado()) + { + listaQuestionario.add(questionario); + } + else if(relatorioAnexado.equalsIgnoreCase("nao") && !questionario.isRelatorioAnexado()) + { + listaQuestionario.add(questionario); + } } } diff --git a/src/br/com/model/entity/PlanoTrabalho.java b/src/br/com/model/entity/PlanoTrabalho.java index e792513..55006dc 100644 --- a/src/br/com/model/entity/PlanoTrabalho.java +++ b/src/br/com/model/entity/PlanoTrabalho.java @@ -7,6 +7,8 @@ public class PlanoTrabalho { private String nomeExtensaoPlanoTrabalho; private byte[] arquivoRelatorioAss; private String nomeExtensaoRelatorioAss; + private String nomePlanoTrabalho; + private String nomeRelatorioAss; private Questionario questionario; public int getIdPlanoTrabalho() { @@ -47,5 +49,19 @@ public class PlanoTrabalho { public void setNomeExtensaoRelatorioAss(String nomeExtensaoRelatorioAss) { this.nomeExtensaoRelatorioAss = nomeExtensaoRelatorioAss; } + public String getNomePlanoTrabalho() { + return nomePlanoTrabalho; + } + public void setNomePlanoTrabalho(String nomePlanoTrabalho) { + this.nomePlanoTrabalho = nomePlanoTrabalho; + } + public String getNomeRelatorioAss() { + return nomeRelatorioAss; + } + public void setNomeRelatorioAss(String nomeRelatorioAss) { + this.nomeRelatorioAss = nomeRelatorioAss; + } + + } diff --git a/src/br/com/model/entity/Questionario.java b/src/br/com/model/entity/Questionario.java index 8213c66..b34a156 100644 --- a/src/br/com/model/entity/Questionario.java +++ b/src/br/com/model/entity/Questionario.java @@ -22,7 +22,8 @@ public class Questionario { private String dtRecebimentoEmail; private String dtRespostaEmail; private String dataRespostaQuestionario; - private boolean planoTrabalhoEnviado; + private boolean planoTrabalhoAnexado; + private boolean RelatorioAnexado; private boolean flagEnviado; @@ -174,12 +175,12 @@ public class Questionario { this.dataRespostaQuestionario = dataRespostaQuestionario; } - public boolean isPlanoTrabalhoEnviado() { - return planoTrabalhoEnviado; + public boolean isPlanoTrabalhoAnexado() { + return planoTrabalhoAnexado; } - public void setPlanoTrabalhoEnviado(boolean planoTrabalhoEnviado) { - this.planoTrabalhoEnviado = planoTrabalhoEnviado; + public void setPlanoTrabalhoAnexado(boolean planoTrabalhoAnexado) { + this.planoTrabalhoAnexado = planoTrabalhoAnexado; } public boolean isFlagEnviado() { @@ -190,6 +191,14 @@ public class Questionario { this.flagEnviado = flagEnviado; } + public boolean isRelatorioAnexado() { + return RelatorioAnexado; + } + + public void setRelatorioAnexado(boolean relatorioAnexado) { + RelatorioAnexado = relatorioAnexado; + } + } -- libgit2 0.21.2
    Nº Linha OrgãoResposta Email Data Relatório Respondido Relatório RespondidoPlano de Trabalho EnviadoPlano de Trabalho AnexadoRelatório AnexadoRelatório Enviado download Plano de Trabalhodownload Relatório AssinadoVisualizar Relatório
    ${contador.count} ${questionario.noOrgao} ${questionario.responsavel}${questionario.dataRespostaQuestionario} Recuperar + + Plano de Trabalho + + + + Plano de Trabalho + + + + Relatório Assinado + + + Relatório Assinado + + + Visualizar Relatório +