From c54a19f5d657221178c9bb2e936408f93e671786 Mon Sep 17 00:00:00 2001 From: magno.oliveira Date: Thu, 24 Jul 2014 16:02:02 +0000 Subject: [PATCH] Alteração nos parametros de avaliação --- Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/CriteriosController.java | 5 ++++- Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/FaixaController.java | 18 +++++++++--------- Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/ParametroAvaliacaoController.java | 63 +++++---------------------------------------------------------- Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/RecomendacaoController.java | 146 ++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------- Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/RecomendacaoDAO.java | 2 +- Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/ParametroAvaliacao.java | 4 ++++ 6 files changed, 69 insertions(+), 169 deletions(-) diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/CriteriosController.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/CriteriosController.java index bcbe14d..db28d2d 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/CriteriosController.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/CriteriosController.java @@ -5,16 +5,19 @@ import br.com.caelum.vraptor.Resource; import br.com.caelum.vraptor.Result; import br.com.eselo.annotations.Restrito; import br.com.eselo.dao.CriterioDAO; +import br.com.eselo.dao.ParametroAvaliacaoDAO; import br.com.eselo.model.Criterio; @Resource public class CriteriosController { private final CriterioDAO dao; + private final ParametroAvaliacaoDAO paDAO; private final Result result; - public CriteriosController(CriterioDAO _dao, Result _result) { + public CriteriosController(CriterioDAO _dao, ParametroAvaliacaoDAO _paDAO, Result _result) { this.dao = _dao; + this.paDAO = _paDAO; this.result = _result; } diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/FaixaController.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/FaixaController.java index 02a76f8..7ca2fbd 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/FaixaController.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/FaixaController.java @@ -30,7 +30,7 @@ public class FaixaController { private final FaixaDAO dao; private final RecomendacaoDAO daoRecomendacao; private final CriterioDAO daoCriterio; - private final ParametroAvaliacaoDAO daoParametro; + private final ParametroAvaliacaoDAO paDAO; private final Result result; private final Validator validator; private final UsuarioWeb usuarioWeb; @@ -38,13 +38,13 @@ public class FaixaController { public FaixaController(FaixaDAO _dao, RecomendacaoDAO _daoRecomendacao, CriterioDAO _daoCriterio, ParametroAvaliacaoDAO _daoParametro, Result _result, Validator _validator, UsuarioWeb _usuarioWeb) { - dao = _dao; - daoRecomendacao = _daoRecomendacao; - daoCriterio = _daoCriterio; - daoParametro = _daoParametro; - result = _result; - validator = _validator; - usuarioWeb = _usuarioWeb; + this.dao = _dao; + this.daoRecomendacao = _daoRecomendacao; + this.daoCriterio = _daoCriterio; + this.paDAO = _daoParametro; + this.result = _result; + this.validator = _validator; + this.usuarioWeb = _usuarioWeb; } @Get("/conformidades") @@ -76,7 +76,7 @@ public class FaixaController { Faixa faixa = dao.load(id); Criterio criterio = daoCriterio.load(criterioId); - ParametroAvaliacao parametro = daoParametro.load(criterio.getRecomendacao() + ParametroAvaliacao parametro = paDAO.load(criterio.getRecomendacao() .getParametroAvaliacao().getId()); result.include("criterioId", criterioId); 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 15aea6c..784e6c7 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,7 +1,6 @@ package br.com.eselo.controller; import java.util.ArrayList; -import java.util.Date; import java.util.List; import br.com.caelum.vraptor.Get; @@ -13,15 +12,11 @@ import br.com.caelum.vraptor.Result; import br.com.caelum.vraptor.Validator; import br.com.caelum.vraptor.validator.ValidationMessage; import br.com.eselo.annotations.Restrito; +import br.com.eselo.component.CopiadorParametroAvaliacao; 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; -import br.com.eselo.model.Usuario; /** * @@ -229,57 +224,9 @@ public class ParametroAvaliacaoController { 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 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); - } - - novoParametroAvaliacao.addRecomendacao(novaRecomendacao); - } - - // Salva novo e atualiza o ultimo - dao.save(novoParametroAvaliacao); - ultimoParametroAvaliacao = dao.load(ultimoParametroAvaliacao.getId()); - ultimoParametroAvaliacao.setTsFim(novoParametroAvaliacao.getTsInicio()); - dao.update(ultimoParametroAvaliacao); + protected void criarNovoParametroAvaliacao(ParametroAvaliacao ultimoParametroAvaliacao) { + + new CopiadorParametroAvaliacao().criarNovoParametroAvaliacao(ultimoParametroAvaliacao, usuarioWeb, dao.getSession()); + } } diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/RecomendacaoController.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/RecomendacaoController.java index 2814bf6..8de168a 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/RecomendacaoController.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/RecomendacaoController.java @@ -12,18 +12,18 @@ import br.com.caelum.vraptor.Result; import br.com.caelum.vraptor.Validator; import br.com.caelum.vraptor.validator.ValidationMessage; import br.com.eselo.annotations.Restrito; +import br.com.eselo.component.CopiadorParametroAvaliacao; 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.ParametroAvaliacao; import br.com.eselo.model.Recomendacao; -import br.com.eselo.model.Usuario; @Resource public class RecomendacaoController { private final RecomendacaoDAO dao; + private final ParametroAvaliacaoDAO paDAO; private final Result result; private final Validator validator; private final UsuarioWeb usuarioWeb; @@ -33,9 +33,11 @@ public class RecomendacaoController { private static final int MODO_DELETE_RECOMENDACAO = 3; public RecomendacaoController(RecomendacaoDAO _dao, Result _result, + ParametroAvaliacaoDAO _paDAO, Validator _validator, UsuarioWeb _usuarioWeb) { dao = _dao; result = _result; + paDAO = _paDAO; validator = _validator; usuarioWeb = _usuarioWeb; } @@ -106,6 +108,7 @@ public class RecomendacaoController { @Post("/recomendacao") @Restrito(descricao = "RECOMENDACAO_ADICIONAR") public void adicionar(Recomendacao recomendacao) { + if (recomendacao.getNumeroRecomendacao() == null) { validator.add(new ValidationMessage( "É obrigatório informar o número da recomendação.", @@ -121,34 +124,20 @@ public class RecomendacaoController { "recomendacao.descricao")); } else if (recomendacao.getPeso() == null) { validator.add(new ValidationMessage( - "É obrigat�rio informar o peso da recomendação.", + "É obrigatório informar o peso da recomendação.", "recomendacao.peso")); } else if (recomendacao.getPeso() <= 0) { validator.add(new ValidationMessage( - "O peso da recomendação deve ser maior que zero.", + "O peso da recomendação deve ser maior que zero.", "recomendacao.peso")); } validator.onErrorUsePageOf(RecomendacaoController.class).form( recomendacao.getParametroAvaliacao().getId()); - ParametroAvaliacao ultimoParametroAvaliacao = dao - .getLastParametrosAvaliacao(); - - // Caso exista uma avaliação cadastrada para esse parametro é criado um - // novo parametro, com todas as diretrizes existentes neste ultimo. - //TODO - /* - if (dao.hasAvaliacao(ultimoParametroAvaliacao)) { - criarNovoParametroAvaliacao(recomendacao, MODO_ADD_RECOMENDACAO); - } else { - recomendacao.setParametroAvaliacao(ultimoParametroAvaliacao); - } - */ - - dao.save(recomendacao); - - result.include("mensagem", "Recomendação salva com sucesso."); + this.criarNovoParametroAvaliacao(recomendacao, MODO_ADD_RECOMENDACAO); + + result.include("mensagem", "Recomendação salva com sucesso."); result.redirectTo(ParametroAvaliacaoController.class).form( recomendacao.getParametroAvaliacao().getId()); } @@ -182,24 +171,7 @@ public class RecomendacaoController { validator.onErrorUsePageOf(ParametroAvaliacaoController.class).form( recomendacaoCadastrada.getParametroAvaliacao().getId()); - // Caso exista uma avaliação cadastrada para esse parametro criado um - // novo parametro, com todas as diretrizes existentes neste ultimo. - ParametroAvaliacao ultimoParametroAvaliacao = dao - .getLastParametrosAvaliacao(); - - //TODO - /* - if (dao.hasAvaliacao(ultimoParametroAvaliacao)) { - criarNovoParametroAvaliacao(recomendacao, MODO_EDIT_RECOMENDACAO); - - result.include("mensagem", - "Novo Parâmetro de Cálculo criado junto com nova recomendação com sucesso."); - - } else { - dao.update(recomendacaoCadastrada); - result.include("mensagem", "Recomendação alterada com sucesso."); - } - */ + criarNovoParametroAvaliacao(recomendacao, MODO_EDIT_RECOMENDACAO); result.redirectTo(ParametroAvaliacaoController.class).form( recomendacaoCadastrada.getParametroAvaliacao().getId()); @@ -210,79 +182,53 @@ public class RecomendacaoController { public void excluir(Long id) { Recomendacao recomendacao = dao.load(id); - ParametroAvaliacao ultimoParametroAvaliacao = dao - .getLastParametrosAvaliacao(); - - //TODO - /* - if (dao.hasAvaliacao(ultimoParametroAvaliacao)) { - criarNovoParametroAvaliacao(recomendacao, MODO_DELETE_RECOMENDACAO); - } else { - dao.remove(id); - } - */ - + criarNovoParametroAvaliacao(recomendacao, MODO_DELETE_RECOMENDACAO); + result.include("mensagem", "Recomendação excluída com sucesso."); result.redirectTo(RecomendacaoController.class).index(1); } private void criarNovoParametroAvaliacao(Recomendacao recomendacao, int tipo) { - ParametroAvaliacao ultimoParametroAvaliacao = dao.getLastParametrosAvaliacao(); - - 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()); - parametroAvaliacao.setTsFim(null); - - ultimoParametroAvaliacao.setTsFim(parametroAvaliacao.getTsInicio()); - - ParametroAvaliacaoDAO paDao = new ParametroAvaliacaoDAO(dao.getSession()); - - // Cria a lista das diretrizes - List listaCadastrada = dao.recomendacoesDoUltimoParametro(ultimoParametroAvaliacao); - - // Salva novo e atualiza o ultimo - paDao.save(parametroAvaliacao); - paDao.update(ultimoParametroAvaliacao); - - recomendacao.setParametroAvaliacao(parametroAvaliacao); - - // Salva as diretrizes para nova avaliação - Recomendacao novaRecomendacao; - for (Recomendacao recomendacaoCadastrada : listaCadastrada) { - if ((tipo == MODO_ADD_RECOMENDACAO) || (recomendacaoCadastrada.getId().longValue() != recomendacao.getId().longValue())) { - novaRecomendacao = new Recomendacao(); - novaRecomendacao.setParametroAvaliacao(parametroAvaliacao); - novaRecomendacao.setDescricao(recomendacaoCadastrada.getDescricao()); - novaRecomendacao.setPeso(recomendacaoCadastrada.getPeso()); - novaRecomendacao.setNumeroRecomendacao(recomendacaoCadastrada.getNumeroRecomendacao()); - novaRecomendacao.setTipoRecomendacao(recomendacaoCadastrada.getTipoRecomendacao()); - - dao.save(novaRecomendacao); - } - } + ParametroAvaliacao ultimoParametroAvaliacao = paDAO.getLastParametrosAvaliacao(); + boolean ok = false; switch (tipo) { + case MODO_ADD_RECOMENDACAO: + ultimoParametroAvaliacao.addRecomendacao(recomendacao); + ok=true; + break; + case MODO_EDIT_RECOMENDACAO: - novaRecomendacao = new Recomendacao(); - novaRecomendacao.setParametroAvaliacao(parametroAvaliacao); - novaRecomendacao.setDescricao(recomendacao.getDescricao()); - novaRecomendacao.setNumeroRecomendacao(recomendacao.getNumeroRecomendacao()); - novaRecomendacao.setPeso(recomendacao.getPeso()); - novaRecomendacao.setTipoRecomendacao(recomendacao.getTipoRecomendacao()); - - dao.save(novaRecomendacao); + for(Recomendacao r: ultimoParametroAvaliacao.getRecomendacoes()){ + if(r.getId().equals(recomendacao.getId())){ + + r.setParametroAvaliacao(recomendacao.getParametroAvaliacao()); + r.setNumeroRecomendacao(recomendacao.getNumeroRecomendacao()); + r.setDescricao(recomendacao.getDescricao()); + r.setPeso(recomendacao.getPeso()); + r.setTipoRecomendacao(recomendacao.getTipoRecomendacao()); + r.setCriterios(recomendacao.getCriterios()); + r.setId(recomendacao.getId()); + ok=true; + break; + } + } + break; case MODO_DELETE_RECOMENDACAO: - + for(Recomendacao r: ultimoParametroAvaliacao.getRecomendacoes()){ + if(r.getId().equals(recomendacao.getId())){ + ultimoParametroAvaliacao.remove(recomendacao); + ok=true; + break; + } + } break; - default: - break; + } + + if(ok){ + new CopiadorParametroAvaliacao().criarNovoParametroAvaliacao(ultimoParametroAvaliacao, usuarioWeb, dao.getSession()); } } diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/RecomendacaoDAO.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/RecomendacaoDAO.java index 6331f6e..3cd2c4c 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/RecomendacaoDAO.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/RecomendacaoDAO.java @@ -23,7 +23,7 @@ public class RecomendacaoDAO extends GenericDAO { @SuppressWarnings("unchecked") public List listAll() { return getSession().createCriteria(getPersistentClass()) - .addOrder(Order.asc("id")).list(); + .addOrder(Order.asc("numeroRecomendacao")).list(); } public List getAllParametrosAvaliacao() { 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 54b4a5d..2596810 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 @@ -66,6 +66,10 @@ public class ParametroAvaliacao { this.recomendacoes.add(recomendacao); } + public void remove(Recomendacao recomendacao){ + this.recomendacoes.remove(recomendacao); + } + public Long getId() { return id; } -- libgit2 0.21.2