From 79cb0a814bea41ed1c053417f0fceb6f595678de Mon Sep 17 00:00:00 2001 From: magno.oliveira Date: Wed, 27 Aug 2014 22:31:41 +0000 Subject: [PATCH] Ajustes no DER para guardar histórico das avaliações --- Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/form.jsp | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/index.jsp | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/lista.jsp | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/resultado.jsp | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/AvaliacaoDao.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/ResultadoDao.java | 32 ++++++++++++++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Avaliacao.java | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Criterio.java | 2 +- Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ParametroCalculo.java | 20 ++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Resultado.java | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Usuario.java | 9 +++++---- Desenvolvimento/Codificacao/e-Selo/src/main/resources/hibernate.cfg.xml | 2 ++ Desenvolvimento/Codificacao/e-Selo/target/classes/hibernate.cfg.xml | 2 ++ 13 files changed, 624 insertions(+), 5 deletions(-) create mode 100644 Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/form.jsp create mode 100644 Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/index.jsp create mode 100644 Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/lista.jsp create mode 100644 Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/resultado.jsp create mode 100644 Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/AvaliacaoDao.java create mode 100644 Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/ResultadoDao.java create mode 100644 Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Avaliacao.java create mode 100644 Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Resultado.java diff --git a/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/form.jsp b/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/form.jsp new file mode 100644 index 0000000..4ce8f64 --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/form.jsp @@ -0,0 +1,48 @@ +<%@ 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"%> + + + + "> Avaliações + +
+ + +
+ + ${error.message} +
+
+ + +
+ + ${mensagem} +
+
+ +
+
+
" method="post"> +
+
+ +
+ +
+
+ +
+
+ + +
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/index.jsp b/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/index.jsp new file mode 100644 index 0000000..c61d2f1 --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/index.jsp @@ -0,0 +1,86 @@ +<%@ 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"%> + + + + "> Avaliações + + " class="btn btn-default pull-right"> Incluir Avaliação + +
+ +
+ +
" method="post"> +
+ + +
+ +
+ + +
+ + + +
+ +
+ + +
+ + ${mensagem} +
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + +
ID AvaliaçãoURLData da AvaliaçãoToken 
${avaliacao.id}${avaliacao.idUrl.url}${avaliacao.dataAvaliacao}  + +
+ ${regInic} a ${regFim} de ${registros} registros +
+ + + +
+
+
+
\ No newline at end of file diff --git a/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/lista.jsp b/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/lista.jsp new file mode 100644 index 0000000..5f20d9a --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/lista.jsp @@ -0,0 +1,112 @@ +<%@ 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"%> + + + + "> Avaliações + + " + class="btn btn-default pull-right"> Incluir Avaliação + +
+ +
+ + +
+ + ${mensagem} +
+
+ + +
" method="post"> +
+ +
+ +
+ +
+ + + +
+ +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + +
IDURLData da AvaliaçãoToken 
">${avaliacao.id}${avaliacao.idUrl.url}${avaliacao.dataAvaliacao} + +
+
+ +
" method=post name="formulario1"> + + +
+ + + + + +
    +
  • ${paginacao}
  • +
  • «
  • +
  • 1
  • +
  • 2
  • +
  • 3
  • +
  • 4
  • +
  • 5
  • +
  • »
  • +
+
+
+
+
\ No newline at end of file diff --git a/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/resultado.jsp b/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/resultado.jsp new file mode 100644 index 0000000..759ad65 --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/avaliacao/resultado.jsp @@ -0,0 +1,66 @@ +<%@ 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"%> + + + + "> Avaliações + + " class="btn btn-default pull-right"> Incluir Avaliação + +
+ +
+ + +
+ + ${mensagem} +
+
+ + + + +
+
+ ${idAval}
+ ${nomeUrl}
+ ${dataAval}
+
+
+ + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + +
Id AvaliaçãoDiretrizErros ObitidosAvisos Obitidos
${resultado.avaliacao.id}${resultado.numDiretriz}${resultado.numErros}${resultado.numAvisos}
+
+
+
+
+
\ No newline at end of file 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 new file mode 100644 index 0000000..1d43465 --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/AvaliacaoDao.java @@ -0,0 +1,59 @@ +package br.com.eselo.dao; + +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Projections; +import org.hibernate.criterion.Restrictions; + +import br.com.caelum.vraptor.ioc.Component; +import br.com.eselo.model.Avaliacao; +import br.com.eselo.model.ParametroCalculo; +import br.com.eselo.model.Url; + +@Component +public class AvaliacaoDao extends GenericDAO { + + public AvaliacaoDao(Session _session) { + super(_session); + } + + @SuppressWarnings("unchecked") + public List listAll(int regIni, int regFim) { + return getSession().createCriteria(getPersistentClass()) + //.setFirstResult(regIni) + //.setMaxResults(regFim) + .addOrder(Order.desc("dataAvaliacao")).list(); + } + + public Avaliacao getAvaliacao(Long idAval) { + return (Avaliacao) getSession().createCriteria(getPersistentClass()) + .add(Restrictions.eq("id", idAval)) + .uniqueResult(); + + } + + public Long getAvaliacaoByURL(Url url) { + return (Long) getSession().createCriteria(getPersistentClass()) + .add(Restrictions.eq("idUrl", url)) + .setProjection(Projections.max("id")) + .uniqueResult(); + } + + public int numLinhas(){ + return (Integer) session.createCriteria(Avaliacao.class) + .setProjection(Projections.rowCount()) + .uniqueResult(); + } + + public boolean existeAvaliacao(ParametroCalculo parametroCalculo) { + @SuppressWarnings("unchecked") + List encontrado = getSession() + .createCriteria(getPersistentClass()) + .add(Restrictions.eq("parametroAvaliacao", parametroCalculo)) + .list(); + return encontrado.size() >0; + } + +} diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/ResultadoDao.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/ResultadoDao.java new file mode 100644 index 0000000..9b3f986 --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/ResultadoDao.java @@ -0,0 +1,32 @@ +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.Resultado; + +@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/model/Avaliacao.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Avaliacao.java new file mode 100644 index 0000000..368c07b --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Avaliacao.java @@ -0,0 +1,100 @@ +package br.com.eselo.model; + +import java.util.ArrayList; +import java.util.Date; +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.Temporal; +import javax.persistence.TemporalType; + +import org.hibernate.annotations.ForeignKey; + +@Entity +@Table(name = "sel_avaliacao") +public class Avaliacao { + + public Avaliacao() { + this.resultados = new ArrayList(); + } + + @Id + @GeneratedValue + @Column(name = "id_avaliacao", columnDefinition = "serial", unique = true, nullable = false) + private Long id; + + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name = "id_parametro_calculo", insertable = true, updatable = true) + @ForeignKey(name = "fk_sel_parametro_calculo_sel_avaliacao") + private ParametroCalculo parametroCalculo; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name="id_url", insertable=true, updatable=true) + private Url url; + + @Column(name = "ts_avaliacao", columnDefinition = "timestamp without time zone",nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date dataAvaliacao; + + @OneToMany(mappedBy = "avaliacao", targetEntity = br.com.eselo.model.Resultado.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) + private List resultados; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public ParametroCalculo getParametroCalculo() { + return parametroCalculo; + } + + public void setParametroCalculo(ParametroCalculo parametroCalculo) { + this.parametroCalculo = parametroCalculo; + } + + public Url getUrl() { + return url; + } + + public void setUrl(Url url) { + this.url = url; + } + + public Date getDataAvaliacao() { + return dataAvaliacao; + } + + public void setDataAvaliacao(Date dataAvaliacao) { + this.dataAvaliacao = dataAvaliacao; + } + + + public List getResultados() { + return resultados; + } + + + public void setResultados(List resultados) { + this.resultados = resultados; + } + + public void addResultado(Resultado resultado){ + this.resultados.add(resultado); + } + + public void removeResultado(Resultado resultado){ + this.resultados.remove(resultado); + } +} 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 e1fac56..2e1b95d 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 @@ -35,7 +35,7 @@ public class Criterio { @Column(name = "id_criterio", columnDefinition = "serial", unique = true, nullable = false) private Long id; - @Column(name = "vl_peso") + @Column(name = "vl_peso",nullable = false) private Integer peso; @Column(name = "ds_descricao", nullable = false) diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ParametroCalculo.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ParametroCalculo.java index 628426f..08478dc 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ParametroCalculo.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ParametroCalculo.java @@ -56,6 +56,26 @@ public class ParametroCalculo { @OneToMany(mappedBy = "parametroCalculo", targetEntity = br.com.eselo.model.Recomendacao.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) private List recomendacoes; + + @OneToMany(mappedBy = "parametroCalculo", targetEntity = br.com.eselo.model.Avaliacao.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) + private List avaliacoes; + + public List getAvaliacoes() { + return avaliacoes; + } + + public void setAvaliacoes(List avaliacoes) { + this.avaliacoes = avaliacoes; + } + + public void addAvaliacao(Avaliacao avaliacao){ + this.avaliacoes.add(avaliacao); + } + + public void removeAvaliacao(Avaliacao avaliacao){ + this.avaliacoes.remove(avaliacao); + } + public List getRecomendacoes() { return recomendacoes; diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Resultado.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Resultado.java new file mode 100644 index 0000000..e4c3fcb --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Resultado.java @@ -0,0 +1,91 @@ +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.OneToOne; +import javax.persistence.Table; + +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; +import org.hibernate.annotations.ForeignKey; + +@Entity +@Table(name = "sel_resultado") +public class Resultado { + + @Id + @GeneratedValue + @Column(name = "id_resultado", columnDefinition = "serial", unique = true, nullable = false) + private Long id; + + @OneToOne(fetch = FetchType.EAGER) + @JoinColumn(name="id_avaliacao", insertable=true, updatable=true) + @ForeignKey(name = "fk_sel_resultado_sel_avaliacao") + @Fetch(FetchMode.SELECT) + private Avaliacao avaliacao; + + @Column(name = "nu_recomendacao",nullable = false) + private Long numRecomendacao; + + @Column(name = "nu_criterio",nullable = false) + private Long numCriterio; + + @Column(name = "nu_erros",nullable = false) + private Long numErros; + + @Column(name = "nu_avisos",nullable = false) + private Long numAvisos; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Avaliacao getAvaliacao() { + return avaliacao; + } + + public void setAvaliacao(Avaliacao avaliacao) { + this.avaliacao = avaliacao; + } + + public Long getNumRecomendacao() { + return numRecomendacao; + } + + public void setNumRecomendacao(Long numRecomendacao) { + this.numRecomendacao = numRecomendacao; + } + + public Long getNumCriterio() { + return numCriterio; + } + + public void setNumCriterio(Long numCriterio) { + this.numCriterio = numCriterio; + } + + public Long getNumErros() { + return numErros; + } + + public void setNumErros(Long numErros) { + this.numErros = numErros; + } + + public Long getNumAvisos() { + return numAvisos; + } + + public void setNumAvisos(Long numAvisos) { + this.numAvisos = numAvisos; + } + +} diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Usuario.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Usuario.java index 93b1f44..498be76 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Usuario.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Usuario.java @@ -30,18 +30,19 @@ public class Usuario { @Column(name = "id_usuario", columnDefinition = "serial", unique = true, nullable = false) private Long id; - @Column(name = "no_usuario") + @Column(name = "no_usuario",nullable = false) private String nome; - @Column(name = "nu_cpf") + @Column(name = "nu_cpf",nullable = false) private String cpf; + @Column(name = "senha",nullable = false) private String senha; - @Column(name = "ds_email") + @Column(name = "ds_email", nullable = false) private String email; - @Column(name = "ds_chave_alteracao_senha", nullable = true) + @Column(name = "ds_chave_alteracao_senha") private String chaveAlteracaoSenha; @Transient 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 d7dc077..9d4fd21 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/resources/hibernate.cfg.xml +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/resources/hibernate.cfg.xml @@ -21,10 +21,12 @@ org.hibernate.cache.HashtableCacheProvider + + diff --git a/Desenvolvimento/Codificacao/e-Selo/target/classes/hibernate.cfg.xml b/Desenvolvimento/Codificacao/e-Selo/target/classes/hibernate.cfg.xml index d7dc077..9d4fd21 100644 --- a/Desenvolvimento/Codificacao/e-Selo/target/classes/hibernate.cfg.xml +++ b/Desenvolvimento/Codificacao/e-Selo/target/classes/hibernate.cfg.xml @@ -21,10 +21,12 @@ org.hibernate.cache.HashtableCacheProvider + + -- libgit2 0.21.2