();
- 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