Commit 551b8edf53b2c556cef199129602d4e3eacc2362

Authored by gibransodre
1 parent 02225f8e
Exists in master

Funcionalidade para listar os órgãos que solicitaram, receberam,

resposnderam o formulário e enviaram o plano de trabalho.
WebContent/WEB-INF/jsp/questionario/questionario.jsp
... ... @@ -10,55 +10,82 @@
10 10 <body>
11 11  
12 12  
13   -<form action="${pageContext.request.contextPath}/salvar-questionario" method="post" enctype="multipart/form-data">
14   -
15   -<fieldset>
16   -<legend>Questionário</legend>
17   -
18   -
19   -<label for="autorizacao">Senha autorização: </label>
20   -<input type="password" id="autorizacao" name="autorizacao"><br><br>
21   -<label for="noOrgao">Órgão: </label>
22   -<input type="text" id="noOrgao" name="noOrgao"><br><br>
23   -<label for="nomeResponsavel">Responsável: </label>
24   -<input type="text" id="nomeResponsavel" name="nomeResponsavel"><br><br>
25   -<label for="cargoResponsavel">Cargo: </label>
26   -<input type="text" id="cargoResponsavel" name="cargoResponsavel"><br><br>
27   -<label for="emailDestinoOrgao">Email: </label>
28   -<input type="text" id="emailDestinoOrgao" name="emailDestinoOrgao"><br><br>
29   -<label for="telefoneResponsavel">Telefone: </label>
30   -<input type="text" id="telefoneResponsavel" name="telefoneResponsavel"><br><br>
31   -
32   -<label for=>Data Recebimento Email: </label>
33   -<input type="date" id="dataRecebimentoEmail" name="dataRecebimentoEmail" onload="pegarDataAtual()"><br><br>
34   -<label for=>Data Resposta Email: </label>
35   -<input type="date" id="dataRespostaEmail" name="dataRespostaEmail"><br><br>
36   -
37   -
38   -<input type="submit" value="Salvar">
39   -</fieldset>
40   -</form><br>
41   -
42   -<table>
43   -<tr>
44   - <th>Nome</th>
45   - <th>Orgão</th>
46   - <th>Cargo</th>
47   - <th>Email</th>
48   - <th>Recebimento Email</th>
49   - <th>Resposta Email</th>
50   -
51   - </tr>
52   -
53   - <tr>
54   - <td>Fabricio Jamati de Souza</td>
55   - <td>Ministerio do planejamento</td>
56   - <td>Analista em Tecnologia da Informação</td>
57   - <td>Jamati01@yahoo.com.br</td>
58   - <td>24/11/2016</td>
59   - <td>24/11/2016</td>
60   - </tr>
61   -</table>
  13 + <form action="${pageContext.request.contextPath}/salvar-questionario"
  14 + method="post" enctype="multipart/form-data">
  15 +
  16 + <fieldset>
  17 + <legend>Questionário</legend>
  18 +
  19 +
  20 + <label for="autorizacao">Senha autorização: </label> <input
  21 + type="password" id="autorizacao" name="autorizacao"><br>
  22 + <br> <label for="noOrgao">Órgão: </label> <input type="text"
  23 + id="noOrgao" name="noOrgao"><br>
  24 + <br> <label for="nomeResponsavel">Responsável: </label> <input
  25 + type="text" id="nomeResponsavel" name="nomeResponsavel"><br>
  26 + <br> <label for="cargoResponsavel">Cargo: </label> <input
  27 + type="text" id="cargoResponsavel" name="cargoResponsavel"><br>
  28 + <br> <label for="emailDestinoOrgao">Email: </label> <input
  29 + type="text" id="emailDestinoOrgao" name="emailDestinoOrgao"><br>
  30 + <br> <label for="telefoneResponsavel">Telefone: </label> <input
  31 + type="text" id="telefoneResponsavel" name="telefoneResponsavel"><br>
  32 + <br> <label for=>Data Recebimento Email: </label> <input
  33 + type="date" id="dataRecebimentoEmail" name="dataRecebimentoEmail"
  34 + onload="pegarDataAtual()"><br>
  35 + <br> <label for=>Data Resposta Email: </label> <input
  36 + type="date" id="dataRespostaEmail" name="dataRespostaEmail"><br>
  37 + <br> <input type="submit" value="Salvar">
  38 + </fieldset>
  39 + </form>
  40 + <br>
  41 +
  42 + <table>
  43 + <tr>
  44 + <th>Orgão</th>
  45 + <th>Responsável</th>
  46 + <th>Cargo</th>
  47 + <th>Email</th>
  48 + <th>Recebimento Email</th>
  49 + <th>Resposta Email</th>
  50 + <th>Data Relatório Respondido</th>
  51 + <th>Relatório Respondido</th>
  52 + <th>Plano de Trabalho Enviado</th>
  53 +
  54 + </tr>
  55 +
  56 + <c:if test="${not empty lsquestionario}">
  57 +
  58 + <c:forEach items="${lsquestionario}" var="questionario">
  59 + <tr>
  60 + <td>${questionario.noOrgao}</td>
  61 + <td>${questionario.responsavel}</td>
  62 + <td>${questionario.cargoResponsavel}</td>
  63 + <td>${questionario.emailDestinoOrgao}</td>
  64 + <td>${questionario.dtRecebimentoEmail}</td>
  65 + <td>${questionario.dtRespostaEmail}</td>
  66 + <td>${questionario.dataRespostaQuestionario}</td>
  67 +
  68 + <c:if test="${not empty questionario.dataRespostaQuestionario}">
  69 + <td><input type="checkbox" checked="checked"> </td>
  70 + </c:if>
  71 + <c:if test="${empty questionario.dataRespostaQuestionario}">
  72 + <td><input type="checkbox"> </td>
  73 + </c:if>
  74 +
  75 +
  76 + <c:if test="${questionario.planoTrabalhoEnviado == true}">
  77 + <td><input type="checkbox" checked="checked"> </td>
  78 + </c:if>
  79 + <c:if test="${questionario.planoTrabalhoEnviado == false}">
  80 + <td><input type="checkbox"> </td>
  81 + </c:if>
  82 +
  83 + </tr>
  84 +
  85 + </c:forEach>
  86 + </c:if>
  87 +
  88 + </table>
62 89  
63 90 </body>
64 91  
... ...
src/br/com/controller/QuestionarioController.java
... ... @@ -26,6 +26,7 @@ import br.com.model.utilities.ManagerProperties;
26 26 import br.com.model.utilities.StringHelper;
27 27 import br.com.util.DateUtil;
28 28 import br.com.util.GeradorCodigoHash;
  29 +import br.com.util.Validacao;
29 30  
30 31 @Resource
31 32 public class QuestionarioController {
... ... @@ -46,7 +47,11 @@ public class QuestionarioController {
46 47  
47 48 @Path("/questionario")
48 49 public void questionario() {
49   -
  50 +
  51 + QuestionarioDao questionarioDao = new QuestionarioDao();
  52 + List<Questionario> lsquestionario = new ArrayList<Questionario>();
  53 + lsquestionario = questionarioDao.retornarListaQuestionario(path);
  54 + result.include("lsquestionario", lsquestionario);
50 55 }
51 56  
52 57 @Path("/confirmacaoHash")
... ... @@ -58,7 +63,7 @@ public class QuestionarioController {
58 63 @Path("/salvar-questionario")
59 64 public void questionarioSalvar(String autorizacao, String noOrgao, String nomeResponsavel,
60 65 String cargoResponsavel, String emailDestinoOrgao, String telefoneResponsavel, String dataRecebimentoEmail,
61   - String dataRespostaEmail, UploadedFile file) {
  66 + String dataRespostaEmail) {
62 67  
63 68  
64 69 AutorizacaoGeracaoHashDao autorizacaoGeracaoHashDao = new AutorizacaoGeracaoHashDao();
... ... @@ -109,13 +114,16 @@ public class QuestionarioController {
109 114 questionario.setCargoResponsavel(cargoResponsavel);
110 115 questionario.setTelefone(telefoneResponsavel);
111 116 questionario.setNoOrgao(noOrgao);
  117 +
  118 + Validacao validate = new Validacao();
  119 +
112 120 questionario.setDtRecebimentoEmail(dataRecebimentoEmail);
113 121 questionario.setDtRespostaEmail(dataRespostaEmail);
114 122 questionario.setIdAutorizacaoGeracaoHash(idAutorizacaoGeracaoHash);
115 123  
116 124 QuestionarioDao questionarioDao = new QuestionarioDao();
117 125 // List<String> corpoEmail = new ArrayList<String>();
118   - if (questionarioDao.salvarQuestionario(path, file.getFile(), questionario)) {
  126 + if (questionarioDao.salvarQuestionario(path, questionario)) {
119 127  
120 128 StringBuffer mensagem = new StringBuffer();
121 129  
... ...
src/br/com/dao/PlanoTrabalhoDao.java
... ... @@ -11,6 +11,46 @@ import br.com.model.entity.Questionario;
11 11  
12 12 public class PlanoTrabalhoDao {
13 13  
  14 +
  15 + public boolean verificaPlanoTrabalho(String path, Integer idQuestionario)
  16 + {
  17 +
  18 +
  19 + String sql = "";
  20 + Connection con = Conexao.conecta(path);
  21 + Statement estado;
  22 + ResultSet rset = null;
  23 + boolean existePlanoTrabalho = false;
  24 + try {
  25 +
  26 + estado = con.createStatement();
  27 +
  28 + estado.execute(sql.toString());
  29 + sql = "SELECT * FROM public.plano_trabalho where id_questionario =" + idQuestionario + ";" ;
  30 +
  31 + rset = estado.executeQuery(sql);
  32 +
  33 + while (rset.next()) {
  34 + existePlanoTrabalho = true;
  35 + }
  36 +
  37 + } catch (SQLException e) {
  38 + System.out.println("Deu erro!");
  39 + e.printStackTrace();
  40 +
  41 + } finally {
  42 + if (con != null) {
  43 + try {
  44 + con.close();
  45 + } catch (SQLException e) {
  46 + e.printStackTrace();
  47 + }
  48 + }
  49 + }
  50 +
  51 + return existePlanoTrabalho;
  52 + }
  53 +
14 54 public boolean salvarPlanoTrabalho(String path, InputStream file, Questionario questionario)
15 55 {
16 56  
... ...
src/br/com/dao/QuestionarioDao.java
... ... @@ -11,7 +11,9 @@ import java.sql.ResultSet;
11 11 import java.sql.SQLException;
12 12 import java.sql.Statement;
13 13 import java.text.ParseException;
  14 +import java.util.ArrayList;
14 15 import java.util.Date;
  16 +import java.util.List;
15 17  
16 18 import br.com.caelum.vraptor.interceptor.multipart.UploadedFile;
17 19 import br.com.model.entity.Questionario;
... ... @@ -20,8 +22,50 @@ import br.com.util.GeradorCodigoHash;
20 22  
21 23 public class QuestionarioDao {
22 24  
  25 +
  26 + public List<Questionario> retornarListaQuestionario(String path) {
  27 +
  28 + List<Questionario> listaQuestionario = new ArrayList<Questionario>();
  29 +
  30 + ResultSet rset = null;
  31 + Questionario questionario;
  32 + RespostaQuestionarioDao respostaQuestionarioDao = new RespostaQuestionarioDao();
  33 + PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao();
23 34  
24   - public ResultSet retornarQuestionario(String path, int idQuestionario) {
  35 + rset = retornarQuestionario(path);
  36 + try {
  37 + while (rset.next()) {
  38 + questionario = new Questionario();
  39 +
  40 + questionario.setIdQuestionario(rset.getInt("id_questionario"));
  41 + questionario.setDtInicioQuestionario(DateUtil.dataHoraFormatadaDiaMesAno(rset.getString("dt_inicio_questionario")));
  42 + questionario.setDtFimQuestionario(DateUtil.dataHoraFormatadaDiaMesAno(rset.getString("dt_fim_questionario")));
  43 + questionario.setNoOrgao(rset.getString("no_orgao"));
  44 + questionario.setHashAutenticacao(rset.getString("hash_autenticacao"));
  45 + questionario.setQuestionario_respondido(rset.getBoolean("questionario_respondido"));
  46 + questionario.setEmailDestinoOrgao(rset.getString("email_destino_orgao"));
  47 + questionario.setResponsavel(rset.getString("responsavel"));
  48 + questionario.setCargoResponsavel(rset.getString("cargo_responsavel"));
  49 + questionario.setTelefone(rset.getString("telefone"));
  50 + questionario.setIdAutorizacaoGeracaoHash(rset.getInt("idAutorizacao"));
  51 + questionario.setDtRecebimentoEmail(DateUtil.dataHoraFormatadaDiaMesAno(rset.getString("data_recebimento_email")));
  52 + questionario.setDtRespostaEmail(DateUtil.dataHoraFormatadaDiaMesAno(rset.getString("data_resposta_email")));
  53 +
  54 +
  55 + questionario.setDataRespostaQuestionario(respostaQuestionarioDao.verificaRespostaQuestionario(path, rset.getInt("id_questionario")));
  56 + questionario.setPlanoTrabalhoEnviado(planoTrabalhoDao.verificaPlanoTrabalho(path, rset.getInt("id_questionario")));
  57 + listaQuestionario.add(questionario);
  58 +
  59 + }
  60 + } catch (Exception e) {
  61 + e.printStackTrace();
  62 + }
  63 +
  64 + return listaQuestionario;
  65 + }
  66 +
  67 +
  68 + public ResultSet retornarQuestionario(String path) {
25 69  
26 70 StringBuffer sql = new StringBuffer();
27 71 Connection con = Conexao.conecta(path);
... ... @@ -32,7 +76,41 @@ public class QuestionarioDao {
32 76 estado = con.createStatement();
33 77  
34 78 estado.execute(sql.toString());
35   - sql.append(" SELECT id_questionario, dt_inicio_questionario, dt_fim_questionario, no_orgao, hash_autenticacao, questionario_respondido, responsavel, cargo_responsavel, telefone ");
  79 + sql.append(" SELECT * ");
  80 + sql.append(" FROM public.questionario order by no_orgao;");
  81 +
  82 + rset = estado.executeQuery(sql.toString());
  83 +
  84 + return rset;
  85 + } catch (SQLException e) {
  86 + e.printStackTrace();
  87 + return null;
  88 +
  89 + } finally {
  90 + if (con != null) {
  91 + try {
  92 + con.close();
  93 + } catch (SQLException e) {
  94 + e.printStackTrace();
  95 + }
  96 + }
  97 + }
  98 +
  99 + }
  100 +
  101 +
  102 + public ResultSet retornarQuestionarioPorId(String path, int idQuestionario) {
  103 +
  104 + StringBuffer sql = new StringBuffer();
  105 + Connection con = Conexao.conecta(path);
  106 + Statement estado;
  107 + ResultSet rset = null;
  108 +
  109 + try {
  110 + estado = con.createStatement();
  111 +
  112 + estado.execute(sql.toString());
  113 + sql.append(" SELECT * ");
36 114 sql.append(" FROM public.questionario where id_questionario = " + idQuestionario + ";");
37 115  
38 116 rset = estado.executeQuery(sql.toString());
... ... @@ -54,7 +132,9 @@ public class QuestionarioDao {
54 132  
55 133 }
56 134  
57   - public boolean salvarQuestionario(String path, InputStream file, Questionario questionario) {
  135 +
  136 +
  137 + public boolean salvarQuestionario(String path, Questionario questionario) {
58 138  
59 139 //File file = new File(caminhoArquivo);
60 140  
... ... @@ -85,9 +165,9 @@ public class QuestionarioDao {
85 165 sql.append(" INSERT INTO public.questionario( ");
86 166 sql.append(" dt_inicio_questionario, dt_fim_questionario, ");
87 167 sql.append(" no_orgao, hash_autenticacao, questionario_respondido, email_destino_orgao, ");
88   - sql.append(" arquivo_oficio_autorizacao, responsavel, cargo_responsavel, telefone, idAutorizacao_geracao_hash, ");
  168 + sql.append(" responsavel, cargo_responsavel, telefone, idAutorizacao, ");
89 169 sql.append(" data_recebimento_email, data_resposta_email) ");
90   - sql.append(" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);");
  170 + sql.append(" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);");
91 171  
92 172  
93 173 // cria statement para executar a query
... ... @@ -97,14 +177,13 @@ public class QuestionarioDao {
97 177 estado.setString(3, questionario.getNoOrgao());
98 178 estado.setString(4, questionario.getHashAutenticacao());
99 179 estado.setBoolean(5, false);
100   - estado.setString(6, questionario.getEmailDestinoOrgao());
101   - estado.setBinaryStream(7, file);
102   - estado.setString(8, questionario.getResponsavel());
103   - estado.setString(9, questionario.getCargoResponsavel());
104   - estado.setString(10, questionario.getTelefone());
105   - estado.setInt(11, questionario.getIdAutorizacaoGeracaoHash());
106   - estado.setDate(12, sqlDtRecebimentoEmail);
107   - estado.setDate(13, sqlDtRespostaEmail);
  180 + estado.setString(6, questionario.getEmailDestinoOrgao());
  181 + estado.setString(7, questionario.getResponsavel());
  182 + estado.setString(8, questionario.getCargoResponsavel());
  183 + estado.setString(9, questionario.getTelefone());
  184 + estado.setInt(10, questionario.getIdAutorizacaoGeracaoHash());
  185 + estado.setDate(11, sqlDtRecebimentoEmail);
  186 + estado.setDate(12, sqlDtRespostaEmail);
108 187  
109 188 resultado = estado.executeUpdate();
110 189  
... ...
src/br/com/dao/RespostaQuestionarioDao.java
... ... @@ -85,6 +85,45 @@ public class RespostaQuestionarioDao {
85 85  
86 86 }
87 87  
  88 + public String verificaRespostaQuestionario(String path, Integer idQuestionario)
  89 + {
  90 +
  91 +
  92 + String sql = "";
  93 + Connection con = Conexao.conecta(path);
  94 + Statement estado;
  95 + ResultSet rset = null;
  96 + String dataRespostaQuestionario = "";
  97 + try {
  98 +
  99 + estado = con.createStatement();
  100 +
  101 + estado.execute(sql.toString());
  102 + sql = "SELECT max(TO_CHAR(dt_resposta_questionario,'DD-MM-YYYY')) as dt_resposta_questionario FROM public.resposta_questionario where id_questionario = " + idQuestionario + ";" ;
  103 +
  104 + rset = estado.executeQuery(sql);
  105 +
  106 + while (rset.next()) {
  107 + dataRespostaQuestionario = rset.getString("dt_resposta_questionario");
  108 + }
  109 +
  110 + } catch (SQLException e) {
  111 + System.out.println("Deu erro!");
  112 + e.printStackTrace();
  113 +
  114 + } finally {
  115 + if (con != null) {
  116 + try {
  117 + con.close();
  118 + } catch (SQLException e) {
  119 + e.printStackTrace();
  120 + }
  121 + }
  122 + }
  123 +
  124 + return dataRespostaQuestionario;
  125 + }
  126 +
88 127 public List<RespostaQuestionario> retornarRespostaQuestionarioPorQuestionario(String path, int idQuestionario) {
89 128  
90 129 StringBuffer sql = new StringBuffer();
... ...
src/br/com/model/entity/Questionario.java
1 1 package br.com.model.entity;
2 2  
3 3 import java.sql.ResultSet;
  4 +import java.util.List;
4 5  
5 6 import br.com.caelum.vraptor.interceptor.multipart.UploadedFile;
6 7 import br.com.dao.QuestionarioDao;
... ... @@ -13,14 +14,15 @@ public class Questionario {
13 14 private String noOrgao;
14 15 private String hashAutenticacao;
15 16 private boolean questionario_respondido;
16   - private String emailDestinoOrgao;
17   - private UploadedFile arquivoOficioAutorizacao;
  17 + private String emailDestinoOrgao;
18 18 private String responsavel;
19 19 private String cargoResponsavel;
20 20 private String telefone;
21 21 private int idAutorizacaoGeracaoHash;
22 22 private String dtRecebimentoEmail;
23 23 private String dtRespostaEmail;
  24 + private String dataRespostaQuestionario;
  25 + private boolean planoTrabalhoEnviado;
24 26  
25 27  
26 28  
... ... @@ -32,19 +34,20 @@ public class Questionario {
32 34 ResultSet rset = null;
33 35 QuestionarioDao questionarioDao = new QuestionarioDao();
34 36  
35   - rset = questionarioDao.retornarQuestionario(path, idQuestionario);
  37 + rset = questionarioDao.retornarQuestionarioPorId(path, idQuestionario);
36 38 try {
37 39 while (rset.next()) {
38 40 this.idQuestionario = idQuestionario;
39 41 this.dtInicioQuestionario = rset.getString("dt_inicio_questionario");
40 42 this.dtFimQuestionario = rset.getString("dt_fim_questionario");
41 43 this.noOrgao = rset.getString("no_orgao");
42   - this.hashAutenticacao = rset.getString("hash_autenticacao");
  44 + this.hashAutenticacao = rset.getString("hash_autenticacao");
43 45 this.questionario_respondido = rset.getBoolean("questionario_respondido");
  46 + this.emailDestinoOrgao = rset.getString("email_destino_orgao");
44 47 this.responsavel = rset.getString("responsavel");
45 48 this.cargoResponsavel = rset.getString("cargo_responsavel");
46 49 this.telefone = rset.getString("telefone");
47   - this.idAutorizacaoGeracaoHash = rset.getInt("idAutorizacao_geracao_hash");
  50 + this.idAutorizacaoGeracaoHash = rset.getInt("idAutorizacao");
48 51 this.dtRecebimentoEmail = rset.getString("data_recebimento_email");
49 52 this.dtRespostaEmail = rset.getString("data_resposta_email");
50 53  
... ... @@ -54,6 +57,8 @@ public class Questionario {
54 57 }
55 58 }
56 59  
  60 +
  61 +
57 62 public int getIdQuestionario() {
58 63 return idQuestionario;
59 64 }
... ... @@ -110,14 +115,6 @@ public class Questionario {
110 115 this.emailDestinoOrgao = emailDestinoOrgao;
111 116 }
112 117  
113   - public UploadedFile getArquivoOficioAutorizacao() {
114   - return arquivoOficioAutorizacao;
115   - }
116   -
117   - public void setArquivoOficioAutorizacao(UploadedFile arquivoOficioAutorizacao) {
118   - this.arquivoOficioAutorizacao = arquivoOficioAutorizacao;
119   - }
120   -
121 118 public String getResponsavel() {
122 119 return responsavel;
123 120 }
... ... @@ -166,6 +163,22 @@ public class Questionario {
166 163 this.dtRespostaEmail = dtRespostaEmail;
167 164 }
168 165  
  166 + public String getDataRespostaQuestionario() {
  167 + return dataRespostaQuestionario;
  168 + }
  169 +
  170 + public void setDataRespostaQuestionario(String dataRespostaQuestionario) {
  171 + this.dataRespostaQuestionario = dataRespostaQuestionario;
  172 + }
  173 +
  174 + public boolean isPlanoTrabalhoEnviado() {
  175 + return planoTrabalhoEnviado;
  176 + }
  177 +
  178 + public void setPlanoTrabalhoEnviado(boolean planoTrabalhoEnviado) {
  179 + this.planoTrabalhoEnviado = planoTrabalhoEnviado;
  180 + }
  181 +
169 182  
170 183  
171 184 }
... ...