165 lines
5.5 KiB
Java
165 lines
5.5 KiB
Java
package com.rjconsultores.ventaboletos.dao.hibernate;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
|
|
import org.hibernate.Query;
|
|
import org.hibernate.SQLQuery;
|
|
import org.hibernate.SessionFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
import org.springframework.stereotype.Repository;
|
|
|
|
import com.rjconsultores.ventaboletos.dao.ConexionCtrlDAO;
|
|
import com.rjconsultores.ventaboletos.entidad.ConexionCtrl;
|
|
import com.rjconsultores.ventaboletos.entidad.Parada;
|
|
import com.rjconsultores.ventaboletos.entidad.PricingConexao;
|
|
import com.rjconsultores.ventaboletos.vo.conexion.OrdenarLocalidadesGeradas;
|
|
import com.rjconsultores.ventaboletos.vo.parada.ConexionCtrlVO;
|
|
import com.rjconsultores.ventaboletos.vo.parada.ParadaVOConexionRuta;
|
|
|
|
@Repository("conexionCtrlDAO")
|
|
public class ConexionCtrlHibernateDAO extends GenericHibernateDAO<ConexionCtrl, Long>
|
|
implements ConexionCtrlDAO {
|
|
|
|
@Autowired
|
|
private ConexionRutaConfHibernateDAO confRutaDAO;
|
|
|
|
@Autowired
|
|
public ConexionCtrlHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
|
setSessionFactory(factory);
|
|
}
|
|
|
|
@Override
|
|
public List<ConexionCtrl> buscarConexionesCtrl(Integer origenId, Integer destinoId) {
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.append(" from ConexionCtrl ");
|
|
sb.append(" where activo = 1 ");
|
|
|
|
if (origenId != null) {
|
|
sb.append(" and origenId = ").append(origenId);
|
|
}
|
|
if (destinoId != null) {
|
|
sb.append(" and destinoId = ").append(destinoId);
|
|
}
|
|
|
|
Query query = getSession().createQuery(sb.toString());
|
|
List<ConexionCtrl> list = query.list();
|
|
|
|
return list;
|
|
}
|
|
|
|
@Override
|
|
@SuppressWarnings("unchecked")
|
|
public List<ConexionCtrl> buscarTodasConexionesCtrlPricing() {
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.append(" from ConexionCtrl ");
|
|
sb.append(" where activo = 1 and indPricing = 1 ");
|
|
|
|
Query query = getSession().createQuery(sb.toString());
|
|
List<ConexionCtrl> list = query.list();
|
|
|
|
return list;
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
@Override
|
|
public List<ParadaVOConexionRuta> carregarConexoesCadastradas(Long conexionctrlId) {
|
|
|
|
if(conexionctrlId == null) {
|
|
return null;
|
|
}
|
|
|
|
StringBuilder sQuery = new StringBuilder();
|
|
sQuery.append(confRutaDAO.getSQLCarregarConexoesCadastradas())
|
|
.append(" where ")
|
|
.append(" coctrl.activo = 1 and coctrl.conexionctrl_id = :conexionctrl_id ");
|
|
|
|
Query qr = getSession().createSQLQuery(sQuery.toString());
|
|
qr.setParameter("conexionctrl_id", conexionctrlId);
|
|
|
|
List<ParadaVOConexionRuta> localidadesCombinadas = new ArrayList<ParadaVOConexionRuta>(0);
|
|
List<ConexionCtrl> listConexionCtrl = new ArrayList<ConexionCtrl>(0);
|
|
List<ConexionCtrlVO> listConexionCtrlVO = new ArrayList<ConexionCtrlVO>(0);
|
|
|
|
List<Object[]> result = qr.list();
|
|
|
|
confRutaDAO.transformarObjetosConexao(localidadesCombinadas, listConexionCtrl, listConexionCtrlVO, result);
|
|
|
|
Collections.sort(localidadesCombinadas, new OrdenarLocalidadesGeradas());
|
|
|
|
return localidadesCombinadas;
|
|
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
@Override
|
|
public List<ParadaVOConexionRuta> carregarConexoesCadastradas(Integer origenId, Integer destinoId, Long conexionctrlId) {
|
|
|
|
if(origenId == null || destinoId == null) {
|
|
return null;
|
|
}
|
|
|
|
StringBuilder sQuery = new StringBuilder();
|
|
sQuery.append(" select distinct ")
|
|
.append(" origem.descparada as origem, destino.descparada as destino, c.conexionctrl_id ")
|
|
.append(" from")
|
|
.append(" conexion_ctrl c inner join ")
|
|
.append(" parada origem on origem.parada_id = c.origen_id inner join ")
|
|
.append(" parada destino on destino.parada_id = c.destino_id ")
|
|
.append(" where ")
|
|
.append(" c.activo = 1 and c.indpricing = 1 and c.origen_id = :origenId and c.destino_id = :destinoId ");
|
|
|
|
if(conexionctrlId != null) {
|
|
sQuery.append(" and c.conexionctrl_id = :conexionctrlId ");
|
|
}
|
|
|
|
Query qr = getSession().createSQLQuery(sQuery.toString());
|
|
qr.setParameter("origenId", origenId);
|
|
qr.setParameter("destinoId", destinoId);
|
|
|
|
if(conexionctrlId != null) {
|
|
qr.setParameter("conexionctrlId", conexionctrlId);
|
|
}
|
|
|
|
List<ParadaVOConexionRuta> localidadesCombinadas = new ArrayList<ParadaVOConexionRuta>(0);
|
|
|
|
List<Object[]> result = qr.list();
|
|
|
|
for (Object[] tupla : result) {
|
|
|
|
Parada paradaOrigem = new Parada(origenId, null, tupla[0].toString());
|
|
Parada paradaDestino = new Parada(destinoId, null, tupla[1].toString());
|
|
|
|
conexionctrlId = Long.valueOf(tupla[2].toString());
|
|
|
|
ConexionCtrlVO conex = new ConexionCtrlVO(origenId, destinoId);
|
|
conex.setConexionctrlId(conexionctrlId);
|
|
conex.setIndPricing(true);
|
|
conex.setOrigenId(origenId);
|
|
conex.setDestinoId(destinoId);
|
|
|
|
ParadaVOConexionRuta parada = new ParadaVOConexionRuta();
|
|
|
|
parada.setParadaOrigem(paradaOrigem);
|
|
parada.setParadaDestino(paradaDestino);
|
|
parada.setConexionCtrl(conex);
|
|
|
|
localidadesCombinadas.add(parada);
|
|
}
|
|
|
|
return localidadesCombinadas;
|
|
|
|
}
|
|
|
|
public void limparPesquisaPricingConexao(Integer pricingId) {
|
|
StringBuilder sQuery = new StringBuilder("DELETE FROM PRICING_CONEXAO_VALOR WHERE PRICING_ID = :pricingId AND TRUNC(FECMODIF) = TRUNC(SYSDATE) ");
|
|
SQLQuery qrUpdate = getSession().createSQLQuery(sQuery.toString());
|
|
|
|
qrUpdate.setParameter("pricingId", pricingId);
|
|
qrUpdate.executeUpdate();
|
|
}
|
|
}
|