Rev 648 |
Rev 715 |
Go to most recent revision |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
package br.com.ec.repository.jpa;
import java.util.Date;
import java.util.List;
import org.springframework.stereotype.Repository;
import br.com.ec.domain.dto.VigenciaDTO;
import br.com.ec.domain.model.Vigencia;
import br.com.ec.repository.SistemaAbstractRepository;
import br.com.ec.repository.VigenciaRepository;
@Repository
public class VigenciaRepositoryJpaImpl
extends SistemaAbstractRepository
<Vigencia
> implements VigenciaRepository
{
@
Override
protected String getColunaOrdenadora
() {
return "sequencial DESC";
}
@
Override
protected boolean adicionarDistinct
() {
return false;
}
@
Override
public VigenciaDTO consultarVigencia
(Long sequencial
) {
StringBuilder jpql =
new StringBuilder();
jpql.
append("SELECT ");
jpql.
append(VigenciaDTO.
CONSULTA_DTO_CONSOLIDACAO);
jpql.
append("FROM Vigencia e ");
jpql.
append("WHERE e.sequencial = :sequencialVigencia ");
try {
return getEntityManager
().
createQuery(jpql.
toString(), VigenciaDTO.
class).
setParameter("sequencialVigencia", sequencial
).
getSingleResult();
} catch(Exception ex
) {
ex.
printStackTrace();
return null;
}
}
@
Override
public List<VigenciaDTO
> consultarVigencias
() {
StringBuilder jpql =
new StringBuilder();
jpql.
append("SELECT ");
jpql.
append(VigenciaDTO.
CONSULTA_DTO_COMPLETA);
jpql.
append("FROM Vigencia e ");
jpql.
append("ORDER BY e.dataInicio DESC");
try {
return getEntityManager
().
createQuery(jpql.
toString(), VigenciaDTO.
class).
getResultList();
} catch(Exception ex
) {
ex.
printStackTrace();
return null;
}
}
@
Override
public Vigencia consultarProximaVigencia
(Long sequencialVigencia
) {
StringBuilder sql =
new StringBuilder();
sql.
append("SELECT v FROM Vigencia v WHERE v.sequencial = :sequencialVigencia ");
try {
return getEntityManager
().
createQuery(sql.
toString(), Vigencia.
class).
setParameter("sequencialVigencia", sequencialVigencia +
1).
getSingleResult();
} catch(Exception ex
) {
ex.
printStackTrace();
return null;
}
}
@
Override
public List<VigenciaDTO
> consultarVigenciasParaConsolidacao
() {
StringBuilder jpql =
new StringBuilder();
jpql.
append("SELECT ");
jpql.
append(VigenciaDTO.
CONSULTA_DTO_CONSOLIDACAO);
jpql.
append("FROM Vigencia e ");
jpql.
append("ORDER BY e.dataInicio DESC");
try {
return getEntityManager
().
createQuery(jpql.
toString(), VigenciaDTO.
class).
getResultList();
} catch(Exception ex
) {
ex.
printStackTrace();
return null;
}
}
@
Override
public Vigencia consultarVigenciaDoPeriodo
(Date periodo
) {
StringBuilder sql =
new StringBuilder();
sql.
append("SELECT e FROM Vigencia e WHERE e.dataInicio <= :periodo AND e.dataFim >= :periodo ");
try {
return getEntityManager
().
createQuery(sql.
toString(), Vigencia.
class).
setParameter("periodo", periodo
).
getSingleResult();
} catch(Exception ex
) {
ex.
printStackTrace();
return null;
}
}
@
Override
public void alterarSituacaoFolha
(Long sequencialVigencia,
String situacao
) {
StringBuilder sql =
new StringBuilder();
sql.
append("UPDATE Vigencia vigencia SET vigencia.tipoSituacaoFolha = :situacao ");
sql.
append("WHERE vigencia.sequencial = :sequencialVigencia ");
try {
getEntityManager
().
createQuery(sql.
toString())
.
setParameter("sequencialVigencia", sequencialVigencia
)
.
setParameter("situacao", situacao
)
.
executeUpdate();
getEntityManager
().
flush();
} catch(Exception ex
) {
ex.
printStackTrace();
}
}
/*
@Override
public List<Vigencia> consultarVigenciasSemAvaliacoes() {
StringBuilder sql = new StringBuilder();
sql.append("SELECT e FROM Vigencia e WHERE (SELECT COUNT(*) FROM Avaliacao a WHERE a.vigencia.sequencial = e.sequencial) = 0 ");
sql.append("ORDER BY e.dataInicio DESC");
try {
return getEntityManager().createQuery(sql.toString(), Vigencia.class).getResultList();
} catch(Exception ex) {
ex.printStackTrace();
return null;
}
}
@Override
public List<Vigencia> consultarUltimasVigencias() {
StringBuilder sql = new StringBuilder();
sql.append("SELECT e FROM Vigencia e ");
sql.append("ORDER BY e.dataInicio DESC");
try {
return getEntityManager().createQuery(sql.toString(), Vigencia.class).setMaxResults(5).getResultList();
} catch(Exception ex) {
ex.printStackTrace();
return null;
}
}
@Override
public List<Vigencia> consultarVigenciasDoAno(String ano) {
StringBuilder sql = new StringBuilder();
sql.append("SELECT e FROM Vigencia e ");
sql.append("WHERE :dataInicial <= e.dataInicio AND :dataFinal >= e.dataFim ");
sql.append("ORDER BY e.dataInicio");
try {
Date dataInicial = DataUtils.getPrimeiroDiaDoAno(new Integer(ano));
Date dataFinal = DataUtils.getUltimoDiaDoAno(new Integer(ano));
TypedQuery<Vigencia> query = (TypedQuery<Vigencia>) getEntityManager().createQuery(sql.toString(), Vigencia.class);
query.setParameter("dataInicial", dataInicial);
query.setParameter("dataFinal", dataFinal);
return query.getResultList();
} catch(Exception ex) {
ex.printStackTrace();
return null;
}
}
*/
}