0022643: AguiaBranca - GLPI - 39235 - [QAS] - ADM - PROCESSAMENTO DA COMBINAÇÃO DE TRECHO

bug#22643
dev:wilian
qua:

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@107496 d1611594-4594-4d17-8e1d-87c2c4800839
master
valdir 2021-06-24 15:04:22 +00:00
parent ec865398a9
commit e1adfc1bb4
5 changed files with 59 additions and 10 deletions

View File

@ -22,6 +22,7 @@ import com.rjconsultores.ventaboletos.vo.tarifa.TarifaOficialEscalaGroupVO;
import com.rjconsultores.ventaboletos.vo.tarifa.TarifaOficialEscalaVO;
import java.util.List;
import java.util.Set;
/**
*
@ -84,4 +85,6 @@ public interface RutaCombinacionDAO extends GenericDAO<RutaCombinacion, Integer>
public boolean existeTramo(Tramo tramo, ClaseServicio claseServicio);
boolean isRutaCombinacionVenda(Integer rutaId, Integer origenId, Integer destinoId);
public Set<String> rutasCombinacionVenda(List<Ruta> rutas);
}

View File

@ -6,7 +6,9 @@ package com.rjconsultores.ventaboletos.dao.hibernate;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.hibernate.Criteria;
import org.hibernate.Query;
@ -868,4 +870,34 @@ public class RutaCombinacionHibernateDAO extends GenericHibernateDAO<RutaCombina
return !qr.list().isEmpty();
}
@SuppressWarnings("unchecked")
@Override
public Set<String> rutasCombinacionVenda(List<Ruta> rutas) {
if(rutas == null || rutas.isEmpty()) {
return new HashSet<String>();
}
List<Integer> rutasIN = new ArrayList<Integer>();
for(Ruta r : rutas) {
rutasIN.add(r.getRutaId());
}
StringBuilder sQuery = new StringBuilder();
sQuery.append("select rc.ruta_id || '-' || t.origen_id || '-' || t.destino_id ")
.append("from ruta_combinacion rc ")
.append("join tramo t on t.tramo_id = rc.tramo_id ")
.append("where rc.activo = 1 ")
.append("and rc.indventa = 1 ")
.append("and t.activo = 1 ")
.append("and rc.ruta_id in (:rutas) ");
Query qr = getSession().createSQLQuery(sQuery.toString());
qr.setParameterList("rutas", rutasIN);
List<String> lista = qr.list();
return new HashSet<String>(lista);
}
}

View File

@ -19,6 +19,7 @@ import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@ -72,4 +73,6 @@ public interface RutaCombinacionService extends GenericService<RutaCombinacion,
public boolean existeTramo(Tramo tramo);
public boolean isRutaCombinacionVenda(Integer rutaId, Integer origenId, Integer destinoId);
Set<String> rutasCombinacionVenda(List<Ruta> rutas);
}

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@ -55,18 +56,22 @@ public class ConexionRutaCombinacionServiceImpl implements ConexionRutaCombinaci
combinacoes = novasCombinacoes;
}
//System.out.println(combinacoes);
Set<String> rutasVendaA = rutaCombinacionService.rutasCombinacionVenda(rutasEixoA);
Set<String> rutasVendaB = rutaCombinacionService.rutasCombinacionVenda(rutasEixoB);
if(rutasEixoC == null) {
gerarLocalidadesEixoAB(rutasEixoA, rutasEixoB, localidadesGeradas, combinacoes, conexoesCtrl, cacheLocalidades);
gerarLocalidadesEixoAB(rutasEixoA, rutasEixoB, localidadesGeradas, combinacoes, conexoesCtrl, cacheLocalidades, rutasVendaA, rutasVendaB);
}else {
gerarLocalidadesEixoABC(rutasEixoA, rutasEixoB,rutasEixoC, localidadesGeradas, combinacoes, conexoesCtrl, cacheLocalidades);
Set<String> rutasVendaC = rutaCombinacionService.rutasCombinacionVenda(rutasEixoC);
gerarLocalidadesEixoABC(rutasEixoA, rutasEixoB,rutasEixoC, localidadesGeradas, combinacoes, conexoesCtrl, cacheLocalidades, rutasVendaA, rutasVendaB, rutasVendaC );
}
Collections.sort(localidadesGeradas, new OrdenarLocalidadesGeradas());
}
private void gerarLocalidadesEixoAB(List<Ruta> rutasEixoA, List<Ruta> rutasEixoB, List<ParadaVOConexionRuta> localidadesGeradas, Set<String> combinacoes, List<ConexionCtrlVO> conexoesCtrl, Map<Integer, Parada> cacheLocalidades) {
private void gerarLocalidadesEixoAB(List<Ruta> rutasEixoA, List<Ruta> rutasEixoB, List<ParadaVOConexionRuta> localidadesGeradas, Set<String> combinacoes, List<ConexionCtrlVO> conexoesCtrl, Map<Integer, Parada> cacheLocalidades, Set<String> rutasVendaA, Set<String> rutasVendaB) {
short i = 1;
String[] valoresCalculados;
@ -95,7 +100,7 @@ public class ConexionRutaCombinacionServiceImpl implements ConexionRutaCombinaci
conexionCtrl, conexionRutaCtrl, rutaEixoB.getDescSentido());
i++;
adicionarLocalidadeGerada(conexionCtrl, localidadesGeradas, trechoA, trechoB, null);
adicionarLocalidadeGerada(conexionCtrl, localidadesGeradas, trechoA, trechoB, null, rutasVendaA, rutasVendaB, new HashSet<String>());
i = 1;
}
@ -141,22 +146,22 @@ public class ConexionRutaCombinacionServiceImpl implements ConexionRutaCombinaci
}
private void adicionarLocalidadeGerada(ConexionCtrlVO conexionCtrl, List<ParadaVOConexionRuta> localidadesGeradas, ParadaVOConexionRuta trechoA, ParadaVOConexionRuta trechoB, ParadaVOConexionRuta trechoC) {
private void adicionarLocalidadeGerada(ConexionCtrlVO conexionCtrl, List<ParadaVOConexionRuta> localidadesGeradas, ParadaVOConexionRuta trechoA, ParadaVOConexionRuta trechoB, ParadaVOConexionRuta trechoC, Set<String> rutasVendaA, Set<String> rutasVendaB, Set<String> rutasVendaC) {
boolean isTrechoAVende = false;
boolean isTrechoBVende = false;
if(isDadosNotNull(trechoA)) {
isTrechoAVende = rutaCombinacionService.isRutaCombinacionVenda(trechoA.getRutaId(), trechoA.getParadaOrigem().getParadaId(), trechoA.getParadaDestino().getParadaId());
isTrechoAVende = rutasVendaA == null ? false : rutasVendaA.contains(trechoA.getRutaId() + "-" + trechoA.getParadaOrigem().getParadaId() + "-" + trechoA.getParadaDestino().getParadaId());
}
if(isDadosNotNull(trechoB)) {
isTrechoBVende = rutaCombinacionService.isRutaCombinacionVenda(trechoB.getRutaId(), trechoB.getParadaOrigem().getParadaId(), trechoB.getParadaDestino().getParadaId());
isTrechoBVende = rutasVendaB == null ? false : rutasVendaB.contains(trechoB.getRutaId() + "-" + trechoB.getParadaOrigem().getParadaId() + "-" + trechoB.getParadaDestino().getParadaId());
}
boolean isTrechoCVende = true;
if(trechoC != null) {
if(isDadosNotNull(trechoC)) {
isTrechoCVende = rutaCombinacionService.isRutaCombinacionVenda(trechoC.getRutaId(), trechoC.getParadaOrigem().getParadaId(), trechoC.getParadaDestino().getParadaId());
isTrechoCVende = rutasVendaC == null ? false : rutasVendaC.contains(trechoC.getRutaId() + "-" + trechoC.getParadaOrigem().getParadaId() + "-" + trechoC.getParadaDestino().getParadaId());
} else {
isTrechoCVende = false;
}
@ -174,7 +179,7 @@ public class ConexionRutaCombinacionServiceImpl implements ConexionRutaCombinaci
}
}
private void gerarLocalidadesEixoABC(List<Ruta> rutasEixoA, List<Ruta> rutasEixoB, List<Ruta> rutasEixoC, List<ParadaVOConexionRuta> localidadesGeradas, Set<String> combinations, List<ConexionCtrlVO> conexoesCtrl, Map<Integer, Parada> cacheLocalidades) {
private void gerarLocalidadesEixoABC(List<Ruta> rutasEixoA, List<Ruta> rutasEixoB, List<Ruta> rutasEixoC, List<ParadaVOConexionRuta> localidadesGeradas, Set<String> combinations, List<ConexionCtrlVO> conexoesCtrl, Map<Integer, Parada> cacheLocalidades, Set<String> rutasVendaA, Set<String> rutasVendaB, Set<String> rutasVendaC) {
short i = 1;
String[] valoresCalculados = null;
@ -210,7 +215,7 @@ public class ConexionRutaCombinacionServiceImpl implements ConexionRutaCombinaci
conexionCtrl, conexionRutaCtrl, rutaEixoC.getDescSentido());
i++;
adicionarLocalidadeGerada(conexionCtrl, localidadesGeradas, trechoA, trechoB, trechoC);
adicionarLocalidadeGerada(conexionCtrl, localidadesGeradas, trechoA, trechoB, trechoC, rutasVendaA, rutasVendaB, rutasVendaC);
i = 1;
}

View File

@ -29,6 +29,7 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Set;
import org.apache.log4j.Logger;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
@ -445,4 +446,9 @@ public class RutaCombinacionServiceImpl implements RutaCombinacionService {
public boolean isRutaCombinacionVenda(Integer rutaId, Integer origenId, Integer destinoId) {
return rutaCombinacionDAO.isRutaCombinacionVenda(rutaId, origenId, destinoId);
}
@Override
public Set<String> rutasCombinacionVenda(List<Ruta> rutas) {
return rutaCombinacionDAO.rutasCombinacionVenda(rutas);
}
}