julio 2017-03-21 18:59:42 +00:00
parent 5e1f8cf2c7
commit e667f575ef
2 changed files with 43 additions and 21 deletions

View File

@ -103,9 +103,11 @@ public interface RutaService {
* @return Retorna a coleção de sequencias que precisam ser geradas
*/
public List<ParadaSecuenciaCombinacaoLinha> verificarSeqRutaNaoGerada(Ruta ruta, List<ParadaSecuencia> lsParadasSequencia);
public List<Ruta> buscarRutasPorEmpresaOrgaoConcedente(Empresa empresa, OrgaoConcedente orgao);
public boolean cambiarParadaRuta(Ruta ruta, Parada parada, String descripcionParada) throws Exception ;
public boolean cambiarParadaRuta(Ruta ruta, Parada paradaAntiga, Parada nuevaParada, String descripcionParada) throws Exception;
public Parada validaParada(String descripcionParada, Parada paradaAntiga) throws Exception;
}

View File

@ -72,39 +72,59 @@ public class RutaServiceImpl implements RutaService {
@Override
@Transactional(rollbackFor = BusinessException.class)
public boolean cambiarParadaRuta(Ruta ruta, Parada parada, String descripcionParada) throws Exception {
public Parada validaParada(String descripcionParada, Parada paradaAntiga) throws Exception {
String cve = null;
String descparada = null;
try {
String arraySplit[] = new String[2];
arraySplit = descripcionParada.split(" - ");
cve = arraySplit[0];
descparada = arraySplit[1];
} catch (Exception e) {
throw new BusinessException("editarCatalogoDeRutaController.actionCanbiarParada.businessException");
}
String cve = extrairCodigoOuLocalidade(descripcionParada, true, false);
String descparada = extrairCodigoOuLocalidade(descripcionParada, false, true);
if (cve == null || descparada == null)
throw new BusinessException("editarCatalogoDeRutaController.actionCanbiarParada.businessException");
try {
Parada nuevaParada = null;
List<Parada> paradas = paradaService.buscarCVE(cve);
paradas.addAll(paradaService.buscar(descparada));
if (!paradas.isEmpty()) {
nuevaParada = paradas.iterator().next();
return paradas.iterator().next();
} else {
nuevaParada = crearNuevaParada(parada, cve, descparada);
return null;
}
} catch (Exception e) {
throw e;
}
}
private String extrairCodigoOuLocalidade(String descripcionParada, boolean isCodigo, boolean isLocalidade) throws Exception {
try {
String arraySplit[] = new String[2];
arraySplit = descripcionParada.split(" - ");
if (isCodigo)
return arraySplit[0];
if (isLocalidade)
return arraySplit[1];
} catch (Exception e) {
throw new BusinessException("editarCatalogoDeRutaController.actionCanbiarParada.businessException");
}
return null;
}
@Override
@Transactional(rollbackFor = BusinessException.class)
public boolean cambiarParadaRuta(Ruta ruta, Parada paradaAntiga, Parada nuevaParada, String descripcionParada) throws Exception {
try {
String cve = extrairCodigoOuLocalidade(descripcionParada, true, false);
String descparada = extrairCodigoOuLocalidade(descripcionParada, false, true);
if (nuevaParada == null) {
nuevaParada = crearNuevaParada(paradaAntiga, cve, descparada);
paradaService.suscribirActualizar(nuevaParada);
}
List<Tramo> tramos = validaTramosRuta(ruta);
List<CambioRutaTramo> cambios = new ArrayList<CambioRutaTramo>();
for (Tramo tramo : tramos) {
Tramo nTramo = crearNuevoTramo(tramo, parada, nuevaParada);
Tramo nTramo = crearNuevoTramo(tramo, paradaAntiga, nuevaParada);
if (nTramo != null) {
cambios.add(new CambioRutaTramo(tramo, nTramo, parada, nuevaParada));
cambios.add(new CambioRutaTramo(tramo, nTramo, paradaAntiga, nuevaParada));
tramoService.suscribirActualizar(nTramo);
}
}