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 41 <option value="${item.idOrgao }">${item.nomeOrgao }</option>
42 42 </c:forEach>
43 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 52 <br> <label for="nomeResponsavel">Responsável: </label> <input
47 53 type="text" id="nomeResponsavel" name="nomeResponsavel" size="65"><br>
48 54 <br> <label for="cargoResponsavel">Cargo: </label> <input
... ...
src/br/com/controller/QuestionarioController.java
... ... @@ -152,9 +152,9 @@ public class QuestionarioController {
152 152  
153 153 @Path("/salvar-questionario")
154 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 159 AutorizacaoGeracaoHashDao autorizacaoGeracaoHashDao = new AutorizacaoGeracaoHashDao();
160 160 String mensagemEnvio = "";
... ... @@ -200,135 +200,133 @@ public class QuestionarioController {
200 200 OrgaoDao orgaoDao = new OrgaoDao();
201 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 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 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 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 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 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 323 result.include("mensagemEnvio", mensagemEnvio);
325 324 this.validator.add(new ValidationMessage("", ""));
326 325 this.validator.onErrorUsePageOf(QuestionarioController.class)
327 326 .confirmacaoHash();
328 327 }
329   - }
330   - else
331   - {
  328 +
  329 + } else {
332 330 mensagemEnvio = "Não foi possível identificar o Órgao!";
333 331 result.include("mensagemEnvio", mensagemEnvio);
334 332 this.validator.add(new ValidationMessage("", ""));
... ...
src/br/com/dao/QuestionarioDao.java
... ... @@ -16,549 +16,683 @@ 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.Orgao;
19 20 import br.com.model.entity.PlanoTrabalho;
20 21 import br.com.model.entity.Questionario;
  22 +import br.com.model.entity.RespostaQuestionario;
21 23 import br.com.util.DateUtil;
22 24 import br.com.util.GeradorCodigoHash;
23 25  
24 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 }
... ...