diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/ParametroAvaliacaoController.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/ParametroAvaliacaoController.java index 06741af..15aea6c 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/ParametroAvaliacaoController.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/ParametroAvaliacaoController.java @@ -1,6 +1,7 @@ package br.com.eselo.controller; import java.util.ArrayList; +import java.util.Date; import java.util.List; import br.com.caelum.vraptor.Get; @@ -16,6 +17,7 @@ import br.com.eselo.component.UsuarioWeb; import br.com.eselo.dao.ParametroAvaliacaoDAO; import br.com.eselo.dao.RecomendacaoDAO; import br.com.eselo.dao.UsuarioDAO; +import br.com.eselo.model.Criterio; import br.com.eselo.model.Faixa; import br.com.eselo.model.ParametroAvaliacao; import br.com.eselo.model.Recomendacao; @@ -30,7 +32,6 @@ import br.com.eselo.model.Usuario; public class ParametroAvaliacaoController { private final ParametroAvaliacaoDAO dao; - private final RecomendacaoDAO daoRecomendacao; private final Result result; private final Validator validator; private final UsuarioWeb usuarioWeb; @@ -39,7 +40,6 @@ public class ParametroAvaliacaoController { RecomendacaoDAO _daoRecomendacao, Result _result, Validator _validator, UsuarioWeb _usuarioWeb) { dao = _dao; - daoRecomendacao = _daoRecomendacao; result = _result; validator = _validator; usuarioWeb = _usuarioWeb; @@ -226,63 +226,60 @@ public class ParametroAvaliacaoController { } private void criarNovoParametroAvaliacao() { - ParametroAvaliacao ultimoParametroAvaliacao = dao - .getLastParametrosAvaliacao(); + this.criarNovoParametroAvaliacao(dao.getLastParametrosAvaliacao()); + } + + private void criarNovoParametroAvaliacao(ParametroAvaliacao ultimoParametroAvaliacao) { UsuarioDAO uDao = new UsuarioDAO(dao.getSession()); Usuario usuario = uDao.load(usuarioWeb.getId()); // Cria o parametro - ParametroAvaliacao parametroAvaliacao = new ParametroAvaliacao(); - parametroAvaliacao.setUsuario(usuario); - parametroAvaliacao.setTsInicio(new java.util.Date(System - .currentTimeMillis())); - parametroAvaliacao.setTsFim(null); - - ultimoParametroAvaliacao.setTsFim(parametroAvaliacao.getTsInicio()); - - ParametroAvaliacaoDAO paDao = new ParametroAvaliacaoDAO( - dao.getSession()); - - // Cria a lista das diretrizes - List listaCadastrada = daoRecomendacao - .recomendacoesDoUltimoParametro(ultimoParametroAvaliacao); - - // Salva novo e atualiza o ultimo - paDao.save(parametroAvaliacao); - paDao.update(ultimoParametroAvaliacao); - - // Salva as diretrizes para nova avaliação - Recomendacao novaRecomendacao; - Faixa conformidade; - //TODO - /* - for (Recomendacao recomendacaoCadastrada : listaCadastrada) { - novaRecomendacao = new Recomendacao(); - novaRecomendacao.setParametroAvaliacao(parametroAvaliacao); - novaRecomendacao.setDescricao(recomendacaoCadastrada.getDescricao()); - novaRecomendacao.setPeso(recomendacaoCadastrada.getPeso()); - novaRecomendacao.setNumeroRecomendacao(recomendacaoCadastrada - .getNumeroRecomendacao()); - novaRecomendacao.setTipoRecomendacao(recomendacaoCadastrada.getTipoRecomendacao()); - novaRecomendacao.setConformidades(new ArrayList()); - - if (recomendacaoCadastrada.getConformidades().size() > 0) { - for (Faixa conformidadeCadastrada : recomendacaoCadastrada - .getConformidades()) { - conformidade = new Faixa(); - conformidade.setFaixaInicio(conformidadeCadastrada - .getFaixaInicio()); - conformidade.setFaixaFim(conformidadeCadastrada - .getFaixaFim()); - conformidade.setRecomendacao(novaRecomendacao); - - novaRecomendacao.getConformidades().add(conformidade); + ParametroAvaliacao novoParametroAvaliacao = new ParametroAvaliacao(); + novoParametroAvaliacao.setUsuario(usuario); + novoParametroAvaliacao.setTsInicio(new Date()); + novoParametroAvaliacao.setTsFim(null); + + for(Recomendacao recomendacao:ultimoParametroAvaliacao.getRecomendacoes()){ + + Recomendacao novaRecomendacao = new Recomendacao(); + novaRecomendacao.setParametroAvaliacao(novoParametroAvaliacao); + novaRecomendacao.setNumeroRecomendacao(recomendacao.getNumeroRecomendacao()); + novaRecomendacao.setDescricao(recomendacao.getDescricao()); + novaRecomendacao.setPeso(recomendacao.getPeso()); + novaRecomendacao.setTipoRecomendacao(recomendacao.getTipoRecomendacao()); + + for(Criterio criterio: recomendacao.getCriterios()){ + + Criterio novoCriterio = new Criterio(); + novoCriterio.setRecomendacao(novaRecomendacao); + novoCriterio.setNumeroCriterio(criterio.getNumeroCriterio()); + novoCriterio.setDescricao(criterio.getDescricao()); + novoCriterio.setPeso(criterio.getPeso()); + novoCriterio.setTipoTeste(criterio.getTipoTeste()); + + for(Faixa faixa: criterio.getFaixas()){ + Faixa novaFaixa = new Faixa(); + novaFaixa.setCriterio(novoCriterio); + novaFaixa.setDescricao(faixa.getDescricao()); + novaFaixa.setFaixa(faixa.getFaixa()); + novaFaixa.setFaixaInicio(faixa.getFaixaInicio()); + novaFaixa.setFaixaFim(faixa.getFaixaFim()); + novaFaixa.setPercentualConformidade(faixa.getPercentualConformidade()); + + novoCriterio.addFaixa(novaFaixa); } + + novaRecomendacao.addCriterio(novoCriterio); } - - // daoRecomendacao.save(novaRecomendacao); - }*/ + + novoParametroAvaliacao.addRecomendacao(novaRecomendacao); + } + + // Salva novo e atualiza o ultimo + dao.save(novoParametroAvaliacao); + ultimoParametroAvaliacao = dao.load(ultimoParametroAvaliacao.getId()); + ultimoParametroAvaliacao.setTsFim(novoParametroAvaliacao.getTsInicio()); + dao.update(ultimoParametroAvaliacao); } - } 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 a572425..609180f 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 @@ -1,5 +1,6 @@ package br.com.eselo.model; +import java.util.ArrayList; import java.util.List; import javax.persistence.CascadeType; @@ -24,6 +25,9 @@ import br.com.eselo.integracao.CriterioAvaliado; @Table(name = "sel_criterio") public class Criterio { + public Criterio() { + this.faixas = new ArrayList(); + } @Id @SequenceGenerator(name = "sel_criterio_id_criterio_seq", sequenceName = "sel_criterio_id_criterio_seq") @@ -110,6 +114,10 @@ public class Criterio { this.faixas = faixas; } + public void addFaixa(Faixa faixa){ + this.faixas.add(faixa); + } + public double getResultadoTeste(CriterioAvaliado criterioAvaliado){ double percentualErros = criterioAvaliado.getPercentualErros(); double resultado = 0.0; diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ParametroAvaliacao.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ParametroAvaliacao.java index a32b0a8..54b4a5d 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ParametroAvaliacao.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ParametroAvaliacao.java @@ -1,5 +1,6 @@ package br.com.eselo.model; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -26,6 +27,10 @@ import org.hibernate.annotations.ForeignKey; @Table(name = "sel_parametro_avaliacao") public class ParametroAvaliacao { + public ParametroAvaliacao() { + this.recomendacoes = new ArrayList(); + } + @Id @SequenceGenerator(name = "sel_parametro_avaliacao_id_parametro_avaliacao_seq", sequenceName = "sel_parametro_avaliacao_id_parametro_avaliacao_seq") @GeneratedValue(strategy = GenerationType.AUTO, generator = "sel_parametro_avaliacao_id_parametro_avaliacao_seq") @@ -49,9 +54,6 @@ public class ParametroAvaliacao { @OneToMany(mappedBy = "parametroAvaliacao", targetEntity = br.com.eselo.model.Recomendacao.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) private List recomendacoes; - //@OneToMany(mappedBy = "parametroAvaliacao", targetEntity = br.com.eselo.model.Avaliacao.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) - //private List avaliacoes; - public List getRecomendacoes() { return recomendacoes; } @@ -60,6 +62,10 @@ public class ParametroAvaliacao { this.recomendacoes = recomendacoes; } + public void addRecomendacao(Recomendacao recomendacao){ + this.recomendacoes.add(recomendacao); + } + public Long getId() { return id; } diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Recomendacao.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Recomendacao.java index ce05bf4..a2daad6 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Recomendacao.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Recomendacao.java @@ -1,5 +1,6 @@ package br.com.eselo.model; +import java.util.ArrayList; import java.util.List; import javax.persistence.CascadeType; @@ -21,6 +22,10 @@ import org.hibernate.annotations.ForeignKey; @Table(name = "sel_recomendacao") public class Recomendacao { + public Recomendacao() { + this.criterios = new ArrayList(); + } + @Id @SequenceGenerator(name = "sel_recomendacao_id_recomendacao_seq", sequenceName = "sel_recomendacao_id_recomendacao_seq") @GeneratedValue(strategy = GenerationType.AUTO, generator = "sel_recomendacao_id_recomendacao_seq") @@ -51,6 +56,10 @@ public class Recomendacao { this.criterios = criterios; } + public void addCriterio(Criterio criterio){ + this.criterios.add(criterio); + } + @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "id_tipo_recomendacao", columnDefinition = "integer", nullable = false, insertable = true, updatable = true) @ForeignKey(name = "fk_sel_diretriz_sel_tipo_diretriz") -- libgit2 0.21.2