From df06a43d3b142ac4eb51bb91e88b3c51df3fbc98 Mon Sep 17 00:00:00 2001 From: julio Date: Thu, 16 Dec 2021 19:56:46 +0000 Subject: [PATCH] fixes bug#23906 dev: Lucas qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@110063 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/dao/ConexionDAO.java | 2 +- .../dao/hibernate/ConexionHibernateDAO.java | 63 ++++++++++++------- .../ventaboletos/service/ConexionService.java | 2 +- .../service/impl/ConexionServiceImpl.java | 4 +- .../ventaboletos/vo/conexion/ConexionVO.java | 10 +++ 5 files changed, 54 insertions(+), 27 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/ConexionDAO.java b/src/com/rjconsultores/ventaboletos/dao/ConexionDAO.java index 565f0363f..b08700487 100644 --- a/src/com/rjconsultores/ventaboletos/dao/ConexionDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/ConexionDAO.java @@ -14,7 +14,7 @@ public interface ConexionDAO extends GenericDAO { */ public void generarConexiones(Integer usuarioId); - public List buscarConexiones(Integer origenId, Integer destinoId); + public List buscarConexiones(boolean isBuscaAgrupada, Integer origenId, Integer destinoId); public List buscarPorConexionCtrl(Long conexcionCtrlId); diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionHibernateDAO.java index 07a804a2c..a9c0c70c4 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionHibernateDAO.java @@ -78,6 +78,9 @@ public class ConexionHibernateDAO extends GenericHibernateDAO conexionVO.setGrupo(((BigDecimal) oc[3]).intValue()); conexionVO.setTramoOrigen((String) oc[4]); conexionVO.setTramoDestino((String) oc[5]); + + conexionVO.setBuscaAgruapada(false); + conexionVOs.add(conexionVO); } @@ -85,11 +88,38 @@ public class ConexionHibernateDAO extends GenericHibernateDAO } @Override - public List buscarConexiones(Integer origenId, Integer destinoId) { + public List buscarConexiones(boolean isBuscaAgrupada, Integer origenId, Integer destinoId) { + + String queryStr = getQueryConexiones(isBuscaAgrupada, origenId, destinoId); + + Query query = getSession().createSQLQuery(queryStr); + List list = query.list(); + + List vos = new ArrayList(); + for (Object[] o : list) { + ConexionVO vo = new ConexionVO(); + vo.setGrupo(((BigDecimal) o[0]).intValue()); + vo.setConexionCtrlId(((BigDecimal) o[1]).longValue()); + vo.setConOrigen((String) o[2]); + vo.setConDestino((String) o[3]); + vo.setTramoOrigen((String) o[4]); + vo.setTramoDestino((String) o[5]); + vo.setBuscaAgruapada(isBuscaAgrupada); + + vos.add(vo); + } + + return vos; + } + + private String getQueryConexiones(boolean isBuscaAgrupada, Integer origenId, Integer destinoId) { StringBuilder sb = new StringBuilder(); - sb.append(" select cc.conexionctrl_id as conexionCtrlId, occ.descparada as conOrigen, dcc.descparada as conDestino, "); - sb.append(" c.numgrupo as grupo, oc.descparada as tramoOrigen, dc.descparada as tramoDestino "); + + sb.append(" select "); + sb.append(isBuscaAgrupada ? " max(c.numgrupo) as grupo, " : " c.numgrupo as grupo, "); + sb.append(" cc.conexionctrl_id as conexionCtrlId, occ.descparada as conOrigen, dcc.descparada as conDestino, "); + sb.append(" oc.descparada as tramoOrigen, dc.descparada as tramoDestino, c.numsecuencia as numsecuencia "); sb.append(" from conexion_ctrl cc "); sb.append(" inner join conexion_conf conf "); sb.append(" on conf.conexionctrl_id = cc.conexionctrl_id, "); @@ -105,31 +135,18 @@ public class ConexionHibernateDAO extends GenericHibernateDAO sb.append(" and dcc.parada_id = cc.destino_id "); sb.append(" and oc.parada_id = c.origen_id "); sb.append(" and dc.parada_id = c.destino_id "); + if (origenId != null) { sb.append(" and cc.origen_id = ").append(origenId); } + if (destinoId != null) { sb.append(" and cc.destino_id = ").append(destinoId); } - sb.append(" order by occ.descparada, dcc.descparada, cc.conexionctrl_id, c.numgrupo, c.numsecuencia, oc.descparada, dc.descparada "); - Query query = getSession().createSQLQuery(sb.toString()); - List list = query.list(); - - List vos = new ArrayList(); - for (Object[] o : list) { - ConexionVO vo = new ConexionVO(); - vo.setConexionCtrlId(((BigDecimal) o[0]).longValue()); - vo.setConOrigen((String) o[1]); - vo.setConDestino((String) o[2]); - vo.setGrupo(((BigDecimal) o[3]).intValue()); - vo.setTramoOrigen((String) o[4]); - vo.setTramoDestino((String) o[5]); - - vos.add(vo); - } - - return vos; + sb.append(isBuscaAgrupada ? " group by cc.conexionctrl_id , occ.descparada, dcc.descparada, oc.descparada, dc.descparada, c.numsecuencia " : ""); + sb.append(" order by conOrigen, conDestino, conexionCtrlId, grupo, numsecuencia, tramoOrigen, tramoDestino "); + return sb.toString(); } @Override @@ -288,10 +305,10 @@ public class ConexionHibernateDAO extends GenericHibernateDAO @Override public Conexion buscarPorConexionRutaTramoCtrl(Integer conexionRutaTramoId) { - + Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("conexionRutaTramoId", conexionRutaTramoId)); - c.add(Restrictions.eq("activo", Boolean.TRUE)); + c.add(Restrictions.eq("activo", Boolean.TRUE)); return (Conexion) c.uniqueResult(); } } diff --git a/src/com/rjconsultores/ventaboletos/service/ConexionService.java b/src/com/rjconsultores/ventaboletos/service/ConexionService.java index b69de411b..3d1d8d1a1 100644 --- a/src/com/rjconsultores/ventaboletos/service/ConexionService.java +++ b/src/com/rjconsultores/ventaboletos/service/ConexionService.java @@ -13,7 +13,7 @@ public interface ConexionService { */ public void gerarConexiones(); - public List buscarConexiones(Integer origenId, Integer destinoId); + public List buscarConexiones(boolean isBuscaAgrupada, Integer origenId, Integer destinoId); public Conexion suscribir(Conexion conexion); diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ConexionServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ConexionServiceImpl.java index 2af240b0e..0ed2dfad4 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/ConexionServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/ConexionServiceImpl.java @@ -31,8 +31,8 @@ public class ConexionServiceImpl implements ConexionService { } @Override - public List buscarConexiones(Integer origenId, Integer destinoId) { - return conexionDAO.buscarConexiones(origenId, destinoId); + public List buscarConexiones(boolean isBuscaAgrupada, Integer origenId, Integer destinoId) { + return conexionDAO.buscarConexiones(isBuscaAgrupada, origenId, destinoId); } @Override diff --git a/src/com/rjconsultores/ventaboletos/vo/conexion/ConexionVO.java b/src/com/rjconsultores/ventaboletos/vo/conexion/ConexionVO.java index a727bda18..297296b8a 100644 --- a/src/com/rjconsultores/ventaboletos/vo/conexion/ConexionVO.java +++ b/src/com/rjconsultores/ventaboletos/vo/conexion/ConexionVO.java @@ -8,6 +8,8 @@ public class ConexionVO { private String tramoDestino; private Long conexionCtrlId; + private boolean buscaAgruapada; + public String getConOrigen() { return conOrigen; } @@ -56,6 +58,14 @@ public class ConexionVO { this.conexionCtrlId = conexionCtrlId; } + public boolean isBuscaAgruapada() { + return buscaAgruapada; + } + + public void setBuscaAgruapada(boolean buscaAgruapada) { + this.buscaAgruapada = buscaAgruapada; + } + @Override public String toString() { return "ConexionVO [conOrigen=" + conOrigen + ", conDestino=" + conDestino + ", grupo=" + grupo + ", tramoOrigen=" + tramoOrigen + ", tramoDestino=" + tramoDestino + ", conexionCtrlId=" + conexionCtrlId + "]";