edgar 2016-06-20 20:48:37 +00:00
parent b94d07768e
commit 851bce11ff
9 changed files with 157 additions and 76 deletions

View File

@ -87,4 +87,6 @@ public interface CorridaDAO extends GenericDAO<Corrida, Corrida.Id> {
List<Corrida> buscarPorEstado(Estado estado, Date dataInicial, Integer corridaId);
public Corrida buscaCorrridaFutura(Ruta ruta, Date fecInicio);
}

View File

@ -23,13 +23,15 @@ import java.util.List;
public interface EsquemaCorridaDAO extends GenericDAO<EsquemaCorrida, Integer> {
public List<EsquemaCorrida> buscarPorEsquemaOperacional(EsquemaOperacional eo);
public List<EsquemaCorrida> buscarPorEmpresaCorrida(Empresa empresa);
public List<EsquemaCorrida> buscar(Marca marca, RolOperativo rolOperativo, Ruta ruta, ClaseServicio claseServicio);
public boolean buscarNumCorrida(Integer numCorrida, Integer numCorridaPisoExtra);
public EsquemaCorrida buscaEsquemaPorRuta(Ruta ruta);
/**
* Indica se el esquema corrida es hijo de un esquemCorrida.
*

View File

@ -12,6 +12,7 @@ import java.util.GregorianCalendar;
import java.util.List;
import org.apache.commons.lang.math.NumberUtils;
import org.apache.xmlbeans.impl.xb.xsdschema.RestrictionDocument.Restriction;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
@ -546,20 +547,20 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
fechorsalidaUpdate,
tiempoHorHusoOrigem + tiempoHorVeranoOrigem,
tiempoHorHusoDestino + tiempoHorVeranoDestino);
if(tiempoestancia != null) {
if (tiempoestancia != null) {
Calendar aux = Calendar.getInstance();
aux.setTime(DateUtil.normalizar(husoHorVeranoLlegadaAnterior));
aux.add(Calendar.MINUTE, tiempoestancia.getMinutes());
aux.add(Calendar.HOUR_OF_DAY, tiempoestancia.getHours());
husoHorVeranoLlegadaAnterior = aux.getTime();
Calendar auxFechorsalidaUpdate = Calendar.getInstance();
auxFechorsalidaUpdate.setTime(DateUtil.normalizar(fechorsalidaUpdate));
auxFechorsalidaUpdate.add(Calendar.MINUTE, tiempoestancia.getMinutes());
auxFechorsalidaUpdate.add(Calendar.HOUR_OF_DAY, tiempoestancia.getHours());
fechorsalidaUpdate = auxFechorsalidaUpdate.getTime();
}
@ -699,4 +700,16 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
return query.list();
}
@Override
public Corrida buscaCorrridaFutura(Ruta ruta, Date fecInicio) {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("ruta", ruta));
c.add(Restrictions.gt("fechorsalida", fecInicio));
List<Corrida> lsCorrida = c.list();
if (!lsCorrida.isEmpty()) {
return lsCorrida.get(0);
}
return null;
}
}

View File

@ -7,6 +7,7 @@ package com.rjconsultores.ventaboletos.dao.hibernate;
import java.util.Date;
import java.util.List;
import org.apache.commons.collections.set.CompositeSet.SetMutator;
import org.apache.commons.lang.math.NumberUtils;
import org.hibernate.Criteria;
import org.hibernate.Query;
@ -48,14 +49,14 @@ public class EsquemaCorridaHibernateDAO extends GenericHibernateDAO<EsquemaCorri
return c.list();
}
public List<EsquemaCorrida> buscarPorEmpresaCorrida(Empresa empresa){
public List<EsquemaCorrida> buscarPorEmpresaCorrida(Empresa empresa) {
StringBuilder sb = new StringBuilder();
sb.append("from EsquemaCorrida ec where ec.empresa.empresaId= :empresaId and activo = 1" );
sb.append("from EsquemaCorrida ec where ec.empresa.empresaId= :empresaId and activo = 1");
Query qry = getSession().createQuery(sb.toString());
qry.setInteger("empresaId", empresa.getEmpresaId());
return qry.list();
}
@ -77,7 +78,7 @@ public class EsquemaCorridaHibernateDAO extends GenericHibernateDAO<EsquemaCorri
c.add(Restrictions.eq("activo", Boolean.TRUE));
List result = c.list();
if(!result.isEmpty()){
if (!result.isEmpty()) {
return (EsquemaCorrida) result.get(NumberUtils.INTEGER_ZERO);
}
return null;
@ -170,6 +171,19 @@ public class EsquemaCorridaHibernateDAO extends GenericHibernateDAO<EsquemaCorri
return c.list();
}
public EsquemaCorrida buscaEsquemaPorRuta(Ruta ruta) {
List<EsquemaCorrida> lsEsquemaCorrida;
Criteria c = makeCriteria();
c.add(Restrictions.eq("ruta", ruta));
c.add(Restrictions.eq("activo", Boolean.TRUE));
c.setFirstResult(0);
c.setMaxResults(1);
c.createCriteria("esquemaOperacional").add(Restrictions.ge("fecfinvigencia", new Date()));
lsEsquemaCorrida = c.list();
return lsEsquemaCorrida.isEmpty() ? null : lsEsquemaCorrida.get(0);
}
@Override
public boolean buscarNumCorrida(Integer numCorrida, Integer numCorridaPisoExtra) {
Criteria c = getSession().createCriteria(getPersistentClass());

View File

@ -37,72 +37,99 @@ import javax.persistence.Transient;
public class Ruta implements Serializable, Comparable<Ruta> {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "RUTA_SEQ")
@Column(name = "RUTA_ID")
private Integer rutaId;
@Column(name = "DESCRUTA")
private String descruta;
@Column(name = "ACTIVO")
private Boolean activo;
@Column(name = "FECMODIF")
@Temporal(TemporalType.TIMESTAMP)
private Date fecmodif;
@Column(name = "USUARIO_ID")
private Integer usuarioId;
@JoinColumn(name = "CLASESERVICIO_ID", referencedColumnName = "CLASESERVICIO_ID")
@ManyToOne
private ClaseServicio claseServicio;
@JoinColumn(name = "GRUPORUTA_ID", referencedColumnName = "GRUPORUTA_ID")
@ManyToOne
private GrupoRuta grupoRuta;
@OneToMany(mappedBy = "ruta", cascade=CascadeType.ALL)
@OneToMany(mappedBy = "ruta", cascade = CascadeType.ALL)
private List<RutaSecuencia> rutaSecuenciaList;
@OneToMany(mappedBy = "ruta")
private List<RutaCombinacion> rutaCombinacionList;
@Column(name = "indnombreobligatorio")
private Boolean indNombreObligatorio;
@OneToMany(mappedBy = "ruta", cascade = CascadeType.ALL)
private List<RutaEmpresa> lsRutaEmpresa;
@Column(name = "INDVENTAOFFLINE")
private Boolean ventaOffLine;
@Column(name = "PREFIXO")
private String prefixo;
@Column(name = "PREFIXOAUXILIAR")
private String prefixoAuxiliar;
@OneToOne
@JoinColumn(name = "ORGAOCONCEDENTE_ID")
private OrgaoConcedente orgaoConcedente;
@Column(name = "INDSENTIDOIDA")
private Boolean indSentidoIda;
@Column(name = "NUMRUTA")
private String numRuta;
@Column(name = "INDTRIBTARIFA")
private Boolean indTribTarifa;
@Column(name = "INDTRIBPEDAGIO")
private Boolean indTribPedagio;
@Column(name = "INDTRIBTAXAEMBARQUE")
private Boolean indTribTaxaEmbarque;
private Boolean indTribTaxaEmbarque;
@Column(name = "CANTEIXOS")
private Integer cantEixos;
@Column(name = "CANTASIENTOS")
private Integer cantAsientos;
@Column(name = "INDVENTARIOCARD")
private Boolean indVentaRioCard;
@Column(name = "NUMRIOCARD")
private String numRioCard;
@Column(name = "INDBLOQVTAABIERTA")
private Boolean indBloqueoVtaAbierta;
@Column(name = "IS_RUTA_CANCELADA")
private Boolean isRutaCancelada;
@Transient
private Boolean isClone;
public Ruta() {
}
public static Ruta clone(Ruta other){
public static Ruta clone(Ruta other) {
Ruta ruta = new Ruta();
ruta.setIsClone(Boolean.TRUE);
ruta.activo = other.activo;
@ -118,12 +145,12 @@ public class Ruta implements Serializable, Comparable<Ruta> {
ruta.indTribTarifa = other.indTribTarifa;
ruta.indTribTaxaEmbarque = other.indTribTaxaEmbarque;
ruta.indVentaRioCard = other.indVentaRioCard;
/******* ruta.lsRutaEmpresa *************/
if (ruta.lsRutaEmpresa == null){
if (ruta.lsRutaEmpresa == null) {
ruta.lsRutaEmpresa = new ArrayList<RutaEmpresa>();
}
for (RutaEmpresa re : other.lsRutaEmpresa){
for (RutaEmpresa re : other.lsRutaEmpresa) {
RutaEmpresa r = new RutaEmpresa();
r.setActivo(re.getActivo());
r.setEmpresa(re.getEmpresa());
@ -134,65 +161,64 @@ public class Ruta implements Serializable, Comparable<Ruta> {
ruta.lsRutaEmpresa.add(r);
}
/*****************************************/
ruta.numRioCard = other.numRioCard;
ruta.numRuta = other.numRuta;
ruta.orgaoConcedente = other.orgaoConcedente;
ruta.prefixo = other.prefixo;
ruta.prefixoAuxiliar = other.prefixoAuxiliar;
/************* ruta.rutaCombinacionList **************/
// if (ruta.rutaCombinacionList == null){
// ruta.rutaCombinacionList = new ArrayList<RutaCombinacion>();
// }
// for (RutaCombinacion rc : other.rutaCombinacionList){
// RutaCombinacion rcnew = RutaCombinacion.clone(rc);
// rcnew.setRuta(ruta);
// rcnew.setRutacombinacionId(null);
// ruta.rutaCombinacionList.add(rcnew);
// }
// if (ruta.rutaCombinacionList == null){
// ruta.rutaCombinacionList = new ArrayList<RutaCombinacion>();
// }
// for (RutaCombinacion rc : other.rutaCombinacionList){
// RutaCombinacion rcnew = RutaCombinacion.clone(rc);
// rcnew.setRuta(ruta);
// rcnew.setRutacombinacionId(null);
// ruta.rutaCombinacionList.add(rcnew);
// }
/*******************************************************/
ruta.rutaId = other.rutaId;
/************ ruta.rutaSecuenciaList ************/
if (ruta.rutaSecuenciaList == null){
if (ruta.rutaSecuenciaList == null) {
ruta.rutaSecuenciaList = new ArrayList<RutaSecuencia>();
}
for (RutaSecuencia rs : other.rutaSecuenciaList){
for (RutaSecuencia rs : other.rutaSecuenciaList) {
RutaSecuencia rsnew = RutaSecuencia.clone(rs);
rsnew.setRuta(ruta);
rsnew.setRutasecuenciaId(null);
ruta.rutaSecuenciaList.add(rsnew);
}
/************************************************/
ruta.usuarioId = other.usuarioId;
ruta.ventaOffLine = other.ventaOffLine;
return ruta;
}
public Integer numSecuenciaOrigen(Integer origenId){
public Integer numSecuenciaOrigen(Integer origenId) {
Integer numSecuencia = -1;
for (RutaSecuencia rs : rutaSecuenciaList){
if (rs.tieneOrigen(origenId)){
for (RutaSecuencia rs : rutaSecuenciaList) {
if (rs.tieneOrigen(origenId)) {
numSecuencia = rs.getNumsecuencia().intValue();
}
}
return numSecuencia;
}
public Integer numSecuenciaDestino(Integer destinoId){
public Integer numSecuenciaDestino(Integer destinoId) {
Integer numSecuencia = -1;
for (RutaSecuencia rs : rutaSecuenciaList){
if (rs.tieneDestino(destinoId)){
for (RutaSecuencia rs : rutaSecuenciaList) {
if (rs.tieneDestino(destinoId)) {
numSecuencia = rs.getNumsecuencia().intValue();
}
}
return numSecuencia;
}
public Ruta(Integer rutaId) {
this.rutaId = rutaId;
}
@ -381,7 +407,7 @@ public class Ruta implements Serializable, Comparable<Ruta> {
public void setIndNombreObligatorio(Boolean indNombreObligatorio) {
this.indNombreObligatorio = indNombreObligatorio;
}
public Integer getCantEixos() {
return cantEixos;
}
@ -397,14 +423,14 @@ public class Ruta implements Serializable, Comparable<Ruta> {
public void setCantAsientos(Integer cantAsientos) {
this.cantAsientos = cantAsientos;
}
public Boolean getIndVentaRioCard() {
return indVentaRioCard;
}
public void setIndVentaRioCard(Boolean indVentaRioCard) {
this.indVentaRioCard = indVentaRioCard;
}
}
public String getNumRioCard() {
return numRioCard;
@ -413,7 +439,7 @@ public class Ruta implements Serializable, Comparable<Ruta> {
public void setNumRioCard(String numRioCard) {
this.numRioCard = numRioCard;
}
public Boolean getIndBloqueoVtaAbierta() {
return indBloqueoVtaAbierta;
}
@ -422,13 +448,21 @@ public class Ruta implements Serializable, Comparable<Ruta> {
this.indBloqueoVtaAbierta = indBloqueoVtaAbierta;
}
public Boolean getIsRutaCancelada() {
return isRutaCancelada;
}
public void setIsRutaCancelada(Boolean isRutaCancelada) {
this.isRutaCancelada = isRutaCancelada;
}
@Override
public int hashCode() {
int hash = 0;
hash += (getRutaId() != null ? getRutaId().hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
if (!(object instanceof Ruta)) {
@ -445,9 +479,10 @@ public class Ruta implements Serializable, Comparable<Ruta> {
public String toString() {
return this.getDescruta() + " - " + this.getRutaId();
}
@Override
public int compareTo(Ruta ruta) {
return this.getRutaId().intValue() - ruta.getRutaId().intValue();
public int compareTo(Ruta ruta) {
return this.getRutaId().intValue() - ruta.getRutaId().intValue();
}
public Boolean getIsClone() {
@ -456,5 +491,5 @@ public class Ruta implements Serializable, Comparable<Ruta> {
public void setIsClone(Boolean isClone) {
this.isClone = isClone;
}
}
}

View File

@ -15,6 +15,7 @@ import com.rjconsultores.ventaboletos.entidad.DiagramaAutobus;
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
import com.rjconsultores.ventaboletos.entidad.Estado;
import com.rjconsultores.ventaboletos.entidad.Parada;
import com.rjconsultores.ventaboletos.entidad.Ruta;
import com.rjconsultores.ventaboletos.exception.BusinessException;
/**
@ -74,4 +75,6 @@ public interface CorridaService extends GenericService<Corrida, Corrida.Id> {
public List<Corrida> buscarCorridaRelatorio(Connection conexao, Parada origem, Parada destino, Date feccorrida, Integer corridaId);
public Corrida buscaCorrridaFutura(Ruta ruta, Date fecInicio);
}

View File

@ -25,10 +25,10 @@ import com.rjconsultores.ventaboletos.entidad.Tramo;
public interface EsquemaCorridaService extends GenericService<EsquemaCorrida, Integer> {
public List<EsquemaCorrida> buscarPorEsquemaOperacional(EsquemaOperacional eo);
public List<EsquemaCorrida> buscarPorEmpresaCorrida(Empresa empresa);
public List<EsquemaCorrida> buscar(Marca marca, RolOperativo rolOperativo,Ruta ruta, ClaseServicio claseServicio);
public List<EsquemaCorrida> buscar(Marca marca, RolOperativo rolOperativo, Ruta ruta, ClaseServicio claseServicio);
public boolean buscarNumCorrida(Integer numCorrida, Integer numCorridaPisoExtra);
@ -38,6 +38,8 @@ public interface EsquemaCorridaService extends GenericService<EsquemaCorrida, In
public boolean buscarEsquemaCorridaExisteTramo(Tramo tramo);
public EsquemaCorrida buscaEsquemaPorRuta(Ruta ruta);
/**
* See {@link EsquemaCorridaDAO#existe(Ruta, Integer)}
*
@ -50,6 +52,6 @@ public interface EsquemaCorridaService extends GenericService<EsquemaCorrida, In
public List<EsquemaCorrida> buscaDentroVigenciaQtdeDiasNull(Date dataGeracao);
public List<EsquemaCorrida> buscaDentroVigenciaQtdeDiasNotNull(Date dataDe);
public EsquemaCorrida obtenerByEsquemaCorrida(Integer numCorrida);
}

View File

@ -410,7 +410,7 @@ public class CorridaServiceImpl implements CorridaService {
* @return - La corrida generada o null si no fue generada.
*/
private Corrida generarCorrida(EsquemaCorrida esquemaCorrida, Date dataGeracao, boolean isPisoExtra, Boolean isFeriado) {
GregorianCalendar calendario = new GregorianCalendar();
calendario.setTime(dataGeracao);
@ -440,9 +440,9 @@ public class CorridaServiceImpl implements CorridaService {
log.info("nao foi cadastrado o tempo de todos os trechos do esquema corrida=" + esquemaCorrida.getEsquemacorridaId());
return null;
}
try {
Ruta ruta = esquemaCorrida.getRuta();
ClaseServicio claseServicio = esquemaCorrida.getClaseServicio();
Marca marca = esquemaCorrida.getMarca();
@ -454,23 +454,23 @@ public class CorridaServiceImpl implements CorridaService {
id.setCorridaId(numCorrida);
id.setFeccorrida(DateUtil.normalizarToFecha(dataGeracao));
if(esquemaCorrida.getIndDiaSimDiaNao() != null && esquemaCorrida.getIndDiaSimDiaNao()) {
if (esquemaCorrida.getIndDiaSimDiaNao() != null && esquemaCorrida.getIndDiaSimDiaNao()) {
Calendar calendarData = Calendar.getInstance();
calendarData.setTime(dataGeracao);
calendarData.add(Calendar.DATE, -1);
Corrida.Id corridaOntem = new Corrida.Id();
corridaOntem.setCorridaId(numCorrida);
corridaOntem.setFeccorrida(DateUtil.normalizarToFecha(calendarData.getTime()));
if (corridaDAO.existe(corridaOntem)) {
log.info("Esquema configurado para gerar dia sim dia não e já possui corrida gerado no dia anterior, por isso não está data: " + DateUtil.getStringDate(dataGeracao));
return null;
}
}
if (corridaDAO.existe(id)) {
log.info("corrida existe = " + numCorrida + ";" + ruta.getDescruta() + ";" + DateUtil.getStringDate(dataGeracao) + ";" + DateUtil.getStringDate(horario, "HH:mm") + ";" + claseServicio.getDescclase() + ";" + marca.getDescmarca() + " Piso: " + isPisoExtra);
return null;
@ -523,11 +523,11 @@ public class CorridaServiceImpl implements CorridaService {
corrida.setAutobus(null);
corrida.setClaseServicio(esquemaCorrida.getClaseServicio());
corrida.setConductor(null);
if(esquemaCorrida.getIndCorridaExtra()){
corrida.setTipoServicio(new Short("2"));
}else{
corrida.setTipoServicio(new Short("1"));
}
if (esquemaCorrida.getIndCorridaExtra()) {
corrida.setTipoServicio(new Short("2"));
} else {
corrida.setTipoServicio(new Short("1"));
}
corrida.setInfoCorrida(esquemaCorrida.getInfoCorrida());
Integer cantparados = esquemaCorrida.getCantparados();
if (cantparados != null) {
@ -748,7 +748,7 @@ public class CorridaServiceImpl implements CorridaService {
tiempoOrigen += estadoOrigen.getTiempoHorVerano();
}
}
//21688
// 21688
Estado estadoDestino = esquemaTramo.getTramo().getDestino().getCiudad().getEstado();
int tiempoDestino = 0;
@ -797,9 +797,9 @@ public class CorridaServiceImpl implements CorridaService {
cantCorridaGenerada = 0;
cantCorridaCommit = 1;
java.sql.Date data = new java.sql.Date(dataGeracao.getTime());
try {
for (EsquemaCorrida esquemaCorrida : lsEsquemaCorrida) {
Boolean isFeriado = this.isFeriado(data, esquemaCorrida);
@ -1353,4 +1353,9 @@ public class CorridaServiceImpl implements CorridaService {
}
@Override
public Corrida buscaCorrridaFutura(Ruta ruta, Date fecInicio) {
return corridaDAO.buscaCorrridaFutura(ruta, fecInicio);
}
}

View File

@ -54,10 +54,10 @@ public class EsquemaCorridaServiceImpl implements EsquemaCorridaService {
}
@Override
public List<EsquemaCorrida> buscarPorEmpresaCorrida(Empresa empresa){
public List<EsquemaCorrida> buscarPorEmpresaCorrida(Empresa empresa) {
return esquemaCorridaDAO.buscarPorEmpresaCorrida(empresa);
}
@Transactional
public EsquemaCorrida suscribir(EsquemaCorrida entidad) {
entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
@ -189,4 +189,9 @@ public class EsquemaCorridaServiceImpl implements EsquemaCorridaService {
public EsquemaCorrida obtenerByEsquemaCorrida(Integer id) {
return esquemaCorridaDAO.obtenerByEsquemaCorrida(id);
}
@Override
public EsquemaCorrida buscaEsquemaPorRuta(Ruta ruta) {
return esquemaCorridaDAO.buscaEsquemaPorRuta(ruta);
}
}