rodrigo 2013-02-08 14:21:08 +00:00
parent 5192a9aa9d
commit 61c2cf55c7
7 changed files with 987 additions and 875 deletions

View File

@ -28,10 +28,7 @@ public interface EsquemaCorridaDAO extends GenericDAO<EsquemaCorrida, Integer> {
public List<EsquemaCorrida> buscar(EsquemaCorrida ec);
public boolean buscarNumCorrida (Integer numCorrida, Integer numCorridaPisoExtra);
public boolean buscarNumCorrida(Integer numCorrida, Integer numCorridaPisoExtra);
/**
* Indica se el esquema corrida es hijo de un esquemCorrida.
@ -42,7 +39,9 @@ public interface EsquemaCorridaDAO extends GenericDAO<EsquemaCorrida, Integer> {
public boolean esHijoRebote(EsquemaCorrida esquemaCorrida);
/**
* Busca los esquema corrida que tiene esquema operacional en la fecha indicada
* Busca los esquema corrida que tiene esquema operacional en la fecha
* indicada
*
* @param dataGeracao
* @return
*/
@ -51,13 +50,16 @@ public interface EsquemaCorridaDAO extends GenericDAO<EsquemaCorrida, Integer> {
public boolean buscarEsquemaCorridaExisteTramo(Tramo tramo);
/**
* Indica cuál son los Id's de EsquemaCorrida que tienen la paradaId en su secuencia
* Indica cuál son los Id's de EsquemaCorrida que tienen la paradaId en su
* secuencia
*
* @param ruta
* @param paradaId
* @return - El Id de EsquemaCorrida
*/
public List<Integer> existe(Ruta ruta , Integer paradaId);
public List<Integer> existe(Ruta ruta, Integer paradaId);
public List<EsquemaCorrida> buscaDentroVigenciaQtdeDiasNull(Date dataGeracao);
public List<EsquemaCorrida> buscaDentroVigenciaQtdeDiasNotNull(Date dataDe);
}

View File

@ -160,9 +160,6 @@ public class EsquemaCorridaHibernateDAO extends GenericHibernateDAO<EsquemaCorri
return c.list();
}
public boolean esHijoRebote(EsquemaCorrida esquemaCorrida) {
Criteria c = makeCriteria();
c.setProjection(Projections.rowCount());
@ -187,6 +184,20 @@ public class EsquemaCorridaHibernateDAO extends GenericHibernateDAO<EsquemaCorri
return c.list();
}
@Override
public List<EsquemaCorrida> buscaDentroVigenciaQtdeDiasNull(Date dataGeracao) {
Criteria c = makeCriteria();
c.add(Restrictions.eq("activo", Boolean.TRUE));
c.add(Restrictions.isNull("cantDiasGeracion"));
Criteria cEsquemaOperacional = c.createCriteria("esquemaOperacional");
cEsquemaOperacional.add(Restrictions.le("fecniciovigencia", dataGeracao));
cEsquemaOperacional.add(Restrictions.ge("fecfinvigencia", dataGeracao));
cEsquemaOperacional.add(Restrictions.eq("activo", Boolean.TRUE));
return c.list();
}
public boolean buscarEsquemaCorridaExisteTramo(Tramo tramo) {
Criteria c = makeCriteria();
c.add(Restrictions.eq("activo", Boolean.TRUE));
@ -223,22 +234,17 @@ public class EsquemaCorridaHibernateDAO extends GenericHibernateDAO<EsquemaCorri
return c.list();
}
@Override
public boolean buscarNumCorrida(Integer numCorrida, Integer numCorridaPisoExtra) {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
Disjunction or = Restrictions.disjunction();
or.add(Restrictions.or(Restrictions.eq("numCorridaPisoExtra", numCorridaPisoExtra), Restrictions.eq("numCorrida", numCorrida)));
or.add(Restrictions.eq("numCorrida", numCorridaPisoExtra));
c.add(or);
if (c.list().isEmpty()) {
return false;
} else {
@ -246,6 +252,17 @@ public class EsquemaCorridaHibernateDAO extends GenericHibernateDAO<EsquemaCorri
}
}
@Override
public List<EsquemaCorrida> buscaDentroVigenciaQtdeDiasNotNull(Date dataGeracao) {
Criteria c = makeCriteria();
c.add(Restrictions.eq("activo", Boolean.TRUE));
c.add(Restrictions.isNotNull("cantDiasGeracion"));
Criteria cEsquemaOperacional = c.createCriteria("esquemaOperacional");
cEsquemaOperacional.add(Restrictions.le("fecniciovigencia", dataGeracao));
cEsquemaOperacional.add(Restrictions.ge("fecfinvigencia", dataGeracao));
cEsquemaOperacional.add(Restrictions.eq("activo", Boolean.TRUE));
return c.list();
}
}

View File

@ -118,6 +118,8 @@ public class EsquemaCorrida implements Serializable {
private Integer numCorridaPisoExtra;
@Column(name = "INDGENERAFERIADO")
private String indGeneraFeriado;
@Column(name = "CANTDIASGENERACION")
private Integer cantDiasGeracion;
public enum GerarFeriado {
// Declaração dos enum
@ -434,6 +436,14 @@ public class EsquemaCorrida implements Serializable {
this.indGeneraFeriado = indGeneraFeriado;
}
public Integer getCantDiasGeracion() {
return cantDiasGeracion;
}
public void setCantDiasGeracion(Integer cantDiasGeracion) {
this.cantDiasGeracion = cantDiasGeracion;
}
@Override
public int hashCode() {
int hash = 0;

View File

@ -40,14 +40,28 @@ public interface CorridaService extends GenericService<Corrida, Corrida.Id> {
public List<Corrida> buscarFiltro(Parada ori, Parada des, Date hora, ClaseServicio cs);
/**
* Regresa la fecha final para el período de generación automatica de corridas.
* Regresa la fecha final para el período de generación automatica de
* corridas.
*
*
* @return
*/
public Date calcularDataFinalGeneracionCorrida();
public boolean generarCorridaAutomatica(Date dataDe, Date dataAte);
public boolean generarCorridaAutomaticaConstanteDias(Date dataDe, Date dataAte);
public List<Corrida> buscarDistinct(Parada ori, Parada des, Date horaSalidaInicio, Date horaSalidaFin, ClaseServicio cs, Integer corridaId);
/**
* Gera corrida a partir dos servicos selecionados na tela de
* "Selecionar Servicos a Gerar". Menu->Esquema Operacional->Selecionar
* Servicos a Gerar
*
* @param lsEsquemaCorrida
* @param dataDe
* @param dataAte
*/
public void generarCorridasSelecionadas(List<EsquemaCorrida> lsEsquemaCorrida, Date dataDe, Date dataAte);
public boolean generarCorridaAutomaticaQtdeDias(Date dataDe);
}

View File

@ -32,8 +32,7 @@ public interface EsquemaCorridaService extends GenericService<EsquemaCorrida, In
public boolean buscarNumCorrida(Integer numCorrida, Integer numCorridaPisoExtra);
public void actualizaEsquemaTramo(List<ParadaEsquema> listParadaEsquema,EsquemaCorrida ec);
public void actualizaEsquemaTramo(List<ParadaEsquema> listParadaEsquema, EsquemaCorrida ec);
public List<EsquemaCorrida> buscaDentroVigencia(Date dataGeracao);
@ -41,9 +40,14 @@ public interface EsquemaCorridaService extends GenericService<EsquemaCorrida, In
/**
* See {@link EsquemaCorridaDAO#existe(Ruta, Integer)}
*
* @param ruta
* @param paradaId
* @return
*/
public List<Integer> existe(Ruta ruta, Integer paradaId) ;
public List<Integer> existe(Ruta ruta, Integer paradaId);
public List<EsquemaCorrida> buscaDentroVigenciaQtdeDiasNull(Date dataGeracao);
public List<EsquemaCorrida> buscaDentroVigenciaQtdeDiasNotNull(Date dataDe);
}

View File

@ -108,6 +108,19 @@ public class CorridaServiceImpl implements CorridaService {
return corridaDAO.obtenerID(id);
}
public List<Corrida> buscarPorFecCorrida(Date value) {
return corridaDAO.buscarPorFecCorrida(value);
}
public List<Corrida> buscarPorId(Integer idCorrida) {
return corridaDAO.buscarPorId(idCorrida);
}
@Override
public List<Corrida> buscarDistinct(Parada ori, Parada des, Date horaSalidaInicio, Date horaSalidaFin, ClaseServicio cs, Integer corridaId) {
return corridaDAO.buscarDistinct(ori, des, (horaSalidaInicio == null) ? null : DateUtil.getFecInicio(horaSalidaInicio).getTime(), (horaSalidaFin == null) ? null : DateUtil.getFecInicio(horaSalidaFin).getTime(), cs, corridaId);
}
@Transactional
public Corrida suscribir(Corrida entidad) {
entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
@ -147,8 +160,7 @@ public class CorridaServiceImpl implements CorridaService {
return corridaDAO.buscarFiltro(ori, des, hora, cs);
}
private Boolean geraDiaSemana (Integer diaSemana,EsquemaCorrida esquemaCorrida){
private Boolean geraDiaSemana(Integer diaSemana, EsquemaCorrida esquemaCorrida) {
Boolean retorno = Boolean.FALSE;
switch (diaSemana) {
case 1: {
@ -216,26 +228,26 @@ public class CorridaServiceImpl implements CorridaService {
break;
}
}
return retorno;
}
private boolean temCorridaDiaSemana(Integer diaSemana, EsquemaCorrida esquemaCorrida, Boolean isFeriado) {
Boolean retorno = Boolean.FALSE;
if(esquemaCorrida.getIndGeneraFeriado() != null){
if (esquemaCorrida.getIndGeneraFeriado().equals("S")){
retorno = geraDiaSemana(diaSemana,esquemaCorrida);
}else if (isFeriado){
if (esquemaCorrida.getIndGeneraFeriado().equals("F")){
retorno = geraDiaSemana(diaSemana,esquemaCorrida);
if (esquemaCorrida.getIndGeneraFeriado() != null) {
if (esquemaCorrida.getIndGeneraFeriado().equals("S")) {
retorno = geraDiaSemana(diaSemana, esquemaCorrida);
} else if (isFeriado) {
if (esquemaCorrida.getIndGeneraFeriado().equals("F")) {
retorno = geraDiaSemana(diaSemana, esquemaCorrida);
}
}else if (esquemaCorrida.getIndGeneraFeriado().equals("N")){
retorno = geraDiaSemana(diaSemana,esquemaCorrida);
} else if (esquemaCorrida.getIndGeneraFeriado().equals("N")) {
retorno = geraDiaSemana(diaSemana, esquemaCorrida);
}
}
return retorno;
}
private Date calcularFechorllegada(EsquemaTramo esquemaTramo, ClaseServicio clase, Date dataGeracao, Date horaChegada) {
@ -260,6 +272,7 @@ public class CorridaServiceImpl implements CorridaService {
private Date calcularFechorsalida(EsquemaTramo esquemaTramo, Date dataGeracao, Date horaChegadaAnterior, java.util.Date tiempoEstanciaAnterior) {
Date horaSaida;
if (horaChegadaAnterior == null) {
horaSaida = truncarDataHora(dataGeracao, esquemaTramo.getEsquemaCorrida().getHorasalida());
} else {
@ -276,7 +289,6 @@ public class CorridaServiceImpl implements CorridaService {
}
horaSaida = gHoraSaidaProximo.getTime();
}
GregorianCalendar gHoraSaida = new GregorianCalendar();
@ -288,7 +300,7 @@ public class CorridaServiceImpl implements CorridaService {
/**
* Adiciciona as horas do parametro hora na data dataGeracao.
*
* Al<EFBFBD>m disso <EFBFBD> zerado os campos segundos e milisegundos.
* Alem disso eh zerado os campos segundos e milisegundos.
*
* @param dataGeracao
* @param hora
@ -311,12 +323,11 @@ public class CorridaServiceImpl implements CorridaService {
return dataCorreta;
}
public boolean isFeriado (java.sql.Date data){
public boolean isFeriado(java.sql.Date data) {
List<Feriado> feriadoList = feriadoService.buscar(data);
if (feriadoList.isEmpty()){
if (feriadoList.isEmpty()) {
return false;
}else{
} else {
return true;
}
}
@ -332,14 +343,14 @@ public class CorridaServiceImpl implements CorridaService {
* @param dataGeracao
* @return - La corrida generada o null si no fue generada.
*/
public Corrida generarCorrida(EsquemaCorrida esquemaCorrida, Date dataGeracao, boolean isPisoExtra, Boolean isFeriado) {
private Corrida generarCorrida(EsquemaCorrida esquemaCorrida, Date dataGeracao, boolean isPisoExtra, Boolean isFeriado) {
GregorianCalendar calendario = new GregorianCalendar();
calendario.setTime(dataGeracao);
Integer diaSemana = calendario.get(Calendar.DAY_OF_WEEK);
Corrida corrida = null;
if ((esquemaCorrida.getStatusCorrida() != null) && (esquemaCorrida.getStatusCorrida().equals("A"))) {
if (temCorridaDiaSemana(diaSemana, esquemaCorrida,isFeriado)) {
if (temCorridaDiaSemana(diaSemana, esquemaCorrida, isFeriado)) {
try {
Ruta ruta = esquemaCorrida.getRuta();
ClaseServicio claseServicio = esquemaCorrida.getClaseServicio();
@ -388,7 +399,6 @@ public class CorridaServiceImpl implements CorridaService {
Boolean existeCorrida = corridaDAO.existe(id);
if (!existeCorrida) {
corrida = new Corrida();
corrida.setId(id);
corrida.setEsquemaCorrida(esquemaCorrida);
@ -520,9 +530,9 @@ public class CorridaServiceImpl implements CorridaService {
asientoExclusivo.setNumasiento(ea.getNumasiento());
asientoExclusivo.setVendible(ea.getIndvendible());
asientoExclusivo.setParada(ea.getParada());
if(ea.getIndvendible()){
if (ea.getIndvendible()) {
asientoExclusivo.setMotivobloqueo(null);
}else{
} else {
asientoExclusivo.setMotivobloqueo(ea.getMotivobloqueo());
asientoExclusivo.setDestino(ea.getDestinoId());
}
@ -535,7 +545,6 @@ public class CorridaServiceImpl implements CorridaService {
asientoExclusivo = asientoExclusivoService.suscribir(asientoExclusivo);
}
}// if (!existeCorrida)
} catch (org.springframework.dao.DataIntegrityViolationException ex) {
log.error(ex);
@ -547,7 +556,6 @@ public class CorridaServiceImpl implements CorridaService {
}
public void generarCorrida(Date dataGeracao, List<EsquemaCorrida> lsEsquemaCorrida) {
DefaultTransactionDefinition def = new DefaultTransactionDefinition(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW);
TransactionStatus status = transactionManager.getTransaction(def);
@ -560,11 +568,10 @@ public class CorridaServiceImpl implements CorridaService {
log.info("esquema=" + esquemaCorrida.getEsquemacorridaId() + " numCorrida=" + esquemaCorrida.getNumCorrida());
if (!esquemaCorridaDAO.esHijoRebote(esquemaCorrida)) {
Corrida corrida = generarCorrida(esquemaCorrida, dataGeracao, false, isFeriado);
Corrida corridaPisoExtra = null;
if (corrida == null) {// Si no gener<EFBFBD> la corrida, no va a
if (corrida == null) {// Si no genera la corrida, no va a
// generar el rebote
log.info("No fue generado corrida. Esquema " + esquemaCorrida.getEsquemacorridaId() + " Data" + dataGeracao);
continue;
@ -572,7 +579,7 @@ public class CorridaServiceImpl implements CorridaService {
// PISO EXTRA
if (esquemaCorrida.getPisoExtra() != null && esquemaCorrida.getPisoExtra()) {
// Invertendo RolOperativo e Classe de Servi<76>o para o Piso
// Invertendo RolOperativo e Classe de Servico para o Piso
// Extra
RolOperativo ro = esquemaCorrida.getRolOperativo();
ClaseServicio cs = esquemaCorrida.getClaseServicio();
@ -582,7 +589,7 @@ public class CorridaServiceImpl implements CorridaService {
corridaPisoExtra = generarCorrida(esquemaCorrida, dataGeracao, true, isFeriado);
if (corrida != null && corridaPisoExtra != null) {
// Voltando RolOperativo e Classe de Servi<76>o
// Voltando RolOperativo e Classe de Servico
esquemaCorrida.setRolOperativo(ro);
esquemaCorrida.setClaseServicio(cs);
@ -599,7 +606,6 @@ public class CorridaServiceImpl implements CorridaService {
}
if (esquemaCorrida.getEsquemaCorridaRebote() != null) {
log.info("Corrida Rebote=" + esquemaCorrida.getEsquemacorridaId());
Corrida corridaRebote = generarCorrida(esquemaCorrida.getEsquemaCorridaRebote(), dataGeracao, false, isFeriado);
@ -610,7 +616,8 @@ public class CorridaServiceImpl implements CorridaService {
if (corridaRebote != null) {
EsquemaCorrida ecRebote = esquemaCorrida.getEsquemaCorridaRebote();
if (ecRebote.getPisoExtra() != null && ecRebote.getPisoExtra()) {
// Invertendo RolOperativo e Classe de Servi<76>o para
// Invertendo RolOperativo e Classe de Servico
// para
// o Piso Extra
RolOperativo ro = ecRebote.getRolOperativo();
ClaseServicio cs = ecRebote.getClaseServicio();
@ -625,7 +632,7 @@ public class CorridaServiceImpl implements CorridaService {
corridaPisoExtraRebote.setNumPiso(2);
corridaPisoExtraRebote = corridaDAO.actualizacion(corridaPisoExtraRebote);
// Voltando RolOperativo e Classe de Serviço
// Voltando RolOperativo e Classe de Servico
ecRebote.setRolOperativo(ro);
ecRebote.setClaseServicio(cs);
@ -641,17 +648,17 @@ public class CorridaServiceImpl implements CorridaService {
// con una
// fechamenor tienes
// que generar para
// el d<>a seguinte
// el dia seguinte
}
} else {
generaReboteDiaSeguinte = true;// si no fue encontrado
// para el d<>a de
// para el dia de
// hoy,genera para
// ma<6D>ana
// manhana
}
if (generaReboteDiaSeguinte) {
log.info("Haciendo la b<>squeda por el esquema rebote para el dia seguiente pues ya existe al dia de hoy");
log.info("Haciendo la busqueda por el esquema rebote para el dia seguiente pues ya existe al dia de hoy");
corridaRebote = generarReboteDiaSeguinte(esquemaCorrida, dataGeracao);
@ -675,6 +682,7 @@ public class CorridaServiceImpl implements CorridaService {
}
}
}
if (cantCorridaGenerada >= cantCorridaCommit) {
cantCorridaGenerada = 0;
transactionManager.commit(status);
@ -685,7 +693,6 @@ public class CorridaServiceImpl implements CorridaService {
if (!status.isCompleted()) {
transactionManager.commit(status);
}
}
/**
@ -704,7 +711,6 @@ public class CorridaServiceImpl implements CorridaService {
List<TramoTiempo> lsExcepciones = tramoTiempoDAO.buscar(tramo, claseServicio, corridaTramo.getFechorsalida(), corridaTramo.getFechorllegada());
if (!lsExcepciones.isEmpty()) {
TramoTiempo tramoTiempo = lsExcepciones.get(0);
List<Integer> diasSemana = getDiaDeLaSemana(tramoTiempo);
@ -725,6 +731,7 @@ public class CorridaServiceImpl implements CorridaService {
nuevaFecLlegada = fechorsalida.getTime();
}
}
return nuevaFecLlegada;
}
@ -733,7 +740,8 @@ public class CorridaServiceImpl implements CorridaService {
tmp.setTime(dataGeracao);
tmp.add(Calendar.DAY_OF_MONTH, 1);
java.sql.Date data = new java.sql.Date(dataGeracao.getTime());
Boolean isFeriado = this.isFeriado(data) ;
Boolean isFeriado = this.isFeriado(data);
return generarCorrida(esquemaCorrida.getEsquemaCorridaRebote(), tmp.getTime(), false, isFeriado);
}
@ -765,14 +773,6 @@ public class CorridaServiceImpl implements CorridaService {
return diasValidos;
}
public List<Corrida> buscarPorFecCorrida(Date value) {
return corridaDAO.buscarPorFecCorrida(value);
}
public List<Corrida> buscarPorId(Integer idCorrida) {
return corridaDAO.buscarPorId(idCorrida);
}
@Override
public Date calcularDataFinalGeneracionCorrida() {
Date dataDe = new Date();
@ -788,21 +788,53 @@ public class CorridaServiceImpl implements CorridaService {
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
public boolean generarCorridaAutomatica() {
Date dataDe = Calendar.getInstance().getTime();
// Date dataDe = new GregorianCalendar(2012, 4, 25).getTime();
Date dataDe = new java.util.Date();
Date dataAte = calcularDataFinalGeneracionCorrida();
// Date dataAte = new GregorianCalendar(2012, 4, 25).getTime();
Date dataAteConstante = calcularDataFinalGeneracionCorrida();
Boolean hayErroConstante = generarCorridaAutomaticaConstanteDias(dataDe, dataAteConstante);
return generarCorridaAutomatica(dataDe, dataAte);
Boolean hayErroQtdeDias = generarCorridaAutomaticaQtdeDias(dataDe);
return hayErroConstante && hayErroQtdeDias;
}
public boolean generarCorridaAutomatica(Date dataDe, Date dataAte) {
public boolean generarCorridaAutomaticaQtdeDias(Date dataDe) {
DefaultTransactionDefinition def = new DefaultTransactionDefinition(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW);
TransactionStatus status = transactionManager.getTransaction(def);
List<EsquemaCorrida> lsEsquemaCorrida = esquemaCorridaService.buscaDentroVigenciaQtdeDiasNotNull(dataDe);
for (EsquemaCorrida esquemaCorrida : lsEsquemaCorrida) {
Integer qtdeDiasGerar = esquemaCorrida.getCantDiasGeracion();
Calendar calendarData = Calendar.getInstance();
calendarData.setTime(dataDe);
calendarData.add(Calendar.DATE, qtdeDiasGerar);
Date dataAte = calendarData.getTime();
while (dataDe.before(dataAte)) {
java.sql.Date data = new java.sql.Date(dataDe.getTime());
Boolean isFeriado = this.isFeriado(data);
generarCorrida(esquemaCorrida, dataDe, false, isFeriado);
calendarData.setTime(dataDe);
calendarData.add(Calendar.DATE, 1);
dataDe = calendarData.getTime();
}
}
if (!status.isCompleted()) {
transactionManager.commit(status);
}
return Boolean.TRUE;
}
public boolean generarCorridaAutomaticaConstanteDias(Date dataDe, Date dataAte) {
boolean hayError = false;
SimpleDateFormat sdfData = new SimpleDateFormat("dd/MM/yyyy");
log.debug("** AUTO - Data De: " + sdfData.format(dataDe) + " **Data At<41>: " + sdfData.format(dataAte));
log.debug("** AUTO - Data De: " + sdfData.format(dataDe) + " **Data Ateh: " + sdfData.format(dataAte));
Calendar calendarData = Calendar.getInstance();
calendarData.setTime(dataAte);
@ -810,10 +842,9 @@ public class CorridaServiceImpl implements CorridaService {
dataAte = calendarData.getTime();
try {
while (dataDe.before(dataAte)) {
log.debug("*** Data: " + sdfData.format(dataDe));
List<EsquemaCorrida> lsEsquemaCorrida = esquemaCorridaService.buscaDentroVigencia(dataDe);
List<EsquemaCorrida> lsEsquemaCorrida = esquemaCorridaService.buscaDentroVigenciaQtdeDiasNull(dataDe);
Boolean dentroVigenciaEsquemaOperacional = !lsEsquemaCorrida.isEmpty();
if (dentroVigenciaEsquemaOperacional) {
@ -826,17 +857,46 @@ public class CorridaServiceImpl implements CorridaService {
calendarData.add(Calendar.DATE, 1);
dataDe = calendarData.getTime();
}
} catch (Exception ex) {
log.error("Erro ao gerar corridas: " + ex, ex);
hayError = true;
}
return hayError;
}
@Override
public List<Corrida> buscarDistinct(Parada ori, Parada des, Date horaSalidaInicio, Date horaSalidaFin, ClaseServicio cs, Integer corridaId) {
return corridaDAO.buscarDistinct(ori, des, (horaSalidaInicio == null) ? null : DateUtil.getFecInicio(horaSalidaInicio).getTime(), (horaSalidaFin == null) ? null : DateUtil.getFecInicio(horaSalidaFin).getTime(), cs, corridaId);
/**
* Gera corrida a partir dos servicos selecionados na tela de
* "Selecionar Servicos a Gerar". Menu->Esquema Operacional->Selecionar
* Servicos a Gerar
*
* @param lsEsquemaCorrida
* @param dataDe
* @param dataAte
*/
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
public void generarCorridasSelecionadas(List<EsquemaCorrida> lsEsquemaCorrida, Date dataDe, Date dataAte) {
SimpleDateFormat sdfData = new SimpleDateFormat("dd/MM/yyyy");
log.debug("** SELECIONADOS - Data De: " + sdfData.format(dataDe) + " **Data Ateh: " + sdfData.format(dataAte));
Calendar calendarData = Calendar.getInstance();
calendarData.setTime(dataAte);
calendarData.add(Calendar.DATE, 1);
dataAte = calendarData.getTime();
while (dataDe.before(dataAte)) {
log.debug("*** Data: " + sdfData.format(dataDe));
Boolean dentroVigenciaEsquemaOperacional = !lsEsquemaCorrida.isEmpty();
if (dentroVigenciaEsquemaOperacional) {
this.generarCorrida(dataDe, lsEsquemaCorrida);
} else {
log.info("No hay esquema vigente para la fecha " + sdfData.format(dataDe));
}
calendarData.setTime(dataDe);
calendarData.add(Calendar.DATE, 1);
dataDe = calendarData.getTime();
}
}
}

View File

@ -102,12 +102,10 @@ public class EsquemaCorridaServiceImpl implements EsquemaCorridaService {
return esquemaCorridaDAO.buscar(ec);
}
public boolean buscarNumCorrida (Integer numCorrida, Integer numCorridaPisoExtra) {
public boolean buscarNumCorrida(Integer numCorrida, Integer numCorridaPisoExtra) {
return esquemaCorridaDAO.buscarNumCorrida(numCorrida, numCorridaPisoExtra);
}
@Transactional
public void actualizaEsquemaTramo(List<ParadaEsquema> listParadaEsquema, EsquemaCorrida ec) {
@ -151,12 +149,19 @@ public class EsquemaCorridaServiceImpl implements EsquemaCorridaService {
return esquemaCorridaDAO.buscaDentroVigencia(dataGeracao);
}
public List<EsquemaCorrida> buscaDentroVigenciaQtdeDiasNull(Date dataGeracao) {
return esquemaCorridaDAO.buscaDentroVigenciaQtdeDiasNull(dataGeracao);
}
@Override
public List<EsquemaCorrida> buscaDentroVigenciaQtdeDiasNotNull(Date dataDe) {
return esquemaCorridaDAO.buscaDentroVigenciaQtdeDiasNotNull(dataDe);
}
public boolean buscarEsquemaCorridaExisteTramo(Tramo tramo) {
return esquemaCorridaDAO.buscarEsquemaCorridaExisteTramo(tramo);
}
@Override
public List<Integer> existe(Ruta ruta, Integer paradaId) {
return esquemaCorridaDAO.existe(ruta, paradaId);