julio 2015-09-15 17:45:05 +00:00
parent dc79296b9f
commit 0e6820d83a
5 changed files with 299 additions and 192 deletions

View File

@ -14,7 +14,7 @@ public interface OrgaoTramoDAO {
* @param claseServicioId * @param claseServicioId
* @return * @return
*/ */
public OrgaoTramo buscar(Integer origenId, Integer destinoId, Integer viaId, Integer orgaoConcedenteId, Short claseServicioId); public OrgaoTramo buscar(Integer origenId, Integer destinoId, Integer viaId, Integer orgaoConcedenteId, Integer claseServicioId);
/** /**
* Graba el registro en la base de datos * Graba el registro en la base de datos

View File

@ -22,7 +22,7 @@ public class OrgaoTramoHibernateDAO extends GenericHibernateDAO<OrgaoTramo, Inte
} }
@Override @Override
public OrgaoTramo buscar(Integer origenId, Integer destinoId, Integer viaId, Integer orgaoConcedenteId, Short claseServicioId) { public OrgaoTramo buscar(Integer origenId, Integer destinoId, Integer viaId, Integer orgaoConcedenteId, Integer claseServicioId) {
Criteria c = makeCriteria(); Criteria c = makeCriteria();
Criteria cTramo = c.createCriteria("tramo"); Criteria cTramo = c.createCriteria("tramo");
cTramo.add(Restrictions.eq("origem.paradaId", origenId)); cTramo.add(Restrictions.eq("origem.paradaId", origenId));

View File

@ -31,183 +31,183 @@ public class ClaseServicio implements Serializable {
public final static short TODOS = -1; public final static short TODOS = -1;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Id @Id
@Basic(optional = false) @Basic(optional = false)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "CLASE_SERVICIO_SEQ") @GeneratedValue(strategy = GenerationType.AUTO, generator = "CLASE_SERVICIO_SEQ")
@Column(name = "CLASESERVICIO_ID") @Column(name = "CLASESERVICIO_ID")
private Short claseservicioId; private Integer claseservicioId;
@Column(name = "DESCCLASE") @Column(name = "DESCCLASE")
private String descclase; private String descclase;
@Column(name = "ACTIVO") @Column(name = "ACTIVO")
private Boolean activo; private Boolean activo;
@Basic(optional = false) @Basic(optional = false)
@Column(name = "FECMODIF") @Column(name = "FECMODIF")
@Temporal(TemporalType.TIMESTAMP) @Temporal(TemporalType.TIMESTAMP)
private Date fecmodif; private Date fecmodif;
@Column(name = "USUARIO_ID") @Column(name = "USUARIO_ID")
private Integer usuarioId; private Integer usuarioId;
@OneToMany(mappedBy = "claseServicio") @OneToMany(mappedBy = "claseServicio")
private List<CategoriaClase> categoriaClaseList; private List<CategoriaClase> categoriaClaseList;
@OneToMany(mappedBy = "claseServicio") @OneToMany(mappedBy = "claseServicio")
private List<ReservacionClase> reservacionClaseList; private List<ReservacionClase> reservacionClaseList;
@OneToMany(mappedBy = "claseServicio") @OneToMany(mappedBy = "claseServicio")
private List<TramoTiempo> tramoTiempoList; private List<TramoTiempo> tramoTiempoList;
@Column(name = "EQUIVALENCIA_ID") @Column(name = "EQUIVALENCIA_ID")
private String equivalenciaId; private String equivalenciaId;
@Column(name = "EQUIVALENCIAELEKTRA_ID") @Column(name = "EQUIVALENCIAELEKTRA_ID")
private String equivalenciaElektraId; private String equivalenciaElektraId;
@OneToMany(mappedBy = "claseServicio") @OneToMany(mappedBy = "claseServicio")
private List<TarifaHist> tarifaHistList; private List<TarifaHist> tarifaHistList;
@OneToMany(mappedBy = "claseServicio") @OneToMany(mappedBy = "claseServicio")
private List<Corrida> corridaList; private List<Corrida> corridaList;
public ClaseServicio() { public ClaseServicio() {
} }
public ClaseServicio(Short claseservicioId) { public ClaseServicio(Integer claseservicioId) {
this.claseservicioId = claseservicioId; this.claseservicioId = claseservicioId;
} }
public ClaseServicio(Short claseservicioId, Date fecmodif) { public ClaseServicio(Integer claseservicioId, Date fecmodif) {
this.claseservicioId = claseservicioId; this.claseservicioId = claseservicioId;
this.fecmodif = fecmodif; this.fecmodif = fecmodif;
} }
public Short getClaseservicioId() { public Integer getClaseservicioId() {
return claseservicioId; return claseservicioId;
} }
public void setClaseservicioId(Short claseservicioId) { public void setClaseservicioId(Integer claseservicioId) {
this.claseservicioId = claseservicioId; this.claseservicioId = claseservicioId;
} }
public String getDescclase() { public String getDescclase() {
return descclase; return descclase;
} }
public void setDescclase(String descclase) { public void setDescclase(String descclase) {
this.descclase = descclase; this.descclase = descclase;
} }
public Boolean getActivo() { public Boolean getActivo() {
return activo; return activo;
} }
public void setActivo(Boolean activo) { public void setActivo(Boolean activo) {
this.activo = activo; this.activo = activo;
} }
public Date getFecmodif() { public Date getFecmodif() {
return fecmodif; return fecmodif;
} }
public void setFecmodif(Date fecmodif) { public void setFecmodif(Date fecmodif) {
this.fecmodif = fecmodif; this.fecmodif = fecmodif;
} }
public Integer getUsuarioId() { public Integer getUsuarioId() {
return usuarioId; return usuarioId;
} }
public void setUsuarioId(Integer usuarioId) { public void setUsuarioId(Integer usuarioId) {
this.usuarioId = usuarioId; this.usuarioId = usuarioId;
} }
public List<CategoriaClase> getCategoriaClaseList() { public List<CategoriaClase> getCategoriaClaseList() {
List<CategoriaClase> tmp = new ArrayList<CategoriaClase>(); List<CategoriaClase> tmp = new ArrayList<CategoriaClase>();
if (categoriaClaseList != null) { if (categoriaClaseList != null) {
for (CategoriaClase cc : this.categoriaClaseList) { for (CategoriaClase cc : this.categoriaClaseList) {
if (cc.getActivo()) { if (cc.getActivo()) {
tmp.add(cc); tmp.add(cc);
} }
} }
} }
return tmp; return tmp;
} }
public void setCategoriaClaseList(List<CategoriaClase> categoriaClaseList) { public void setCategoriaClaseList(List<CategoriaClase> categoriaClaseList) {
this.categoriaClaseList = categoriaClaseList; this.categoriaClaseList = categoriaClaseList;
} }
public List<ReservacionClase> getReservacionClaseList() { public List<ReservacionClase> getReservacionClaseList() {
List<ReservacionClase> tmp = new ArrayList<ReservacionClase>(); List<ReservacionClase> tmp = new ArrayList<ReservacionClase>();
for (ReservacionClase rc : this.reservacionClaseList) { for (ReservacionClase rc : this.reservacionClaseList) {
if (rc.getActivo()) { if (rc.getActivo()) {
tmp.add(rc); tmp.add(rc);
} }
} }
return tmp; return tmp;
} }
public List<Corrida> getCorridaList() { public List<Corrida> getCorridaList() {
return corridaList; return corridaList;
} }
public void setCorridaList(List<Corrida> corridaList) { public void setCorridaList(List<Corrida> corridaList) {
this.corridaList = corridaList; this.corridaList = corridaList;
} }
public void setReservacionClaseList(List<ReservacionClase> reservacionClaseList) { public void setReservacionClaseList(List<ReservacionClase> reservacionClaseList) {
this.reservacionClaseList = reservacionClaseList; this.reservacionClaseList = reservacionClaseList;
} }
@Override @Override
public int hashCode() { public int hashCode() {
int hash = 0; int hash = 0;
hash += (claseservicioId != null ? claseservicioId.hashCode() : 0); hash += (claseservicioId != null ? claseservicioId.hashCode() : 0);
return hash; return hash;
} }
@Override @Override
public boolean equals(Object object) { public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set // TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof ClaseServicio)) { if (!(object instanceof ClaseServicio)) {
return false; return false;
} }
ClaseServicio other = (ClaseServicio) object; ClaseServicio other = (ClaseServicio) object;
if ((this.claseservicioId == null && other.claseservicioId != null) || (this.claseservicioId != null && !this.claseservicioId.equals(other.claseservicioId))) { if ((this.claseservicioId == null && other.claseservicioId != null) || (this.claseservicioId != null && !this.claseservicioId.equals(other.claseservicioId))) {
return false; return false;
} }
return true; return true;
} }
@Override @Override
public String toString() { public String toString() {
return getDescclase(); return getDescclase();
} }
public List<TramoTiempo> getTramoTiempoList() { public List<TramoTiempo> getTramoTiempoList() {
return tramoTiempoList; return tramoTiempoList;
} }
public void setTramoTiempoList(List<TramoTiempo> tramoTiempoList) { public void setTramoTiempoList(List<TramoTiempo> tramoTiempoList) {
this.tramoTiempoList = tramoTiempoList; this.tramoTiempoList = tramoTiempoList;
} }
public String getEquivalenciaId() { public String getEquivalenciaId() {
return equivalenciaId; return equivalenciaId;
} }
public void setEquivalenciaId(String equivalenciaId) { public void setEquivalenciaId(String equivalenciaId) {
this.equivalenciaId = equivalenciaId; this.equivalenciaId = equivalenciaId;
} }
public List<TarifaHist> getTarifaHistList() { public List<TarifaHist> getTarifaHistList() {
return tarifaHistList; return tarifaHistList;
} }
public void setTarifaHistList(List<TarifaHist> tarifaHistList) { public void setTarifaHistList(List<TarifaHist> tarifaHistList) {
this.tarifaHistList = tarifaHistList; this.tarifaHistList = tarifaHistList;
} }
public String getEquivalenciaElektraId() { public String getEquivalenciaElektraId() {
return equivalenciaElektraId; return equivalenciaElektraId;
} }
public void setEquivalenciaElektraId(String equivalenciaElektraId) { public void setEquivalenciaElektraId(String equivalenciaElektraId) {
this.equivalenciaElektraId = equivalenciaElektraId; this.equivalenciaElektraId = equivalenciaElektraId;
} }
} }

View File

@ -4,6 +4,8 @@
*/ */
package com.rjconsultores.ventaboletos.service; package com.rjconsultores.ventaboletos.service;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -69,4 +71,6 @@ public interface CorridaService extends GenericService<Corrida, Corrida.Id> {
public Boolean atualizarCorridaFecHusoFecVerano(Estado estado, Date dataInicial); public Boolean atualizarCorridaFecHusoFecVerano(Estado estado, Date dataInicial);
Boolean atualizarCorridaFecHusoFecVerano(Estado estado, Date dataInicial, Integer corridaId); Boolean atualizarCorridaFecHusoFecVerano(Estado estado, Date dataInicial, Integer corridaId);
public List<Corrida> buscarCorridaRelatorio(Connection conexao, Parada origem, Parada destino, Date feccorrida, Integer corridaId);
} }

View File

@ -4,6 +4,10 @@
*/ */
package com.rjconsultores.ventaboletos.service.impl; package com.rjconsultores.ventaboletos.service.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
@ -32,6 +36,7 @@ import com.rjconsultores.ventaboletos.entidad.AsientoExclusivo;
import com.rjconsultores.ventaboletos.entidad.ClaseServicio; import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
import com.rjconsultores.ventaboletos.entidad.Constante; import com.rjconsultores.ventaboletos.entidad.Constante;
import com.rjconsultores.ventaboletos.entidad.Corrida; import com.rjconsultores.ventaboletos.entidad.Corrida;
import com.rjconsultores.ventaboletos.entidad.Corrida.Id;
import com.rjconsultores.ventaboletos.entidad.CorridaCtrl; import com.rjconsultores.ventaboletos.entidad.CorridaCtrl;
import com.rjconsultores.ventaboletos.entidad.CorridaTramo; import com.rjconsultores.ventaboletos.entidad.CorridaTramo;
import com.rjconsultores.ventaboletos.entidad.DetDiagramaAutobus; import com.rjconsultores.ventaboletos.entidad.DetDiagramaAutobus;
@ -75,7 +80,9 @@ import com.rjconsultores.ventaboletos.utilerias.UtileriasFiscal;
@Service("corridaService") @Service("corridaService")
public class CorridaServiceImpl implements CorridaService { public class CorridaServiceImpl implements CorridaService {
private static Logger log = Logger.getLogger(CorridaServiceImpl.class);
private static int CANT_MAX_CORRIDA_GERA_MANUAL = 40; private static int CANT_MAX_CORRIDA_GERA_MANUAL = 40;
@Autowired @Autowired
private CorridaDAO corridaDAO; private CorridaDAO corridaDAO;
@Autowired @Autowired
@ -102,7 +109,6 @@ public class CorridaServiceImpl implements CorridaService {
private ConstanteService constanteService; private ConstanteService constanteService;
@Autowired @Autowired
private RutaSecuenciaService rutaSecuenciaService; private RutaSecuenciaService rutaSecuenciaService;
private static Logger log = Logger.getLogger(CorridaServiceImpl.class);
private PlatformTransactionManager transactionManager; private PlatformTransactionManager transactionManager;
@Transient @Transient
private int cantCorridaGenerada; private int cantCorridaGenerada;
@ -520,10 +526,10 @@ public class CorridaServiceImpl implements CorridaService {
corrida.setFechorsalida(truncarDataHora(dataGeracao, esquemaCorrida.getHorasalida())); corrida.setFechorsalida(truncarDataHora(dataGeracao, esquemaCorrida.getHorasalida()));
corrida.setFechorSalidaOriginal(corrida.getFechorsalida()); corrida.setFechorSalidaOriginal(corrida.getFechorsalida());
if(esquemaCorrida.getStatusCorrida().equals("A")){ if (esquemaCorrida.getStatusCorrida().equals("A")) {
corrida.setIndstatuscorrida("H"); corrida.setIndstatuscorrida("H");
corrida.setActivo(ActivoUtil.ATIVO); corrida.setActivo(ActivoUtil.ATIVO);
}else if (esquemaCorrida.getStatusCorrida().equals("L")){ } else if (esquemaCorrida.getStatusCorrida().equals("L")) {
corrida.setIndstatuscorrida("P"); corrida.setIndstatuscorrida("P");
corrida.setActivo(ActivoUtil.INATIVO); corrida.setActivo(ActivoUtil.INATIVO);
} }
@ -607,12 +613,12 @@ public class CorridaServiceImpl implements CorridaService {
horaChegadaAnterior = excepcionTiempo; horaChegadaAnterior = excepcionTiempo;
} }
if(esquemaCorrida.getStatusCorrida().equals("A")){ if (esquemaCorrida.getStatusCorrida().equals("A")) {
corridaTramo.setActivo(ActivoUtil.ATIVO); corridaTramo.setActivo(ActivoUtil.ATIVO);
}else if (esquemaCorrida.getStatusCorrida().equals("L")){ } else if (esquemaCorrida.getStatusCorrida().equals("L")) {
corridaTramo.setActivo(ActivoUtil.INATIVO); corridaTramo.setActivo(ActivoUtil.INATIVO);
} }
// //
corridaTramo.setFecmodif(Calendar.getInstance().getTime()); corridaTramo.setFecmodif(Calendar.getInstance().getTime());
if (UsuarioLogado.getUsuarioLogado() != null) { if (UsuarioLogado.getUsuarioLogado() != null) {
corridaTramo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); corridaTramo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
@ -643,7 +649,7 @@ public class CorridaServiceImpl implements CorridaService {
lsCorridaTramo.add(corridaTramo); lsCorridaTramo.add(corridaTramo);
} }
corrida.setCorridaTramoList(lsCorridaTramo); corrida.setCorridaTramoList(lsCorridaTramo);
// //
corrida.setFecmodif(Calendar.getInstance().getTime()); corrida.setFecmodif(Calendar.getInstance().getTime());
if (UsuarioLogado.getUsuarioLogado() != null) { if (UsuarioLogado.getUsuarioLogado() != null) {
corrida.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); corrida.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
@ -658,8 +664,8 @@ public class CorridaServiceImpl implements CorridaService {
List<EsquemaAsiento> lsEsquemaAsiento = esquemaAsientoService.obtenerPorCorrida(esquemaCorrida); List<EsquemaAsiento> lsEsquemaAsiento = esquemaAsientoService.obtenerPorCorrida(esquemaCorrida);
for (EsquemaAsiento ea : lsEsquemaAsiento) { for (EsquemaAsiento ea : lsEsquemaAsiento) {
DetDiagramaAutobus detDiagramaAutobus = detDiagramaAutobusService.obtenerPorDiagramaAutobusAsiento(esquemaCorrida.getDiagramaAutobusId(),ea.getNumasiento()); DetDiagramaAutobus detDiagramaAutobus = detDiagramaAutobusService.obtenerPorDiagramaAutobusAsiento(esquemaCorrida.getDiagramaAutobusId(), ea.getNumasiento());
if(detDiagramaAutobus.getVendible()){ if (detDiagramaAutobus.getVendible()) {
AsientoExclusivo asientoExclusivo = new AsientoExclusivo(); AsientoExclusivo asientoExclusivo = new AsientoExclusivo();
asientoExclusivo.setCorrida(corrida); asientoExclusivo.setCorrida(corrida);
asientoExclusivo.setMotivobloqueo(null); asientoExclusivo.setMotivobloqueo(null);
@ -686,7 +692,7 @@ public class CorridaServiceImpl implements CorridaService {
} }
} catch (org.springframework.dao.DataIntegrityViolationException ex) { } catch (org.springframework.dao.DataIntegrityViolationException ex) {
log.error("",ex); log.error("", ex);
} }
return corrida; return corrida;
@ -760,7 +766,7 @@ public class CorridaServiceImpl implements CorridaService {
private void generarCorrida(Date dataGeracao, List<EsquemaCorrida> lsEsquemaCorrida) { private void generarCorrida(Date dataGeracao, List<EsquemaCorrida> lsEsquemaCorrida) {
DefaultTransactionDefinition def = new DefaultTransactionDefinition(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW); DefaultTransactionDefinition def = new DefaultTransactionDefinition(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW);
//TODO: Melhorar o tratamento às transações manuais em caso de erro,etc // TODO: Melhorar o tratamento às transações manuais em caso de erro,etc
TransactionStatus status = transactionManager.getTransaction(def); TransactionStatus status = transactionManager.getTransaction(def);
cantCorridaGenerada = 0; cantCorridaGenerada = 0;
cantCorridaCommit = 1; cantCorridaCommit = 1;
@ -1014,7 +1020,7 @@ public class CorridaServiceImpl implements CorridaService {
log.debug(" Generacion cant dias " + sdf.format(dataDeOriginal)); log.debug(" Generacion cant dias " + sdf.format(dataDeOriginal));
//TODO: Melhorar o tratamento às transações manuais em caso de erro,etc // TODO: Melhorar o tratamento às transações manuais em caso de erro,etc
DefaultTransactionDefinition def = new DefaultTransactionDefinition(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW); DefaultTransactionDefinition def = new DefaultTransactionDefinition(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW);
TransactionStatus status = transactionManager.getTransaction(def); TransactionStatus status = transactionManager.getTransaction(def);
@ -1112,30 +1118,30 @@ public class CorridaServiceImpl implements CorridaService {
return generacionExitosa; return generacionExitosa;
} }
private int cantDiasMaxGerarCorridasManual() {
private int cantDiasMaxGerarCorridasManual(){
Constante constante = constanteService.buscarPorNomeConstante("CANT_MAX_CORRIDA_GERA_MANUAL"); Constante constante = constanteService.buscarPorNomeConstante("CANT_MAX_CORRIDA_GERA_MANUAL");
if ((constante == null) ||(StringUtils.isBlank(constante.getValorconstante()))){ if ((constante == null) || (StringUtils.isBlank(constante.getValorconstante()))) {
return CANT_MAX_CORRIDA_GERA_MANUAL; return CANT_MAX_CORRIDA_GERA_MANUAL;
} }
return Integer.valueOf(constante.getValorconstante()); return Integer.valueOf(constante.getValorconstante());
} }
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS,rollbackFor=BusinessException.class)
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS, rollbackFor = BusinessException.class)
public Long generarCorridasSelecionadas(List<EsquemaCorrida> lsEsquemaCorrida, Date dataDe, Date dataAte) throws BusinessException { public Long generarCorridasSelecionadas(List<EsquemaCorrida> lsEsquemaCorrida, Date dataDe, Date dataAte) throws BusinessException {
int cantDiasGeneracion = DateUtil.getElapsedDias(dataDe, dataAte); int cantDiasGeneracion = DateUtil.getElapsedDias(dataDe, dataAte);
int cantDiasMaxGerarCorridasManual = cantDiasMaxGerarCorridasManual(); int cantDiasMaxGerarCorridasManual = cantDiasMaxGerarCorridasManual();
log.info("cantDiasGeneracion="+cantDiasGeneracion); log.info("cantDiasGeneracion=" + cantDiasGeneracion);
log.info("cantDiasMaxGerarCorridasManual="+cantDiasMaxGerarCorridasManual); log.info("cantDiasMaxGerarCorridasManual=" + cantDiasMaxGerarCorridasManual);
if (cantDiasGeneracion > cantDiasMaxGerarCorridasManual()){ if (cantDiasGeneracion > cantDiasMaxGerarCorridasManual()) {
throw new BusinessException("corridaServiceImpl.geracaoCorrida.cantDiasManual", new Object[]{cantDiasMaxGerarCorridasManual}); throw new BusinessException("corridaServiceImpl.geracaoCorrida.cantDiasManual", new Object[] { cantDiasMaxGerarCorridasManual });
} }
SimpleDateFormat sdfData = new SimpleDateFormat("dd/MM/yyyy"); SimpleDateFormat sdfData = new SimpleDateFormat("dd/MM/yyyy");
@ -1216,4 +1222,101 @@ public class CorridaServiceImpl implements CorridaService {
public Boolean atualizarCorridaFecHusoFecVerano(Estado estado, Date dataInicial) { public Boolean atualizarCorridaFecHusoFecVerano(Estado estado, Date dataInicial) {
return atualizarCorridaFecHusoFecVerano(estado, dataInicial, null); return atualizarCorridaFecHusoFecVerano(estado, dataInicial, null);
} }
@Override
public List<Corrida> buscarCorridaRelatorio(Connection conexao, Parada origem, Parada destino,
Date feccorrida, Integer corridaId) {
List<Corrida> ls = new ArrayList<Corrida>();
try {
StringBuilder sql = new StringBuilder();
sql.append(" select ");
sql.append(" c.corrida_id as corrida_id, ");
sql.append(" c.feccorrida as feccorrida, ");
sql.append(" c.fechorsalida as fechorsalida, ");
sql.append(" origen.parada_id as origen_id, ");
sql.append(" origen.descparada as origen, ");
sql.append(" destino.parada_id as destino_id, ");
sql.append(" destino.descparada as destino, ");
sql.append(" r.ruta_id as ruta_id, ");
sql.append(" r.descruta as descruta, ");
sql.append(" cs.claseservicio_id as claseservicio_id, ");
sql.append(" cs.descclase as descclase ");
sql.append(" from corrida c ");
sql.append(" inner join parada origen on c.origen_id = origen.parada_id ");
sql.append(" inner join parada destino on c.destino_id = destino.parada_id ");
sql.append(" inner join ruta r on c.ruta_id = r.ruta_id ");
sql.append(" inner join clase_servicio cs on c.claseservicio_id = cs.claseservicio_id ");
sql.append(" where c.activo <> 0 ");
sql.append(corridaId == null ? "" : " and c.corrida_id = ? ");
sql.append(feccorrida == null ? "" : " and c.feccorrida = ? ");
sql.append(origem == null ? "" : " and c.origen_id = ? ");
sql.append(destino == null ? "" : " and c.destino_id = ? ");
int atbNum = 1;
PreparedStatement stmt = conexao.prepareStatement(sql.toString());
if (corridaId != null) {
stmt.setInt(atbNum, corridaId);
atbNum++;
}
if (feccorrida != null) {
stmt.setDate(atbNum, new java.sql.Date(feccorrida.getTime()));
atbNum++;
}
if (origem != null) {
stmt.setInt(atbNum, origem.getParadaId());
atbNum++;
}
if (destino != null) {
stmt.setInt(atbNum, destino.getParadaId());
atbNum++;
}
ResultSet rset = stmt.executeQuery();
while (rset.next()) {
Id id = new Id();
id.setCorridaId(rset.getInt("corrida_id"));
id.setFeccorrida(rset.getDate("feccorrida"));
Parada o = new Parada();
o.setParadaId(rset.getInt("origen_id"));
o.setDescparada(rset.getString("origen"));
Parada d = new Parada();
d.setParadaId(rset.getInt("destino_id"));
d.setDescparada(rset.getString("destino"));
Ruta ruta = new Ruta();
ruta.setRutaId(rset.getInt("ruta_id"));
ruta.setDescruta(rset.getString("descruta"));
ClaseServicio claseServicio = new ClaseServicio();
claseServicio.setClaseservicioId(rset.getInt("claseservicio_id"));
claseServicio.setDescclase(rset.getString("descclase"));
Corrida corrida = new Corrida();
corrida.setId(id);
corrida.setFechorsalida(new Date(rset.getTimestamp("fechorsalida").getTime()));
corrida.setOrigem(o);
corrida.setDestino(d);
corrida.setRuta(ruta);
corrida.setClaseServicio(claseServicio);
ls.add(corrida);
}
} catch (SQLException e) {
log.error("", e);
}
return ls;
}
} }