0020761: ESPEC - Criação de 3 três serviços no Doble Decker

bug#20761
dev:fabio
qua:

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@104724 d1611594-4594-4d17-8e1d-87c2c4800839
master
valdir 2020-12-15 13:33:42 +00:00
parent e12cfc1ded
commit d16c64c630
2 changed files with 73 additions and 26 deletions

View File

@ -158,6 +158,9 @@ public class EsquemaCorrida implements Serializable, Auditavel<EsquemaCorrida> {
@Column(name = "NUMCORRIDAPISOEXTRA") @Column(name = "NUMCORRIDAPISOEXTRA")
private Integer numCorridaPisoExtra; private Integer numCorridaPisoExtra;
@Column(name = "NUMCORRIDAPISOEXTRA2")
private Integer numCorridaPisoExtra2;
@Column(name = "INDGENERAFERIADO") @Column(name = "INDGENERAFERIADO")
private String indGeneraFeriado; private String indGeneraFeriado;
@ -759,4 +762,11 @@ public class EsquemaCorrida implements Serializable, Auditavel<EsquemaCorrida> {
return String.format("ID [%s] - Número Serviço [%s]", getEsquemacorridaId(), getNumCorrida()); return String.format("ID [%s] - Número Serviço [%s]", getEsquemacorridaId(), getNumCorrida());
} }
public Integer getNumCorridaPisoExtra2() {
return numCorridaPisoExtra2;
}
public void setNumCorridaPisoExtra2(Integer numCorridaPisoExtra2) {
this.numCorridaPisoExtra2 = numCorridaPisoExtra2;
}
} }

View File

@ -847,6 +847,7 @@ public class CorridaServiceImpl implements CorridaService {
Corrida corrida = generarCorrida(esquemaCorrida, dataGeracao, false, isFeriado); Corrida corrida = generarCorrida(esquemaCorrida, dataGeracao, false, isFeriado);
Corrida corridaPisoExtra = null; Corrida corridaPisoExtra = null;
Corrida corridaPisoExtra2 = null;
if (corrida == null) {// Si no genera la corrida, no va a if (corrida == null) {// Si no genera la corrida, no va a
// generar el rebote // generar el rebote
@ -866,34 +867,28 @@ public class CorridaServiceImpl implements CorridaService {
Boolean atualizarPisoExtra = false; Boolean atualizarPisoExtra = false;
// caso corrida segundo piso for gerada antes, atualizar // caso corrida segundo piso for gerada antes, atualizar
if(corridaPisoExtra == null) { atualizarPisoExtra = atualizarCorridaPisoExtra(corridaPisoExtra, esquemaCorridaSegundoPiso, data, mensagemLog, atualizarPisoExtra);
Id id = new Id();
id.setCorridaId(esquemaCorridaSegundoPiso.getNumCorrida());
id.setFeccorrida(data);
corridaPisoExtra = corridaDAO.buscarPorId(id); alterarNumPisoCorridaPisoExtra(corrida, corridaPisoExtra, mensagemLog, atualizarPisoExtra, false);
atualizarPisoExtra = corridaPisoExtra == null ? false : true; if(esquemaCorrida.getNumCorridaPisoExtra2() != null) {
log.info(mensagemLog + "; atualizarPisoExtra=" + atualizarPisoExtra);
}
EsquemaCorrida esquemaCorridaTerceiroPiso = esquemaCorridaDAO.buscarPeloNumCorrida(esquemaCorrida.getNumCorridaPisoExtra2());
if (corrida != null && corridaPisoExtra != null) { if(esquemaCorridaTerceiroPiso != null) {
log.info(mensagemLog + "; atualizando as corridas do piso 1 e 2");
// Salvando Referencia da Corrida no piso extra
corridaPisoExtra.setCorridaPiso(corrida);
corridaPisoExtra.setNumPiso(2);
corridaPisoExtra = corridaDAO.actualizacion(corridaPisoExtra);
// Referencia do Piso extra na Corrida
corrida.setCorridaPiso(corridaPisoExtra);
corrida.setNumPiso(1);
corrida = corridaDAO.actualizacion(corrida);
if(atualizarPisoExtra) { mensagemLog = String.format("Esquema/Corrida primeiro piso: %s/%s ; Esquema/Corrida terceiro piso: %s/%s ",esquemaCorrida.getEsquemacorridaId(),esquemaCorrida.getNumCorrida(), esquemaCorridaTerceiroPiso.getEsquemacorridaId(),esquemaCorridaTerceiroPiso.getNumCorrida() );
corridaDAO.actualizacion(corridaPisoExtra); log.info(mensagemLog);
corridaPisoExtra2 = generarCorrida(esquemaCorridaTerceiroPiso, dataGeracao, true, isFeriado);
atualizarPisoExtra = false;
// caso corrida segundo piso for gerada antes, atualizar
atualizarPisoExtra = atualizarCorridaPisoExtra(corridaPisoExtra2, esquemaCorridaTerceiroPiso, data, mensagemLog, atualizarPisoExtra);
// caso corrida segundo piso for gerada antes, atualizar
alterarNumPisoCorridaPisoExtra(corrida, corridaPisoExtra2, mensagemLog, atualizarPisoExtra, true);
} }
} else {
log.info(mensagemLog + "; nao foram atualizadas as corridas do piso 1 e 2");
} }
} }
@ -964,6 +959,12 @@ public class CorridaServiceImpl implements CorridaService {
corridaPisoExtra.setCorridaRebote(corridaPisoExtraRebote); corridaPisoExtra.setCorridaRebote(corridaPisoExtraRebote);
corridaDAO.actualizacion(corridaPisoExtra); corridaDAO.actualizacion(corridaPisoExtra);
} }
if (corridaPisoExtraRebote != null && corridaPisoExtra2 != null) {
log.info("Rebote Piso Extra Generado=" + corridaPisoExtraRebote.getId());
corridaPisoExtra2.setCorridaRebote(corridaPisoExtraRebote);
corridaDAO.actualizacion(corridaPisoExtra2);
}
} }
@ -980,6 +981,42 @@ public class CorridaServiceImpl implements CorridaService {
} }
} }
private void alterarNumPisoCorridaPisoExtra(Corrida corrida, Corrida corridaPisoExtra, String mensagemLog, Boolean atualizarPisoExtra, boolean isPiso3) {
if (corrida != null && corridaPisoExtra != null) {
log.info(mensagemLog + "; atualizando as corridas do piso 1 e 2");
// Salvando Referencia da Corrida no piso extra
corridaPisoExtra.setCorridaPiso(corrida);
corridaPisoExtra.setNumPiso(isPiso3 ? 3 : 2);
corridaPisoExtra = corridaDAO.actualizacion(corridaPisoExtra);
// Referencia do Piso extra na Corrida
corrida.setCorridaPiso(corridaPisoExtra);
corrida.setNumPiso(1);
corrida = corridaDAO.actualizacion(corrida);
if(atualizarPisoExtra) {
corridaDAO.actualizacion(corridaPisoExtra);
}
} else {
log.info(mensagemLog + "; nao foram atualizadas as corridas do piso 1 e 2");
}
}
private Boolean atualizarCorridaPisoExtra(Corrida corridaPisoExtra, EsquemaCorrida esquemaCorridaSegundoPiso, java.sql.Date data, String mensagemLog, Boolean atualizarPisoExtra) {
// caso corrida segundo piso for gerada antes, atualizar
if(corridaPisoExtra == null) {
Id id = new Id();
id.setCorridaId(esquemaCorridaSegundoPiso.getNumCorrida());
id.setFeccorrida(data);
corridaPisoExtra = corridaDAO.buscarPorId(id);
atualizarPisoExtra = corridaPisoExtra == null ? false : true;
log.info(mensagemLog + "; atualizarPisoExtra=" + atualizarPisoExtra);
}
return atualizarPisoExtra;
}
/** /**
* Verifica se hay una excepcione de tiempo para el tramo informado. * Verifica se hay una excepcione de tiempo para el tramo informado.
* *