Commit 8a4d3bc855ad021b2da7e11c73089e21492b0f36

Authored by 96409975520
1 parent 2ed26458
Exists in master

Nova funcionalidade para registrar novos códigos de acesso.

WebContent/WEB-INF/jsp/questionario/questionario.jsp
@@ -41,8 +41,14 @@ table, th, td { @@ -41,8 +41,14 @@ table, th, td {
41 <option value="${item.idOrgao }">${item.nomeOrgao }</option> 41 <option value="${item.idOrgao }">${item.nomeOrgao }</option>
42 </c:forEach> 42 </c:forEach>
43 </select> 43 </select>
44 - <!-- <input type="text"  
45 - id="noOrgao" name="noOrgao" size="70">--><br> 44 + <br> <br>
  45 + <input type="checkbox"
  46 + id="orgaoAusente" name="orgaoAusente" value="true">
  47 + <label for="orgaoAusente">Órgão ausente na lista: </label><br>
  48 +
  49 + <br> <label for="noOrgao">Órgão: </label>
  50 + <input type="text"
  51 + id="noOrgao" name="noOrgao" size="70"><br>
46 <br> <label for="nomeResponsavel">Responsável: </label> <input 52 <br> <label for="nomeResponsavel">Responsável: </label> <input
47 type="text" id="nomeResponsavel" name="nomeResponsavel" size="65"><br> 53 type="text" id="nomeResponsavel" name="nomeResponsavel" size="65"><br>
48 <br> <label for="cargoResponsavel">Cargo: </label> <input 54 <br> <label for="cargoResponsavel">Cargo: </label> <input
src/br/com/controller/QuestionarioController.java
@@ -152,9 +152,9 @@ public class QuestionarioController { @@ -152,9 +152,9 @@ public class QuestionarioController {
152 152
153 @Path("/salvar-questionario") 153 @Path("/salvar-questionario")
154 public void questionarioSalvar(String autorizacao, String idOrgao, 154 public void questionarioSalvar(String autorizacao, String idOrgao,
155 - String nomeResponsavel, String cargoResponsavel,  
156 - String emailDestinoOrgao, String telefoneResponsavel,  
157 - String dataRecebimentoEmail) { 155 + String orgaoAusente, String noOrgao, String nomeResponsavel,
  156 + String cargoResponsavel, String emailDestinoOrgao,
  157 + String telefoneResponsavel, String dataRecebimentoEmail) {
158 158
159 AutorizacaoGeracaoHashDao autorizacaoGeracaoHashDao = new AutorizacaoGeracaoHashDao(); 159 AutorizacaoGeracaoHashDao autorizacaoGeracaoHashDao = new AutorizacaoGeracaoHashDao();
160 String mensagemEnvio = ""; 160 String mensagemEnvio = "";
@@ -200,135 +200,133 @@ public class QuestionarioController { @@ -200,135 +200,133 @@ public class QuestionarioController {
200 OrgaoDao orgaoDao = new OrgaoDao(); 200 OrgaoDao orgaoDao = new OrgaoDao();
201 Orgao orgao = new Orgao(); 201 Orgao orgao = new Orgao();
202 202
203 - orgao = orgaoDao  
204 - .retornarOrgaoPorId(path, Integer.parseInt(idOrgao)); 203 + if (orgaoAusente == null) {
  204 + orgao = orgaoDao.retornarOrgaoPorId(path,
  205 + Integer.parseInt(idOrgao));
  206 + }
205 207
206 - if (orgao != null) { 208 + questionario.setDtInicioQuestionario(dtInicioQuestionario);
  209 + questionario.setDtFimQuestionario(dtFimQuestionario);
  210 + questionario.setEmailDestinoOrgao(emailDestinoOrgao);
  211 + questionario.setHashAutenticacao(hashAutenticacao);
  212 + questionario.setResponsavel(nomeResponsavel);
  213 + questionario.setCargoResponsavel(cargoResponsavel);
  214 + questionario.setTelefone(telefoneResponsavel);
207 215
208 - questionario.setDtInicioQuestionario(dtInicioQuestionario);  
209 - questionario.setDtFimQuestionario(dtFimQuestionario);  
210 - questionario.setEmailDestinoOrgao(emailDestinoOrgao);  
211 - questionario.setHashAutenticacao(hashAutenticacao);  
212 - questionario.setResponsavel(nomeResponsavel);  
213 - questionario.setCargoResponsavel(cargoResponsavel);  
214 - questionario.setTelefone(telefoneResponsavel); 216 + if (orgaoAusente == null) {
215 questionario.setNoOrgao(orgao.getNomeOrgao()); 217 questionario.setNoOrgao(orgao.getNomeOrgao());
  218 + } else {
  219 + if (!noOrgao.equalsIgnoreCase("")
  220 + && !noOrgao.equalsIgnoreCase(null)) {
  221 + questionario.setNoOrgao(noOrgao);
  222 + } else {
  223 + mensagemEnvio = "Não foi possível salvar o questionário, verifique o Órgão!";
  224 + result.include("mensagemEnvio", mensagemEnvio);
  225 + this.validator.add(new ValidationMessage("", ""));
  226 + this.validator.onErrorUsePageOf(
  227 + QuestionarioController.class).confirmacaoHash();
  228 + }
  229 +
  230 + }
216 231
217 - Validacao validate = new Validacao(); 232 + Validacao validate = new Validacao();
218 233
219 - questionario.setDtRecebimentoEmail(dataRecebimentoEmail);  
220 - questionario  
221 - .setIdAutorizacaoGeracaoHash(idAutorizacaoGeracaoHash); 234 + questionario.setDtRecebimentoEmail(dataRecebimentoEmail);
  235 + questionario.setIdAutorizacaoGeracaoHash(idAutorizacaoGeracaoHash);
222 236
223 - QuestionarioDao questionarioDao = new QuestionarioDao();  
224 - // List<String> corpoEmail = new ArrayList<String>(); 237 + QuestionarioDao questionarioDao = new QuestionarioDao();
  238 + // List<String> corpoEmail = new ArrayList<String>();
225 239
226 - int idQuestionario = questionarioDao.salvarQuestionario(path, 240 + int idQuestionario = 0;
  241 +
  242 + if (orgaoAusente == null) {
  243 + idQuestionario = questionarioDao.salvarQuestionarioAtualizaOrgao(path,
  244 + questionario, orgao);
  245 + } else {
  246 + idQuestionario = questionarioDao.salvarQuestionarioOrgao(path,
227 questionario); 247 questionario);
  248 + }
228 249
229 -  
230 - if (idQuestionario > -1) {  
231 - orgao.setIdQuestionario(idQuestionario);  
232 -  
233 - if(orgaoDao.atualizarQuestionarioOrgao(path, orgao))  
234 - {  
235 -  
236 -  
237 -  
238 - StringBuffer mensagem = new StringBuffer();  
239 -  
240 - mensagem.append("Prezado(a),</br>");  
241 - mensagem.append("<p>Senhor(a) " + nomeResponsavel + ", "  
242 - + cargoResponsavel + ", do(a) "  
243 - + orgao.getNomeOrgao()  
244 - + ", conforme solicitado, o acesso ");  
245 - mensagem.append("ao FAD para o preenchimento de informações sobre a atual situação da ");  
246 - mensagem.append("acessibilidade dos ambientes digitais do seu órgão ou entidade deverá ser ");  
247 - mensagem.append("realizado pelo endereço " + "<a href=\""  
248 - + prop.getProperty("enderecoFad") + "\">"  
249 - + prop.getProperty("enderecoFad") + "</a>"  
250 - + " utilizando o código de ");  
251 - mensagem.append("acesso: " + hashAutenticacao + " .</p>");  
252 -  
253 - mensagem.append("<p>A guarda do código de acesso, bem como as informações prestadas são de sua ");  
254 - mensagem.append("inteira responsabilidade.</p>");  
255 -  
256 - mensagem.append("<p>O FAD poderá ser preenchido no período "  
257 - + DateUtil.dataHoraFormatadaDiaMesAno(prop  
258 - .getProperty("dataInicio"))  
259 - + " a 02/01/2017, data limite ");  
260 - mensagem.append("para o envio do relatório circunstanciado (formulário de acessibilidade digital e plano de ");  
261 - mensagem.append("trabalho) à Procuradoria Federal dos Direitos do Cidadão do Ministério Público Federal e ");  
262 - mensagem.append("publicado no sítio ou portal eletrônico do órgão ou entidade.​</p>");  
263 -  
264 - mensagem.append("<p>Maiores informações, dúvidas e sugestões devem ser encaminhadas pelo canal ");  
265 - mensagem.append("<a href=\""  
266 - + prop.getProperty("enderecoContato") + "\">"  
267 - + prop.getProperty("enderecoContato") + "</a>.</p>");  
268 -  
269 - mensagem.append("<p>Respeitosamente,</p>");  
270 -  
271 - mensagem.append("<p>Ministério do Planejamento, Desenvolvimento e Gestão ");  
272 - mensagem.append("Secretaria de Tecnologia da Informação ");  
273 - mensagem.append("Departamento de Governo Digital ");  
274 - mensagem.append("Coordenação-Geral de Padrões de Governo Digital ");  
275 - mensagem.append(prop.getProperty("emailContato") + "</br>");  
276 -  
277 - String[] telefoneContato = prop.getProperty(  
278 - "telefoneContato").split(",");  
279 -  
280 - for (String numeroTelefone : telefoneContato) {  
281 - mensagem.append(numeroTelefone + "</br>");  
282 - }  
283 - mensagem.append("</p>");  
284 -  
285 - Contato contato = new Contato();  
286 - contato.setEmail(emailDestinoOrgao);  
287 - contato.setAssunto("Formulário Eletrônico de Acessibilidade Digital (FAD) – Concessão de Acesso");  
288 - contato.setMensagem(mensagem.toString());  
289 - contato.setNome(nomeResponsavel);  
290 -  
291 - if (enviarHashPorEmail(contato)) {  
292 - if (questionarioDao.atualizarDataRespostaQuestionario(  
293 - path, idQuestionario)) {  
294 - mensagemEnvio = "Questionário salvo e enviado por email com suceso!";  
295 - } else {  
296 - mensagemEnvio = "Questionário salvo e enviado por email, mas, não foi possível atualizar a data de resposta!";  
297 - } 250 + if (idQuestionario > -1) {
298 251
  252 +
  253 + StringBuffer mensagem = new StringBuffer();
  254 +
  255 + mensagem.append("Prezado(a),</br>");
  256 + mensagem.append("<p>Senhor(a) " + nomeResponsavel + ", "
  257 + + cargoResponsavel + ", do(a) " + orgao.getNomeOrgao()
  258 + + ", conforme solicitado, o acesso ");
  259 + mensagem.append("ao FAD para o preenchimento de informações sobre a atual situação da ");
  260 + mensagem.append("acessibilidade dos ambientes digitais do seu órgão ou entidade deverá ser ");
  261 + mensagem.append("realizado pelo endereço " + "<a href=\""
  262 + + prop.getProperty("enderecoFad") + "\">"
  263 + + prop.getProperty("enderecoFad") + "</a>"
  264 + + " utilizando o código de ");
  265 + mensagem.append("acesso: " + hashAutenticacao + " .</p>");
  266 +
  267 + mensagem.append("<p>A guarda do código de acesso, bem como as informações prestadas são de sua ");
  268 + mensagem.append("inteira responsabilidade.</p>");
  269 +
  270 + mensagem.append("<p>O FAD poderá ser preenchido no período "
  271 + + DateUtil.dataHoraFormatadaDiaMesAno(prop
  272 + .getProperty("dataInicio"))
  273 + + " a 02/01/2017, data limite ");
  274 + mensagem.append("para o envio do relatório circunstanciado (formulário de acessibilidade digital e plano de ");
  275 + mensagem.append("trabalho) à Procuradoria Federal dos Direitos do Cidadão do Ministério Público Federal e ");
  276 + mensagem.append("publicado no sítio ou portal eletrônico do órgão ou entidade.​</p>");
  277 +
  278 + mensagem.append("<p>Maiores informações, dúvidas e sugestões devem ser encaminhadas pelo canal ");
  279 + mensagem.append("<a href=\""
  280 + + prop.getProperty("enderecoContato") + "\">"
  281 + + prop.getProperty("enderecoContato") + "</a>.</p>");
  282 +
  283 + mensagem.append("<p>Respeitosamente,</p>");
  284 +
  285 + mensagem.append("<p>Ministério do Planejamento, Desenvolvimento e Gestão ");
  286 + mensagem.append("Secretaria de Tecnologia da Informação ");
  287 + mensagem.append("Departamento de Governo Digital ");
  288 + mensagem.append("Coordenação-Geral de Padrões de Governo Digital ");
  289 + mensagem.append(prop.getProperty("emailContato") + "</br>");
  290 +
  291 + String[] telefoneContato = prop.getProperty("telefoneContato")
  292 + .split(",");
  293 +
  294 + for (String numeroTelefone : telefoneContato) {
  295 + mensagem.append(numeroTelefone + "</br>");
  296 + }
  297 + mensagem.append("</p>");
  298 +
  299 + Contato contato = new Contato();
  300 + contato.setEmail(emailDestinoOrgao);
  301 + contato.setAssunto("Formulário Eletrônico de Acessibilidade Digital (FAD) – Concessão de Acesso");
  302 + contato.setMensagem(mensagem.toString());
  303 + contato.setNome(nomeResponsavel);
  304 +
  305 + if (enviarHashPorEmail(contato)) {
  306 + if (questionarioDao.atualizarDataRespostaQuestionario(path,
  307 + idQuestionario)) {
  308 + mensagemEnvio = "Questionário salvo e enviado por email com suceso!";
299 } else { 309 } else {
300 - mensagemEnvio = "Questionário salvo, mas não foi possível enviar email!"; 310 + mensagemEnvio = "Questionário salvo e enviado por email, mas, não foi possível atualizar a data de resposta!";
301 } 311 }
302 - result.include("mensagemEnvio", mensagemEnvio);  
303 - this.validator.add(new ValidationMessage("", ""));  
304 - this.validator.onErrorUsePageOf(  
305 - QuestionarioController.class).confirmacaoHash(); 312 +
306 } else { 313 } else {
307 - mensagemEnvio = "Não foi possível salvar o questionário!";  
308 - result.include("mensagemEnvio", mensagemEnvio);  
309 - this.validator.add(new ValidationMessage("", ""));  
310 - this.validator.onErrorUsePageOf(  
311 - QuestionarioController.class).confirmacaoHash();  
312 - }  
313 - }  
314 - else  
315 - {  
316 - mensagemEnvio = "Não foi possível atualizar o id do questionário na tabela dos órgãos!";  
317 - result.include("mensagemEnvio", mensagemEnvio);  
318 - this.validator.add(new ValidationMessage("", ""));  
319 - this.validator.onErrorUsePageOf(  
320 - QuestionarioController.class).confirmacaoHash(); 314 + mensagemEnvio = "Questionário salvo, mas não foi possível enviar email!";
321 } 315 }
  316 + result.include("mensagemEnvio", mensagemEnvio);
  317 + this.validator.add(new ValidationMessage("", ""));
  318 + this.validator.onErrorUsePageOf(QuestionarioController.class)
  319 + .confirmacaoHash();
  320 +
322 } else { 321 } else {
323 - mensagemEnvio = "É preciso autorização para gerar código Hash!"; 322 + mensagemEnvio = "Não foi possível atualizar o id do questionário na tabela dos órgãos!";
324 result.include("mensagemEnvio", mensagemEnvio); 323 result.include("mensagemEnvio", mensagemEnvio);
325 this.validator.add(new ValidationMessage("", "")); 324 this.validator.add(new ValidationMessage("", ""));
326 this.validator.onErrorUsePageOf(QuestionarioController.class) 325 this.validator.onErrorUsePageOf(QuestionarioController.class)
327 .confirmacaoHash(); 326 .confirmacaoHash();
328 } 327 }
329 - }  
330 - else  
331 - { 328 +
  329 + } else {
332 mensagemEnvio = "Não foi possível identificar o Órgao!"; 330 mensagemEnvio = "Não foi possível identificar o Órgao!";
333 result.include("mensagemEnvio", mensagemEnvio); 331 result.include("mensagemEnvio", mensagemEnvio);
334 this.validator.add(new ValidationMessage("", "")); 332 this.validator.add(new ValidationMessage("", ""));
src/br/com/dao/QuestionarioDao.java
@@ -16,549 +16,683 @@ import java.util.Date; @@ -16,549 +16,683 @@ import java.util.Date;
16 import java.util.List; 16 import java.util.List;
17 17
18 import br.com.caelum.vraptor.interceptor.multipart.UploadedFile; 18 import br.com.caelum.vraptor.interceptor.multipart.UploadedFile;
  19 +import br.com.model.entity.Orgao;
19 import br.com.model.entity.PlanoTrabalho; 20 import br.com.model.entity.PlanoTrabalho;
20 import br.com.model.entity.Questionario; 21 import br.com.model.entity.Questionario;
  22 +import br.com.model.entity.RespostaQuestionario;
21 import br.com.util.DateUtil; 23 import br.com.util.DateUtil;
22 import br.com.util.GeradorCodigoHash; 24 import br.com.util.GeradorCodigoHash;
23 25
24 public class QuestionarioDao { 26 public class QuestionarioDao {
25 27
26 -  
27 - public List<Questionario> retornarListaQuestionario(String path) {  
28 -  
29 - List<Questionario> listaQuestionario = new ArrayList<Questionario>();  
30 -  
31 - ResultSet rset = null;  
32 - Questionario questionario;  
33 - RespostaQuestionarioDao respostaQuestionarioDao;  
34 - PlanoTrabalhoDao planoTrabalhoDao;  
35 -  
36 - rset = retornarQuestionario(path);  
37 - String dataRespostaQuestionario = "";  
38 - try {  
39 - while (rset.next()) {  
40 - dataRespostaQuestionario = "";  
41 -  
42 - questionario = new Questionario();  
43 - respostaQuestionarioDao = new RespostaQuestionarioDao();  
44 - planoTrabalhoDao = new PlanoTrabalhoDao();  
45 -  
46 - questionario.setIdQuestionario(rset.getInt("id_questionario"));  
47 - questionario.setDtInicioQuestionario(DateUtil.dataHoraFormatadaDiaMesAno(rset.getString("dt_inicio_questionario")));  
48 - questionario.setDtFimQuestionario(DateUtil.dataHoraFormatadaDiaMesAno(rset.getString("dt_fim_questionario")));  
49 - questionario.setNoOrgao(rset.getString("no_orgao"));  
50 - questionario.setHashAutenticacao(rset.getString("hash_autenticacao"));  
51 - questionario.setQuestionario_respondido(rset.getBoolean("questionario_respondido"));  
52 - questionario.setEmailDestinoOrgao(rset.getString("email_destino_orgao"));  
53 - questionario.setResponsavel(rset.getString("responsavel"));  
54 - questionario.setCargoResponsavel(rset.getString("cargo_responsavel"));  
55 - questionario.setTelefone(rset.getString("telefone"));  
56 - questionario.setIdAutorizacaoGeracaoHash(rset.getInt("idAutorizacao"));  
57 - questionario.setDtRecebimentoEmail(DateUtil.dataHoraFormatadaDiaMesAno(rset.getString("data_recebimento_email")));  
58 - questionario.setFlagEnviado(rset.getBoolean("flag_enviado"));  
59 - dataRespostaQuestionario = rset.getString("data_resposta_email");  
60 -  
61 - if(dataRespostaQuestionario != null)  
62 - {  
63 - questionario.setDtRespostaEmail(DateUtil.dataHoraFormatadaDiaMesAnoComParametro(dataRespostaQuestionario));  
64 - }  
65 - else  
66 - {  
67 - questionario.setDtRespostaEmail(dataRespostaQuestionario);  
68 - }  
69 -  
70 - PlanoTrabalho planoTrabalho = new PlanoTrabalho();  
71 -  
72 - planoTrabalho = planoTrabalhoDao.verificaPlanoTrabalho(path, rset.getInt("id_questionario"));  
73 -  
74 -  
75 - questionario.setDataRespostaQuestionario(respostaQuestionarioDao.verificaRespostaQuestionario(path, rset.getInt("id_questionario")));  
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 -  
98 - listaQuestionario.add(questionario);  
99 -  
100 - }  
101 - } catch (Exception e) {  
102 - e.printStackTrace();  
103 - }  
104 -  
105 - return listaQuestionario;  
106 - }  
107 -  
108 - public List<Questionario> retornarListaQuestionarioComFiltro(String path, String statusRelatorio, String statusPlanoTrabalho, String relatorioAnexado, String relatorioEnviado, String nomeOrgao) {  
109 -  
110 - List<Questionario> listaQuestionario = new ArrayList<Questionario>();  
111 -  
112 - ResultSet rset = null;  
113 - Questionario questionario;  
114 - RespostaQuestionarioDao respostaQuestionarioDao;  
115 - PlanoTrabalhoDao planoTrabalhoDao;  
116 -  
117 - rset = retornarQuestionarioComFiltro(path, statusRelatorio, statusPlanoTrabalho, relatorioEnviado, nomeOrgao);  
118 - String dataRespostaQuestionario = "";  
119 - try {  
120 - while (rset.next()) {  
121 - dataRespostaQuestionario = "";  
122 -  
123 - questionario = new Questionario();  
124 - respostaQuestionarioDao = new RespostaQuestionarioDao();  
125 - planoTrabalhoDao = new PlanoTrabalhoDao();  
126 -  
127 - questionario.setIdQuestionario(rset.getInt("id_questionario"));  
128 - questionario.setDtInicioQuestionario(DateUtil.dataHoraFormatadaDiaMesAno(rset.getString("dt_inicio_questionario")));  
129 - questionario.setDtFimQuestionario(DateUtil.dataHoraFormatadaDiaMesAno(rset.getString("dt_fim_questionario")));  
130 - questionario.setNoOrgao(rset.getString("no_orgao"));  
131 - questionario.setHashAutenticacao(rset.getString("hash_autenticacao"));  
132 - questionario.setQuestionario_respondido(rset.getBoolean("questionario_respondido"));  
133 - questionario.setEmailDestinoOrgao(rset.getString("email_destino_orgao"));  
134 - questionario.setResponsavel(rset.getString("responsavel"));  
135 - questionario.setCargoResponsavel(rset.getString("cargo_responsavel"));  
136 - questionario.setTelefone(rset.getString("telefone"));  
137 - questionario.setIdAutorizacaoGeracaoHash(rset.getInt("idAutorizacao"));  
138 - questionario.setDtRecebimentoEmail(DateUtil.dataHoraFormatadaDiaMesAno(rset.getString("data_recebimento_email")));  
139 - questionario.setFlagEnviado(rset.getBoolean("flag_enviado"));  
140 -  
141 - dataRespostaQuestionario = rset.getString("data_resposta_email");  
142 -  
143 - if(dataRespostaQuestionario != null)  
144 - {  
145 - questionario.setDtRespostaEmail(DateUtil.dataHoraFormatadaDiaMesAnoComParametro(dataRespostaQuestionario));  
146 - }  
147 - else  
148 - {  
149 - questionario.setDtRespostaEmail(dataRespostaQuestionario);  
150 - }  
151 -  
152 -  
153 -  
154 - questionario.setDataRespostaQuestionario(respostaQuestionarioDao.verificaRespostaQuestionario(path, rset.getInt("id_questionario")));  
155 -  
156 -  
157 - PlanoTrabalho planoTrabalho = new PlanoTrabalho();  
158 -  
159 - planoTrabalho = planoTrabalhoDao.verificaPlanoTrabalho(path, rset.getInt("id_questionario"));  
160 -  
161 - //verifica se foi anexado plano de trabalho  
162 - if(planoTrabalho != null && planoTrabalho.getArquivoPlanoTrabalho() != null)  
163 - {  
164 - questionario.setPlanoTrabalhoAnexado(true);  
165 - }  
166 - else  
167 - {  
168 - questionario.setPlanoTrabalhoAnexado(false);  
169 - }  
170 - //verifica se foi anexado o Relatório  
171 - if(planoTrabalho != null && planoTrabalho.getArquivoRelatorioAss() != null)  
172 - {  
173 - questionario.setRelatorioAnexado(true);  
174 - }  
175 - else  
176 - {  
177 - questionario.setRelatorioAnexado(false);  
178 - }  
179 -  
180 -  
181 - if(statusPlanoTrabalho.equalsIgnoreCase("todos") && relatorioAnexado.equalsIgnoreCase("todos"))  
182 - {  
183 - listaQuestionario.add(questionario);  
184 - }  
185 - else  
186 - {  
187 - if(statusPlanoTrabalho.equalsIgnoreCase("sim") && questionario.isPlanoTrabalhoAnexado())  
188 - {  
189 - if(relatorioAnexado.equalsIgnoreCase("sim") && questionario.isRelatorioAnexado())  
190 - {  
191 - listaQuestionario.add(questionario);  
192 - }  
193 - else if(relatorioAnexado.equalsIgnoreCase("todos"))  
194 - {  
195 - listaQuestionario.add(questionario);  
196 - }  
197 - else if(relatorioAnexado.equalsIgnoreCase("nao") && !questionario.isRelatorioAnexado())  
198 - {  
199 - listaQuestionario.add(questionario);  
200 - }  
201 - }  
202 - else if(statusPlanoTrabalho.equalsIgnoreCase("nao") && !questionario.isPlanoTrabalhoAnexado())  
203 - {  
204 - if(relatorioAnexado.equalsIgnoreCase("sim") && questionario.isRelatorioAnexado())  
205 - {  
206 - listaQuestionario.add(questionario);  
207 - } else if(relatorioAnexado.equalsIgnoreCase("todos"))  
208 - {  
209 - listaQuestionario.add(questionario);  
210 - }  
211 - else if(relatorioAnexado.equalsIgnoreCase("nao") && !questionario.isRelatorioAnexado())  
212 - {  
213 - listaQuestionario.add(questionario);  
214 - }  
215 - }else if(statusPlanoTrabalho.equalsIgnoreCase("todos"))  
216 - {  
217 - if(relatorioAnexado.equalsIgnoreCase("sim") && questionario.isRelatorioAnexado())  
218 - {  
219 - listaQuestionario.add(questionario);  
220 - }  
221 - else if(relatorioAnexado.equalsIgnoreCase("nao") && !questionario.isRelatorioAnexado())  
222 - {  
223 - listaQuestionario.add(questionario);  
224 - }  
225 - }  
226 - }  
227 -  
228 - }  
229 - } catch (Exception e) {  
230 - e.printStackTrace();  
231 - }  
232 -  
233 - return listaQuestionario;  
234 - }  
235 -  
236 - public ResultSet retornarQuestionario(String path) {  
237 -  
238 - StringBuffer sql = new StringBuffer();  
239 - Connection con = Conexao.conecta(path);  
240 - Statement estado;  
241 - ResultSet rset = null;  
242 -  
243 - try {  
244 - estado = con.createStatement();  
245 -  
246 - estado.execute(sql.toString());  
247 - sql.append(" SELECT * ");  
248 - sql.append(" FROM public.questionario order by no_orgao;");  
249 -  
250 - rset = estado.executeQuery(sql.toString());  
251 -  
252 - return rset;  
253 - } catch (SQLException e) {  
254 - e.printStackTrace();  
255 - return null;  
256 -  
257 - } finally {  
258 - if (con != null) {  
259 - try {  
260 - con.close();  
261 - } catch (SQLException e) {  
262 - e.printStackTrace();  
263 - }  
264 - }  
265 - }  
266 -  
267 - }  
268 -  
269 - public ResultSet retornarQuestionarioEnviados(String path) {  
270 -  
271 - StringBuffer sql = new StringBuffer();  
272 - Connection con = Conexao.conecta(path);  
273 - Statement estado;  
274 - ResultSet rset = null;  
275 -  
276 - try {  
277 - estado = con.createStatement();  
278 -  
279 - estado.execute(sql.toString());  
280 - sql.append(" select id_questionario from questionario where flag_enviado = true order by id_questionario; ");  
281 -  
282 - rset = estado.executeQuery(sql.toString());  
283 -  
284 - return rset;  
285 - } catch (SQLException e) {  
286 - e.printStackTrace();  
287 - return null;  
288 -  
289 - } finally {  
290 - if (con != null) {  
291 - try {  
292 - con.close();  
293 - } catch (SQLException e) {  
294 - e.printStackTrace();  
295 - }  
296 - }  
297 - }  
298 -  
299 - }  
300 -  
301 - public ResultSet retornarQuestionarioComFiltro(String path, String statusRelatorio, String statusPlanoTrabalho, String relatorioEnviado, String nomeOrgao) {  
302 -  
303 - StringBuffer sql = new StringBuffer();  
304 - Connection con = Conexao.conecta(path);  
305 - Statement estado;  
306 - ResultSet rset = null;  
307 - String sqlConvertida = "";  
308 - try {  
309 - estado = con.createStatement();  
310 -  
311 - estado.execute(sql.toString());  
312 - sql.append(" SELECT * ");  
313 - sql.append(" FROM public.questionario");  
314 - sql.append(" Where ");  
315 -  
316 - if(nomeOrgao != null)  
317 - {  
318 - sql.append(" and upper (no_orgao) like upper('%"+ nomeOrgao +"%') ");  
319 - }  
320 -  
321 - if(statusRelatorio.equalsIgnoreCase("sim"))  
322 - {  
323 - sql.append(" and questionario_respondido = true ");  
324 -  
325 - }else if(statusRelatorio.equalsIgnoreCase("nao"))  
326 - {  
327 - sql.append(" and questionario_respondido = false " );  
328 - }  
329 -  
330 - if(relatorioEnviado.equalsIgnoreCase("sim"))  
331 - {  
332 - sql.append(" and flag_enviado = true ");  
333 -  
334 - }else if(relatorioEnviado.equalsIgnoreCase("nao"))  
335 - {  
336 - sql.append(" and flag_enviado = false " );  
337 - }  
338 -  
339 - sql.append(" order by no_orgao;");  
340 -  
341 - sqlConvertida = sql.toString().replace("Where and" , "Where ").replace("Where order by no_orgao", " order by no_orgao");  
342 - rset = estado.executeQuery(sqlConvertida);  
343 -  
344 - return rset;  
345 -  
346 - } catch (SQLException e) {  
347 - e.printStackTrace();  
348 - return null;  
349 -  
350 - } finally {  
351 - if (con != null) {  
352 - try {  
353 - con.close();  
354 - } catch (SQLException e) {  
355 - e.printStackTrace();  
356 - }  
357 - }  
358 - }  
359 -  
360 - }  
361 -  
362 - public boolean atualizarDataRespostaQuestionario(String path, int idQuestionario)  
363 - {  
364 -  
365 - StringBuffer sql = new StringBuffer();  
366 - Connection con = Conexao.conecta(path);  
367 - PreparedStatement estado;  
368 - int resultado = 0;  
369 - boolean salvoComSucesso = false;  
370 -  
371 -  
372 -  
373 - try {  
374 -  
375 - Date dtRespostaEmail = new Date();  
376 - java.sql.Date sqlDtRespostaEmail = new java.sql.Date(dtRespostaEmail.getTime());  
377 -  
378 -  
379 - sql = new StringBuffer();  
380 - sql.append(" UPDATE public.questionario SET data_resposta_email=(SELECT NOW()) WHERE id_questionario = ?; ");  
381 -  
382 - estado = con.prepareStatement(sql.toString());  
383 -  
384 - estado.setInt(1, idQuestionario);  
385 -  
386 - resultado = estado.executeUpdate();  
387 -  
388 - if (resultado == 0) {  
389 - salvoComSucesso = false;  
390 - } else {  
391 -  
392 - salvoComSucesso = true;  
393 - }  
394 -  
395 - } catch (SQLException e) {  
396 -  
397 - e.printStackTrace();  
398 - }  
399 -  
400 - return salvoComSucesso;  
401 - }  
402 -  
403 - public boolean atualizarFlagEnviado(String path, int idQuestionario)  
404 - {  
405 -  
406 - StringBuffer sql = new StringBuffer();  
407 - Connection con = Conexao.conecta(path);  
408 - PreparedStatement estado;  
409 - int resultado = 0;  
410 - boolean salvoComSucesso = false;  
411 -  
412 -  
413 -  
414 - try {  
415 -  
416 - sql = new StringBuffer();  
417 - sql.append(" UPDATE public.questionario SET flag_enviado = true WHERE id_questionario = ?; ");  
418 -  
419 - estado = con.prepareStatement(sql.toString());  
420 -  
421 - estado.setInt(1, idQuestionario);  
422 -  
423 - resultado = estado.executeUpdate();  
424 -  
425 - if (resultado == 0) {  
426 - salvoComSucesso = false;  
427 - } else {  
428 -  
429 - salvoComSucesso = true;  
430 - }  
431 -  
432 - } catch (SQLException e) {  
433 -  
434 - e.printStackTrace();  
435 - }  
436 -  
437 - return salvoComSucesso;  
438 - }  
439 -  
440 - public ResultSet retornarQuestionarioPorId(String path, int idQuestionario) {  
441 -  
442 - StringBuffer sql = new StringBuffer();  
443 - Connection con = Conexao.conecta(path);  
444 - Statement estado;  
445 - ResultSet rset = null;  
446 -  
447 - try {  
448 - estado = con.createStatement();  
449 -  
450 - estado.execute(sql.toString());  
451 - sql.append(" SELECT * ");  
452 - sql.append(" FROM public.questionario where id_questionario = " + idQuestionario + ";");  
453 -  
454 - rset = estado.executeQuery(sql.toString());  
455 -  
456 - return rset;  
457 - } catch (SQLException e) {  
458 - e.printStackTrace();  
459 - return null;  
460 -  
461 - } finally {  
462 - if (con != null) {  
463 - try {  
464 - con.close();  
465 - } catch (SQLException e) {  
466 - e.printStackTrace();  
467 - }  
468 - }  
469 - }  
470 -  
471 - }  
472 -  
473 -  
474 -  
475 - public int salvarQuestionario(String path, Questionario questionario) {  
476 -  
477 - //File file = new File(caminhoArquivo);  
478 -  
479 - Connection con = null;  
480 - con = Conexao.conecta(path);  
481 - int resultado = -1;  
482 - StringBuffer sql;  
483 -  
484 - //boolean salvoComSucesso = false;  
485 -  
486 - try {  
487 -  
488 -  
489 - // FileInputStream fileIn = new FileInputStream(file);  
490 - Date dtInicioQuestionario = DateUtil.dataFormatada(questionario.getDtInicioQuestionario());  
491 - Date dtFimQuestionario = DateUtil.dataFormatada(questionario.getDtFimQuestionario());  
492 - Date dtRecebimentoEmail = DateUtil.dataFormatada(questionario.getDtRecebimentoEmail());  
493 - //Date dtRespostaEmail = new Date();  
494 -  
495 - java.sql.Date sqlDtInicioQuestionario = new java.sql.Date(dtInicioQuestionario.getTime());  
496 - java.sql.Date sqlDtFimQuestionario = new java.sql.Date(dtFimQuestionario.getTime());  
497 - java.sql.Date sqlDtRecebimentoEmail = new java.sql.Date(dtRecebimentoEmail.getTime());  
498 - //java.sql.Date sqlDtRespostaEmail = new java.sql.Date(dtRespostaEmail.getTime());  
499 -  
500 - if (con != null) {  
501 -  
502 - sql = new StringBuffer();  
503 - sql.append(" INSERT INTO public.questionario( ");  
504 - sql.append(" dt_inicio_questionario, dt_fim_questionario, ");  
505 - sql.append(" no_orgao, hash_autenticacao, questionario_respondido, email_destino_orgao, ");  
506 - sql.append(" responsavel, cargo_responsavel, telefone, idAutorizacao, ");  
507 - sql.append(" data_recebimento_email,flag_enviado) ");  
508 - sql.append(" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?);");  
509 -  
510 -  
511 - // cria statement para executar a query  
512 - PreparedStatement estado = con.prepareStatement(sql.toString(), Statement.RETURN_GENERATED_KEYS);  
513 -  
514 - estado.setDate(1, sqlDtInicioQuestionario);  
515 - estado.setDate(2, sqlDtFimQuestionario);  
516 - estado.setString(3, questionario.getNoOrgao());  
517 - estado.setString(4, questionario.getHashAutenticacao());  
518 - estado.setBoolean(5, false);  
519 - estado.setString(6, questionario.getEmailDestinoOrgao());  
520 - estado.setString(7, questionario.getResponsavel());  
521 - estado.setString(8, questionario.getCargoResponsavel());  
522 - estado.setString(9, questionario.getTelefone());  
523 - estado.setInt(10, questionario.getIdAutorizacaoGeracaoHash());  
524 - estado.setDate(11, sqlDtRecebimentoEmail);  
525 - estado.setBoolean(12, false);  
526 - //estado.setDate(12, sqlDtRespostaEmail);  
527 -  
528 - //resultado = estado.executeUpdate();  
529 -  
530 - estado.executeUpdate();  
531 - ResultSet rs = estado.getGeneratedKeys();  
532 -  
533 - if (rs.next()) {  
534 - resultado = rs.getInt("id_questionario");  
535 - }  
536 -  
537 - /* if (resultado == 0) {  
538 - salvoComSucesso = false;  
539 - } else {  
540 -  
541 - salvoComSucesso = true;  
542 - }*/  
543 - }  
544 -  
545 - return resultado;  
546 -  
547 - } catch (SQLException e) {  
548 - e.printStackTrace();  
549 - return resultado;  
550 - } catch (ParseException e) {  
551 - e.printStackTrace();  
552 - return resultado;  
553 - } finally {  
554 - if (con != null) {  
555 - try {  
556 - con.close();  
557 - } catch (SQLException e) {  
558 - e.printStackTrace();  
559 - }  
560 - }  
561 - }  
562 - }  
563 - 28 + public List<Questionario> retornarListaQuestionario(String path) {
  29 +
  30 + List<Questionario> listaQuestionario = new ArrayList<Questionario>();
  31 +
  32 + ResultSet rset = null;
  33 + Questionario questionario;
  34 + RespostaQuestionarioDao respostaQuestionarioDao;
  35 + PlanoTrabalhoDao planoTrabalhoDao;
  36 +
  37 + rset = retornarQuestionario(path);
  38 + String dataRespostaQuestionario = "";
  39 + try {
  40 + while (rset.next()) {
  41 + dataRespostaQuestionario = "";
  42 +
  43 + questionario = new Questionario();
  44 + respostaQuestionarioDao = new RespostaQuestionarioDao();
  45 + planoTrabalhoDao = new PlanoTrabalhoDao();
  46 +
  47 + questionario.setIdQuestionario(rset.getInt("id_questionario"));
  48 + questionario.setDtInicioQuestionario(DateUtil
  49 + .dataHoraFormatadaDiaMesAno(rset
  50 + .getString("dt_inicio_questionario")));
  51 + questionario.setDtFimQuestionario(DateUtil
  52 + .dataHoraFormatadaDiaMesAno(rset
  53 + .getString("dt_fim_questionario")));
  54 + questionario.setNoOrgao(rset.getString("no_orgao"));
  55 + questionario.setHashAutenticacao(rset
  56 + .getString("hash_autenticacao"));
  57 + questionario.setQuestionario_respondido(rset
  58 + .getBoolean("questionario_respondido"));
  59 + questionario.setEmailDestinoOrgao(rset
  60 + .getString("email_destino_orgao"));
  61 + questionario.setResponsavel(rset.getString("responsavel"));
  62 + questionario.setCargoResponsavel(rset
  63 + .getString("cargo_responsavel"));
  64 + questionario.setTelefone(rset.getString("telefone"));
  65 + questionario.setIdAutorizacaoGeracaoHash(rset
  66 + .getInt("idAutorizacao"));
  67 + questionario.setDtRecebimentoEmail(DateUtil
  68 + .dataHoraFormatadaDiaMesAno(rset
  69 + .getString("data_recebimento_email")));
  70 + questionario.setFlagEnviado(rset.getBoolean("flag_enviado"));
  71 + dataRespostaQuestionario = rset
  72 + .getString("data_resposta_email");
  73 +
  74 + if (dataRespostaQuestionario != null) {
  75 + questionario
  76 + .setDtRespostaEmail(DateUtil
  77 + .dataHoraFormatadaDiaMesAnoComParametro(dataRespostaQuestionario));
  78 + } else {
  79 + questionario.setDtRespostaEmail(dataRespostaQuestionario);
  80 + }
  81 +
  82 + PlanoTrabalho planoTrabalho = new PlanoTrabalho();
  83 +
  84 + planoTrabalho = planoTrabalhoDao.verificaPlanoTrabalho(path,
  85 + rset.getInt("id_questionario"));
  86 +
  87 + questionario
  88 + .setDataRespostaQuestionario(respostaQuestionarioDao
  89 + .verificaRespostaQuestionario(path,
  90 + rset.getInt("id_questionario")));
  91 +
  92 + // verifica se foi anexado plano de trabalho
  93 + if (planoTrabalho != null
  94 + && planoTrabalho.getArquivoPlanoTrabalho() != null) {
  95 + questionario.setPlanoTrabalhoAnexado(true);
  96 + } else {
  97 + questionario.setPlanoTrabalhoAnexado(false);
  98 + }
  99 +
  100 + // verifica se anexado Relatório assinado
  101 + if (planoTrabalho != null
  102 + && planoTrabalho.getArquivoRelatorioAss() != null) {
  103 + questionario.setRelatorioAnexado(true);
  104 + } else {
  105 + questionario.setRelatorioAnexado(false);
  106 + }
  107 +
  108 + listaQuestionario.add(questionario);
  109 +
  110 + }
  111 + } catch (Exception e) {
  112 + e.printStackTrace();
  113 + }
  114 +
  115 + return listaQuestionario;
  116 + }
  117 +
  118 + public List<Questionario> retornarListaQuestionarioComFiltro(String path,
  119 + String statusRelatorio, String statusPlanoTrabalho,
  120 + String relatorioAnexado, String relatorioEnviado, String nomeOrgao) {
  121 +
  122 + List<Questionario> listaQuestionario = new ArrayList<Questionario>();
  123 +
  124 + ResultSet rset = null;
  125 + Questionario questionario;
  126 + RespostaQuestionarioDao respostaQuestionarioDao;
  127 + PlanoTrabalhoDao planoTrabalhoDao;
  128 +
  129 + rset = retornarQuestionarioComFiltro(path, statusRelatorio,
  130 + statusPlanoTrabalho, relatorioEnviado, nomeOrgao);
  131 + String dataRespostaQuestionario = "";
  132 + try {
  133 + while (rset.next()) {
  134 + dataRespostaQuestionario = "";
  135 +
  136 + questionario = new Questionario();
  137 + respostaQuestionarioDao = new RespostaQuestionarioDao();
  138 + planoTrabalhoDao = new PlanoTrabalhoDao();
  139 +
  140 + questionario.setIdQuestionario(rset.getInt("id_questionario"));
  141 + questionario.setDtInicioQuestionario(DateUtil
  142 + .dataHoraFormatadaDiaMesAno(rset
  143 + .getString("dt_inicio_questionario")));
  144 + questionario.setDtFimQuestionario(DateUtil
  145 + .dataHoraFormatadaDiaMesAno(rset
  146 + .getString("dt_fim_questionario")));
  147 + questionario.setNoOrgao(rset.getString("no_orgao"));
  148 + questionario.setHashAutenticacao(rset
  149 + .getString("hash_autenticacao"));
  150 + questionario.setQuestionario_respondido(rset
  151 + .getBoolean("questionario_respondido"));
  152 + questionario.setEmailDestinoOrgao(rset
  153 + .getString("email_destino_orgao"));
  154 + questionario.setResponsavel(rset.getString("responsavel"));
  155 + questionario.setCargoResponsavel(rset
  156 + .getString("cargo_responsavel"));
  157 + questionario.setTelefone(rset.getString("telefone"));
  158 + questionario.setIdAutorizacaoGeracaoHash(rset
  159 + .getInt("idAutorizacao"));
  160 + questionario.setDtRecebimentoEmail(DateUtil
  161 + .dataHoraFormatadaDiaMesAno(rset
  162 + .getString("data_recebimento_email")));
  163 + questionario.setFlagEnviado(rset.getBoolean("flag_enviado"));
  164 +
  165 + dataRespostaQuestionario = rset
  166 + .getString("data_resposta_email");
  167 +
  168 + if (dataRespostaQuestionario != null) {
  169 + questionario
  170 + .setDtRespostaEmail(DateUtil
  171 + .dataHoraFormatadaDiaMesAnoComParametro(dataRespostaQuestionario));
  172 + } else {
  173 + questionario.setDtRespostaEmail(dataRespostaQuestionario);
  174 + }
  175 +
  176 + questionario
  177 + .setDataRespostaQuestionario(respostaQuestionarioDao
  178 + .verificaRespostaQuestionario(path,
  179 + rset.getInt("id_questionario")));
  180 +
  181 + PlanoTrabalho planoTrabalho = new PlanoTrabalho();
  182 +
  183 + planoTrabalho = planoTrabalhoDao.verificaPlanoTrabalho(path,
  184 + rset.getInt("id_questionario"));
  185 +
  186 + // verifica se foi anexado plano de trabalho
  187 + if (planoTrabalho != null
  188 + && planoTrabalho.getArquivoPlanoTrabalho() != null) {
  189 + questionario.setPlanoTrabalhoAnexado(true);
  190 + } else {
  191 + questionario.setPlanoTrabalhoAnexado(false);
  192 + }
  193 + // verifica se foi anexado o Relatório
  194 + if (planoTrabalho != null
  195 + && planoTrabalho.getArquivoRelatorioAss() != null) {
  196 + questionario.setRelatorioAnexado(true);
  197 + } else {
  198 + questionario.setRelatorioAnexado(false);
  199 + }
  200 +
  201 + if (statusPlanoTrabalho.equalsIgnoreCase("todos")
  202 + && relatorioAnexado.equalsIgnoreCase("todos")) {
  203 + listaQuestionario.add(questionario);
  204 + } else {
  205 + if (statusPlanoTrabalho.equalsIgnoreCase("sim")
  206 + && questionario.isPlanoTrabalhoAnexado()) {
  207 + if (relatorioAnexado.equalsIgnoreCase("sim")
  208 + && questionario.isRelatorioAnexado()) {
  209 + listaQuestionario.add(questionario);
  210 + } else if (relatorioAnexado.equalsIgnoreCase("todos")) {
  211 + listaQuestionario.add(questionario);
  212 + } else if (relatorioAnexado.equalsIgnoreCase("nao")
  213 + && !questionario.isRelatorioAnexado()) {
  214 + listaQuestionario.add(questionario);
  215 + }
  216 + } else if (statusPlanoTrabalho.equalsIgnoreCase("nao")
  217 + && !questionario.isPlanoTrabalhoAnexado()) {
  218 + if (relatorioAnexado.equalsIgnoreCase("sim")
  219 + && questionario.isRelatorioAnexado()) {
  220 + listaQuestionario.add(questionario);
  221 + } else if (relatorioAnexado.equalsIgnoreCase("todos")) {
  222 + listaQuestionario.add(questionario);
  223 + } else if (relatorioAnexado.equalsIgnoreCase("nao")
  224 + && !questionario.isRelatorioAnexado()) {
  225 + listaQuestionario.add(questionario);
  226 + }
  227 + } else if (statusPlanoTrabalho.equalsIgnoreCase("todos")) {
  228 + if (relatorioAnexado.equalsIgnoreCase("sim")
  229 + && questionario.isRelatorioAnexado()) {
  230 + listaQuestionario.add(questionario);
  231 + } else if (relatorioAnexado.equalsIgnoreCase("nao")
  232 + && !questionario.isRelatorioAnexado()) {
  233 + listaQuestionario.add(questionario);
  234 + }
  235 + }
  236 + }
  237 +
  238 + }
  239 + } catch (Exception e) {
  240 + e.printStackTrace();
  241 + }
  242 +
  243 + return listaQuestionario;
  244 + }
  245 +
  246 + public ResultSet retornarQuestionario(String path) {
  247 +
  248 + StringBuffer sql = new StringBuffer();
  249 + Connection con = Conexao.conecta(path);
  250 + Statement estado;
  251 + ResultSet rset = null;
  252 +
  253 + try {
  254 + estado = con.createStatement();
  255 +
  256 + estado.execute(sql.toString());
  257 + sql.append(" SELECT * ");
  258 + sql.append(" FROM public.questionario order by no_orgao;");
  259 +
  260 + rset = estado.executeQuery(sql.toString());
  261 +
  262 + return rset;
  263 + } catch (SQLException e) {
  264 + e.printStackTrace();
  265 + return null;
  266 +
  267 + } finally {
  268 + if (con != null) {
  269 + try {
  270 + con.close();
  271 + } catch (SQLException e) {
  272 + e.printStackTrace();
  273 + }
  274 + }
  275 + }
  276 +
  277 + }
  278 +
  279 + public ResultSet retornarQuestionarioEnviados(String path) {
  280 +
  281 + StringBuffer sql = new StringBuffer();
  282 + Connection con = Conexao.conecta(path);
  283 + Statement estado;
  284 + ResultSet rset = null;
  285 +
  286 + try {
  287 + estado = con.createStatement();
  288 +
  289 + estado.execute(sql.toString());
  290 + sql.append(" select id_questionario from questionario where flag_enviado = true order by id_questionario; ");
  291 +
  292 + rset = estado.executeQuery(sql.toString());
  293 +
  294 + return rset;
  295 + } catch (SQLException e) {
  296 + e.printStackTrace();
  297 + return null;
  298 +
  299 + } finally {
  300 + if (con != null) {
  301 + try {
  302 + con.close();
  303 + } catch (SQLException e) {
  304 + e.printStackTrace();
  305 + }
  306 + }
  307 + }
  308 +
  309 + }
  310 +
  311 + public ResultSet retornarQuestionarioComFiltro(String path,
  312 + String statusRelatorio, String statusPlanoTrabalho,
  313 + String relatorioEnviado, String nomeOrgao) {
  314 +
  315 + StringBuffer sql = new StringBuffer();
  316 + Connection con = Conexao.conecta(path);
  317 + Statement estado;
  318 + ResultSet rset = null;
  319 + String sqlConvertida = "";
  320 + try {
  321 + estado = con.createStatement();
  322 +
  323 + estado.execute(sql.toString());
  324 + sql.append(" SELECT * ");
  325 + sql.append(" FROM public.questionario");
  326 + sql.append(" Where ");
  327 +
  328 + if (nomeOrgao != null) {
  329 + sql.append(" and upper (no_orgao) like upper('%" + nomeOrgao
  330 + + "%') ");
  331 + }
  332 +
  333 + if (statusRelatorio.equalsIgnoreCase("sim")) {
  334 + sql.append(" and questionario_respondido = true ");
  335 +
  336 + } else if (statusRelatorio.equalsIgnoreCase("nao")) {
  337 + sql.append(" and questionario_respondido = false ");
  338 + }
  339 +
  340 + if (relatorioEnviado.equalsIgnoreCase("sim")) {
  341 + sql.append(" and flag_enviado = true ");
  342 +
  343 + } else if (relatorioEnviado.equalsIgnoreCase("nao")) {
  344 + sql.append(" and flag_enviado = false ");
  345 + }
  346 +
  347 + sql.append(" order by no_orgao;");
  348 +
  349 + sqlConvertida = sql.toString().replace("Where and", "Where ")
  350 + .replace("Where order by no_orgao", " order by no_orgao");
  351 + rset = estado.executeQuery(sqlConvertida);
  352 +
  353 + return rset;
  354 +
  355 + } catch (SQLException e) {
  356 + e.printStackTrace();
  357 + return null;
  358 +
  359 + } finally {
  360 + if (con != null) {
  361 + try {
  362 + con.close();
  363 + } catch (SQLException e) {
  364 + e.printStackTrace();
  365 + }
  366 + }
  367 + }
  368 +
  369 + }
  370 +
  371 + public boolean atualizarDataRespostaQuestionario(String path,
  372 + int idQuestionario) {
  373 +
  374 + StringBuffer sql = new StringBuffer();
  375 + Connection con = Conexao.conecta(path);
  376 + PreparedStatement estado;
  377 + int resultado = 0;
  378 + boolean salvoComSucesso = false;
  379 +
  380 + try {
  381 +
  382 + Date dtRespostaEmail = new Date();
  383 + java.sql.Date sqlDtRespostaEmail = new java.sql.Date(
  384 + dtRespostaEmail.getTime());
  385 +
  386 + sql = new StringBuffer();
  387 + sql.append(" UPDATE public.questionario SET data_resposta_email=(SELECT NOW()) WHERE id_questionario = ?; ");
  388 +
  389 + estado = con.prepareStatement(sql.toString());
  390 +
  391 + estado.setInt(1, idQuestionario);
  392 +
  393 + resultado = estado.executeUpdate();
  394 +
  395 + if (resultado == 0) {
  396 + salvoComSucesso = false;
  397 + } else {
  398 +
  399 + salvoComSucesso = true;
  400 + }
  401 +
  402 + } catch (SQLException e) {
  403 +
  404 + e.printStackTrace();
  405 + }
  406 +
  407 + return salvoComSucesso;
  408 + }
  409 +
  410 + public boolean atualizarFlagEnviado(String path, int idQuestionario) {
  411 +
  412 + StringBuffer sql = new StringBuffer();
  413 + Connection con = Conexao.conecta(path);
  414 + PreparedStatement estado;
  415 + int resultado = 0;
  416 + boolean salvoComSucesso = false;
  417 +
  418 + try {
  419 +
  420 + sql = new StringBuffer();
  421 + sql.append(" UPDATE public.questionario SET flag_enviado = true WHERE id_questionario = ?; ");
  422 +
  423 + estado = con.prepareStatement(sql.toString());
  424 +
  425 + estado.setInt(1, idQuestionario);
  426 +
  427 + resultado = estado.executeUpdate();
  428 +
  429 + if (resultado == 0) {
  430 + salvoComSucesso = false;
  431 + } else {
  432 +
  433 + salvoComSucesso = true;
  434 + }
  435 +
  436 + } catch (SQLException e) {
  437 +
  438 + e.printStackTrace();
  439 + }
  440 +
  441 + return salvoComSucesso;
  442 + }
  443 +
  444 + public ResultSet retornarQuestionarioPorId(String path, int idQuestionario) {
  445 +
  446 + StringBuffer sql = new StringBuffer();
  447 + Connection con = Conexao.conecta(path);
  448 + Statement estado;
  449 + ResultSet rset = null;
  450 +
  451 + try {
  452 + estado = con.createStatement();
  453 +
  454 + estado.execute(sql.toString());
  455 + sql.append(" SELECT * ");
  456 + sql.append(" FROM public.questionario where id_questionario = "
  457 + + idQuestionario + ";");
  458 +
  459 + rset = estado.executeQuery(sql.toString());
  460 +
  461 + return rset;
  462 + } catch (SQLException e) {
  463 + e.printStackTrace();
  464 + return null;
  465 +
  466 + } finally {
  467 + if (con != null) {
  468 + try {
  469 + con.close();
  470 + } catch (SQLException e) {
  471 + e.printStackTrace();
  472 + }
  473 + }
  474 + }
  475 +
  476 + }
  477 +
  478 + public int salvarQuestionarioAtualizaOrgao(String path, Questionario questionario, Orgao orgao) {
  479 +
  480 + Connection con = null;
  481 + int resultado = 0;
  482 + int idQuestionario = 0;
  483 + String resultadoAmostragem = null;
  484 + StringBuffer sql;
  485 + StringBuffer sqlNovo;
  486 + Statement estado;
  487 + boolean salvoComSucesso = false;
  488 + String dataHoraRespostaQuestionario = DateUtil.dataHoraAtual();
  489 + try {
  490 +
  491 + // FileInputStream fileIn = new FileInputStream(file);
  492 + Date dtInicioQuestionario = DateUtil.dataFormatada(questionario
  493 + .getDtInicioQuestionario());
  494 + Date dtFimQuestionario = DateUtil.dataFormatada(questionario
  495 + .getDtFimQuestionario());
  496 + Date dtRecebimentoEmail = DateUtil.dataFormatada(questionario
  497 + .getDtRecebimentoEmail());
  498 + // Date dtRespostaEmail = new Date();
  499 +
  500 + java.sql.Date sqlDtInicioQuestionario = new java.sql.Date(
  501 + dtInicioQuestionario.getTime());
  502 + java.sql.Date sqlDtFimQuestionario = new java.sql.Date(
  503 + dtFimQuestionario.getTime());
  504 + java.sql.Date sqlDtRecebimentoEmail = new java.sql.Date(
  505 + dtRecebimentoEmail.getTime());
  506 + // java.sql.Date sqlDtRespostaEmail = new
  507 + // java.sql.Date(dtRespostaEmail.getTime());
  508 +
  509 + con = Conexao.conecta(path);
  510 + if (con != null) {
  511 + con.setAutoCommit(false);
  512 + // cria statement para executar a query
  513 + estado = con.createStatement();
  514 +
  515 + sql = new StringBuffer();
  516 +
  517 + sql.append(" INSERT INTO public.questionario( ");
  518 + sql.append(" dt_inicio_questionario, dt_fim_questionario, ");
  519 + sql.append(" no_orgao, hash_autenticacao, questionario_respondido, email_destino_orgao, ");
  520 + sql.append(" responsavel, cargo_responsavel, telefone, idAutorizacao, ");
  521 + sql.append(" data_recebimento_email,flag_enviado) ");
  522 + sql.append(" VALUES ('" + sqlDtInicioQuestionario + "', '"
  523 + + sqlDtFimQuestionario + "', '"
  524 + + questionario.getNoOrgao() + "', ");
  525 + sql.append(" '" + questionario.getHashAutenticacao()
  526 + + "', false, '" + questionario.getEmailDestinoOrgao()
  527 + + "', ");
  528 + sql.append(" '" + questionario.getResponsavel() + "', '"
  529 + + questionario.getCargoResponsavel() + "', ");
  530 + sql.append(" '" + questionario.getTelefone() + "', "
  531 + + questionario.getIdAutorizacaoGeracaoHash() + ", ");
  532 + sql.append(" '" + sqlDtRecebimentoEmail + "'," + false + ");");
  533 +
  534 + // cria statement para executar a query
  535 + // PreparedStatement estado =
  536 + // con.prepareStatement(sql.toString(),
  537 + // Statement.RETURN_GENERATED_KEYS);
  538 +
  539 + estado.executeUpdate(sql.toString(),
  540 + Statement.RETURN_GENERATED_KEYS);
  541 +
  542 + ResultSet rs = estado.getGeneratedKeys();
  543 +
  544 + while (rs.next()) {
  545 + idQuestionario = rs.getInt("id_questionario");
  546 + }
  547 +
  548 + if (idQuestionario == 0) {
  549 + con.rollback();
  550 + } else {
  551 +
  552 + sqlNovo = new StringBuffer();
  553 + sqlNovo.append(" UPDATE public.orgao SET id_questionario = "+ idQuestionario +" WHERE id_orgao = "+ orgao.getIdOrgao() +";");
  554 +
  555 + resultado = estado.executeUpdate(sqlNovo.toString());
  556 +
  557 + if (resultado == 0) {
  558 + con.rollback();
  559 + }else
  560 + {
  561 +
  562 + con.commit();
  563 + }
  564 + }
  565 +
  566 + }
  567 +
  568 + }
  569 +
  570 + catch (SQLException | ParseException e) {
  571 + System.err.print(e.getMessage());
  572 + } finally {
  573 + if (con != null) {
  574 + try {
  575 + con.close();
  576 + } catch (SQLException e) {
  577 + e.printStackTrace();
  578 + }
  579 + }
  580 + }
  581 +
  582 + return idQuestionario;
  583 + }
  584 +
  585 +
  586 +
  587 + public int salvarQuestionarioOrgao(String path, Questionario questionario) {
  588 +
  589 + Connection con = null;
  590 + int resultado = 0;
  591 + int idQuestionario = 0;
  592 + String resultadoAmostragem = null;
  593 + StringBuffer sql;
  594 + StringBuffer sqlNovo;
  595 + Statement estado;
  596 + boolean salvoComSucesso = false;
  597 + String dataHoraRespostaQuestionario = DateUtil.dataHoraAtual();
  598 + try {
  599 +
  600 + // FileInputStream fileIn = new FileInputStream(file);
  601 + Date dtInicioQuestionario = DateUtil.dataFormatada(questionario
  602 + .getDtInicioQuestionario());
  603 + Date dtFimQuestionario = DateUtil.dataFormatada(questionario
  604 + .getDtFimQuestionario());
  605 + Date dtRecebimentoEmail = DateUtil.dataFormatada(questionario
  606 + .getDtRecebimentoEmail());
  607 + // Date dtRespostaEmail = new Date();
  608 +
  609 + java.sql.Date sqlDtInicioQuestionario = new java.sql.Date(
  610 + dtInicioQuestionario.getTime());
  611 + java.sql.Date sqlDtFimQuestionario = new java.sql.Date(
  612 + dtFimQuestionario.getTime());
  613 + java.sql.Date sqlDtRecebimentoEmail = new java.sql.Date(
  614 + dtRecebimentoEmail.getTime());
  615 + // java.sql.Date sqlDtRespostaEmail = new
  616 + // java.sql.Date(dtRespostaEmail.getTime());
  617 +
  618 + con = Conexao.conecta(path);
  619 + if (con != null) {
  620 + con.setAutoCommit(false);
  621 + // cria statement para executar a query
  622 + estado = con.createStatement();
  623 +
  624 + sql = new StringBuffer();
  625 +
  626 + sql.append(" INSERT INTO public.questionario( ");
  627 + sql.append(" dt_inicio_questionario, dt_fim_questionario, ");
  628 + sql.append(" no_orgao, hash_autenticacao, questionario_respondido, email_destino_orgao, ");
  629 + sql.append(" responsavel, cargo_responsavel, telefone, idAutorizacao, ");
  630 + sql.append(" data_recebimento_email,flag_enviado) ");
  631 + sql.append(" VALUES ('" + sqlDtInicioQuestionario + "', '"
  632 + + sqlDtFimQuestionario + "', '"
  633 + + questionario.getNoOrgao() + "', ");
  634 + sql.append(" '" + questionario.getHashAutenticacao()
  635 + + "', false, '" + questionario.getEmailDestinoOrgao()
  636 + + "', ");
  637 + sql.append(" '" + questionario.getResponsavel() + "', '"
  638 + + questionario.getCargoResponsavel() + "', ");
  639 + sql.append(" '" + questionario.getTelefone() + "', "
  640 + + questionario.getIdAutorizacaoGeracaoHash() + ", ");
  641 + sql.append(" '" + sqlDtRecebimentoEmail + "'," + false + ");");
  642 +
  643 + // cria statement para executar a query
  644 + // PreparedStatement estado =
  645 + // con.prepareStatement(sql.toString(),
  646 + // Statement.RETURN_GENERATED_KEYS);
  647 +
  648 + estado.executeUpdate(sql.toString(),
  649 + Statement.RETURN_GENERATED_KEYS);
  650 +
  651 + ResultSet rs = estado.getGeneratedKeys();
  652 +
  653 + while (rs.next()) {
  654 + idQuestionario = rs.getInt("id_questionario");
  655 + }
  656 +
  657 + if (idQuestionario == 0) {
  658 + con.rollback();
  659 + } else {
  660 +
  661 + sqlNovo = new StringBuffer();
  662 + sqlNovo.append(" INSERT INTO orgao (no_orgao, id_questionario) values ('"
  663 + + questionario.getNoOrgao()
  664 + + "',"
  665 + + idQuestionario
  666 + + ")");
  667 +
  668 + resultado = estado.executeUpdate(sqlNovo.toString());
  669 +
  670 + if (resultado == 0) {
  671 + con.rollback();
  672 + }else
  673 + {
  674 +
  675 + con.commit();
  676 + }
  677 + }
  678 +
  679 + }
  680 +
  681 + }
  682 +
  683 + catch (SQLException | ParseException e) {
  684 + System.err.print(e.getMessage());
  685 + } finally {
  686 + if (con != null) {
  687 + try {
  688 + con.close();
  689 + } catch (SQLException e) {
  690 + e.printStackTrace();
  691 + }
  692 + }
  693 + }
  694 +
  695 + return idQuestionario;
  696 + }
  697 +
564 } 698 }