fixes bug#22475

dev:wilian
qua:

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@107031 d1611594-4594-4d17-8e1d-87c2c4800839
master
wilian 2021-06-02 21:33:13 +00:00
parent 3818b692e7
commit 98b6f77d2d
1 changed files with 44 additions and 53 deletions

View File

@ -1,6 +1,7 @@
package com.rjconsultores.ventaboletos.web.gui.controladores.esquemaoperacional; package com.rjconsultores.ventaboletos.web.gui.controladores.esquemaoperacional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -24,7 +25,6 @@ import org.zkoss.zul.Textbox;
import com.rjconsultores.ventaboletos.entidad.ConexionCtrl; import com.rjconsultores.ventaboletos.entidad.ConexionCtrl;
import com.rjconsultores.ventaboletos.entidad.ConexionRutaConf; import com.rjconsultores.ventaboletos.entidad.ConexionRutaConf;
import com.rjconsultores.ventaboletos.entidad.ConexionRutaCtrl;
import com.rjconsultores.ventaboletos.entidad.ConexionRutaExcepcionPtoVta; import com.rjconsultores.ventaboletos.entidad.ConexionRutaExcepcionPtoVta;
import com.rjconsultores.ventaboletos.entidad.ConexionRutaExcepcionTipoPtoVta; import com.rjconsultores.ventaboletos.entidad.ConexionRutaExcepcionTipoPtoVta;
import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.Parada;
@ -33,18 +33,19 @@ import com.rjconsultores.ventaboletos.entidad.Ruta;
import com.rjconsultores.ventaboletos.entidad.RutaCombinacion; import com.rjconsultores.ventaboletos.entidad.RutaCombinacion;
import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta; import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta;
import com.rjconsultores.ventaboletos.service.ConexionRutaConfService; import com.rjconsultores.ventaboletos.service.ConexionRutaConfService;
import com.rjconsultores.ventaboletos.service.ConexionRutaCtrlService;
import com.rjconsultores.ventaboletos.service.ConexionRutaExcepcionPtoVtaService; import com.rjconsultores.ventaboletos.service.ConexionRutaExcepcionPtoVtaService;
import com.rjconsultores.ventaboletos.service.ConexionRutaExcepcionTipoPtoVtaService; import com.rjconsultores.ventaboletos.service.ConexionRutaExcepcionTipoPtoVtaService;
import com.rjconsultores.ventaboletos.service.ConexionRutaTramoCtrlService; import com.rjconsultores.ventaboletos.service.ConexionRutaTramoCtrlService;
import com.rjconsultores.ventaboletos.service.RutaService; import com.rjconsultores.ventaboletos.service.RutaService;
import com.rjconsultores.ventaboletos.service.TipoPuntoVentaService; import com.rjconsultores.ventaboletos.service.TipoPuntoVentaService;
import com.rjconsultores.ventaboletos.vo.parada.ConexionCtrlVO; import com.rjconsultores.ventaboletos.vo.parada.ConexionCtrlVO;
import com.rjconsultores.ventaboletos.vo.parada.ConexionRutaConfVO;
import com.rjconsultores.ventaboletos.vo.parada.ConexionRutaCtrlVO; import com.rjconsultores.ventaboletos.vo.parada.ConexionRutaCtrlVO;
import com.rjconsultores.ventaboletos.vo.parada.ParadaVOConexionRuta; import com.rjconsultores.ventaboletos.vo.parada.ParadaVOConexionRuta;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
import com.rjconsultores.ventaboletos.web.utilerias.combinacion.conexionruta.ConexionRutaCombinacionFactory; import com.rjconsultores.ventaboletos.web.utilerias.combinacion.conexionruta.ConexionRutaCombinacionFactory;
import com.rjconsultores.ventaboletos.web.utilerias.combinacion.conexionruta.OrdenarLocalidadesGeradas;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderConexionRuta; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderConexionRuta;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderConexionRutaRemoveSelecionada; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderConexionRutaRemoveSelecionada;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderGeracaoConexionPorRuta; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderGeracaoConexionPorRuta;
@ -56,8 +57,6 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private static Logger log = Logger.getLogger(GerarConexionPorRutaController.class); private static Logger log = Logger.getLogger(GerarConexionPorRutaController.class);
@Autowired
private ConexionRutaCtrlService conexionRutaCtrlService;
@Autowired @Autowired
private ConexionRutaConfService conexionRutaConfService; private ConexionRutaConfService conexionRutaConfService;
@Autowired @Autowired
@ -110,6 +109,7 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer {
public void doAfterCompose(Component comp) throws Exception { public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp); super.doAfterCompose(comp);
txtTiempoMax.setConstraint("no empty"); txtTiempoMax.setConstraint("no empty");
txtTiempoMin.setConstraint("no empty"); txtTiempoMin.setConstraint("no empty");
txtDescricao.setConstraint("no empty"); txtDescricao.setConstraint("no empty");
@ -135,9 +135,6 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer {
txtDescricao.setValue(conexionRutaConf.getDescricao()); txtDescricao.setValue(conexionRutaConf.getDescricao());
txtTiempoMin.setValue(conexionRutaConf.getTiempoMin()); txtTiempoMin.setValue(conexionRutaConf.getTiempoMin());
txtTiempoMax.setValue(conexionRutaConf.getTiempoMax()); txtTiempoMax.setValue(conexionRutaConf.getTiempoMax());
List<Ruta> lsRutaA = new ArrayList<Ruta>();
List<Ruta> lsRutaB = new ArrayList<Ruta>();
List<Ruta> lsRutaC = new ArrayList<Ruta>();
for (ConexionRutaExcepcionPtoVta conexionRutaExcepcionPtoVta : conexionRutaRestricaoPtoVtaService.buscarPorConexionConf(conexionRutaConf)) { for (ConexionRutaExcepcionPtoVta conexionRutaExcepcionPtoVta : conexionRutaRestricaoPtoVtaService.buscarPorConexionConf(conexionRutaConf)) {
listPuntoVenta.addItemNovo(conexionRutaExcepcionPtoVta.getPuntoVenta()); listPuntoVenta.addItemNovo(conexionRutaExcepcionPtoVta.getPuntoVenta());
@ -146,26 +143,24 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer {
for (ConexionRutaExcepcionTipoPtoVta conexionRutaExcepcionTipoPtoVta: conexionRutaExcepcionTipoPtoVtaService.buscarPorConexionConf(conexionRutaConf)) { for (ConexionRutaExcepcionTipoPtoVta conexionRutaExcepcionTipoPtoVta: conexionRutaExcepcionTipoPtoVtaService.buscarPorConexionConf(conexionRutaConf)) {
listEspCanal.addItemNovo(conexionRutaExcepcionTipoPtoVta.getTipoPtovta()); listEspCanal.addItemNovo(conexionRutaExcepcionTipoPtoVta.getTipoPtovta());
} }
List<List<Ruta>> rutas = conexionRutaConfService.buscarRutasPorConexionConf(conexionRutaConf.getConexionRutaConfId());
List<Ruta> lsRutaA = rutas.get(0);
List<Ruta> lsRutaB = rutas.get(1);
List<Ruta> lsRutaC = rutas.get(2);
List<ConexionRutaCtrl> lsConexionRutaCtrl = conexionRutaCtrlService.buscarPorConexionConf(conexionRutaConf); lsParadasOrigemA.addAll(conexionRutaTramoCtrlService.buscarLocalidadesOrigem(conexionRutaConf.getConexionRutaConfId()));
for (ConexionRutaCtrl conexionRutaCtrl : lsConexionRutaCtrl) { lsParadasDestinoB.addAll(conexionRutaTramoCtrlService.buscarLocalidadesDestino(conexionRutaConf.getConexionRutaConfId()));
Ruta ruta = rutaService.obtenerID(conexionRutaCtrl.getRutaOrigenId()); lsParadasDestinoC.addAll(conexionRutaTramoCtrlService.buscarLocalidadesDestinoC(conexionRutaConf.getConexionRutaConfId()));
carregarRuta(lsParadasTodasOrigemA, lsRutaA, ruta);
lsParadasTodasOrigemA.addAll(conexionRutaTramoCtrlService.buscarTodasLocalidadesOrigem(conexionRutaConf.getConexionRutaConfId()));
ruta = rutaService.obtenerID(conexionRutaCtrl.getRutaDestinoId()); lsParadasTodasOrigemA.removeAll(lsParadasOrigemA);
carregarRuta(lsParadasTodasDestinoB, lsRutaB, ruta);
lsParadasTodasDestinoB.addAll(conexionRutaTramoCtrlService.buscarTodasLocalidadesDestino(conexionRutaConf.getConexionRutaConfId()));
if(conexionRutaCtrl.getRutaDestinoCId() != null) { lsParadasTodasDestinoB.removeAll(lsParadasDestinoB);
ruta = rutaService.obtenerID(conexionRutaCtrl.getRutaDestinoCId());
carregarRuta(lsParadasTodasDestinoC, lsRutaC, ruta); lsParadasTodasDestinoC.addAll(conexionRutaTramoCtrlService.buscarTodasLocalidadesDestinoC(conexionRutaConf.getConexionRutaConfId()));
} lsParadasTodasDestinoC.removeAll(lsParadasDestinoC);
lsParadasOrigemA.addAll(conexionRutaTramoCtrlService.buscarLocalidadesOrigem(conexionRutaCtrl));
lsParadasDestinoB.addAll(conexionRutaTramoCtrlService.buscarLocalidadesDestino(conexionRutaCtrl));
lsParadasDestinoC.addAll(conexionRutaTramoCtrlService.buscarLocalidadesDestinoC(conexionRutaCtrl));
}
localidadesLinhaASelecionadaList.setData(new ArrayList<Parada>(lsParadasOrigemA)); localidadesLinhaASelecionadaList.setData(new ArrayList<Parada>(lsParadasOrigemA));
localidadesOrigemlList.setData(new ArrayList<Parada>(lsParadasTodasOrigemA)); localidadesOrigemlList.setData(new ArrayList<Parada>(lsParadasTodasOrigemA));
@ -182,7 +177,7 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer {
rutasBList.setData(lsRutaB); rutasBList.setData(lsRutaB);
rutasCList.setData(lsRutaC); rutasCList.setData(lsRutaC);
gerarCombinacao(); gerarCombinacao(true);
}else{ }else{
btnSalvar.setDisabled(true); btnSalvar.setDisabled(true);
btnApagar.setDisabled(true); btnApagar.setDisabled(true);
@ -242,19 +237,7 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer {
})); }));
resultadoCombinacao.setSelected(false); resultadoCombinacao.setSelected(false);
}
private void carregarRuta(Set<Parada> lsParadasTodas, List<Ruta> lsRuta, Ruta ruta) {
if(!lsRuta.contains(ruta)) {
lsRuta.add(ruta);
for (RutaCombinacion rc : ruta.getRutaCombinacionList()) {
if (rc.getTramo() != null) {
lsParadasTodas.add(rc.getTramo().getOrigem());
lsParadasTodas.add(rc.getTramo().getDestino());
}
}
}
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@ -268,7 +251,7 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer {
conexionRutaConfService.excluirConfiguracao(conexionRutaConf, false); conexionRutaConfService.excluirConfiguracao(conexionRutaConf, false);
} }
gerarCombinacao(); gerarCombinacao(false);
List<ConexionRutaCtrlVO> lsConexionRutaCtrl = ConexionRutaCombinacionFactory.extrairConexionRutaCtrl(localidadesGeradas); List<ConexionRutaCtrlVO> lsConexionRutaCtrl = ConexionRutaCombinacionFactory.extrairConexionRutaCtrl(localidadesGeradas);
boolean itemNovo = false; boolean itemNovo = false;
@ -284,7 +267,8 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer {
List<TipoPuntoVenta> canalVentas = listEspCanal.getListData(); List<TipoPuntoVenta> canalVentas = listEspCanal.getListData();
List<PuntoVenta> puntoVentas = listPuntoVenta.getListData(); List<PuntoVenta> puntoVentas = listPuntoVenta.getListData();
conexionRutaConf = conexionRutaConfService.salvarConfiguracao(conexionRutaConf, canalVentas, puntoVentas, conexoesCtrl, lsConexionRutaCtrl, localidadesGeradas); conexionRutaConf = conexionRutaConfService.salvarConfiguracao(conexionRutaConf, canalVentas, puntoVentas,
conexoesCtrl, lsConexionRutaCtrl, localidadesGeradas);
if(itemNovo) { if(itemNovo) {
conexionRutaConfList.addItemNovo(conexionRutaConf); conexionRutaConfList.addItemNovo(conexionRutaConf);
@ -479,7 +463,7 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer {
return; return;
} }
gerarCombinacao(); gerarCombinacao(false);
} }
private boolean validarItensSalvar() throws InterruptedException { private boolean validarItensSalvar() throws InterruptedException {
@ -838,9 +822,8 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private void gerarCombinacao() { private void gerarCombinacao(boolean carregarGravadas) {
localidadesGeradas = new ArrayList<ParadaVOConexionRuta>(); localidadesGeradas = new ArrayList<ParadaVOConexionRuta>();
conexoesCtrl = new ArrayList<ConexionCtrl>(); conexoesCtrl = new ArrayList<ConexionCtrl>();
@ -852,16 +835,24 @@ public class GerarConexionPorRutaController extends MyGenericForwardComposer {
List<Parada> listParadasC = localidadesLinhaCSelecionadaList.getListData(); List<Parada> listParadasC = localidadesLinhaCSelecionadaList.getListData();
List<ConexionCtrlVO> conexoesCtrlVO = new ArrayList<ConexionCtrlVO>(0); List<ConexionCtrlVO> conexoesCtrlVO = new ArrayList<ConexionCtrlVO>(0);
if(rutasEixoC.isEmpty()) { if(carregarGravadas && conexionRutaConf != null) {
ConexionRutaCombinacionFactory.gerarCombinacionEntre2Eixos(listParada1,rutasEixoA, rutasEixoB, getLsLocalidadesComuns(), listParada4, rutasEixoA, rutasEixoB, localidadesGeradas, conexoesCtrlVO ); ConexionRutaConfVO conexionRutaConfVO = conexionRutaConfService.carregarConexoesCadastradas(conexionRutaConf.getConexionRutaConfId());
}else { localidadesGeradas = new ArrayList<ParadaVOConexionRuta>(conexionRutaConfVO.getLocalidadesCombinadas());
ConexionRutaCombinacionFactory.gerarCombinacionEntre3Eixos(listParada1,rutasEixoA, rutasEixoB, getLsLocalidadesComuns(), listParada4,listParadasC, rutasEixoA, rutasEixoB,rutasEixoC,localidadesGeradas, conexoesCtrlVO ); Collections.sort(localidadesGeradas, new OrdenarLocalidadesGeradas());
conexoesCtrl = new ArrayList<ConexionCtrl>(conexionRutaConfVO.getListConexionCtrl());
} else {
if(rutasEixoC.isEmpty()) {
ConexionRutaCombinacionFactory.gerarCombinacionEntre2Eixos(listParada1,rutasEixoA, rutasEixoB, getLsLocalidadesComuns(), listParada4, rutasEixoA, rutasEixoB, localidadesGeradas, conexoesCtrlVO );
}else {
ConexionRutaCombinacionFactory.gerarCombinacionEntre3Eixos(listParada1,rutasEixoA, rutasEixoB, getLsLocalidadesComuns(), listParada4,listParadasC, rutasEixoA, rutasEixoB,rutasEixoC,localidadesGeradas, conexoesCtrlVO );
}
for (ConexionCtrlVO conexionCtrlVO : conexoesCtrlVO) {
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); localidadesCombinadasList.setData(localidadesGeradas);
localidadesCombinadasList.setItemRenderer(new RenderGeracaoConexionPorRuta()); localidadesCombinadasList.setItemRenderer(new RenderGeracaoConexionPorRuta());