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
master
julio 2021-12-16 19:56:46 +00:00
parent d08b2437da
commit df06a43d3b
5 changed files with 54 additions and 27 deletions

View File

@ -14,7 +14,7 @@ public interface ConexionDAO extends GenericDAO<Conexion, Integer> {
*/
public void generarConexiones(Integer usuarioId);
public List<ConexionVO> buscarConexiones(Integer origenId, Integer destinoId);
public List<ConexionVO> buscarConexiones(boolean isBuscaAgrupada, Integer origenId, Integer destinoId);
public List<Conexion> buscarPorConexionCtrl(Long conexcionCtrlId);

View File

@ -78,6 +78,9 @@ public class ConexionHibernateDAO extends GenericHibernateDAO<Conexion, Integer>
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<Conexion, Integer>
}
@Override
public List<ConexionVO> buscarConexiones(Integer origenId, Integer destinoId) {
public List<ConexionVO> buscarConexiones(boolean isBuscaAgrupada, Integer origenId, Integer destinoId) {
String queryStr = getQueryConexiones(isBuscaAgrupada, origenId, destinoId);
Query query = getSession().createSQLQuery(queryStr);
List<Object[]> list = query.list();
List<ConexionVO> vos = new ArrayList<ConexionVO>();
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<Conexion, Integer>
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<Object[]> list = query.list();
List<ConexionVO> vos = new ArrayList<ConexionVO>();
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

View File

@ -13,7 +13,7 @@ public interface ConexionService {
*/
public void gerarConexiones();
public List<ConexionVO> buscarConexiones(Integer origenId, Integer destinoId);
public List<ConexionVO> buscarConexiones(boolean isBuscaAgrupada, Integer origenId, Integer destinoId);
public Conexion suscribir(Conexion conexion);

View File

@ -31,8 +31,8 @@ public class ConexionServiceImpl implements ConexionService {
}
@Override
public List<ConexionVO> buscarConexiones(Integer origenId, Integer destinoId) {
return conexionDAO.buscarConexiones(origenId, destinoId);
public List<ConexionVO> buscarConexiones(boolean isBuscaAgrupada, Integer origenId, Integer destinoId) {
return conexionDAO.buscarConexiones(isBuscaAgrupada, origenId, destinoId);
}
@Override

View File

@ -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 + "]";