leonardo 2017-05-23 19:48:55 +00:00
parent 8715ec913e
commit 4b3cc6624f
1 changed files with 39 additions and 5 deletions

View File

@ -5,7 +5,9 @@ import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -319,16 +321,35 @@ public class TramoRutaServiceImpl implements TramoRutaService {
int qtdTramos = lsSecuenciaRutaTramoVO.size(); int qtdTramos = lsSecuenciaRutaTramoVO.size();
int secuencia = 0; int secuencia = 0;
Map<Parada, BigDecimal> kmEntradaSaida = new HashMap<Parada, BigDecimal>();
for (SecuenciaRutaTramoVO sec : lsSecuenciaRutaTramoVO){
if (sec.getKmEntradaSaida() != null){
kmEntradaSaida.put(sec.getOrigen(), sec.getKmEntradaSaida());
}
}
for (int i = 0; i < qtdTramos; i++) { for (int i = 0; i < qtdTramos; i++) {
SecuenciaRutaTramoVO secuenciaInicial = lsSecuenciaRutaTramoVO.get(i); SecuenciaRutaTramoVO secuenciaInicial = lsSecuenciaRutaTramoVO.get(i);
Parada origen = secuenciaInicial.getOrigen(); Parada origen = secuenciaInicial.getOrigen();
BigDecimal totalKmsReal = secuenciaInicial.getKmReal().add((secuenciaInicial.getKmEntradaSaida() != null ? secuenciaInicial.getKmEntradaSaida() : BigDecimal.ZERO));
BigDecimal totalKmsReal = secuenciaInicial.getKmReal();
if (kmEntradaSaida.containsKey(origen)){
totalKmsReal = totalKmsReal.add(kmEntradaSaida.get(origen));
}
HoraSistema totalTiempoRecorrido = secuenciaInicial.getTiempoRecorrido(); HoraSistema totalTiempoRecorrido = secuenciaInicial.getTiempoRecorrido();
int j = i + 1; int j = i + 1;
for (; j < (qtdTramos); j++) { for (; j < (qtdTramos); j++) {
Parada destino = lsSecuenciaRutaTramoVO.get(j).getOrigen(); Parada destino = lsSecuenciaRutaTramoVO.get(j).getOrigen();
if (kmEntradaSaida.containsKey(destino)){
totalKmsReal = totalKmsReal.add(kmEntradaSaida.get(destino));
}
Via via = secuenciaInicial.getVia(); Via via = secuenciaInicial.getVia();
SecuenciaRutaTramoCoeficienteVO nuevaSecuencia = new SecuenciaRutaTramoCoeficienteVO(origen, destino, via, ++secuencia, SecuenciaRutaTramoCoeficienteVO nuevaSecuencia = new SecuenciaRutaTramoCoeficienteVO(origen, destino, via, ++secuencia,
@ -339,7 +360,8 @@ public class TramoRutaServiceImpl implements TramoRutaService {
if (tramoServicio != null) { if (tramoServicio != null) {
log.debug("TRAMO EXISTE"); log.debug("TRAMO EXISTE");
nuevaSecuencia.setKmReal(tramoServicio.getTramo().getKmReal().add((secuenciaInicial.getKmEntradaSaida() != null ? secuenciaInicial.getKmEntradaSaida() : BigDecimal.ZERO))); nuevaSecuencia.setKmReal(tramoServicio.getTramo().getKmReal());
nuevaSecuencia.setTiempoRecorrido(new HoraSistema(tramoServicio.getTiemporecorrido())); nuevaSecuencia.setTiempoRecorrido(new HoraSistema(tramoServicio.getTiemporecorrido()));
nuevaSecuencia.setTramoId(tramoServicio.getTramo().getTramoId()); nuevaSecuencia.setTramoId(tramoServicio.getTramo().getTramoId());
nuevaSecuencia.setTramoServicioId(tramoServicio.getTramoservicioId()); nuevaSecuencia.setTramoServicioId(tramoServicio.getTramoservicioId());
@ -361,7 +383,16 @@ public class TramoRutaServiceImpl implements TramoRutaService {
lsSecuenciaCombinacionRutaTramoVO.add(nuevaSecuencia); lsSecuenciaCombinacionRutaTramoVO.add(nuevaSecuencia);
totalKmsReal = totalKmsReal.add(lsSecuenciaRutaTramoVO.get(j).getKmReal().add((lsSecuenciaRutaTramoVO.get(j).getKmEntradaSaida() != null ? lsSecuenciaRutaTramoVO.get(j).getKmEntradaSaida() : BigDecimal.ZERO))); // 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());
}
// if (kmEntradaSaida.containsKey(destino)){
// totalKmsReal = totalKmsReal.add(kmEntradaSaida.get(destino));
// }
totalTiempoRecorrido = totalTiempoRecorrido.sumar(lsSecuenciaRutaTramoVO.get(j).getTiempoRecorrido()); totalTiempoRecorrido = totalTiempoRecorrido.sumar(lsSecuenciaRutaTramoVO.get(j).getTiempoRecorrido());
log.debug("Origen:" + nuevaSecuencia.getOrigen() + ";Destino:" + nuevaSecuencia.getDestino() + ";Via:" log.debug("Origen:" + nuevaSecuencia.getOrigen() + ";Destino:" + nuevaSecuencia.getDestino() + ";Via:"
@ -370,7 +401,9 @@ public class TramoRutaServiceImpl implements TramoRutaService {
} }
Parada destino = lsSecuenciaRutaTramoVO.get(qtdTramos - 1).getDestino(); Parada destino = lsSecuenciaRutaTramoVO.get(qtdTramos - 1).getDestino();
if (kmEntradaSaida.containsKey(destino)){
totalKmsReal = totalKmsReal.add(kmEntradaSaida.get(destino));
}
Via via = secuenciaInicial.getVia(); Via via = secuenciaInicial.getVia();
SecuenciaRutaTramoCoeficienteVO nuevaSecuencia = new SecuenciaRutaTramoCoeficienteVO(origen, destino, via, ++secuencia, SecuenciaRutaTramoCoeficienteVO nuevaSecuencia = new SecuenciaRutaTramoCoeficienteVO(origen, destino, via, ++secuencia,
@ -380,7 +413,8 @@ public class TramoRutaServiceImpl implements TramoRutaService {
if (tramoServicio != null) { if (tramoServicio != null) {
log.debug("TRAMO EXISTE"); log.debug("TRAMO EXISTE");
nuevaSecuencia.setKmReal(tramoServicio.getTramo().getKmReal().add((secuenciaInicial.getKmEntradaSaida() != null ? secuenciaInicial.getKmEntradaSaida() : BigDecimal.ZERO))); nuevaSecuencia.setKmReal(tramoServicio.getTramo().getKmReal());
nuevaSecuencia.setTiempoRecorrido(new HoraSistema(tramoServicio.getTiemporecorrido())); nuevaSecuencia.setTiempoRecorrido(new HoraSistema(tramoServicio.getTiemporecorrido()));
nuevaSecuencia.setTramoId(tramoServicio.getTramo().getTramoId()); nuevaSecuencia.setTramoId(tramoServicio.getTramo().getTramoId());
nuevaSecuencia.setTramoServicioId(tramoServicio.getTramoservicioId()); nuevaSecuencia.setTramoServicioId(tramoServicio.getTramoservicioId());