Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 353 | espaco | 1 | package br.com.ec.repository.jpa; |
| 2 | |||
| 3 | import java.util.List; |
||
| 4 | |||
| 5 | import javax.persistence.Query; |
||
| 6 | import javax.persistence.TypedQuery; |
||
| 7 | |||
| 8 | import org.springframework.stereotype.Repository; |
||
| 9 | |||
| 10 | import br.com.ec.core.consulta.ParametrosConsulta; |
||
| 11 | import br.com.ec.core.util.DataUtils; |
||
| 12 | import br.com.ec.core.util.VerificadorUtil; |
||
| 13 | import br.com.ec.domain.dto.VigenciaDTO; |
||
| 14 | import br.com.ec.domain.model.Ponto; |
||
| 15 | import br.com.ec.repository.PontoRepository; |
||
| 16 | import br.com.ec.repository.SistemaAbstractRepository; |
||
| 17 | |||
| 18 | @Repository |
||
| 19 | public class PontoRepositoryJpaImpl extends SistemaAbstractRepository<Ponto> implements PontoRepository { |
||
| 20 | |||
| 21 | @Override |
||
| 22 | protected String getColunaOrdenadora() { |
||
| 23 | return "dataPonto"; |
||
| 24 | } |
||
| 25 | |||
| 26 | @Override |
||
| 27 | public List<Ponto> consultarPontosEletronicos(VigenciaDTO vigenciaDTO, Long sequencialPessoa) { |
||
| 28 | StringBuilder sql = new StringBuilder(); |
||
| 29 | sql.append("SELECT p FROM Ponto p "); |
||
| 30 | sql.append("WHERE (p.dataPonto >= :dataInicial AND p.dataPonto <= :dataFinal) "); |
||
| 31 | sql.append("AND (p.pessoa.sequencial = :sequencialPessoa) "); |
||
| 32 | sql.append("ORDER BY p.dataPonto "); |
||
| 33 | try { |
||
| 34 | TypedQuery<Ponto> query = getEntityManager().createQuery(sql.toString(), Ponto.class) |
||
| 35 | .setParameter("dataInicial", DataUtils.getDataComHorarioMinimo(vigenciaDTO.getDataInicio())) |
||
| 36 | .setParameter("dataFinal", DataUtils.getDataComHorarioMaximo(vigenciaDTO.getDataFim())) |
||
| 37 | .setParameter("sequencialPessoa", sequencialPessoa); |
||
| 38 | return query.getResultList(); |
||
| 39 | } catch(Exception ex) { |
||
| 40 | ex.printStackTrace(); |
||
| 41 | return null; |
||
| 42 | } |
||
| 43 | } |
||
| 44 | |||
| 45 | @Override |
||
| 46 | protected void setarStringParametrosConsulta(StringBuilder sql, ParametrosConsulta<Ponto> parametros) { |
||
| 47 | if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getEntidade())) { |
||
| 48 | if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getEntidade().getPessoa())) { |
||
| 49 | sql.append("AND e.pessoa = :pessoa "); |
||
| 50 | } |
||
| 51 | if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getEntidade().getLoja())) { |
||
| 52 | sql.append("AND e.loja.sequencial = :sequencialLoja "); |
||
| 53 | } |
||
| 54 | if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getEntidade().getDataPonto())) { |
||
| 55 | sql.append("AND e.dataPonto = :dataPonto "); |
||
| 56 | } |
||
| 57 | } |
||
| 58 | } |
||
| 59 | |||
| 60 | @Override |
||
| 61 | protected void setarQueryParametrosConsulta(Query query, ParametrosConsulta<Ponto> parametros) { |
||
| 62 | if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getEntidade())) { |
||
| 63 | if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getEntidade().getPessoa())) { |
||
| 64 | query.setParameter("pessoa", parametros.getEntidade().getPessoa()); |
||
| 65 | } |
||
| 66 | if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getEntidade().getLoja())) { |
||
| 67 | query.setParameter("sequencialLoja", parametros.getEntidade().getSequencialDaLoja()); |
||
| 68 | } |
||
| 69 | if (VerificadorUtil.naoEstaNuloOuVazio(parametros.getEntidade().getDataPonto())) { |
||
| 70 | query.setParameter("dataPonto", parametros.getEntidade().getDataPonto()); } |
||
| 71 | } |
||
| 72 | } |
||
| 73 | |||
| 74 | @Override |
||
| 75 | protected void setarStringParametrosConsultar(StringBuilder sql, Ponto ponto) { |
||
| 76 | if (VerificadorUtil.naoEstaNuloOuVazio(ponto)) { |
||
| 77 | if (VerificadorUtil.naoEstaNuloOuVazio(ponto.getPessoa())) { |
||
| 78 | sql.append("AND e.pessoa = :pessoa "); |
||
| 79 | } |
||
| 80 | if (VerificadorUtil.naoEstaNuloOuVazio(ponto.getLoja())) { |
||
| 81 | sql.append("AND e.loja.sequencial = :sequencialLoja "); |
||
| 82 | } |
||
| 83 | if (VerificadorUtil.naoEstaNuloOuVazio(ponto.getDataPonto())) { |
||
| 84 | sql.append("AND e.dataPonto = :dataPonto "); |
||
| 85 | } |
||
| 86 | } |
||
| 87 | } |
||
| 88 | |||
| 89 | @Override |
||
| 90 | protected void setarQueryParametrosConsultar(Query query, Ponto ponto) { |
||
| 91 | if (VerificadorUtil.naoEstaNuloOuVazio(ponto)) { |
||
| 92 | if (VerificadorUtil.naoEstaNuloOuVazio(ponto.getPessoa())) { |
||
| 93 | query.setParameter("pessoa", ponto.getPessoa()); |
||
| 94 | } |
||
| 95 | if (VerificadorUtil.naoEstaNuloOuVazio(ponto.getLoja())) { |
||
| 96 | query.setParameter("sequencialLoja", ponto.getSequencialDaLoja()); |
||
| 97 | } |
||
| 98 | if (VerificadorUtil.naoEstaNuloOuVazio(ponto.getDataPonto())) { |
||
| 99 | query.setParameter("dataPonto", ponto.getDataPonto()); |
||
| 100 | } |
||
| 101 | } |
||
| 102 | } |
||
| 103 | |||
| 104 | } |