From 44c7c823e1170f29f8e4a1ced0c9b7e3fe04f654 Mon Sep 17 00:00:00 2001 From: 96409975520 <96409975520@10.209.112.105> Date: Mon, 6 Mar 2017 16:14:00 -0300 Subject: [PATCH] Mapeamento de novas tabelas e webservice para avaliar uma lista de url's. --- Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/painelAcessibilidade/painelAcessibilidade.jsp | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/component/LeitorXML.java | 15 ++++++++++++--- Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/component/WebChecker.java | 141 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/AvaliacaoController.java | 366 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/PainelAcessibilidadeController.java | 34 ++++++++++++++++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/UsuarioServicoWebController.java | 2 +- Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/AvaliacaoDAO.java | 1 + Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/GenericDAO.java | 1 + Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/ResultadoCriterioDao.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/SitioDAO.java | 26 ++++++++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/UsuarioServicoWebDAO.java | 11 ----------- Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Criterio.java | 12 ++++++++++++ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Dominio.java | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Esfera.java | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Grupo.java | 3 +-- Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/NaturezaJuridica.java | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Orgao.java | 155 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Poder.java | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ResultadoCriterio.java | 33 ++++++++++++++++++++++++--------- Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ResultadoRecomendacao.java | 11 +++++++++++ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Sitio.java | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Url.java | 30 ++++++++++++++++++++++++++++-- Desenvolvimento/Codificacao/e-Selo/src/main/resources/hibernate.cfg.xml | 5 +++-- 23 files changed, 1304 insertions(+), 42 deletions(-) create mode 100644 Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/painelAcessibilidade/painelAcessibilidade.jsp create mode 100644 Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/component/WebChecker.java create mode 100644 Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/PainelAcessibilidadeController.java create mode 100644 Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/ResultadoCriterioDao.java create mode 100644 Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/SitioDAO.java create mode 100644 Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Dominio.java create mode 100644 Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Esfera.java create mode 100644 Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/NaturezaJuridica.java create mode 100644 Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Orgao.java create mode 100644 Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Poder.java create mode 100644 Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Sitio.java diff --git a/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/painelAcessibilidade/painelAcessibilidade.jsp b/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/painelAcessibilidade/painelAcessibilidade.jsp new file mode 100644 index 0000000..7e8719a --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/painelAcessibilidade/painelAcessibilidade.jsp @@ -0,0 +1,67 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> + + + + + + + + + + + Painel de Acessibilidade Digital do Governo + + " rel="stylesheet"> + + + + +
+ +
+ +
+ Ministério do Planejamento - http://www.planejamento.gov.br (link para um novo sítio) +
+ +
+
+
+ +
+
+
+ +
+ Gráfico +
+
+
+ +

+
+
+
+
+
+ + + +
+
+
+ + + + +
+
+ +
+
+ + \ No newline at end of file diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/component/LeitorXML.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/component/LeitorXML.java index e967164..fd97941 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/component/LeitorXML.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/component/LeitorXML.java @@ -5,6 +5,7 @@ import br.com.eselo.integracao.CriterioAvaliado; import br.com.eselo.integracao.RecomendacaoAvaliada; import br.com.eselo.integracao.RelatorioAvaliacao; import br.com.eselo.model.Avaliacao; +import br.com.eselo.model.Criterio; import br.com.eselo.model.ResultadoCriterio; import br.com.eselo.model.ResultadoRecomendacao; @@ -59,17 +60,25 @@ public class LeitorXML { recomendacao.setTotalErros(ra.getTotalErros()); recomendacao.setTotalAvisos(ra.getTotalAvisos()); recomendacao.setNumRecomendacao(ra.getIdRecomendacao()); + recomendacao.setNotaRecomendacao(ra.getNuNota()); recomendacao.setAvaliacao(avaliacao); + for(CriterioAvaliado ca:ra.getCriterios()){ ResultadoCriterio criterio = new ResultadoCriterio(); - criterio.setNumCriterio(ca.getIdCriterio()); + Criterio criterio2 = new Criterio(); + + criterio2.setId(ca.getCriterio().getId()); + criterio2.setNumeroCriterio(ca.getCriterio().getNumeroCriterio()); + + //criterio.setNumCriterio(ca.getIdCriterio()); + criterio.setCriterio(criterio2); criterio.setNumErros(ca.getQtdeErros()); criterio.setNumItens(ca.getQtdeItens()); + criterio.setNotaCriterio(ca.getNu_nota()); criterio.setResultadoRecomendacao(recomendacao); - - + recomendacao.addCriterio(criterio); } diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/component/WebChecker.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/component/WebChecker.java new file mode 100644 index 0000000..a1db9c2 --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/component/WebChecker.java @@ -0,0 +1,141 @@ +package br.com.eselo.component; + + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpException; +import org.apache.commons.httpclient.HttpMethod; +import org.apache.commons.httpclient.NameValuePair; +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.methods.PostMethod; +import org.apache.commons.httpclient.params.HttpMethodParams; + + +public class WebChecker { + + private static final String CONTENT_LENGHT = "Content-Length" ; + private static final String HTTP_PROTOCOL_ALLOW_CIRCULAR_REDIRECTS = "http.protocol.allow-circular-redirects"; + private HttpClient client; + private HttpMethod method; + private String url; + private int statusCode; + private String content; + private String contentLength; + + + private WebChecker(HttpClient client,String url) { + this.client = client; + this.url = url; + } + + public static WebChecker from(String url) { + + HttpClient client = new HttpClient(); + client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3,false)); + client.getParams().setParameter(HTTP_PROTOCOL_ALLOW_CIRCULAR_REDIRECTS, true); + + return new WebChecker(client,url); + } + + public WebChecker withGetRequest() { + this.method = new GetMethod(this.url); + //this.method.setRequestHeader("user-agent", "Mozilla/5.0"); + this.method.setRequestHeader("user-agent", "NewUseAgent/1.0"); + this.method.setRequestHeader("http.agent", "Jakarta Commons-HttpClient/3.1"); + this.method.setFollowRedirects(true); + return this; + } + + public PostParams withPostRequest(){ + + return new PostParams(this,new PostMethod(this.url)); + + } + + public WebChecker execute() { + try { + + this.statusCode = client.executeMethod(this.method); + this.content = method.getResponseBodyAsString(); + this.contentLength = String.valueOf(this.content.getBytes("UTF-8").length); + + } catch (HttpException e) { + System.err.println("Fatal protocol violation: " + e.getMessage()); + e.printStackTrace(); + } catch (IOException e) { + System.err.println("Fatal transport error: " + e.getMessage()); + e.printStackTrace(); + } finally { + + method.releaseConnection(); + } + return this; + + } + + public String getContent() { return content; } + public int getStatusCode() { return statusCode; } + public String getContentLength() { return contentLength; } + + public String getParsedContent() { + this.content = this.content.replaceAll("<", "<"); + this.content = this.content.replaceAll(">", ">"); + this.content = this.content.replaceAll(" ", " "); + return content; + } + + private void setMethod(HttpMethod method){ + this.method = method; + } + private void setRequestHeader(String key, String value){ + this.method.setRequestHeader(key,value); + } + public class PostParams{ + private List data = new ArrayList(); + private WebChecker webChecker; + private PostMethod post; + + private PostParams(WebChecker webChecker,PostMethod post){ + this.webChecker = webChecker; + this.post = post; + } + + public PostParams addParam(String key, String value) { + this.data.add(new NameValuePair(key,value)); + return this; + } + + public WebChecker execute(){ + this.post.setRequestBody(data.toArray(new NameValuePair[data.size()] )); + this.webChecker.setMethod(post); + this.webChecker.setRequestHeader("user-agent", "Mozilla/5.0"); + this.webChecker.execute(); + return webChecker; + } + + @SuppressWarnings("deprecation") + public WebChecker executeUsuario(String codigoHash){ + this.post.setRequestBody(codigoHash); + this.webChecker.setMethod(post); + this.webChecker.setRequestHeader("user-agent", "Mozilla/5.0"); + this.webChecker.execute(); + return webChecker; + } + + + } + + + public static void main(String ...arg){ + + String pagina = WebChecker.from("http://www.icmbio.gov.br").withGetRequest().execute().getContent(); + + //Checker.from(pagina,"http://www.icmbio.gov.br").with((presentation().recommendation32())).check(); + + } + +} diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/AvaliacaoController.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/AvaliacaoController.java index 7d41814..70c4fa8 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/AvaliacaoController.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/AvaliacaoController.java @@ -16,10 +16,15 @@ import java.util.Properties; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.QueryParam; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +import br.com.eselo.component.WebChecker; import br.com.caelum.vraptor.Get; import br.com.caelum.vraptor.Post; import br.com.caelum.vraptor.Resource; @@ -31,7 +36,9 @@ import br.com.eselo.component.Mailer; import br.com.eselo.component.URLNormalizer; import br.com.eselo.component.UsuarioWeb; import br.com.eselo.dao.AvaliacaoDAO; +import br.com.eselo.dao.CriterioDAO; import br.com.eselo.dao.ParametroCalculoDAO; +import br.com.eselo.dao.ResultadoCriterioDao; import br.com.eselo.dao.UrlDAO; import br.com.eselo.integracao.CriterioAvaliado; import br.com.eselo.integracao.RecomendacaoAvaliada; @@ -41,6 +48,8 @@ import br.com.eselo.model.Avaliacao; import br.com.eselo.model.Criterio; import br.com.eselo.model.ParametroCalculo; import br.com.eselo.model.Recomendacao; +import br.com.eselo.model.ResultadoCriterio; +import br.com.eselo.model.ResultadoRecomendacao; import br.com.eselo.model.Url; @Resource @@ -52,6 +61,7 @@ public class AvaliacaoController { private final UrlDAO daoUrl; private final ParametroCalculoDAO paramDao; private final AvaliacaoDAO dao; + private final ResultadoCriterioDao daoCriterio;//gibran private final HttpServletRequest request; private static final String CAMINHO_SELOS = "eselo.config.avaliacao.caminhoSelos"; @@ -60,10 +70,11 @@ public class AvaliacaoController { public AvaliacaoController(Result _result, UrlDAO _daoUrl, ParametroCalculoDAO _paramDao, UsuarioWeb _usuarioWeb, - Validator _validator, HttpServletRequest _request, AvaliacaoDAO _dao) + Validator _validator, HttpServletRequest _request, AvaliacaoDAO _dao, ResultadoCriterioDao _resultadoCriterioDao)//gibran ResultadoCriterioDao _resultadoCriterioDao throws IOException { daoUrl = _daoUrl; dao = _dao; + daoCriterio = _resultadoCriterioDao;//gibran result = _result; paramDao = _paramDao; request = _request; @@ -101,10 +112,197 @@ public class AvaliacaoController { calcularNota(relatorioAvaliacao); } + + private void avaliarSalvando(RelatorioAvaliacao relatorioAvaliacao, Url url) { + + List lsResultadoCriterio = new ArrayList(); + + lsResultadoCriterio = daoCriterio.listAll(); + + List recomendacoesValidas; + List recomendacoesAvaliadas; + recomendacoesAvaliadas = new ArrayList(); + + + List lsRecomendacaoAvaliada = new ArrayList(); + List lsCriterioAvaliado = new ArrayList(); + + RecomendacaoAvaliada recAvaliada; + + RelatorioAvaliacao relatorioAvaliacaoSalvar; + + double somaPesosRecomendacoes = 0.0; + double conformidadeAcessibilidade = 0.0; + List recomendacoesCriteriosParaImprimir = new ArrayList(); + /* + * Nota da Avaliação = (somatório da Nota Teste / somatório do peso) + * Nota da Avaliação = 2,025 + 2,3 / 3 + 4 Nota da Avaliação = 4,325 / 7 + * Nota da Avaliação = 0,61785 + */ + double notaCriterio = 0.0; + double notaRecomendacao = 0.0; + double somatorioNotaTeste = 0.0; + double somatorioPesosCriterios = 0.0; +System.out.println(relatorioAvaliacao); + /* + * Nota da Recomendação = Nota da Avaliação * Peso da Recomendação Nota + * da Recomendação = 0,61785 * 3 Nota da Recomendação = 1,8535 + */ + double somatorioNotaRecomendacoes = 0.0; + + // obter os resultados + recomendacoesAvaliadas = relatorioAvaliacao.getRecomendacoes(); + + ParametroCalculo parametroCalculo = paramDao.getLastParametrosCalculoAtivo(); + if(parametroCalculo != null){ + + //foi colocada abaixo (Gibran) + //Avaliacao novaAvalicao = salvarAvaliacao(relatorioAvaliacao, parametroCalculo); + + // obter as diretrizes e níveis de conformidade + recomendacoesValidas = parametroCalculo.getRecomendacoes(); + + // Lendo e Comparando os resultados com o Parametro de Avaliacao + for (RecomendacaoAvaliada recomendacaoAvaliada : recomendacoesAvaliadas) { + //System.out.println("recomendacaoAvaliada = " + recomendacaoAvaliada.getIdRecomendacao()); + //System.out.println(recomendacaoAvaliada.getIdRecomendacao()); + recomendacoesCriteriosParaImprimir.add("recomendacaoAvaliada = " + recomendacaoAvaliada.getIdRecomendacao()); + recAvaliada = new RecomendacaoAvaliada(); + + for (Recomendacao recomendacao : recomendacoesValidas) { + if (recomendacaoAvaliada.getIdRecomendacao().equals( + recomendacao.getNumeroRecomendacao())) { + + + for (CriterioAvaliado criterioAvaliado : recomendacaoAvaliada.getCriterios()) { + //System.out.println("criterioAvaliado = " + criterioAvaliado.getIdCriterio()); + recomendacoesCriteriosParaImprimir.add("criterioAvaliado = " + criterioAvaliado.getIdCriterio()); + notaCriterio = 0.0; + Criterio criterioSalvar = new Criterio(); + for (Criterio criterio : recomendacao.getCriterios()) { + criterioSalvar = criterio; + if (criterioAvaliado.getIdCriterio().equals(criterio.getNumeroCriterio())) { + + + + notaCriterio = criterio.getResultadoTeste(criterioAvaliado); + somatorioNotaTeste = notaCriterio + somatorioNotaTeste; + somatorioPesosCriterios = criterio.getPeso() + somatorioPesosCriterios; + //System.out.println("somatorioNotaTeste = " + somatorioNotaTeste); + recomendacoesCriteriosParaImprimir.add("Resultado teste criterio = " + criterio.getResultadoTeste(criterioAvaliado)); + + recomendacoesCriteriosParaImprimir.add("Peso do Critério = " + criterio.getPeso()); + recomendacoesCriteriosParaImprimir.add("somatorioNotaTeste = " + somatorioNotaTeste); + //System.out.println("somatorioPesosCriterios = " + somatorioPesosCriterios); + recomendacoesCriteriosParaImprimir.add("somatorioPesosCriterios = " + somatorioPesosCriterios); + + + + + //criterioAvaliado.setNu_nota(notaCriterio); + //criterioAvaliado.setIdCriterio(criterio.getId()); + //criterioAvaliado.setCriterio(criterio); + //lsCriterioAvaliado.add(criterioAvaliado); + break; + } + + + } + + criterioAvaliado.setNu_nota(notaCriterio); + criterioAvaliado.setIdCriterio(criterioSalvar.getId()); + criterioAvaliado.setCriterio(criterioSalvar); + lsCriterioAvaliado.add(criterioAvaliado); + //criterioAvaliado.setNu_nota(notaCriterio); + //lsCriterioAvaliado.add(criterioAvaliado); + } + + + + + if(somatorioPesosCriterios > 0){ + + notaRecomendacao = (somatorioNotaTeste / somatorioPesosCriterios) * recomendacao.getPeso(); + + somaPesosRecomendacoes = somaPesosRecomendacoes + recomendacao.getPeso(); + //System.out.println("somaPesosRecomendacoes = " + somaPesosRecomendacoes); + recomendacoesCriteriosParaImprimir.add("Peso da Recomendação = " + recomendacao.getPeso()); + recomendacoesCriteriosParaImprimir.add("somaPesosRecomendacoes = " + somaPesosRecomendacoes); + somatorioNotaRecomendacoes = notaRecomendacao + somatorioNotaRecomendacoes; + //System.out.println("somatorioNotaRecomendacoes = " + somatorioNotaRecomendacoes); + recomendacoesCriteriosParaImprimir.add("somatorioNotaRecomendacoes = " + somatorioNotaRecomendacoes); + + + recAvaliada.setIdRecomendacao(recomendacaoAvaliada.getIdRecomendacao()); + recAvaliada.setCriterios(lsCriterioAvaliado); + recAvaliada.setNuNota(notaRecomendacao); + recAvaliada.setTotalAvisos(recomendacaoAvaliada.getTotalAvisos()); + recAvaliada.setTotalErros(recomendacaoAvaliada.getTotalErros()); + + lsRecomendacaoAvaliada.add(recAvaliada); + lsCriterioAvaliado = new ArrayList(); + } + somatorioNotaTeste = 0.0; + somatorioPesosCriterios = 0.0; + break; + } + } + + + + } + + + /* + * Calculo da Conformidade Acessibilidade Conformidade Acessibilidade = + * somatório das notas das recomendações (NR) / somatório dos pesos das + * recomendações (PR) Conformidade Acessibilidade = NR1 + NR2 + NR3 + + * NR22 / PR1 + PR2 + PR3 + PR22 Conformidade Acessibilidade = 1,10625 + + * 0,5 + 0,8 + 1,8535 / 3 + 1 + 2 + 3 Conformidade Acessibilidade = + * 4,25975 / 9 Conformidade Acessibilidade = 0,4733 ==> 47,33 % + */ + conformidadeAcessibilidade = 100 * (somatorioNotaRecomendacoes / somaPesosRecomendacoes); + + conformidadeAcessibilidade = (double) new Double(conformidadeAcessibilidade * 100).intValue() / 100; + + //System.out.println("conformidadeAcessibilidade = " + conformidadeAcessibilidade); + recomendacoesCriteriosParaImprimir.add("conformidadeAcessibilidade = " + conformidadeAcessibilidade); + + for (String string : recomendacoesCriteriosParaImprimir) { + System.out.println(string); + } + + relatorioAvaliacao.setRecomendacoes(lsRecomendacaoAvaliada); + + Avaliacao novaAvalicao = salvarAvaliacao(relatorioAvaliacao, parametroCalculo); + + novaAvalicao.setNota(conformidadeAcessibilidade); + dao.update(novaAvalicao); + } - private Double avaliar(RelatorioAvaliacao relatorioAvaliacao, Url url) { + gerarSelo(url, conformidadeAcessibilidade); + + +} + + private Double avaliar(RelatorioAvaliacao relatorioAvaliacao, Url url, boolean salvarAvaliacao) { + + List lsResultadoCriterio = new ArrayList(); + + lsResultadoCriterio = daoCriterio.listAll(); + List recomendacoesValidas; List recomendacoesAvaliadas; + recomendacoesAvaliadas = new ArrayList(); + + + List lsRecomendacaoAvaliada = new ArrayList(); + List lsCriterioAvaliado = new ArrayList(); + + RecomendacaoAvaliada recAvaliada; + + RelatorioAvaliacao relatorioAvaliacaoSalvar; + double somaPesosRecomendacoes = 0.0; double conformidadeAcessibilidade = 0.0; List recomendacoesCriteriosParaImprimir = new ArrayList(); @@ -113,6 +311,8 @@ public class AvaliacaoController { * Nota da Avaliação = 2,025 + 2,3 / 3 + 4 Nota da Avaliação = 4,325 / 7 * Nota da Avaliação = 0,61785 */ + double notaCriterio = 0.0; + double notaRecomendacao = 0.0; double somatorioNotaTeste = 0.0; double somatorioPesosCriterios = 0.0; System.out.println(relatorioAvaliacao); @@ -127,7 +327,9 @@ System.out.println(relatorioAvaliacao); ParametroCalculo parametroCalculo = paramDao.getLastParametrosCalculoAtivo(); if(parametroCalculo != null){ - Avaliacao novaAvalicao = salvarAvaliacao(relatorioAvaliacao, parametroCalculo); + + //foi colocada abaixo (Gibran) + //Avaliacao novaAvalicao = salvarAvaliacao(relatorioAvaliacao, parametroCalculo); // obter as diretrizes e níveis de conformidade recomendacoesValidas = parametroCalculo.getRecomendacoes(); @@ -137,44 +339,89 @@ System.out.println(relatorioAvaliacao); //System.out.println("recomendacaoAvaliada = " + recomendacaoAvaliada.getIdRecomendacao()); //System.out.println(recomendacaoAvaliada.getIdRecomendacao()); recomendacoesCriteriosParaImprimir.add("recomendacaoAvaliada = " + recomendacaoAvaliada.getIdRecomendacao()); + recAvaliada = new RecomendacaoAvaliada(); + for (Recomendacao recomendacao : recomendacoesValidas) { if (recomendacaoAvaliada.getIdRecomendacao().equals( recomendacao.getNumeroRecomendacao())) { + for (CriterioAvaliado criterioAvaliado : recomendacaoAvaliada.getCriterios()) { //System.out.println("criterioAvaliado = " + criterioAvaliado.getIdCriterio()); recomendacoesCriteriosParaImprimir.add("criterioAvaliado = " + criterioAvaliado.getIdCriterio()); + notaCriterio = 0.0; + Criterio criterioSalvar = new Criterio(); for (Criterio criterio : recomendacao.getCriterios()) { + criterioSalvar = criterio; if (criterioAvaliado.getIdCriterio().equals(criterio.getNumeroCriterio())) { - somatorioNotaTeste = (criterio.getResultadoTeste(criterioAvaliado)) + somatorioNotaTeste; + + + + notaCriterio = criterio.getResultadoTeste(criterioAvaliado); + somatorioNotaTeste = notaCriterio + somatorioNotaTeste; somatorioPesosCriterios = criterio.getPeso() + somatorioPesosCriterios; //System.out.println("somatorioNotaTeste = " + somatorioNotaTeste); recomendacoesCriteriosParaImprimir.add("Resultado teste criterio = " + criterio.getResultadoTeste(criterioAvaliado)); + recomendacoesCriteriosParaImprimir.add("Peso do Critério = " + criterio.getPeso()); recomendacoesCriteriosParaImprimir.add("somatorioNotaTeste = " + somatorioNotaTeste); //System.out.println("somatorioPesosCriterios = " + somatorioPesosCriterios); recomendacoesCriteriosParaImprimir.add("somatorioPesosCriterios = " + somatorioPesosCriterios); + + + + + //criterioAvaliado.setNu_nota(notaCriterio); + //criterioAvaliado.setIdCriterio(criterio.getId()); + //criterioAvaliado.setCriterio(criterio); + //lsCriterioAvaliado.add(criterioAvaliado); break; } + + } + + criterioAvaliado.setNu_nota(notaCriterio); + criterioAvaliado.setIdCriterio(criterioSalvar.getId()); + criterioAvaliado.setCriterio(criterioSalvar); + lsCriterioAvaliado.add(criterioAvaliado); + //criterioAvaliado.setNu_nota(notaCriterio); + //lsCriterioAvaliado.add(criterioAvaliado); } - + + + if(somatorioPesosCriterios > 0){ + notaRecomendacao = (somatorioNotaTeste / somatorioPesosCriterios) * recomendacao.getPeso(); + somaPesosRecomendacoes = somaPesosRecomendacoes + recomendacao.getPeso(); //System.out.println("somaPesosRecomendacoes = " + somaPesosRecomendacoes); recomendacoesCriteriosParaImprimir.add("Peso da Recomendação = " + recomendacao.getPeso()); recomendacoesCriteriosParaImprimir.add("somaPesosRecomendacoes = " + somaPesosRecomendacoes); - somatorioNotaRecomendacoes = ((somatorioNotaTeste / somatorioPesosCriterios) * recomendacao.getPeso()) + somatorioNotaRecomendacoes; + somatorioNotaRecomendacoes = notaRecomendacao + somatorioNotaRecomendacoes; //System.out.println("somatorioNotaRecomendacoes = " + somatorioNotaRecomendacoes); recomendacoesCriteriosParaImprimir.add("somatorioNotaRecomendacoes = " + somatorioNotaRecomendacoes); + + + recAvaliada.setIdRecomendacao(recomendacaoAvaliada.getIdRecomendacao()); + recAvaliada.setCriterios(lsCriterioAvaliado); + recAvaliada.setNuNota(notaRecomendacao); + recAvaliada.setTotalAvisos(recomendacaoAvaliada.getTotalAvisos()); + recAvaliada.setTotalErros(recomendacaoAvaliada.getTotalErros()); + + lsRecomendacaoAvaliada.add(recAvaliada); + lsCriterioAvaliado = new ArrayList(); } somatorioNotaTeste = 0.0; somatorioPesosCriterios = 0.0; break; } } + + + } @@ -196,14 +443,91 @@ System.out.println(relatorioAvaliacao); for (String string : recomendacoesCriteriosParaImprimir) { System.out.println(string); } - novaAvalicao.setNota(conformidadeAcessibilidade); - dao.update(novaAvalicao); + + relatorioAvaliacao.setRecomendacoes(lsRecomendacaoAvaliada); + if(salvarAvaliacao) + { + Avaliacao novaAvalicao = salvarAvaliacao(relatorioAvaliacao, parametroCalculo); + + novaAvalicao.setNota(conformidadeAcessibilidade); + dao.update(novaAvalicao); + } + } gerarSelo(url, conformidadeAcessibilidade); return conformidadeAcessibilidade; } + + /** + * Função REST que executa uma avaliação e devolve seu resultado no formato + * JSON + * + * @param relatorioAvaliacao + */ + @Post("/calcular-nota-salvando-avaliacao") + public void calcularNotaSalvandoAvaliacao(RelatorioAvaliacao relatorioAvaliacao) { + //System.out.println(relatorioAvaliacao); + ResultadoAvaliacao resultadoAvaliacao = new ResultadoAvaliacao(); + String observacao = "Foi impossivel realizar a avaliação."; + + + ParametroCalculo parametroCalculo = paramDao.getLastParametrosCalculoAtivo(); + if(parametroCalculo != null){ + String fullContextPath = request.getScheme() + "://" + + request.getServerName() + ":" + request.getServerPort() + + request.getContextPath(); + + if (relatorioAvaliacao.getRecomendacoes()!=null + && relatorioAvaliacao.getRecomendacoes().size() > 0 + && relatorioAvaliacao.getDate() != null + && relatorioAvaliacao.getUrl() != null) { + try { + relatorioAvaliacao.setUrl(URLNormalizer + .normalize(relatorioAvaliacao.getUrl())); + } catch (MalformedURLException e) { + e.printStackTrace(); + } + Url url = daoUrl.getStringUrl(relatorioAvaliacao.getUrl()); + + if (url == null) { + url = new Url(); + url.setUrl(relatorioAvaliacao.getUrl()); + //daoUrl.save(url); + } + + resultadoAvaliacao.setPath(fullContextPath + "/" + + properties.getProperty(CAMINHO_SELOS) + "/" + + url.getId().toString() + "/selo.png"); + + resultadoAvaliacao.setUrl(url.getUrl()); + resultadoAvaliacao.setDataSolicitacao(relatorioAvaliacao.getDate()); + + double nota = avaliar(relatorioAvaliacao, url, true); + if (nota > 0) { + resultadoAvaliacao.setNota(nota); + observacao = "Avaliação realizada com sucesso!"; + } else { + resultadoAvaliacao.setNota(null); + } + } else { + resultadoAvaliacao.setNota(null); + resultadoAvaliacao.setUrl(relatorioAvaliacao.getUrl()); + resultadoAvaliacao.setDataSolicitacao(relatorioAvaliacao.getDate()); + } + + }else{ + observacao = "Não existe parâmetros de cálculo ativo. Foi impossivel realizar a avaliação."; + } + + resultadoAvaliacao.setDataSolicitacao(relatorioAvaliacao.getDate()); + resultadoAvaliacao.setDataResultado(new Date()); + resultadoAvaliacao.setObservacoes(observacao); + + result.use(Results.json()).withoutRoot().from(resultadoAvaliacao) + .serialize(); + } /** * Função REST que executa uma avaliação e devolve seu resultado no formato @@ -217,6 +541,7 @@ System.out.println(relatorioAvaliacao); ResultadoAvaliacao resultadoAvaliacao = new ResultadoAvaliacao(); String observacao = "Foi impossivel realizar a avaliação."; + ParametroCalculo parametroCalculo = paramDao.getLastParametrosCalculoAtivo(); if(parametroCalculo != null){ String fullContextPath = request.getScheme() + "://" @@ -238,7 +563,7 @@ System.out.println(relatorioAvaliacao); if (url == null) { url = new Url(); url.setUrl(relatorioAvaliacao.getUrl()); - daoUrl.save(url); + //daoUrl.save(url); } resultadoAvaliacao.setPath(fullContextPath + "/" @@ -248,7 +573,7 @@ System.out.println(relatorioAvaliacao); resultadoAvaliacao.setUrl(url.getUrl()); resultadoAvaliacao.setDataSolicitacao(relatorioAvaliacao.getDate()); - double nota = avaliar(relatorioAvaliacao, url); + double nota = avaliar(relatorioAvaliacao, url, false); if (nota > 0) { resultadoAvaliacao.setNota(nota); observacao = "Avaliação realizada com sucesso!"; @@ -285,7 +610,7 @@ System.out.println(relatorioAvaliacao); Avaliacao avaliacao = new Avaliacao(); avaliacao.setDataAvaliacao(relatorioAvaliacao.getDate()); avaliacao.setParametroCalculo(parametroCalculo); - avaliacao.setQtdeLinhas(relatorioAvaliacao.getQtdeLinhas()); + avaliacao.setQtdeLinhas(relatorioAvaliacao.getQtdeLinhas()); avaliacao.setNota(0.0); Url url = daoUrl.getStringUrl(relatorioAvaliacao.getUrl()); @@ -293,7 +618,7 @@ System.out.println(relatorioAvaliacao); if (url == null) { url = new Url(); url.setUrl(relatorioAvaliacao.getUrl()); - daoUrl.save(url); + //daoUrl.save(url); } avaliacao.setUrl(url); @@ -350,5 +675,22 @@ System.out.println(relatorioAvaliacao); ex.printStackTrace(); } } + + //chama um serviço no ases para avaliar a url + @Get("/avaliar-url") + @Post("/avaliar-url") + public void avaliarUrl(@QueryParam("url") String url) { + + WebChecker.PostParams postParams = + WebChecker.from("http://localhost:18080/ases/servico-avaliacao-acessibilidade-salvando").withPostRequest(); + postParams.addParam("url", url); + Gson g = new GsonBuilder().create(); + + Boolean urlAvaliada = g.fromJson(postParams.execute().getContent(), Boolean.class); + + result.use(Results.xml()).from(urlAvaliada).recursive().serialize(); + } + + } diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/PainelAcessibilidadeController.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/PainelAcessibilidadeController.java new file mode 100644 index 0000000..66a198c --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/PainelAcessibilidadeController.java @@ -0,0 +1,34 @@ +package br.com.eselo.controller; + + +import br.com.caelum.vraptor.Get; +import br.com.caelum.vraptor.Post; +import br.com.caelum.vraptor.Resource; +import br.com.caelum.vraptor.Result; +import br.com.caelum.vraptor.Validator; + +@Resource +public class PainelAcessibilidadeController { + + private Result result; + private Validator validator; + + public PainelAcessibilidadeController(Result result, Validator validator){ + this.result = result; + this.validator = validator; + } + + @Get("/painelAcessibilidade") + public void painelAcessibilidade() { + String teste = ""; + } + + + @Post("/painelAcessibilidade") + public void painelAcessibilidade(String idOrgao) { + + String teste = ""; + //this.validator = validate.getMessage(); + //this.validator.onErrorUsePageOf(this).painelAcessibilidade(); + } +} diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/UsuarioServicoWebController.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/UsuarioServicoWebController.java index 51b201f..088c306 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/UsuarioServicoWebController.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/UsuarioServicoWebController.java @@ -23,7 +23,7 @@ public class UsuarioServicoWebController { } - + //@Path("/existe_usuario_servico_web") @Post("/existe_usuario_servico_web") public void existeUsuarioServicoWeb(String codigoHash) { diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/AvaliacaoDAO.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/AvaliacaoDAO.java index 02793a8..56ee3e5 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/AvaliacaoDAO.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/AvaliacaoDAO.java @@ -55,5 +55,6 @@ public class AvaliacaoDAO extends GenericDAO { .list(); return encontrado.size() > 0; } + } diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/GenericDAO.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/GenericDAO.java index 1a8f6a9..5625c1a 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/GenericDAO.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/GenericDAO.java @@ -71,6 +71,7 @@ public abstract class GenericDAO { this.session.flush(); } catch (HibernateException e) { logger.debug(e.getMessage()); + System.out.println(e.getMessage()); throw e; } } diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/ResultadoCriterioDao.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/ResultadoCriterioDao.java new file mode 100644 index 0000000..96e96bf --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/ResultadoCriterioDao.java @@ -0,0 +1,59 @@ +package br.com.eselo.dao; + +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.com.caelum.vraptor.ioc.Component; +import br.com.eselo.model.ResultadoCriterio; + +@Component +public class ResultadoCriterioDao extends GenericDAO { + + public ResultadoCriterioDao(Session _session) { + super(_session); + } + + + @SuppressWarnings("unchecked") + public List listAllCriterio() { + return getSession().createCriteria(getPersistentClass()) + .addOrder(Order.asc("id")).list(); + } + +} + +/* +package br.com.eselo.dao; + +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.com.caelum.vraptor.ioc.Component; +import br.com.eselo.model.ResultadoRecomendacao; + +@Component +public class ResultadoDao extends GenericDAO { + + public ResultadoDao(Session _session) { + super(_session); + } + + @SuppressWarnings("unchecked") + public List listAll() { + return getSession().createCriteria(getPersistentClass()) + .addOrder(Order.asc("id")).list(); + } + + @SuppressWarnings("unchecked") + public List listResultado(Long idAvaliacao) { + return getSession().createCriteria(getPersistentClass()) + .add(Restrictions.eq("avaliacao.id", idAvaliacao)) + .addOrder(Order.asc("id")).list(); + } + +}*/ diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/SitioDAO.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/SitioDAO.java new file mode 100644 index 0000000..50ee0ab --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/SitioDAO.java @@ -0,0 +1,26 @@ +package br.com.eselo.dao; + +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.com.eselo.model.Sitio; + +public class SitioDAO extends GenericDAO{ + + public SitioDAO(Session _session) { + super(_session); + } + + public Sitio existeUsuarioServicoWeb(String sitio) { + return (Sitio) getSession().createCriteria(getPersistentClass()) + .add(Restrictions.eq("sitio", sitio)) + .uniqueResult(); + } + + public Sitio existeUsuarioServicoWeb(Integer id) { + return (Sitio) getSession().createCriteria(getPersistentClass()) + .add(Restrictions.eq("id_sitio", id)) + .uniqueResult(); + } + +} diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/UsuarioServicoWebDAO.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/UsuarioServicoWebDAO.java index f78aa89..cdec30c 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/UsuarioServicoWebDAO.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/UsuarioServicoWebDAO.java @@ -19,17 +19,6 @@ public class UsuarioServicoWebDAO extends GenericDAO { .add(Restrictions.eq("codigoHash", codigoHash)) .add(Restrictions.eq("usuarioAtivo", true)) .uniqueResult(); - - /*UsuarioServicoWeb encontrado = - (UsuarioServicoWeb) getSession().createCriteria(getPersistentClass()) - .add(Restrictions.eq("hash_code", codigoHash)) - .add(Restrictions.eq("usuario_ativo", true)) - .uniqueResult(); - if(encontrado != null) - { - usuarioAutorizado = true; - }*/ - } } diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Criterio.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Criterio.java index 3c8d250..a0d2a73 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Criterio.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Criterio.java @@ -46,6 +46,10 @@ public class Criterio { @Column(name = "nu_criterio", nullable = false) private Long numeroCriterio; + @OneToMany(mappedBy = "criterio", targetEntity = br.com.eselo.model.ResultadoCriterio.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) + private List resultadoCriterio; + + public Long getNumeroCriterio() { return numeroCriterio; } @@ -54,6 +58,14 @@ public class Criterio { this.numeroCriterio = numeroCriterio; } + public List getResultadoCriterio() { + return resultadoCriterio; + } + + public void setResultadoCriterio(List resultadoCriterio) { + this.resultadoCriterio = resultadoCriterio; + } + @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "id_tipo_teste", columnDefinition = "integer", nullable = false, insertable = true, updatable = true) @ForeignKey(name = "fk_sel_criterio_sel_tipo_teste") diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Dominio.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Dominio.java new file mode 100644 index 0000000..a2deda0 --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Dominio.java @@ -0,0 +1,100 @@ +package br.com.eselo.model; + +import java.util.List; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import javax.persistence.Transient; + +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; +import org.hibernate.annotations.ForeignKey; + +@Entity +@Table(name = "sel_dominios") +public class Dominio { + + @Id + @GeneratedValue + @Column(name = "id_dominio", columnDefinition = "serial", unique = true, nullable = false) + private Long id; + + @Column(name = "dominio", nullable = false) + private String dominio; + + @Column(name = "id_titularidade_registro", nullable = false) + private String idTitularidadeRegistro; + + @Column(name = "id_adm_registro", nullable = false) + private String idAdmRegistro; + + @Transient + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name="id_unidade") + @ForeignKey(name = "sel_dominios_fkunidade") + @Fetch(FetchMode.SELECT) + private Orgao orgao; + + @OneToMany(mappedBy = "dominio", targetEntity = br.com.eselo.model.Sitio.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) + private List sitios; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getDominio() { + return dominio; + } + + public void setDominio(String dominio) { + this.dominio = dominio; + } + + public String getIdTitularidadeRegistro() { + return idTitularidadeRegistro; + } + + public void setIdTitularidadeRegistro(String idTitularidadeRegistro) { + this.idTitularidadeRegistro = idTitularidadeRegistro; + } + + public List getSitios() { + return sitios; + } + + public void setSitios(List sitios) { + this.sitios = sitios; + } + + public String getIdAdmRegistro() { + return idAdmRegistro; + } + + public void setIdAdmRegistro(String idAdmRegistro) { + this.idAdmRegistro = idAdmRegistro; + } + + public Orgao getOrgao() { + return orgao; + } + + public void setOrgao(Orgao orgao) { + this.orgao = orgao; + } + + + + +} diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Esfera.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Esfera.java new file mode 100644 index 0000000..8e1bb22 --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Esfera.java @@ -0,0 +1,66 @@ +package br.com.eselo.model; + +import java.util.List; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; + +@Entity +@Table(name = "sel_esfera") +public class Esfera { + + @Id + @GeneratedValue + @Column(name = "id_esfera", columnDefinition = "serial", unique = true, nullable = false) + private Long id; + + @Column(name = "ds_esfera", nullable = false) + private String dsEsfera; + + @Column(name = "in_ativo", nullable = false) + private String inAtivo; + + @OneToMany(mappedBy = "esfera", targetEntity = br.com.eselo.model.Orgao.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) + private List orgaos; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getDsEsfera() { + return dsEsfera; + } + + public void setDsEsfera(String dsEsfera) { + this.dsEsfera = dsEsfera; + } + + public String getInAtivo() { + return inAtivo; + } + + public void setInAtivo(String inAtivo) { + this.inAtivo = inAtivo; + } + + public List getOrgaos() { + return orgaos; + } + + public void setOrgaos(List orgaos) { + this.orgaos = orgaos; + } + + + +} diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Grupo.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Grupo.java index 56b9888..c00781f 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Grupo.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Grupo.java @@ -23,8 +23,7 @@ import org.hibernate.annotations.ForeignKey; public class Grupo { @Id - @SequenceGenerator(name = "sel_grupo_id_grupo_seq", sequenceName = "sel_grupo_id_grupo_seq") - @GeneratedValue(strategy = GenerationType.AUTO, generator = "sel_grupo_id_grupo_seq") + @GeneratedValue @Column(name = "id_grupo", columnDefinition = "serial", unique = true, nullable = false) private Long id; diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/NaturezaJuridica.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/NaturezaJuridica.java new file mode 100644 index 0000000..9d52fac --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/NaturezaJuridica.java @@ -0,0 +1,65 @@ +package br.com.eselo.model; + +import java.util.List; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; + +@Entity +@Table(name = "sel_natureza_juridica") +public class NaturezaJuridica { + + @Id + @GeneratedValue + @Column(name = "id_natureza_juridica", columnDefinition = "serial", unique = true, nullable = false) + private Long id; + + @Column(name = "ds_natureza_juridica", nullable = false) + private String dsNaturezaJuridica; + + @Column(name = "in_ativo", nullable = false) + private String inAtivo; + + @OneToMany(mappedBy = "naturezaJuridica", targetEntity = br.com.eselo.model.Orgao.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) + private List orgaos; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getDsNaturezaJuridica() { + return dsNaturezaJuridica; + } + + public void setDsNaturezaJuridica(String dsNaturezaJuridica) { + this.dsNaturezaJuridica = dsNaturezaJuridica; + } + + public String getInAtivo() { + return inAtivo; + } + + public void setInAtivo(String inAtivo) { + this.inAtivo = inAtivo; + } + + public List getOrgaos() { + return orgaos; + } + + public void setOrgaos(List orgaos) { + this.orgaos = orgaos; + } + + +} diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Orgao.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Orgao.java new file mode 100644 index 0000000..b3d1bd2 --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Orgao.java @@ -0,0 +1,155 @@ +package br.com.eselo.model; + +import java.util.List; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import javax.persistence.Transient; + +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; +import org.hibernate.annotations.ForeignKey; + +@Entity +@Table(name = "sel_orgao") +public class Orgao { + + @Id + @GeneratedValue + @Column(name = "id_unidade", columnDefinition = "serial", unique = true, nullable = false) + private Long id; + + @Column(name = "nome", nullable = false) + private String nomeOrgao; + + @Column(name = "sigla", nullable = false) + private String sigla; + + @Column(name = "id_orgao_entidade", nullable = false) + private Integer idOrgaoEntidade; + + @Column(name = "id_unidade_pai", nullable = false) + private Integer idUnidadePai; + + + @Transient + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name="id_esfera") + @ForeignKey(name = "sel_esfera_fk") + @Fetch(FetchMode.SELECT) + private Esfera esfera; + + @Transient + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name="id_natureza_juridica") + @ForeignKey(name = "sel_natureza_juridica_fk") + @Fetch(FetchMode.SELECT) + private NaturezaJuridica naturezaJuridica; + + @Transient + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name="id_poder") + @ForeignKey(name = "sel_poder_fk") + @Fetch(FetchMode.SELECT) + private Poder poder; + + @Transient + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name="id_tipo_unidade") + @ForeignKey(name = "sel_tipo_unidade_fk") + @Fetch(FetchMode.SELECT) + private TipoUnidade tipoUnidade; + + @OneToMany(mappedBy = "orgao", targetEntity = br.com.eselo.model.Dominio.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) + private List dominios; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getNomeOrgao() { + return nomeOrgao; + } + + public void setNomeOrgao(String nomeOrgao) { + this.nomeOrgao = nomeOrgao; + } + + public String getSigla() { + return sigla; + } + + public void setSigla(String sigla) { + this.sigla = sigla; + } + + public List getDominios() { + return dominios; + } + + public void setDominios(List dominios) { + this.dominios = dominios; + } + + public Integer getIdOrgaoEntidade() { + return idOrgaoEntidade; + } + + public void setIdOrgaoEntidade(Integer idOrgaoEntidade) { + this.idOrgaoEntidade = idOrgaoEntidade; + } + + public Integer getIdUnidadePai() { + return idUnidadePai; + } + + public void setIdUnidadePai(Integer idUnidadePai) { + this.idUnidadePai = idUnidadePai; + } + + public Esfera getEsfera() { + return esfera; + } + + public void setEsfera(Esfera esfera) { + this.esfera = esfera; + } + + public NaturezaJuridica getNaturezaJuridica() { + return naturezaJuridica; + } + + public void setNaturezaJuridica(NaturezaJuridica naturezaJuridica) { + this.naturezaJuridica = naturezaJuridica; + } + + public Poder getPoder() { + return poder; + } + + public void setPoder(Poder poder) { + this.poder = poder; + } + + public TipoUnidade getTipoUnidade() { + return tipoUnidade; + } + + public void setTipoUnidade(TipoUnidade tipoUnidade) { + this.tipoUnidade = tipoUnidade; + } + + +} diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Poder.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Poder.java new file mode 100644 index 0000000..0ae89f2 --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Poder.java @@ -0,0 +1,65 @@ +package br.com.eselo.model; + +import java.util.List; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; + +@Entity +@Table(name = "sel_poder") +public class Poder { + + @Id + @GeneratedValue + @Column(name = "id_poder", columnDefinition = "serial", unique = true, nullable = false) + private Long id; + + @Column(name = "ds_poder", nullable = false) + private String dsPoder; + + @Column(name = "in_ativo", nullable = false) + private String inAtivo; + + @OneToMany(mappedBy = "poder", targetEntity = br.com.eselo.model.Orgao.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) + private List orgaos; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getDsPoder() { + return dsPoder; + } + + public void setDsPoder(String dsPoder) { + this.dsPoder = dsPoder; + } + + public String getInAtivo() { + return inAtivo; + } + + public void setInAtivo(String inAtivo) { + this.inAtivo = inAtivo; + } + + public List getOrgaos() { + return orgaos; + } + + public void setOrgaos(List orgaos) { + this.orgaos = orgaos; + } + + +} diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ResultadoCriterio.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ResultadoCriterio.java index 0103734..e7a993b 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ResultadoCriterio.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ResultadoCriterio.java @@ -21,9 +21,12 @@ public class ResultadoCriterio { @GeneratedValue @Column(name = "id_resultado_criterio", columnDefinition = "serial", unique = true, nullable = false) private Long id; - - @Column(name = "nu_criterio",nullable = false) - private Long numCriterio; + + @OneToOne(fetch = FetchType.EAGER) + @JoinColumn(name="id_criterio") + @ForeignKey(name = "sel_result_crit_id_crit_fk") + @Fetch(FetchMode.SELECT) + private Criterio criterio; @Column(name = "nu_erros",nullable = false) private Long numErros; @@ -31,6 +34,9 @@ public class ResultadoCriterio { @Column(name = "nu_itens",nullable = false) private Long numItens; + @Column(name = "nu_nota",nullable = false) + private Double notaCriterio; + @OneToOne(fetch = FetchType.EAGER) @JoinColumn(name="id_resultado_rescomendacao", insertable=true, updatable=true) @ForeignKey(name = "fk_sel_resultado_sel_avaliacao") @@ -45,16 +51,16 @@ public class ResultadoCriterio { this.id = id; } - public Long getNumCriterio() { - return numCriterio; + public Long getNumErros() { + return numErros; } - public void setNumCriterio(Long numCriterio) { - this.numCriterio = numCriterio; + public Criterio getCriterio() { + return criterio; } - public Long getNumErros() { - return numErros; + public void setCriterio(Criterio criterio) { + this.criterio = criterio; } public void setNumErros(Long numErros) { @@ -69,6 +75,15 @@ public class ResultadoCriterio { this.numItens = numItens; } + + public Double getNotaCriterio() { + return notaCriterio; + } + + public void setNotaCriterio(Double notaCriterio) { + this.notaCriterio = notaCriterio; + } + public ResultadoRecomendacao getResultadoRecomendacao() { return resultadoRecomendacao; } diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ResultadoRecomendacao.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ResultadoRecomendacao.java index 2c6d8bd..910c47f 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ResultadoRecomendacao.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ResultadoRecomendacao.java @@ -46,6 +46,9 @@ public class ResultadoRecomendacao { @Column(name = "nu_total_avisos") private Long totalAvisos; + @Column(name = "nu_nota",nullable = false) + private Double notaRecomendacao; + @OneToMany(mappedBy = "resultadoRecomendacao", targetEntity = br.com.eselo.model.ResultadoCriterio.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) private List criterios; @@ -88,6 +91,14 @@ public class ResultadoRecomendacao { public void setTotalAvisos(Long totalAvisos) { this.totalAvisos = totalAvisos; } + + public Double getNotaRecomendacao() { + return notaRecomendacao; + } + + public void setNotaRecomendacao(Double notaRecomendacao) { + this.notaRecomendacao = notaRecomendacao; + } public List getCriterios() { return criterios; diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Sitio.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Sitio.java new file mode 100644 index 0000000..6cf10a1 --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Sitio.java @@ -0,0 +1,78 @@ +package br.com.eselo.model; + +import java.util.List; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import javax.persistence.Transient; + +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; +import org.hibernate.annotations.ForeignKey; + +@Entity +@Table(name = "sel_sitios") +public class Sitio { + + @Id + @GeneratedValue + @Column(name = "id_sitio", columnDefinition = "serial", unique = true, nullable = false) + private Long id; + + @Column(name = "sitio", nullable = false) + private String sitio; + + @OneToMany(mappedBy = "sitio", targetEntity = br.com.eselo.model.Url.class, fetch = FetchType.EAGER, cascade = CascadeType.ALL) + private List urls; + + @Transient + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name="id_dominio") + @ForeignKey(name = "sel_dominios_fksitio") + @Fetch(FetchMode.SELECT) + private Dominio dominio; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getSitio() { + return sitio; + } + + public void setSitio(String sitio) { + this.sitio = sitio; + } + + public List getUrls() { + return urls; + } + + public void setUrls(List urls) { + this.urls = urls; + } + + public Dominio getDominio() { + return dominio; + } + + public void setDominio(Dominio dominio) { + this.dominio = dominio; + } + + + + +} diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Url.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Url.java index 1814b86..4a042af 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Url.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Url.java @@ -2,9 +2,17 @@ package br.com.eselo.model; import javax.persistence.Column; import javax.persistence.Entity; +import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; import javax.persistence.Table; +import javax.persistence.Transient; + +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; +import org.hibernate.annotations.ForeignKey; @Entity @Table(name = "sel_url") @@ -15,9 +23,16 @@ public class Url { @Column(name = "id_url", columnDefinition = "serial", unique = true, nullable = false) private Long id; - @Column(name = "ds_url", nullable = false) + @Column(name = "url", nullable = false) private String url; - + + @Transient + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name="id_sitio") + @ForeignKey(name = "fk_sel_url_sel_sitio") + @Fetch(FetchMode.SELECT) + private Sitio sitio; + public Long getId() { return id; } @@ -34,4 +49,15 @@ public class Url { this.url = url; } + public Sitio getSitio() { + return sitio; + } + + public void setSitio(Sitio sitio) { + this.sitio = sitio; + } + + + + } diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/resources/hibernate.cfg.xml b/Desenvolvimento/Codificacao/e-Selo/src/main/resources/hibernate.cfg.xml index cf66e4f..37f659e 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/resources/hibernate.cfg.xml +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/resources/hibernate.cfg.xml @@ -10,7 +10,7 @@ jdbc:postgresql://localhost:5432/eselo org.postgresql.Driver postgres - 90206290187 + postgres utf8 utf8 true @@ -21,6 +21,7 @@ org.hibernate.cache.HashtableCacheProvider + @@ -30,7 +31,7 @@ - + -- libgit2 0.21.2