fixes bug #9032
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@69217 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
8715ec913e
commit
4b3cc6624f
|
@ -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());
|
||||||
|
|
Loading…
Reference in New Issue