parent
2edbe5c8d7
commit
8e11e54064
2
pom.xml
2
pom.xml
|
@ -3,7 +3,7 @@
|
|||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>br.com.rjconsultores</groupId>
|
||||
<artifactId>ModelWeb</artifactId>
|
||||
<version>1.17.1</version>
|
||||
<version>1.17.2</version>
|
||||
|
||||
<distributionManagement>
|
||||
<repository>
|
||||
|
|
|
@ -82,4 +82,36 @@ public interface EsquemaCorridaDAO extends GenericDAO<EsquemaCorrida, Integer> {
|
|||
|
||||
public Integer atualizaServicoIntegracaoTotvs(Marca marca, Integer corridaId) throws BusinessException;
|
||||
|
||||
/**
|
||||
* Buscar corrida primeiro piso, a partir do segundo
|
||||
*
|
||||
* @param esquemaCorrida
|
||||
* @return
|
||||
*/
|
||||
public EsquemaCorrida buscarPrimeiroPisoPeloSegundo(EsquemaCorrida esquemaCorrida);
|
||||
|
||||
/**
|
||||
* Indica se o esquema é o indicado como terceiro piso nas configuações de doble piso
|
||||
*
|
||||
* @param esquemaCorrida
|
||||
* @return
|
||||
*/
|
||||
public boolean esTerceiroPiso(EsquemaCorrida esquemaCorrida);
|
||||
|
||||
/**
|
||||
* Buscar corrida primeiro piso, a partir do terceiro
|
||||
*
|
||||
* @param esquemaCorrida
|
||||
* @return
|
||||
*/
|
||||
public EsquemaCorrida buscarPrimeiroPisoPeloTerceiro(EsquemaCorrida esquemaCorrida);
|
||||
|
||||
/**
|
||||
* Buscar corrida, a partir do HijoRebote
|
||||
*
|
||||
* @param esquemaCorrida
|
||||
* @return
|
||||
*/
|
||||
public EsquemaCorrida buscarEsquemaPeloHijoRebote(EsquemaCorrida esquemaCorrida);
|
||||
|
||||
}
|
||||
|
|
|
@ -125,6 +125,28 @@ public class EsquemaCorridaHibernateDAO extends GenericHibernateDAO<EsquemaCorri
|
|||
|
||||
return (cant > 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Buscar corrida, a partir do HijoRebote
|
||||
*
|
||||
* @param esquemaCorrida
|
||||
* @return
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public EsquemaCorrida buscarEsquemaPeloHijoRebote(EsquemaCorrida esquemaCorrida) {
|
||||
Criteria c = makeCriteria();
|
||||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||
c.add(Restrictions.eq("esquemaCorridaRebote", esquemaCorrida.getNumCorrida()));
|
||||
|
||||
List<EsquemaCorrida> primeiroPiso = c.list();
|
||||
|
||||
if(primeiroPiso != null && !primeiroPiso.isEmpty()) {
|
||||
return primeiroPiso.get(0);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indica se o esquema é o indicado como segundo piso nas configuações de doble piso
|
||||
|
@ -143,6 +165,68 @@ public class EsquemaCorridaHibernateDAO extends GenericHibernateDAO<EsquemaCorri
|
|||
|
||||
return (cant > 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Indica se o esquema é o indicado como terceiro piso nas configuações de doble piso
|
||||
*
|
||||
* @param esquemaCorrida
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean esTerceiroPiso(EsquemaCorrida esquemaCorrida) {
|
||||
Criteria c = makeCriteria();
|
||||
c.setProjection(Projections.rowCount());
|
||||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||
c.add(Restrictions.eq("numCorridaPisoExtra2", esquemaCorrida.getNumCorrida()));
|
||||
|
||||
Long cant = HibernateFix.count(c.list());
|
||||
|
||||
return (cant > 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Buscar corrida primeiro piso, a partir do segundo
|
||||
*
|
||||
* @param esquemaCorrida
|
||||
* @return
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public EsquemaCorrida buscarPrimeiroPisoPeloSegundo(EsquemaCorrida esquemaCorrida) {
|
||||
Criteria c = makeCriteria();
|
||||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||
c.add(Restrictions.eq("numCorridaPisoExtra", esquemaCorrida.getNumCorrida()));
|
||||
|
||||
List<EsquemaCorrida> primeiroPiso = c.list();
|
||||
|
||||
if(primeiroPiso != null && !primeiroPiso.isEmpty()) {
|
||||
return primeiroPiso.get(0);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Buscar corrida primeiro piso, a partir do segundo
|
||||
*
|
||||
* @param esquemaCorrida
|
||||
* @return
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public EsquemaCorrida buscarPrimeiroPisoPeloTerceiro(EsquemaCorrida esquemaCorrida) {
|
||||
Criteria c = makeCriteria();
|
||||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||
c.add(Restrictions.eq("numCorridaPisoExtra", esquemaCorrida.getNumCorrida()));
|
||||
|
||||
List<EsquemaCorrida> primeiroPiso = c.list();
|
||||
|
||||
if(primeiroPiso != null && !primeiroPiso.isEmpty()) {
|
||||
return primeiroPiso.get(0);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<EsquemaCorrida> buscaDentroVigencia(Date dataGeracao) {
|
||||
|
|
|
@ -942,10 +942,11 @@ public class CorridaServiceImpl implements CorridaService {
|
|||
try {
|
||||
|
||||
for (EsquemaCorrida esquemaCorrida : lsEsquemaCorrida) {
|
||||
Boolean isFeriado = this.isFeriado(data, esquemaCorrida);
|
||||
|
||||
log.info("esquema=" + esquemaCorrida.getEsquemacorridaId() + " numCorrida=" + esquemaCorrida.getNumCorrida());
|
||||
|
||||
|
||||
//Usado para validar se deve buscar o primeiro piso e vincular com o segungo/terceiro caso ele ja esteja criado
|
||||
boolean isSegundoOuTerceiroPiso = false;
|
||||
|
||||
if (isGeracaoAutomaticaCorrida) {
|
||||
boolean esHijoRebote = esquemaCorridaDAO.esHijoRebote(esquemaCorrida);
|
||||
boolean esSegundoPiso = esquemaCorridaDAO.esSegundoPiso(esquemaCorrida);
|
||||
|
@ -956,9 +957,60 @@ public class CorridaServiceImpl implements CorridaService {
|
|||
corridaGerada = false;
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
// Caso nao seja automatico e o segundo piso seja enviado, busca o primeiro piso e geram os dois (ou tres pisos),
|
||||
// caso o primeiro piso ja exista, o segundo e gerado e os dois sao vinculados
|
||||
boolean esHijoRebote = esquemaCorridaDAO.esHijoRebote(esquemaCorrida);
|
||||
|
||||
//Nessas tres condições, o "filho" só é gerado a partir do esquema corrida "pai"
|
||||
if (esHijoRebote) {
|
||||
log.info("E segundo HijoRebote, procurando a corrida Pai. ");
|
||||
|
||||
esquemaCorrida = esquemaCorridaDAO.buscarEsquemaPeloHijoRebote(esquemaCorrida);
|
||||
|
||||
if(esquemaCorrida == null) {
|
||||
log.info(String.format("Esquema nao gerado. esHijoRebote:%s ; ",esHijoRebote));
|
||||
corridaGerada = false;
|
||||
continue;
|
||||
}
|
||||
log.info("Corrida Pai esquema=" + esquemaCorrida.getEsquemacorridaId() + " numCorrida=" + esquemaCorrida.getNumCorrida());
|
||||
}
|
||||
|
||||
boolean esSegundoPiso = esquemaCorridaDAO.esSegundoPiso(esquemaCorrida);
|
||||
|
||||
if(esSegundoPiso) {
|
||||
isSegundoOuTerceiroPiso = true;
|
||||
log.info("E segundo Piso, procurando o primeiro piso para gerar. ");
|
||||
esquemaCorrida = esquemaCorridaDAO.buscarPrimeiroPisoPeloSegundo(esquemaCorrida);
|
||||
|
||||
if(esquemaCorrida == null) {
|
||||
log.info("Primeiro piso nao encontrado, nao ira gerar o servico: " );
|
||||
corridaGerada = false;
|
||||
continue;
|
||||
}
|
||||
|
||||
log.info("Primeiro Piso esquema=" + esquemaCorrida.getEsquemacorridaId() + " numCorrida=" + esquemaCorrida.getNumCorrida());
|
||||
}
|
||||
|
||||
boolean esTerceiroPiso = esquemaCorridaDAO.esTerceiroPiso(esquemaCorrida);
|
||||
|
||||
if(esTerceiroPiso) {
|
||||
isSegundoOuTerceiroPiso = true;
|
||||
log.info("E terceiro Piso, procurando o primeiro piso para gerar. ");
|
||||
esquemaCorrida = esquemaCorridaDAO.buscarPrimeiroPisoPeloTerceiro(esquemaCorrida);
|
||||
|
||||
if(esquemaCorrida == null) {
|
||||
log.info("Primeiro piso nao encontrado, nao ira gerar o servico: " );
|
||||
corridaGerada = false;
|
||||
continue;
|
||||
}
|
||||
log.info("Primeiro Piso esquema=" + esquemaCorrida.getEsquemacorridaId() + " numCorrida=" + esquemaCorrida.getNumCorrida());
|
||||
}
|
||||
}
|
||||
|
||||
Boolean isFeriado = this.isFeriado(data, esquemaCorrida);
|
||||
corrida = generarCorrida(esquemaCorrida, dataGeracao, false, isFeriado);
|
||||
|
||||
if(corrida != null) {
|
||||
generarCorridaInfo(corrida, esquemaCorrida);
|
||||
}
|
||||
|
@ -966,9 +1018,19 @@ public class CorridaServiceImpl implements CorridaService {
|
|||
corridaPisoExtra = null;
|
||||
corridaPisoExtra2 = null;
|
||||
|
||||
if (corrida == null) {
|
||||
if (corrida == null && !isSegundoOuTerceiroPiso) {
|
||||
corridaGerada = false;
|
||||
continue;
|
||||
|
||||
} else if(corrida == null && isSegundoOuTerceiroPiso) {
|
||||
log.info(" Primeiro piso ja existe, buscando corrida para vincular ao piso extra");
|
||||
corrida = corridaDAO.buscarPorId(criarIdCorrida(dataGeracao, esquemaCorrida));
|
||||
|
||||
if (corrida == null) {
|
||||
log.info("Nao foi encontrada corrida original, nao sera gerado o segundo/terceiro piso");
|
||||
corridaGerada = false;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// PISO EXTRA
|
||||
|
@ -1054,6 +1116,14 @@ public class CorridaServiceImpl implements CorridaService {
|
|||
return corridaGerada;
|
||||
}
|
||||
|
||||
private Id criarIdCorrida(Date dataGeracao, EsquemaCorrida esquemaCorrida) {
|
||||
Corrida.Id id = new Corrida.Id();
|
||||
id.setCorridaId(esquemaCorrida.getNumCorrida());
|
||||
id.setFeccorrida(DateUtil.normalizarToFecha(dataGeracao));
|
||||
|
||||
return id;
|
||||
}
|
||||
|
||||
private void criaCorridaRebote(Date dataGeracao, Corrida corrida, Corrida corridaPisoExtra,
|
||||
Corrida corridaPisoExtra2, EsquemaCorrida esquemaCorrida, Boolean isFeriado) {
|
||||
log.info("Corrida Rebote=" + esquemaCorrida.getEsquemacorridaId());
|
||||
|
|
Loading…
Reference in New Issue