- 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);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@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.SequenceGenerator;
|
||||
|
||||
import org.hibernate.annotations.NotFound;
|
||||
import org.hibernate.annotations.NotFoundAction;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Administrador
|
||||
|
@ -46,6 +49,7 @@ public class CategoriaCorrida implements Serializable {
|
|||
private CorridaCtrl corridaCtrl;
|
||||
@JoinColumn(name = "CATEGORIACTRL_ID", referencedColumnName = "CATEGORIACTRL_ID")
|
||||
@ManyToOne
|
||||
@NotFound(action=NotFoundAction.IGNORE)
|
||||
private CategoriaCtrl categoriaCtrl;
|
||||
|
||||
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);
|
||||
|
||||
/**
|
||||
* Gera corrida a partir dos servicos selecionados na tela de
|
||||
* "Selecionar Servicos a Gerar". Menu->Esquema Operacional->Selecionar
|
||||
* Servicos a Gerar
|
||||
* Gera corrida a partir dos servicos selecionados e no intervalo de dias informados. <br/>
|
||||
*
|
||||
* @param lsEsquemaCorrida
|
||||
* @param dataDe
|
||||
* @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);
|
||||
}
|
||||
|
|
|
@ -245,6 +245,8 @@ public class CorridaServiceImpl implements CorridaService {
|
|||
} else if (esquemaCorrida.getIndGeneraFeriado().equals("N")) {
|
||||
retorno = geraDiaSemana(diaSemana, esquemaCorrida);
|
||||
}
|
||||
}else{
|
||||
retorno = geraDiaSemana(diaSemana, esquemaCorrida);
|
||||
}
|
||||
|
||||
return retorno;
|
||||
|
@ -359,7 +361,7 @@ public class CorridaServiceImpl implements CorridaService {
|
|||
horario = DateUtil.normalizar(horario);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -379,7 +381,7 @@ public class CorridaServiceImpl implements CorridaService {
|
|||
// parada origem
|
||||
Parada origen = rutaService.getOrigem(ruta);
|
||||
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());
|
||||
|
||||
|
@ -718,7 +720,7 @@ public class CorridaServiceImpl implements CorridaService {
|
|||
fecCorrida.setTime(corridaTramo.getFechorllegada());
|
||||
|
||||
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();
|
||||
fechorsalida.setTime(corridaTramo.getFechorsalida());
|
||||
|
||||
|
@ -865,38 +867,29 @@ public class CorridaServiceImpl implements CorridaService {
|
|||
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)
|
||||
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");
|
||||
|
||||
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();
|
||||
calendarData.setTime(dataAte);
|
||||
calendarData.add(Calendar.DATE, 1);
|
||||
dataAte = calendarData.getTime();
|
||||
while (dataDe.before(dataAte)) {
|
||||
log.debug("*** Data: " + sdfData.format(dataDe));
|
||||
calendarData.setTime(dataDe);
|
||||
|
||||
Boolean dentroVigenciaEsquemaOperacional = !lsEsquemaCorrida.isEmpty();
|
||||
if (dentroVigenciaEsquemaOperacional) {
|
||||
this.generarCorrida(dataDe, lsEsquemaCorrida);
|
||||
} else {
|
||||
log.info("No hay esquema vigente para la fecha " + sdfData.format(dataDe));
|
||||
}
|
||||
Long cantInicio = corridaDAO.cantCorridaGeneradasHoy();
|
||||
|
||||
while (DateUtil.compareOnlyDate(dataDe,dataAte) <= 0) {
|
||||
log.info("*** Data: " + sdfData.format(dataDe));
|
||||
|
||||
this.generarCorrida(dataDe, lsEsquemaCorrida);
|
||||
|
||||
calendarData.setTime(dataDe);
|
||||
calendarData.add(Calendar.DATE, 1);
|
||||
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) {
|
||||
java.util.Calendar cal = Calendar.getInstance();
|
||||
|
|
Loading…
Reference in New Issue