fixes bug#21436
dev: Valvevir qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@105106 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
4dbf62ba10
commit
80b3f09e84
|
@ -1,15 +1,24 @@
|
||||||
package com.rjconsultores.ventaboletos.dao.hibernate;
|
package com.rjconsultores.ventaboletos.dao.hibernate;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.ParameterizedType;
|
import java.lang.reflect.ParameterizedType;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.hibernate.Criteria;
|
import org.hibernate.Criteria;
|
||||||
import org.hibernate.HibernateException;
|
import org.hibernate.HibernateException;
|
||||||
|
import org.hibernate.Session;
|
||||||
import org.hibernate.criterion.Criterion;
|
import org.hibernate.criterion.Criterion;
|
||||||
import org.hibernate.criterion.Projections;
|
import org.hibernate.criterion.Projections;
|
||||||
import org.hibernate.criterion.Restrictions;
|
import org.hibernate.criterion.Restrictions;
|
||||||
|
import org.hibernate.engine.LoadQueryInfluencers;
|
||||||
|
import org.hibernate.engine.SessionFactoryImplementor;
|
||||||
|
import org.hibernate.impl.CriteriaImpl;
|
||||||
|
import org.hibernate.impl.SessionImpl;
|
||||||
|
import org.hibernate.loader.OuterJoinLoader;
|
||||||
|
import org.hibernate.loader.criteria.CriteriaLoader;
|
||||||
|
import org.hibernate.persister.entity.OuterJoinLoadable;
|
||||||
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
|
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.dao.GenericDAO;
|
import com.rjconsultores.ventaboletos.dao.GenericDAO;
|
||||||
|
@ -20,6 +29,7 @@ import com.rjconsultores.ventaboletos.dao.GenericDAO;
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public class GenericHibernateDAO<T, ID extends Serializable> extends HibernateDaoSupport implements GenericDAO<T, ID> {
|
public class GenericHibernateDAO<T, ID extends Serializable> extends HibernateDaoSupport implements GenericDAO<T, ID> {
|
||||||
|
public long start = System.currentTimeMillis();
|
||||||
|
|
||||||
public GenericHibernateDAO() {
|
public GenericHibernateDAO() {
|
||||||
this.persistentClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
|
this.persistentClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
|
||||||
|
@ -106,4 +116,46 @@ public class GenericHibernateDAO<T, ID extends Serializable> extends HibernateDa
|
||||||
public void suscribirTodos(Collection<T> entidades) {
|
public void suscribirTodos(Collection<T> entidades) {
|
||||||
getHibernateTemplate().saveOrUpdateAll(entidades);
|
getHibernateTemplate().saveOrUpdateAll(entidades);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Metodo que retorna o sql do criteria passado
|
||||||
|
* para uso em debug e auxilio nas analises
|
||||||
|
* */
|
||||||
|
public String getCriteriaSql( Criteria c, Session se) {
|
||||||
|
try {
|
||||||
|
CriteriaImpl ci = (CriteriaImpl) c;
|
||||||
|
SessionImpl s = (SessionImpl) se;
|
||||||
|
SessionFactoryImplementor factory = (SessionFactoryImplementor) s.getSessionFactory();
|
||||||
|
String[] implementors = factory.getImplementors(ci.getEntityOrClassName());
|
||||||
|
LoadQueryInfluencers lqis = new LoadQueryInfluencers();
|
||||||
|
CriteriaLoader loader = new CriteriaLoader((OuterJoinLoadable) factory.getEntityPersister(implementors[0]), factory, ci, implementors[0], lqis);
|
||||||
|
Field f = OuterJoinLoader.class.getDeclaredField("sql");
|
||||||
|
f.setAccessible(true);
|
||||||
|
String sql = (String) f.get(loader);
|
||||||
|
return sql;
|
||||||
|
} catch (Exception e) {
|
||||||
|
return "exception "+e.getMessage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Metodo adicionado para retornar em o tempo de execucao
|
||||||
|
* de cada metodo chamado, sendo chamado nas implementacoes
|
||||||
|
* e printado via log.debug, para que possa ser analizado
|
||||||
|
* qualquer eventual demora na execução
|
||||||
|
* */
|
||||||
|
public String printInfo(String method, long start) {
|
||||||
|
long milliseconds = System.currentTimeMillis() - start;
|
||||||
|
long minutes = (milliseconds / 1000) / 60;
|
||||||
|
long seconds = (milliseconds / 1000) % 60;
|
||||||
|
|
||||||
|
String info = String.format("[%s] %d minutos e %d segundos", method, minutes, seconds);
|
||||||
|
|
||||||
|
if ((minutes + seconds) == 0) {
|
||||||
|
info = String.format("[%s] %d milissegundos", method, milliseconds);
|
||||||
|
}
|
||||||
|
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@ import org.hibernate.criterion.Restrictions;
|
||||||
import org.hibernate.transform.AliasToBeanResultTransformer;
|
import org.hibernate.transform.AliasToBeanResultTransformer;
|
||||||
import org.hibernate.type.IntegerType;
|
import org.hibernate.type.IntegerType;
|
||||||
import org.hibernate.type.StringType;
|
import org.hibernate.type.StringType;
|
||||||
|
import org.slf4j.Logger;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
@ -20,6 +21,7 @@ import com.rjconsultores.ventaboletos.entidad.PuntoVentaVO;
|
||||||
@Repository("operadorEmbarcadaDAO")
|
@Repository("operadorEmbarcadaDAO")
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public class OperadorEmbarcadaHibernateDAO extends GenericHibernateDAO<OperadorEmbarcada, Long> implements OperadorEmbarcadaDAO {
|
public class OperadorEmbarcadaHibernateDAO extends GenericHibernateDAO<OperadorEmbarcada, Long> implements OperadorEmbarcadaDAO {
|
||||||
|
private static Logger log = org.slf4j.LoggerFactory.getLogger(OperadorEmbarcadaHibernateDAO.class);
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public OperadorEmbarcadaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
public OperadorEmbarcadaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
||||||
|
@ -28,32 +30,42 @@ public class OperadorEmbarcadaHibernateDAO extends GenericHibernateDAO<OperadorE
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<OperadorEmbarcada> buscarTodosOperadores() {
|
public List<OperadorEmbarcada> buscarTodosOperadores() {
|
||||||
|
start = System.currentTimeMillis();
|
||||||
Criteria c = getSession().createCriteria(getPersistentClass());
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
||||||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||||
|
|
||||||
return c.list();
|
List<OperadorEmbarcada> retorno = c.list();
|
||||||
|
log.debug( printInfo("buscarOperadorEmbarcadaPorUsuario", start));
|
||||||
|
return retorno;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public OperadorEmbarcada burcarOperadorPorId(Long operadorEmbarcadaID) {
|
public OperadorEmbarcada burcarOperadorPorId(Long operadorEmbarcadaID) {
|
||||||
|
start = System.currentTimeMillis();
|
||||||
Criteria c = getSession().createCriteria(getPersistentClass());
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
||||||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||||
c.add(Restrictions.eq("operadorEmbarcadaId", operadorEmbarcadaID));
|
c.add(Restrictions.eq("operadorEmbarcadaId", operadorEmbarcadaID));
|
||||||
|
|
||||||
return (OperadorEmbarcada) c.uniqueResult();
|
OperadorEmbarcada retorno = (OperadorEmbarcada) c.uniqueResult();
|
||||||
|
log.debug( printInfo("burcarOperadorPorId", start));
|
||||||
|
return retorno;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public OperadorEmbarcada buscarOperadorEmbarcadaPorUsuario(Integer idUsuario) {
|
public OperadorEmbarcada buscarOperadorEmbarcadaPorUsuario(Integer idUsuario) {
|
||||||
|
start = System.currentTimeMillis();
|
||||||
Criteria c = getSession().createCriteria(getPersistentClass());
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
||||||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||||
c.add(Restrictions.eq("usuario.usuarioId", idUsuario));
|
c.add(Restrictions.eq("usuario.usuarioId", idUsuario));
|
||||||
|
|
||||||
return (OperadorEmbarcada) c.uniqueResult();
|
OperadorEmbarcada op = (OperadorEmbarcada) c.uniqueResult();
|
||||||
|
log.debug( printInfo("buscarOperadorEmbarcadaPorUsuario", start));
|
||||||
|
return op;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PuntoVentaVO getPuntoVentaVO(Integer operador) {
|
public PuntoVentaVO getPuntoVentaVO(Integer operador) {
|
||||||
|
start = System.currentTimeMillis();
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
sb.append(" SELECT ");
|
sb.append(" SELECT ");
|
||||||
sb.append(" PV.PUNTOVENTA_ID AS puntoventaId, ");
|
sb.append(" PV.PUNTOVENTA_ID AS puntoventaId, ");
|
||||||
|
@ -73,6 +85,8 @@ public class OperadorEmbarcadaHibernateDAO extends GenericHibernateDAO<OperadorE
|
||||||
// sql.setInteger("empresa_id", empresa);
|
// sql.setInteger("empresa_id", empresa);
|
||||||
sql.setResultTransformer(new AliasToBeanResultTransformer(PuntoVentaVO.class));
|
sql.setResultTransformer(new AliasToBeanResultTransformer(PuntoVentaVO.class));
|
||||||
PuntoVentaVO puntoVentaVO = (PuntoVentaVO) sql.uniqueResult();
|
PuntoVentaVO puntoVentaVO = (PuntoVentaVO) sql.uniqueResult();
|
||||||
|
|
||||||
|
log.debug( printInfo("getPuntoVentaVO", start));
|
||||||
return puntoVentaVO;
|
return puntoVentaVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,6 @@ import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaServico;
|
||||||
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
|
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
|
||||||
import com.rjconsultores.ventaboletos.entidad.TarifaMinima;
|
import com.rjconsultores.ventaboletos.entidad.TarifaMinima;
|
||||||
import com.rjconsultores.ventaboletos.service.AliasServicoService;
|
import com.rjconsultores.ventaboletos.service.AliasServicoService;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
|
||||||
import com.rjconsultores.ventaboletos.vo.corrida.CorridaVO;
|
import com.rjconsultores.ventaboletos.vo.corrida.CorridaVO;
|
||||||
import com.rjconsultores.ventaboletos.vo.corrida.TramoSequenciaVO;
|
import com.rjconsultores.ventaboletos.vo.corrida.TramoSequenciaVO;
|
||||||
import com.rjconsultores.ventaboletos.vo.parada.ParadaVO;
|
import com.rjconsultores.ventaboletos.vo.parada.ParadaVO;
|
||||||
|
@ -268,6 +267,7 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
||||||
|
|
||||||
private List getCorridasResumido(Integer operador, Empresa empresa, Date dtIni, Date dtFim, Boolean retornaTramos) throws Exception {
|
private List getCorridasResumido(Integer operador, Empresa empresa, Date dtIni, Date dtFim, Boolean retornaTramos) throws Exception {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
|
start = System.currentTimeMillis();
|
||||||
|
|
||||||
sb.append("select * from (SELECT");
|
sb.append("select * from (SELECT");
|
||||||
sb.append(" cor.corrida_id ||';'|| to_char(cor.feccorrida, 'ddMMYYYY') AS chaveCorrida, cor.ruta_id AS rutaId ");
|
sb.append(" cor.corrida_id ||';'|| to_char(cor.feccorrida, 'ddMMYYYY') AS chaveCorrida, cor.ruta_id AS rutaId ");
|
||||||
|
@ -320,6 +320,8 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
||||||
corridas.add(co);
|
corridas.add(co);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
log.debug( printInfo("getCorridasResumido", start));
|
||||||
return corridas;
|
return corridas;
|
||||||
}else {
|
}else {
|
||||||
List<String> corridasString = new ArrayList<String>();
|
List<String> corridasString = new ArrayList<String>();
|
||||||
|
@ -327,12 +329,13 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
||||||
corridasString.add( (String)chave[0] );
|
corridasString.add( (String)chave[0] );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.debug( printInfo("getCorridasResumido", start));
|
||||||
return corridasString;
|
return corridasString;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Integer> obterListaTramo( String chave, Integer rutaId ) throws Exception{
|
private List<Integer> obterListaTramo( String chave, Integer rutaId ) throws Exception{
|
||||||
|
start = System.currentTimeMillis();
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
sb.append(" SELECT");
|
sb.append(" SELECT");
|
||||||
|
@ -340,7 +343,7 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
||||||
sb.append(" FROM RUTA_COMBINACION RC ");
|
sb.append(" FROM RUTA_COMBINACION RC ");
|
||||||
sb.append(" JOIN TRAMO TRM ON TRM.TRAMO_ID = RC.TRAMO_ID AND TRM.activo = 1 ");
|
sb.append(" JOIN TRAMO TRM ON TRM.TRAMO_ID = RC.TRAMO_ID AND TRM.activo = 1 ");
|
||||||
sb.append(" JOIN CORRIDA_TRAMO CT ON CT.CORRIDA_ID = :corridaId ");
|
sb.append(" JOIN CORRIDA_TRAMO CT ON CT.CORRIDA_ID = :corridaId ");
|
||||||
sb.append(" AND CT.FECCORRIDA = :feccorrida ");
|
sb.append(" AND CT.FECCORRIDA = TO_DATE(:feccorrida, 'DDmmYYYY') ");
|
||||||
sb.append(" AND CT.DESTINO_ID = TRM.DESTINO_ID ");
|
sb.append(" AND CT.DESTINO_ID = TRM.DESTINO_ID ");
|
||||||
sb.append(" AND CT.activo = 1 ");
|
sb.append(" AND CT.activo = 1 ");
|
||||||
sb.append(" WHERE RC.RUTA_ID = :rutaId ");
|
sb.append(" WHERE RC.RUTA_ID = :rutaId ");
|
||||||
|
@ -352,10 +355,12 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
||||||
String[] split = chave.split(";");
|
String[] split = chave.split(";");
|
||||||
|
|
||||||
query.setParameter("corridaId", split[0] );
|
query.setParameter("corridaId", split[0] );
|
||||||
query.setParameter("feccorrida", DateUtil.getDateFromString( split[1], "ddMMyyyy") );
|
query.setParameter("feccorrida", split[1] );
|
||||||
query.setParameter("rutaId", rutaId );
|
query.setParameter("rutaId", rutaId );
|
||||||
|
|
||||||
return query.list();
|
List<Integer> list = query.list();
|
||||||
|
log.debug( printInfo("obterListaTramo", start));
|
||||||
|
return list;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue