diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/CalcularPeajeHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/CalcularPeajeHibernateDAO.java index a8232fa9a..7ebdb9dc8 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/CalcularPeajeHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/CalcularPeajeHibernateDAO.java @@ -158,15 +158,15 @@ public class CalcularPeajeHibernateDAO extends GenericHibernateDAO lsObj = buscarCasetasPeajeWithinTramo(ruta); - log.debug("****** QTD COMBINAÇÕES DE TRECHOS x QTD PEDAGIOS POR TRECHO: "+lsObj.size()+" ******"); + log.info("****** QTD COMBINAÇÕES DE TRECHOS x QTD PEDAGIOS POR TRECHO: "+lsObj.size()+" ******"); if(isOrgaoNull){ orgao = orgaoConcedenteService.obtenerID(ruta.getOrgaoConcedente().getOrgaoConcedenteId()); @@ -174,11 +174,17 @@ public class CalcularPeajeHibernateDAO extends GenericHibernateDAO lsPrecioFixoPedagio = precioFixoPedagioService.obtenerTodos(); + if (null != lsObj) { + for (Object arrObj : lsObj) { BigDecimal bigKm = new BigDecimal(((Object[]) arrObj)[11].toString()) ; PeajeVO pvo = PeajeVO.create(ruta, orgao, (Object[]) arrObj, classeIndicePeajes, usaICMS, bigKm); + // ATENCAO !!! + // neste 'FOR' nao se pode abrir nenhum tipo de consulta no banco pois o 'lsObj' vem com milhares de registros + // e se abrir uma sessao no banco para cada um dos registros, o banco trava. PrecioFixoPedagio pfp = new PrecioFixoPedagio(); pfp.setOrgaoConcedenteId(orgao); @@ -186,19 +192,23 @@ public class CalcularPeajeHibernateDAO extends GenericHibernateDAO list = precioFixoPedagioService.buscarPrecioFixoPedagio(pfp); - if(list.size()>=1){ - - pvo.importePeaje = list.get(0).getValorFixo(); + for(PrecioFixoPedagio pfp2 : lsPrecioFixoPedagio){ + if(pfp2.getPracaPedagioId().getCasetaPeajeId().equals(pfp.getPracaPedagioId().getCasetaPeajeId()) + && pfp2.getOrgaoConcedenteId().getOrgaoConcedenteId().equals(pfp.getOrgaoConcedenteId().getOrgaoConcedenteId()) + && pfp2.getClasseId().getClaseservicioId().equals(pfp.getClasseId().getClaseservicioId()) + ){ + pvo.importePeaje = pfp2.getValorFixo(); + break; + } } peajes.add(pvo); } } - log.debug("****** FIM LINHA : "+ruta.toString()+" . INSTRUCOES DE INSERT NO BANCO PRONTAS ******"); + log.info("****** FIM LINHA : "+ruta.toString()+" . INSTRUCOES DE INSERT NO BANCO PRONTAS ******"); } - log.debug("****** FIM DO PROCESSO DE CALCULO DE PEDAGIO ******"); + log.info("****** FIM DO PROCESSO DE CALCULO DE PEDAGIO ******"); if(peajes.size()>1){ for (int i = 0 ; peajes.size()>i;) { @@ -238,7 +248,7 @@ public class CalcularPeajeHibernateDAO extends GenericHibernateDAO obtenerTodos() { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); - c.addOrder(Order.asc("descclase")); +// c.addOrder(Order.asc("descclase")); return c.list(); }