-correção na geração de corrida
-correção na tela de conf de restrição git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@25435 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
f00414f96c
commit
56cb33070f
|
@ -359,195 +359,205 @@ public class CorridaServiceImpl implements CorridaService {
|
|||
Marca marca = esquemaCorrida.getMarca();
|
||||
Date horario = esquemaCorrida.getHorasalida();
|
||||
horario = DateUtil.normalizar(horario);
|
||||
Integer numCorrida = (!isPisoExtra)?esquemaCorrida.getNumCorrida():esquemaCorrida.getNumCorridaPisoExtra();
|
||||
|
||||
if (corridaDAO.existe(ruta, dataGeracao, horario, claseServicio, marca, isPisoExtra)) {
|
||||
Corrida.Id id = new Corrida.Id();
|
||||
|
||||
id.setCorridaId(numCorrida);
|
||||
id.setFeccorrida(DateUtil.normalizarToFecha(dataGeracao));
|
||||
|
||||
if (corridaDAO.existe(id)) {
|
||||
log.info("corrida existe = " + ruta.getDescruta() + ";" + DateUtil.getStringDate(dataGeracao) + ";" + DateUtil.getStringDate(horario, "HH:mm") + ";" + claseServicio.getDescclase() + ";" + marca.getDescmarca() + " Piso: " + isPisoExtra);
|
||||
return null;
|
||||
}
|
||||
|
||||
CorridaCtrl corridaCtrl = corridaCtrlService.buscar(ruta, claseServicio, marca, horario, isPisoExtra);
|
||||
//Como o numCorrida corresponde ao corrida_id do corridaCtrl, ou seja, à chave primaria, temos que buscar somente por esse campo
|
||||
//Caso o registro já exista, atualizamos os dados dele.
|
||||
//Sendo assim, o que vai indicar a "duplicidade" de uma corrida será apenas o número dela e não mais o conjunto : clase + marca + horario + ruta
|
||||
|
||||
CorridaCtrl corridaCtrl = corridaCtrlService.obtenerID(numCorrida);
|
||||
|
||||
boolean novoRegistro = false;
|
||||
|
||||
if (corridaCtrl == null) {
|
||||
corridaCtrl = new CorridaCtrl();
|
||||
if (!isPisoExtra) {
|
||||
corridaCtrl.setCorridaId(esquemaCorrida.getNumCorrida());
|
||||
} else {
|
||||
corridaCtrl.setCorridaId(esquemaCorrida.getNumCorridaPisoExtra());
|
||||
}
|
||||
corridaCtrl.setMarca(marca);
|
||||
corridaCtrl.setRuta(ruta);
|
||||
corridaCtrl.setClaseServicio(claseServicio);
|
||||
corridaCtrl.setHorario(horario);
|
||||
|
||||
// parada origem
|
||||
Parada origen = rutaService.getOrigem(ruta);
|
||||
if (origen == null) {
|
||||
log.info("origen nao encontrado para a ruta = " + ruta.getRutaId());
|
||||
}
|
||||
corridaCtrl.setNodo((origen == null) ? null : origen.getNodo());
|
||||
|
||||
corridaCtrl.setActivo(Boolean.TRUE);
|
||||
corridaCtrl.setFecmodif(Calendar.getInstance().getTime());
|
||||
if (UsuarioLogado.getUsuarioLogado() != null) {
|
||||
corridaCtrl.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||
}
|
||||
|
||||
corridaCtrl.setPisoExtra(isPisoExtra);
|
||||
corridaCtrl = corridaCtrlService.suscribir(corridaCtrl);
|
||||
novoRegistro = true;
|
||||
}
|
||||
|
||||
Corrida.Id id = new Corrida.Id();
|
||||
id.setCorridaId(corridaCtrl.getCorridaId());
|
||||
id.setFeccorrida(DateUtil.normalizarToFecha(dataGeracao));
|
||||
corridaCtrl.setCorridaId(numCorrida);
|
||||
corridaCtrl.setMarca(marca);
|
||||
corridaCtrl.setRuta(ruta);
|
||||
corridaCtrl.setClaseServicio(claseServicio);
|
||||
corridaCtrl.setHorario(horario);
|
||||
|
||||
Boolean existeCorrida = corridaDAO.existe(id);
|
||||
if (!existeCorrida) {
|
||||
corrida = new Corrida();
|
||||
corrida.setId(id);
|
||||
corrida.setEsquemaCorrida(esquemaCorrida);
|
||||
corrida.setCorridaCtrl(corridaCtrl);
|
||||
corrida.setAutobus(null);
|
||||
corrida.setClaseServicio(esquemaCorrida.getClaseServicio());
|
||||
corrida.setConductor(null);
|
||||
corrida.setTipoServicio(new Short("1"));
|
||||
Integer cantparados = esquemaCorrida.getCantparados();
|
||||
if (cantparados != null) {
|
||||
corrida.setCantParados(cantparados.shortValue());
|
||||
// parada origem
|
||||
Parada origen = rutaService.getOrigem(ruta);
|
||||
if (origen == null) {
|
||||
log.info("origen nao encontrado para a ruta = " + ruta.getRutaId());
|
||||
}
|
||||
corridaCtrl.setNodo((origen == null) ? null : origen.getNodo());
|
||||
|
||||
corridaCtrl.setActivo(Boolean.TRUE);
|
||||
corridaCtrl.setFecmodif(Calendar.getInstance().getTime());
|
||||
|
||||
if (UsuarioLogado.getUsuarioLogado() != null) {
|
||||
corridaCtrl.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||
}
|
||||
|
||||
corridaCtrl.setPisoExtra(isPisoExtra);
|
||||
if (novoRegistro){
|
||||
corridaCtrl = corridaCtrlService.suscribir(corridaCtrl);
|
||||
}else{
|
||||
corridaCtrl = corridaCtrlService.actualizacion(corridaCtrl);
|
||||
}
|
||||
|
||||
corrida = new Corrida();
|
||||
corrida.setId(id);
|
||||
corrida.setEsquemaCorrida(esquemaCorrida);
|
||||
corrida.setCorridaCtrl(corridaCtrl);
|
||||
corrida.setAutobus(null);
|
||||
corrida.setClaseServicio(esquemaCorrida.getClaseServicio());
|
||||
corrida.setConductor(null);
|
||||
corrida.setTipoServicio(new Short("1"));
|
||||
Integer cantparados = esquemaCorrida.getCantparados();
|
||||
if (cantparados != null) {
|
||||
corrida.setCantParados(cantparados.shortValue());
|
||||
}
|
||||
|
||||
Parada destino = rutaService.getDestino(ruta);
|
||||
if (destino == null) {
|
||||
return null;
|
||||
}
|
||||
corrida.setDestino(destino);
|
||||
|
||||
corrida.setEmpresa(esquemaCorrida.getEmpresa());
|
||||
corrida.setEmpresa1(esquemaCorrida.getEmpresa1());
|
||||
|
||||
corrida.setFechorsalida(truncarDataHora(dataGeracao, esquemaCorrida.getHorasalida()));
|
||||
corrida.setFechorSalidaOriginal(corrida.getFechorsalida());
|
||||
corrida.setIndstatuscorrida("H");
|
||||
corrida.setMarca(esquemaCorrida.getMarca());
|
||||
corrida.setNodo(corridaCtrl.getNodo());
|
||||
corrida.setDivision(esquemaCorrida.getDivision());
|
||||
|
||||
Parada origem = rutaService.getOrigem(ruta);
|
||||
if (origem == null) {
|
||||
return null;
|
||||
}
|
||||
corrida.setOrigem(origem);
|
||||
|
||||
corrida.setRuta(esquemaCorrida.getRuta());
|
||||
corrida.setRolOperativo(esquemaCorrida.getRolOperativo());
|
||||
corrida.setZona(null);
|
||||
|
||||
boolean hayCorrida = corridaDAO.count(corrida.getOrigem(), corrida.getDestino(), corrida.getId().getFeccorrida(), corrida.getClaseServicio(), isPisoExtra);
|
||||
|
||||
if (hayCorrida) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// corrida Tramo:
|
||||
List<CorridaTramo> lsCorridaTramo = new ArrayList<CorridaTramo>();
|
||||
Integer numSec = 1;
|
||||
List<EsquemaTramo> lsEsquemaTramo = esquemaTramoService.obtenerPorEsquemaCorridaOrderNumSec(esquemaCorrida);
|
||||
Date horaChegadaAnterior = null;
|
||||
Date tiempoInstanciaAnterior = null; // indica o tempo
|
||||
// de instancia
|
||||
// que fica no
|
||||
// tramo
|
||||
// anterior ao
|
||||
// atual
|
||||
for (EsquemaTramo esquemaTramo : lsEsquemaTramo) {
|
||||
CorridaTramo corridaTramo = new CorridaTramo();
|
||||
corridaTramo.setAutobus(null);
|
||||
corridaTramo.setConductor(null);
|
||||
corridaTramo.setConductor1(null);
|
||||
corridaTramo.setPlataforma(esquemaTramo.getPlataforma());
|
||||
|
||||
corridaTramo.setTiempoEstancia(esquemaTramo.getTiempoEstancia());
|
||||
|
||||
// numSec: 1-2, 2-3, 3-4...
|
||||
corridaTramo.setNumsecorigen(numSec.shortValue());
|
||||
numSec = numSec + 1;
|
||||
corridaTramo.setNumsecdestino(numSec.shortValue());
|
||||
|
||||
Date fecHorSalida = calcularFechorsalida(esquemaTramo, dataGeracao, horaChegadaAnterior, tiempoInstanciaAnterior);
|
||||
fecHorSalida.setSeconds(0);
|
||||
corridaTramo.setFechorsalida(fecHorSalida);
|
||||
|
||||
Date fecHorallegada = calcularFechorllegada(esquemaTramo, corrida.getClaseServicio(), dataGeracao, fecHorSalida);
|
||||
fecHorallegada.setSeconds(0);
|
||||
corridaTramo.setFechorllegada(fecHorallegada);
|
||||
horaChegadaAnterior = fecHorallegada;
|
||||
tiempoInstanciaAnterior = esquemaTramo.getTiempoEstancia();
|
||||
|
||||
corridaTramo.setFechortarjetaviaje(null);
|
||||
corridaTramo.setNodo(corridaCtrl.getNodo());
|
||||
|
||||
corridaTramo.setNumsecuencia(esquemaTramo.getNumsecuencia());
|
||||
Tramo tramo = esquemaTramo.getTramo();
|
||||
if (tramo != null) {
|
||||
corridaTramo.setOrigem(tramo.getOrigem());
|
||||
corridaTramo.setDestino(tramo.getDestino());
|
||||
}
|
||||
corridaTramo.setTramo(tramo);
|
||||
corridaTramo.setUsuariotarjetaviajeId(null);
|
||||
|
||||
Date excepcionTiempo = arreglaExcepcionTiempo(corridaTramo, corrida.getClaseServicio());
|
||||
if (excepcionTiempo != null) {
|
||||
corridaTramo.setFechorllegada(excepcionTiempo);
|
||||
horaChegadaAnterior = excepcionTiempo;
|
||||
}
|
||||
|
||||
Parada destino = rutaService.getDestino(ruta);
|
||||
if (destino == null) {
|
||||
return null;
|
||||
}
|
||||
corrida.setDestino(destino);
|
||||
|
||||
corrida.setEmpresa(esquemaCorrida.getEmpresa());
|
||||
corrida.setEmpresa1(esquemaCorrida.getEmpresa1());
|
||||
|
||||
corrida.setFechorsalida(truncarDataHora(dataGeracao, esquemaCorrida.getHorasalida()));
|
||||
corrida.setFechorSalidaOriginal(corrida.getFechorsalida());
|
||||
corrida.setIndstatuscorrida("H");
|
||||
corrida.setMarca(esquemaCorrida.getMarca());
|
||||
corrida.setNodo(corridaCtrl.getNodo());
|
||||
corrida.setDivision(esquemaCorrida.getDivision());
|
||||
|
||||
Parada origem = rutaService.getOrigem(ruta);
|
||||
if (origem == null) {
|
||||
return null;
|
||||
}
|
||||
corrida.setOrigem(origem);
|
||||
|
||||
corrida.setRuta(esquemaCorrida.getRuta());
|
||||
corrida.setRolOperativo(esquemaCorrida.getRolOperativo());
|
||||
corrida.setZona(null);
|
||||
|
||||
boolean hayCorrida = corridaDAO.count(corrida.getOrigem(), corrida.getDestino(), corrida.getId().getFeccorrida(), corrida.getClaseServicio(), isPisoExtra);
|
||||
|
||||
if (hayCorrida) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// corrida Tramo:
|
||||
List<CorridaTramo> lsCorridaTramo = new ArrayList<CorridaTramo>();
|
||||
Integer numSec = 1;
|
||||
List<EsquemaTramo> lsEsquemaTramo = esquemaTramoService.obtenerPorEsquemaCorridaOrderNumSec(esquemaCorrida);
|
||||
Date horaChegadaAnterior = null;
|
||||
Date tiempoInstanciaAnterior = null; // indica o tempo
|
||||
// de instancia
|
||||
// que fica no
|
||||
// tramo
|
||||
// anterior ao
|
||||
// atual
|
||||
for (EsquemaTramo esquemaTramo : lsEsquemaTramo) {
|
||||
CorridaTramo corridaTramo = new CorridaTramo();
|
||||
corridaTramo.setAutobus(null);
|
||||
corridaTramo.setConductor(null);
|
||||
corridaTramo.setConductor1(null);
|
||||
corridaTramo.setPlataforma(esquemaTramo.getPlataforma());
|
||||
|
||||
corridaTramo.setTiempoEstancia(esquemaTramo.getTiempoEstancia());
|
||||
|
||||
// numSec: 1-2, 2-3, 3-4...
|
||||
corridaTramo.setNumsecorigen(numSec.shortValue());
|
||||
numSec = numSec + 1;
|
||||
corridaTramo.setNumsecdestino(numSec.shortValue());
|
||||
|
||||
Date fecHorSalida = calcularFechorsalida(esquemaTramo, dataGeracao, horaChegadaAnterior, tiempoInstanciaAnterior);
|
||||
fecHorSalida.setSeconds(0);
|
||||
corridaTramo.setFechorsalida(fecHorSalida);
|
||||
|
||||
Date fecHorallegada = calcularFechorllegada(esquemaTramo, corrida.getClaseServicio(), dataGeracao, fecHorSalida);
|
||||
fecHorallegada.setSeconds(0);
|
||||
corridaTramo.setFechorllegada(fecHorallegada);
|
||||
horaChegadaAnterior = fecHorallegada;
|
||||
tiempoInstanciaAnterior = esquemaTramo.getTiempoEstancia();
|
||||
|
||||
corridaTramo.setFechortarjetaviaje(null);
|
||||
corridaTramo.setNodo(corridaCtrl.getNodo());
|
||||
|
||||
corridaTramo.setNumsecuencia(esquemaTramo.getNumsecuencia());
|
||||
Tramo tramo = esquemaTramo.getTramo();
|
||||
if (tramo != null) {
|
||||
corridaTramo.setOrigem(tramo.getOrigem());
|
||||
corridaTramo.setDestino(tramo.getDestino());
|
||||
}
|
||||
corridaTramo.setTramo(tramo);
|
||||
corridaTramo.setUsuariotarjetaviajeId(null);
|
||||
|
||||
Date excepcionTiempo = arreglaExcepcionTiempo(corridaTramo, corrida.getClaseServicio());
|
||||
if (excepcionTiempo != null) {
|
||||
corridaTramo.setFechorllegada(excepcionTiempo);
|
||||
horaChegadaAnterior = excepcionTiempo;
|
||||
}
|
||||
|
||||
corridaTramo.setActivo(Boolean.TRUE);
|
||||
corridaTramo.setFecmodif(Calendar.getInstance().getTime());
|
||||
if (UsuarioLogado.getUsuarioLogado() != null) {
|
||||
corridaTramo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||
}
|
||||
corridaTramo.setCorrida(corrida);
|
||||
corridaTramo.setFechorSalidaOriginal(fecHorSalida);
|
||||
|
||||
lsCorridaTramo.add(corridaTramo);
|
||||
}
|
||||
corrida.setCorridaTramoList(lsCorridaTramo);
|
||||
|
||||
corrida.setActivo(Boolean.TRUE);
|
||||
corrida.setFecmodif(Calendar.getInstance().getTime());
|
||||
corridaTramo.setActivo(Boolean.TRUE);
|
||||
corridaTramo.setFecmodif(Calendar.getInstance().getTime());
|
||||
if (UsuarioLogado.getUsuarioLogado() != null) {
|
||||
corrida.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||
} else {
|
||||
corrida.setUsuarioId(1);
|
||||
corridaTramo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||
}
|
||||
corrida.setIndTipoVenta(null);
|
||||
corridaTramo.setCorrida(corrida);
|
||||
corridaTramo.setFechorSalidaOriginal(fecHorSalida);
|
||||
|
||||
corrida = corridaDAO.suscribir(corrida);
|
||||
cantCorridaGenerada++;
|
||||
lsCorridaTramo.add(corridaTramo);
|
||||
}
|
||||
corrida.setCorridaTramoList(lsCorridaTramo);
|
||||
|
||||
List<EsquemaAsiento> lsEsquemaAsiento = esquemaAsientoService.obtenerPorCorrida(esquemaCorrida);
|
||||
for (EsquemaAsiento ea : lsEsquemaAsiento) {
|
||||
AsientoExclusivo asientoExclusivo = new AsientoExclusivo();
|
||||
asientoExclusivo.setCorrida(corrida);
|
||||
corrida.setActivo(Boolean.TRUE);
|
||||
corrida.setFecmodif(Calendar.getInstance().getTime());
|
||||
if (UsuarioLogado.getUsuarioLogado() != null) {
|
||||
corrida.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||
} else {
|
||||
corrida.setUsuarioId(1);
|
||||
}
|
||||
corrida.setIndTipoVenta(null);
|
||||
|
||||
corrida = corridaDAO.suscribir(corrida);
|
||||
cantCorridaGenerada++;
|
||||
|
||||
List<EsquemaAsiento> lsEsquemaAsiento = esquemaAsientoService.obtenerPorCorrida(esquemaCorrida);
|
||||
for (EsquemaAsiento ea : lsEsquemaAsiento) {
|
||||
AsientoExclusivo asientoExclusivo = new AsientoExclusivo();
|
||||
asientoExclusivo.setCorrida(corrida);
|
||||
asientoExclusivo.setMotivobloqueo(null);
|
||||
asientoExclusivo.setNodo(corrida.getNodo());
|
||||
asientoExclusivo.setNumasiento(ea.getNumasiento());
|
||||
asientoExclusivo.setVendible(ea.getIndvendible());
|
||||
asientoExclusivo.setParada(ea.getParada());
|
||||
if (ea.getIndvendible()) {
|
||||
asientoExclusivo.setMotivobloqueo(null);
|
||||
asientoExclusivo.setNodo(corrida.getNodo());
|
||||
asientoExclusivo.setNumasiento(ea.getNumasiento());
|
||||
asientoExclusivo.setVendible(ea.getIndvendible());
|
||||
asientoExclusivo.setParada(ea.getParada());
|
||||
if (ea.getIndvendible()) {
|
||||
asientoExclusivo.setMotivobloqueo(null);
|
||||
} else {
|
||||
asientoExclusivo.setMotivobloqueo(ea.getMotivobloqueo());
|
||||
asientoExclusivo.setDestino(ea.getDestino());
|
||||
}
|
||||
|
||||
asientoExclusivo.setActivo(Boolean.TRUE);
|
||||
asientoExclusivo.setFecmodif(Calendar.getInstance().getTime());
|
||||
if (UsuarioLogado.getUsuarioLogado() != null) {
|
||||
asientoExclusivo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||
}
|
||||
|
||||
asientoExclusivo = asientoExclusivoService.suscribir(asientoExclusivo);
|
||||
} else {
|
||||
asientoExclusivo.setMotivobloqueo(ea.getMotivobloqueo());
|
||||
asientoExclusivo.setDestino(ea.getDestino());
|
||||
}
|
||||
}// if (!existeCorrida)
|
||||
|
||||
asientoExclusivo.setActivo(Boolean.TRUE);
|
||||
asientoExclusivo.setFecmodif(Calendar.getInstance().getTime());
|
||||
if (UsuarioLogado.getUsuarioLogado() != null) {
|
||||
asientoExclusivo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||
}
|
||||
|
||||
asientoExclusivo = asientoExclusivoService.suscribir(asientoExclusivo);
|
||||
}
|
||||
|
||||
} catch (org.springframework.dao.DataIntegrityViolationException ex) {
|
||||
log.error(ex);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue