|
|
|
@ -157,37 +157,23 @@ public class TramoRutaServiceImpl implements TramoRutaService {
|
|
|
|
|
|
|
|
|
|
ruta = rutaDAO.suscribir(ruta);
|
|
|
|
|
|
|
|
|
|
Map<Parada, BigDecimal> kmEntradaSaida = rutaTramoVO.getParadasComKmEntradaSaida();
|
|
|
|
|
|
|
|
|
|
// 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.setCantKmEntradaSaida(s.getKmEntradaSaida());
|
|
|
|
|
rutaSecuencia.setKmOriginal(s.getKmReal().subtract(s.getKmEntradaSaida()));
|
|
|
|
|
BigDecimal KmESOrigem = BigDecimal.ZERO;
|
|
|
|
|
BigDecimal KmESDestino = BigDecimal.ZERO;
|
|
|
|
|
rutaSecuencia.setKmOriginal(s.getKmOriginal());
|
|
|
|
|
|
|
|
|
|
if (kmEntradaSaida.containsKey(s.getOrigen())){
|
|
|
|
|
KmESOrigem = kmEntradaSaida.get(s.getOrigen());
|
|
|
|
|
}
|
|
|
|
|
if (kmEntradaSaida.containsKey(s.getDestino())){
|
|
|
|
|
KmESDestino = kmEntradaSaida.get(s.getDestino());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(rutaSecuencia.getTramo() == null ){
|
|
|
|
|
Tramo tramo = new Tramo();
|
|
|
|
|
tramo.setDesctramo(tramoService.gerarDescripcionTramo(s.getOrigen(), s.getDestino(), s.getVia()));
|
|
|
|
|
tramo.setOrigem(s.getOrigen());
|
|
|
|
|
tramo.setDestino(s.getDestino());
|
|
|
|
|
tramo.setKmReal(s.getKmReal().add(KmESOrigem).add(KmESDestino));
|
|
|
|
|
if (KmESOrigem.compareTo(BigDecimal.ZERO) == 1){
|
|
|
|
|
tramo.setKmEntradaSaida(KmESOrigem);
|
|
|
|
|
}
|
|
|
|
|
if (KmESDestino.compareTo(BigDecimal.ZERO) == 1){
|
|
|
|
|
tramo.setKmEntradaSaidaDestino(KmESDestino);
|
|
|
|
|
}
|
|
|
|
|
tramo.setKmReal(s.getKmReal());
|
|
|
|
|
tramo.setKmEntradaSaida(s.getKmSaidaOrigen());
|
|
|
|
|
tramo.setKmEntradaSaidaDestino(s.getKmEntradaDestino());
|
|
|
|
|
tramo.setVia(s.getVia());
|
|
|
|
|
tramo.setActivo(Boolean.TRUE);
|
|
|
|
|
tramo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
|
|
|
@ -197,8 +183,8 @@ public class TramoRutaServiceImpl implements TramoRutaService {
|
|
|
|
|
rutaSecuencia.setTramo(tramo);
|
|
|
|
|
} else {
|
|
|
|
|
Tramo tramo = rutaSecuencia.getTramo();
|
|
|
|
|
tramo.setKmEntradaSaida(KmESOrigem);
|
|
|
|
|
tramo.setKmEntradaSaidaDestino(KmESDestino);;
|
|
|
|
|
tramo.setKmEntradaSaida(s.getKmSaidaOrigen());
|
|
|
|
|
tramo.setKmEntradaSaidaDestino(s.getKmEntradaDestino());
|
|
|
|
|
tramo = tramoDAO.actualizacion(tramo);
|
|
|
|
|
}
|
|
|
|
|
rutaSecuencia.setRuta(ruta);
|
|
|
|
@ -253,13 +239,7 @@ public class TramoRutaServiceImpl implements TramoRutaService {
|
|
|
|
|
List<SecuenciaRutaTramoVO> lsSecuenciaRutaTramoRegresoVO = new ArrayList<SecuenciaRutaTramoVO>();
|
|
|
|
|
List<SecuenciaRutaTramoVO> lsSecuenciaRutaTramoIdaVO = new ArrayList<SecuenciaRutaTramoVO>(rutaTramoVO.getLsSecuenciaRutaTramoVO());
|
|
|
|
|
// Reordena a lista
|
|
|
|
|
Collections.sort(lsSecuenciaRutaTramoIdaVO, new Comparator<SecuenciaRutaTramoVO>() {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public int compare(SecuenciaRutaTramoVO o1, SecuenciaRutaTramoVO o2) {
|
|
|
|
|
return o2.getSecuencia().compareTo(o1.getSecuencia());
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
Collections.reverse(lsSecuenciaRutaTramoIdaVO);
|
|
|
|
|
|
|
|
|
|
int secuencia = 0;
|
|
|
|
|
|
|
|
|
@ -297,7 +277,7 @@ public class TramoRutaServiceImpl implements TramoRutaService {
|
|
|
|
|
s.setTramoServicioId(tramoServicio.getTramoservicioId());
|
|
|
|
|
|
|
|
|
|
SecuenciaRutaTramoCoeficienteVO secuenciaRutaTramoCoeficienteVO = new SecuenciaRutaTramoCoeficienteVO(s.getDestino(), s.getOrigen(), s.getVia(), ++secuencia, s.getKmReal(), s.getTiempoRecorrido(),
|
|
|
|
|
s.getTramoId(), s.getTramoServicioId(), rutaTramoRegresoVO.getNumRuta(), s.getKmEntradaSaida());
|
|
|
|
|
s.getTramoId(), s.getTramoServicioId(), rutaTramoRegresoVO.getNumRuta(), s.getKmSaidaOrigen());
|
|
|
|
|
|
|
|
|
|
OrgaoTramo orgaoTramo = orgaoTramoDAO.buscar(s.getDestino().getParadaId(), s.getOrigen().getParadaId(), s.getVia().getViaId(), rutaTramoVO.getOrgaoConcedente().getOrgaoConcedenteId(), rutaTramoVO.getClaseServicio().getClaseservicioId());
|
|
|
|
|
|
|
|
|
@ -321,7 +301,7 @@ public class TramoRutaServiceImpl implements TramoRutaService {
|
|
|
|
|
secuenciaRutaTramoCoeficienteVO.setPermiteVenda(s.getPermiteVenda());
|
|
|
|
|
lsCombinacionRutaTramoRegresoVO.add(secuenciaRutaTramoCoeficienteVO);
|
|
|
|
|
} else {
|
|
|
|
|
SecuenciaRutaTramoCoeficienteVO secuenciaRutaTramoCoeficienteVO = new SecuenciaRutaTramoCoeficienteVO(s.getDestino(), s.getOrigen(), s.getVia(), ++secuencia, s.getKmReal(), s.getTiempoRecorrido(), rutaTramoRegresoVO.getNumRuta(), s.getKmEntradaSaida());
|
|
|
|
|
SecuenciaRutaTramoCoeficienteVO secuenciaRutaTramoCoeficienteVO = new SecuenciaRutaTramoCoeficienteVO(s.getDestino(), s.getOrigen(), s.getVia(), ++secuencia, s.getKmReal(), s.getTiempoRecorrido(), rutaTramoRegresoVO.getNumRuta(), s.getKmSaidaOrigen());
|
|
|
|
|
|
|
|
|
|
secuenciaRutaTramoCoeficienteVO.setCoeficienteTarifa1(s.getCoeficienteTarifa1());
|
|
|
|
|
secuenciaRutaTramoCoeficienteVO.setKmCoeficiente1(s.getKmCoeficiente1());
|
|
|
|
@ -344,133 +324,93 @@ 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>();
|
|
|
|
|
|
|
|
|
|
Collections.sort(lsSecuenciaRutaTramoVO, new Comparator<SecuenciaRutaTramoVO>() {
|
|
|
|
|
Collections.sort(lsSecuenciaRutaTramoVO);
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public int compare(SecuenciaRutaTramoVO o1, SecuenciaRutaTramoVO o2) {
|
|
|
|
|
return o1.getSecuencia().compareTo(o2.getSecuencia());
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
int qtdTramos = lsSecuenciaRutaTramoVO.size();
|
|
|
|
|
int secuencia = 0;
|
|
|
|
|
Map<Parada, BigDecimal> kmEntradaSaida = rutaTramoVO.getParadasComKmEntradaSaida();
|
|
|
|
|
List<SecuenciaRutaTramoVO> listSecuenciaCalculada = new ArrayList<SecuenciaRutaTramoVO>(lsSecuenciaRutaTramoVO);
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < qtdTramos; i++) {
|
|
|
|
|
SecuenciaRutaTramoVO secuenciaInicial = lsSecuenciaRutaTramoVO.get(i);
|
|
|
|
|
for (SecuenciaRutaTramoVO secuenciaInicial : lsSecuenciaRutaTramoVO) {
|
|
|
|
|
Parada origen = secuenciaInicial.getOrigen();
|
|
|
|
|
Parada destino = secuenciaInicial.getDestino();
|
|
|
|
|
|
|
|
|
|
listSecuenciaCalculada.remove(secuenciaInicial);
|
|
|
|
|
|
|
|
|
|
BigDecimal totalKmsReal = secuenciaInicial.getKmReal();
|
|
|
|
|
if (kmEntradaSaida.containsKey(origen)){
|
|
|
|
|
totalKmsReal = totalKmsReal.add(kmEntradaSaida.get(origen));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
totalKmsReal = totalKmsReal.add(secuenciaInicial.getKmSaidaOrigen().add(secuenciaInicial.getKmEntradaDestino()));
|
|
|
|
|
|
|
|
|
|
HoraSistema totalTiempoRecorrido = secuenciaInicial.getTiempoRecorrido();
|
|
|
|
|
|
|
|
|
|
int j = i + 1;
|
|
|
|
|
for (; j < (qtdTramos); j++) {
|
|
|
|
|
Parada destino = lsSecuenciaRutaTramoVO.get(j).getOrigen();
|
|
|
|
|
|
|
|
|
|
if (kmEntradaSaida.containsKey(destino)){
|
|
|
|
|
totalKmsReal = totalKmsReal.add(kmEntradaSaida.get(destino));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Via via = secuenciaInicial.getVia();
|
|
|
|
|
|
|
|
|
|
SecuenciaRutaTramoCoeficienteVO nuevaSecuencia = new SecuenciaRutaTramoCoeficienteVO(origen, destino, via, ++secuencia,
|
|
|
|
|
totalKmsReal, totalTiempoRecorrido, rutaTramoVO.getNumRuta());
|
|
|
|
|
secuencia = criaSecuenciaRutaTramoCoeficienteVO(rutaTramoVO, lsSecuenciaCombinacionRutaTramoVO, secuencia, totalKmsReal, origen, destino, secuenciaInicial.getKmSaidaOrigen(), secuenciaInicial.getKmEntradaDestino(), totalTiempoRecorrido, via);
|
|
|
|
|
totalKmsReal = totalKmsReal.subtract(secuenciaInicial.getKmEntradaDestino());
|
|
|
|
|
|
|
|
|
|
if (via != null) {
|
|
|
|
|
TramoServicio tramoServicio = tramoServicioService.buscar(origen, destino, via, rutaTramoVO.getClaseServicio());
|
|
|
|
|
if (tramoServicio != null) {
|
|
|
|
|
log.debug("TRAMO EXISTE");
|
|
|
|
|
for (SecuenciaRutaTramoVO secuenciaInterna : listSecuenciaCalculada) {
|
|
|
|
|
destino = secuenciaInterna.getDestino();
|
|
|
|
|
totalKmsReal = totalKmsReal.add(secuenciaInterna.getKmReal());
|
|
|
|
|
totalKmsReal = totalKmsReal.add(secuenciaInterna.getKmEntradaDestino());
|
|
|
|
|
totalTiempoRecorrido = totalTiempoRecorrido.sumar(secuenciaInterna.getTiempoRecorrido());
|
|
|
|
|
|
|
|
|
|
nuevaSecuencia.setKmReal(tramoServicio.getTramo().getKmReal());
|
|
|
|
|
|
|
|
|
|
nuevaSecuencia.setTiempoRecorrido(new HoraSistema(tramoServicio.getTiemporecorrido()));
|
|
|
|
|
nuevaSecuencia.setTramoId(tramoServicio.getTramo().getTramoId());
|
|
|
|
|
nuevaSecuencia.setTramoServicioId(tramoServicio.getTramoservicioId());
|
|
|
|
|
secuencia = criaSecuenciaRutaTramoCoeficienteVO(rutaTramoVO, lsSecuenciaCombinacionRutaTramoVO, secuencia, totalKmsReal, origen, destino, secuenciaInicial.getKmSaidaOrigen(), secuenciaInterna.getKmEntradaDestino(), totalTiempoRecorrido, via);
|
|
|
|
|
totalKmsReal = totalKmsReal.subtract(secuenciaInterna.getKmEntradaDestino());
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
OrgaoTramo orgaoTramo = orgaoTramoDAO.buscar(origen.getParadaId(), destino.getParadaId(), via.getViaId(), rutaTramoVO.getOrgaoConcedente().getOrgaoConcedenteId(), rutaTramoVO.getClaseServicio().getClaseservicioId());
|
|
|
|
|
if (orgaoTramo != null) {
|
|
|
|
|
nuevaSecuencia.setCoeficienteTarifa1(orgaoTramo.getCoeficienteTarifa1());
|
|
|
|
|
nuevaSecuencia.setKmCoeficiente1(orgaoTramo.getKmCoeficiente1());
|
|
|
|
|
nuevaSecuencia.setCoeficienteTarifa2(orgaoTramo.getCoeficienteTarifa2());
|
|
|
|
|
nuevaSecuencia.setKmCoeficiente2(orgaoTramo.getKmCoeficiente2());
|
|
|
|
|
nuevaSecuencia.setCoeficienteTarifa3(orgaoTramo.getCoeficienteTarifa3());
|
|
|
|
|
nuevaSecuencia.setKmCoeficiente3(orgaoTramo.getKmCoeficiente3());
|
|
|
|
|
nuevaSecuencia.setOrgaoTramoId(orgaoTramo.getOrgaoTramoId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
incluirCoeficiente(nuevaSecuencia);
|
|
|
|
|
|
|
|
|
|
nuevaSecuencia.setKmEntradaSaida(kmEntradaSaida.get(destino));
|
|
|
|
|
lsSecuenciaCombinacionRutaTramoVO.add(nuevaSecuencia);
|
|
|
|
|
|
|
|
|
|
// se somou o kmEntradaSaida tem que tirar agora para o novo trecho ser calculado corretamente.
|
|
|
|
|
if (kmEntradaSaida.containsKey(destino)){
|
|
|
|
|
totalKmsReal = totalKmsReal.subtract(kmEntradaSaida.get(destino)).add(lsSecuenciaRutaTramoVO.get(j).getKmReal());
|
|
|
|
|
} else {
|
|
|
|
|
totalKmsReal = totalKmsReal.add(lsSecuenciaRutaTramoVO.get(j).getKmReal());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
totalTiempoRecorrido = totalTiempoRecorrido.sumar(lsSecuenciaRutaTramoVO.get(j).getTiempoRecorrido());
|
|
|
|
|
|
|
|
|
|
log.debug("Origen:" + nuevaSecuencia.getOrigen() + ";Destino:" + nuevaSecuencia.getDestino() + ";Via:"
|
|
|
|
|
+ nuevaSecuencia.getVia() + ";KmsReal:" + nuevaSecuencia.getKmReal() + ";hora:" + nuevaSecuencia.getTiempoRecorrido());
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Parada destino = lsSecuenciaRutaTramoVO.get(qtdTramos - 1).getDestino();
|
|
|
|
|
if (kmEntradaSaida.containsKey(destino)){
|
|
|
|
|
totalKmsReal = totalKmsReal.add(kmEntradaSaida.get(destino));
|
|
|
|
|
}
|
|
|
|
|
Via via = secuenciaInicial.getVia();
|
|
|
|
|
|
|
|
|
|
SecuenciaRutaTramoCoeficienteVO nuevaSecuencia = new SecuenciaRutaTramoCoeficienteVO(origen, destino, via, ++secuencia,
|
|
|
|
|
totalKmsReal, totalTiempoRecorrido, rutaTramoVO.getNumRuta());
|
|
|
|
|
if (via != null) {
|
|
|
|
|
TramoServicio tramoServicio = tramoServicioService.buscar(origen, destino, via, rutaTramoVO.getClaseServicio());
|
|
|
|
|
if (tramoServicio != null) {
|
|
|
|
|
log.debug("TRAMO EXISTE");
|
|
|
|
|
|
|
|
|
|
nuevaSecuencia.setKmReal(tramoServicio.getTramo().getKmReal());
|
|
|
|
|
|
|
|
|
|
nuevaSecuencia.setTiempoRecorrido(new HoraSistema(tramoServicio.getTiemporecorrido()));
|
|
|
|
|
nuevaSecuencia.setTramoId(tramoServicio.getTramo().getTramoId());
|
|
|
|
|
nuevaSecuencia.setTramoServicioId(tramoServicio.getTramoservicioId());
|
|
|
|
|
}
|
|
|
|
|
OrgaoTramo orgaoTramo = orgaoTramoDAO.buscar(origen.getParadaId(), destino.getParadaId(), via.getViaId(), rutaTramoVO.getOrgaoConcedente().getOrgaoConcedenteId(), rutaTramoVO.getClaseServicio().getClaseservicioId());
|
|
|
|
|
if (orgaoTramo != null) {
|
|
|
|
|
nuevaSecuencia.setCoeficienteTarifa1(orgaoTramo.getCoeficienteTarifa1());
|
|
|
|
|
nuevaSecuencia.setKmCoeficiente1(orgaoTramo.getKmCoeficiente1());
|
|
|
|
|
nuevaSecuencia.setCoeficienteTarifa2(orgaoTramo.getCoeficienteTarifa2());
|
|
|
|
|
nuevaSecuencia.setKmCoeficiente2(orgaoTramo.getKmCoeficiente2());
|
|
|
|
|
nuevaSecuencia.setCoeficienteTarifa3(orgaoTramo.getCoeficienteTarifa3());
|
|
|
|
|
nuevaSecuencia.setKmCoeficiente3(orgaoTramo.getKmCoeficiente3());
|
|
|
|
|
nuevaSecuencia.setOrgaoTramoId(orgaoTramo.getOrgaoTramoId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
incluirCoeficiente(nuevaSecuencia);
|
|
|
|
|
nuevaSecuencia.setNumRuta(rutaTramoVO.getNumRuta());
|
|
|
|
|
lsSecuenciaCombinacionRutaTramoVO.add(nuevaSecuencia);
|
|
|
|
|
log.debug("Origen:" + nuevaSecuencia.getOrigen() + ";Destino:" + nuevaSecuencia.getDestino() + ";Via:"
|
|
|
|
|
+ nuevaSecuencia.getVia() + ";KmsReal:" + nuevaSecuencia.getKmReal() + ";hora:" + nuevaSecuencia.getTiempoRecorrido());
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return lsSecuenciaCombinacionRutaTramoVO;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private int criaSecuenciaRutaTramoCoeficienteVO(RutaTramoVO rutaTramoVO, List<SecuenciaRutaTramoCoeficienteVO> lsSecuenciaCombinacionRutaTramoVO, int secuencia, BigDecimal totalKmsReal, Parada origen, Parada destino, BigDecimal kmSaidaOrigen, BigDecimal kmEntradaDestino, HoraSistema totalTiempoRecorrido, Via via) {
|
|
|
|
|
SecuenciaRutaTramoCoeficienteVO nuevaSecuencia = new SecuenciaRutaTramoCoeficienteVO(origen, destino, via, ++secuencia,
|
|
|
|
|
totalKmsReal, totalTiempoRecorrido, rutaTramoVO.getNumRuta());
|
|
|
|
|
|
|
|
|
|
atualizandoSecuenciaPorViaExistente(rutaTramoVO, origen, destino, via, nuevaSecuencia);
|
|
|
|
|
|
|
|
|
|
nuevaSecuencia.setKmSaidaOrigen(kmSaidaOrigen);
|
|
|
|
|
nuevaSecuencia.setKmEntradaDestino(kmEntradaDestino);
|
|
|
|
|
nuevaSecuencia.setNumRuta(rutaTramoVO.getNumRuta());
|
|
|
|
|
lsSecuenciaCombinacionRutaTramoVO.add(nuevaSecuencia);
|
|
|
|
|
|
|
|
|
|
log.debug("Origen:" + nuevaSecuencia.getOrigen() + ";Destino:" + nuevaSecuencia.getDestino() + ";Via:"
|
|
|
|
|
+ nuevaSecuencia.getVia() + ";KmsReal:" + nuevaSecuencia.getKmReal() + ";hora:" + nuevaSecuencia.getTiempoRecorrido());
|
|
|
|
|
return secuencia;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void atualizandoSecuenciaPorViaExistente(RutaTramoVO rutaTramoVO, Parada origen, Parada destino, Via via, SecuenciaRutaTramoCoeficienteVO nuevaSecuencia) {
|
|
|
|
|
if (via != null) {
|
|
|
|
|
atualizandoSecuenciaPorTramosExistente(rutaTramoVO, origen, destino, via, nuevaSecuencia);
|
|
|
|
|
atualizandoSecuenciaPorOrgaoTramosExistentes(rutaTramoVO, origen, destino, via, nuevaSecuencia);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void atualizandoSecuenciaPorOrgaoTramosExistentes(RutaTramoVO rutaTramoVO, Parada origen, Parada destino, Via via, SecuenciaRutaTramoCoeficienteVO nuevaSecuencia) {
|
|
|
|
|
OrgaoTramo orgaoTramo = orgaoTramoDAO.buscar(origen.getParadaId(), destino.getParadaId(), via.getViaId(), rutaTramoVO.getOrgaoConcedente().getOrgaoConcedenteId(), rutaTramoVO.getClaseServicio().getClaseservicioId());
|
|
|
|
|
if (orgaoTramo != null) {
|
|
|
|
|
nuevaSecuencia.setCoeficienteTarifa1(orgaoTramo.getCoeficienteTarifa1());
|
|
|
|
|
nuevaSecuencia.setKmCoeficiente1(orgaoTramo.getKmCoeficiente1());
|
|
|
|
|
nuevaSecuencia.setCoeficienteTarifa2(orgaoTramo.getCoeficienteTarifa2());
|
|
|
|
|
nuevaSecuencia.setKmCoeficiente2(orgaoTramo.getKmCoeficiente2());
|
|
|
|
|
nuevaSecuencia.setCoeficienteTarifa3(orgaoTramo.getCoeficienteTarifa3());
|
|
|
|
|
nuevaSecuencia.setKmCoeficiente3(orgaoTramo.getKmCoeficiente3());
|
|
|
|
|
nuevaSecuencia.setOrgaoTramoId(orgaoTramo.getOrgaoTramoId());
|
|
|
|
|
}
|
|
|
|
|
incluirCoeficiente(nuevaSecuencia);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void atualizandoSecuenciaPorTramosExistente(RutaTramoVO rutaTramoVO, Parada origen, Parada destino, Via via, SecuenciaRutaTramoCoeficienteVO nuevaSecuencia) {
|
|
|
|
|
TramoServicio tramoServicio = tramoServicioService.buscar(origen, destino, via, rutaTramoVO.getClaseServicio());
|
|
|
|
|
if (tramoServicio != null) {
|
|
|
|
|
nuevaSecuencia.setKmReal(tramoServicio.getTramo().getKmReal());
|
|
|
|
|
nuevaSecuencia.setTiempoRecorrido(new HoraSistema(tramoServicio.getTiemporecorrido()));
|
|
|
|
|
nuevaSecuencia.setTramoId(tramoServicio.getTramo().getTramoId());
|
|
|
|
|
nuevaSecuencia.setTramoServicioId(tramoServicio.getTramoservicioId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void incluirCoeficiente(SecuenciaRutaTramoCoeficienteVO nuevaSecuencia) {
|
|
|
|
|
if (nuevaSecuencia.getKmCoeficiente1() == null) {
|
|
|
|
|
nuevaSecuencia.setKmCoeficiente1(nuevaSecuencia.getKmReal());
|
|
|
|
@ -495,9 +435,9 @@ public class TramoRutaServiceImpl implements TramoRutaService {
|
|
|
|
|
Parada origem = secuencia.getOrigem().getParada();
|
|
|
|
|
Via via = secuencia.getVia();
|
|
|
|
|
|
|
|
|
|
BigDecimal totalKmsReal = new BigDecimal(0);
|
|
|
|
|
BigDecimal totalKmsReal = BigDecimal.ZERO;
|
|
|
|
|
|
|
|
|
|
BigDecimal kmsRealOrigem = secuencia.getKmReal() == null || secuencia.getKmReal().isEmpty() ? new BigDecimal("0.0") :
|
|
|
|
|
BigDecimal kmsRealOrigem = secuencia.getKmReal() == null || secuencia.getKmReal().isEmpty() ? BigDecimal.ZERO :
|
|
|
|
|
new BigDecimal(secuencia.getKmReal());
|
|
|
|
|
|
|
|
|
|
totalKmsReal = totalKmsReal.add(kmsRealOrigem);
|
|
|
|
@ -522,32 +462,8 @@ public class TramoRutaServiceImpl implements TramoRutaService {
|
|
|
|
|
SecuenciaRutaTramoCoeficienteVO nuevaSecuencia = new SecuenciaRutaTramoCoeficienteVO(origem, destino, via,
|
|
|
|
|
secuencia.getOrigem().getSecuencia().intValue(), totalKmsReal, tempoTotalOrigemDestino, rutaTramoVO.getNumRuta());
|
|
|
|
|
|
|
|
|
|
if (via != null) {
|
|
|
|
|
TramoServicio tramoServicio = tramoServicioService.buscar(origem, destino, via, rutaTramoVO.getClaseServicio());
|
|
|
|
|
if (tramoServicio != null) {
|
|
|
|
|
log.debug("TRAMO EXISTE");
|
|
|
|
|
atualizandoSecuenciaPorViaExistente(rutaTramoVO, origem, destino, via, nuevaSecuencia);
|
|
|
|
|
|
|
|
|
|
nuevaSecuencia.setKmReal(tramoServicio.getTramo().getKmReal());
|
|
|
|
|
|
|
|
|
|
nuevaSecuencia.setTiempoRecorrido(new HoraSistema(tramoServicio.getTiemporecorrido()));
|
|
|
|
|
nuevaSecuencia.setTramoId(tramoServicio.getTramo().getTramoId());
|
|
|
|
|
nuevaSecuencia.setTramoServicioId(tramoServicio.getTramoservicioId());
|
|
|
|
|
}
|
|
|
|
|
OrgaoTramo orgaoTramo = orgaoTramoDAO.buscar(origem.getParadaId(), destino.getParadaId(), via.getViaId(), rutaTramoVO.getOrgaoConcedente().getOrgaoConcedenteId(), rutaTramoVO.getClaseServicio().getClaseservicioId());
|
|
|
|
|
if (orgaoTramo != null) {
|
|
|
|
|
nuevaSecuencia.setCoeficienteTarifa1(orgaoTramo.getCoeficienteTarifa1());
|
|
|
|
|
nuevaSecuencia.setKmCoeficiente1(orgaoTramo.getKmCoeficiente1());
|
|
|
|
|
nuevaSecuencia.setCoeficienteTarifa2(orgaoTramo.getCoeficienteTarifa2());
|
|
|
|
|
nuevaSecuencia.setKmCoeficiente2(orgaoTramo.getKmCoeficiente2());
|
|
|
|
|
nuevaSecuencia.setCoeficienteTarifa3(orgaoTramo.getCoeficienteTarifa3());
|
|
|
|
|
nuevaSecuencia.setKmCoeficiente3(orgaoTramo.getKmCoeficiente3());
|
|
|
|
|
nuevaSecuencia.setOrgaoTramoId(orgaoTramo.getOrgaoTramoId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (nuevaSecuencia.getKmCoeficiente1() == null) {
|
|
|
|
|
nuevaSecuencia.setKmCoeficiente1(nuevaSecuencia.getKmReal());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
nuevaSecuencia.setNumRuta(rutaTramoVO.getNumRuta());
|
|
|
|
|
|
|
|
|
@ -581,7 +497,8 @@ public class TramoRutaServiceImpl implements TramoRutaService {
|
|
|
|
|
tramo.setOrigem(secuencia.getOrigen());
|
|
|
|
|
tramo.setDestino(secuencia.getDestino());
|
|
|
|
|
tramo.setKmReal(secuencia.getKmReal());
|
|
|
|
|
tramo.setKmEntradaSaida(secuencia.getKmEntradaSaida() == null ? BigDecimal.ZERO : secuencia.getKmEntradaSaida());
|
|
|
|
|
tramo.setKmEntradaSaida(secuencia.getKmSaidaOrigen() == null ? BigDecimal.ZERO : secuencia.getKmSaidaOrigen());
|
|
|
|
|
tramo.setKmEntradaSaidaDestino(secuencia.getKmEntradaDestino() == null ? BigDecimal.ZERO : secuencia.getKmEntradaDestino());
|
|
|
|
|
tramo.setVia(secuencia.getVia());
|
|
|
|
|
tramo.setActivo(Boolean.TRUE);
|
|
|
|
|
tramo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
|
|
|
@ -704,7 +621,7 @@ public class TramoRutaServiceImpl implements TramoRutaService {
|
|
|
|
|
//calculo da km sempre considerando que o calculo deve ser feito desconsiderando o valor da km,
|
|
|
|
|
//inicializando com o valor da km da origem e incrementando as sequencias anteriores
|
|
|
|
|
private BigDecimal calcularKmDestino(ParadaSecuenciaCombinacaoLinha sequenciaOrigem, int numSeqAtual) {
|
|
|
|
|
BigDecimal kmTotal= sequenciaOrigem.getKmReal() == null || sequenciaOrigem.getKmReal().isEmpty() ? new BigDecimal("0.0") :
|
|
|
|
|
BigDecimal kmTotal= sequenciaOrigem.getKmReal() == null || sequenciaOrigem.getKmReal().isEmpty() ? BigDecimal.ZERO :
|
|
|
|
|
new BigDecimal(sequenciaOrigem.getKmReal());
|
|
|
|
|
|
|
|
|
|
for (ParadaSecuencia destino: sequenciaOrigem.getDestinos()) {
|
|
|
|
@ -718,7 +635,7 @@ public class TramoRutaServiceImpl implements TramoRutaService {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BigDecimal kmDestino= destino.getKmReal() == null || destino.getKmReal().isEmpty() ? new BigDecimal("0.0") :
|
|
|
|
|
BigDecimal kmDestino= destino.getKmReal() == null || destino.getKmReal().isEmpty() ? BigDecimal.ZERO :
|
|
|
|
|
new BigDecimal(destino.getKmReal());
|
|
|
|
|
|
|
|
|
|
kmTotal = kmTotal.add(kmDestino);
|
|
|
|
|