|
|
|
@ -455,7 +455,7 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
* @return - La corrida generada o null si no fue generada.
|
|
|
|
|
*/
|
|
|
|
|
@SuppressWarnings("deprecation")
|
|
|
|
|
private Corrida generarCorrida(EsquemaCorrida esquemaCorrida, Date dataGeracao, boolean isPisoExtra, Boolean isFeriado, List<CorridaTramo> corridaTramoList) {
|
|
|
|
|
private Corrida generarCorrida(EsquemaCorrida esquemaCorrida, Date dataGeracao, boolean isPisoExtra, Boolean isFeriado, List<CorridaTramo> corridaTramoList, boolean isValidaActivo) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Corrida corrida = null;
|
|
|
|
@ -475,7 +475,7 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
id.setFeccorrida(DateUtil.normalizarToFecha(dataGeracao));
|
|
|
|
|
List<EsquemaTramo> lsEsquemaTramo = esquemaTramoService.obtenerPorEsquemaCorridaOrderNumSec(esquemaCorrida);
|
|
|
|
|
|
|
|
|
|
if(!realizaValidacoesGerais(esquemaCorrida, dataGeracao, diaSemana, isFeriado, ruta, id, numCorrida, horario, claseServicio, marca, isPisoExtra, lsEsquemaTramo)) {
|
|
|
|
|
if(!realizaValidacoesGerais(esquemaCorrida, dataGeracao, diaSemana, isFeriado, ruta, id, numCorrida, horario, claseServicio, marca, isPisoExtra, lsEsquemaTramo, isValidaActivo)) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -489,7 +489,7 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
CorridaCtrl corridaCtrl = criaCorridaCtrl(isPisoExtra, ruta, claseServicio, marca, horario, numCorrida);
|
|
|
|
|
|
|
|
|
|
corrida = criaCorrida(esquemaCorrida, dataGeracao, id, lsEsquemaTramo, origemCorrida, destinoCorrida,
|
|
|
|
|
corridaCtrl, corridaTramoList);
|
|
|
|
|
corridaCtrl, corridaTramoList, isValidaActivo);
|
|
|
|
|
|
|
|
|
|
cantCorridaGenerada++;
|
|
|
|
|
|
|
|
|
@ -503,7 +503,7 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private Corrida criaCorrida(EsquemaCorrida esquemaCorrida, Date dataGeracao, Corrida.Id id,
|
|
|
|
|
List<EsquemaTramo> lsEsquemaTramo, Parada origemCorrida, Parada destinoCorrida, CorridaCtrl corridaCtrl, List<CorridaTramo> corridaTramoList) {
|
|
|
|
|
List<EsquemaTramo> lsEsquemaTramo, Parada origemCorrida, Parada destinoCorrida, CorridaCtrl corridaCtrl, List<CorridaTramo> corridaTramoList, boolean isCorridaInativa) {
|
|
|
|
|
Corrida corrida;
|
|
|
|
|
corrida = new Corrida();
|
|
|
|
|
corrida.setId(id);
|
|
|
|
@ -571,7 +571,12 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
}
|
|
|
|
|
corrida.setIndTipoVenta(null);
|
|
|
|
|
corrida.setCodProdutoFiscal(UtiliteriasFiscal.defineCodigoProduto(corrida.getOrigem().getParadaId(), corrida.getDestino().getParadaId(), corrida.getRuta().getRutaId()));
|
|
|
|
|
if(!isCorridaInativa) {
|
|
|
|
|
corrida = corridaDAO.suscribir(corrida);
|
|
|
|
|
}else {
|
|
|
|
|
corrida = corridaDAO.actualizacion(corrida);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return corrida;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -630,7 +635,7 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private Boolean realizaValidacoesGerais(EsquemaCorrida esquemaCorrida, Date dataGeracao, Integer diaSemana, Boolean isFeriado,
|
|
|
|
|
Ruta ruta, Corrida.Id id, Integer numCorrida, Date horario, ClaseServicio claseServicio, Marca marca, Boolean isPisoExtra, List<EsquemaTramo> lsEsquemaTramo){
|
|
|
|
|
Ruta ruta, Corrida.Id id, Integer numCorrida, Date horario, ClaseServicio claseServicio, Marca marca, Boolean isPisoExtra, List<EsquemaTramo> lsEsquemaTramo, boolean isGeraCorridaInativa){
|
|
|
|
|
Integer corridaId = esquemaCorrida.getNumCorrida();
|
|
|
|
|
String fecCorrida = DateUtil.getStringDate(horario);
|
|
|
|
|
if (!vigenciaValida(esquemaCorrida, dataGeracao)) {
|
|
|
|
@ -659,10 +664,17 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
return Boolean.FALSE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(!isGeraCorridaInativa) {
|
|
|
|
|
if (corridaDAO.existe(id)) {
|
|
|
|
|
log.error("CorridaId:" + corridaId + " FecCorrida:" + fecCorrida + ". corrida existe = " + numCorrida + ";" + ruta.getDescruta() + ";" + DateUtil.getStringDate(dataGeracao) + ";" + DateUtil.getStringDate(horario, "HH:mm") + ";" + claseServicio.getDescclase() + ";" + marca.getDescmarca() + " Piso: " + isPisoExtra);
|
|
|
|
|
return Boolean.FALSE;
|
|
|
|
|
}
|
|
|
|
|
}else {
|
|
|
|
|
if (corridaDAO.existeActivo(id)) {
|
|
|
|
|
log.error("CorridaId:" + corridaId + " FecCorrida:" + fecCorrida + ". corrida existe = " + numCorrida + ";" + ruta.getDescruta() + ";" + DateUtil.getStringDate(dataGeracao) + ";" + DateUtil.getStringDate(horario, "HH:mm") + ";" + claseServicio.getDescclase() + ";" + marca.getDescmarca() + " Piso: " + isPisoExtra);
|
|
|
|
|
return Boolean.FALSE;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (lsEsquemaTramo == null || lsEsquemaTramo.isEmpty()) {
|
|
|
|
|
log.error("CorridaId:" + corridaId + " FecCorrida:" + fecCorrida + ". Não contem trechos (EsquemaTramo nulo ou vazio)");
|
|
|
|
@ -836,7 +848,7 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
return b - a;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Boolean generarCorrida(Date dataGeracao, List<EsquemaCorrida> lsEsquemaCorrida, boolean isGeracaoAutomaticaCorrida, List<CorridaTramo> corridaTramoList) {
|
|
|
|
|
public Boolean generarCorrida(Date dataGeracao, List<EsquemaCorrida> lsEsquemaCorrida, boolean isGeracaoAutomaticaCorrida, List<CorridaTramo> corridaTramoList, boolean isValidaActivo) {
|
|
|
|
|
|
|
|
|
|
DefaultTransactionDefinition def = new DefaultTransactionDefinition(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
|
|
|
|
|
|
|
|
@ -931,7 +943,7 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Boolean isFeriado = this.isFeriado(data, esquemaCorrida);
|
|
|
|
|
corrida = generarCorrida(esquemaCorrida, dataGeracao, false, isFeriado, corridaTramoList);
|
|
|
|
|
corrida = generarCorrida(esquemaCorrida, dataGeracao, false, isFeriado, corridaTramoList, isValidaActivo);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
corridaPisoExtra = null;
|
|
|
|
@ -966,7 +978,7 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
corridaPisoExtra = generarCorrida(esquemaCorridaSegundoPiso, dataGeracao, true, isFeriado, null);
|
|
|
|
|
corridaPisoExtra = generarCorrida(esquemaCorridaSegundoPiso, dataGeracao, true, isFeriado, null, false);
|
|
|
|
|
Boolean atualizarPisoExtra = false;
|
|
|
|
|
|
|
|
|
|
// caso corrida segundo piso for gerada antes, atualizar
|
|
|
|
@ -978,6 +990,8 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
if(corridaPisoExtra !=null) {
|
|
|
|
|
if(unUsuarioId!=null && unPuntoVenta!=null && estacionId!=null) {
|
|
|
|
|
validaCriaReservaCliente(corridaPisoExtra, unUsuarioId, unPuntoVenta, estacionId);
|
|
|
|
|
}else {
|
|
|
|
|
log.error("Usuario ou ponto de venda ou estação não definidos para reserva especial nas contantes");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -996,7 +1010,7 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
corridaPisoExtra2 = generarCorrida(esquemaCorridaTerceiroPiso, dataGeracao, true, isFeriado, null);
|
|
|
|
|
corridaPisoExtra2 = generarCorrida(esquemaCorridaTerceiroPiso, dataGeracao, true, isFeriado, null, false);
|
|
|
|
|
atualizarPisoExtra = false;
|
|
|
|
|
|
|
|
|
|
// caso corrida segundo piso for gerada antes, atualizar
|
|
|
|
@ -1009,6 +1023,8 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
if(corridaPisoExtra !=null) {
|
|
|
|
|
if(unUsuarioId!=null && unPuntoVenta!=null && estacionId!=null) {
|
|
|
|
|
validaCriaReservaCliente(corridaPisoExtra, unUsuarioId, unPuntoVenta, estacionId);
|
|
|
|
|
}else {
|
|
|
|
|
log.error("Usuario ou ponto de venda ou estação não definidos para reserva nas contantes");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -1043,6 +1059,8 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
if(corrida !=null) {
|
|
|
|
|
if(unUsuarioId!=null && unPuntoVenta!=null && estacionId!=null) {
|
|
|
|
|
validaCriaReservaCliente(corrida, unUsuarioId, unPuntoVenta, estacionId);
|
|
|
|
|
}else {
|
|
|
|
|
log.error("Usuario ou ponto de venda ou estação não definidos para reserva especial nas contantes");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1061,7 +1079,7 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
Corrida corridaPisoExtra2, EsquemaCorrida esquemaCorrida, Boolean isFeriado) {
|
|
|
|
|
log.info("Corrida Rebote=" + esquemaCorrida.getEsquemacorridaId());
|
|
|
|
|
|
|
|
|
|
Corrida corridaRebote = generarCorrida(esquemaCorrida.getEsquemaCorridaRebote(), dataGeracao, false, isFeriado, null);
|
|
|
|
|
Corrida corridaRebote = generarCorrida(esquemaCorrida.getEsquemaCorridaRebote(), dataGeracao, false, isFeriado, null, false);
|
|
|
|
|
Corrida corridaPisoExtraRebote = null;
|
|
|
|
|
boolean generaReboteDiaSeguinte = false;
|
|
|
|
|
|
|
|
|
@ -1073,7 +1091,7 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
|
|
|
|
|
log.info(String.format("Esquema/Corrida primeiro piso: %s/%s ; Esquema/Corrida segundo piso: %s/%s ",ecRebote.getEsquemacorridaId(),ecRebote.getNumCorrida(), esquemaCorridaSegundoPiso.getEsquemacorridaId(),esquemaCorridaSegundoPiso.getNumCorrida() ));
|
|
|
|
|
|
|
|
|
|
corridaPisoExtraRebote = generarCorrida(esquemaCorridaSegundoPiso, dataGeracao, true, isFeriado, null);
|
|
|
|
|
corridaPisoExtraRebote = generarCorrida(esquemaCorridaSegundoPiso, dataGeracao, true, isFeriado, null, false);
|
|
|
|
|
|
|
|
|
|
if (corridaRebote != null && corridaPisoExtraRebote != null) {
|
|
|
|
|
// Salvando Referencia da Corrida no piso extra
|
|
|
|
@ -1337,7 +1355,7 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
java.sql.Date data = new java.sql.Date(dataGeracao.getTime());
|
|
|
|
|
Boolean isFeriado = this.isFeriado(data, esquemaCorrida);
|
|
|
|
|
|
|
|
|
|
return generarCorrida(esquemaCorrida.getEsquemaCorridaRebote(), tmp.getTime(), false, isFeriado, null);
|
|
|
|
|
return generarCorrida(esquemaCorrida.getEsquemaCorridaRebote(), tmp.getTime(), false, isFeriado, null, false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<Integer> getDiaDeLaSemana(TramoTiempo tramoTiempo) {
|
|
|
|
@ -1476,7 +1494,7 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
List<EsquemaCorrida> lsTmp = new ArrayList<EsquemaCorrida>();
|
|
|
|
|
lsTmp.add(esquemaCorrida);
|
|
|
|
|
|
|
|
|
|
this.generarCorrida(dataDe, lsTmp, true, null);
|
|
|
|
|
this.generarCorrida(dataDe, lsTmp, true, null, false);
|
|
|
|
|
|
|
|
|
|
calendarData.setTime(dataDe);
|
|
|
|
|
calendarData.add(Calendar.DATE, 1);
|
|
|
|
@ -1521,7 +1539,7 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
if (dentroVigenciaEsquemaOperacional) {
|
|
|
|
|
log.debug("Geracao de servicos sem cant dias especifico. Adotando o padrao");
|
|
|
|
|
|
|
|
|
|
this.generarCorrida(dataDe, lsEsquemaCorrida, true, null);
|
|
|
|
|
this.generarCorrida(dataDe, lsEsquemaCorrida, true, null, false);
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
log.info("No hay esquema vigente para la fecha " + sdfData.format(dataDe));
|
|
|
|
@ -1604,7 +1622,7 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
boolean corridaGerada = this.generarCorrida(dataAte, Arrays.asList(esquemaCorrida), false, null);
|
|
|
|
|
boolean corridaGerada = this.generarCorrida(dataAte, Arrays.asList(esquemaCorrida), false, null, false);
|
|
|
|
|
|
|
|
|
|
log.info(String.format("Corrida gerada = %s [%s - %s]",corridaGerada,esquemaCorrida.getNumCorrida() ,strDataGeracao));
|
|
|
|
|
|
|
|
|
@ -1674,7 +1692,7 @@ public class CorridaServiceImpl implements CorridaService {
|
|
|
|
|
while (DateUtil.compareOnlyDate(dataDe, dataAte) <= 0) {
|
|
|
|
|
log.info("*** Data: " + sdfData.format(dataDe));
|
|
|
|
|
|
|
|
|
|
this.generarCorrida(dataDe, lsEsquemaCorrida, false, null);
|
|
|
|
|
this.generarCorrida(dataDe, lsEsquemaCorrida, false, null, false);
|
|
|
|
|
|
|
|
|
|
calendarData.add(Calendar.DATE, 1);
|
|
|
|
|
dataDe = calendarData.getTime();
|
|
|
|
|