Merge com Branch mantis7459

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@58622 d1611594-4594-4d17-8e1d-87c2c4800839
master
eduardo.dicarde 2016-08-01 19:32:24 +00:00
parent c8b5b5b3cb
commit 422acd9b64
6 changed files with 236 additions and 2 deletions

View File

@ -0,0 +1,39 @@
package com.rjconsultores.ventaboletos.entidad;
import java.util.List;
/**
*
* @author Eduardo Classe responsável pela geração das linhas automaticamente identificando origem e destino
*/
public class ParadaSecuenciaCombinacaoLinha {
private ParadaSecuencia origem;
private List<ParadaSecuencia> destinos;
private Via via;
public ParadaSecuencia getOrigem() {
return origem;
}
public void setOrigem(ParadaSecuencia origem) {
this.origem = origem;
}
public List<ParadaSecuencia> getDestinos() {
return destinos;
}
public void setDestinos(List<ParadaSecuencia> destinos) {
this.destinos = destinos;
}
public Via getVia() {
return via;
}
public void setVia(Via via) {
this.via = via;
}
}

View File

@ -9,6 +9,7 @@ import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente;
import com.rjconsultores.ventaboletos.entidad.Parada;
import com.rjconsultores.ventaboletos.entidad.ParadaSecuencia;
import com.rjconsultores.ventaboletos.entidad.ParadaSecuenciaCombinacaoLinha;
import com.rjconsultores.ventaboletos.entidad.Ruta;
import com.rjconsultores.ventaboletos.exception.BusinessException;
import com.rjconsultores.ventaboletos.utilerias.RegistroConDependenciaException;
@ -93,4 +94,14 @@ public interface RutaService {
public Integer getNumSecuenciaOrigen(Integer rutaId, Integer origenId);
public Integer getNumSecuenciaDestino(Integer rutaId, Integer destinoId);
/**
* Método verifica na listagem de sequencias quais precisam ser geradas
* @author Eduardo Dicarte
* @param ruta Ruta Ruta
* @param lsParadasSequencia Sequencias
* @param sequenciasInformadas Novas sequencias que foram inseridas pelo usuário
* @return Retorna a coleção de sequencias que precisam ser geradas
*/
public List<ParadaSecuenciaCombinacaoLinha> verificarSeqRutaNaoGerada(Ruta ruta, List<ParadaSecuencia> lsParadasSequencia);
}

View File

@ -42,4 +42,19 @@ public interface TramoRutaService {
* @return
*/
public RutaTramoVO generarRutaRegreso(RutaTramoVO rutaTramoVO);
/**
* Gera combinação na tela de Rutas
* @param rutaTramoVO
* @return
*/
public List<SecuenciaRutaTramoCoeficienteVO> generarCombinacionTrechoRuta(RutaTramoVO rutaTramoVO);
/**
* Gera tramos para uma ruta existente
* @param rutaTramoVO
* @param ruta Ruta para qual serão criados os tramos
* @throws BusinessException
*/
public void generarTramosRutaExistente(RutaTramoVO rutaTramoVO, Ruta ruta) throws BusinessException;
}

View File

@ -26,6 +26,7 @@ import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente;
import com.rjconsultores.ventaboletos.entidad.Parada;
import com.rjconsultores.ventaboletos.entidad.ParadaSecuencia;
import com.rjconsultores.ventaboletos.entidad.ParadaSecuenciaCombinacaoLinha;
import com.rjconsultores.ventaboletos.entidad.Ruta;
import com.rjconsultores.ventaboletos.entidad.RutaCombinacion;
import com.rjconsultores.ventaboletos.entidad.RutaEmpresa;
@ -363,4 +364,45 @@ public class RutaServiceImpl implements RutaService {
public Integer getNumSecuenciaDestino(Integer rutaId, Integer destinoId){
return obtenerID(rutaId).numSecuenciaDestino(destinoId);
}
@Override
public List<ParadaSecuenciaCombinacaoLinha> verificarSeqRutaNaoGerada(Ruta ruta, List<ParadaSecuencia> lsParadasSecuencia) {
List<ParadaSecuenciaCombinacaoLinha> sequencias = null;
if (lsParadasSecuencia != null) {
ClaseServicio claseServicio = ruta.getClaseServicio();
sequencias = new ArrayList<ParadaSecuenciaCombinacaoLinha>();
for (ParadaSecuencia sequenciaInformada : lsParadasSecuencia) {
Parada origem = sequenciaInformada.getParada();
Via via = sequenciaInformada.getVia();
ParadaSecuenciaCombinacaoLinha paradaSecuenciaCombinacaoLinha = new ParadaSecuenciaCombinacaoLinha();
paradaSecuenciaCombinacaoLinha.setOrigem(sequenciaInformada);
paradaSecuenciaCombinacaoLinha.setVia(via);
paradaSecuenciaCombinacaoLinha.setDestinos(new ArrayList<ParadaSecuencia>());
for (ParadaSecuencia sequenciaExistente : lsParadasSecuencia) {
if (sequenciaInformada.getParada().getParadaId() == sequenciaExistente.getParada().getParadaId()) {
continue;
}
Parada destino = sequenciaExistente.getParada();
Tramo tramo = tramoService.obtenerTramoUnicoRuta(origem, destino, via, claseServicio);
if (tramo == null) {
paradaSecuenciaCombinacaoLinha.getDestinos().add(sequenciaExistente);
}
}
if (!paradaSecuenciaCombinacaoLinha.getDestinos().isEmpty()) {
sequencias.add(paradaSecuenciaCombinacaoLinha);
}
}
}
return sequencias;
}
}

View File

@ -11,6 +11,8 @@ import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.zkoss.util.resource.Labels;
import org.zkoss.zhtml.Messagebox;
import com.rjconsultores.ventaboletos.dao.OrgaoTramoDAO;
import com.rjconsultores.ventaboletos.dao.RutaDAO;
@ -21,6 +23,8 @@ import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente;
import com.rjconsultores.ventaboletos.entidad.OrgaoTramo;
import com.rjconsultores.ventaboletos.entidad.Parada;
import com.rjconsultores.ventaboletos.entidad.ParadaSecuencia;
import com.rjconsultores.ventaboletos.entidad.ParadaSecuenciaCombinacaoLinha;
import com.rjconsultores.ventaboletos.entidad.Ruta;
import com.rjconsultores.ventaboletos.entidad.RutaCombinacion;
import com.rjconsultores.ventaboletos.entidad.RutaEmpresa;
@ -288,6 +292,8 @@ public class TramoRutaServiceImpl implements TramoRutaService {
@Override
public List<SecuenciaRutaTramoCoeficienteVO> generarCombinacion(RutaTramoVO rutaTramoVO) {
// una nueva lista que va a ser ordenada. Con eso, no afecta la lista original
rutaTramoVO.getLsCombinacionRutaTramoVO();
List<SecuenciaRutaTramoVO> lsSecuenciaRutaTramoVO = new ArrayList<SecuenciaRutaTramoVO>(rutaTramoVO.getLsSecuenciaRutaTramoVO());
List<SecuenciaRutaTramoCoeficienteVO> lsSecuenciaCombinacionRutaTramoVO = new ArrayList<SecuenciaRutaTramoCoeficienteVO>();
@ -389,6 +395,37 @@ public class TramoRutaServiceImpl implements TramoRutaService {
return lsSecuenciaCombinacionRutaTramoVO;
}
@Override
public List<SecuenciaRutaTramoCoeficienteVO> generarCombinacionTrechoRuta(RutaTramoVO rutaTramoVO) {
// una nueva lista que va a ser ordenada. Con eso, no afecta la lista original
List<SecuenciaRutaTramoCoeficienteVO> lsSecuenciaCombinacionRutaTramoVO = new ArrayList<SecuenciaRutaTramoCoeficienteVO>();
for (ParadaSecuenciaCombinacaoLinha secuencia: rutaTramoVO.getLsParadaSecuenciaCombinacaoLinhas()){
Parada origem = secuencia.getOrigem().getParada();
Via via = secuencia.getVia();
BigDecimal kmReal = new BigDecimal(secuencia.getOrigem().getKmReal() != null && !secuencia.getOrigem().getKmReal().isEmpty() ? secuencia.getOrigem().getKmReal() : "0");
for (ParadaSecuencia secuenciaDestino: secuencia.getDestinos()){
Parada destino = secuenciaDestino.getParada();
SecuenciaRutaTramoCoeficienteVO nuevaSecuencia = new SecuenciaRutaTramoCoeficienteVO(origem, destino, via,
secuencia.getOrigem().getSecuencia().intValue(), kmReal, new HoraSistema(), rutaTramoVO.getNumRuta());
if (nuevaSecuencia.getKmCoeficiente1() == null) {
nuevaSecuencia.setKmCoeficiente1(nuevaSecuencia.getKmReal());
}
nuevaSecuencia.setNumRuta(rutaTramoVO.getNumRuta());
lsSecuenciaCombinacionRutaTramoVO.add(nuevaSecuencia);
}
}
return lsSecuenciaCombinacionRutaTramoVO;
}
/**
* Genera los datos de tramo, tramo tiempo e coeficiente tarifa sino existen los datos
*
@ -448,4 +485,86 @@ public class TramoRutaServiceImpl implements TramoRutaService {
return false;
}
@Transactional(rollbackFor = BusinessException.class)
@Override
public void generarTramosRutaExistente(RutaTramoVO rutaTramoVO, Ruta ruta) throws BusinessException {
this.validarGenerarTramosRutas(rutaTramoVO);
// Genero los tramos y tramos servicios de la combinacion que no existen
// Aqui si genera tambien los tramos de la secuencia
for (SecuenciaRutaTramoCoeficienteVO s : rutaTramoVO.getLsCombinacionRutaTramoVO()) {
log.debug("Origen:" + s.getOrigen() + ";Destino:" + s.getDestino() + ";Via:" + s.getVia());
boolean fueGenerado = generarDatos(s, rutaTramoVO.getClaseServicio(), rutaTramoVO.getOrgaoConcedente());
log.debug("Fue Generado:" + fueGenerado);
}
/*// Genero la ruta
Ruta ruta = new Ruta();
ruta.setDescruta(rutaTramoVO.getDescRuta());
ruta.setRutaId(rutaTr);
ruta.setClaseServicio(rutaTramoVO.getClaseServicio());
ruta.setOrgaoConcedente(rutaTramoVO.getOrgaoConcedente());
ruta.setIndNombreObligatorio(rutaTramoVO.getSolicitaNombrePasajero());
ruta.setIndSentidoIda(rutaTramoVO.getIndSentidoIda());
if (rutaTramoVO.getVentaHandHeld() == null) {
ruta.setVentaOffLine(false);
} else {
ruta.setVentaOffLine(rutaTramoVO.getVentaHandHeld());
}
ruta.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
ruta.setActivo(Boolean.TRUE);
ruta.setFecmodif(new java.util.Date());
ruta.setPrefixo(rutaTramoVO.getPrefixo());
ruta.setNumRuta(rutaTramoVO.getNumRuta());
//valores de tributação para ecf
ruta.setIndTribPedagio(Boolean.FALSE);
ruta.setIndTribTarifa(Boolean.TRUE);
ruta.setIndTribTaxaEmbarque(Boolean.FALSE);
ruta = rutaDAO.suscribir(ruta);*/
// Genero la secuencia de la ruta
for (SecuenciaRutaTramoVO s : rutaTramoVO.getLsSecuenciaRutaTramoVO()) {
RutaSecuencia rutaSecuencia = new RutaSecuencia();
rutaSecuencia.setNumsecuencia(s.getSecuencia().shortValue());
rutaSecuencia.setTramo(tramoService.obtenerTramotPorOrigemDestinoVia(s.getOrigen(), s.getDestino(), s.getVia()));
rutaSecuencia.setRuta(ruta);
rutaSecuencia = rutaSecuenciaService.suscribir(rutaSecuencia);
if (rutaSecuencia.getRutasecuenciaId() == null){
throw new BusinessException(Labels.getLabel("gerarCombinacionTramoRutaController.MSG.error.rutaSecuencia"));
}
}
for (SecuenciaRutaTramoCoeficienteVO s : rutaTramoVO.getLsCombinacionRutaTramoVO()) {
RutaCombinacion rutaCombinacion = new RutaCombinacion();
rutaCombinacion.setIndventa(s.getPermiteVenda() == null ? true : s.getPermiteVenda());
rutaCombinacion.setRuta(ruta);
rutaCombinacion.setTramo(tramoService.obtenerTramotPorOrigemDestinoVia(s.getOrigen(), s.getDestino(), s.getVia()));
rutaCombinacion = rutaCombinacionService.suscribir(rutaCombinacion);
if (rutaCombinacion.getRutacombinacionId() == null){
throw new BusinessException(Labels.getLabel("gerarCombinacionTramoRutaController.MSG.error.rutaCombinacion"));
}
}
for (Empresa e : rutaTramoVO.getLsEmpresa()) {
RutaEmpresa rutaEmpresa = new RutaEmpresa();
rutaEmpresa.setEmpresa(e);
rutaEmpresa.setActivo(Boolean.TRUE);
rutaEmpresa.setFecmodif(Calendar.getInstance().getTime());
rutaEmpresa.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
rutaEmpresa.setRuta(ruta);
rutaEmpresa = rutaEmpresaService.suscribir(rutaEmpresa);
if (rutaEmpresa.getRutaEmpresaId() == null){
throw new BusinessException(Labels.getLabel("gerarCombinacionTramoRutaController.MSG.error.rutaEmpresa"));
}
}
}
}

View File

@ -8,6 +8,7 @@ import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
import com.rjconsultores.ventaboletos.entidad.CoeficienteTarifa;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente;
import com.rjconsultores.ventaboletos.entidad.ParadaSecuenciaCombinacaoLinha;
public class RutaTramoVO {
@ -24,6 +25,7 @@ public class RutaTramoVO {
private String descRuta;
private Boolean indSentidoIda;
private String numRuta;
private List<ParadaSecuenciaCombinacaoLinha> lsParadaSecuenciaCombinacaoLinhas;
public RutaTramoVO() {
lsSecuenciaRutaTramoVO = new ArrayList<SecuenciaRutaTramoVO>();
@ -146,5 +148,11 @@ public class RutaTramoVO {
this.coeficienteDefaul2 = coeficienteDefaul2;
}
public List<ParadaSecuenciaCombinacaoLinha> getLsParadaSecuenciaCombinacaoLinhas() {
return lsParadaSecuenciaCombinacaoLinhas;
}
public void setLsParadaSecuenciaCombinacaoLinhas(List<ParadaSecuenciaCombinacaoLinha> lsParadaSecuenciaCombinacaoLinhas) {
this.lsParadaSecuenciaCombinacaoLinhas = lsParadaSecuenciaCombinacaoLinhas;
}
}