Commit 4afe9aade2f3c7aa768ce876027bc361014cb3a9
1 parent
915e9079
Exists in
master
Listar questionários com filtros e enviar relatório para o MPF.
Showing
13 changed files
with
558 additions
and
164 deletions
Show diff stats
WebContent/WEB-INF/jsp/planoTrabalho/enviarRelatorioPlanoTrabalho.jsp
0 → 100644
... | ... | @@ -0,0 +1,50 @@ |
1 | +<%@page contentType="text/html" pageEncoding="UTF-8"%> | |
2 | +<%@taglib prefix="t" tagdir="/WEB-INF/tags"%> | |
3 | +<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> | |
4 | +<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> | |
5 | + | |
6 | +<t:baseLayout> | |
7 | + <jsp:body> | |
8 | + | |
9 | + | |
10 | + <div class="funcionalidades"> | |
11 | + <ul class="breadcrumb"> | |
12 | + <li> | |
13 | + <span>Você está em:</span> | |
14 | + </li> | |
15 | + <li> | |
16 | + <a href="${pageContext.request.contextPath}/" id="bcFormulario"> Página Inicial </a> | |
17 | + </li> | |
18 | + <li>| Envio de Email para MPF</li> | |
19 | + </ul> | |
20 | + </div> | |
21 | + | |
22 | + <div> | |
23 | + <c:if test="${not empty mensagemValidacaoCampos}"> | |
24 | + <c:forEach items="${mensagemValidacaoCampos}" var="error"> | |
25 | + <div class="alinName"> | |
26 | + <a id="mensagemErroCampoVazio_${error.campo}" | |
27 | + href="#${error.campo}">${error.mensagem}</a> | |
28 | + </div> | |
29 | + <br /> | |
30 | + </c:forEach> | |
31 | + </c:if> | |
32 | + </div> | |
33 | + | |
34 | + | |
35 | + <form | |
36 | + action="${pageContext.request.contextPath}/enviar-email-mpf-alternativo" | |
37 | + method="post" enctype="multipart/form-data"> | |
38 | + <fieldset class="layoutCampos"> | |
39 | + <legend>Envio de Relatório e Plano de trabalho para MPF</legend> | |
40 | + <label for="valorHash">Código de acesso: </label> | |
41 | + <input type="password" id="valorHash" name="valorHash" size="60" | |
42 | + maxlength="60" required><br><br> | |
43 | + | |
44 | + <input type="submit" class="button" value="Enviar Email"> | |
45 | + </fieldset> | |
46 | + | |
47 | + </form> | |
48 | + | |
49 | + </jsp:body> | |
50 | +</t:baseLayout> | ... | ... |
WebContent/WEB-INF/jsp/planoTrabalho/planoTrabalho.jsp
... | ... | @@ -14,12 +14,12 @@ |
14 | 14 | </li> |
15 | 15 | <li> |
16 | 16 | <a href="${pageContext.request.contextPath}/" id="bcFormulario"> Página Inicial </a></li> |
17 | - <li>| Plano de Trabalho</li> | |
17 | + <li>| Anexo de Relatório e Plano de Trabalho</li> | |
18 | 18 | </ul> |
19 | 19 | </div> |
20 | 20 | |
21 | 21 | <div> |
22 | - <h2 class="titulo">Plano de Trabalho</h2> | |
22 | + <h2 class="titulo">Anexo de Relatório e Plano de Trabalho</h2> | |
23 | 23 | </div> |
24 | 24 | |
25 | 25 | <p>Conforme determina a portaria que regula este formulário circunstanciado em seu artigo 4º:</p> |
... | ... | @@ -29,7 +29,7 @@ |
29 | 29 | |
30 | 30 | <form action="${pageContext.request.contextPath}/salvar-plano-trabalho" method="post" enctype="multipart/form-data"> |
31 | 31 | <fieldset class="layoutCampos"> |
32 | - <legend>Plano de Trabalho</legend> | |
32 | + <legend>Anexo de Relatório e Plano de Trabalho</legend> | |
33 | 33 | <label for="valorHash">Código de acesso: </label> |
34 | 34 | <input type="password" id="valorHash" name="valorHash" size="60" maxlength="60" required><br><br> |
35 | 35 | |
... | ... | @@ -43,7 +43,7 @@ text/plain, application/pdf, image/*"><br><br> |
43 | 43 | <input type="file" id="filePlano" name="filePlano" accept= |
44 | 44 | "application/msword,application/zip,application/x-rar-compressed, application/octet-stream, application/vnd.ms-excel, application/vnd.oasis.opendocument.text , |
45 | 45 | text/plain, application/pdf, image/*" ><br><br> |
46 | - <input type="submit" class="button" value="Enviar"> | |
46 | + <input type="submit" class="button" id="botaoAnexar" value="Anexar"> | |
47 | 47 | </fieldset> |
48 | 48 | |
49 | 49 | </form> | ... | ... |
WebContent/WEB-INF/jsp/questionario/listaQuestionario.jsp
... | ... | @@ -5,7 +5,8 @@ |
5 | 5 | <t:baseLayout> |
6 | 6 | <jsp:body> |
7 | 7 | |
8 | - <form action="${pageContext.request.contextPath}/listar-questionario" method="post"> | |
8 | + <form action="${pageContext.request.contextPath}/listar-questionario" | |
9 | + method="post"> | |
9 | 10 | |
10 | 11 | <fieldset> |
11 | 12 | <legend>Filtros</legend> |
... | ... | @@ -21,14 +22,28 @@ |
21 | 22 | |
22 | 23 | <label for="statusPlanoTrabalho">Plano de trabalho Anexado:</label> |
23 | 24 | <select id="statusPlanoTrabalho" name="statusPlanoTrabalho"> |
24 | - <option value="todos" ${statusPlanoTrab == ''?'selected=\"selected\"':''}>Todos</option> | |
25 | - <option value="sim" ${statusPlanoTrab == 'sim'?'selected=\"selected\"':''}>Sim</option> | |
26 | - <option value="nao" ${statusPlanoTrab == 'nao'?'selected=\"selected\"':''}>Não</option> | |
25 | + <option value="todos" | |
26 | + ${statusPlanoTrab == ''?'selected=\"selected\"':''}>Todos</option> | |
27 | + <option value="sim" | |
28 | + ${statusPlanoTrab == 'sim'?'selected=\"selected\"':''}>Sim</option> | |
29 | + <option value="nao" | |
30 | + ${statusPlanoTrab == 'nao'?'selected=\"selected\"':''}>Não</option> | |
31 | + </select> | |
32 | + <br><br> | |
33 | + <label for="relatorioAnexado">Relatório Anexado:</label> | |
34 | + <select id="relatorioAnexado" name="relatorioAnexado"> | |
35 | + <option value="todos" | |
36 | + ${relatorioAnex == ''?'selected=\"selected\"':''}>Todos</option> | |
37 | + <option value="sim" | |
38 | + ${relatorioAnex == 'sim'?'selected=\"selected\"':''}>Sim</option> | |
39 | + <option value="nao" | |
40 | + ${relatorioAnex == 'nao'?'selected=\"selected\"':''}>Não</option> | |
27 | 41 | </select> |
28 | 42 | <br><br> |
29 | 43 | |
30 | 44 | <label for="nomeOrgao">Nome do Órgao que contenha:</label> |
31 | - <input type="text" id="nomeOrgao" name="nomeOrgao" size="70" value="${nomeOrgao }"> | |
45 | + <input type="text" id="nomeOrgao" name="nomeOrgao" size="70" | |
46 | + value="${nomeOrgao }"> | |
32 | 47 | <br><br> |
33 | 48 | |
34 | 49 | <input type="submit" value="Listar"> |
... | ... | @@ -52,7 +67,9 @@ |
52 | 67 | <th>Resposta Email</th> |
53 | 68 | <th>Data Relatório Respondido</th> |
54 | 69 | <th>Relatório Respondido</th> |
55 | - <th>Plano de Trabalho Enviado</th> | |
70 | + <th>Plano de Trabalho Anexado</th> | |
71 | + <th>Relatório Anexado</th> | |
72 | + <th>Relatório Enviado</th> | |
56 | 73 | <th>download Plano de Trabalho</th> |
57 | 74 | <th>download Relatório Assinado</th> |
58 | 75 | <th>Visualizar Relatório</th> |
... | ... | @@ -66,10 +83,12 @@ |
66 | 83 | <c:if test="${contador.count mod 2 == 0}"> |
67 | 84 | <tr bgcolor="#FFFFFF"> |
68 | 85 | |
86 | + | |
69 | 87 | </c:if> |
70 | 88 | <c:if test="${contador.count mod 2 != 0}"> |
71 | 89 | <tr bgcolor="#DAA520"> |
72 | 90 | |
91 | + | |
73 | 92 | </c:if> |
74 | 93 | <td>${contador.count}</td> |
75 | 94 | <td>${questionario.noOrgao}</td> |
... | ... | @@ -88,21 +107,36 @@ |
88 | 107 | <c:if test="${empty questionario.dataRespostaQuestionario}"> |
89 | 108 | <td><input type="checkbox" disabled="disabled"> </td> |
90 | 109 | </c:if> |
91 | - | |
92 | - | |
93 | - <c:if test="${questionario.planoTrabalhoEnviado == true}"> | |
94 | - <td><input type="checkbox" checked="checked" | |
110 | + | |
111 | + <td><input type="checkbox" ${questionario.planoTrabalhoAnexado == true ? 'checked=\"checked\"':''} | |
95 | 112 | disabled="disabled"> </td> |
96 | - </c:if> | |
97 | - <c:if test="${questionario.planoTrabalhoEnviado == false}"> | |
98 | - <td><input type="checkbox" disabled="disabled"> </td> | |
99 | - </c:if> | |
113 | + | |
114 | + <td><input type="checkbox" | |
115 | + ${questionario.relatorioAnexado == true ? 'checked=\"checked\"':''} | |
116 | + disabled="disabled"> </td> | |
117 | + <td><input type="checkbox" | |
118 | + ${questionario.flagEnviado == true ? 'checked=\"checked\"':''} | |
119 | + disabled="disabled"></td> | |
120 | + <td> | |
121 | + <c:if test="${questionario.planoTrabalhoAnexado == true}"> | |
122 | + <a href="${pageContext.request.contextPath}/recuperar-plano-trabalho/${questionario.idQuestionario}">Plano de Trabalho</a> | |
123 | + </c:if> | |
124 | + | |
125 | + <c:if test="${questionario.planoTrabalhoAnexado == false}"> | |
126 | + Plano de Trabalho | |
127 | + </c:if> | |
128 | + </td> | |
129 | + <td> | |
130 | + <c:if test="${questionario.relatorioAnexado == true}"> | |
131 | + <a href="${pageContext.request.contextPath}/recuperar-relatorio/${questionario.idQuestionario}">Relatório Assinado</a> | |
132 | + </c:if> | |
133 | + <c:if test="${questionario.relatorioAnexado == false}"> | |
134 | + Relatório Assinado | |
135 | + </c:if> | |
136 | + </td> | |
100 | 137 | <td> |
101 | - <a href="${pageContext.request.contextPath}/recuperar-plano-trabalho/${questionario.idQuestionario}">Plano de Trabalho</a></td> | |
102 | - <td> | |
103 | - <a href="${pageContext.request.contextPath}/recuperar-relatorio/${questionario.idQuestionario}">Relatório Assinado</a></td> | |
104 | - <td><a | |
105 | - href="${pageContext.request.contextPath}/relatorio-imprimir/${questionario.idQuestionario}">Visualizar Relatório</a></td> | |
138 | + <a href="${pageContext.request.contextPath}/relatorio-imprimir/${questionario.idQuestionario}">Visualizar Relatório</a> | |
139 | + </td> | |
106 | 140 | </tr> |
107 | 141 | |
108 | 142 | </c:forEach> | ... | ... |
WebContent/WEB-INF/jsp/questionario/questionario.jsp
... | ... | @@ -54,8 +54,12 @@ table, th, td { |
54 | 54 | </form> |
55 | 55 | <br> |
56 | 56 | |
57 | -<label>Total de solicitações: <span>${totalSolicitacoes}</span></label><br> | |
58 | - <table id="questionarios"> | |
57 | +<label>Total de solicitações: <span>${totalSolicitacoes}</span></label> | |
58 | +<label> | Total de Relatório Respondido: <span>${totalRelatorioRespondido}</span></label> | |
59 | +<label> | Total de Relatório Anexado: <span>${totalRelatorioAnexado}</span></label> | |
60 | +<label> | Total de Plano de Trabalho Anexado: <span>${totalPlanoTrabalhoAnexado}</span></label> | |
61 | +<label> | Total de Relatório Enviado: <span>${totalRelatorioEnviado}</span></label><br> | |
62 | +<table id="questionarios"> | |
59 | 63 | <tr> |
60 | 64 | <th>Nº Linha</th> |
61 | 65 | <th>Orgão</th> |
... | ... | @@ -67,20 +71,29 @@ table, th, td { |
67 | 71 | <th>Resposta Email</th> |
68 | 72 | <th>Data Relatório Respondido</th> |
69 | 73 | <th>Relatório Respondido</th> |
70 | - <th>Plano de Trabalho Enviado</th> | |
74 | + <th>Plano de Trabalho Anexado</th> | |
75 | + <th>Relatório Anexado</th> | |
76 | + <th>Relatório Enviado</th> | |
71 | 77 | <th>download Plano de Trabalho</th> |
78 | + <th>download Relatório Assinado</th> | |
79 | + <th>Visualizar Relatório</th> | |
72 | 80 | |
73 | 81 | </tr> |
74 | 82 | |
75 | 83 | <c:if test="${not empty lsquestionario}"> |
76 | 84 | |
77 | - <c:forEach items="${lsquestionario}" var="questionario" varStatus="contador"> | |
85 | + <c:forEach items="${lsquestionario}" var="questionario" | |
86 | + varStatus="contador"> | |
78 | 87 | <c:if test="${contador.count mod 2 == 0}"> |
79 | 88 | <tr bgcolor="#FFFFFF"> |
80 | - </c:if> | |
89 | + | |
90 | + | |
91 | + </c:if> | |
81 | 92 | <c:if test="${contador.count mod 2 != 0}"> |
82 | 93 | <tr bgcolor="#DAA520"> |
83 | - </c:if> | |
94 | + | |
95 | + | |
96 | + </c:if> | |
84 | 97 | <td>${contador.count}</td> |
85 | 98 | <td>${questionario.noOrgao}</td> |
86 | 99 | <td>${questionario.responsavel}</td> |
... | ... | @@ -92,20 +105,42 @@ table, th, td { |
92 | 105 | <td>${questionario.dataRespostaQuestionario}</td> |
93 | 106 | |
94 | 107 | <c:if test="${not empty questionario.dataRespostaQuestionario}"> |
95 | - <td><input type="checkbox" checked="checked" disabled="disabled"> </td> | |
108 | + <td><input type="checkbox" checked="checked" | |
109 | + disabled="disabled"> </td> | |
96 | 110 | </c:if> |
97 | 111 | <c:if test="${empty questionario.dataRespostaQuestionario}"> |
98 | 112 | <td><input type="checkbox" disabled="disabled"> </td> |
99 | 113 | </c:if> |
114 | + | |
115 | + <td><input type="checkbox" ${questionario.planoTrabalhoAnexado == true ? 'checked=\"checked\"':''} | |
116 | + disabled="disabled"> </td> | |
100 | 117 | |
101 | - | |
102 | - <c:if test="${questionario.planoTrabalhoEnviado == true}"> | |
103 | - <td><input type="checkbox" checked="checked" disabled="disabled"> </td> | |
104 | - </c:if> | |
105 | - <c:if test="${questionario.planoTrabalhoEnviado == false}"> | |
106 | - <td><input type="checkbox" disabled="disabled"> </td> | |
107 | - </c:if> | |
108 | - <td><a href="${pageContext.request.contextPath}/recuperar-plano-trabalho/${questionario.idQuestionario}">Recuperar</a></td> | |
118 | + <td><input type="checkbox" | |
119 | + ${questionario.relatorioAnexado == true ? 'checked=\"checked\"':''} | |
120 | + disabled="disabled"> </td> | |
121 | + <td><input type="checkbox" | |
122 | + ${questionario.flagEnviado == true ? 'checked=\"checked\"':''} | |
123 | + disabled="disabled"></td> | |
124 | + <td> | |
125 | + <c:if test="${questionario.planoTrabalhoAnexado == true}"> | |
126 | + <a href="${pageContext.request.contextPath}/recuperar-plano-trabalho/${questionario.idQuestionario}">Plano de Trabalho</a> | |
127 | + </c:if> | |
128 | + | |
129 | + <c:if test="${questionario.planoTrabalhoAnexado == false}"> | |
130 | + Plano de Trabalho | |
131 | + </c:if> | |
132 | + </td> | |
133 | + <td> | |
134 | + <c:if test="${questionario.relatorioAnexado == true}"> | |
135 | + <a href="${pageContext.request.contextPath}/recuperar-relatorio/${questionario.idQuestionario}">Relatório Assinado</a> | |
136 | + </c:if> | |
137 | + <c:if test="${questionario.relatorioAnexado == false}"> | |
138 | + Relatório Assinado | |
139 | + </c:if> | |
140 | + </td> | |
141 | + <td> | |
142 | + <a href="${pageContext.request.contextPath}/relatorio-imprimir/${questionario.idQuestionario}">Visualizar Relatório</a> | |
143 | + </td> | |
109 | 144 | </tr> |
110 | 145 | |
111 | 146 | </c:forEach> | ... | ... |
WebContent/WEB-INF/mail.properties
... | ... | @@ -8,4 +8,4 @@ prop.email.auth = false |
8 | 8 | prop.email.to = govbr@planejamento.gov.br |
9 | 9 | prop.email.from = govbr@planejamento.gov.br |
10 | 10 | prop.email.copiaEmailTo = fabricio.souza@planejamento.gov.br |
11 | -prop.email.anexosTo = gibran.sodre@planejamento.gov.br | |
12 | 11 | \ No newline at end of file |
12 | +prop.email.anexosTo = gibransodre@hotmail.com | |
13 | 13 | \ No newline at end of file | ... | ... |
WebContent/css/default.css
src/br/com/controller/PlanoTrabalhoController.java
... | ... | @@ -4,6 +4,7 @@ import java.io.IOException; |
4 | 4 | import java.util.ArrayList; |
5 | 5 | import java.util.List; |
6 | 6 | |
7 | +import javax.activation.DataHandler; | |
7 | 8 | import javax.servlet.ServletContext; |
8 | 9 | import javax.servlet.ServletOutputStream; |
9 | 10 | import javax.servlet.http.HttpServletResponse; |
... | ... | @@ -19,13 +20,19 @@ import br.com.caelum.vraptor.ioc.spring.VRaptorRequestHolder; |
19 | 20 | import br.com.caelum.vraptor.validator.ValidationMessage; |
20 | 21 | import br.com.dao.HashDao; |
21 | 22 | import br.com.dao.PlanoTrabalhoDao; |
23 | +import br.com.dao.QuestionarioDao; | |
24 | +import br.com.model.entity.EnvioEmailSemAutenticacao; | |
22 | 25 | import br.com.model.entity.PlanoTrabalho; |
23 | 26 | import br.com.model.entity.Questionario; |
27 | +import br.com.model.utilities.Email; | |
28 | +import br.com.util.DateUtil; | |
29 | +import br.com.util.Validacao; | |
24 | 30 | |
25 | 31 | |
26 | 32 | @Resource |
27 | 33 | public class PlanoTrabalhoController extends DefaultMultipartConfig { |
28 | 34 | |
35 | + private List<Validacao> mensagemValidacaoCampos = new ArrayList<Validacao>(); | |
29 | 36 | private Validator validator; |
30 | 37 | private Result result; |
31 | 38 | private ServletContext application; |
... | ... | @@ -89,7 +96,7 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { |
89 | 96 | HashDao hashDao = new HashDao(); |
90 | 97 | questionario = new Questionario(); |
91 | 98 | questionario = hashDao.verificarHash(path, valorHash); |
92 | - String nomeExtensaoPlanoTrabalho = filePlano.getFileName(); | |
99 | + String nomeExtensaoPlanoTrabalho = filePlano.getContentType(); | |
93 | 100 | |
94 | 101 | if (questionario != null && questionario.getDtInicioQuestionario() != null) { |
95 | 102 | PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao(); |
... | ... | @@ -97,9 +104,9 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { |
97 | 104 | planoTrabalho = |
98 | 105 | planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario); |
99 | 106 | |
100 | - if (planoTrabalho.getArquivoPlanoTrabalho() == null) { | |
107 | + if (planoTrabalho.getIdPlanoTrabalho() == 0) { | |
101 | 108 | if (planoTrabalhoDao.salvarPlanoTrabalho(path, filePlano.getFile(), questionario, |
102 | - nomeExtensaoPlanoTrabalho)) { | |
109 | + filePlano.getFileName(), nomeExtensaoPlanoTrabalho)) { | |
103 | 110 | mensagemPlano = "Plano de trabalho anexado com sucesso!"; |
104 | 111 | statusPlano = true; |
105 | 112 | } else { |
... | ... | @@ -107,7 +114,7 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { |
107 | 114 | } |
108 | 115 | } else { |
109 | 116 | if (planoTrabalhoDao.atualizarPlanoTrabalho(path, filePlano.getFile(), questionario, |
110 | - planoTrabalho.getIdPlanoTrabalho(), nomeExtensaoPlanoTrabalho)) { | |
117 | + planoTrabalho.getIdPlanoTrabalho(), filePlano.getFileName(),nomeExtensaoPlanoTrabalho)) { | |
111 | 118 | mensagemPlano = "Plano de trabalho anexado com sucesso!"; |
112 | 119 | statusPlano = true; |
113 | 120 | } else { |
... | ... | @@ -156,7 +163,7 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { |
156 | 163 | HashDao hashDao = new HashDao(); |
157 | 164 | questionario = new Questionario(); |
158 | 165 | questionario = hashDao.verificarHash(path, valorHash); |
159 | - String nomeExtensaoRelatorio = fileRelatorio.getFileName(); | |
166 | + String nomeExtensaoRelatorio = fileRelatorio.getContentType(); | |
160 | 167 | |
161 | 168 | if (questionario != null && questionario.getDtInicioQuestionario() != null) { |
162 | 169 | PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao(); |
... | ... | @@ -164,9 +171,9 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { |
164 | 171 | |
165 | 172 | planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario); |
166 | 173 | |
167 | - if (planoTrabalho.getArquivoRelatorioAss() == null) { | |
174 | + if (planoTrabalho.getIdPlanoTrabalho() == 0) { | |
168 | 175 | if (planoTrabalhoDao.salvarRelatorioAss(path, fileRelatorio.getFile(), questionario, |
169 | - nomeExtensaoRelatorio)) { | |
176 | + fileRelatorio.getFileName(), nomeExtensaoRelatorio)) { | |
170 | 177 | mensagemRelatorio = "Relatório anexado com sucesso!"; |
171 | 178 | statusRelatorio = true; |
172 | 179 | } else { |
... | ... | @@ -174,7 +181,7 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { |
174 | 181 | } |
175 | 182 | } else { |
176 | 183 | if (planoTrabalhoDao.atualizarRelatorioAss(path, fileRelatorio.getFile(), questionario, |
177 | - planoTrabalho.getIdPlanoTrabalho(), nomeExtensaoRelatorio)) { | |
184 | + planoTrabalho.getIdPlanoTrabalho(), fileRelatorio.getFileName(), nomeExtensaoRelatorio)) { | |
178 | 185 | mensagemRelatorio = "Relatório anexado com sucesso!"; |
179 | 186 | statusRelatorio = true; |
180 | 187 | } else { |
... | ... | @@ -222,9 +229,9 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { |
222 | 229 | if (questionario != null && questionario.getIdQuestionario() > 0) { |
223 | 230 | planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario); |
224 | 231 | |
225 | - if (planoTrabalho != null) { | |
232 | + if (planoTrabalho != null && planoTrabalho.getArquivoPlanoTrabalho() != null) { | |
226 | 233 | try { |
227 | - String nome = planoTrabalho.getNomeExtensaoPlanoTrabalho(); | |
234 | + String nome = planoTrabalho.getNomePlanoTrabalho(); | |
228 | 235 | dados = planoTrabalho.getArquivoPlanoTrabalho(); |
229 | 236 | response.setContentType("inline/download"); |
230 | 237 | String arq = "attachment;filename=" + nome; |
... | ... | @@ -237,6 +244,16 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { |
237 | 244 | |
238 | 245 | } |
239 | 246 | } |
247 | + else | |
248 | + { | |
249 | + this.validator.add(new ValidationMessage("", "")); | |
250 | + this.validator.onErrorUsePageOf(QuestionarioController.class).listaQuestionario(); | |
251 | + } | |
252 | + } | |
253 | + else | |
254 | + { | |
255 | + this.validator.add(new ValidationMessage("", "")); | |
256 | + this.validator.onErrorUsePageOf(QuestionarioController.class).listaQuestionario(); | |
240 | 257 | } |
241 | 258 | } |
242 | 259 | |
... | ... | @@ -253,9 +270,9 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { |
253 | 270 | if (questionario != null && questionario.getIdQuestionario() > 0) { |
254 | 271 | planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario); |
255 | 272 | |
256 | - if (planoTrabalho != null) { | |
273 | + if (planoTrabalho != null && planoTrabalho.getArquivoRelatorioAss() != null) { | |
257 | 274 | try { |
258 | - String nome = planoTrabalho.getNomeExtensaoRelatorioAss(); | |
275 | + String nome = planoTrabalho.getNomeRelatorioAss(); | |
259 | 276 | dados = planoTrabalho.getArquivoRelatorioAss(); |
260 | 277 | response.setContentType("inline/download"); |
261 | 278 | String arq = "attachment;filename=" + nome; |
... | ... | @@ -268,6 +285,179 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { |
268 | 285 | |
269 | 286 | } |
270 | 287 | } |
288 | + else | |
289 | + { | |
290 | + this.validator.add(new ValidationMessage("", "")); | |
291 | + this.validator.onErrorUsePageOf(QuestionarioController.class).listaQuestionario(); | |
292 | + } | |
293 | + } | |
294 | + else | |
295 | + { | |
296 | + this.validator.add(new ValidationMessage("", "")); | |
297 | + this.validator.onErrorUsePageOf(QuestionarioController.class).listaQuestionario(); | |
271 | 298 | } |
272 | 299 | } |
300 | + | |
301 | + @Path("/enviar-relatorio-plano-trabalho") | |
302 | + public void enviarRelatorioPlanoTrabalho() { | |
303 | + | |
304 | + } | |
305 | + | |
306 | + private void enviarEmail(Questionario questionario) { | |
307 | + QuestionarioDao questionarioDao; | |
308 | + | |
309 | + StringBuffer mensagemMPF = new StringBuffer(); | |
310 | + StringBuffer mensagemOrgao = new StringBuffer(); | |
311 | + String assuntoMPF = ""; | |
312 | + String assuntoOrgao = ""; | |
313 | + | |
314 | + PlanoTrabalho planoTrabalho = new PlanoTrabalho(); | |
315 | + PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao(); | |
316 | + | |
317 | + planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario); | |
318 | + | |
319 | + if(planoTrabalho != null && planoTrabalho.getArquivoPlanoTrabalho() != null && planoTrabalho.getArquivoRelatorioAss() != null) | |
320 | + { | |
321 | + DataHandler dataHandlerRelatorio; | |
322 | + DataHandler dataHandlerPlano; | |
323 | + | |
324 | + dataHandlerRelatorio = | |
325 | + new DataHandler(planoTrabalho.getArquivoRelatorioAss(), | |
326 | + planoTrabalho.getNomeExtensaoRelatorioAss()); | |
327 | + dataHandlerPlano = | |
328 | + new DataHandler(planoTrabalho.getArquivoPlanoTrabalho(), | |
329 | + planoTrabalho.getNomeExtensaoPlanoTrabalho()); | |
330 | + | |
331 | + Email email = new Email(this.application.getRealPath("") + "/WEB-INF/mail.properties"); | |
332 | + | |
333 | + EnvioEmailSemAutenticacao envioEmailSemAutenticacao = | |
334 | + new EnvioEmailSemAutenticacao(email.getHost(), Integer.toString(email.getPort())); | |
335 | + | |
336 | + assuntoMPF = "Registro de Encaminhamento do Relatório Circunstanciado de Acessibilidade Digital - " + questionario.getNoOrgao(); | |
337 | + | |
338 | + mensagemMPF.append("À Procuradoria Federal dos Diretos do Cidadão,<br>"); | |
339 | + mensagemMPF.append("<p>Conforme Portaria Interministerial xxxx/2016 do Ministério da Justiça e Cidadania e do"); | |
340 | + mensagemMPF.append(" Ministério do Planejamento, Desenvolvimento e Gestão, o(a) " + questionario.getNoOrgao()); | |
341 | + mensagemMPF.append(" encaminha o Relatório Circunstanciado relativo aos ambientes digitais desta"); | |
342 | + mensagemMPF.append(" instituição. </p>"); | |
343 | + mensagemMPF.append("Dados do Responsável:<br>"); | |
344 | + mensagemMPF.append("Nome: " + questionario.getResponsavel() +"<br>"); | |
345 | + mensagemMPF.append("Cargo: "+ questionario.getCargoResponsavel() + "<br>"); | |
346 | + mensagemMPF.append("Telefone: " + questionario.getTelefone() + "<br>"); | |
347 | + mensagemMPF.append("email: "+ questionario.getEmailDestinoOrgao() + "<br>"); | |
348 | + | |
349 | + | |
350 | + String mensagemRetornoMPF = | |
351 | + envioEmailSemAutenticacao.sendMailComAnexo(questionario.getEmailDestinoOrgao(), | |
352 | + email.getAnexosTo(), assuntoMPF, mensagemMPF.toString(), email.getAuth(), email.getAuthUser(), | |
353 | + email.getAuthPass(), dataHandlerRelatorio, planoTrabalho.getNomeRelatorioAss(), | |
354 | + dataHandlerPlano, planoTrabalho.getNomePlanoTrabalho()); | |
355 | + | |
356 | + | |
357 | + | |
358 | + if (mensagemRetornoMPF.equalsIgnoreCase("")) { | |
359 | + | |
360 | + | |
361 | + assuntoOrgao = "Registro de Encaminhamento do Relatório Circunstanciado de Acessibilidade Digital - " + questionario.getNoOrgao(); | |
362 | + | |
363 | + mensagemOrgao.append("<p>Prezado(a) "+ questionario.getResponsavel() +", "+ questionario.getCargoResponsavel() +" do "+ questionario.getNoOrgao() +", você concluiu com sucesso o processo de "); | |
364 | + mensagemOrgao.append("envio do Relatório Circunstanciado (Formulário Eletrônico de Acessibilidade Digital e "); | |
365 | + mensagemOrgao.append("Plano de Trabalho) à Procuradoria Federal dos Direitos do Cidadão do Ministério "); | |
366 | + mensagemOrgao.append("Público Federal.</p>"); | |
367 | + mensagemOrgao.append("<p>Conforme previsto na portaria interministerial xxx/2016 do Ministério da Justiça e "); | |
368 | + mensagemOrgao.append("Cidadania e do Ministério do Planejamento, Desenvolvimento e Gestão, além do "); | |
369 | + mensagemOrgao.append("envio, o relatório circunstanciado deverá ser publicado no portal do órgão/entidade e "); | |
370 | + mensagemOrgao.append("o seu reporte , na forma de síntese, deverá ser registrado na seção "); | |
371 | + mensagemOrgao.append("\"Medidas Relativas à Acessibilidade\" do Relatório de Gestão referente a 2016 e, nos "); | |
372 | + mensagemOrgao.append("anos subsequentes, indicar nessa seção o monitoramento das metas propostas nos "); | |
373 | + mensagemOrgao.append("planos de trabalho.</p>"); | |
374 | + mensagemOrgao.append("<p>Em caso de dúvida acesse <a href=\"http://fad.governoeletronico.gov.br/fad/contato/contato-site\">http://fad.governoeletronico.gov.br/fad/contato/contato-site.</a></p>"); | |
375 | + mensagemOrgao.append("<p>Brasília, "+ DateUtil.dataHoraAtual() +".</p>"); | |
376 | + mensagemOrgao.append("<p>Encaminhado por:</p>"); | |
377 | + mensagemOrgao.append("<p><a href=\"http://fad.governoeletronico.gov.br\">http://fad.governoeletronico.gov.br</a></p>"); | |
378 | + mensagemOrgao.append("<p>Coordenação-Geral de Padrões de Governo Digital</p>"); | |
379 | + mensagemOrgao.append("<p>Departamento de Governo Digital</p>"); | |
380 | + mensagemOrgao.append("<p>Secretaria de Tecnologia da Informação</p>"); | |
381 | + mensagemOrgao.append("<p>Ministério do Planejamento, Desenvolvimento e Gestão</p>"); | |
382 | + | |
383 | + //questionario.getEmailDestinoOrgao() | |
384 | + String mensagemRetornoOrgao = | |
385 | + envioEmailSemAutenticacao.sendMailComAnexo(email.getFrom(), | |
386 | + "gibransodre@hotmail.com", assuntoOrgao, mensagemOrgao.toString(), email.getAuth(), | |
387 | + email.getAuthUser(), email.getAuthPass(), dataHandlerRelatorio, | |
388 | + planoTrabalho.getNomeRelatorioAss(), dataHandlerPlano, | |
389 | + planoTrabalho.getNomePlanoTrabalho()); | |
390 | + | |
391 | + | |
392 | + if (mensagemRetornoOrgao.equalsIgnoreCase("")) { | |
393 | + | |
394 | + questionarioDao = new QuestionarioDao(); | |
395 | + | |
396 | + if (questionarioDao.atualizarFlagEnviado(path, questionario.getIdQuestionario())) { | |
397 | + result.include("mensagemEnvio", | |
398 | + "Mensagem enviada com Sucesso, você recebeu um email com os anexos!"); | |
399 | + result.include("statusEnvio", true); | |
400 | + } | |
401 | + } | |
402 | + } else { | |
403 | + result.include("mensagemEnvio", "Não foi possível enviar o email com os anexos!"); | |
404 | + result.include("statusEnvio", false); | |
405 | + } | |
406 | + }else | |
407 | + { | |
408 | + result.include("mensagemEnvio", "É preciso ter o Relatório e o Plano de Trabalho anexados!"); | |
409 | + result.include("statusEnvio", false); | |
410 | + } | |
411 | + | |
412 | + this.validator.add(new ValidationMessage("", "")); | |
413 | + this.validator.onErrorUsePageOf(PlanoTrabalhoController.class).confirmacaoEnvioEmailMPF(); | |
414 | + } | |
415 | + | |
416 | + @Path("/enviar-email-mpf-alternativo") | |
417 | + public void enviarEmailMPFAlternativo(String valorHash) { | |
418 | + | |
419 | + Validacao validacao = new Validacao(); | |
420 | + mensagemValidacaoCampos = new ArrayList<Validacao>(); | |
421 | + mensagemValidacaoCampos = validacao.validarHash(path, valorHash); | |
422 | + | |
423 | + if (mensagemValidacaoCampos.size() > 0) { | |
424 | + result.include("mensagemValidacaoCampos", mensagemValidacaoCampos); | |
425 | + this.validator.add(new ValidationMessage("", "")); | |
426 | + this.validator.onErrorUsePageOf(PlanoTrabalhoController.class).enviarRelatorioPlanoTrabalho(); | |
427 | + } | |
428 | + | |
429 | + HashDao hashDao = new HashDao(); | |
430 | + Questionario questionario = new Questionario(); | |
431 | + questionario = hashDao.verificarHash(path, valorHash); | |
432 | + | |
433 | + | |
434 | + | |
435 | + if (questionario != null && questionario.getIdQuestionario() > 0) { | |
436 | + | |
437 | + enviarEmail(questionario); | |
438 | + | |
439 | + } | |
440 | + | |
441 | + } | |
442 | + | |
443 | + | |
444 | + @Path("/enviar-email-mpf") | |
445 | + public void enviarEmailMPF() { | |
446 | + Questionario questionario = new Questionario(); | |
447 | + | |
448 | + questionario = | |
449 | + (Questionario) VRaptorRequestHolder.currentRequest().getServletContext() | |
450 | + .getAttribute("questionario"); | |
451 | + | |
452 | + if (questionario != null && questionario.getIdQuestionario() > 0) { | |
453 | + | |
454 | + enviarEmail(questionario); | |
455 | + | |
456 | + } | |
457 | + | |
458 | + } | |
459 | + | |
460 | + public void confirmacaoEnvioEmailMPF() { | |
461 | + | |
462 | + } | |
273 | 463 | } | ... | ... |
src/br/com/controller/QuestionarioController.java
... | ... | @@ -10,6 +10,8 @@ import java.util.Properties; |
10 | 10 | |
11 | 11 | import javax.servlet.ServletContext; |
12 | 12 | |
13 | +import org.apache.jasper.tagplugins.jstl.core.ForEach; | |
14 | + | |
13 | 15 | import br.com.caelum.vraptor.Path; |
14 | 16 | import br.com.caelum.vraptor.Resource; |
15 | 17 | import br.com.caelum.vraptor.Result; |
... | ... | @@ -51,6 +53,38 @@ public class QuestionarioController { |
51 | 53 | QuestionarioDao questionarioDao = new QuestionarioDao(); |
52 | 54 | List<Questionario> lsquestionario = new ArrayList<Questionario>(); |
53 | 55 | lsquestionario = questionarioDao.retornarListaQuestionario(path); |
56 | + | |
57 | + | |
58 | + int relatorioRespondido = 0; | |
59 | + int planoTrabalhoAnexado = 0; | |
60 | + int relatorioAnexado = 0; | |
61 | + int relatorioEnviado = 0; | |
62 | + | |
63 | + for (Questionario questionario : lsquestionario) { | |
64 | + | |
65 | + if(questionario.getDataRespostaQuestionario() != null) | |
66 | + { | |
67 | + relatorioRespondido++; | |
68 | + } | |
69 | + if(questionario.isPlanoTrabalhoAnexado()) | |
70 | + { | |
71 | + planoTrabalhoAnexado++; | |
72 | + } | |
73 | + if(questionario.isRelatorioAnexado()) | |
74 | + { | |
75 | + relatorioAnexado++; | |
76 | + } | |
77 | + if(questionario.isFlagEnviado()) | |
78 | + { | |
79 | + relatorioEnviado++; | |
80 | + } | |
81 | + | |
82 | + } | |
83 | + | |
84 | + result.include("totalRelatorioRespondido", relatorioRespondido); | |
85 | + result.include("totalPlanoTrabalhoAnexado", planoTrabalhoAnexado); | |
86 | + result.include("totalRelatorioAnexado", relatorioAnexado); | |
87 | + result.include("totalRelatorioEnviado", relatorioEnviado); | |
54 | 88 | result.include("lsquestionario", lsquestionario); |
55 | 89 | result.include("totalSolicitacoes", lsquestionario.size()); |
56 | 90 | } |
... | ... | @@ -62,18 +96,19 @@ public class QuestionarioController { |
62 | 96 | |
63 | 97 | @Path("/lista-questionario") |
64 | 98 | public void listaQuestionario() { |
65 | - listarQuestionarioComFiltro("todos", "todos",""); | |
99 | + listarQuestionarioComFiltro("todos", "todos","todos", ""); | |
66 | 100 | } |
67 | 101 | |
68 | 102 | @Path("/listar-questionario") |
69 | - public void listarQuestionarioComFiltro(String statusRelatorio, String statusPlanoTrabalho, String nomeOrgao) { | |
103 | + public void listarQuestionarioComFiltro(String statusRelatorio, String statusPlanoTrabalho, String relatorioAnexado, String nomeOrgao) { | |
70 | 104 | |
71 | 105 | QuestionarioDao questionarioDao = new QuestionarioDao(); |
72 | 106 | List<Questionario> lsquestionario = new ArrayList<Questionario>(); |
73 | - lsquestionario = questionarioDao.retornarListaQuestionarioComFiltro(path, statusRelatorio, statusPlanoTrabalho, nomeOrgao); | |
107 | + lsquestionario = questionarioDao.retornarListaQuestionarioComFiltro(path, statusRelatorio, statusPlanoTrabalho, relatorioAnexado, nomeOrgao); | |
74 | 108 | result.include("lsquestionario", lsquestionario); |
75 | 109 | result.include("totalSolicitacoes", lsquestionario.size()); |
76 | 110 | result.include("statusRel", statusRelatorio.equalsIgnoreCase("todos")? "" :statusRelatorio); |
111 | + result.include("relatorioAnex", relatorioAnexado.equalsIgnoreCase("todos")? "" :relatorioAnexado); | |
77 | 112 | result.include("statusPlanoTrab", statusPlanoTrabalho.equalsIgnoreCase("todos")? "" :statusPlanoTrabalho); |
78 | 113 | result.include("nomeOrgao", nomeOrgao != null? nomeOrgao:""); |
79 | 114 | ... | ... |
src/br/com/controller/relatorioController.java
... | ... | @@ -81,87 +81,9 @@ public class relatorioController { |
81 | 81 | } |
82 | 82 | } |
83 | 83 | |
84 | - @Path("/enviar-email-mpf") | |
85 | - public void enviarEmailMPF() { | |
86 | - Questionario questionario = new Questionario(); | |
87 | - QuestionarioDao questionarioDao; | |
88 | - | |
89 | - UploadedFile fileRelatorio; | |
84 | + | |
90 | 85 | |
91 | - String mensagemMPF = ""; | |
92 | - String mensagemOrgao = ""; | |
93 | - String assuntoMPF = ""; | |
94 | - String assuntoOrgao = ""; | |
95 | 86 | |
96 | - questionario = | |
97 | - (Questionario) VRaptorRequestHolder.currentRequest().getServletContext() | |
98 | - .getAttribute("questionario"); | |
99 | - | |
100 | - fileRelatorio = | |
101 | - (UploadedFile) VRaptorRequestHolder.currentRequest().getServletContext() | |
102 | - .getAttribute("fileRelatorio"); | |
103 | - | |
104 | - PlanoTrabalho planoTrabalho = new PlanoTrabalho(); | |
105 | - PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao(); | |
106 | - | |
107 | - planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario); | |
108 | - | |
109 | - DataHandler dataHandlerRelatorio; | |
110 | - DataHandler dataHandlerPlano; | |
111 | - | |
112 | - dataHandlerRelatorio = | |
113 | - new DataHandler(planoTrabalho.getArquivoRelatorioAss(), fileRelatorio.getContentType()); | |
114 | - dataHandlerPlano = | |
115 | - new DataHandler(planoTrabalho.getArquivoPlanoTrabalho(), fileRelatorio.getContentType()); | |
116 | - | |
117 | - Email email = new Email(this.application.getRealPath("") + "/WEB-INF/mail.properties"); | |
118 | - | |
119 | - EnvioEmailSemAutenticacao envioEmailSemAutenticacao = | |
120 | - new EnvioEmailSemAutenticacao(email.getHost(), Integer.toString(email.getPort())); | |
121 | - | |
122 | - | |
123 | - String mensagemRetornoMPF = | |
124 | - envioEmailSemAutenticacao.sendMailComAnexo(questionario.getEmailDestinoOrgao(), | |
125 | - email.getAnexosTo(), assuntoMPF, mensagemMPF, email.getAuth(), email.getAuthUser(), | |
126 | - email.getAuthPass(), dataHandlerRelatorio, planoTrabalho.getNomeExtensaoRelatorioAss(), | |
127 | - dataHandlerPlano, planoTrabalho.getNomeExtensaoPlanoTrabalho()); | |
128 | - | |
129 | - if (mensagemRetornoMPF.equalsIgnoreCase("")) { | |
130 | - String mensagemRetornoOrgao = | |
131 | - envioEmailSemAutenticacao.sendMailComAnexo(email.getFrom(), | |
132 | - questionario.getEmailDestinoOrgao(), assuntoOrgao, mensagemOrgao, email.getAuth(), | |
133 | - email.getAuthUser(), email.getAuthPass(), dataHandlerRelatorio, | |
134 | - planoTrabalho.getNomeExtensaoRelatorioAss(), dataHandlerPlano, | |
135 | - planoTrabalho.getNomeExtensaoPlanoTrabalho()); | |
136 | - | |
137 | - | |
138 | - if (mensagemRetornoOrgao.equalsIgnoreCase("")) { | |
139 | - | |
140 | - questionarioDao = new QuestionarioDao(); | |
141 | - | |
142 | - if(questionarioDao.atualizarFlagEnviado(path, questionario.getIdQuestionario())) | |
143 | - { | |
144 | - result.include("mensagemEnvio", "Mensagem enviada com Sucesso, você recebeu um email com os anexos!"); | |
145 | - result.include("statusEnvio", true); | |
146 | - } | |
147 | - } | |
148 | - } | |
149 | - else | |
150 | - { | |
151 | - result.include("mensagemEnvio", "Não foi possível enviar o email com os anexos!"); | |
152 | - result.include("statusEnvio", false); | |
153 | - } | |
154 | - | |
155 | - this.validator.add(new ValidationMessage("", "")); | |
156 | - this.validator.onErrorUsePageOf(relatorioController.class).confirmacaoEnvioEmailMPF(); | |
157 | - } | |
158 | - | |
159 | - public void confirmacaoEnvioEmailMPF() | |
160 | - { | |
161 | - | |
162 | - } | |
163 | - | |
164 | - | |
165 | 87 | @Get("/relatorio-imprimir/{id}") |
166 | 88 | public void relatorioImprimir(String id) { |
167 | 89 | if (id != null) { | ... | ... |
src/br/com/dao/PlanoTrabalhoDao.java
... | ... | @@ -13,7 +13,7 @@ import br.com.model.entity.Questionario; |
13 | 13 | public class PlanoTrabalhoDao { |
14 | 14 | |
15 | 15 | |
16 | - public int verificaPlanoTrabalho(String path, Integer idQuestionario) | |
16 | + public PlanoTrabalho verificaPlanoTrabalho(String path, Integer idQuestionario) | |
17 | 17 | { |
18 | 18 | |
19 | 19 | |
... | ... | @@ -23,6 +23,7 @@ public class PlanoTrabalhoDao { |
23 | 23 | ResultSet rset = null; |
24 | 24 | //boolean existePlanoTrabalho = false; |
25 | 25 | int idPlanoTrabalho = -1; |
26 | + PlanoTrabalho planoTrabalho = new PlanoTrabalho(); | |
26 | 27 | |
27 | 28 | try { |
28 | 29 | |
... | ... | @@ -33,8 +34,17 @@ public class PlanoTrabalhoDao { |
33 | 34 | |
34 | 35 | rset = estado.executeQuery(sql); |
35 | 36 | |
36 | - while (rset.next()) { | |
37 | - idPlanoTrabalho = rset.getInt("id_plano_trabalho"); | |
37 | + while (rset.next()) { | |
38 | + planoTrabalho.setIdPlanoTrabalho(rset.getInt("id_plano_trabalho")); | |
39 | + planoTrabalho.setArquivoPlanoTrabalho(rset.getBytes("arquivo_plano_trabalho")); | |
40 | + planoTrabalho.setArquivoRelatorioAss(rset.getBytes("arquivo_relatorio_ass")); | |
41 | + planoTrabalho.setNomeExtensaoPlanoTrabalho(rset.getString("extensao_plano_trabalho")); | |
42 | + planoTrabalho.setNomeExtensaoRelatorioAss(rset.getString("extensao_relatorio_ass")); | |
43 | + planoTrabalho.setNomePlanoTrabalho(rset.getString("nome_plano_trabalho")); | |
44 | + planoTrabalho.setNomeRelatorioAss(rset.getString("nome_relatorio_ass")); | |
45 | + | |
46 | + Questionario quest = new Questionario(path, idQuestionario); | |
47 | + planoTrabalho.setQuestionario(quest); | |
38 | 48 | } |
39 | 49 | |
40 | 50 | } catch (SQLException e) { |
... | ... | @@ -51,10 +61,10 @@ public class PlanoTrabalhoDao { |
51 | 61 | } |
52 | 62 | } |
53 | 63 | |
54 | - return idPlanoTrabalho; | |
64 | + return planoTrabalho; | |
55 | 65 | } |
56 | 66 | |
57 | - public boolean salvarPlanoTrabalho(String path, InputStream file, Questionario questionario, String nomeExtensao) | |
67 | + public boolean salvarPlanoTrabalho(String path, InputStream file, Questionario questionario, String nomeArquivo,String nomeExtensao) | |
58 | 68 | { |
59 | 69 | |
60 | 70 | StringBuffer sql = new StringBuffer(); |
... | ... | @@ -66,13 +76,14 @@ public class PlanoTrabalhoDao { |
66 | 76 | try { |
67 | 77 | |
68 | 78 | sql = new StringBuffer(); |
69 | - sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_plano_trabalho, extensao_plano_trabalho) VALUES (?, ?, ?); "); | |
79 | + sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_plano_trabalho, nome_plano_trabalho,extensao_plano_trabalho) VALUES (?, ?, ?, ?); "); | |
70 | 80 | |
71 | 81 | estado = con.prepareStatement(sql.toString()); |
72 | 82 | |
73 | 83 | estado.setInt(1, questionario.getIdQuestionario()); |
74 | 84 | estado.setBinaryStream(2, file); |
75 | - estado.setString(3, nomeExtensao); | |
85 | + estado.setString(3, nomeArquivo); | |
86 | + estado.setString(4, nomeExtensao); | |
76 | 87 | |
77 | 88 | resultado = estado.executeUpdate(); |
78 | 89 | |
... | ... | @@ -91,7 +102,7 @@ public class PlanoTrabalhoDao { |
91 | 102 | return salvoComSucesso; |
92 | 103 | } |
93 | 104 | |
94 | - public boolean salvarRelatorioAss(String path, InputStream file, Questionario questionario, String nomeExtensao) | |
105 | + public boolean salvarRelatorioAss(String path, InputStream file, Questionario questionario, String nomeArquivo, String nomeExtensao) | |
95 | 106 | { |
96 | 107 | |
97 | 108 | StringBuffer sql = new StringBuffer(); |
... | ... | @@ -103,13 +114,14 @@ public class PlanoTrabalhoDao { |
103 | 114 | try { |
104 | 115 | |
105 | 116 | sql = new StringBuffer(); |
106 | - sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_relatorio_ass, extensao_relatorio_ass) VALUES (?, ?, ?); "); | |
117 | + sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_relatorio_ass, nome_relatorio_ass, extensao_relatorio_ass) VALUES (?, ?, ?, ?); "); | |
107 | 118 | |
108 | 119 | estado = con.prepareStatement(sql.toString()); |
109 | 120 | |
110 | 121 | estado.setInt(1, questionario.getIdQuestionario()); |
111 | 122 | estado.setBinaryStream(2, file); |
112 | - estado.setString(3, nomeExtensao); | |
123 | + estado.setString(3, nomeArquivo); | |
124 | + estado.setString(4, nomeExtensao); | |
113 | 125 | |
114 | 126 | resultado = estado.executeUpdate(); |
115 | 127 | |
... | ... | @@ -128,7 +140,7 @@ public class PlanoTrabalhoDao { |
128 | 140 | return salvoComSucesso; |
129 | 141 | } |
130 | 142 | |
131 | - public boolean atualizarPlanoTrabalho(String path, InputStream file, Questionario questionario, int idPlanoTrabalho, String nomeExtensao) | |
143 | + public boolean atualizarPlanoTrabalho(String path, InputStream file, Questionario questionario, int idPlanoTrabalho, String nomeArquivo, String nomeExtensao) | |
132 | 144 | { |
133 | 145 | |
134 | 146 | StringBuffer sql = new StringBuffer(); |
... | ... | @@ -143,6 +155,7 @@ public class PlanoTrabalhoDao { |
143 | 155 | //sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_plano_trabalho) VALUES (?, ?); "); |
144 | 156 | sql.append(" UPDATE public.plano_trabalho"); |
145 | 157 | sql.append(" SET arquivo_plano_trabalho=?,"); |
158 | + sql.append( " nome_plano_trabalho =?, "); | |
146 | 159 | sql.append( " extensao_plano_trabalho =? "); |
147 | 160 | sql.append(" WHERE id_plano_trabalho=?;"); |
148 | 161 | |
... | ... | @@ -150,8 +163,10 @@ public class PlanoTrabalhoDao { |
150 | 163 | |
151 | 164 | //estado.setInt(1, questionario.getIdQuestionario()); |
152 | 165 | estado.setBinaryStream(1, file); |
153 | - estado.setString(2, nomeExtensao); | |
154 | - estado.setInt(3, idPlanoTrabalho); | |
166 | + estado.setString(2, nomeArquivo); | |
167 | + estado.setString(3, nomeExtensao); | |
168 | + estado.setInt(4, idPlanoTrabalho); | |
169 | + | |
155 | 170 | |
156 | 171 | resultado = estado.executeUpdate(); |
157 | 172 | |
... | ... | @@ -170,7 +185,7 @@ public class PlanoTrabalhoDao { |
170 | 185 | return salvoComSucesso; |
171 | 186 | } |
172 | 187 | |
173 | - public boolean atualizarRelatorioAss(String path, InputStream file, Questionario questionario, int idPlanoTrabalho, String nomeExtensao) | |
188 | + public boolean atualizarRelatorioAss(String path, InputStream file, Questionario questionario, int idPlanoTrabalho, String nomeArquivo, String nomeExtensao) | |
174 | 189 | { |
175 | 190 | |
176 | 191 | StringBuffer sql = new StringBuffer(); |
... | ... | @@ -185,6 +200,7 @@ public class PlanoTrabalhoDao { |
185 | 200 | //sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_plano_trabalho) VALUES (?, ?); "); |
186 | 201 | sql.append(" UPDATE public.plano_trabalho"); |
187 | 202 | sql.append(" SET arquivo_relatorio_ass=?,"); |
203 | + sql.append( " nome_relatorio_ass =?, "); | |
188 | 204 | sql.append( " extensao_relatorio_ass =? "); |
189 | 205 | sql.append(" WHERE id_plano_trabalho=?;"); |
190 | 206 | |
... | ... | @@ -192,8 +208,9 @@ public class PlanoTrabalhoDao { |
192 | 208 | |
193 | 209 | //estado.setInt(1, questionario.getIdQuestionario()); |
194 | 210 | estado.setBinaryStream(1, file); |
195 | - estado.setString(2, nomeExtensao); | |
196 | - estado.setInt(3, idPlanoTrabalho); | |
211 | + estado.setString(2, nomeArquivo); | |
212 | + estado.setString(3, nomeExtensao); | |
213 | + estado.setInt(4, idPlanoTrabalho); | |
197 | 214 | |
198 | 215 | resultado = estado.executeUpdate(); |
199 | 216 | |
... | ... | @@ -240,7 +257,9 @@ public class PlanoTrabalhoDao { |
240 | 257 | planoTrabalho.setArquivoPlanoTrabalho(rset.getBytes("arquivo_plano_trabalho")); |
241 | 258 | planoTrabalho.setNomeExtensaoPlanoTrabalho(rset.getString("extensao_plano_trabalho")); |
242 | 259 | planoTrabalho.setArquivoRelatorioAss(rset.getBytes("arquivo_relatorio_ass")); |
243 | - planoTrabalho.setNomeExtensaoRelatorioAss(rset.getString("extensao_relatorio_ass")); | |
260 | + planoTrabalho.setNomeExtensaoRelatorioAss(rset.getString("extensao_relatorio_ass")); | |
261 | + planoTrabalho.setNomePlanoTrabalho(rset.getString("nome_plano_trabalho")); | |
262 | + planoTrabalho.setNomeRelatorioAss(rset.getString("nome_relatorio_ass")); | |
244 | 263 | planoTrabalho.setQuestionario(questionario); |
245 | 264 | } |
246 | 265 | ... | ... |
src/br/com/dao/QuestionarioDao.java
... | ... | @@ -16,6 +16,7 @@ import java.util.Date; |
16 | 16 | import java.util.List; |
17 | 17 | |
18 | 18 | import br.com.caelum.vraptor.interceptor.multipart.UploadedFile; |
19 | +import br.com.model.entity.PlanoTrabalho; | |
19 | 20 | import br.com.model.entity.Questionario; |
20 | 21 | import br.com.util.DateUtil; |
21 | 22 | import br.com.util.GeradorCodigoHash; |
... | ... | @@ -66,10 +67,34 @@ public class QuestionarioDao { |
66 | 67 | questionario.setDtRespostaEmail(dataRespostaQuestionario); |
67 | 68 | } |
68 | 69 | |
70 | + PlanoTrabalho planoTrabalho = new PlanoTrabalho(); | |
71 | + | |
72 | + planoTrabalho = planoTrabalhoDao.verificaPlanoTrabalho(path, rset.getInt("id_questionario")); | |
69 | 73 | |
70 | 74 | |
71 | 75 | questionario.setDataRespostaQuestionario(respostaQuestionarioDao.verificaRespostaQuestionario(path, rset.getInt("id_questionario"))); |
72 | - questionario.setPlanoTrabalhoEnviado( planoTrabalhoDao.verificaPlanoTrabalho(path, rset.getInt("id_questionario")) > -1 ? true : false); | |
76 | + | |
77 | + //verifica se foi anexado plano de trabalho | |
78 | + if(planoTrabalho != null && planoTrabalho.getArquivoPlanoTrabalho() != null) | |
79 | + { | |
80 | + questionario.setPlanoTrabalhoAnexado(true); | |
81 | + } | |
82 | + else | |
83 | + { | |
84 | + questionario.setPlanoTrabalhoAnexado(false); | |
85 | + } | |
86 | + | |
87 | + | |
88 | + //verifica se anexado Relatório assinado | |
89 | + if(planoTrabalho != null && planoTrabalho.getArquivoRelatorioAss() != null) | |
90 | + { | |
91 | + questionario.setRelatorioAnexado(true); | |
92 | + } | |
93 | + else | |
94 | + { | |
95 | + questionario.setRelatorioAnexado(false); | |
96 | + } | |
97 | + | |
73 | 98 | listaQuestionario.add(questionario); |
74 | 99 | |
75 | 100 | } |
... | ... | @@ -80,7 +105,7 @@ public class QuestionarioDao { |
80 | 105 | return listaQuestionario; |
81 | 106 | } |
82 | 107 | |
83 | - public List<Questionario> retornarListaQuestionarioComFiltro(String path, String statusRelatorio, String statusPlanoTrabalho, String nomeOrgao) { | |
108 | + public List<Questionario> retornarListaQuestionarioComFiltro(String path, String statusRelatorio, String statusPlanoTrabalho, String relatorioAnexado, String nomeOrgao) { | |
84 | 109 | |
85 | 110 | List<Questionario> listaQuestionario = new ArrayList<Questionario>(); |
86 | 111 | |
... | ... | @@ -114,6 +139,7 @@ public class QuestionarioDao { |
114 | 139 | questionario.setFlagEnviado(rset.getBoolean("flag_enviado")); |
115 | 140 | |
116 | 141 | dataRespostaQuestionario = rset.getString("data_resposta_email"); |
142 | + | |
117 | 143 | if(dataRespostaQuestionario != null) |
118 | 144 | { |
119 | 145 | questionario.setDtRespostaEmail(DateUtil.dataHoraFormatadaDiaMesAnoComParametro(dataRespostaQuestionario)); |
... | ... | @@ -126,21 +152,75 @@ public class QuestionarioDao { |
126 | 152 | |
127 | 153 | questionario.setDataRespostaQuestionario(respostaQuestionarioDao.verificaRespostaQuestionario(path, rset.getInt("id_questionario"))); |
128 | 154 | |
129 | - questionario.setPlanoTrabalhoEnviado( planoTrabalhoDao.verificaPlanoTrabalho(path, rset.getInt("id_questionario")) > -1 ? true : false); | |
130 | 155 | |
131 | - if(statusPlanoTrabalho.equalsIgnoreCase("todos")) | |
156 | + PlanoTrabalho planoTrabalho = new PlanoTrabalho(); | |
157 | + | |
158 | + planoTrabalho = planoTrabalhoDao.verificaPlanoTrabalho(path, rset.getInt("id_questionario")); | |
159 | + | |
160 | + //verifica se foi anexado plano de trabalho | |
161 | + if(planoTrabalho != null && planoTrabalho.getArquivoPlanoTrabalho() != null) | |
132 | 162 | { |
133 | - listaQuestionario.add(questionario); | |
163 | + questionario.setPlanoTrabalhoAnexado(true); | |
164 | + } | |
165 | + else | |
166 | + { | |
167 | + questionario.setPlanoTrabalhoAnexado(false); | |
168 | + } | |
169 | + //verifica se foi anexado o Relatório | |
170 | + if(planoTrabalho != null && planoTrabalho.getArquivoRelatorioAss() != null) | |
171 | + { | |
172 | + questionario.setRelatorioAnexado(true); | |
134 | 173 | } |
135 | 174 | else |
136 | 175 | { |
137 | - if(statusPlanoTrabalho.equalsIgnoreCase("sim") && questionario.isPlanoTrabalhoEnviado()) | |
176 | + questionario.setRelatorioAnexado(false); | |
177 | + } | |
178 | + | |
179 | + | |
180 | + if(statusPlanoTrabalho.equalsIgnoreCase("todos") && relatorioAnexado.equalsIgnoreCase("todos")) | |
181 | + { | |
182 | + listaQuestionario.add(questionario); | |
183 | + } | |
184 | + else | |
185 | + { | |
186 | + if(statusPlanoTrabalho.equalsIgnoreCase("sim") && questionario.isPlanoTrabalhoAnexado()) | |
138 | 187 | { |
139 | - listaQuestionario.add(questionario); | |
188 | + if(relatorioAnexado.equalsIgnoreCase("sim") && questionario.isRelatorioAnexado()) | |
189 | + { | |
190 | + listaQuestionario.add(questionario); | |
191 | + } | |
192 | + else if(relatorioAnexado.equalsIgnoreCase("todos")) | |
193 | + { | |
194 | + listaQuestionario.add(questionario); | |
195 | + } | |
196 | + else if(relatorioAnexado.equalsIgnoreCase("nao") && !questionario.isRelatorioAnexado()) | |
197 | + { | |
198 | + listaQuestionario.add(questionario); | |
199 | + } | |
140 | 200 | } |
141 | - else if(statusPlanoTrabalho.equalsIgnoreCase("nao") && !questionario.isPlanoTrabalhoEnviado()) | |
201 | + else if(statusPlanoTrabalho.equalsIgnoreCase("nao") && !questionario.isPlanoTrabalhoAnexado()) | |
202 | + { | |
203 | + if(relatorioAnexado.equalsIgnoreCase("sim") && questionario.isRelatorioAnexado()) | |
204 | + { | |
205 | + listaQuestionario.add(questionario); | |
206 | + } else if(relatorioAnexado.equalsIgnoreCase("todos")) | |
207 | + { | |
208 | + listaQuestionario.add(questionario); | |
209 | + } | |
210 | + else if(relatorioAnexado.equalsIgnoreCase("nao") && !questionario.isRelatorioAnexado()) | |
211 | + { | |
212 | + listaQuestionario.add(questionario); | |
213 | + } | |
214 | + }else if(statusPlanoTrabalho.equalsIgnoreCase("todos")) | |
142 | 215 | { |
143 | - listaQuestionario.add(questionario); | |
216 | + if(relatorioAnexado.equalsIgnoreCase("sim") && questionario.isRelatorioAnexado()) | |
217 | + { | |
218 | + listaQuestionario.add(questionario); | |
219 | + } | |
220 | + else if(relatorioAnexado.equalsIgnoreCase("nao") && !questionario.isRelatorioAnexado()) | |
221 | + { | |
222 | + listaQuestionario.add(questionario); | |
223 | + } | |
144 | 224 | } |
145 | 225 | } |
146 | 226 | ... | ... |
src/br/com/model/entity/PlanoTrabalho.java
... | ... | @@ -7,6 +7,8 @@ public class PlanoTrabalho { |
7 | 7 | private String nomeExtensaoPlanoTrabalho; |
8 | 8 | private byte[] arquivoRelatorioAss; |
9 | 9 | private String nomeExtensaoRelatorioAss; |
10 | + private String nomePlanoTrabalho; | |
11 | + private String nomeRelatorioAss; | |
10 | 12 | private Questionario questionario; |
11 | 13 | |
12 | 14 | public int getIdPlanoTrabalho() { |
... | ... | @@ -47,5 +49,19 @@ public class PlanoTrabalho { |
47 | 49 | public void setNomeExtensaoRelatorioAss(String nomeExtensaoRelatorioAss) { |
48 | 50 | this.nomeExtensaoRelatorioAss = nomeExtensaoRelatorioAss; |
49 | 51 | } |
52 | + public String getNomePlanoTrabalho() { | |
53 | + return nomePlanoTrabalho; | |
54 | + } | |
55 | + public void setNomePlanoTrabalho(String nomePlanoTrabalho) { | |
56 | + this.nomePlanoTrabalho = nomePlanoTrabalho; | |
57 | + } | |
58 | + public String getNomeRelatorioAss() { | |
59 | + return nomeRelatorioAss; | |
60 | + } | |
61 | + public void setNomeRelatorioAss(String nomeRelatorioAss) { | |
62 | + this.nomeRelatorioAss = nomeRelatorioAss; | |
63 | + } | |
64 | + | |
65 | + | |
50 | 66 | |
51 | 67 | } | ... | ... |
src/br/com/model/entity/Questionario.java
... | ... | @@ -22,7 +22,8 @@ public class Questionario { |
22 | 22 | private String dtRecebimentoEmail; |
23 | 23 | private String dtRespostaEmail; |
24 | 24 | private String dataRespostaQuestionario; |
25 | - private boolean planoTrabalhoEnviado; | |
25 | + private boolean planoTrabalhoAnexado; | |
26 | + private boolean RelatorioAnexado; | |
26 | 27 | private boolean flagEnviado; |
27 | 28 | |
28 | 29 | |
... | ... | @@ -174,12 +175,12 @@ public class Questionario { |
174 | 175 | this.dataRespostaQuestionario = dataRespostaQuestionario; |
175 | 176 | } |
176 | 177 | |
177 | - public boolean isPlanoTrabalhoEnviado() { | |
178 | - return planoTrabalhoEnviado; | |
178 | + public boolean isPlanoTrabalhoAnexado() { | |
179 | + return planoTrabalhoAnexado; | |
179 | 180 | } |
180 | 181 | |
181 | - public void setPlanoTrabalhoEnviado(boolean planoTrabalhoEnviado) { | |
182 | - this.planoTrabalhoEnviado = planoTrabalhoEnviado; | |
182 | + public void setPlanoTrabalhoAnexado(boolean planoTrabalhoAnexado) { | |
183 | + this.planoTrabalhoAnexado = planoTrabalhoAnexado; | |
183 | 184 | } |
184 | 185 | |
185 | 186 | public boolean isFlagEnviado() { |
... | ... | @@ -190,6 +191,14 @@ public class Questionario { |
190 | 191 | this.flagEnviado = flagEnviado; |
191 | 192 | } |
192 | 193 | |
194 | + public boolean isRelatorioAnexado() { | |
195 | + return RelatorioAnexado; | |
196 | + } | |
197 | + | |
198 | + public void setRelatorioAnexado(boolean relatorioAnexado) { | |
199 | + RelatorioAnexado = relatorioAnexado; | |
200 | + } | |
201 | + | |
193 | 202 | |
194 | 203 | |
195 | 204 | } | ... | ... |