Subversion Repositories Integrator Subversion

Rev

Rev 528 | Rev 698 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
265 espaco 1
package br.com.ec.repository.jpa;
2
 
528 blopes 3
import java.util.Date;
265 espaco 4
import java.util.List;
5
 
6
import org.springframework.stereotype.Repository;
7
 
8
import br.com.ec.domain.dto.VigenciaDTO;
9
import br.com.ec.domain.model.Vigencia;
10
import br.com.ec.repository.SistemaAbstractRepository;
11
import br.com.ec.repository.VigenciaRepository;
12
 
13
@Repository
14
public class VigenciaRepositoryJpaImpl extends SistemaAbstractRepository<Vigencia> implements VigenciaRepository {
15
 
16
        @Override
17
        protected String getColunaOrdenadora() {
18
                return "sequencial DESC";
19
        }
20
 
21
        @Override
22
        protected boolean adicionarDistinct() {
23
                return false;
24
        }
25
 
26
        @Override
648 blopes 27
        public VigenciaDTO consultarVigencia(Long sequencial) {
28
                StringBuilder jpql = new StringBuilder();
29
                jpql.append("SELECT ");
30
                jpql.append(VigenciaDTO.CONSULTA_DTO_CONSOLIDACAO);
31
                jpql.append("FROM Vigencia e ");
32
                jpql.append("WHERE e.sequencial = :sequencialVigencia ");
33
                try {
34
                        return getEntityManager().createQuery(jpql.toString(), VigenciaDTO.class).setParameter("sequencialVigencia", sequencial).getSingleResult();
35
                } catch(Exception ex) {
36
                        ex.printStackTrace();
37
                        return null;
38
                }
39
        }
40
 
41
        @Override
265 espaco 42
        public List<VigenciaDTO> consultarVigencias() {
43
                StringBuilder jpql = new StringBuilder();
648 blopes 44
                jpql.append("SELECT ");
45
                jpql.append(VigenciaDTO.CONSULTA_DTO_COMPLETA);
46
                jpql.append("FROM Vigencia e ");
47
                jpql.append("ORDER BY e.dataInicio DESC");
265 espaco 48
                try {
49
                        return getEntityManager().createQuery(jpql.toString(), VigenciaDTO.class).getResultList();
50
                } catch(Exception ex) {
51
                        ex.printStackTrace();
52
                        return null;
53
                }
54
        }
55
 
439 espaco 56
        @Override
57
        public Vigencia consultarProximaVigencia(Long sequencialVigencia) {
58
                StringBuilder sql = new StringBuilder();
59
                sql.append("SELECT v FROM Vigencia v WHERE v.sequencial = :sequencialVigencia ");
60
                try {
61
                        return getEntityManager().createQuery(sql.toString(), Vigencia.class).setParameter("sequencialVigencia", sequencialVigencia + 1).getSingleResult();
62
                } catch(Exception ex) {
63
                        ex.printStackTrace();
64
                        return null;
65
                }
66
        }
67
 
523 blopes 68
        @Override
69
        public List<VigenciaDTO> consultarVigenciasParaConsolidacao() {
70
                StringBuilder jpql = new StringBuilder();
71
                jpql.append("SELECT ");
72
                jpql.append(VigenciaDTO.CONSULTA_DTO_CONSOLIDACAO);
73
                jpql.append("FROM Vigencia e ");
74
                jpql.append("ORDER BY e.dataInicio DESC");
75
                try {
76
                        return getEntityManager().createQuery(jpql.toString(), VigenciaDTO.class).getResultList();
77
                } catch(Exception ex) {
78
                        ex.printStackTrace();
79
                        return null;
80
                }
81
        }
82
 
265 espaco 83
        @Override
528 blopes 84
        public Vigencia consultarVigenciaDoPeriodo(Date periodo) {
265 espaco 85
                StringBuilder sql = new StringBuilder();
528 blopes 86
                sql.append("SELECT e FROM Vigencia e WHERE e.dataInicio <= :periodo AND e.dataFim >= :periodo ");
265 espaco 87
                try {
528 blopes 88
                        return getEntityManager().createQuery(sql.toString(), Vigencia.class).setParameter("periodo", periodo).getSingleResult();
265 espaco 89
                } catch(Exception ex) {
90
                        ex.printStackTrace();
91
                        return null;
92
                }
93
        }
94
 
528 blopes 95
        /*
265 espaco 96
        @Override
528 blopes 97
        public List<Vigencia> consultarVigenciasSemAvaliacoes() {
265 espaco 98
                StringBuilder sql = new StringBuilder();
528 blopes 99
                sql.append("SELECT e FROM Vigencia e WHERE (SELECT COUNT(*) FROM Avaliacao a WHERE a.vigencia.sequencial = e.sequencial) = 0 ");
265 espaco 100
                sql.append("ORDER BY e.dataInicio DESC");
101
                try {
528 blopes 102
                        return getEntityManager().createQuery(sql.toString(), Vigencia.class).getResultList();
265 espaco 103
                } catch(Exception ex) {
104
                        ex.printStackTrace();
105
                        return null;
106
                }
107
        }
108
 
109
        @Override
528 blopes 110
        public List<Vigencia> consultarUltimasVigencias() {
265 espaco 111
                StringBuilder sql = new StringBuilder();
528 blopes 112
                sql.append("SELECT e FROM Vigencia e ");
113
                sql.append("ORDER BY e.dataInicio DESC");
265 espaco 114
                try {
528 blopes 115
                        return getEntityManager().createQuery(sql.toString(), Vigencia.class).setMaxResults(5).getResultList();
265 espaco 116
                } catch(Exception ex) {
117
                        ex.printStackTrace();
118
                        return null;
119
                }
120
        }
121
 
122
        @Override
123
        public List<Vigencia> consultarVigenciasDoAno(String ano) {
124
                StringBuilder sql = new StringBuilder();
125
                sql.append("SELECT e FROM Vigencia e ");
126
                sql.append("WHERE :dataInicial <= e.dataInicio AND :dataFinal >= e.dataFim ");
127
                sql.append("ORDER BY e.dataInicio");
128
                try {
129
                        Date dataInicial = DataUtils.getPrimeiroDiaDoAno(new Integer(ano));
130
                        Date dataFinal = DataUtils.getUltimoDiaDoAno(new Integer(ano));
131
                        TypedQuery<Vigencia> query = (TypedQuery<Vigencia>) getEntityManager().createQuery(sql.toString(), Vigencia.class);
132
                        query.setParameter("dataInicial", dataInicial);
133
                        query.setParameter("dataFinal", dataFinal);
134
                        return query.getResultList();
135
                } catch(Exception ex) {
136
                        ex.printStackTrace();
137
                        return null;
138
                }
139
        }
140
        */
141
}