diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/GerarConexionPorRutaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/GerarConexionPorRutaController.java index 496c0d97f..05d8adf23 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/GerarConexionPorRutaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/GerarConexionPorRutaController.java @@ -3,6 +3,7 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.esquemaoperacional; import java.util.ArrayList; import java.util.Date; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Set; @@ -553,7 +554,7 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer { })); gerarLocalidadesComuns(); } catch (Exception e) { - log.error("", e); + log.error("Erro ao executarPesquisaLocalidadesDestino", e); } } @@ -602,10 +603,34 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer { @SuppressWarnings("unchecked") private void gerarLocalidadesComunsAB() { - Set lsParadas = new HashSet(0); - lsParadas = new HashSet(localidadesOrigemlList.getListData()); + Set lsParadas = new HashSet(localidadesOrigemlList.getListData()); + Set lsParadasDestino = new HashSet(localidadesDestinoList.getListData()); ArrayList paradasDuplicadas = new ArrayList(lsParadas); - paradasDuplicadas.retainAll(localidadesDestinoList.getListData()); + isConexaoPorAgrupamento = !Boolean.TRUE.equals(isConexaoPorAgrupamento) ? validaConfAgrupamentoLocalidadeEmpresaLinhas() : isConexaoPorAgrupamento; + if(Boolean.TRUE.equals(isConexaoPorAgrupamento) && !lsParadasDestino.isEmpty()) { + Set lsParadasIterator = new HashSet(localidadesOrigemlList.getListData()); + Set lsParadasOrigemAux = new HashSet(); + for (Parada parada : lsParadasIterator ) { + if (parada!=null && parada.getAgrupamentoParada() !=null) { + lsParadasOrigemAux.addAll(conexionRutaCombinacionService.getParadasByAgrupamentoId(parada)); + } + + } + if(lsParadasOrigemAux!=null && !lsParadasOrigemAux.isEmpty()) { + for (Parada parada : lsParadasOrigemAux) { + if(!paradasDuplicadas.contains(parada)) { + paradasDuplicadas.add(parada); + } + + if(!lsParadasDestino.isEmpty() && !lsParadasDestino.contains(parada)) { + lsParadasDestino.add(parada); + } + } + } + + } + + paradasDuplicadas.retainAll(lsParadasDestino); validaLocalidadesExcluidas(lsParadas, paradasDuplicadas); //Lista auxiliar usada para ser setada na Listview de localidades comuns A e B List lsLocalidadesComunsABAux = new ArrayList(); @@ -620,7 +645,7 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer { lsLocalidadesComunsAB = new ArrayList(paradasDuplicadas); } localidadesComunsABList.setData(lsLocalidadesComunsABAux); - renderizarLinhasAB(); + renderizarLinhasAB(); } /** @@ -1092,7 +1117,7 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer { } else { this.isConexionGerada = true; if(rutasEixoC.isEmpty()) { - conexionRutaCombinacionService.gerarCombinacionEntre2Eixos(listParada1,rutasEixoA, rutasEixoB, lsLocalidadesComunsAB, listParada4, rutasEixoA, rutasEixoB, localidadesGeradas, conexoesCtrlVO ); + conexionRutaCombinacionService.gerarCombinacionEntre2Eixos(listParada1,rutasEixoA, rutasEixoB, lsLocalidadesComunsAB, listParada4, rutasEixoA, rutasEixoB, localidadesGeradas, conexoesCtrlVO, isConexaoPorAgrupamento); } else { conexionRutaCombinacionService.gerarCombinacionEntre3Eixos(listParada1,rutasEixoA, rutasEixoB, lsLocalidadesComunsAB, listParada4,listParadasC, rutasEixoA, rutasEixoB,rutasEixoC,localidadesGeradas, conexoesCtrlVO ); }