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 36f09c166..70cd5e85b 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 @@ -22,29 +22,21 @@ import org.zkoss.zul.Messagebox; import org.zkoss.zul.Tab; import org.zkoss.zul.Textbox; -import com.rjconsultores.ventaboletos.entidad.Conexion; -import com.rjconsultores.ventaboletos.entidad.ConexionConf; import com.rjconsultores.ventaboletos.entidad.ConexionCtrl; import com.rjconsultores.ventaboletos.entidad.ConexionRutaConf; import com.rjconsultores.ventaboletos.entidad.ConexionRutaCtrl; import com.rjconsultores.ventaboletos.entidad.ConexionRutaExcepcionPtoVta; import com.rjconsultores.ventaboletos.entidad.ConexionRutaExcepcionTipoPtoVta; -import com.rjconsultores.ventaboletos.entidad.ConexionRutaTramoCtrl; import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.Ruta; import com.rjconsultores.ventaboletos.entidad.RutaCombinacion; import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta; -import com.rjconsultores.ventaboletos.entidad.Tramo; -import com.rjconsultores.ventaboletos.service.ConexionConfService; -import com.rjconsultores.ventaboletos.service.ConexionCtrlService; import com.rjconsultores.ventaboletos.service.ConexionRutaConfService; import com.rjconsultores.ventaboletos.service.ConexionRutaCtrlService; import com.rjconsultores.ventaboletos.service.ConexionRutaExcepcionPtoVtaService; import com.rjconsultores.ventaboletos.service.ConexionRutaExcepcionTipoPtoVtaService; import com.rjconsultores.ventaboletos.service.ConexionRutaTramoCtrlService; -import com.rjconsultores.ventaboletos.service.ConexionService; -import com.rjconsultores.ventaboletos.service.RutaCombinacionService; import com.rjconsultores.ventaboletos.service.RutaService; import com.rjconsultores.ventaboletos.service.TipoPuntoVentaService; import com.rjconsultores.ventaboletos.vo.parada.ConexionCtrlVO; @@ -64,12 +56,6 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer { private static final long serialVersionUID = 1L; private static Logger log = Logger.getLogger(GerarConexionPorRutaController.class); - @Autowired - private ConexionService conexionService; - @Autowired - private ConexionCtrlService conexionCtrlService; - @Autowired - private ConexionConfService conexionConfService; @Autowired private ConexionRutaCtrlService conexionRutaCtrlService; @Autowired @@ -84,8 +70,6 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer { private ConexionRutaExcepcionPtoVtaService conexionRutaRestricaoPtoVtaService; @Autowired private ConexionRutaExcepcionTipoPtoVtaService conexionRutaExcepcionTipoPtoVtaService; - @Autowired - private RutaCombinacionService rutaCombinacionService; private MyListbox localidadesOrigemlList; private MyListbox localidadesDestinoList; @@ -118,7 +102,7 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer { private List lsRutas; private List conexoesCtrl; - private List lsConexionRutaTramo; + List localidadesGeradas; private ConexionRutaConf conexionRutaConf; private MyListbox conexionRutaConfList; @@ -213,6 +197,9 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer { for (Object objectParada : localidadesLinhaASelecionadaList.getListData()) { if (((Parada) objectParada).equals(conexionRutaVO)) { localidadesLinhaASelecionadaList.removeItem(conexionRutaVO); + if(!localidadesOrigemlList.getListData().contains(conexionRutaVO)) { + localidadesOrigemlList.addItemNovo(conexionRutaVO); + } break; } } @@ -227,9 +214,13 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer { for (Object objectParada : localidadesLinhaBSelecionadaList.getListData()) { if (((Parada) objectParada).equals(conexionRutaVO)) { localidadesLinhaBSelecionadaList.removeItem(conexionRutaVO); + if(!localidadesDestinoList.getListData().contains(conexionRutaVO)) { + localidadesDestinoList.addItemNovo(conexionRutaVO); + } break; } } + gerarLocalidadesComunsBC(); } })); localidadesLinhaCSelecionadaList.setItemRenderer(new RenderConexionRutaRemoveSelecionada(new EventListener() { @@ -241,6 +232,9 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer { for (Object objectParada : localidadesLinhaCSelecionadaList.getListData()) { if (((Parada) objectParada).equals(conexionRutaVO)) { localidadesLinhaCSelecionadaList.removeItem(conexionRutaVO); + if(!localidadesDestinoLinhaCList.getListData().contains(conexionRutaVO)) { + localidadesDestinoLinhaCList.addItemNovo(conexionRutaVO); + } break; } } @@ -264,29 +258,6 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer { } @SuppressWarnings("unchecked") - private boolean validarTrechosEixoAEixoB() throws InterruptedException { - - List rutasEixoA = rutasAList.getListData(); - List paradasOrigen = localidadesLinhaASelecionadaList.getListData(); - List lsLocalidadesComuns = getLsLocalidadesComuns(); - - for (Ruta rutaEeixoA : rutasEixoA) { - for (Parada paradaOrigem : paradasOrigen) { - for (Parada paradaComum : lsLocalidadesComuns) { - Tramo tramo = new Tramo(); - tramo.setOrigem(paradaOrigem); - tramo.setDestino(paradaComum); - - if (rutaCombinacionService.busquedaTramoRutaOrigemDestino(rutaEeixoA.getRutaId(),paradaOrigem.getParadaId(), paradaComum.getParadaId()) == null) { - mostraMensagem(Labels.getLabel("editarConexionController.MSG.trechoInexistente")+"Linha : "+rutaEeixoA+ " - " + paradaOrigem + " - " + paradaComum); - return false; - } - } - } - } - return true; - } - public void onClick$btnSalvar(Event ev) throws Exception { if(!validarItensSalvar()) { @@ -298,50 +269,34 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer { } gerarCombinacao(); + List lsConexionRutaCtrl = ConexionRutaCombinacionFactory.extrairConexionRutaCtrl(localidadesGeradas); + boolean itemNovo = false; if(conexionRutaConf == null) { conexionRutaConf = new ConexionRutaConf(); + itemNovo = true; } conexionRutaConf.setDescricao(txtDescricao.getText()); conexionRutaConf.setTiempoMin(txtTiempoMin.getValue()); conexionRutaConf.setTiempoMax(txtTiempoMax.getValue()); - salvarConexionesRutaConf(conexionRutaConf); - salvarCanalVentasRutaCtrl(); - salvarPuntoVentasRutaCtrl(); - salvarConexionesRutaCtrl(conexionRutaConf); + + List canalVentas = listEspCanal.getListData(); + List puntoVentas = listPuntoVenta.getListData(); + + conexionRutaConf = conexionRutaConfService.salvarConfiguracao(conexionRutaConf, canalVentas, puntoVentas, conexoesCtrl, lsConexionRutaCtrl, localidadesGeradas); + + if(itemNovo) { + conexionRutaConfList.addItemNovo(conexionRutaConf); + }else { + conexionRutaConfList.updateItem(conexionRutaConf); + } mostraMensagem(Labels.getLabel("editarConexionPorRutaController.MSG.suscribirOK")); closeWindow(); } - @SuppressWarnings("unchecked") - private void salvarConexionesRutaCtrl(ConexionRutaConf conexionRutaConf) { - List rutas = ConexionRutaCombinacionFactory.extrairConexionRutaCtrl((List) localidadesCombinadasList.getListData()); - List rutasEntidades = new ArrayList(); - for (ConexionRutaCtrlVO conexionRutaCtrlVO : rutas) { - ConexionRutaCtrl conexionRutaCtrl = new ConexionRutaCtrl(); - conexionRutaCtrl.setRutaOrigenId(conexionRutaCtrlVO.getRutaIdA()); - conexionRutaCtrl.setRutaDestinoId(conexionRutaCtrlVO.getRutaIdB()); - conexionRutaCtrl.setRutaDestinoCId(conexionRutaCtrlVO.getRutaIdC()); - conexionRutaCtrl.setConexionRutaConf(conexionRutaConf); - conexionRutaCtrl = conexionRutaCtrlService.suscribir(conexionRutaCtrl); - rutasEntidades.add(conexionRutaCtrl); - } - salvarConexionesRutaTramoCtrl(rutasEntidades); - salvarConexao(); - } - - private void salvarConexao() { - for (ConexionCtrl conexionCtrl : conexoesCtrl) { - conexionCtrl = conexionCtrlService.suscribir(conexionCtrl); - salvarConexionesConf(conexionCtrl); - salvarConexiones(conexionCtrl); - } - } - - public void onClick$btnApagar(Event ev) throws Exception { int resp = Messagebox.show( @@ -357,117 +312,6 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer { } } - - private void salvarConexiones(ConexionCtrl conexionCtrl) { - List conexionRutaTramoCtrls = recuperarConexionRutaTramoCtrl(conexionCtrl); - for (ConexionRutaTramoCtrl conexionRutaTramoCtrl : conexionRutaTramoCtrls) { - Conexion conexion = new Conexion(); - conexion.setConexionctrlId(conexionCtrl.getConexionctrlId()); - conexion.setOrigenId(conexionRutaTramoCtrl.getOrigen().getParadaId()); - conexion.setDestinoId(conexionRutaTramoCtrl.getDestino().getParadaId()); - conexion.setNumgrupo(conexionRutaTramoCtrl.getGrupo()); - conexion.setNumsecuencia(conexionRutaTramoCtrl.getSecuencia()); - conexion.setRutaId(conexionRutaTramoCtrl.getRuta().getRutaId()); - conexion.setConexionRutaTramoId(conexionRutaTramoCtrl.getConexionRutaTramoId()); - conexion = conexionService.suscribir(conexion); - } - } - - @SuppressWarnings("unchecked") - private List recuperarConexionRutaTramoCtrl(ConexionCtrl conexionCtrl) { - List list = new ArrayList(0); - for (ParadaVOConexionRuta trecho: (List) localidadesCombinadasList.getListData()) { - if(trecho.getConexionCtrl().isOrigemDestinoIgual(conexionCtrl.getOrigenId(), conexionCtrl.getDestinoId())) { - ConexionRutaTramoCtrl aux = new ConexionRutaTramoCtrl(trecho.getConexionRutaTramoId()); - Integer idx = lsConexionRutaTramo.indexOf(aux); - if(idx > -1) { - list.add(lsConexionRutaTramo.get(idx)); - } - } - } - return list; - } - - private void salvarConexionesConf(ConexionCtrl conexionCtrl) { - for (int i = 1; i <= conexionCtrl.getGrupos(); i++) { - ConexionConf conexionConf = new ConexionConf(); - conexionConf.setConexionCtrl(conexionCtrl); - conexionConf.setGrupo(i); - conexionConf.setIndisponible(false); - conexionConf.setTiempoMin(conexionRutaConf.getTiempoMin()); - conexionConf.setTiempoMax(conexionRutaConf.getTiempoMax()); - conexionConf = conexionConfService.suscribir(conexionConf); - } - } - - private void salvarConexionesRutaConf(ConexionRutaConf conexionRutaConf) { - if(conexionRutaConf.getConexionRutaConfId() != null) { - conexionRutaConf = conexionRutaConfService.actualizacion(conexionRutaConf); - conexionRutaConfList.updateItem(conexionRutaConf); - }else { - conexionRutaConf = conexionRutaConfService.suscribir(conexionRutaConf); - conexionRutaConfList.addItemNovo(conexionRutaConf); - } - - } - - @SuppressWarnings("unchecked") - private void salvarConexionesRutaTramoCtrl(List rutasEntidades) { - lsConexionRutaTramo = new ArrayList(0); - for (ParadaVOConexionRuta vo : (List) localidadesCombinadasList.getListData()) { - ConexionRutaTramoCtrl conexionRutaTramoCtrl = new ConexionRutaTramoCtrl(); - conexionRutaTramoCtrl.setOrigen(vo.getParadaOrigem()); - conexionRutaTramoCtrl.setDestino(vo.getParadaDestino()); - conexionRutaTramoCtrl.setRuta(new Ruta(vo.getRutaId())); - conexionRutaTramoCtrl.setSecuencia(vo.getSecuencia()); - - if(vo.getConexionRutaCtrl() != null && vo.getConexionRutaCtrl().getRutaIdC() == null) { - conexionRutaTramoCtrl.setConexionRutaCtrl(ConexionRutaCtrl.getConexionRutaCtrl(rutasEntidades, - vo.getConexionRutaCtrl().getRutaIdA(), - vo.getConexionRutaCtrl().getRutaIdB())); - } else if(vo.getConexionRutaCtrl() != null && vo.getConexionRutaCtrl().getRutaIdC() != null) { - conexionRutaTramoCtrl.setConexionRutaCtrl(ConexionRutaCtrl.getConexionRutaCtrl(rutasEntidades, - vo.getConexionRutaCtrl().getRutaIdA(), - vo.getConexionRutaCtrl().getRutaIdB(), - vo.getConexionRutaCtrl().getRutaIdC())); - } else { - conexionRutaTramoCtrl.setConexionRutaCtrl(ConexionRutaCtrl.getConexionRutaCtrl(rutasEntidades)); - } - - conexionRutaTramoCtrl.setValido(true); - conexionRutaTramoCtrl.setGrupo(vo.getGrupo()); - conexionRutaTramoCtrl = conexionRutaTramoCtrlService.suscribir(conexionRutaTramoCtrl); - vo.setConexionRutaTramoId(conexionRutaTramoCtrl.getConexionRutaTramoId()); - - lsConexionRutaTramo.add(conexionRutaTramoCtrl); - } - } - - @SuppressWarnings("unchecked") - private void salvarCanalVentasRutaCtrl() { - - List canalVentas = listEspCanal.getListData(); - for (TipoPuntoVenta tipoPuntoVenta : canalVentas) { - ConexionRutaExcepcionTipoPtoVta conexionRutaExcepcionPtoVta = new ConexionRutaExcepcionTipoPtoVta(); - conexionRutaExcepcionPtoVta.setTipoPtovta(tipoPuntoVenta); - conexionRutaExcepcionPtoVta.setConexionRutaConf(conexionRutaConf); - conexionRutaExcepcionPtoVta = conexionRutaExcepcionTipoPtoVtaService.suscribir(conexionRutaExcepcionPtoVta); - } - - } - - @SuppressWarnings("unchecked") - private void salvarPuntoVentasRutaCtrl() { - - List puntoVentas = listPuntoVenta.getListData(); - for (PuntoVenta puntoVenta : puntoVentas) { - ConexionRutaExcepcionPtoVta conexionRutaExcepcionPtoVta = new ConexionRutaExcepcionPtoVta(); - conexionRutaExcepcionPtoVta.setConexionRutaConf(conexionRutaConf); - conexionRutaExcepcionPtoVta.setPuntoVenta(puntoVenta); - conexionRutaExcepcionPtoVta = conexionRutaRestricaoPtoVtaService.suscribir(conexionRutaExcepcionPtoVta); - } - - } public void onClick$btnPesquisaPermissao(Event ev) throws InterruptedException { executarPesquisaLocalidadesOrigen(); @@ -538,7 +382,7 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer { } } } - localidadesDestinoList.removeItem(parada); + gerarLocalidadesComunsBC(); } } })); @@ -635,7 +479,7 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer { return; } - gerarCombinacao(); + gerarCombinacao(); } private boolean validarItensSalvar() throws InterruptedException { @@ -996,24 +840,26 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer { @SuppressWarnings("unchecked") private void gerarCombinacao() { + + localidadesGeradas = new ArrayList(); + conexoesCtrl = new ArrayList(); + List listParada1 = localidadesLinhaASelecionadaList.getListData(); List rutasEixoA = rutasAList.getListData(); List rutasEixoB = rutasBList.getListData(); List rutasEixoC = rutasCList.getListData(); List listParada4 = localidadesLinhaBSelecionadaList.getListData(); List listParadasC = localidadesLinhaCSelecionadaList.getListData(); - List localidadesGeradas = new ArrayList(); - List conexoesCtrl = new ArrayList(0); + List conexoesCtrlVO = new ArrayList(0); if(rutasEixoC.isEmpty()) { - ConexionRutaCombinacionFactory.gerarCombinacionEntre2Eixos(listParada1,rutasEixoA, rutasEixoB, getLsLocalidadesComuns(), listParada4, rutasEixoA, rutasEixoB, localidadesGeradas, conexoesCtrl ); + ConexionRutaCombinacionFactory.gerarCombinacionEntre2Eixos(listParada1,rutasEixoA, rutasEixoB, getLsLocalidadesComuns(), listParada4, rutasEixoA, rutasEixoB, localidadesGeradas, conexoesCtrlVO ); }else { - ConexionRutaCombinacionFactory.gerarCombinacionEntre3Eixos(listParada1,rutasEixoA, rutasEixoB, getLsLocalidadesComuns(), listParada4,listParadasC, rutasEixoA, rutasEixoB,rutasEixoC,localidadesGeradas, conexoesCtrl ); + ConexionRutaCombinacionFactory.gerarCombinacionEntre3Eixos(listParada1,rutasEixoA, rutasEixoB, getLsLocalidadesComuns(), listParada4,listParadasC, rutasEixoA, rutasEixoB,rutasEixoC,localidadesGeradas, conexoesCtrlVO ); } - this.conexoesCtrl = new ArrayList(); - for (ConexionCtrlVO conexionCtrlVO : conexoesCtrl) { - this.conexoesCtrl.add(new ConexionCtrl(conexionCtrlVO.getOrigenId(), conexionCtrlVO.getDestinoId(), conexionCtrlVO.getGrupo())); + for (ConexionCtrlVO conexionCtrlVO : conexoesCtrlVO) { + conexoesCtrl.add(new ConexionCtrl(conexionCtrlVO.getOrigenId(), conexionCtrlVO.getDestinoId(), conexionCtrlVO.getGrupo())); } localidadesCombinadasList.setData(localidadesGeradas); diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/combinacion/conexionruta/ConexionRutaCombinacionFactory.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/combinacion/conexionruta/ConexionRutaCombinacionFactory.java index 5e6709483..6fc195e04 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/combinacion/conexionruta/ConexionRutaCombinacionFactory.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/combinacion/conexionruta/ConexionRutaCombinacionFactory.java @@ -36,21 +36,21 @@ public class ConexionRutaCombinacionFactory { Set combinacoes = new TreeSet(); - Set novasCombinacoes; for (Parada s : lists.removeFirst()) combinacoes.add(s.getParadaId().toString()); while (!lists.isEmpty()) { List next = lists.removeFirst(); - novasCombinacoes = new TreeSet(); - for (String s1 : combinacoes) + Set novasCombinacoes = new TreeSet(); + for (String s1 : combinacoes) { for (Parada s2 : next) { novasCombinacoes.add(s1 + ";" + s2.getParadaId()); } - + } combinacoes = novasCombinacoes; } + //System.out.println(combinacoes); if(rutasEixoC == null) { gerarLocalidadesEixoAB(rutasEixoA, rutasEixoB, localidadesGeradas, combinacoes, conexoesCtrl); @@ -73,6 +73,7 @@ public class ConexionRutaCombinacionFactory { Integer origemConexaoCtrl = cacheLocalidades.get(Integer.parseInt(valoresCalculados[0])).getParadaId(); Integer destinoConexaoCtrl = cacheLocalidades.get(Integer.parseInt(valoresCalculados[3])).getParadaId(); + ConexionCtrlVO conexionCtrl = adicionarConexao(conexoesCtrl, origemConexaoCtrl, destinoConexaoCtrl); ConexionRutaCtrlVO conexionRutaCtrl = new ConexionRutaCtrlVO(rutaEixoA.getRutaId(), rutaEixoB.getRutaId(), null); @@ -210,7 +211,7 @@ public class ConexionRutaCombinacionFactory { for (int i = 0; i < lsLocalidadesComuns.size(); i++) { - List listParada2 = lsLocalidadesComuns; + List listParada2 = Arrays.asList(lsLocalidadesComuns.get(i)); List listParada3 = Arrays.asList(lsLocalidadesComuns.get(i)); LinkedList> lists = new LinkedList>(); @@ -237,7 +238,7 @@ public class ConexionRutaCombinacionFactory { for (int i = 0; i < lsLocalidadesComuns.size(); i++) { - List listParada2 = lsLocalidadesComuns; + List listParada2 = Arrays.asList(lsLocalidadesComuns.get(i)); List listParada3 = Arrays.asList(lsLocalidadesComuns.get(i)); LinkedList> lists = new LinkedList>(); diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderGeracaoConexionPorRuta.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderGeracaoConexionPorRuta.java index f72154331..e57977b45 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderGeracaoConexionPorRuta.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderGeracaoConexionPorRuta.java @@ -19,6 +19,8 @@ public class RenderGeracaoConexionPorRuta implements ListitemRenderer { private static int grupo = 0; private boolean changeColor = true; + private static int origemConexao = 0; + private static int destinoConexao = 0; private String style1 = "Font-weight:bold;background-color: #DCDCDC"; private String style2 = "Font-weight:bold;background-color: #C0C0C0"; @@ -31,8 +33,10 @@ public class RenderGeracaoConexionPorRuta implements ListitemRenderer { ParadaVOConexionRuta conexion = (ParadaVOConexionRuta) o; - if (grupo != conexion.getGrupo()) { + if (grupo != conexion.getGrupo() || (origemConexao != conexion.getParadaOrigemTrecho().getParadaId() || destinoConexao != conexion.getParadaDestinoTrecho().getParadaId())) { grupo = conexion.getGrupo(); + origemConexao = conexion.getParadaOrigemTrecho().getParadaId(); + destinoConexao = conexion.getParadaDestinoTrecho().getParadaId(); changeColor = !changeColor; } diff --git a/web/gui/esquema_operacional/gerarConexionPorRuta.zul b/web/gui/esquema_operacional/gerarConexionPorRuta.zul index 476e21b93..8f1afc3c0 100644 --- a/web/gui/esquema_operacional/gerarConexionPorRuta.zul +++ b/web/gui/esquema_operacional/gerarConexionPorRuta.zul @@ -31,48 +31,50 @@ + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + @@ -170,7 +172,6 @@ - @@ -391,8 +392,9 @@ tooltiptext="${c:l('editarConexionPorRutaController.btnFechar.tooltiptext')}" /> - + +