git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@24158 d1611594-4594-4d17-8e1d-87c2c4800839
parent
5192a9aa9d
commit
61c2cf55c7
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue