Subversion Repositories Integrator Subversion

Rev

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
}