Commit 3776d11c58d5560e443b757f9de02a987e9e2279

Authored by gibransodre
1 parent d6893e44
Exists in master

Implementação da funcionalidade para envio de plano de trabalho.

WebContent/WEB-INF/jsp/index/formulario.jsp
... ... @@ -579,6 +579,7 @@
579 579 <input type="checkbox" name="assistiva" id="assistiva6" value="61"
580 580 ${marcar == 'true'?'checked=\"checked\"':''}><label
581 581 for="assistiva6">Prodeaf</label><br>
  582 +
582 583  
583 584 <c:set var="marcar" scope="session" value="false" />
584 585 <c:forEach items="${assistiva}" var="item">
... ... @@ -589,6 +590,18 @@
589 590 <input type="checkbox" name="assistiva" id="assistiva7" value="62"
590 591 ${marcar == 'true'?'checked=\"checked\"':''}><label
591 592 for="assistiva7">VLibras</label><br>
  593 +
  594 +
  595 + <c:set var="marcar" scope="session" value="false" />
  596 + <c:forEach items="${assistiva}" var="item">
  597 + <c:if test="${item == '69'}">
  598 + <c:set var="marcar" scope="session" value="true" />
  599 + </c:if>
  600 + </c:forEach>
  601 + <input type="checkbox" name="assistiva" id="assistiva5" value="69"
  602 + ${marcar == 'true'?'checked=\"checked\"':''}><label
  603 + for="assistiva5"><span lang="en">NVDA</span></label><br>
  604 +
592 605  
593 606 <c:set var="marcar" scope="session" value="false" />
594 607 <c:forEach items="${assistiva}" var="item">
... ...
WebContent/WEB-INF/jsp/planoTrabalho/planoTrabalho.jsp 0 → 100644
... ... @@ -0,0 +1,26 @@
  1 +<%@page contentType="text/html" pageEncoding="UTF-8"%>
  2 +<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  3 +<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
  4 +<!DOCTYPE html>
  5 +<html lang=pt-br>
  6 +
  7 +<head>
  8 +<title>Relatório Circunstanciado de Acessibilidade Digital</title>
  9 +</head>
  10 +<body>
  11 +
  12 +
  13 +<form action="${pageContext.request.contextPath}/salvar-plano-trabalho" method="post" enctype="multipart/form-data">
  14 +
  15 +<fieldset>
  16 +<legend>Plano de Trabalho</legend>
  17 +
  18 +<label for="valorHash">Código Hash: </label>
  19 +<input type="text" id="valorHash" name="valorHash"><br><br>
  20 +<label for="file">Arquivo: </label>
  21 +<input type="file" id="file" name="file"><br><br>
  22 +<input type="submit" value="Salvar">
  23 +</fieldset>
  24 +</form>
  25 +</body>
  26 +</html>
0 27 \ No newline at end of file
... ...
WebContent/WEB-INF/jsp/planoTrabalho/planoTrabalhoConfirmacao.jsp 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +<%@page contentType="text/html" pageEncoding="UTF-8"%>
  2 +<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  3 +<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
  4 +<!DOCTYPE html>
  5 +<html lang=pt-br>
  6 +
  7 +<head>
  8 +<title>Relatório Circunstanciado de Acessibilidade Digital</title>
  9 +</head>
  10 +<body>
  11 +${mensagem}
  12 +</body>
  13 +</html>
0 14 \ No newline at end of file
... ...
src/br/com/controller/PlanoTrabalhoController.java 0 → 100644
... ... @@ -0,0 +1,69 @@
  1 +package br.com.controller;
  2 +
  3 +import javax.servlet.ServletContext;
  4 +
  5 +import br.com.caelum.vraptor.Path;
  6 +import br.com.caelum.vraptor.Resource;
  7 +import br.com.caelum.vraptor.Result;
  8 +import br.com.caelum.vraptor.Validator;
  9 +import br.com.caelum.vraptor.interceptor.multipart.UploadedFile;
  10 +import br.com.caelum.vraptor.validator.ValidationMessage;
  11 +import br.com.dao.HashDao;
  12 +import br.com.dao.PlanoTrabalhoDao;
  13 +import br.com.model.entity.Questionario;
  14 +
  15 +@Resource
  16 +public class PlanoTrabalhoController {
  17 +
  18 + private Validator validator;
  19 + private Result result;
  20 + private ServletContext application;
  21 + private String path;
  22 +
  23 + public PlanoTrabalhoController(Result result, Validator validator, ServletContext application)
  24 + {
  25 + this.validator = validator;
  26 + this.application = application;
  27 + this.path = this.application.getRealPath("") + "/WEB-INF/conexao.properties";
  28 + this.result = result;
  29 + }
  30 +
  31 + @Path("/planoTrabalho-site")
  32 + public void planoTrabalho()
  33 + {
  34 +
  35 + }
  36 +
  37 + @Path("/plano-trabalho-confirmacao")
  38 + public void planoTrabalhoConfirmacao()
  39 + {
  40 +
  41 + }
  42 +
  43 + @Path("/salvar-plano-trabalho")
  44 + public void enviarPlanoTrabalho(String valorHash, UploadedFile file)
  45 + {
  46 + HashDao hashDao = new HashDao();
  47 + Questionario questionario = new Questionario();
  48 + questionario = hashDao.verificarHash(path, valorHash);
  49 + String mensagem = "Não foi possível enviar o plano de trabalho!";
  50 +
  51 + if(questionario != null && questionario.getDtInicioQuestionario() != null)
  52 + {
  53 + PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao();
  54 +
  55 + if(planoTrabalhoDao.salvarPlanoTrabalho(valorHash, file.getFile(), questionario))
  56 + {
  57 + mensagem = "Plano de trabalho enviado com sucesso!";
  58 + }
  59 + }
  60 + else
  61 + {
  62 + mensagem = "Favor verificar o Código Hash!";
  63 + }
  64 + result.include("mensagem", mensagem);
  65 + this.validator.add(new ValidationMessage("", ""));
  66 + this.validator.onErrorUsePageOf(PlanoTrabalhoController.class).planoTrabalhoConfirmacao();
  67 + }
  68 +
  69 +}
... ...
src/br/com/controller/QuestionarioController.java
... ... @@ -52,7 +52,7 @@ public class QuestionarioController {
52 52  
53 53  
54 54 @Path("/salvar-questionario")
55   - public void questionarioSalvar(String autorizacao, String emailDestinoOrgao, UploadedFile file, String noOrgao) {
  55 + public void questionarioSalvar(String autorizacao, String emailDestinoOrgao, UploadedFile file,String nomeDestinatario, String cargoDestinatario, String noOrgao) {
56 56  
57 57  
58 58 AutorizacaoGeracaoHashDao autorizacaoGeracaoHashDao = new AutorizacaoGeracaoHashDao();
... ... @@ -72,9 +72,10 @@ public class QuestionarioController {
72 72 String dtInicioQuestionario = "";
73 73 String dtFimQuestionario = "";
74 74 String hashAutenticacao = null;
  75 + Properties prop = null;
75 76  
76 77 try {
77   - Properties prop = managerProperties.getProp(this.application.getRealPath("") + "/WEB-INF/intervaloRespostaFormulario.properties");
  78 + prop = managerProperties.getProp(this.application.getRealPath("") + "/WEB-INF/respostaFormulario.properties");
78 79  
79 80 dtInicioQuestionario = prop.getProperty("dataInicio");
80 81 dtFimQuestionario = prop.getProperty("dataFim");
... ... @@ -96,11 +97,41 @@ public class QuestionarioController {
96 97 QuestionarioDao questionarioDao = new QuestionarioDao();
97 98  
98 99 if (questionarioDao.salvarQuestionario(path, file.getFile(), questionario)) {
  100 +
  101 + StringBuffer mensagem = new StringBuffer();
  102 +
  103 + mensagem.append("Prezado(a),\n");
  104 + mensagem.append("senhor(a) "+ nomeDestinatario +", " + cargoDestinatario + ", do "+ noOrgao +", conforme solicitado, o acesso \n");
  105 + mensagem.append("ao FAD para o preenchimento de informações sobre a atual situação da \n");
  106 + mensagem.append("acessibilidade dos ambientes digitais do seu órgão ou entidade deverá ser \n");
  107 + mensagem.append("realizado pelo endereço "+ prop.getProperty("enderecoFad") + " utilizando o código de \n");
  108 + mensagem.append("acesso: "+ hashAutenticacao +" .\n\n");
  109 + mensagem.append("A guarda do código de acesso, bem como as informações prestadas são de sua \n");
  110 + mensagem.append("inteira responsabilidade.\n\n");
  111 + mensagem.append("O FAD poderá ser preenchido no período "+ prop.getProperty("dataInicio") + " a "+ prop.getProperty("dataFim") +", data limite \n");
  112 + mensagem.append("para o envio do relatório circunstanciado (formulário de acessibilidade digital e plano de \n");
  113 + mensagem.append("trabalho) à Procuradoria Federal dos Direitos do Cidadão do Ministério Público Federal e \n");
  114 + mensagem.append("publicado no sítio ou portal eletrônico do órgão ou entidade.​\n\n");
  115 + mensagem.append("Maiores informações, dúvidas e sugestões devem ser encaminhadas pelo canal \n");
  116 + mensagem.append(prop.getProperty("enderecoFad") + "\n\n");
  117 + mensagem.append("PRespeitosamente,\n\n");
  118 + mensagem.append("Ministério do Planejamento, Desenvolvimento e Gestão\n");
  119 + mensagem.append("Secretaria de Tecnologia da Informação\n");
  120 + mensagem.append("Departamento de Governo Digital \n");
  121 + mensagem.append("Coordenação-Geral de Padrões de Governo Digital\n");
  122 + mensagem.append(prop.getProperty("emailContato") + "\n");
  123 +
  124 + String[] telefoneContato = prop.getProperty("telefoneContato").split(",");
  125 +
  126 + for (String telefone : telefoneContato) {
  127 + mensagem.append(telefone + "\n");
  128 + }
  129 +
99 130 Contato contato = new Contato();
100 131 contato.setEmail(emailDestinoOrgao);
101   - contato.setAssunto("assunto");
102   - contato.setMensagem("Código Hash:" + hashAutenticacao);
103   - contato.setNome("nome");
  132 + contato.setAssunto("Formulário Eletrônico de Acessibilidade Digital (FAD) – Concessão de Acesso");
  133 + contato.setMensagem(mensagem.toString());
  134 + contato.setNome(nomeDestinatario);
104 135  
105 136 if(enviarHashPorEmail(contato))
106 137 {
... ...
src/br/com/dao/PlanoTrabalhoDao.java 0 → 100644
... ... @@ -0,0 +1,50 @@
  1 +package br.com.dao;
  2 +
  3 +import java.io.InputStream;
  4 +import java.sql.Connection;
  5 +import java.sql.PreparedStatement;
  6 +import java.sql.ResultSet;
  7 +import java.sql.SQLException;
  8 +import java.sql.Statement;
  9 +
  10 +import br.com.model.entity.Questionario;
  11 +
  12 +public class PlanoTrabalhoDao {
  13 +
  14 + public boolean salvarPlanoTrabalho(String path, InputStream file, Questionario questionario)
  15 + {
  16 +
  17 + StringBuffer sql = new StringBuffer();
  18 + Connection con = Conexao.conecta(path);
  19 + PreparedStatement estado;
  20 + int resultado = 0;
  21 + boolean salvoComSucesso = false;
  22 +
  23 + try {
  24 +
  25 + sql = new StringBuffer();
  26 + sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_plano_trabalho) VALUES (?, ?); ");
  27 +
  28 + estado = con.prepareStatement(sql.toString());
  29 +
  30 + estado.setInt(1, questionario.getIdQuestionario());
  31 + estado.setBinaryStream(2, file);
  32 +
  33 + resultado = estado.executeUpdate();
  34 +
  35 + if (resultado == 0) {
  36 + salvoComSucesso = false;
  37 + } else {
  38 +
  39 + salvoComSucesso = true;
  40 + }
  41 +
  42 + } catch (SQLException e) {
  43 +
  44 + e.printStackTrace();
  45 + }
  46 +
  47 + return salvoComSucesso;
  48 + }
  49 +
  50 +}
... ...