- ajustes geração de corrida
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@24279 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
61c2cf55c7
commit
1411f6fba2
|
@ -57,7 +57,15 @@ public interface CorridaDAO extends GenericDAO<Corrida, Corrida.Id> {
|
||||||
*/
|
*/
|
||||||
public List<Corrida> buscarDistinct(Parada ori, Parada des, Date horaSalidaInicio, Date horaSalidaFin, ClaseServicio cs, Integer corridaId);
|
public List<Corrida> buscarDistinct(Parada ori, Parada des, Date horaSalidaInicio, Date horaSalidaFin, ClaseServicio cs, Integer corridaId);
|
||||||
|
|
||||||
boolean existe(Ruta ruta, Date dataGeracao, Date horario, ClaseServicio claseServicio, Marca marca, boolean pisoExtra);
|
public boolean existe(Ruta ruta, Date dataGeracao, Date horario, ClaseServicio claseServicio, Marca marca, boolean pisoExtra);
|
||||||
|
|
||||||
boolean count(Parada origem, Parada destino, Date feccorrida, ClaseServicio claseServicio, boolean pisoExtra);
|
public boolean count(Parada origem, Parada destino, Date feccorrida, ClaseServicio claseServicio, boolean pisoExtra);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Regresa la cantidad de corridas que fue generada hoy.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public Long cantCorridaGeneradasHoy();
|
||||||
}
|
}
|
|
@ -302,4 +302,28 @@ public class CorridaHibernateDAO extends GenericHibernateDAO<Corrida, Corrida.Id
|
||||||
|
|
||||||
return (cant > 0);
|
return (cant > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long cantCorridaGeneradasHoy() {
|
||||||
|
Calendar cTmp1 = Calendar.getInstance();
|
||||||
|
Calendar cTmp2 = Calendar.getInstance();
|
||||||
|
|
||||||
|
cTmp1.set(Calendar.HOUR_OF_DAY, 0);
|
||||||
|
cTmp1.set(Calendar.MINUTE, 0);
|
||||||
|
cTmp1.set(Calendar.MILLISECOND, 0);
|
||||||
|
cTmp1.set(Calendar.SECOND, 0);
|
||||||
|
|
||||||
|
cTmp2.set(Calendar.HOUR_OF_DAY, 23);
|
||||||
|
cTmp2.set(Calendar.MINUTE, 59);
|
||||||
|
cTmp2.set(Calendar.SECOND, 59);
|
||||||
|
cTmp2.set(Calendar.MILLISECOND, 99);
|
||||||
|
|
||||||
|
Query query = getSession().createQuery("select count(c.fecmodif) from Corrida c where c.fecmodif between :inicio and :fim");
|
||||||
|
query.setParameter("inicio", cTmp1.getTime());
|
||||||
|
query.setParameter("fim", cTmp2.getTime());
|
||||||
|
Long count = HibernateFix.count(query.uniqueResult());
|
||||||
|
|
||||||
|
|
||||||
|
return count;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,9 @@ import javax.persistence.Temporal;
|
||||||
import javax.persistence.TemporalType;
|
import javax.persistence.TemporalType;
|
||||||
import javax.persistence.SequenceGenerator;
|
import javax.persistence.SequenceGenerator;
|
||||||
|
|
||||||
|
import org.hibernate.annotations.NotFound;
|
||||||
|
import org.hibernate.annotations.NotFoundAction;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Administrador
|
* @author Administrador
|
||||||
|
@ -46,6 +49,7 @@ public class CategoriaCorrida implements Serializable {
|
||||||
private CorridaCtrl corridaCtrl;
|
private CorridaCtrl corridaCtrl;
|
||||||
@JoinColumn(name = "CATEGORIACTRL_ID", referencedColumnName = "CATEGORIACTRL_ID")
|
@JoinColumn(name = "CATEGORIACTRL_ID", referencedColumnName = "CATEGORIACTRL_ID")
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
|
@NotFound(action=NotFoundAction.IGNORE)
|
||||||
private CategoriaCtrl categoriaCtrl;
|
private CategoriaCtrl categoriaCtrl;
|
||||||
|
|
||||||
public CategoriaCorrida() {
|
public CategoriaCorrida() {
|
||||||
|
|
|
@ -53,15 +53,14 @@ public interface CorridaService extends GenericService<Corrida, Corrida.Id> {
|
||||||
public List<Corrida> buscarDistinct(Parada ori, Parada des, Date horaSalidaInicio, Date horaSalidaFin, ClaseServicio cs, Integer corridaId);
|
public List<Corrida> buscarDistinct(Parada ori, Parada des, Date horaSalidaInicio, Date horaSalidaFin, ClaseServicio cs, Integer corridaId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gera corrida a partir dos servicos selecionados na tela de
|
* Gera corrida a partir dos servicos selecionados e no intervalo de dias informados. <br/>
|
||||||
* "Selecionar Servicos a Gerar". Menu->Esquema Operacional->Selecionar
|
|
||||||
* Servicos a Gerar
|
|
||||||
*
|
*
|
||||||
* @param lsEsquemaCorrida
|
* @param lsEsquemaCorrida
|
||||||
* @param dataDe
|
* @param dataDe
|
||||||
* @param dataAte
|
* @param dataAte
|
||||||
|
* @return A quantidade de corridas geradas
|
||||||
*/
|
*/
|
||||||
public void generarCorridasSelecionadas(List<EsquemaCorrida> lsEsquemaCorrida, Date dataDe, Date dataAte);
|
public Long generarCorridasSelecionadas(List<EsquemaCorrida> lsEsquemaCorrida, Date dataDe, Date dataAte);
|
||||||
|
|
||||||
public boolean generarCorridaAutomaticaQtdeDias(Date dataDe);
|
public boolean generarCorridaAutomaticaQtdeDias(Date dataDe);
|
||||||
}
|
}
|
||||||
|
|
|
@ -245,6 +245,8 @@ public class CorridaServiceImpl implements CorridaService {
|
||||||
} else if (esquemaCorrida.getIndGeneraFeriado().equals("N")) {
|
} else if (esquemaCorrida.getIndGeneraFeriado().equals("N")) {
|
||||||
retorno = geraDiaSemana(diaSemana, esquemaCorrida);
|
retorno = geraDiaSemana(diaSemana, esquemaCorrida);
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
retorno = geraDiaSemana(diaSemana, esquemaCorrida);
|
||||||
}
|
}
|
||||||
|
|
||||||
return retorno;
|
return retorno;
|
||||||
|
@ -359,7 +361,7 @@ public class CorridaServiceImpl implements CorridaService {
|
||||||
horario = DateUtil.normalizar(horario);
|
horario = DateUtil.normalizar(horario);
|
||||||
|
|
||||||
if (corridaDAO.existe(ruta, dataGeracao, horario, claseServicio, marca, isPisoExtra)) {
|
if (corridaDAO.existe(ruta, dataGeracao, horario, claseServicio, marca, isPisoExtra)) {
|
||||||
log.debug("corrida existe = " + ruta.getDescruta() + ";" + DateUtil.getStringDate(dataGeracao) + ";" + DateUtil.getStringDate(horario, "HH:mm") + ";" + claseServicio.getDescclase() + ";" + marca.getDescmarca() + " Piso: " + isPisoExtra);
|
log.info("corrida existe = " + ruta.getDescruta() + ";" + DateUtil.getStringDate(dataGeracao) + ";" + DateUtil.getStringDate(horario, "HH:mm") + ";" + claseServicio.getDescclase() + ";" + marca.getDescmarca() + " Piso: " + isPisoExtra);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -379,7 +381,7 @@ public class CorridaServiceImpl implements CorridaService {
|
||||||
// parada origem
|
// parada origem
|
||||||
Parada origen = rutaService.getOrigem(ruta);
|
Parada origen = rutaService.getOrigem(ruta);
|
||||||
if (origen == null) {
|
if (origen == null) {
|
||||||
log.debug("origen nao encontrado para a ruta = " + ruta.getRutaId());
|
log.info("origen nao encontrado para a ruta = " + ruta.getRutaId());
|
||||||
}
|
}
|
||||||
corridaCtrl.setNodo((origen == null) ? null : origen.getNodo());
|
corridaCtrl.setNodo((origen == null) ? null : origen.getNodo());
|
||||||
|
|
||||||
|
@ -718,7 +720,7 @@ public class CorridaServiceImpl implements CorridaService {
|
||||||
fecCorrida.setTime(corridaTramo.getFechorllegada());
|
fecCorrida.setTime(corridaTramo.getFechorllegada());
|
||||||
|
|
||||||
if (diasSemana.contains(fecCorrida.get(Calendar.DAY_OF_WEEK)) || diasSemana.contains(fecCorrida.get(Calendar.DAY_OF_WEEK))) {
|
if (diasSemana.contains(fecCorrida.get(Calendar.DAY_OF_WEEK)) || diasSemana.contains(fecCorrida.get(Calendar.DAY_OF_WEEK))) {
|
||||||
log.debug("Hay Excepcione de tiempo");
|
log.info("Hay Excepcione de tiempo");
|
||||||
Calendar fechorsalida = Calendar.getInstance();
|
Calendar fechorsalida = Calendar.getInstance();
|
||||||
fechorsalida.setTime(corridaTramo.getFechorsalida());
|
fechorsalida.setTime(corridaTramo.getFechorsalida());
|
||||||
|
|
||||||
|
@ -865,38 +867,29 @@ public class CorridaServiceImpl implements CorridaService {
|
||||||
return hayError;
|
return hayError;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gera corrida a partir dos servicos selecionados na tela de
|
|
||||||
* "Selecionar Servicos a Gerar". Menu->Esquema Operacional->Selecionar
|
|
||||||
* Servicos a Gerar
|
|
||||||
*
|
|
||||||
* @param lsEsquemaCorrida
|
|
||||||
* @param dataDe
|
|
||||||
* @param dataAte
|
|
||||||
*/
|
|
||||||
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
|
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
|
||||||
public void generarCorridasSelecionadas(List<EsquemaCorrida> lsEsquemaCorrida, Date dataDe, Date dataAte) {
|
public Long generarCorridasSelecionadas(List<EsquemaCorrida> lsEsquemaCorrida, Date dataDe, Date dataAte) {
|
||||||
SimpleDateFormat sdfData = new SimpleDateFormat("dd/MM/yyyy");
|
SimpleDateFormat sdfData = new SimpleDateFormat("dd/MM/yyyy");
|
||||||
|
|
||||||
log.debug("** SELECIONADOS - Data De: " + sdfData.format(dataDe) + " **Data Ateh: " + sdfData.format(dataAte));
|
log.info("** SELECIONADOS - Data De: " + sdfData.format(dataDe) + " **Data Ateh: " + sdfData.format(dataAte));
|
||||||
|
|
||||||
Calendar calendarData = Calendar.getInstance();
|
Calendar calendarData = Calendar.getInstance();
|
||||||
calendarData.setTime(dataAte);
|
calendarData.setTime(dataDe);
|
||||||
calendarData.add(Calendar.DATE, 1);
|
|
||||||
dataAte = calendarData.getTime();
|
|
||||||
while (dataDe.before(dataAte)) {
|
|
||||||
log.debug("*** Data: " + sdfData.format(dataDe));
|
|
||||||
|
|
||||||
Boolean dentroVigenciaEsquemaOperacional = !lsEsquemaCorrida.isEmpty();
|
Long cantInicio = corridaDAO.cantCorridaGeneradasHoy();
|
||||||
if (dentroVigenciaEsquemaOperacional) {
|
|
||||||
this.generarCorrida(dataDe, lsEsquemaCorrida);
|
while (DateUtil.compareOnlyDate(dataDe,dataAte) <= 0) {
|
||||||
} else {
|
log.info("*** Data: " + sdfData.format(dataDe));
|
||||||
log.info("No hay esquema vigente para la fecha " + sdfData.format(dataDe));
|
|
||||||
}
|
this.generarCorrida(dataDe, lsEsquemaCorrida);
|
||||||
|
|
||||||
calendarData.setTime(dataDe);
|
|
||||||
calendarData.add(Calendar.DATE, 1);
|
calendarData.add(Calendar.DATE, 1);
|
||||||
dataDe = calendarData.getTime();
|
dataDe = calendarData.getTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Long cantFim = corridaDAO.cantCorridaGeneradasHoy();
|
||||||
|
|
||||||
|
|
||||||
|
return cantFim - cantInicio;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -189,7 +189,9 @@ public final class DateUtil {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Não leva em consideração os segundos
|
* Não leva em consideração os segundos/minutos. Só é considerado o dia/mes/ano <br/>
|
||||||
|
*
|
||||||
|
* Retorno igual a {@link #compareDate(Date, Date)}
|
||||||
*/
|
*/
|
||||||
public static int compareOnlyDate(java.util.Date d1, java.util.Date d2) {
|
public static int compareOnlyDate(java.util.Date d1, java.util.Date d2) {
|
||||||
java.util.Calendar cal = Calendar.getInstance();
|
java.util.Calendar cal = Calendar.getInstance();
|
||||||
|
|
Loading…
Reference in New Issue