parent
2edbe5c8d7
commit
8e11e54064
2
pom.xml
2
pom.xml
|
@ -3,7 +3,7 @@
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>br.com.rjconsultores</groupId>
|
<groupId>br.com.rjconsultores</groupId>
|
||||||
<artifactId>ModelWeb</artifactId>
|
<artifactId>ModelWeb</artifactId>
|
||||||
<version>1.17.1</version>
|
<version>1.17.2</version>
|
||||||
|
|
||||||
<distributionManagement>
|
<distributionManagement>
|
||||||
<repository>
|
<repository>
|
||||||
|
|
|
@ -82,4 +82,36 @@ public interface EsquemaCorridaDAO extends GenericDAO<EsquemaCorrida, Integer> {
|
||||||
|
|
||||||
public Integer atualizaServicoIntegracaoTotvs(Marca marca, Integer corridaId) throws BusinessException;
|
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);
|
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
|
* 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);
|
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
|
@Override
|
||||||
public List<EsquemaCorrida> buscaDentroVigencia(Date dataGeracao) {
|
public List<EsquemaCorrida> buscaDentroVigencia(Date dataGeracao) {
|
||||||
|
|
|
@ -942,10 +942,11 @@ public class CorridaServiceImpl implements CorridaService {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
for (EsquemaCorrida esquemaCorrida : lsEsquemaCorrida) {
|
for (EsquemaCorrida esquemaCorrida : lsEsquemaCorrida) {
|
||||||
Boolean isFeriado = this.isFeriado(data, esquemaCorrida);
|
|
||||||
|
|
||||||
log.info("esquema=" + esquemaCorrida.getEsquemacorridaId() + " numCorrida=" + esquemaCorrida.getNumCorrida());
|
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) {
|
if (isGeracaoAutomaticaCorrida) {
|
||||||
boolean esHijoRebote = esquemaCorridaDAO.esHijoRebote(esquemaCorrida);
|
boolean esHijoRebote = esquemaCorridaDAO.esHijoRebote(esquemaCorrida);
|
||||||
boolean esSegundoPiso = esquemaCorridaDAO.esSegundoPiso(esquemaCorrida);
|
boolean esSegundoPiso = esquemaCorridaDAO.esSegundoPiso(esquemaCorrida);
|
||||||
|
@ -956,9 +957,60 @@ public class CorridaServiceImpl implements CorridaService {
|
||||||
corridaGerada = false;
|
corridaGerada = false;
|
||||||
continue;
|
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);
|
corrida = generarCorrida(esquemaCorrida, dataGeracao, false, isFeriado);
|
||||||
|
|
||||||
if(corrida != null) {
|
if(corrida != null) {
|
||||||
generarCorridaInfo(corrida, esquemaCorrida);
|
generarCorridaInfo(corrida, esquemaCorrida);
|
||||||
}
|
}
|
||||||
|
@ -966,9 +1018,19 @@ public class CorridaServiceImpl implements CorridaService {
|
||||||
corridaPisoExtra = null;
|
corridaPisoExtra = null;
|
||||||
corridaPisoExtra2 = null;
|
corridaPisoExtra2 = null;
|
||||||
|
|
||||||
if (corrida == null) {
|
if (corrida == null && !isSegundoOuTerceiroPiso) {
|
||||||
corridaGerada = false;
|
corridaGerada = false;
|
||||||
continue;
|
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
|
// PISO EXTRA
|
||||||
|
@ -1054,6 +1116,14 @@ public class CorridaServiceImpl implements CorridaService {
|
||||||
return corridaGerada;
|
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,
|
private void criaCorridaRebote(Date dataGeracao, Corrida corrida, Corrida corridaPisoExtra,
|
||||||
Corrida corridaPisoExtra2, EsquemaCorrida esquemaCorrida, Boolean isFeriado) {
|
Corrida corridaPisoExtra2, EsquemaCorrida esquemaCorrida, Boolean isFeriado) {
|
||||||
log.info("Corrida Rebote=" + esquemaCorrida.getEsquemacorridaId());
|
log.info("Corrida Rebote=" + esquemaCorrida.getEsquemacorridaId());
|
||||||
|
|
Loading…
Reference in New Issue