195 lines
5.9 KiB
Java
195 lines
5.9 KiB
Java
/*
|
|
* To change this template, choose Tools | Templates
|
|
* and open the template in the editor.
|
|
*/
|
|
package com.rjconsultores.ventaboletos.dao.hibernate;
|
|
|
|
import java.util.List;
|
|
|
|
import org.hibernate.Criteria;
|
|
import org.hibernate.Query;
|
|
import org.hibernate.SessionFactory;
|
|
import org.hibernate.criterion.Order;
|
|
import org.hibernate.criterion.Projections;
|
|
import org.hibernate.criterion.Restrictions;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
import org.springframework.stereotype.Repository;
|
|
|
|
import com.rjconsultores.ventaboletos.dao.RutaDAO;
|
|
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
|
import com.rjconsultores.ventaboletos.entidad.Empresa;
|
|
import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente;
|
|
import com.rjconsultores.ventaboletos.entidad.Parada;
|
|
import com.rjconsultores.ventaboletos.entidad.Ruta;
|
|
import com.rjconsultores.ventaboletos.entidad.RutaSecuencia;
|
|
import com.rjconsultores.ventaboletos.entidad.Tramo;
|
|
|
|
/**
|
|
*
|
|
* @author Rafius
|
|
*/
|
|
@Repository("rutaDAO")
|
|
public class RutaHibernateDAO extends GenericHibernateDAO<Ruta, Integer>
|
|
implements RutaDAO {
|
|
|
|
@Autowired
|
|
public RutaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
|
setSessionFactory(factory);
|
|
}
|
|
|
|
@Override
|
|
public List<Ruta> obtenerTodos() {
|
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
c.addOrder(Order.asc("descruta"));
|
|
|
|
return c.list();
|
|
}
|
|
|
|
public List<Ruta> buscarPorTramo(Tramo tramo) {
|
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
|
|
Criteria cTipoPuntoVenta = c.createCriteria("rutaCombinacionList");
|
|
cTipoPuntoVenta.add(Restrictions.eq("tramo", tramo));
|
|
|
|
return c.list();
|
|
}
|
|
|
|
public List<Ruta> buscarPorRutaPorEmpresa(Ruta ruta, Empresa empresa) {
|
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
c.add(Restrictions.eq("rutaId", ruta.getRutaId()));
|
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
|
|
Criteria cEmpresa = null;
|
|
if (empresa != null) {
|
|
cEmpresa = c.createCriteria("lsRutaEmpresa");
|
|
cEmpresa.add(Restrictions.eq("empresa", empresa));
|
|
cEmpresa.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
}
|
|
c.addOrder(Order.asc("descruta"));
|
|
|
|
return c.list();
|
|
}
|
|
|
|
public List<Ruta> buscarPorClaseServicio(ClaseServicio claseServicio) {
|
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
|
|
c.add(Restrictions.eq("claseServicio", claseServicio));
|
|
|
|
c.addOrder(Order.asc("descruta"));
|
|
|
|
return c.list();
|
|
}
|
|
|
|
public List<Ruta> buscar(String nomeRuta, ClaseServicio claseServicio,
|
|
Boolean nomeObrigatorio) {
|
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
// c.add(Restrictions.eq("descruta", nomeRuta));
|
|
c.add(Restrictions.eq("claseServicio", claseServicio));
|
|
c.add(Restrictions.eq("indNombreObligatorio", nomeObrigatorio));
|
|
|
|
return c.list();
|
|
}
|
|
|
|
public List<Ruta> obtenerPorEmpresa(Empresa empresa) {
|
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
c.add(Restrictions.ne("rutaId", -1));
|
|
|
|
if (empresa.getEmpresaId() != -1) {
|
|
c.createCriteria("lsRutaEmpresa").add(Restrictions.eq("empresa", empresa));
|
|
}
|
|
c.addOrder(Order.asc("descruta"));
|
|
|
|
return c.list();
|
|
}
|
|
|
|
@Override
|
|
public Parada buscarOrigen(Ruta ruta) {
|
|
Criteria c = this.getSession().createCriteria(RutaSecuencia.class);
|
|
c.add(Restrictions.eq("activo", true));
|
|
c.add(Restrictions.eq("ruta", ruta));
|
|
c.addOrder(Order.asc("numsecuencia"));
|
|
c.createAlias("tramo", "tramo")
|
|
.setProjection(Projections.property("tramo.origem"));
|
|
c.setMaxResults(1);
|
|
|
|
return (Parada) c.uniqueResult();
|
|
|
|
}
|
|
|
|
@Override
|
|
public Parada buscarDestino(Ruta ruta) {
|
|
Criteria c = this.getSession().createCriteria(RutaSecuencia.class);
|
|
c.add(Restrictions.eq("activo", true));
|
|
c.add(Restrictions.eq("ruta", ruta));
|
|
c.addOrder(Order.desc("numsecuencia"));
|
|
c.createAlias("tramo", "tramo")
|
|
.setProjection(Projections.property("tramo.destino"));
|
|
c.setMaxResults(1);
|
|
|
|
return (Parada) c.uniqueResult();
|
|
}
|
|
|
|
public List<Ruta> buscarTodosExceto(Integer... idRuta) {
|
|
Criteria c = this.makeCriteria();
|
|
for (Integer id : idRuta) {
|
|
c.add(Restrictions.ne("rutaId", id));
|
|
}
|
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
c.addOrder(Order.asc("descruta"));
|
|
|
|
return c.list();
|
|
}
|
|
|
|
public List<Ruta> buscarTodosEstos(Integer[] idRutas) {
|
|
Criteria c = this.makeCriteria();
|
|
c.add(Restrictions.in("rutaId", idRutas));
|
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
c.addOrder(Order.asc("descruta"));
|
|
|
|
return c.list();
|
|
}
|
|
|
|
public List<Ruta> buscarNumRuta(String numRuta) {
|
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
c.add(Restrictions.eq("activo", true));
|
|
c.add(Restrictions.eq("numRuta", numRuta));
|
|
|
|
return c.list();
|
|
}
|
|
|
|
public List<Ruta> buscaRuta(String palavraPesquisaRuta) {
|
|
|
|
StringBuffer hql = new StringBuffer();
|
|
hql.append(" FROM Ruta ");
|
|
hql.append(" WHERE descruta like :palavraPesquisaRuta ");
|
|
hql.append(" OR prefixo like :palavraPesquisaRuta ");
|
|
hql.append(" OR str(numRuta) like :palavraPesquisaRuta ");
|
|
|
|
Query sq = getSession().createQuery(hql.toString());
|
|
sq.setParameter("palavraPesquisaRuta", palavraPesquisaRuta + '%');
|
|
|
|
List<Ruta> lsRuta = sq.list();
|
|
return lsRuta;
|
|
}
|
|
|
|
public List<Ruta> buscaRutasFromOrgao(OrgaoConcedente orgao){
|
|
StringBuffer hql = new StringBuffer();
|
|
hql.append("select distinct r FROM Ruta r inner join r.rutaSecuenciaList rSeqList ");
|
|
hql.append(" inner join rSeqList.lsCasetaPeaje casPeajList ");
|
|
hql.append(" WHERE r.orgaoConcedente.orgaoConcedenteId = :orgaoId ");
|
|
|
|
Query sq = getSession().createQuery(hql.toString());
|
|
sq.setParameter("orgaoId", orgao.getOrgaoConcedenteId());
|
|
|
|
List<Ruta> lsRuta = sq.list();
|
|
return lsRuta;
|
|
}
|
|
|
|
}
|