bug#20497

dev: Valvevir
qua:

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@103931 d1611594-4594-4d17-8e1d-87c2c4800839
master
fabio 2020-10-24 15:11:26 +00:00
parent ef31272da3
commit dcb2bb106b
4 changed files with 104 additions and 7 deletions

View File

@ -12,6 +12,7 @@ import com.rjconsultores.ventaboletos.entidad.Parada;
import com.rjconsultores.ventaboletos.entidad.Tramo;
import com.rjconsultores.ventaboletos.entidad.TramoServicio;
import com.rjconsultores.ventaboletos.entidad.Via;
import com.rjconsultores.ventaboletos.vo.tramo.TramoVO;
/**
*
@ -49,5 +50,7 @@ public interface TramoDAO extends GenericDAO<Tramo, Integer> {
public List<TramoServicio> obtenerTramosServiciosPorTramo(Tramo t);
public List<Tramo> buscarListaPorIds(List<Integer> tramoIds);
public List<TramoVO> buscarListaPorIds(List<Integer> tramoIds, String chaveCorrida) throws Exception;
}

View File

@ -266,7 +266,7 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
StringBuilder sb = new StringBuilder();
sb.append("select * from (SELECT");
sb.append(" cor.corrida_id ||';'|| to_char(cor.feccorrida, 'ddMMYYYY') AS chaveCorrida ");
sb.append(" cor.corrida_id ||';'|| to_char(cor.feccorrida, 'ddMMYYYY') AS chaveCorrida, cor.ruta_id AS rutaId ");
sb.append(" FROM OPERADOR_EMBARCADA OPE ");
sb.append(" JOIN OPERADOR_EMBARCADA_SERVICO OPS ON OPE.OPERADOR_EMBARCADA_ID = OPS.OPERADOR_EMBARCADA_ID AND OPS.ACTIVO = 1 ");
sb.append(" JOIN ESQUEMA_CORRIDA ESQ ON ESQ.ESQUEMACORRIDA_ID = OPS.ESQUEMA_CORRIDA_ID AND ESQ.ACTIVO = 1 ");
@ -280,7 +280,7 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
sb.append(" COR.FECHORSALIDA, ");
sb.append(" COR.CORRIDA_ID) ");
sb.append(" UNION select * from (SELECT ");
sb.append(" cor.corrida_id ||';'|| to_char(cor.feccorrida, 'ddMMYYYY') AS chaveCorrida ");
sb.append(" cor.corrida_id ||';'|| to_char(cor.feccorrida, 'ddMMYYYY') AS chaveCorrida, cor.ruta_id AS rutaId ");
sb.append(" FROM OPERADOR_EMBARCADA OPE ");
sb.append(" JOIN OPERADOR_EMBARCADA_LINHA OPL ON OPE.OPERADOR_EMBARCADA_ID = OPL.OPERADOR_EMBARCADA_ID AND OPL.ACTIVO = 1 ");
sb.append(" left join operador_embarcada_servico ops on ops.operador_embarcada_id = ope.operador_embarcada_id AND ops.operador_embarcada_servico_id is null ");
@ -295,20 +295,23 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
sb.append(" COR.FECHORSALIDA, ");
sb.append(" COR.CORRIDA_ID)");
Query query = getSession().createSQLQuery(sb.toString());
Query query = getSession().createSQLQuery(sb.toString())
.addScalar("chaveCorrida", StringType.INSTANCE)
.addScalar("rutaId", IntegerType.INSTANCE);
query.setInteger("usuarioId", operador);
query.setInteger("empresaId", empresa.getEmpresaId());
query.setDate("dtIni", new java.sql.Date(dtIni.getTime()));
query.setDate("dtFim", new java.sql.Date(dtFim.getTime()));
List<String> list = query.list();
List<Object[]> list = query.list();
if( retornaTramos ) {
List<CorridaVO> corridas = new ArrayList<CorridaVO>();
for (String chave : list) {
for (Object[] chave : list) {
CorridaVO co = new CorridaVO();
co.setChaveCorrida(chave);
co.setListTramos( obterListaTramo(chave) );
co.setChaveCorrida((String)chave[0]);
co.setRutaId((Integer)chave[1] );
co.setListTramos( obterListaTramo((String)chave[0]) );
corridas.add(co);
}

View File

@ -8,10 +8,15 @@ import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.FetchMode;
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.hibernate.transform.Transformers;
import org.hibernate.type.BigDecimalType;
import org.hibernate.type.IntegerType;
import org.hibernate.type.StringType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;
@ -23,6 +28,8 @@ import com.rjconsultores.ventaboletos.entidad.Parada;
import com.rjconsultores.ventaboletos.entidad.Tramo;
import com.rjconsultores.ventaboletos.entidad.TramoServicio;
import com.rjconsultores.ventaboletos.entidad.Via;
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
import com.rjconsultores.ventaboletos.vo.tramo.TramoVO;
/**
*
@ -191,4 +198,79 @@ public class TramoHibernateDAO extends GenericHibernateDAO<Tramo, Integer>
return c.list();
}
@Override
public List<TramoVO> buscarListaPorIds(List<Integer> tramoIds, String chaveCorrida ) throws Exception {
StringBuilder sql = new StringBuilder();
sql.append(" SELECT ");
sql.append(" trm.tramo_id AS tramoid, ");
sql.append(" trm.desctramo AS desctramo, ");
sql.append(" trm.origen_id AS origemId, ");
sql.append(" trm.destino_id AS destinoId, ");
sql.append(" coalesce(ta.importetaxaembarque, 0) AS valorTaxa, ");
sql.append(" coalesce(ta.importepedagio, 0) AS valorPedagio, ");
sql.append(" coalesce(ta.importeoutros, 0) AS valorOutros, ");
sql.append(" coalesce(ta.importeseguro, 0) AS valorSeguro, ");
sql.append(" coalesce(ta.precio, 0) AS valorTarifa ");
// sql.append(" , co.ruta_id AS rutaId ");
sql.append(" FROM ");
sql.append(" ruta_combinacion rc ");
sql.append(" JOIN tramo trm ON trm.tramo_id = rc.tramo_id AND trm.activo = 1 ");
sql.append(" JOIN corrida_tramo crt ON crt.destino_id = trm.destino_id ");
sql.append(" AND crt.corrida_id = :corridaId ");
sql.append(" AND crt.feccorrida = :fecCorrida ");
sql.append(" AND crt.activo = 1 ");
sql.append(" JOIN corrida co ON co.corrida_id = crt.corrida_id ");
sql.append(" AND crt.feccorrida = co.feccorrida ");
sql.append(" and rc.ruta_id = co.ruta_id ");
sql.append(" JOIN empresa emp ON emp.empresa_id = co.empresacorrida_id ");
sql.append(" JOIN marca mar ON mar.empresa_id = emp.empresa_id AND mar.activo = 1 ");
sql.append(" JOIN tarifa ta ON ta.marca_id = mar.marca_id ");
sql.append(" AND ta.tramo_id = trm.tramo_id ");
sql.append(" AND ta.ruta_id = rc.ruta_id ");
sql.append(" AND ta.activo = 1 ");
sql.append(" JOIN vigencia_tarifa vt ON vt.vigenciatarifa_id = ta.vigenciatarifa_id AND vt.activo = 1 ");
sql.append(" WHERE ");
sql.append(" rc.activo = 1 ");
sql.append(" AND coalesce(rc.indventa, 0) = 1 ");
sql.append(" AND trm.origen_id IN ( ");
sql.append(" SELECT x.origen_id ");
sql.append(" FROM corrida_tramo x ");
sql.append(" WHERE x.corrida_id = co.corrida_id ");
sql.append(" AND x.feccorrida = co.feccorrida ");
sql.append(" ) ");
sql.append(" AND trm.destino_id IN ( ");
sql.append(" SELECT x.destino_id ");
sql.append(" FROM corrida_tramo x ");
sql.append(" WHERE x.corrida_id = co.corrida_id ");
sql.append(" AND x.feccorrida = co.feccorrida ");
sql.append(" ) ");
sql.append(" AND ( sysdate BETWEEN vt.feciniciovigencia AND vt.fecfinvigencia ");
sql.append(" AND vt.activo = 1 ) ");
sql.append(" and trm.tramo_id in ( :tramoIds ) ");
Query query = getSession().createSQLQuery(sql.toString())
.addScalar("tramoId", IntegerType.INSTANCE)
.addScalar("desctramo", StringType.INSTANCE)
.addScalar("origemId", IntegerType.INSTANCE)
.addScalar("destinoId", IntegerType.INSTANCE)
// .addScalar("rutaId", IntegerType.INSTANCE)
.addScalar("valorTaxa", BigDecimalType.INSTANCE)
.addScalar("valorPedagio", BigDecimalType.INSTANCE)
.addScalar("valorOutros", BigDecimalType.INSTANCE)
.addScalar("valorSeguro", BigDecimalType.INSTANCE)
.addScalar("valorTarifa", BigDecimalType.INSTANCE)
.setResultTransformer(Transformers.aliasToBean(TramoVO.class));
String[] split = chaveCorrida.split(";");
String corridaId = split[0].trim();
String fecha = split[1].trim();
query.setParameter("corridaId", Integer.parseInt(corridaId) );
query.setParameter("fecCorrida", DateUtil.getDateFromString(fecha, "ddMMyyyy") );
query.setParameterList("tramoIds", tramoIds);
return query.list();
}
}

View File

@ -25,6 +25,7 @@ public class TramoVO {
//campos usados nas consultas resumidas
private Integer origemId;
private Integer destinoId;
private Integer rutaId;
public TramoVO() {
//construtor default
@ -197,4 +198,12 @@ public class TramoVO {
this.destinoId = destinoId;
}
public Integer getRutaId() {
return rutaId;
}
public void setRutaId(Integer rutaId) {
this.rutaId = rutaId;
}
}