From 8d16dde67637dbfcbb67bebec9950f1e365096e2 Mon Sep 17 00:00:00 2001 From: edgar Date: Thu, 8 Sep 2016 14:01:53 +0000 Subject: [PATCH] issue #7867 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@60094 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../hibernate/CalcularPeajeHibernateDAO.java | 107 ++++++++++-------- 1 file changed, 62 insertions(+), 45 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/CalcularPeajeHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/CalcularPeajeHibernateDAO.java index 75c7afedc..6ffd5f4fb 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/CalcularPeajeHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/CalcularPeajeHibernateDAO.java @@ -26,17 +26,23 @@ import com.rjconsultores.ventaboletos.constantes.Constantes; import com.rjconsultores.ventaboletos.dao.CalcularPeajeDAO; import com.rjconsultores.ventaboletos.entidad.CasetaPeaje; import com.rjconsultores.ventaboletos.entidad.CasetaPeajeExcepcion; +import com.rjconsultores.ventaboletos.entidad.ClaseServicio; +import com.rjconsultores.ventaboletos.entidad.ClasseIndicePeaje; import com.rjconsultores.ventaboletos.entidad.ExcepcionPeaje; import com.rjconsultores.ventaboletos.entidad.ExcepcionPeajeVigencia; import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente; import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.Ruta; +import com.rjconsultores.ventaboletos.service.OrgaoConcedenteService; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; @Repository("calcularPeajeDAO") public class CalcularPeajeHibernateDAO extends GenericHibernateDAO implements CalcularPeajeDAO { + @Autowired + private OrgaoConcedenteService orgaoConcedenteService; + @Autowired public CalcularPeajeHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { setSessionFactory(factory); @@ -98,7 +104,7 @@ public class CalcularPeajeHibernateDAO extends GenericHibernateDAO lsRuta, OrgaoConcedente orgao) { List peajes = new ArrayList(); + OrgaoConcedente orgaoConcedente = orgaoConcedenteService.obtenerID(orgao.getOrgaoConcedenteId()); + List classeIndicePeajes = orgaoConcedente.getClassesIndicePeaje(); for (Ruta ruta : lsRuta) { List lsObj = buscarCasetasPeajeWithinTramo(ruta); if (null != lsObj) { for (Object arrObj : lsObj) { - peajes.add(PeajeVO.create(ruta, orgao, (Object[]) arrObj)); + peajes.add(PeajeVO.create(ruta, orgaoConcedente, (Object[]) arrObj, classeIndicePeajes)); } } } @@ -160,9 +168,8 @@ public class CalcularPeajeHibernateDAO extends GenericHibernateDAO buscaCasetas(List pvo) { Set ids = new LinkedHashSet(); Map casetas = new HashMap(); - + for (PeajeVO p : pvo) { ids.add(p.casetaPeajeId); } - + Query query = getSession() .createQuery("select c from CasetaPeaje c where c.casetaPeajeId in (:ids) "); query.setParameterList("ids", ids); - + for (CasetaPeaje c : (List) query.list()) { casetas.put(c.getCasetaPeajeId(), c); } - + return casetas; } - private ExcepcionPeaje getExcepcion(Integer rutaId, Integer origenId, Integer destinoId){ + private ExcepcionPeaje getExcepcion(Integer rutaId, Integer origenId, Integer destinoId) { Query query = getSession().createQuery("select e from ExcepcionPeaje e where e.ruta.rutaId = :rutaId " + "and e.origem.paradaId = :origenId and e.destino.paradaId = :destinoId and e.activo = 1 "); - + query.setInteger("rutaId", rutaId); query.setInteger("origenId", origenId); query.setInteger("destinoId", destinoId); - return (ExcepcionPeaje)query.uniqueResult(); + return (ExcepcionPeaje) query.uniqueResult(); } - - private Parada getParada(Integer paradaId){ - return (Parada)getSession().get(Parada.class, paradaId); + + private Parada getParada(Integer paradaId) { + return (Parada) getSession().get(Parada.class, paradaId); } - - private Ruta getRuta(Integer rutaId){ - return (Ruta)getSession().get(Ruta.class, rutaId); + + private Ruta getRuta(Integer rutaId) { + return (Ruta) getSession().get(Ruta.class, rutaId); } - + @Transactional - private void recalcularExcecoesPedagio(List pvos){ + private void recalcularExcecoesPedagio(List pvos) { Map casetas = buscaCasetas(pvos); - for (PeajeVO peaje : pvos){ - ExcepcionPeaje excepcion = null; - CasetaPeaje caseta = casetas.get(peaje.casetaPeajeId); - - for (CasetaPeajeExcepcion cpe : caseta.getLsCasetaPeajeExcepcion()){ - if (excepcion == null){ + for (PeajeVO peaje : pvos) { + ExcepcionPeaje excepcion = null; + CasetaPeaje caseta = casetas.get(peaje.casetaPeajeId); + + for (CasetaPeajeExcepcion cpe : caseta.getLsCasetaPeajeExcepcion()) { + if (excepcion == null) { excepcion = new ExcepcionPeaje(); excepcion.setActivo(true); excepcion.setDestino(getParada(peaje.destinoId)); @@ -242,13 +249,13 @@ public class CalcularPeajeHibernateDAO extends GenericHibernateDAO lsClasseIndicePeaje) { + + for (ClasseIndicePeaje classeIndicePeaje : lsClasseIndicePeaje) { + if (claseServicio.equals(classeIndicePeaje.getClasseServicio())) { + return classeIndicePeaje.getIndicePeaje(); + } + } + return orgao.getIndicePeaje(); + } + + private static PeajeVO create(Ruta ruta, OrgaoConcedente orgao, + Object[] obj, List lsClasseIndicePeaje) { + PeajeVO pvo = new PeajeVO(); pvo.rutaId = ruta.getRutaId(); @@ -350,8 +367,8 @@ public class CalcularPeajeHibernateDAO extends GenericHibernateDAO