From e762c7f3c5cb73c5a4ba72ad5bb47786a8bb6c5a Mon Sep 17 00:00:00 2001 From: valdevir Date: Wed, 15 Jun 2022 23:40:27 +0000 Subject: [PATCH] fixes bug#24649 qua: dev:Valdevir git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@112792 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/entidad/Parada.java | 2 +- .../ConexionRutaCombinacionService.java | 6 +++- .../ConexionRutaCombinacionServiceImpl.java | 33 +++++++++++++------ 3 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/entidad/Parada.java b/src/com/rjconsultores/ventaboletos/entidad/Parada.java index 629ed0b71..8707b1861 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/Parada.java +++ b/src/com/rjconsultores/ventaboletos/entidad/Parada.java @@ -300,7 +300,7 @@ public class Parada implements Serializable, Auditavel { return false; } Parada other = (Parada) object; - if ((this.getParadaId() == null && other.getParadaId() != null) || (this.getParadaId() != null && !this.getParadaId().equals(other.getParadaId()))) { + if ((this.getParadaId() == null && other.getParadaId() != null) || (this.getParadaId() != null && this.getParadaId().intValue() != other.getParadaId().intValue())) { return false; } return true; diff --git a/src/com/rjconsultores/ventaboletos/service/ConexionRutaCombinacionService.java b/src/com/rjconsultores/ventaboletos/service/ConexionRutaCombinacionService.java index 7d48ac916..28eb6bd3c 100644 --- a/src/com/rjconsultores/ventaboletos/service/ConexionRutaCombinacionService.java +++ b/src/com/rjconsultores/ventaboletos/service/ConexionRutaCombinacionService.java @@ -10,10 +10,14 @@ import com.rjconsultores.ventaboletos.vo.parada.ParadaVOConexionRuta; public interface ConexionRutaCombinacionService { - public void gerarCombinacionEntre2Eixos(List listParada1, List rutasEixoA, List rutasEixoB, List lsLocalidadesComuns, List listParada4, List rutasEixoA2, List rutasEixoB2, List localidadesGeradas, List conexoesCtrl); + public void gerarCombinacionEntre2Eixos(List listParada1, List rutasEixoA, List rutasEixoB, List lsLocalidadesComuns, List listParada4, List rutasEixoA2, List rutasEixoB2, List localidadesGeradas, List conexoesCtrl, Boolean isConexaoPorAgrupamento); public void gerarCombinacionEntre3Eixos(List listParada1, List rutasEixoA, List rutasEixoB, List lsLocalidadesComuns, List listParada4, List listParadasC, List rutasEixoA2, List rutasEixoB2, List rutasEixoC, List localidadesGeradas, List conexoesCtrl); public List extrairConexionRutaCtrl(List localidadesGeradas); + + public List getParadasByAgrupamentoId(Parada parada); + + } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ConexionRutaCombinacionServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ConexionRutaCombinacionServiceImpl.java index 28b8805d3..3383fb733 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/ConexionRutaCombinacionServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/ConexionRutaCombinacionServiceImpl.java @@ -42,7 +42,7 @@ public class ConexionRutaCombinacionServiceImpl implements ConexionRutaCombinaci return cacheLocalidades; } - private void gerarCombinacao(LinkedList> lists, List rutasEixoA, List rutasEixoB, List rutasEixoC, List localidadesGeradas, List conexoesCtrl, Map cacheLocalidades) { + private void gerarCombinacao(LinkedList> lists, List rutasEixoA, List rutasEixoB, List rutasEixoC, List localidadesGeradas, List conexoesCtrl, Map cacheLocalidades, Boolean isConexaoPorAgrupamento) { Set combinacoes = new TreeSet(); @@ -66,7 +66,7 @@ public class ConexionRutaCombinacionServiceImpl implements ConexionRutaCombinaci Set rutasVendaB = rutaCombinacionService.rutasCombinacionVenda(rutasEixoB); if(rutasEixoC == null) { - gerarLocalidadesEixoAB(rutasEixoA, rutasEixoB, localidadesGeradas, combinacoes, conexoesCtrl, cacheLocalidades, rutasVendaA, rutasVendaB); + gerarLocalidadesEixoAB(rutasEixoA, rutasEixoB, localidadesGeradas, combinacoes, conexoesCtrl, cacheLocalidades, rutasVendaA, rutasVendaB, isConexaoPorAgrupamento); }else { Set rutasVendaC = rutaCombinacionService.rutasCombinacionVenda(rutasEixoC); gerarLocalidadesEixoABC(rutasEixoA, rutasEixoB,rutasEixoC, localidadesGeradas, combinacoes, conexoesCtrl, cacheLocalidades, rutasVendaA, rutasVendaB, rutasVendaC ); @@ -76,7 +76,7 @@ public class ConexionRutaCombinacionServiceImpl implements ConexionRutaCombinaci } - private void gerarLocalidadesEixoAB(List rutasEixoA, List rutasEixoB, List localidadesGeradas, Set combinacoes, List conexoesCtrl, Map cacheLocalidades, Set rutasVendaA, Set rutasVendaB) { + private void gerarLocalidadesEixoAB(List rutasEixoA, List rutasEixoB, List localidadesGeradas, Set combinacoes, List conexoesCtrl, Map cacheLocalidades, Set rutasVendaA, Set rutasVendaB, Boolean isConexaoPorAgrupamento) { short i = 1; String[] valoresCalculados; @@ -105,7 +105,7 @@ public class ConexionRutaCombinacionServiceImpl implements ConexionRutaCombinaci conexionCtrl, conexionRutaCtrl, rutaEixoB.getDescSentido()); i++; - adicionarLocalidadeGerada(conexionCtrl, localidadesGeradas, trechoA, trechoB, null, rutasVendaA, rutasVendaB, new HashSet()); + adicionarLocalidadeGerada(conexionCtrl, localidadesGeradas, trechoA, trechoB, null, rutasVendaA, rutasVendaB, new HashSet(), isConexaoPorAgrupamento); i = 1; } @@ -151,7 +151,7 @@ public class ConexionRutaCombinacionServiceImpl implements ConexionRutaCombinaci } - private void adicionarLocalidadeGerada(ConexionCtrlVO conexionCtrl, List localidadesGeradas, ParadaVOConexionRuta trechoA, ParadaVOConexionRuta trechoB, ParadaVOConexionRuta trechoC, Set rutasVendaA, Set rutasVendaB, Set rutasVendaC) { + private void adicionarLocalidadeGerada(ConexionCtrlVO conexionCtrl, List localidadesGeradas, ParadaVOConexionRuta trechoA, ParadaVOConexionRuta trechoB, ParadaVOConexionRuta trechoC, Set rutasVendaA, Set rutasVendaB, Set rutasVendaC, Boolean isConexaoPorAgrupamento) { boolean isTrechoAVende = false; boolean isTrechoBVende = false; @@ -172,7 +172,7 @@ public class ConexionRutaCombinacionServiceImpl implements ConexionRutaCombinaci } } - if(isTrechoAVende && isTrechoBVende && isTrechoCVende) { + if((isTrechoAVende && isTrechoBVende && isTrechoCVende) || Boolean.TRUE.equals(isConexaoPorAgrupamento)) { localidadesGeradas.add(trechoA); localidadesGeradas.add(trechoB); if(trechoC != null) { @@ -220,7 +220,7 @@ public class ConexionRutaCombinacionServiceImpl implements ConexionRutaCombinaci conexionCtrl, conexionRutaCtrl, rutaEixoC.getDescSentido()); i++; - adicionarLocalidadeGerada(conexionCtrl, localidadesGeradas, trechoA, trechoB, trechoC, rutasVendaA, rutasVendaB, rutasVendaC); + adicionarLocalidadeGerada(conexionCtrl, localidadesGeradas, trechoA, trechoB, trechoC, rutasVendaA, rutasVendaB, rutasVendaC, null); i = 1; } @@ -244,7 +244,7 @@ public class ConexionRutaCombinacionServiceImpl implements ConexionRutaCombinaci conexoesCtrl.addAll(temp); } - public void gerarCombinacionEntre2Eixos(List listParada1, List rutasEixoA, List rutasEixoB, List lsLocalidadesComuns, List listParada4, List rutasEixoA2, List rutasEixoB2, List localidadesGeradas, List conexoesCtrl) { + public void gerarCombinacionEntre2Eixos(List listParada1, List rutasEixoA, List rutasEixoB, List lsLocalidadesComuns, List listParada4, List rutasEixoA2, List rutasEixoB2, List localidadesGeradas, List conexoesCtrl, Boolean isConexaoPorAgrupamento) { for (int i = 0; i < lsLocalidadesComuns.size(); i++) { @@ -279,11 +279,24 @@ public class ConexionRutaCombinacionServiceImpl implements ConexionRutaCombinaci } Map cacheLocalidades = criandoCacheLocalidades(localidades); - gerarCombinacao(lists, rutasEixoA, rutasEixoB, null, localidadesGeradas, conexoesCtrl, cacheLocalidades); + gerarCombinacao(lists, rutasEixoA, rutasEixoB, null, localidadesGeradas, conexoesCtrl, cacheLocalidades, isConexaoPorAgrupamento); } } + + public List getParadasByAgrupamentoId(Parada parada) { + List localidades = new ArrayList(); + List paradaAgrupamentoList = paradaService.buscarPorAgrupamentoParadaId(parada.getAgrupamentoParada()); + if(paradaAgrupamentoList!=null && !paradaAgrupamentoList.isEmpty()) { + for (Parada paradaAgrupamento : paradaAgrupamentoList) { + if(!localidades.contains(paradaAgrupamento)) { + localidades.add(paradaAgrupamento); + } + } + } + return localidades; + } public void gerarCombinacionEntre3Eixos(List listParada1, List rutasEixoA, List rutasEixoB, List lsLocalidadesComuns, List listParada4, List listParadasC, List rutasEixoA2, List rutasEixoB2, List rutasEixoC, List localidadesGeradas, List conexoesCtrl) { @@ -308,7 +321,7 @@ public class ConexionRutaCombinacionServiceImpl implements ConexionRutaCombinaci localidades.addAll(listParadasC); Map cacheLocalidades = criandoCacheLocalidades(localidades); - gerarCombinacao(lists, rutasEixoA, rutasEixoB, rutasEixoC, localidadesGeradas, conexoesCtrl, cacheLocalidades); + gerarCombinacao(lists, rutasEixoA, rutasEixoB, rutasEixoC, localidadesGeradas, conexoesCtrl, cacheLocalidades, null); } }