Implementação geração serviço dia sim dia não.

bug 7243

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@54072 d1611594-4594-4d17-8e1d-87c2c4800839
master
thiago.penido 2016-03-21 17:06:30 +00:00
parent 46e36f28c9
commit f4060d260c
2 changed files with 38 additions and 15 deletions

View File

@ -1,7 +1,3 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.rjconsultores.ventaboletos.entidad; package com.rjconsultores.ventaboletos.entidad;
import java.io.Serializable; import java.io.Serializable;
@ -126,7 +122,8 @@ public class EsquemaCorrida implements Serializable {
private String infoCorrida; private String infoCorrida;
@Column(name = "INDCORRIDAEXTRA") @Column(name = "INDCORRIDAEXTRA")
private Boolean indCorridaExtra; private Boolean indCorridaExtra;
@Column(name = "INDDIASIMDIANAO")
private Boolean indDiaSimDiaNao;
public enum GerarFeriado { public enum GerarFeriado {
// Declaração dos enum // Declaração dos enum
GERARSEMPRE("GERAR SEMPRE", "S"), GERARSEMPRE("GERAR SEMPRE", "S"),
@ -473,6 +470,14 @@ public class EsquemaCorrida implements Serializable {
this.indCorridaExtra = indCorridaExtra; this.indCorridaExtra = indCorridaExtra;
} }
public Boolean getIndDiaSimDiaNao() {
return indDiaSimDiaNao;
}
public void setIndDiaSimDiaNao(Boolean indDiaSimDiaNao) {
this.indDiaSimDiaNao = indDiaSimDiaNao;
}
@Override @Override
public int hashCode() { public int hashCode() {
int hash = 0; int hash = 0;

View File

@ -410,6 +410,7 @@ public class CorridaServiceImpl implements CorridaService {
* @return - La corrida generada o null si no fue generada. * @return - La corrida generada o null si no fue generada.
*/ */
private Corrida generarCorrida(EsquemaCorrida esquemaCorrida, Date dataGeracao, boolean isPisoExtra, Boolean isFeriado) { private Corrida generarCorrida(EsquemaCorrida esquemaCorrida, Date dataGeracao, boolean isPisoExtra, Boolean isFeriado) {
GregorianCalendar calendario = new GregorianCalendar(); GregorianCalendar calendario = new GregorianCalendar();
calendario.setTime(dataGeracao); calendario.setTime(dataGeracao);
@ -428,20 +429,20 @@ public class CorridaServiceImpl implements CorridaService {
return null; return null;
} }
if (!temCorridaDiaSemana(diaSemana, esquemaCorrida, isFeriado)) { if (esquemaCorrida.getIndDiaSimDiaNao() == null || esquemaCorrida.getIndDiaSimDiaNao() == Boolean.FALSE) {
log.info("dia semana no valido=" + diaSemana); if (!temCorridaDiaSemana(diaSemana, esquemaCorrida, isFeriado)) {
log.info("dia semana no valido=" + diaSemana);
return null; return null;
}
} }
if (!tramoServicioService.existenTiemposTramosEsquema(esquemaCorrida.getEsquemacorridaId())) { if (!tramoServicioService.existenTiemposTramosEsquema(esquemaCorrida.getEsquemacorridaId())) {
log.info("nao foi cadastrado o tempo de todos os trechos do esquema corrida=" + esquemaCorrida.getEsquemacorridaId()); log.info("nao foi cadastrado o tempo de todos os trechos do esquema corrida=" + esquemaCorrida.getEsquemacorridaId());
return null; return null;
} }
try { try {
Ruta ruta = esquemaCorrida.getRuta(); Ruta ruta = esquemaCorrida.getRuta();
ClaseServicio claseServicio = esquemaCorrida.getClaseServicio(); ClaseServicio claseServicio = esquemaCorrida.getClaseServicio();
Marca marca = esquemaCorrida.getMarca(); Marca marca = esquemaCorrida.getMarca();
@ -454,6 +455,22 @@ public class CorridaServiceImpl implements CorridaService {
id.setCorridaId(numCorrida); id.setCorridaId(numCorrida);
id.setFeccorrida(DateUtil.normalizarToFecha(dataGeracao)); id.setFeccorrida(DateUtil.normalizarToFecha(dataGeracao));
if(esquemaCorrida.getIndDiaSimDiaNao()) {
Calendar calendarData = Calendar.getInstance();
calendarData.setTime(dataGeracao);
calendarData.add(Calendar.DATE, -1);
Corrida.Id corridaOntem = new Corrida.Id();
corridaOntem.setCorridaId(numCorrida);
corridaOntem.setFeccorrida(DateUtil.normalizarToFecha(calendarData.getTime()));
if (corridaDAO.existe(corridaOntem)) {
log.info("Esquema configurado para gerar dia sim dia não e já possui corrida gerado no dia anterior, por isso não está data: " + DateUtil.getStringDate(dataGeracao));
return null;
}
}
if (corridaDAO.existe(id)) { if (corridaDAO.existe(id)) {
log.info("corrida existe = " + numCorrida + ";" + ruta.getDescruta() + ";" + DateUtil.getStringDate(dataGeracao) + ";" + DateUtil.getStringDate(horario, "HH:mm") + ";" + claseServicio.getDescclase() + ";" + marca.getDescmarca() + " Piso: " + isPisoExtra); log.info("corrida existe = " + numCorrida + ";" + ruta.getDescruta() + ";" + DateUtil.getStringDate(dataGeracao) + ";" + DateUtil.getStringDate(horario, "HH:mm") + ";" + claseServicio.getDescclase() + ";" + marca.getDescmarca() + " Piso: " + isPisoExtra);
return null; return null;
@ -781,6 +798,7 @@ public class CorridaServiceImpl implements CorridaService {
} }
private void generarCorrida(Date dataGeracao, List<EsquemaCorrida> lsEsquemaCorrida) { private void generarCorrida(Date dataGeracao, List<EsquemaCorrida> lsEsquemaCorrida) {
DefaultTransactionDefinition def = new DefaultTransactionDefinition(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW); DefaultTransactionDefinition def = new DefaultTransactionDefinition(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW);
// TODO: Melhorar o tratamento às transações manuais em caso de erro,etc // TODO: Melhorar o tratamento às transações manuais em caso de erro,etc
@ -788,7 +806,9 @@ public class CorridaServiceImpl implements CorridaService {
cantCorridaGenerada = 0; cantCorridaGenerada = 0;
cantCorridaCommit = 1; cantCorridaCommit = 1;
java.sql.Date data = new java.sql.Date(dataGeracao.getTime()); java.sql.Date data = new java.sql.Date(dataGeracao.getTime());
try { try {
for (EsquemaCorrida esquemaCorrida : lsEsquemaCorrida) { for (EsquemaCorrida esquemaCorrida : lsEsquemaCorrida) {
Boolean isFeriado = this.isFeriado(data, esquemaCorrida); Boolean isFeriado = this.isFeriado(data, esquemaCorrida);
@ -843,7 +863,6 @@ public class CorridaServiceImpl implements CorridaService {
Corrida corridaRebote = generarCorrida(esquemaCorrida.getEsquemaCorridaRebote(), dataGeracao, false, isFeriado); Corrida corridaRebote = generarCorrida(esquemaCorrida.getEsquemaCorridaRebote(), dataGeracao, false, isFeriado);
Corrida corridaPisoExtraRebote = null; Corrida corridaPisoExtraRebote = null;
boolean generaReboteDiaSeguinte = false; boolean generaReboteDiaSeguinte = false;
if (corridaRebote != null) { if (corridaRebote != null) {
@ -927,7 +946,6 @@ public class CorridaServiceImpl implements CorridaService {
transactionManager.commit(status); transactionManager.commit(status);
} }
} }
} }
/** /**