From 8a4d3bc855ad021b2da7e11c73089e21492b0f36 Mon Sep 17 00:00:00 2001 From: 96409975520 <96409975520@10.209.112.105> Date: Tue, 17 Jan 2017 15:09:11 -0200 Subject: [PATCH] Nova funcionalidade para registrar novos códigos de acesso. --- WebContent/WEB-INF/jsp/questionario/questionario.jsp | 10 ++++++++-- src/br/com/controller/QuestionarioController.java | 222 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------- src/br/com/dao/QuestionarioDao.java | 1210 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 3 files changed, 790 insertions(+), 652 deletions(-) diff --git a/WebContent/WEB-INF/jsp/questionario/questionario.jsp b/WebContent/WEB-INF/jsp/questionario/questionario.jsp index d91d919..70075cd 100644 --- a/WebContent/WEB-INF/jsp/questionario/questionario.jsp +++ b/WebContent/WEB-INF/jsp/questionario/questionario.jsp @@ -41,8 +41,14 @@ table, th, td { -
+

+ +
+ +
+



corpoEmail = new ArrayList(); + QuestionarioDao questionarioDao = new QuestionarioDao(); + // List corpoEmail = new ArrayList(); - int idQuestionario = questionarioDao.salvarQuestionario(path, + int idQuestionario = 0; + + if (orgaoAusente == null) { + idQuestionario = questionarioDao.salvarQuestionarioAtualizaOrgao(path, + questionario, orgao); + } else { + idQuestionario = questionarioDao.salvarQuestionarioOrgao(path, questionario); + } - - if (idQuestionario > -1) { - orgao.setIdQuestionario(idQuestionario); - - if(orgaoDao.atualizarQuestionarioOrgao(path, orgao)) - { - - - - StringBuffer mensagem = new StringBuffer(); - - mensagem.append("Prezado(a),
"); - mensagem.append("

Senhor(a) " + nomeResponsavel + ", " - + cargoResponsavel + ", do(a) " - + orgao.getNomeOrgao() - + ", conforme solicitado, o acesso "); - mensagem.append("ao FAD para o preenchimento de informações sobre a atual situação da "); - mensagem.append("acessibilidade dos ambientes digitais do seu órgão ou entidade deverá ser "); - mensagem.append("realizado pelo endereço " + "" - + prop.getProperty("enderecoFad") + "" - + " utilizando o código de "); - mensagem.append("acesso: " + hashAutenticacao + " .

"); - - mensagem.append("

A guarda do código de acesso, bem como as informações prestadas são de sua "); - mensagem.append("inteira responsabilidade.

"); - - mensagem.append("

O FAD poderá ser preenchido no período " - + DateUtil.dataHoraFormatadaDiaMesAno(prop - .getProperty("dataInicio")) - + " a 02/01/2017, data limite "); - mensagem.append("para o envio do relatório circunstanciado (formulário de acessibilidade digital e plano de "); - mensagem.append("trabalho) à Procuradoria Federal dos Direitos do Cidadão do Ministério Público Federal e "); - mensagem.append("publicado no sítio ou portal eletrônico do órgão ou entidade.​

"); - - mensagem.append("

Maiores informações, dúvidas e sugestões devem ser encaminhadas pelo canal "); - mensagem.append("" - + prop.getProperty("enderecoContato") + ".

"); - - mensagem.append("

Respeitosamente,

"); - - mensagem.append("

Ministério do Planejamento, Desenvolvimento e Gestão "); - mensagem.append("Secretaria de Tecnologia da Informação "); - mensagem.append("Departamento de Governo Digital "); - mensagem.append("Coordenação-Geral de Padrões de Governo Digital "); - mensagem.append(prop.getProperty("emailContato") + "
"); - - String[] telefoneContato = prop.getProperty( - "telefoneContato").split(","); - - for (String numeroTelefone : telefoneContato) { - mensagem.append(numeroTelefone + "
"); - } - mensagem.append("

"); - - Contato contato = new Contato(); - contato.setEmail(emailDestinoOrgao); - contato.setAssunto("Formulário Eletrônico de Acessibilidade Digital (FAD) – Concessão de Acesso"); - contato.setMensagem(mensagem.toString()); - contato.setNome(nomeResponsavel); - - if (enviarHashPorEmail(contato)) { - if (questionarioDao.atualizarDataRespostaQuestionario( - path, idQuestionario)) { - mensagemEnvio = "Questionário salvo e enviado por email com suceso!"; - } else { - mensagemEnvio = "Questionário salvo e enviado por email, mas, não foi possível atualizar a data de resposta!"; - } + if (idQuestionario > -1) { + + StringBuffer mensagem = new StringBuffer(); + + mensagem.append("Prezado(a),
"); + mensagem.append("

Senhor(a) " + nomeResponsavel + ", " + + cargoResponsavel + ", do(a) " + orgao.getNomeOrgao() + + ", conforme solicitado, o acesso "); + mensagem.append("ao FAD para o preenchimento de informações sobre a atual situação da "); + mensagem.append("acessibilidade dos ambientes digitais do seu órgão ou entidade deverá ser "); + mensagem.append("realizado pelo endereço " + "" + + prop.getProperty("enderecoFad") + "" + + " utilizando o código de "); + mensagem.append("acesso: " + hashAutenticacao + " .

"); + + mensagem.append("

A guarda do código de acesso, bem como as informações prestadas são de sua "); + mensagem.append("inteira responsabilidade.

"); + + mensagem.append("

O FAD poderá ser preenchido no período " + + DateUtil.dataHoraFormatadaDiaMesAno(prop + .getProperty("dataInicio")) + + " a 02/01/2017, data limite "); + mensagem.append("para o envio do relatório circunstanciado (formulário de acessibilidade digital e plano de "); + mensagem.append("trabalho) à Procuradoria Federal dos Direitos do Cidadão do Ministério Público Federal e "); + mensagem.append("publicado no sítio ou portal eletrônico do órgão ou entidade.​

"); + + mensagem.append("

Maiores informações, dúvidas e sugestões devem ser encaminhadas pelo canal "); + mensagem.append("" + + prop.getProperty("enderecoContato") + ".

"); + + mensagem.append("

Respeitosamente,

"); + + mensagem.append("

Ministério do Planejamento, Desenvolvimento e Gestão "); + mensagem.append("Secretaria de Tecnologia da Informação "); + mensagem.append("Departamento de Governo Digital "); + mensagem.append("Coordenação-Geral de Padrões de Governo Digital "); + mensagem.append(prop.getProperty("emailContato") + "
"); + + String[] telefoneContato = prop.getProperty("telefoneContato") + .split(","); + + for (String numeroTelefone : telefoneContato) { + mensagem.append(numeroTelefone + "
"); + } + mensagem.append("

"); + + Contato contato = new Contato(); + contato.setEmail(emailDestinoOrgao); + contato.setAssunto("Formulário Eletrônico de Acessibilidade Digital (FAD) – Concessão de Acesso"); + contato.setMensagem(mensagem.toString()); + contato.setNome(nomeResponsavel); + + if (enviarHashPorEmail(contato)) { + if (questionarioDao.atualizarDataRespostaQuestionario(path, + idQuestionario)) { + mensagemEnvio = "Questionário salvo e enviado por email com suceso!"; } else { - mensagemEnvio = "Questionário salvo, mas não foi possível enviar email!"; + mensagemEnvio = "Questionário salvo e enviado por email, mas, não foi possível atualizar a data de resposta!"; } - result.include("mensagemEnvio", mensagemEnvio); - this.validator.add(new ValidationMessage("", "")); - this.validator.onErrorUsePageOf( - QuestionarioController.class).confirmacaoHash(); + } else { - mensagemEnvio = "Não foi possível salvar o questionário!"; - result.include("mensagemEnvio", mensagemEnvio); - this.validator.add(new ValidationMessage("", "")); - this.validator.onErrorUsePageOf( - QuestionarioController.class).confirmacaoHash(); - } - } - else - { - mensagemEnvio = "Não foi possível atualizar o id do questionário na tabela dos órgãos!"; - result.include("mensagemEnvio", mensagemEnvio); - this.validator.add(new ValidationMessage("", "")); - this.validator.onErrorUsePageOf( - QuestionarioController.class).confirmacaoHash(); + mensagemEnvio = "Questionário salvo, mas não foi possível enviar email!"; } + result.include("mensagemEnvio", mensagemEnvio); + this.validator.add(new ValidationMessage("", "")); + this.validator.onErrorUsePageOf(QuestionarioController.class) + .confirmacaoHash(); + } else { - mensagemEnvio = "É preciso autorização para gerar código Hash!"; + mensagemEnvio = "Não foi possível atualizar o id do questionário na tabela dos órgãos!"; result.include("mensagemEnvio", mensagemEnvio); this.validator.add(new ValidationMessage("", "")); this.validator.onErrorUsePageOf(QuestionarioController.class) .confirmacaoHash(); } - } - else - { + + } else { mensagemEnvio = "Não foi possível identificar o Órgao!"; result.include("mensagemEnvio", mensagemEnvio); this.validator.add(new ValidationMessage("", "")); diff --git a/src/br/com/dao/QuestionarioDao.java b/src/br/com/dao/QuestionarioDao.java index f4b5baf..086a66c 100644 --- a/src/br/com/dao/QuestionarioDao.java +++ b/src/br/com/dao/QuestionarioDao.java @@ -16,549 +16,683 @@ import java.util.Date; import java.util.List; import br.com.caelum.vraptor.interceptor.multipart.UploadedFile; +import br.com.model.entity.Orgao; import br.com.model.entity.PlanoTrabalho; import br.com.model.entity.Questionario; +import br.com.model.entity.RespostaQuestionario; import br.com.util.DateUtil; import br.com.util.GeradorCodigoHash; public class QuestionarioDao { - - public List retornarListaQuestionario(String path) { - - List listaQuestionario = new ArrayList(); - - ResultSet rset = null; - Questionario questionario; - RespostaQuestionarioDao respostaQuestionarioDao; - PlanoTrabalhoDao planoTrabalhoDao; - - rset = retornarQuestionario(path); - String dataRespostaQuestionario = ""; - try { - while (rset.next()) { - dataRespostaQuestionario = ""; - - questionario = new Questionario(); - respostaQuestionarioDao = new RespostaQuestionarioDao(); - planoTrabalhoDao = new PlanoTrabalhoDao(); - - questionario.setIdQuestionario(rset.getInt("id_questionario")); - questionario.setDtInicioQuestionario(DateUtil.dataHoraFormatadaDiaMesAno(rset.getString("dt_inicio_questionario"))); - questionario.setDtFimQuestionario(DateUtil.dataHoraFormatadaDiaMesAno(rset.getString("dt_fim_questionario"))); - questionario.setNoOrgao(rset.getString("no_orgao")); - questionario.setHashAutenticacao(rset.getString("hash_autenticacao")); - questionario.setQuestionario_respondido(rset.getBoolean("questionario_respondido")); - questionario.setEmailDestinoOrgao(rset.getString("email_destino_orgao")); - questionario.setResponsavel(rset.getString("responsavel")); - questionario.setCargoResponsavel(rset.getString("cargo_responsavel")); - questionario.setTelefone(rset.getString("telefone")); - questionario.setIdAutorizacaoGeracaoHash(rset.getInt("idAutorizacao")); - questionario.setDtRecebimentoEmail(DateUtil.dataHoraFormatadaDiaMesAno(rset.getString("data_recebimento_email"))); - questionario.setFlagEnviado(rset.getBoolean("flag_enviado")); - dataRespostaQuestionario = rset.getString("data_resposta_email"); - - if(dataRespostaQuestionario != null) - { - questionario.setDtRespostaEmail(DateUtil.dataHoraFormatadaDiaMesAnoComParametro(dataRespostaQuestionario)); - } - else - { - questionario.setDtRespostaEmail(dataRespostaQuestionario); - } - - PlanoTrabalho planoTrabalho = new PlanoTrabalho(); - - planoTrabalho = planoTrabalhoDao.verificaPlanoTrabalho(path, rset.getInt("id_questionario")); - - - questionario.setDataRespostaQuestionario(respostaQuestionarioDao.verificaRespostaQuestionario(path, rset.getInt("id_questionario"))); - - //verifica se foi anexado plano de trabalho - if(planoTrabalho != null && planoTrabalho.getArquivoPlanoTrabalho() != null) - { - questionario.setPlanoTrabalhoAnexado(true); - } - else - { - questionario.setPlanoTrabalhoAnexado(false); - } - - - //verifica se anexado Relatório assinado - if(planoTrabalho != null && planoTrabalho.getArquivoRelatorioAss() != null) - { - questionario.setRelatorioAnexado(true); - } - else - { - questionario.setRelatorioAnexado(false); - } - - listaQuestionario.add(questionario); - - } - } catch (Exception e) { - e.printStackTrace(); - } - - return listaQuestionario; - } - - public List retornarListaQuestionarioComFiltro(String path, String statusRelatorio, String statusPlanoTrabalho, String relatorioAnexado, String relatorioEnviado, String nomeOrgao) { - - List listaQuestionario = new ArrayList(); - - ResultSet rset = null; - Questionario questionario; - RespostaQuestionarioDao respostaQuestionarioDao; - PlanoTrabalhoDao planoTrabalhoDao; - - rset = retornarQuestionarioComFiltro(path, statusRelatorio, statusPlanoTrabalho, relatorioEnviado, nomeOrgao); - String dataRespostaQuestionario = ""; - try { - while (rset.next()) { - dataRespostaQuestionario = ""; - - questionario = new Questionario(); - respostaQuestionarioDao = new RespostaQuestionarioDao(); - planoTrabalhoDao = new PlanoTrabalhoDao(); - - questionario.setIdQuestionario(rset.getInt("id_questionario")); - questionario.setDtInicioQuestionario(DateUtil.dataHoraFormatadaDiaMesAno(rset.getString("dt_inicio_questionario"))); - questionario.setDtFimQuestionario(DateUtil.dataHoraFormatadaDiaMesAno(rset.getString("dt_fim_questionario"))); - questionario.setNoOrgao(rset.getString("no_orgao")); - questionario.setHashAutenticacao(rset.getString("hash_autenticacao")); - questionario.setQuestionario_respondido(rset.getBoolean("questionario_respondido")); - questionario.setEmailDestinoOrgao(rset.getString("email_destino_orgao")); - questionario.setResponsavel(rset.getString("responsavel")); - questionario.setCargoResponsavel(rset.getString("cargo_responsavel")); - questionario.setTelefone(rset.getString("telefone")); - questionario.setIdAutorizacaoGeracaoHash(rset.getInt("idAutorizacao")); - questionario.setDtRecebimentoEmail(DateUtil.dataHoraFormatadaDiaMesAno(rset.getString("data_recebimento_email"))); - questionario.setFlagEnviado(rset.getBoolean("flag_enviado")); - - dataRespostaQuestionario = rset.getString("data_resposta_email"); - - if(dataRespostaQuestionario != null) - { - questionario.setDtRespostaEmail(DateUtil.dataHoraFormatadaDiaMesAnoComParametro(dataRespostaQuestionario)); - } - else - { - questionario.setDtRespostaEmail(dataRespostaQuestionario); - } - - - - questionario.setDataRespostaQuestionario(respostaQuestionarioDao.verificaRespostaQuestionario(path, rset.getInt("id_questionario"))); - - - PlanoTrabalho planoTrabalho = new PlanoTrabalho(); - - planoTrabalho = planoTrabalhoDao.verificaPlanoTrabalho(path, rset.getInt("id_questionario")); - - //verifica se foi anexado plano de trabalho - if(planoTrabalho != null && planoTrabalho.getArquivoPlanoTrabalho() != null) - { - questionario.setPlanoTrabalhoAnexado(true); - } - else - { - questionario.setPlanoTrabalhoAnexado(false); - } - //verifica se foi anexado o Relatório - if(planoTrabalho != null && planoTrabalho.getArquivoRelatorioAss() != null) - { - questionario.setRelatorioAnexado(true); - } - else - { - questionario.setRelatorioAnexado(false); - } - - - if(statusPlanoTrabalho.equalsIgnoreCase("todos") && relatorioAnexado.equalsIgnoreCase("todos")) - { - listaQuestionario.add(questionario); - } - else - { - if(statusPlanoTrabalho.equalsIgnoreCase("sim") && questionario.isPlanoTrabalhoAnexado()) - { - if(relatorioAnexado.equalsIgnoreCase("sim") && questionario.isRelatorioAnexado()) - { - listaQuestionario.add(questionario); - } - else if(relatorioAnexado.equalsIgnoreCase("todos")) - { - listaQuestionario.add(questionario); - } - else if(relatorioAnexado.equalsIgnoreCase("nao") && !questionario.isRelatorioAnexado()) - { - listaQuestionario.add(questionario); - } - } - else if(statusPlanoTrabalho.equalsIgnoreCase("nao") && !questionario.isPlanoTrabalhoAnexado()) - { - if(relatorioAnexado.equalsIgnoreCase("sim") && questionario.isRelatorioAnexado()) - { - listaQuestionario.add(questionario); - } else if(relatorioAnexado.equalsIgnoreCase("todos")) - { - listaQuestionario.add(questionario); - } - else if(relatorioAnexado.equalsIgnoreCase("nao") && !questionario.isRelatorioAnexado()) - { - listaQuestionario.add(questionario); - } - }else if(statusPlanoTrabalho.equalsIgnoreCase("todos")) - { - if(relatorioAnexado.equalsIgnoreCase("sim") && questionario.isRelatorioAnexado()) - { - listaQuestionario.add(questionario); - } - else if(relatorioAnexado.equalsIgnoreCase("nao") && !questionario.isRelatorioAnexado()) - { - listaQuestionario.add(questionario); - } - } - } - - } - } catch (Exception e) { - e.printStackTrace(); - } - - return listaQuestionario; - } - - public ResultSet retornarQuestionario(String path) { - - StringBuffer sql = new StringBuffer(); - Connection con = Conexao.conecta(path); - Statement estado; - ResultSet rset = null; - - try { - estado = con.createStatement(); - - estado.execute(sql.toString()); - sql.append(" SELECT * "); - sql.append(" FROM public.questionario order by no_orgao;"); - - rset = estado.executeQuery(sql.toString()); - - return rset; - } catch (SQLException e) { - e.printStackTrace(); - return null; - - } finally { - if (con != null) { - try { - con.close(); - } catch (SQLException e) { - e.printStackTrace(); - } - } - } - - } - - public ResultSet retornarQuestionarioEnviados(String path) { - - StringBuffer sql = new StringBuffer(); - Connection con = Conexao.conecta(path); - Statement estado; - ResultSet rset = null; - - try { - estado = con.createStatement(); - - estado.execute(sql.toString()); - sql.append(" select id_questionario from questionario where flag_enviado = true order by id_questionario; "); - - rset = estado.executeQuery(sql.toString()); - - return rset; - } catch (SQLException e) { - e.printStackTrace(); - return null; - - } finally { - if (con != null) { - try { - con.close(); - } catch (SQLException e) { - e.printStackTrace(); - } - } - } - - } - - public ResultSet retornarQuestionarioComFiltro(String path, String statusRelatorio, String statusPlanoTrabalho, String relatorioEnviado, String nomeOrgao) { - - StringBuffer sql = new StringBuffer(); - Connection con = Conexao.conecta(path); - Statement estado; - ResultSet rset = null; - String sqlConvertida = ""; - try { - estado = con.createStatement(); - - estado.execute(sql.toString()); - sql.append(" SELECT * "); - sql.append(" FROM public.questionario"); - sql.append(" Where "); - - if(nomeOrgao != null) - { - sql.append(" and upper (no_orgao) like upper('%"+ nomeOrgao +"%') "); - } - - if(statusRelatorio.equalsIgnoreCase("sim")) - { - sql.append(" and questionario_respondido = true "); - - }else if(statusRelatorio.equalsIgnoreCase("nao")) - { - sql.append(" and questionario_respondido = false " ); - } - - if(relatorioEnviado.equalsIgnoreCase("sim")) - { - sql.append(" and flag_enviado = true "); - - }else if(relatorioEnviado.equalsIgnoreCase("nao")) - { - sql.append(" and flag_enviado = false " ); - } - - sql.append(" order by no_orgao;"); - - sqlConvertida = sql.toString().replace("Where and" , "Where ").replace("Where order by no_orgao", " order by no_orgao"); - rset = estado.executeQuery(sqlConvertida); - - return rset; - - } catch (SQLException e) { - e.printStackTrace(); - return null; - - } finally { - if (con != null) { - try { - con.close(); - } catch (SQLException e) { - e.printStackTrace(); - } - } - } - - } - - public boolean atualizarDataRespostaQuestionario(String path, int idQuestionario) - { - - StringBuffer sql = new StringBuffer(); - Connection con = Conexao.conecta(path); - PreparedStatement estado; - int resultado = 0; - boolean salvoComSucesso = false; - - - - try { - - Date dtRespostaEmail = new Date(); - java.sql.Date sqlDtRespostaEmail = new java.sql.Date(dtRespostaEmail.getTime()); - - - sql = new StringBuffer(); - sql.append(" UPDATE public.questionario SET data_resposta_email=(SELECT NOW()) WHERE id_questionario = ?; "); - - estado = con.prepareStatement(sql.toString()); - - estado.setInt(1, idQuestionario); - - resultado = estado.executeUpdate(); - - if (resultado == 0) { - salvoComSucesso = false; - } else { - - salvoComSucesso = true; - } - - } catch (SQLException e) { - - e.printStackTrace(); - } - - return salvoComSucesso; - } - - public boolean atualizarFlagEnviado(String path, int idQuestionario) - { - - StringBuffer sql = new StringBuffer(); - Connection con = Conexao.conecta(path); - PreparedStatement estado; - int resultado = 0; - boolean salvoComSucesso = false; - - - - try { - - sql = new StringBuffer(); - sql.append(" UPDATE public.questionario SET flag_enviado = true WHERE id_questionario = ?; "); - - estado = con.prepareStatement(sql.toString()); - - estado.setInt(1, idQuestionario); - - resultado = estado.executeUpdate(); - - if (resultado == 0) { - salvoComSucesso = false; - } else { - - salvoComSucesso = true; - } - - } catch (SQLException e) { - - e.printStackTrace(); - } - - return salvoComSucesso; - } - - public ResultSet retornarQuestionarioPorId(String path, int idQuestionario) { - - StringBuffer sql = new StringBuffer(); - Connection con = Conexao.conecta(path); - Statement estado; - ResultSet rset = null; - - try { - estado = con.createStatement(); - - estado.execute(sql.toString()); - sql.append(" SELECT * "); - sql.append(" FROM public.questionario where id_questionario = " + idQuestionario + ";"); - - rset = estado.executeQuery(sql.toString()); - - return rset; - } catch (SQLException e) { - e.printStackTrace(); - return null; - - } finally { - if (con != null) { - try { - con.close(); - } catch (SQLException e) { - e.printStackTrace(); - } - } - } - - } - - - - public int salvarQuestionario(String path, Questionario questionario) { - - //File file = new File(caminhoArquivo); - - Connection con = null; - con = Conexao.conecta(path); - int resultado = -1; - StringBuffer sql; - - //boolean salvoComSucesso = false; - - try { - - - // FileInputStream fileIn = new FileInputStream(file); - Date dtInicioQuestionario = DateUtil.dataFormatada(questionario.getDtInicioQuestionario()); - Date dtFimQuestionario = DateUtil.dataFormatada(questionario.getDtFimQuestionario()); - Date dtRecebimentoEmail = DateUtil.dataFormatada(questionario.getDtRecebimentoEmail()); - //Date dtRespostaEmail = new Date(); - - java.sql.Date sqlDtInicioQuestionario = new java.sql.Date(dtInicioQuestionario.getTime()); - java.sql.Date sqlDtFimQuestionario = new java.sql.Date(dtFimQuestionario.getTime()); - java.sql.Date sqlDtRecebimentoEmail = new java.sql.Date(dtRecebimentoEmail.getTime()); - //java.sql.Date sqlDtRespostaEmail = new java.sql.Date(dtRespostaEmail.getTime()); - - if (con != null) { - - sql = new StringBuffer(); - sql.append(" INSERT INTO public.questionario( "); - sql.append(" dt_inicio_questionario, dt_fim_questionario, "); - sql.append(" no_orgao, hash_autenticacao, questionario_respondido, email_destino_orgao, "); - sql.append(" responsavel, cargo_responsavel, telefone, idAutorizacao, "); - sql.append(" data_recebimento_email,flag_enviado) "); - sql.append(" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?);"); - - - // cria statement para executar a query - PreparedStatement estado = con.prepareStatement(sql.toString(), Statement.RETURN_GENERATED_KEYS); - - estado.setDate(1, sqlDtInicioQuestionario); - estado.setDate(2, sqlDtFimQuestionario); - estado.setString(3, questionario.getNoOrgao()); - estado.setString(4, questionario.getHashAutenticacao()); - estado.setBoolean(5, false); - estado.setString(6, questionario.getEmailDestinoOrgao()); - estado.setString(7, questionario.getResponsavel()); - estado.setString(8, questionario.getCargoResponsavel()); - estado.setString(9, questionario.getTelefone()); - estado.setInt(10, questionario.getIdAutorizacaoGeracaoHash()); - estado.setDate(11, sqlDtRecebimentoEmail); - estado.setBoolean(12, false); - //estado.setDate(12, sqlDtRespostaEmail); - - //resultado = estado.executeUpdate(); - - estado.executeUpdate(); - ResultSet rs = estado.getGeneratedKeys(); - - if (rs.next()) { - resultado = rs.getInt("id_questionario"); - } - - /* if (resultado == 0) { - salvoComSucesso = false; - } else { - - salvoComSucesso = true; - }*/ - } - - return resultado; - - } catch (SQLException e) { - e.printStackTrace(); - return resultado; - } catch (ParseException e) { - e.printStackTrace(); - return resultado; - } finally { - if (con != null) { - try { - con.close(); - } catch (SQLException e) { - e.printStackTrace(); - } - } - } - } - + public List retornarListaQuestionario(String path) { + + List listaQuestionario = new ArrayList(); + + ResultSet rset = null; + Questionario questionario; + RespostaQuestionarioDao respostaQuestionarioDao; + PlanoTrabalhoDao planoTrabalhoDao; + + rset = retornarQuestionario(path); + String dataRespostaQuestionario = ""; + try { + while (rset.next()) { + dataRespostaQuestionario = ""; + + questionario = new Questionario(); + respostaQuestionarioDao = new RespostaQuestionarioDao(); + planoTrabalhoDao = new PlanoTrabalhoDao(); + + questionario.setIdQuestionario(rset.getInt("id_questionario")); + questionario.setDtInicioQuestionario(DateUtil + .dataHoraFormatadaDiaMesAno(rset + .getString("dt_inicio_questionario"))); + questionario.setDtFimQuestionario(DateUtil + .dataHoraFormatadaDiaMesAno(rset + .getString("dt_fim_questionario"))); + questionario.setNoOrgao(rset.getString("no_orgao")); + questionario.setHashAutenticacao(rset + .getString("hash_autenticacao")); + questionario.setQuestionario_respondido(rset + .getBoolean("questionario_respondido")); + questionario.setEmailDestinoOrgao(rset + .getString("email_destino_orgao")); + questionario.setResponsavel(rset.getString("responsavel")); + questionario.setCargoResponsavel(rset + .getString("cargo_responsavel")); + questionario.setTelefone(rset.getString("telefone")); + questionario.setIdAutorizacaoGeracaoHash(rset + .getInt("idAutorizacao")); + questionario.setDtRecebimentoEmail(DateUtil + .dataHoraFormatadaDiaMesAno(rset + .getString("data_recebimento_email"))); + questionario.setFlagEnviado(rset.getBoolean("flag_enviado")); + dataRespostaQuestionario = rset + .getString("data_resposta_email"); + + if (dataRespostaQuestionario != null) { + questionario + .setDtRespostaEmail(DateUtil + .dataHoraFormatadaDiaMesAnoComParametro(dataRespostaQuestionario)); + } else { + questionario.setDtRespostaEmail(dataRespostaQuestionario); + } + + PlanoTrabalho planoTrabalho = new PlanoTrabalho(); + + planoTrabalho = planoTrabalhoDao.verificaPlanoTrabalho(path, + rset.getInt("id_questionario")); + + questionario + .setDataRespostaQuestionario(respostaQuestionarioDao + .verificaRespostaQuestionario(path, + rset.getInt("id_questionario"))); + + // verifica se foi anexado plano de trabalho + if (planoTrabalho != null + && planoTrabalho.getArquivoPlanoTrabalho() != null) { + questionario.setPlanoTrabalhoAnexado(true); + } else { + questionario.setPlanoTrabalhoAnexado(false); + } + + // verifica se anexado Relatório assinado + if (planoTrabalho != null + && planoTrabalho.getArquivoRelatorioAss() != null) { + questionario.setRelatorioAnexado(true); + } else { + questionario.setRelatorioAnexado(false); + } + + listaQuestionario.add(questionario); + + } + } catch (Exception e) { + e.printStackTrace(); + } + + return listaQuestionario; + } + + public List retornarListaQuestionarioComFiltro(String path, + String statusRelatorio, String statusPlanoTrabalho, + String relatorioAnexado, String relatorioEnviado, String nomeOrgao) { + + List listaQuestionario = new ArrayList(); + + ResultSet rset = null; + Questionario questionario; + RespostaQuestionarioDao respostaQuestionarioDao; + PlanoTrabalhoDao planoTrabalhoDao; + + rset = retornarQuestionarioComFiltro(path, statusRelatorio, + statusPlanoTrabalho, relatorioEnviado, nomeOrgao); + String dataRespostaQuestionario = ""; + try { + while (rset.next()) { + dataRespostaQuestionario = ""; + + questionario = new Questionario(); + respostaQuestionarioDao = new RespostaQuestionarioDao(); + planoTrabalhoDao = new PlanoTrabalhoDao(); + + questionario.setIdQuestionario(rset.getInt("id_questionario")); + questionario.setDtInicioQuestionario(DateUtil + .dataHoraFormatadaDiaMesAno(rset + .getString("dt_inicio_questionario"))); + questionario.setDtFimQuestionario(DateUtil + .dataHoraFormatadaDiaMesAno(rset + .getString("dt_fim_questionario"))); + questionario.setNoOrgao(rset.getString("no_orgao")); + questionario.setHashAutenticacao(rset + .getString("hash_autenticacao")); + questionario.setQuestionario_respondido(rset + .getBoolean("questionario_respondido")); + questionario.setEmailDestinoOrgao(rset + .getString("email_destino_orgao")); + questionario.setResponsavel(rset.getString("responsavel")); + questionario.setCargoResponsavel(rset + .getString("cargo_responsavel")); + questionario.setTelefone(rset.getString("telefone")); + questionario.setIdAutorizacaoGeracaoHash(rset + .getInt("idAutorizacao")); + questionario.setDtRecebimentoEmail(DateUtil + .dataHoraFormatadaDiaMesAno(rset + .getString("data_recebimento_email"))); + questionario.setFlagEnviado(rset.getBoolean("flag_enviado")); + + dataRespostaQuestionario = rset + .getString("data_resposta_email"); + + if (dataRespostaQuestionario != null) { + questionario + .setDtRespostaEmail(DateUtil + .dataHoraFormatadaDiaMesAnoComParametro(dataRespostaQuestionario)); + } else { + questionario.setDtRespostaEmail(dataRespostaQuestionario); + } + + questionario + .setDataRespostaQuestionario(respostaQuestionarioDao + .verificaRespostaQuestionario(path, + rset.getInt("id_questionario"))); + + PlanoTrabalho planoTrabalho = new PlanoTrabalho(); + + planoTrabalho = planoTrabalhoDao.verificaPlanoTrabalho(path, + rset.getInt("id_questionario")); + + // verifica se foi anexado plano de trabalho + if (planoTrabalho != null + && planoTrabalho.getArquivoPlanoTrabalho() != null) { + questionario.setPlanoTrabalhoAnexado(true); + } else { + questionario.setPlanoTrabalhoAnexado(false); + } + // verifica se foi anexado o Relatório + if (planoTrabalho != null + && planoTrabalho.getArquivoRelatorioAss() != null) { + questionario.setRelatorioAnexado(true); + } else { + questionario.setRelatorioAnexado(false); + } + + if (statusPlanoTrabalho.equalsIgnoreCase("todos") + && relatorioAnexado.equalsIgnoreCase("todos")) { + listaQuestionario.add(questionario); + } else { + if (statusPlanoTrabalho.equalsIgnoreCase("sim") + && questionario.isPlanoTrabalhoAnexado()) { + if (relatorioAnexado.equalsIgnoreCase("sim") + && questionario.isRelatorioAnexado()) { + listaQuestionario.add(questionario); + } else if (relatorioAnexado.equalsIgnoreCase("todos")) { + listaQuestionario.add(questionario); + } else if (relatorioAnexado.equalsIgnoreCase("nao") + && !questionario.isRelatorioAnexado()) { + listaQuestionario.add(questionario); + } + } else if (statusPlanoTrabalho.equalsIgnoreCase("nao") + && !questionario.isPlanoTrabalhoAnexado()) { + if (relatorioAnexado.equalsIgnoreCase("sim") + && questionario.isRelatorioAnexado()) { + listaQuestionario.add(questionario); + } else if (relatorioAnexado.equalsIgnoreCase("todos")) { + listaQuestionario.add(questionario); + } else if (relatorioAnexado.equalsIgnoreCase("nao") + && !questionario.isRelatorioAnexado()) { + listaQuestionario.add(questionario); + } + } else if (statusPlanoTrabalho.equalsIgnoreCase("todos")) { + if (relatorioAnexado.equalsIgnoreCase("sim") + && questionario.isRelatorioAnexado()) { + listaQuestionario.add(questionario); + } else if (relatorioAnexado.equalsIgnoreCase("nao") + && !questionario.isRelatorioAnexado()) { + listaQuestionario.add(questionario); + } + } + } + + } + } catch (Exception e) { + e.printStackTrace(); + } + + return listaQuestionario; + } + + public ResultSet retornarQuestionario(String path) { + + StringBuffer sql = new StringBuffer(); + Connection con = Conexao.conecta(path); + Statement estado; + ResultSet rset = null; + + try { + estado = con.createStatement(); + + estado.execute(sql.toString()); + sql.append(" SELECT * "); + sql.append(" FROM public.questionario order by no_orgao;"); + + rset = estado.executeQuery(sql.toString()); + + return rset; + } catch (SQLException e) { + e.printStackTrace(); + return null; + + } finally { + if (con != null) { + try { + con.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + } + + } + + public ResultSet retornarQuestionarioEnviados(String path) { + + StringBuffer sql = new StringBuffer(); + Connection con = Conexao.conecta(path); + Statement estado; + ResultSet rset = null; + + try { + estado = con.createStatement(); + + estado.execute(sql.toString()); + sql.append(" select id_questionario from questionario where flag_enviado = true order by id_questionario; "); + + rset = estado.executeQuery(sql.toString()); + + return rset; + } catch (SQLException e) { + e.printStackTrace(); + return null; + + } finally { + if (con != null) { + try { + con.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + } + + } + + public ResultSet retornarQuestionarioComFiltro(String path, + String statusRelatorio, String statusPlanoTrabalho, + String relatorioEnviado, String nomeOrgao) { + + StringBuffer sql = new StringBuffer(); + Connection con = Conexao.conecta(path); + Statement estado; + ResultSet rset = null; + String sqlConvertida = ""; + try { + estado = con.createStatement(); + + estado.execute(sql.toString()); + sql.append(" SELECT * "); + sql.append(" FROM public.questionario"); + sql.append(" Where "); + + if (nomeOrgao != null) { + sql.append(" and upper (no_orgao) like upper('%" + nomeOrgao + + "%') "); + } + + if (statusRelatorio.equalsIgnoreCase("sim")) { + sql.append(" and questionario_respondido = true "); + + } else if (statusRelatorio.equalsIgnoreCase("nao")) { + sql.append(" and questionario_respondido = false "); + } + + if (relatorioEnviado.equalsIgnoreCase("sim")) { + sql.append(" and flag_enviado = true "); + + } else if (relatorioEnviado.equalsIgnoreCase("nao")) { + sql.append(" and flag_enviado = false "); + } + + sql.append(" order by no_orgao;"); + + sqlConvertida = sql.toString().replace("Where and", "Where ") + .replace("Where order by no_orgao", " order by no_orgao"); + rset = estado.executeQuery(sqlConvertida); + + return rset; + + } catch (SQLException e) { + e.printStackTrace(); + return null; + + } finally { + if (con != null) { + try { + con.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + } + + } + + public boolean atualizarDataRespostaQuestionario(String path, + int idQuestionario) { + + StringBuffer sql = new StringBuffer(); + Connection con = Conexao.conecta(path); + PreparedStatement estado; + int resultado = 0; + boolean salvoComSucesso = false; + + try { + + Date dtRespostaEmail = new Date(); + java.sql.Date sqlDtRespostaEmail = new java.sql.Date( + dtRespostaEmail.getTime()); + + sql = new StringBuffer(); + sql.append(" UPDATE public.questionario SET data_resposta_email=(SELECT NOW()) WHERE id_questionario = ?; "); + + estado = con.prepareStatement(sql.toString()); + + estado.setInt(1, idQuestionario); + + resultado = estado.executeUpdate(); + + if (resultado == 0) { + salvoComSucesso = false; + } else { + + salvoComSucesso = true; + } + + } catch (SQLException e) { + + e.printStackTrace(); + } + + return salvoComSucesso; + } + + public boolean atualizarFlagEnviado(String path, int idQuestionario) { + + StringBuffer sql = new StringBuffer(); + Connection con = Conexao.conecta(path); + PreparedStatement estado; + int resultado = 0; + boolean salvoComSucesso = false; + + try { + + sql = new StringBuffer(); + sql.append(" UPDATE public.questionario SET flag_enviado = true WHERE id_questionario = ?; "); + + estado = con.prepareStatement(sql.toString()); + + estado.setInt(1, idQuestionario); + + resultado = estado.executeUpdate(); + + if (resultado == 0) { + salvoComSucesso = false; + } else { + + salvoComSucesso = true; + } + + } catch (SQLException e) { + + e.printStackTrace(); + } + + return salvoComSucesso; + } + + public ResultSet retornarQuestionarioPorId(String path, int idQuestionario) { + + StringBuffer sql = new StringBuffer(); + Connection con = Conexao.conecta(path); + Statement estado; + ResultSet rset = null; + + try { + estado = con.createStatement(); + + estado.execute(sql.toString()); + sql.append(" SELECT * "); + sql.append(" FROM public.questionario where id_questionario = " + + idQuestionario + ";"); + + rset = estado.executeQuery(sql.toString()); + + return rset; + } catch (SQLException e) { + e.printStackTrace(); + return null; + + } finally { + if (con != null) { + try { + con.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + } + + } + + public int salvarQuestionarioAtualizaOrgao(String path, Questionario questionario, Orgao orgao) { + + Connection con = null; + int resultado = 0; + int idQuestionario = 0; + String resultadoAmostragem = null; + StringBuffer sql; + StringBuffer sqlNovo; + Statement estado; + boolean salvoComSucesso = false; + String dataHoraRespostaQuestionario = DateUtil.dataHoraAtual(); + try { + + // FileInputStream fileIn = new FileInputStream(file); + Date dtInicioQuestionario = DateUtil.dataFormatada(questionario + .getDtInicioQuestionario()); + Date dtFimQuestionario = DateUtil.dataFormatada(questionario + .getDtFimQuestionario()); + Date dtRecebimentoEmail = DateUtil.dataFormatada(questionario + .getDtRecebimentoEmail()); + // Date dtRespostaEmail = new Date(); + + java.sql.Date sqlDtInicioQuestionario = new java.sql.Date( + dtInicioQuestionario.getTime()); + java.sql.Date sqlDtFimQuestionario = new java.sql.Date( + dtFimQuestionario.getTime()); + java.sql.Date sqlDtRecebimentoEmail = new java.sql.Date( + dtRecebimentoEmail.getTime()); + // java.sql.Date sqlDtRespostaEmail = new + // java.sql.Date(dtRespostaEmail.getTime()); + + con = Conexao.conecta(path); + if (con != null) { + con.setAutoCommit(false); + // cria statement para executar a query + estado = con.createStatement(); + + sql = new StringBuffer(); + + sql.append(" INSERT INTO public.questionario( "); + sql.append(" dt_inicio_questionario, dt_fim_questionario, "); + sql.append(" no_orgao, hash_autenticacao, questionario_respondido, email_destino_orgao, "); + sql.append(" responsavel, cargo_responsavel, telefone, idAutorizacao, "); + sql.append(" data_recebimento_email,flag_enviado) "); + sql.append(" VALUES ('" + sqlDtInicioQuestionario + "', '" + + sqlDtFimQuestionario + "', '" + + questionario.getNoOrgao() + "', "); + sql.append(" '" + questionario.getHashAutenticacao() + + "', false, '" + questionario.getEmailDestinoOrgao() + + "', "); + sql.append(" '" + questionario.getResponsavel() + "', '" + + questionario.getCargoResponsavel() + "', "); + sql.append(" '" + questionario.getTelefone() + "', " + + questionario.getIdAutorizacaoGeracaoHash() + ", "); + sql.append(" '" + sqlDtRecebimentoEmail + "'," + false + ");"); + + // cria statement para executar a query + // PreparedStatement estado = + // con.prepareStatement(sql.toString(), + // Statement.RETURN_GENERATED_KEYS); + + estado.executeUpdate(sql.toString(), + Statement.RETURN_GENERATED_KEYS); + + ResultSet rs = estado.getGeneratedKeys(); + + while (rs.next()) { + idQuestionario = rs.getInt("id_questionario"); + } + + if (idQuestionario == 0) { + con.rollback(); + } else { + + sqlNovo = new StringBuffer(); + sqlNovo.append(" UPDATE public.orgao SET id_questionario = "+ idQuestionario +" WHERE id_orgao = "+ orgao.getIdOrgao() +";"); + + resultado = estado.executeUpdate(sqlNovo.toString()); + + if (resultado == 0) { + con.rollback(); + }else + { + + con.commit(); + } + } + + } + + } + + catch (SQLException | ParseException e) { + System.err.print(e.getMessage()); + } finally { + if (con != null) { + try { + con.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + } + + return idQuestionario; + } + + + + public int salvarQuestionarioOrgao(String path, Questionario questionario) { + + Connection con = null; + int resultado = 0; + int idQuestionario = 0; + String resultadoAmostragem = null; + StringBuffer sql; + StringBuffer sqlNovo; + Statement estado; + boolean salvoComSucesso = false; + String dataHoraRespostaQuestionario = DateUtil.dataHoraAtual(); + try { + + // FileInputStream fileIn = new FileInputStream(file); + Date dtInicioQuestionario = DateUtil.dataFormatada(questionario + .getDtInicioQuestionario()); + Date dtFimQuestionario = DateUtil.dataFormatada(questionario + .getDtFimQuestionario()); + Date dtRecebimentoEmail = DateUtil.dataFormatada(questionario + .getDtRecebimentoEmail()); + // Date dtRespostaEmail = new Date(); + + java.sql.Date sqlDtInicioQuestionario = new java.sql.Date( + dtInicioQuestionario.getTime()); + java.sql.Date sqlDtFimQuestionario = new java.sql.Date( + dtFimQuestionario.getTime()); + java.sql.Date sqlDtRecebimentoEmail = new java.sql.Date( + dtRecebimentoEmail.getTime()); + // java.sql.Date sqlDtRespostaEmail = new + // java.sql.Date(dtRespostaEmail.getTime()); + + con = Conexao.conecta(path); + if (con != null) { + con.setAutoCommit(false); + // cria statement para executar a query + estado = con.createStatement(); + + sql = new StringBuffer(); + + sql.append(" INSERT INTO public.questionario( "); + sql.append(" dt_inicio_questionario, dt_fim_questionario, "); + sql.append(" no_orgao, hash_autenticacao, questionario_respondido, email_destino_orgao, "); + sql.append(" responsavel, cargo_responsavel, telefone, idAutorizacao, "); + sql.append(" data_recebimento_email,flag_enviado) "); + sql.append(" VALUES ('" + sqlDtInicioQuestionario + "', '" + + sqlDtFimQuestionario + "', '" + + questionario.getNoOrgao() + "', "); + sql.append(" '" + questionario.getHashAutenticacao() + + "', false, '" + questionario.getEmailDestinoOrgao() + + "', "); + sql.append(" '" + questionario.getResponsavel() + "', '" + + questionario.getCargoResponsavel() + "', "); + sql.append(" '" + questionario.getTelefone() + "', " + + questionario.getIdAutorizacaoGeracaoHash() + ", "); + sql.append(" '" + sqlDtRecebimentoEmail + "'," + false + ");"); + + // cria statement para executar a query + // PreparedStatement estado = + // con.prepareStatement(sql.toString(), + // Statement.RETURN_GENERATED_KEYS); + + estado.executeUpdate(sql.toString(), + Statement.RETURN_GENERATED_KEYS); + + ResultSet rs = estado.getGeneratedKeys(); + + while (rs.next()) { + idQuestionario = rs.getInt("id_questionario"); + } + + if (idQuestionario == 0) { + con.rollback(); + } else { + + sqlNovo = new StringBuffer(); + sqlNovo.append(" INSERT INTO orgao (no_orgao, id_questionario) values ('" + + questionario.getNoOrgao() + + "'," + + idQuestionario + + ")"); + + resultado = estado.executeUpdate(sqlNovo.toString()); + + if (resultado == 0) { + con.rollback(); + }else + { + + con.commit(); + } + } + + } + + } + + catch (SQLException | ParseException e) { + System.err.print(e.getMessage()); + } finally { + if (con != null) { + try { + con.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + } + + return idQuestionario; + } + } -- libgit2 0.21.2