From 7a01f745ff849aaf927bac6287a67eff7c94a390 Mon Sep 17 00:00:00 2001 From: valdevir Date: Wed, 13 Apr 2022 21:54:18 +0000 Subject: [PATCH] fixes bug#24160 qua: dev:Valdevir git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@111888 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/dao/ParadaDAO.java | 4 ++++ .../dao/hibernate/ParadaHibernateDAO.java | 13 +++++++++++++ .../ventaboletos/entidad/Empresa.java | 18 ++++++++++++++++-- .../ventaboletos/entidad/Parada.java | 10 ++++++---- .../ventaboletos/service/ParadaService.java | 3 +++ .../ConexionRutaCombinacionServiceImpl.java | 19 +++++++++++++++++++ .../ConexionRutaTramoCtrlServiceImpl.java | 17 ++++++++++++++--- .../service/impl/ParadaServiceImpl.java | 5 +++++ 8 files changed, 80 insertions(+), 9 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/ParadaDAO.java b/src/com/rjconsultores/ventaboletos/dao/ParadaDAO.java index fd0dfc5ed..fc73b1f36 100644 --- a/src/com/rjconsultores/ventaboletos/dao/ParadaDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/ParadaDAO.java @@ -4,6 +4,7 @@ */ package com.rjconsultores.ventaboletos.dao; +import com.rjconsultores.ventaboletos.entidad.AgrupamentoParada; import com.rjconsultores.ventaboletos.entidad.Ciudad; import com.rjconsultores.ventaboletos.entidad.Nodo; import com.rjconsultores.ventaboletos.entidad.Parada; @@ -56,4 +57,7 @@ public interface ParadaDAO { public List buscarListaPorIds(List paradaIds); public Parada buscarPorId(Integer paradaId); + + public List buscarPorAgrupamentoParadaId(AgrupamentoParada agrupamentoParada); + } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/ParadaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/ParadaHibernateDAO.java index 42fb3c8a4..f706d96e2 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/ParadaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/ParadaHibernateDAO.java @@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Repository; import com.rjconsultores.ventaboletos.dao.ParadaDAO; +import com.rjconsultores.ventaboletos.entidad.AgrupamentoParada; import com.rjconsultores.ventaboletos.entidad.Ciudad; import com.rjconsultores.ventaboletos.entidad.Nodo; import com.rjconsultores.ventaboletos.entidad.Parada; @@ -163,4 +164,16 @@ public class ParadaHibernateDAO extends GenericHibernateDAO imp return (Parada) c.uniqueResult(); } + + @Override + public List buscarPorAgrupamentoParadaId(AgrupamentoParada agrupamentoParada) { + if(agrupamentoParada !=null) { + Criteria c = this.makeCriteria(); + c.add(Restrictions.eq("agrupamentoParada", agrupamentoParada)); + c.add(Restrictions.eq("activo", Boolean.TRUE)); + + return c.list(); + } + return null; + } } diff --git a/src/com/rjconsultores/ventaboletos/entidad/Empresa.java b/src/com/rjconsultores/ventaboletos/entidad/Empresa.java index c3d2994bc..2602bc5dd 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/Empresa.java +++ b/src/com/rjconsultores/ventaboletos/entidad/Empresa.java @@ -399,9 +399,14 @@ public class Empresa implements Serializable, Auditavel { @Column(name = "INDCHECKINBLOQUEADOREMARCACAO") private Boolean indCheckinBloqueadoRemarcacao; + + @Column(name = "INDAGRUPLOCCONEXAO") + private Boolean indAgrupLocConexao; + + @Column(name = "INDLIMITACATEGORIAPORCORRIDA") private Boolean IndLimitaCategoriaPorCorrida; - + @Transient @NaoAuditar private Empresa empresaClone; @@ -1482,13 +1487,22 @@ public class Empresa implements Serializable, Auditavel { public void setIndCheckinBloqueadoRemarcacao(Boolean indCheckinBloqueadoRemarcacao) { this.indCheckinBloqueadoRemarcacao = indCheckinBloqueadoRemarcacao; + } + + public Boolean getIndAgrupLocConexao() { + return indAgrupLocConexao!=null ? indAgrupLocConexao : Boolean.FALSE; } + public void setIndAgrupLocConexao(Boolean indAgrupLocConexao) { + this.indAgrupLocConexao = indAgrupLocConexao; + } + + public Boolean getIndLimitaCategoriaPorCorrida() { return IndLimitaCategoriaPorCorrida; } public void setIndLimitaCategoriaPorCorrida(Boolean indLimitaCategoriaPorCorrida) { IndLimitaCategoriaPorCorrida = indLimitaCategoriaPorCorrida; - } + } } diff --git a/src/com/rjconsultores/ventaboletos/entidad/Parada.java b/src/com/rjconsultores/ventaboletos/entidad/Parada.java index 46a4633fd..e87906582 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/Parada.java +++ b/src/com/rjconsultores/ventaboletos/entidad/Parada.java @@ -295,7 +295,7 @@ public class Parada implements Serializable, Auditavel { @Override public String toString() { - return getDescparada(); + return "ParadaId:" + getParadaId() +" - Cve:" +getCveparada() + " - DescParada:" + getDescparada(); } public String toStringCve() { @@ -382,9 +382,6 @@ public class Parada implements Serializable, Auditavel { @Override public Parada getCloneObject() throws CloneNotSupportedException { -// if(paradaClone == null) { -// this.clonar(); -// } return paradaClone; } @@ -393,4 +390,9 @@ public class Parada implements Serializable, Auditavel { return String.format("EsquemaAsientoID [%s]", getParadaId()); } + @Override + public Object clone() throws CloneNotSupportedException { + return super.clone(); + } + } diff --git a/src/com/rjconsultores/ventaboletos/service/ParadaService.java b/src/com/rjconsultores/ventaboletos/service/ParadaService.java index 6f0b64a65..aac9bbd51 100644 --- a/src/com/rjconsultores/ventaboletos/service/ParadaService.java +++ b/src/com/rjconsultores/ventaboletos/service/ParadaService.java @@ -6,6 +6,7 @@ package com.rjconsultores.ventaboletos.service; import java.util.List; +import com.rjconsultores.ventaboletos.entidad.AgrupamentoParada; import com.rjconsultores.ventaboletos.entidad.Ciudad; import com.rjconsultores.ventaboletos.entidad.Nodo; import com.rjconsultores.ventaboletos.entidad.Parada; @@ -43,4 +44,6 @@ public interface ParadaService { public List obterPossiveisDestinos(Parada origem); public List buscaParadaRegionMetropolitana(RegionMetropolitana regionMetropolitana); + + public List buscarPorAgrupamentoParadaId(AgrupamentoParada agrupamentoParada); } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ConexionRutaCombinacionServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ConexionRutaCombinacionServiceImpl.java index 08cff34f6..28b8805d3 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/ConexionRutaCombinacionServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/ConexionRutaCombinacionServiceImpl.java @@ -14,9 +14,11 @@ import java.util.TreeSet; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.rjconsultores.ventaboletos.dao.ParadaDAO; import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.Ruta; import com.rjconsultores.ventaboletos.service.ConexionRutaCombinacionService; +import com.rjconsultores.ventaboletos.service.ParadaService; import com.rjconsultores.ventaboletos.service.RutaCombinacionService; import com.rjconsultores.ventaboletos.vo.conexion.OrdenarLocalidadesGeradas; import com.rjconsultores.ventaboletos.vo.parada.ConexionCtrlVO; @@ -28,6 +30,9 @@ public class ConexionRutaCombinacionServiceImpl implements ConexionRutaCombinaci @Autowired private RutaCombinacionService rutaCombinacionService; + + @Autowired + private ParadaService paradaService; private Map criandoCacheLocalidades(List list) { Map cacheLocalidades = new HashMap(); @@ -258,6 +263,20 @@ public class ConexionRutaCombinacionServiceImpl implements ConexionRutaCombinaci localidades.addAll(listParada2); localidades.addAll(listParada3); localidades.addAll(listParada4); + List localidadesAux = new ArrayList(); + localidadesAux.addAll(localidades); + for (Parada parada : localidadesAux) { + if(parada.getAgrupamentoParada() !=null) { + List paradaAgrupamentoList = paradaService.buscarPorAgrupamentoParadaId(parada.getAgrupamentoParada()); + if(paradaAgrupamentoList!=null && !paradaAgrupamentoList.isEmpty()) { + for (Parada paradaAgrupamento : paradaAgrupamentoList) { + if(!localidades.contains(paradaAgrupamento)) { + localidades.add(paradaAgrupamento); + } + } + } + } + } Map cacheLocalidades = criandoCacheLocalidades(localidades); gerarCombinacao(lists, rutasEixoA, rutasEixoB, null, localidadesGeradas, conexoesCtrl, cacheLocalidades); diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ConexionRutaTramoCtrlServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ConexionRutaTramoCtrlServiceImpl.java index 260567390..e5d657fa2 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/ConexionRutaTramoCtrlServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/ConexionRutaTramoCtrlServiceImpl.java @@ -93,7 +93,18 @@ public class ConexionRutaTramoCtrlServiceImpl implements ConexionRutaTramoCtrlSe */ @Override public List buscarLocalidadesEixoA(Integer conexionRutaConfId) { - return conexionRutaTramoCtrlDAO.buscarLocalidadesPorConexionRutaConfAndEixo(conexionRutaConfId, EIXO_A); + return validaAgrupamentoLocalidade(conexionRutaTramoCtrlDAO.buscarLocalidadesPorConexionRutaConfAndEixo(conexionRutaConfId, EIXO_A)); + + } + + public List validaAgrupamentoLocalidade(List localidadesList){ + for (Parada parada : localidadesList) { + if(parada.getAgrupamentoParada()!=null) { + parada.setDescparada(parada.getAgrupamentoParada().getDescAgrupamentoParada()); + parada.setCveparada(parada.getAgrupamentoParada().getCveAgrupamentoParada()); + } + } + return localidadesList; } @@ -102,7 +113,7 @@ public class ConexionRutaTramoCtrlServiceImpl implements ConexionRutaTramoCtrlSe */ @Override public List buscarLocalidadeEixoB(Integer conexionRutaConfId) { - return conexionRutaTramoCtrlDAO.buscarLocalidadesPorConexionRutaConfAndEixo(conexionRutaConfId, EIXO_B); + return validaAgrupamentoLocalidade(conexionRutaTramoCtrlDAO.buscarLocalidadesPorConexionRutaConfAndEixo(conexionRutaConfId, EIXO_B)); } /** @@ -110,7 +121,7 @@ public class ConexionRutaTramoCtrlServiceImpl implements ConexionRutaTramoCtrlSe */ @Override public List buscarLocalidadesEixoC(Integer conexionRutaConfId) { - return conexionRutaTramoCtrlDAO.buscarLocalidadesPorConexionRutaConfAndEixo(conexionRutaConfId, EIXO_C); + return validaAgrupamentoLocalidade(conexionRutaTramoCtrlDAO.buscarLocalidadesPorConexionRutaConfAndEixo(conexionRutaConfId, EIXO_C)); } @Override diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ParadaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ParadaServiceImpl.java index cbf190d03..135b00701 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/ParadaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/ParadaServiceImpl.java @@ -15,6 +15,7 @@ import org.springframework.transaction.annotation.Transactional; import com.rjconsultores.ventaboletos.dao.ParadaDAO; import com.rjconsultores.ventaboletos.dao.TramoDAO; +import com.rjconsultores.ventaboletos.entidad.AgrupamentoParada; import com.rjconsultores.ventaboletos.entidad.Ciudad; import com.rjconsultores.ventaboletos.entidad.Nodo; import com.rjconsultores.ventaboletos.entidad.Parada; @@ -174,4 +175,8 @@ public class ParadaServiceImpl implements ParadaService { public List buscaParadaRegionMetropolitana(RegionMetropolitana regionMetropolitana){ return paradaDAO.buscaParadaRegionMetropolitana(regionMetropolitana); } + + public List buscarPorAgrupamentoParadaId(AgrupamentoParada agrupamentoParada){ + return paradaDAO.buscarPorAgrupamentoParadaId(agrupamentoParada); + } }