Commit 08887e55b5be5152e2b159ca86ed622aba3b775b

Authored by 96409975520
1 parent e2901154
Exists in master

Melhoramento do painel de acessibilidade.

Showing 19 changed files with 871 additions and 35 deletions   Show diff stats
Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/arquivosHtml/arquivosHtml.jsp
@@ -16,7 +16,9 @@ @@ -16,7 +16,9 @@
16 <br> 16 <br>
17 </div> 17 </div>
18 </c:if> 18 </c:if>
19 - 19 + <c:if test="${ empty html}">
  20 + <div class="avaliacao" > <label class="fonteVermelha">Detalhe da avaliação indisponível.</label></div>
  21 + </c:if>
20 ${html} 22 ${html}
21 23
22 </jsp:body> 24 </jsp:body>
Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/painelAcessibilidade/errosMaisComuns.jsp 0 → 100644
@@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
  1 +<%@taglib prefix="t" tagdir="/WEB-INF/tags"%>
  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 +<%@page contentType="text/html" pageEncoding="UTF-8"%>
  5 +<t:baseLayout>
  6 + <jsp:body>
  7 +
  8 +${html}
  9 +
  10 +</jsp:body>
  11 +</t:baseLayout>
0 \ No newline at end of file 12 \ No newline at end of file
Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/painelAcessibilidade/mediaAvaliacao.jsp
@@ -69,5 +69,45 @@ @@ -69,5 +69,45 @@
69 <br> 69 <br>
70 </div> 70 </div>
71 </c:if> 71 </c:if>
  72 +
  73 + <div class="avaliacao">
  74 + <c:if test="${exibirTabelaRelatorio != false}">
  75 +
  76 + <c:if test="${not empty lsRelatoriosFad}">
  77 + <h2>Relatório Circunstantiado e Plano de Trabalho enviados ao Ministério do Planejamento e ao Ministério Público Federal.</h2>
  78 +
  79 + <hr>
  80 + <table>
  81 + <thead>
  82 + <tr>
  83 + <th id="nome">${tipo}</th>
  84 + <th id="relatorio" class="centralizado">Relatório Circunstanciado</th>
  85 + <th id="planoTrabalho" class="centralizado">Plano de trabalho</th>
  86 + </tr>
  87 + </thead>
  88 + <tbody>
  89 + <c:forEach items="${lsRelatoriosFad}" var="relatoriosFad">
  90 + <tr>
  91 + <td headers="nome" class="celula">${relatoriosFad.no_unidade_plano }
  92 +
  93 + </td>
  94 + <td headers="relatorio" class="celula"><a href="${pageContext.request.contextPath}/painel-acessibilidade/${relatoriosFad.id }/fad">Download</a>
  95 +
  96 + </td>
  97 + <td headers="planoTrabalho" class="celula"><a href="${pageContext.request.contextPath}/painel-acessibilidade/${relatoriosFad.id }/plano">Download </a>
  98 + </td>
  99 + </tr>
  100 + </c:forEach>
  101 +
  102 + </tbody>
  103 + </table>
  104 + <br>
  105 + </c:if>
  106 + <c:if test="${empty lsRelatoriosFad}">
  107 + <label class="fonteVermelha">Relatórios não recebidos pelo Ministério do Planejamento.</label>
  108 + </c:if>
  109 + </c:if>
  110 + </div>
  111 +
72 </jsp:body> 112 </jsp:body>
73 </t:baseLayout> 113 </t:baseLayout>
74 \ No newline at end of file 114 \ No newline at end of file
Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/painelAcessibilidade/painelAcessibilidade.jsp
@@ -7,5 +7,59 @@ @@ -7,5 +7,59 @@
7 7
8 ${html} 8 ${html}
9 9
  10 + <div class="avaliacao">
  11 + <h2>Relatório Circunstanciado de Acessibilidade Digital</h2>
  12 + <br>
  13 + <c:if test="${not empty lsMediaAvaliacao}">
  14 +
  15 +
  16 +
  17 + <c:if test="${carregamento == 'orgao'}">
  18 + <table>
  19 + <thead>
  20 + <tr>
  21 + <th id="nome">${tipo}</th>
  22 + <th id="total" class="centralizado">Total de ${nomeTotal}</th>
  23 + <th id="media" class="centralizado">Média</th>
  24 + </tr>
  25 + </thead>
  26 + <tbody>
  27 + <c:forEach items="${lsMediaAvaliacao}" var="mediaAvaliacao">
  28 + <tr>
  29 + <td headers="nome" class="celula">
  30 + <c:if test="${tipo == 'Páginas'}">
  31 +
  32 + <c:set var = "stringLowerCase" value = "${fn:toLowerCase(mediaAvaliacao.nome)}" />
  33 + <c:set var = "string1" value = "${fn:replace(stringLowerCase, 'http://', '')}"/>
  34 + <c:set var = "string2" value ="${fn:replace(string1, '/', '')}"/>
  35 + <c:set var = "string3" value ="${fn:replace(string2, '.', '')}"/>
  36 + <c:set var = "string4" value ="${fn:replace(string3, ' ', '')}"/>
  37 + <a href="http://eselo-prd.brazilsouth.cloudapp.azure.com:8080/arquivosHtml/${string4}.html">${mediaAvaliacao.nome }</a>
  38 +
  39 + </c:if>
  40 + <c:if test="${tipo != 'Páginas'}">
  41 + <a href="${pageContext.request.contextPath}/media-avaliacao/${novoTipo }/${mediaAvaliacao.id}/${mediaAvaliacao.nome }/${mediaAvaliacao.media }">${mediaAvaliacao.nome }</a>
  42 + </c:if>
  43 + </td>
  44 + <td headers="total" class="celula centralizado">
  45 + ${mediaAvaliacao.total }
  46 + </td>
  47 +
  48 + <td headers="media" class="celula centralizado">
  49 + ${mediaAvaliacao.media }
  50 + </td>
  51 + </tr>
  52 +
  53 + </c:forEach>
  54 +
  55 + </tbody>
  56 + </table>
  57 + </c:if>
  58 +
  59 + <br>
  60 +
  61 + </c:if>
  62 +
  63 +
10 </jsp:body> 64 </jsp:body>
11 </t:baseLayout> 65 </t:baseLayout>
12 \ No newline at end of file 66 \ No newline at end of file
Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/tags/baseLayout.tag
@@ -32,8 +32,8 @@ @@ -32,8 +32,8 @@
32 </ul> 32 </ul>
33 <br> <br> 33 <br> <br>
34 <div id="logo"> 34 <div id="logo">
35 - <h1 id="portal-title-1">Painel de Acessibilidade Digital do  
36 - Governo</h1> 35 + <h1 id="portal-title-1"><a href="${pageContext.request.contextPath}/painel-acessibilidade">Painel de Acessibilidade Digital do
  36 + Governo</a></h1>
37 </div> 37 </div>
38 <div id="barra-brasil" class="barra_brasil"> 38 <div id="barra-brasil" class="barra_brasil">
39 <ul id="menu-barra-temp"> 39 <ul id="menu-barra-temp">
@@ -44,12 +44,22 @@ @@ -44,12 +44,22 @@
44 Barra de Governo</a></li> 44 Barra de Governo</a></li>
45 </ul> 45 </ul>
46 </div> 46 </div>
47 - </div> 47 +
48 </header> 48 </header>
  49 + </div>
  50 + <nav id="menu">
  51 + <ul>
  52 + <li id="portalservicos-contato" class="portalservicos-item">
  53 + <a href="${pageContext.request.contextPath}/media-avaliacao/orgao">Média Brasil</a><span> | </span>
  54 + </li><li id="portalservicosErrosMaisComuns" class="portalservicos-item">
  55 + <a href="${pageContext.request.contextPath}/erros-mais-comuns">Erros mais comuns</a>
  56 + </li>
  57 + </ul>
  58 + </nav>
49 <div class="contanner"> 59 <div class="contanner">
50 60
51 <a id="inicioConteudo" class="oculto">Início do Conteúdo</a> 61 <a id="inicioConteudo" class="oculto">Início do Conteúdo</a>
52 - <h2>As verificações passíveis de verificação automática representam apenas 20% (vinte por cento) do conjunto de verificações necessárias.</h2> 62 + <h2 id="alertaAvaliacaoAutomatica">As verificações passíveis de verificação automática representam apenas 20% (vinte por cento) do conjunto de verificações necessárias.</h2>
53 <!-- <div class="avaliacao"> --> 63 <!-- <div class="avaliacao"> -->
54 <!-- Início Conteudo --> 64 <!-- Início Conteudo -->
55 65
@@ -57,11 +67,23 @@ @@ -57,11 +67,23 @@
57 67
58 <!--Término Conteudo--> 68 <!--Término Conteudo-->
59 <!-- </div>--> 69 <!-- </div>-->
  70 + </div>
  71 + <div class="avaliacao ferramentas">
  72 + <h2>Ferramentas para Promover a Acessibilidade Digital</h2>
  73 + <hr>
  74 +
  75 + <img class="ferramentasAcessibilidade" alt="Ases Web - validador automático de sites" src="${pageContext.request.contextPath}/static/img/ASESWEB.jpg"><a href="http://asesweb.governoeletronico.gov.br">Ases Web - validador automático de sites <img src="${pageContext.request.contextPath}/static/img/site-ext.gif" alt="Site Externo" /></a>
  76 + <br>
  77 +
  78 + <img class="ferramentasAcessibilidade" alt="Vlibras - tradutor automático de conteúdos para LIBRAS" src="${pageContext.request.contextPath}/static/img/vlibras.png"><a href="http://www.vlibras.gov.br/">Vlibras - tradutor automático de conteúdos para LIBRAS <img src="${pageContext.request.contextPath}/static/img/site-ext.gif" alt="Site Externo" /></a><br>
  79 +
  80 + <img class="ferramentasAcessibilidade" alt="Modelo de Acessibilidade em Governo Eletrônico - eMAG" src="${pageContext.request.contextPath}/static/img/emag.png"><a href="http://emag.governoeletronico.gov.br/">Modelo de Acessibilidade em Governo Eletrônico - eMAG <img src="${pageContext.request.contextPath}/static/img/site-ext.gif" alt="Site Externo" /></a><br><br>
  81 + </div>
60 <a id="fimConteudo" class="oculto">Fim do Conteúdo</a> 82 <a id="fimConteudo" class="oculto">Fim do Conteúdo</a>
61 <div id="voltar-topo"> 83 <div id="voltar-topo">
62 <a href="#topoPagina">Voltar para o topo</a> 84 <a href="#topoPagina">Voltar para o topo</a>
63 </div> 85 </div>
64 - </div> 86 +
65 <footer id="footer-brasil"></footer> 87 <footer id="footer-brasil"></footer>
66 <script defer="defer" src="//barra.brasil.gov.br/barra.js" type="text/javascript"></script> 88 <script defer="defer" src="//barra.brasil.gov.br/barra.js" type="text/javascript"></script>
67 <script type="text/javascript" src="${pageContext.request.contextPath}/static/js/jquery-1.10.2.min.js"></script> 89 <script type="text/javascript" src="${pageContext.request.contextPath}/static/js/jquery-1.10.2.min.js"></script>
Desenvolvimento/Codificacao/e-Selo/WebContent/static/css/painelAcessibilidade.css
@@ -12,6 +12,43 @@ body { @@ -12,6 +12,43 @@ body {
12 font-family: "Open Sans", Arial, Helvetica, sans-serif; 12 font-family: "Open Sans", Arial, Helvetica, sans-serif;
13 } 13 }
14 14
  15 +.fonteVermelha{
  16 +text-align: center;
  17 +color: #ff0000;
  18 +}
  19 +
  20 +#menu {
  21 + background: #0a5517;
  22 + padding-top: 1px;
  23 + padding-bottom: 1px;
  24 + font-family: Arial, Helvetica, sans-serif;
  25 + text-align: right;
  26 +}
  27 +#menu ul{
  28 +
  29 + margin-right: 25%;
  30 +}
  31 +
  32 +#menu li{
  33 + list-style: none;
  34 + text-align: right;
  35 + margin: 0 !important;
  36 +
  37 + }
  38 +
  39 +#menu ul li{
  40 + display: inline;
  41 + color: #ffffff !important;
  42 +}
  43 + #menu ul li a{
  44 + display: inline;
  45 + color: #ffffff !important;
  46 + margin: 0;
  47 +}
  48 +
  49 + h2#alertaAvaliacaoAutomatica {
  50 + margin-left: 0;
  51 +}
15 52
16 header { 53 header {
17 width: 100%; 54 width: 100%;
@@ -44,7 +81,7 @@ header { @@ -44,7 +81,7 @@ header {
44 81
45 h2{ 82 h2{
46 font-size: 15px; 83 font-size: 15px;
47 - margin: 0; 84 + margin-left: 2.8em;
48 } 85 }
49 86
50 .oculto_visao { 87 .oculto_visao {
@@ -54,7 +91,8 @@ h2{ @@ -54,7 +91,8 @@ h2{
54 } 91 }
55 92
56 a { 93 a {
57 - text-decoration: none; 94 + text-decoration: none;
  95 + margin-left: 0.8em;
58 } 96 }
59 97
60 #barra-brasil { 98 #barra-brasil {
@@ -70,6 +108,18 @@ a { @@ -70,6 +108,18 @@ a {
70 padding: 0; 108 padding: 0;
71 } 109 }
72 110
  111 +.ferramentasAcessibilidade
  112 +{
  113 + height: 30px;
  114 + width: 30px;
  115 +}
  116 +
  117 +.ferramentas img
  118 +{
  119 + margin-top: 0.8em;
  120 + margin-left: 1em;
  121 + padding-right: 0.5em;
  122 +}
73 123
74 #accessibility { 124 #accessibility {
75 display: inline; 125 display: inline;
@@ -85,13 +135,16 @@ h1 { @@ -85,13 +135,16 @@ h1 {
85 padding-top: 50px; 135 padding-top: 50px;
86 } 136 }
87 137
  138 +h1 a {
  139 + color: #ffffff;
  140 +}
  141 +
88 #accessibility li { 142 #accessibility li {
89 display: inline; 143 display: inline;
90 } 144 }
91 145
92 #accessibility a { 146 #accessibility a {
93 color: #ffffff; 147 color: #ffffff;
94 - font-size: 1.2em;  
95 padding-right: 10px; 148 padding-right: 10px;
96 font-family: Arial, Helvetica, sans-serif; 149 font-family: Arial, Helvetica, sans-serif;
97 } 150 }
@@ -119,6 +172,7 @@ Table { @@ -119,6 +172,7 @@ Table {
119 font-size: 0.9em; 172 font-size: 0.9em;
120 } 173 }
121 174
  175 +
122 #logo { 176 #logo {
123 color: #ffffff !important; 177 color: #ffffff !important;
124 padding: 0; 178 padding: 0;
@@ -145,6 +199,7 @@ Table { @@ -145,6 +199,7 @@ Table {
145 /*background: #97aeec;*/ 199 /*background: #97aeec;*/
146 text-align: center; 200 text-align: center;
147 float: left; 201 float: left;
  202 + font-size: 12px;
148 } 203 }
149 204
150 #grafico { 205 #grafico {
@@ -341,11 +396,7 @@ a.oculto { @@ -341,11 +396,7 @@ a.oculto {
341 margin-top: 2px; 396 margin-top: 2px;
342 } 397 }
343 398
344 - #tituloTabela  
345 - {  
346 - margin-left: 10px !important;  
347 - }  
348 - 399 +
349 .mBrasil{ 400 .mBrasil{
350 margin-left: 20px; 401 margin-left: 20px;
351 } 402 }
@@ -385,7 +436,33 @@ a.oculto { @@ -385,7 +436,33 @@ a.oculto {
385 font-weight: normal; 436 font-weight: normal;
386 font-family: "Open Sans", Arial, Helvetica, sans-serif; 437 font-family: "Open Sans", Arial, Helvetica, sans-serif;
387 } 438 }
  439 +#menu {
  440 + background: #0a5517;
  441 + padding-top: 1px;
  442 + padding-bottom: 1px;
  443 + font-family: Arial, Helvetica, sans-serif;
  444 +}
388 445
  446 +.fonteVermelha{
  447 +text-align: center;
  448 +color: #ff0000;
  449 +}
  450 +#menu li{
  451 + list-style: none;
  452 + text-align: right;
  453 + margin: 0 !important;
  454 +
  455 + }
  456 +
  457 +#menu ul li{
  458 + display: inline;
  459 + color: #ffffff !important;
  460 +}
  461 + #menu ul li a{
  462 + display: inline;
  463 + color: #ffffff !important;
  464 + margin: 0;
  465 +}
389 header { 466 header {
390 width: 100%; 467 width: 100%;
391 /*Banner*/ 468 /*Banner*/
@@ -413,9 +490,13 @@ header { @@ -413,9 +490,13 @@ header {
413 490
414 h2{ 491 h2{
415 font-size: 15px; 492 font-size: 15px;
416 - margin: 0; 493 + margin-left: 2.8em;
  494 + padding-left: 2em;
417 } 495 }
418 496
  497 + h2#alertaAvaliacaoAutomatica {
  498 + margin-left: 0;
  499 +}
419 500
420 .oculto { 501 .oculto {
421 display: none; 502 display: none;
@@ -428,7 +509,8 @@ h2{ @@ -428,7 +509,8 @@ h2{
428 } 509 }
429 510
430 a { 511 a {
431 - text-decoration: none; 512 + text-decoration: none;
  513 + margin-left: 0.8em;
432 } 514 }
433 515
434 #barra-brasil { 516 #barra-brasil {
@@ -461,13 +543,16 @@ h1 { @@ -461,13 +543,16 @@ h1 {
461 font-size: 1.6em; 543 font-size: 1.6em;
462 } 544 }
463 545
  546 +h1 a {
  547 + color: #ffffff;
  548 +}
  549 +
464 #accessibility li { 550 #accessibility li {
465 display: inline; 551 display: inline;
466 } 552 }
467 553
468 #accessibility a { 554 #accessibility a {
469 - color: #ffffff;  
470 - font-size: 1.2em; 555 + color: #ffffff;
471 padding-right: 10px; 556 padding-right: 10px;
472 font-family: Arial, Helvetica, sans-serif; 557 font-family: Arial, Helvetica, sans-serif;
473 } 558 }
@@ -516,6 +601,7 @@ h1 { @@ -516,6 +601,7 @@ h1 {
516 /*background: #97aeec;*/ 601 /*background: #97aeec;*/
517 text-align: center; 602 text-align: center;
518 float: left; 603 float: left;
  604 + font-size: 12px;
519 } 605 }
520 606
521 #grafico { 607 #grafico {
@@ -576,6 +662,7 @@ table { @@ -576,6 +662,7 @@ table {
576 width: 90%; 662 width: 90%;
577 font-size: 0.6em; 663 font-size: 0.6em;
578 border-collapse: collapse; 664 border-collapse: collapse;
  665 + padding-left: 2em;
579 } 666 }
580 667
581 668
@@ -616,6 +703,7 @@ a.oculto { @@ -616,6 +703,7 @@ a.oculto {
616 margin: auto; 703 margin: auto;
617 text-align: right; 704 text-align: right;
618 font-size: 12px; 705 font-size: 12px;
  706 + padding-right: 2em;
619 } 707 }
620 708
621 #webaxscore { 709 #webaxscore {
@@ -719,8 +807,6 @@ a.oculto { @@ -719,8 +807,6 @@ a.oculto {
719 list-style: none; 807 list-style: none;
720 margin-top: 2px; 808 margin-top: 2px;
721 } 809 }
722 - #tituloTabela  
723 - {  
724 - margin-left: 10px !important;  
725 - } 810 +
  811 +
726 } 812 }
727 \ No newline at end of file 813 \ No newline at end of file
Desenvolvimento/Codificacao/e-Selo/WebContent/static/img/ASESWEB.jpg 0 → 100644

4.89 KB

Desenvolvimento/Codificacao/e-Selo/WebContent/static/img/emag.png 0 → 100644

92 KB

Desenvolvimento/Codificacao/e-Selo/WebContent/static/img/site-ext.gif 0 → 100644

79 Bytes

Desenvolvimento/Codificacao/e-Selo/WebContent/static/img/vlibras.png 0 → 100644

10.7 KB

Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/ErrosMaisComunsController.java
@@ -37,7 +37,7 @@ public class ErrosMaisComunsController { @@ -37,7 +37,7 @@ public class ErrosMaisComunsController {
37 37
38 public ErrosMaisComunsController(ErrosMaisComunsDAO _errosMaisComunsDAO, ServletContext application, Result result) throws IOException { 38 public ErrosMaisComunsController(ErrosMaisComunsDAO _errosMaisComunsDAO, ServletContext application, Result result) throws IOException {
39 super(); 39 super();
40 - errosMaisComunsDAO = _errosMaisComunsDAO; 40 + this.errosMaisComunsDAO = _errosMaisComunsDAO;
41 this.application = application; 41 this.application = application;
42 this.result = result; 42 this.result = result;
43 String fileName = "config.properties"; 43 String fileName = "config.properties";
@@ -82,7 +82,7 @@ public class ErrosMaisComunsController { @@ -82,7 +82,7 @@ public class ErrosMaisComunsController {
82 82
83 83
84 bufferOut 84 bufferOut
85 - .write(" <h2 class=\"oculto_visao\" >Gráfico com os 10 erros mais comuns.</h2> "); 85 + .write(" <h2 class=\"oculto_visao\" >Gráfico com os 10 erros mais comuns.</h2><br> ");
86 86
87 bufferOut.write("<ul class=\"oculto_visao\" > "); 87 bufferOut.write("<ul class=\"oculto_visao\" > ");
88 88
@@ -239,7 +239,7 @@ public class ErrosMaisComunsController { @@ -239,7 +239,7 @@ public class ErrosMaisComunsController {
239 //inicio Avaliação 239 //inicio Avaliação
240 240
241 bufferOut 241 bufferOut
242 - .write(" <a href=\"/painelAcessibilidade\">Voltar ao painel de acessibilidade</a>\n"); 242 + .write(" <a href=\"/painel-acessibilidade\">Voltar ao painel de acessibilidade</a>\n");
243 bufferOut.write(" <div class=\"avaliacao\"> "); 243 bufferOut.write(" <div class=\"avaliacao\"> ");
244 244
245 bufferOut.write(" <h2 id=\"tituloTabela\">Outros erros mais comuns</h2>"); 245 bufferOut.write(" <h2 id=\"tituloTabela\">Outros erros mais comuns</h2>");
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/PainelAcessibilidadeController.java
@@ -6,19 +6,29 @@ import java.io.BufferedReader; @@ -6,19 +6,29 @@ import java.io.BufferedReader;
6 import java.io.File; 6 import java.io.File;
7 import java.io.FileInputStream; 7 import java.io.FileInputStream;
8 import java.io.FileNotFoundException; 8 import java.io.FileNotFoundException;
  9 +import java.io.FileOutputStream;
9 import java.io.IOException; 10 import java.io.IOException;
10 import java.io.InputStream; 11 import java.io.InputStream;
11 import java.io.InputStreamReader; 12 import java.io.InputStreamReader;
  13 +import java.io.OutputStreamWriter;
  14 +import java.io.UnsupportedEncodingException;
12 import java.net.MalformedURLException; 15 import java.net.MalformedURLException;
13 import java.sql.Date; 16 import java.sql.Date;
  17 +import java.text.DecimalFormat;
14 import java.util.ArrayList; 18 import java.util.ArrayList;
  19 +import java.util.HashMap;
15 import java.util.List; 20 import java.util.List;
  21 +import java.util.Map;
16 import java.util.Properties; 22 import java.util.Properties;
17 23
18 import javax.servlet.ServletContext; 24 import javax.servlet.ServletContext;
  25 +import javax.servlet.ServletOutputStream;
  26 +import javax.servlet.http.HttpServletResponse;
19 import javax.ws.rs.QueryParam; 27 import javax.ws.rs.QueryParam;
20 28
21 import org.apache.regexp.REUtil; 29 import org.apache.regexp.REUtil;
  30 +import org.hibernate.cfg.AnnotationConfiguration;
  31 +import org.hibernate.cfg.Configuration;
22 import org.slf4j.Logger; 32 import org.slf4j.Logger;
23 import org.slf4j.LoggerFactory; 33 import org.slf4j.LoggerFactory;
24 34
@@ -29,15 +39,19 @@ import br.com.caelum.vraptor.Resource; @@ -29,15 +39,19 @@ import br.com.caelum.vraptor.Resource;
29 import br.com.caelum.vraptor.Result; 39 import br.com.caelum.vraptor.Result;
30 import br.com.caelum.vraptor.Validator; 40 import br.com.caelum.vraptor.Validator;
31 import br.com.caelum.vraptor.ioc.spring.VRaptorRequestHolder; 41 import br.com.caelum.vraptor.ioc.spring.VRaptorRequestHolder;
  42 +import br.com.caelum.vraptor.view.Results;
32 import br.com.eselo.component.Mailer; 43 import br.com.eselo.component.Mailer;
33 import br.com.eselo.component.URLNormalizer; 44 import br.com.eselo.component.URLNormalizer;
34 import br.com.eselo.component.Util; 45 import br.com.eselo.component.Util;
35 import br.com.eselo.conversor.ESeloDateConverter; 46 import br.com.eselo.conversor.ESeloDateConverter;
36 import br.com.eselo.dao.ErrosMaisComunsDAO; 47 import br.com.eselo.dao.ErrosMaisComunsDAO;
37 import br.com.eselo.dao.MediaAvaliacaoDAO; 48 import br.com.eselo.dao.MediaAvaliacaoDAO;
  49 +import br.com.eselo.dao.RelatoriosFadDAO;
38 import br.com.eselo.dao.UrlDAO; 50 import br.com.eselo.dao.UrlDAO;
  51 +import br.com.eselo.model.ErrosMaisComuns;
39 import br.com.eselo.model.GraficoMediaAvaliacao; 52 import br.com.eselo.model.GraficoMediaAvaliacao;
40 import br.com.eselo.model.MediaAvaliacao; 53 import br.com.eselo.model.MediaAvaliacao;
  54 +import br.com.eselo.model.RelatoriosFad;
41 import br.com.eselo.model.UltimaAvaliacao; 55 import br.com.eselo.model.UltimaAvaliacao;
42 import br.com.eselo.model.Url; 56 import br.com.eselo.model.Url;
43 57
@@ -49,17 +63,27 @@ public class PainelAcessibilidadeController { @@ -49,17 +63,27 @@ public class PainelAcessibilidadeController {
49 private Result result; 63 private Result result;
50 private Validator validator; 64 private Validator validator;
51 private final UrlDAO daoUrl; 65 private final UrlDAO daoUrl;
  66 + private final ErrosMaisComunsDAO errosMaisComunsDAO;
52 private final MediaAvaliacaoDAO mediaAvaliacaoDAO; 67 private final MediaAvaliacaoDAO mediaAvaliacaoDAO;
  68 + private final RelatoriosFadDAO relatoriosFadDAO;
53 private static final String PAINEL_AGREGADO = "eselo.config.avaliacao.painelAgregado"; 69 private static final String PAINEL_AGREGADO = "eselo.config.avaliacao.painelAgregado";
54 private final Properties properties = new Properties(); 70 private final Properties properties = new Properties();
55 private ServletContext application; 71 private ServletContext application;
56 72
57 - public PainelAcessibilidadeController(Result result, Validator validator, UrlDAO _dao, MediaAvaliacaoDAO _mediaAvaliacaoDAO, ServletContext application) throws IOException{ 73 + private static final String HOST = "eselo.config.buscaRelatorioFAD.host";
  74 + private static final String USUARIO = "eselo.config.buscaRelatorioFAD.usuario";
  75 + private static final String SENHA = "eselo.config.buscaRelatorioFAD.senha";
  76 + private static final String DBNAME = "eselo.config.buscaRelatorioFAD.dbname";
  77 +
  78 + public PainelAcessibilidadeController(ErrosMaisComunsDAO _errosMaisComunsDAO, Result result, Validator validator, UrlDAO _dao, MediaAvaliacaoDAO _mediaAvaliacaoDAO, ServletContext application, RelatoriosFadDAO _relatoriosFadDAO) throws IOException{
  79 +
  80 + this.errosMaisComunsDAO = _errosMaisComunsDAO;
58 this.result = result; 81 this.result = result;
59 this.validator = validator; 82 this.validator = validator;
60 this.daoUrl = _dao; 83 this.daoUrl = _dao;
61 this.mediaAvaliacaoDAO = _mediaAvaliacaoDAO; 84 this.mediaAvaliacaoDAO = _mediaAvaliacaoDAO;
62 this.application = application; 85 this.application = application;
  86 + this.relatoriosFadDAO = _relatoriosFadDAO;
63 87
64 String fileName = "config.properties"; 88 String fileName = "config.properties";
65 InputStream stream = Mailer.class.getResourceAsStream("/" + fileName); 89 InputStream stream = Mailer.class.getResourceAsStream("/" + fileName);
@@ -73,8 +97,9 @@ public class PainelAcessibilidadeController { @@ -73,8 +97,9 @@ public class PainelAcessibilidadeController {
73 } 97 }
74 } 98 }
75 99
76 - @Get("/painelAcessibilidade")  
77 - public void painelAcessibilidade() { 100 + @Get("/erros-mais-comuns")
  101 + public void errosMaisComuns() {
  102 +
78 103
79 File diretorioHtml = new File(properties.getProperty(PAINEL_AGREGADO) + "/painelAgregado.txt"); 104 File diretorioHtml = new File(properties.getProperty(PAINEL_AGREGADO) + "/painelAgregado.txt");
80 105
@@ -130,6 +155,11 @@ public class PainelAcessibilidadeController { @@ -130,6 +155,11 @@ public class PainelAcessibilidadeController {
130 } 155 }
131 156
132 157
  158 +
  159 +
  160 +
  161 +
  162 +
133 @Get 163 @Get
134 @Path("/media-avaliacao/{tipo}/{id}/{nome}/{media}") 164 @Path("/media-avaliacao/{tipo}/{id}/{nome}/{media}")
135 public void mediaAvaliacao(String tipo, String id,String nome, Double media) { 165 public void mediaAvaliacao(String tipo, String id,String nome, Double media) {
@@ -159,6 +189,10 @@ public class PainelAcessibilidadeController { @@ -159,6 +189,10 @@ public class PainelAcessibilidadeController {
159 189
160 boolean existe = false; 190 boolean existe = false;
161 191
  192 + if(!tipo.equalsIgnoreCase("dominio"))
  193 + {
  194 + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("exibirTabelaRelatorio", false);
  195 + }
162 switch (tipo) { 196 switch (tipo) {
163 197
164 case "orgao": novoTipo="dominio"; 198 case "orgao": novoTipo="dominio";
@@ -194,7 +228,8 @@ public class PainelAcessibilidadeController { @@ -194,7 +228,8 @@ public class PainelAcessibilidadeController {
194 caminhoLink.setNome("Órgão: " + nome + " - " + media); 228 caminhoLink.setNome("Órgão: " + nome + " - " + media);
195 caminhoLink.setLink("/media-avaliacao/dominio/"+ id + "/" + nome + "/" + media); 229 caminhoLink.setLink("/media-avaliacao/dominio/"+ id + "/" + nome + "/" + media);
196 caminhoLink.setClasse("orgao"); 230 caminhoLink.setClasse("orgao");
197 - 231 + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("exibirTabelaRelatorio", true);
  232 + buscarRelatorios(id);
198 existe = false; 233 existe = false;
199 234
200 for (int i = 0; i < lsCaminhoAvaliacao.size(); i++) { 235 for (int i = 0; i < lsCaminhoAvaliacao.size(); i++) {
@@ -330,7 +365,7 @@ public class PainelAcessibilidadeController { @@ -330,7 +365,7 @@ public class PainelAcessibilidadeController {
330 365
331 366
332 VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("ultimaAvaliacao", Util.convertDataBrasil(dataUltimaAvaliacao.getData_ultima_avaliacao())); 367 VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("ultimaAvaliacao", Util.convertDataBrasil(dataUltimaAvaliacao.getData_ultima_avaliacao()));
333 - 368 + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("exibirTabelaRelatorio", false);
334 369
335 } 370 }
336 371
@@ -468,6 +503,333 @@ for (GraficoMediaAvaliacao graficoMediaAvaliacao : lsGraficoMediaAvaliacao) { @@ -468,6 +503,333 @@ for (GraficoMediaAvaliacao graficoMediaAvaliacao : lsGraficoMediaAvaliacao) {
468 503
469 } 504 }
470 505
  506 +
  507 +
  508 + //@Get
  509 + //@Path("/painel-acessibilidade/{id}")
  510 + //public void painelAcessibilidade(int id) {
  511 + public void buscarRelatorios(String id) {
  512 +
  513 +
  514 + Map<String,byte[]> relatorio = new HashMap<String,byte[]>();
  515 + Map<String,byte[]> planoTrabalho = new HashMap<String,byte[]>();
  516 +
  517 + List<RelatoriosFad> lsRelatoriosFad = relatoriosFadDAO.retornarRelatoriosFad(id, properties.getProperty(HOST), properties.getProperty(DBNAME), properties.getProperty(USUARIO), properties.getProperty(SENHA));
  518 +
  519 + for (RelatoriosFad relatoriosFad : lsRelatoriosFad) {
  520 + relatorio.put(relatoriosFad.getId().toString(), relatoriosFad.getArquivo_fad());
  521 + planoTrabalho.put(relatoriosFad.getId().toString(), relatoriosFad.getArquivo_plano());
  522 + }
  523 +
  524 +
  525 + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("lsRelatoriosFad", lsRelatoriosFad);
  526 + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("relatorio", relatorio);
  527 + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("planoTrabalho", planoTrabalho);
  528 +
  529 + //serve para escolher qual tabela carregar(orgão ou os domínios com seus relatórios para download
  530 + result.include("carregamento", "dominios");
  531 +
  532 + }
  533 +
  534 + @Get
  535 + @Path("/painel-acessibilidade/{id}/{relatorio_plTrabalho}")
  536 + public void painelAcessibilidade(String id, String relatorio_plTrabalho, HttpServletResponse response) {
  537 + Map<String,byte[]> relatorio;
  538 + Map<String,byte[]> planoTrabalho;
  539 +
  540 + String keyToSearch = id;
  541 + byte[] dados = null;
  542 + String nome = "";
  543 + if(relatorio_plTrabalho.equalsIgnoreCase("fad"))
  544 + {
  545 + relatorio = (Map<String, byte[]>) VRaptorRequestHolder.currentRequest().getServletContext().getAttribute("relatorio");
  546 +
  547 + if ( relatorio.containsKey( keyToSearch ) ) {
  548 +
  549 + try {
  550 + dados = relatorio.get(keyToSearch);
  551 + nome = "Relatório Circunstanciado.pdf";
  552 +
  553 + response.setContentType("inline/download");
  554 + String arq = "attachment;filename=" + nome;
  555 + response.setHeader("Content-Disposition", arq);
  556 + ServletOutputStream os;
  557 +
  558 + os = response.getOutputStream();
  559 + os.write(dados);
  560 + os.flush();
  561 + os.close();
  562 +
  563 + } catch (IOException e) {
  564 + e.printStackTrace();
  565 + }
  566 +
  567 + }else{
  568 + System.err.println("Chave não existe");
  569 + }
  570 +
  571 + }else if(relatorio_plTrabalho.equalsIgnoreCase("plano"))
  572 + {
  573 + planoTrabalho = (Map<String, byte[]>) VRaptorRequestHolder.currentRequest().getServletContext().getAttribute("planoTrabalho");
  574 +
  575 + if ( planoTrabalho.containsKey( keyToSearch ) ) {
  576 +
  577 + try {
  578 + dados = planoTrabalho.get(keyToSearch);
  579 + nome = "Plano de trabalho.pdf";
  580 +
  581 + response.setContentType("inline/download");
  582 + String arq = "attachment;filename=" + nome;
  583 + response.setHeader("Content-Disposition", arq);
  584 + ServletOutputStream os;
  585 +
  586 + os = response.getOutputStream();
  587 + os.write(dados);
  588 + os.flush();
  589 + os.close();
  590 +
  591 + } catch (IOException e) {
  592 + e.printStackTrace();
  593 + }
  594 +
  595 + }else{
  596 + System.err.println("Chave não existe");
  597 + }
  598 +
  599 + }
  600 +
  601 +
  602 + result.include("grafico_js", "<script type=\"text/javascript\" src=\"/static/js/chartMediaAvaliacao.js\"></script>");
  603 + }
  604 +
  605 + @Get("/painel-acessibilidade")
  606 + public void painelAcessibilidade() {
  607 +
  608 +
  609 + List<ErrosMaisComuns> lsErrosMaisComuns = errosMaisComunsDAO.errosMaisComuns();
  610 + File painelAgregado = new File(properties.getProperty(PAINEL_AGREGADO));
  611 + StringBuffer html = new StringBuffer();
  612 +
  613 + Double mediaBrasil;
  614 +
  615 + List<GraficoMediaAvaliacao> lsGraficoMediaAvaliacao = mediaAvaliacaoDAO.gerarGraficoMediaAvaliacao("governo federal", null, 4);
  616 +
  617 +
  618 +
  619 + mediaBrasil = buscaMediaBrasil(lsGraficoMediaAvaliacao);
  620 +
  621 +
  622 +
  623 + String webaxscore = "";
  624 +
  625 + if (mediaBrasil >= 95) {
  626 + webaxscore = "bom";
  627 + } else if (mediaBrasil >= 85 & mediaBrasil < 95) {
  628 + webaxscore = "razoavel";
  629 + } else if (mediaBrasil >= 70 & mediaBrasil < 85) {
  630 + webaxscore = "ruim";
  631 + }else {
  632 + webaxscore = "pessimo";
  633 + }
  634 +
  635 +
  636 + html.append(" <div class=\"logoAvaliacao\"> ");
  637 + html.append(" <div id=\"emag\"> ");
  638 + html.append(" <label>eMAG v 3.1</label> ");
  639 + html.append(" </div> ");
  640 +
  641 + html.append(" <div id=\"testesAutomaticos\"> \n");
  642 + //bufferOut.write(" <label>Testes Automáticos<br> Nota: " + resumoAvaliacao.getValor() + "/100</label> </div> ");
  643 +
  644 + html.append(" <div class=\"cell width-5 position-2 >\n");
  645 +
  646 +
  647 + html.append(" <div id=\"block\">\n");
  648 + html.append(" <div id=\"webaxscore\" class=\"scoreB_" + webaxscore + "\">Porcentagem");
  649 + html.append(" <strong>Média</strong>");
  650 + html.append(" <span>" + mediaBrasil +"%</span>\n");
  651 + html.append(" </div>\n");
  652 + html.append(" </div>\n");
  653 +
  654 + //bufferOut.write(" <br>");
  655 +
  656 +
  657 + html.append("<div id=\"legenda\" >\n");
  658 + html.append("<label>Legenda</label><br>");
  659 + html.append("<ul>");
  660 + html.append(" <li class=\"legenda\"><img id=\"bom\" alt=\"farol verde, média maior ou igual a 95%\" src=\"/static/img/verde.png\"></li>");
  661 + html.append(" <li class=\"legenda\"><img id=\"razoavel\" alt=\"farol amarela, média maior ou igual a 85% e menor que 95%\" src=\"/static/img/amarelo.png\"></li>");
  662 + html.append(" <li class=\"legenda\"><img id=\"ruim\" alt=\"farol laranja, média maior ou igual a 70% e menor que 85%\" src=\"/static/img/laranja.png\"></li>");
  663 + html.append(" <li class=\"legenda\"><img id=\"pessimo\" alt=\"farol vermelho, média menor que 70%\" src=\"/static/img/vermelho.png\"></li>");
  664 + html.append("</ul>");
  665 + html.append("</div>");
  666 +
  667 + html.append(" </div>");
  668 +
  669 + html.append(" <div id=\"grafico2\"> ");
  670 + html.append(" <h2 class=\"oculto_visao\">Gráfico com as notas das últimas avaliações ordenada da mais antiga para a mais atual, limitado até quatro avaliações.</h2> ");
  671 + html.append(" <ul class=\"oculto_visao\"> ");
  672 +
  673 + int qntAvaliacoes = 0;
  674 +
  675 + String dataAvaliacao = "";
  676 +
  677 +
  678 +
  679 + for (GraficoMediaAvaliacao graficoMediaAvaliacao : lsGraficoMediaAvaliacao) {
  680 +
  681 + mediaBrasil += graficoMediaAvaliacao.getMedia();
  682 +
  683 + qntAvaliacoes++;
  684 +
  685 + //dataAvaliacao = graficoMediaAvaliacao.getIdAgendamento().substring(6, 8) + "/";
  686 + dataAvaliacao = graficoMediaAvaliacao.getIdAgendamento().substring(4, 6) + "/";
  687 + dataAvaliacao += graficoMediaAvaliacao.getIdAgendamento().substring(0, 4);
  688 +
  689 + html.append(" <li>Média "+ qntAvaliacoes + ": <span id=\"media"+ qntAvaliacoes +"\">"+graficoMediaAvaliacao.getMedia()+"</span><span>Data da avaliação: </span><span id=\"data" + qntAvaliacoes + "\">"+ dataAvaliacao +"</span></li>");
  690 +
  691 + }
  692 +
  693 +
  694 + html.append(" </ul> ");
  695 + html.append(" <label id=\"qntAvaliacoes\" class=\"oculto\">"+ qntAvaliacoes +"</label> ");
  696 + //html.append(" <label id=\"qntAvaliacoes\" >"+ legenda +"</label> ");
  697 +
  698 + html.append(" <div class=\"myChart\"> ");
  699 + html.append(" <iframe class=\"chartjs-hidden-iframe\" ");
  700 + html.append(" style=\"width: 100%; display: block; border: 0px; height: 0px; margin: 0px; position: absolute; left: 0px; right: 0px; top: 0px; bottom: 0px;\"></iframe> ");
  701 + html.append(" <canvas id=\"myChartMediaAvaliacao\" style=\"width: 420px; height: 210px;\" ");
  702 + html.append(" width=\"420\" height=\"210\"></canvas> ");
  703 + html.append(" </div> ");
  704 + html.append(" </div> ");
  705 + html.append(" </div> ");
  706 +
  707 +
  708 + long total = 0;
  709 + double percentual = 0;
  710 + long totalDezErrosMaisComuns = 0;
  711 + double qntErro;
  712 +
  713 + int i = 0;
  714 + for (ErrosMaisComuns errosMaisComuns : lsErrosMaisComuns) {
  715 +
  716 + if(errosMaisComuns.getDescricao().equalsIgnoreCase("Total"))
  717 + {
  718 + total = errosMaisComuns.getQtd_erros();
  719 + }
  720 + else
  721 + {
  722 + qntErro = errosMaisComuns.getQtd_erros() * 100;
  723 + percentual = qntErro/total;
  724 + totalDezErrosMaisComuns = totalDezErrosMaisComuns + errosMaisComuns.getQtd_erros();
  725 +
  726 + DecimalFormat df = new DecimalFormat("0.##");
  727 +
  728 + i++;
  729 + //html.append("<li >erro: <span id=\"erro" + i +"\">" + "Erro: " + i + "</span><span>" + errosMaisComuns.getDescricao() + "</span> <span id=\"p_erro" + i + "\">" + df.format(percentual) + "</span></li>");
  730 + }
  731 + }
  732 +
  733 + qntErro = (total - totalDezErrosMaisComuns) * 100;
  734 + percentual = qntErro/total;
  735 +
  736 + DecimalFormat df = new DecimalFormat("0.##");
  737 +
  738 +
  739 +
  740 + //inicio Avaliação
  741 + html.append(" <div class=\"avaliacao\"> ");
  742 +
  743 +
  744 + html.append(" <h2 id=\"tituloTabela\">Os 10 erros mais comuns</h2><br>");
  745 + //inicio tabela
  746 + html.append(" <table> ");
  747 + html.append(" <thead> ");
  748 + html.append(" <tr><th colspan=\"3\"> Testes Automáticos</th></tr>");
  749 + html.append(" <tr> ");
  750 + html.append(" <th id=\"erro_numero\">Erro n°</th> ");
  751 + html.append(" <th id=\"erro\">Erro</th> ");
  752 + html.append(" <th id=\"incidencia\">Incidência</th> ");
  753 +
  754 +
  755 +
  756 +
  757 +
  758 + total = 0;
  759 + percentual = 0;
  760 + totalDezErrosMaisComuns = 0;
  761 + qntErro = 0;
  762 + Integer erro_numero = 0;
  763 +
  764 + for (ErrosMaisComuns errosMaisComuns : lsErrosMaisComuns) {
  765 +
  766 + if(errosMaisComuns.getDescricao().equalsIgnoreCase("Total"))
  767 + {
  768 + total = errosMaisComuns.getQtd_erros();
  769 + }
  770 + else
  771 + {
  772 + qntErro = errosMaisComuns.getQtd_erros() * 100.00;
  773 + percentual = qntErro/total;
  774 + totalDezErrosMaisComuns = totalDezErrosMaisComuns + errosMaisComuns.getQtd_erros();
  775 +
  776 + erro_numero++;
  777 +
  778 + DecimalFormat df2 = new DecimalFormat("0.##");
  779 + html.append(" <tr> ");
  780 + html.append(" <td headers=\"erro_numero\" class=\"celula\"> " + erro_numero + " </td> ");
  781 + html.append(" <td headers=\"erro\" class=\"celula\"> " + errosMaisComuns.getDescricao() + " </td> ");
  782 + html.append(" <td headers=\"incidencia\" class=\"celula\"> " + df2.format(percentual) + "% </td> ");
  783 + html.append(" </tr> ");
  784 + }
  785 + }
  786 +
  787 + qntErro = (total - totalDezErrosMaisComuns) * 100.00;
  788 + percentual = qntErro/total;
  789 +
  790 + DecimalFormat df2 = new DecimalFormat("0.##");
  791 +
  792 + erro_numero++;
  793 +
  794 + html.append(" <tr> ");
  795 + html.append(" <td headers=\"erro_numero\" class=\"celula\"> " + erro_numero + " </td> ");
  796 + html.append(" <td headers=\"erroMaisComum\" class=\"celula\"> <a href=\"/outros-erros-mais-comuns\"> Outros </a></td> ");
  797 + html.append(" <td headers=\"percentual\" class=\"celula\">" + df2.format(percentual) + "%</td> ");
  798 + html.append(" <tr> ");
  799 +
  800 + html.append(" </tbody> ");
  801 + html.append(" </table> <br>");
  802 + html.append(" </div> ");
  803 + //fim Avaliação
  804 +
  805 +
  806 + //inicio Erros mais comuns
  807 +
  808 + String novoTipo = "";
  809 +
  810 + UltimaAvaliacao dataUltimaAvaliacao = mediaAvaliacaoDAO.ultimaAvaliacao();
  811 + List<MediaAvaliacao> lsMediaAvaliacao = mediaAvaliacaoDAO.mediaAvaliacao("orgao", null);
  812 +
  813 +
  814 + //serve para escolher qual tabela carregar(orgão ou os domínios com seus relatórios para download
  815 + result.include("carregamento", "orgao");
  816 +
  817 + result.include("html", html.toString());
  818 + result.include("lsMediaAvaliacao", lsMediaAvaliacao);
  819 + result.include("tipo", "Órgãos");
  820 + result.include("novoTipo", "dominio");
  821 + result.include("nomeTotal", "domínios");
  822 + result.include("legenda", "Média Brasil: gov.br");
  823 + result.include("grafico_js", "<script type=\"text/javascript\" src=\"/static/js/chartMediaAvaliacao.js\"></script>");
  824 + //gerarGrafico("governo federal", null, "Média Brasil: gov.br", true, 0);
  825 +
  826 +
  827 +
  828 +
  829 + //fim Erros mais comuns
  830 +
  831 + }
  832 +
471 833
472 public class CaminhoLink 834 public class CaminhoLink
473 { 835 {
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/AgendamentoAvaliacaoUrlDAO.java 0 → 100644
@@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
  1 +package br.com.eselo.dao;
  2 +
  3 +import org.hibernate.Session;
  4 +
  5 +import br.com.caelum.vraptor.ioc.Component;
  6 +import br.com.eselo.model.AgendamentoAvaliacaoUrl;
  7 +
  8 +@Component
  9 +public class AgendamentoAvaliacaoUrlDAO extends GenericDAO<AgendamentoAvaliacaoUrl>{
  10 +
  11 + public AgendamentoAvaliacaoUrlDAO(Session _session) {
  12 + super(_session);
  13 + }
  14 +
  15 +}
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/GenericDAO.java
@@ -72,14 +72,12 @@ public abstract class GenericDAO&lt;T&gt; { @@ -72,14 +72,12 @@ public abstract class GenericDAO&lt;T&gt; {
72 72
73 public void save(T entity) throws HibernateException { 73 public void save(T entity) throws HibernateException {
74 try { 74 try {
75 - System.out.println("iniciar salvar");  
76 this.session.save(entity); 75 this.session.save(entity);
77 this.session.flush(); 76 this.session.flush();
78 } catch (HibernateException e) { 77 } catch (HibernateException e) {
79 - System.out.println("erro salvar");  
80 logger.debug(e.getMessage()); 78 logger.debug(e.getMessage());
81 System.out.println(e.getMessage()); 79 System.out.println(e.getMessage());
82 - throw e; 80 + //throw e;
83 } 81 }
84 } 82 }
85 83
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/RelatoriosFadDAO.java 0 → 100644
@@ -0,0 +1,67 @@ @@ -0,0 +1,67 @@
  1 +package br.com.eselo.dao;
  2 +
  3 +import java.io.InputStream;
  4 +import java.util.ArrayList;
  5 +import java.util.List;
  6 +import java.util.Properties;
  7 +
  8 +import org.hibernate.SQLQuery;
  9 +import org.hibernate.Session;
  10 +import org.hibernate.cfg.AnnotationConfiguration;
  11 +import org.hibernate.cfg.Configuration;
  12 +
  13 +import br.com.caelum.vraptor.ioc.Component;
  14 +import br.com.eselo.component.Mailer;
  15 +import br.com.eselo.model.RelatoriosFad;
  16 +
  17 +
  18 +@Component
  19 +public class RelatoriosFadDAO extends GenericDAO<RelatoriosFad>{
  20 +
  21 + public RelatoriosFadDAO(Session _session) {
  22 +
  23 + super(_session);
  24 + }
  25 +
  26 +
  27 + /*public Configuration getConfig() {
  28 +
  29 + Configuration config = new AnnotationConfiguration()
  30 + .addAnnotatedClass(RelatoriosFad.class)
  31 + .setProperty("hibernate.connection.driver_class", "org.postgresql.Driver")
  32 + .setProperty("hibernate.connection.url", "jdbc:postgresql://localhost/relatorioCircunstanciado")
  33 + .setProperty("hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect")
  34 + .setProperty("hibernate.connection.username", "postgres")
  35 + .setProperty("hibernate.connection.password", "postgree")
  36 + .setProperty("hibernate.show_sql", "true");
  37 +
  38 + return config;
  39 + }*/
  40 +
  41 + public List<RelatoriosFad> retornarRelatoriosFad(String id, String host, String dbname, String usuario, String senha) {
  42 + List<RelatoriosFad> lsRelatoriosFad = new ArrayList<RelatoriosFad>();
  43 + StringBuffer query = new StringBuffer();
  44 +
  45 + //query.append(" SELECT * FROM RetornaRelatorioCircunstanciado("+ id +") AS (id_questionario integer, ");
  46 + //query.append(" no_unidade_plano text, dt_rel timestamp with time zone, id_plano_trabalho integer, ");
  47 + //query.append(" id_unidade integer, nome_plano text, arquivo_plano bytea, nome_fad text, arquivo_fad bytea); ");
  48 +
  49 + //Configuration config = getConfig();
  50 +
  51 + //Session sessao = config.buildSessionFactory().openSession();
  52 + query.append(" SELECT * FROM dblink('hostaddr="+ host +" dbname="+ dbname +" user=" + usuario + " password="+ senha +"', 'select * from RetornaRelatorioCircunstanciado("+ id +") ");
  53 + query.append(" AS (id_questionario integer, no_unidade_plano text, dt_rel timestamp with time zone, id_plano_trabalho integer, id_unidade integer, nome_plano text, arquivo_plano bytea, nome_fad text, arquivo_fad bytea)')");
  54 + query.append(" AS rel_circ(id_questionario integer, no_unidade_plano text, dt_rel timestamp with time zone, id_plano_trabalho integer, id_unidade integer, nome_plano text, arquivo_plano bytea, nome_fad text, arquivo_fad bytea)");
  55 +
  56 + SQLQuery sqlQuery = session.createSQLQuery(query.toString());
  57 + sqlQuery.addEntity(RelatoriosFad.class);
  58 + List list = sqlQuery.list();
  59 +
  60 + for (Object object : list) {
  61 + lsRelatoriosFad.add((RelatoriosFad) object);
  62 + }
  63 +
  64 + return lsRelatoriosFad;
  65 + }
  66 +
  67 +}
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/AgendamentoAvaliacaoUrl.java 0 → 100644
@@ -0,0 +1,55 @@ @@ -0,0 +1,55 @@
  1 +package br.com.eselo.model;
  2 +
  3 +import java.util.Date;
  4 +
  5 +import javax.persistence.Column;
  6 +import javax.persistence.Entity;
  7 +import javax.persistence.GeneratedValue;
  8 +import javax.persistence.Id;
  9 +import javax.persistence.Table;
  10 +import javax.persistence.Temporal;
  11 +import javax.persistence.TemporalType;
  12 +
  13 +@Entity
  14 +@Table(name = "sel_solicita_agendamento_url")
  15 +public class AgendamentoAvaliacaoUrl {
  16 +
  17 + @Id
  18 + @GeneratedValue
  19 + @Column(name = "id_solicitacao_url", columnDefinition = "serial", unique = true, nullable = false)
  20 + private Long id;
  21 +
  22 + private String url;
  23 +
  24 + @Temporal(TemporalType.TIMESTAMP)
  25 + private Date dt_solicitacao;
  26 +
  27 + private String status;
  28 +
  29 + public Long getId() {
  30 + return id;
  31 + }
  32 + public void setId(Long id) {
  33 + this.id = id;
  34 + }
  35 + public String getUrl() {
  36 + return url;
  37 + }
  38 + public void setUrl(String url) {
  39 + this.url = url;
  40 + }
  41 + public Date getDt_solicitacao() {
  42 + return dt_solicitacao;
  43 + }
  44 + public void setDt_solicitacao(Date dt_solicitacao) {
  45 + this.dt_solicitacao = dt_solicitacao;
  46 + }
  47 + public String getStatus() {
  48 + return status;
  49 + }
  50 + public void setStatus(String status) {
  51 + this.status = status;
  52 + }
  53 +
  54 +
  55 +}
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/RelatoriosFad.java 0 → 100644
@@ -0,0 +1,114 @@ @@ -0,0 +1,114 @@
  1 +package br.com.eselo.model;
  2 +
  3 +import java.util.Date;
  4 +
  5 +import javax.persistence.Column;
  6 +import javax.persistence.Entity;
  7 +import javax.persistence.GeneratedValue;
  8 +import javax.persistence.Id;
  9 +import javax.persistence.Table;
  10 +import javax.persistence.Temporal;
  11 +import javax.persistence.TemporalType;
  12 +
  13 +@Entity
  14 +@Table(name = "sel_relarorios_fad")
  15 +public class RelatoriosFad {
  16 +
  17 + @Id
  18 + @GeneratedValue
  19 + @Column(name = "id_questionario", columnDefinition = "serial", unique = true, nullable = false)
  20 + private Long id;
  21 +
  22 + private String no_unidade_plano;
  23 +
  24 + @Temporal(TemporalType.TIMESTAMP)
  25 + private Date dt_rel;
  26 +
  27 + private Long id_plano_trabalho;
  28 +
  29 + private Long id_unidade;
  30 +
  31 + private String nome_plano;
  32 +
  33 + private byte[] arquivo_plano;
  34 +
  35 + private String nome_fad;
  36 +
  37 + private byte[] arquivo_fad;
  38 +
  39 + public Long getId() {
  40 + return id;
  41 + }
  42 +
  43 + public void setId(Long id) {
  44 + this.id = id;
  45 + }
  46 +
  47 + public String getNo_unidade_plano() {
  48 + return no_unidade_plano;
  49 + }
  50 +
  51 + public void setNo_unidade_plano(String no_unidade_plano) {
  52 + this.no_unidade_plano = no_unidade_plano;
  53 + }
  54 +
  55 + public Date getDt_rel() {
  56 + return dt_rel;
  57 + }
  58 +
  59 + public void setDt_rel(Date dt_rel) {
  60 + this.dt_rel = dt_rel;
  61 + }
  62 +
  63 +
  64 + public Long getId_plano_trabalho() {
  65 + return id_plano_trabalho;
  66 + }
  67 +
  68 + public void setId_plano_trabalho(Long id_plano_trabalho) {
  69 + this.id_plano_trabalho = id_plano_trabalho;
  70 + }
  71 +
  72 + public Long getId_unidade() {
  73 + return id_unidade;
  74 + }
  75 +
  76 + public void setId_unidade(Long id_unidade) {
  77 + this.id_unidade = id_unidade;
  78 + }
  79 +
  80 + public String getNome_plano() {
  81 + return nome_plano;
  82 + }
  83 +
  84 + public void setNome_plano(String nome_plano) {
  85 + this.nome_plano = nome_plano;
  86 + }
  87 +
  88 + public byte[] getArquivo_plano() {
  89 + return arquivo_plano;
  90 + }
  91 +
  92 + public void setArquivo_plano(byte[] arquivo_plano) {
  93 + this.arquivo_plano = arquivo_plano;
  94 + }
  95 +
  96 + public String getNome_fad() {
  97 + return nome_fad;
  98 + }
  99 +
  100 + public void setNome_fad(String nome_fad) {
  101 + this.nome_fad = nome_fad;
  102 + }
  103 +
  104 + public byte[] getArquivo_fad() {
  105 + return arquivo_fad;
  106 + }
  107 +
  108 + public void setArquivo_fad(byte[] arquivo_fad) {
  109 + this.arquivo_fad = arquivo_fad;
  110 + }
  111 +
  112 +
  113 +
  114 +}
Desenvolvimento/Codificacao/e-Selo/src/main/resources/config.properties
@@ -12,4 +12,12 @@ eselo.config.avaliacao.painelAgregado=/var/www/arquivo/painel/painelAgregado @@ -12,4 +12,12 @@ eselo.config.avaliacao.painelAgregado=/var/www/arquivo/painel/painelAgregado
12 12
13 #eselo.config.avaliacao.enderecoHtml=http://localhost:18080/eselo/arquivosHtml/ 13 #eselo.config.avaliacao.enderecoHtml=http://localhost:18080/eselo/arquivosHtml/
14 #eselo.config.avaliacao.enderecoHtml=http://189.9.137.162:8080/eselo/arquivosHtml/ 14 #eselo.config.avaliacao.enderecoHtml=http://189.9.137.162:8080/eselo/arquivosHtml/
15 -eselo.config.avaliacao.enderecoHtml=http://eselo-prd.brazilsouth.cloudapp.azure.com:8080/arquivosHtml  
16 \ No newline at end of file 15 \ No newline at end of file
  16 +eselo.config.avaliacao.enderecoHtml=http://eselo-prd.brazilsouth.cloudapp.azure.com:8080/arquivosHtml
  17 +
  18 +
  19 +
  20 +#Conexão com o banco de dados relatorioCircunstanciado para recuperar os relatórios e os planos de trabalho
  21 +eselo.config.buscaRelatorioFAD.host=127.0.0.1
  22 +eselo.config.buscaRelatorioFAD.dbname=relatorioCircunstanciado
  23 +eselo.config.buscaRelatorioFAD.usuario=postgres
  24 +eselo.config.buscaRelatorioFAD.senha=dgeSLTIcgpge2015
Desenvolvimento/Codificacao/e-Selo/src/main/resources/hibernate.cfg.xml
@@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
10 <property name="hibernate.connection.url">jdbc:postgresql://database:5432/eselo</property> 10 <property name="hibernate.connection.url">jdbc:postgresql://database:5432/eselo</property>
11 <property name="hibernate.connection.driver_class">org.postgresql.Driver</property> 11 <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
12 <property name="hibernate.connection.username">postgres</property> 12 <property name="hibernate.connection.username">postgres</property>
13 - <property name="hibernate.connection.password">dgeSLTIcgpge2015</property> 13 + <property name="hibernate.connection.password">postgres</property>
14 <property name="hibernate.connection.CharSet">utf8</property> 14 <property name="hibernate.connection.CharSet">utf8</property>
15 <property name="hibernate.connection.characterEncoding">utf8</property> 15 <property name="hibernate.connection.characterEncoding">utf8</property>
16 <property name="hibernate.connection.useUnicode">true</property> 16 <property name="hibernate.connection.useUnicode">true</property>
@@ -39,9 +39,11 @@ @@ -39,9 +39,11 @@
39 <mapping class="br.com.eselo.model.ErrosMaisComuns" /> 39 <mapping class="br.com.eselo.model.ErrosMaisComuns" />
40 <mapping class="br.com.eselo.model.MediaAvaliacao" /> 40 <mapping class="br.com.eselo.model.MediaAvaliacao" />
41 <mapping class="br.com.eselo.model.GraficoMediaAvaliacao" /> 41 <mapping class="br.com.eselo.model.GraficoMediaAvaliacao" />
  42 + <mapping class="br.com.eselo.model.AgendamentoAvaliacaoUrl"/>
42 <mapping class="br.com.eselo.model.ResultadoRecomendacao" /> 43 <mapping class="br.com.eselo.model.ResultadoRecomendacao" />
43 <mapping class="br.com.eselo.model.ResultadoCriterio" /> 44 <mapping class="br.com.eselo.model.ResultadoCriterio" />
44 <mapping class="br.com.eselo.model.UltimaAvaliacao" /> 45 <mapping class="br.com.eselo.model.UltimaAvaliacao" />
  46 + <mapping class="br.com.eselo.model.RelatoriosFad" />
45 47
46 48
47 49