fixes bug#23906
dev: Wallace qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@110090 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
179555eb79
commit
e494df0924
|
@ -3,6 +3,7 @@ package com.rjconsultores.ventaboletos.dao.hibernate;
|
|||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -90,7 +91,7 @@ public class ConexionHibernateDAO extends GenericHibernateDAO<Conexion, Integer>
|
|||
@Override
|
||||
public List<ConexionVO> buscarConexiones(boolean isBuscaAgrupada, Integer origenId, Integer destinoId) {
|
||||
|
||||
String queryStr = getQueryConexiones(isBuscaAgrupada, origenId, destinoId);
|
||||
String queryStr = getQueryConexiones(origenId, destinoId);
|
||||
|
||||
Query query = getSession().createSQLQuery(queryStr);
|
||||
List<Object[]> list = query.list();
|
||||
|
@ -109,15 +110,62 @@ public class ConexionHibernateDAO extends GenericHibernateDAO<Conexion, Integer>
|
|||
vos.add(vo);
|
||||
}
|
||||
|
||||
if (isBuscaAgrupada) {
|
||||
return agruparConexiones(vos);
|
||||
}
|
||||
|
||||
return vos;
|
||||
}
|
||||
|
||||
private String getQueryConexiones(boolean isBuscaAgrupada, Integer origenId, Integer destinoId) {
|
||||
private List<ConexionVO> agruparConexiones(List<ConexionVO> conexiones) {
|
||||
|
||||
LinkedHashMap<String, List<ConexionVO>> map = new LinkedHashMap<String, List<ConexionVO>>();
|
||||
|
||||
List<ConexionVO> agrpVo = new ArrayList<ConexionVO>();
|
||||
|
||||
String grupoTrecho = null;
|
||||
Integer grupo = null;
|
||||
for (ConexionVO vo : conexiones) {
|
||||
|
||||
if (grupo == null)
|
||||
grupo = vo.getGrupo();
|
||||
|
||||
if (!grupo.equals(vo.getGrupo())) {
|
||||
if (!map.containsKey(grupoTrecho)) {
|
||||
map.put(grupoTrecho, agrpVo);
|
||||
}
|
||||
|
||||
grupo = vo.getGrupo();
|
||||
grupoTrecho = null;
|
||||
agrpVo = new ArrayList<ConexionVO>();
|
||||
}
|
||||
|
||||
if (grupo.equals(vo.getGrupo())) {
|
||||
|
||||
if (grupoTrecho == null) {
|
||||
grupoTrecho = vo.getTramoOrigen() + ";" + vo.getTramoDestino() + ";";
|
||||
} else {
|
||||
grupoTrecho += vo.getTramoOrigen() + ";" + vo.getTramoDestino() + ";";
|
||||
}
|
||||
|
||||
agrpVo.add(vo);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
List<ConexionVO> agrupados = new ArrayList<ConexionVO>();
|
||||
for (Map.Entry<String, List<ConexionVO>> entry : map.entrySet()) {
|
||||
agrupados.addAll(entry.getValue());
|
||||
}
|
||||
|
||||
return agrupados;
|
||||
}
|
||||
|
||||
private String getQueryConexiones(Integer origenId, Integer destinoId) {
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
sb.append(" select ");
|
||||
sb.append(isBuscaAgrupada ? " max(c.numgrupo) as grupo, " : " c.numgrupo as grupo, ");
|
||||
sb.append(" 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 ");
|
||||
|
@ -137,14 +185,13 @@ public class ConexionHibernateDAO extends GenericHibernateDAO<Conexion, Integer>
|
|||
sb.append(" and dc.parada_id = c.destino_id ");
|
||||
|
||||
if (origenId != null) {
|
||||
sb.append(" and cc.origen_id = ").append(origenId);
|
||||
sb.append(" and cc.origen_id = ").append(origenId);
|
||||
}
|
||||
|
||||
if (destinoId != null) {
|
||||
sb.append(" and cc.destino_id = ").append(destinoId);
|
||||
sb.append(" and cc.destino_id = ").append(destinoId);
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue