Subversion Repositories Integrator Subversion

Rev

Rev 523 | Rev 648 | 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
27
        public List<VigenciaDTO> consultarVigencias() {
28
                StringBuilder jpql = new StringBuilder();
29
                jpql.append("SELECT new br.com.ec.domain.dto.VigenciaDTO(v.sequencial, v.descricao, v.dataInicio, v.dataFim) ");
30
                jpql.append("FROM Vigencia v ");
31
                jpql.append("ORDER BY v.dataInicio DESC");
32
                try {
33
                        return getEntityManager().createQuery(jpql.toString(), VigenciaDTO.class).getResultList();
34
                } catch(Exception ex) {
35
                        ex.printStackTrace();
36
                        return null;
37
                }
38
        }
39
 
439 espaco 40
        @Override
41
        public Vigencia consultarProximaVigencia(Long sequencialVigencia) {
42
                StringBuilder sql = new StringBuilder();
43
                sql.append("SELECT v FROM Vigencia v WHERE v.sequencial = :sequencialVigencia ");
44
                try {
45
                        return getEntityManager().createQuery(sql.toString(), Vigencia.class).setParameter("sequencialVigencia", sequencialVigencia + 1).getSingleResult();
46
                } catch(Exception ex) {
47
                        ex.printStackTrace();
48
                        return null;
49
                }
50
        }
51
 
523 blopes 52
        @Override
53
        public List<VigenciaDTO> consultarVigenciasParaConsolidacao() {
54
                StringBuilder jpql = new StringBuilder();
55
                jpql.append("SELECT ");
56
                jpql.append(VigenciaDTO.CONSULTA_DTO_CONSOLIDACAO);
57
                jpql.append("FROM Vigencia e ");
58
                jpql.append("ORDER BY e.dataInicio DESC");
59
                try {
60
                        return getEntityManager().createQuery(jpql.toString(), VigenciaDTO.class).getResultList();
61
                } catch(Exception ex) {
62
                        ex.printStackTrace();
63
                        return null;
64
                }
65
        }
66
 
265 espaco 67
        @Override
528 blopes 68
        public Vigencia consultarVigenciaDoPeriodo(Date periodo) {
265 espaco 69
                StringBuilder sql = new StringBuilder();
528 blopes 70
                sql.append("SELECT e FROM Vigencia e WHERE e.dataInicio <= :periodo AND e.dataFim >= :periodo ");
265 espaco 71
                try {
528 blopes 72
                        return getEntityManager().createQuery(sql.toString(), Vigencia.class).setParameter("periodo", periodo).getSingleResult();
265 espaco 73
                } catch(Exception ex) {
74
                        ex.printStackTrace();
75
                        return null;
76
                }
77
        }
78
 
528 blopes 79
        /*
265 espaco 80
        @Override
528 blopes 81
        public List<Vigencia> consultarVigenciasSemAvaliacoes() {
265 espaco 82
                StringBuilder sql = new StringBuilder();
528 blopes 83
                sql.append("SELECT e FROM Vigencia e WHERE (SELECT COUNT(*) FROM Avaliacao a WHERE a.vigencia.sequencial = e.sequencial) = 0 ");
265 espaco 84
                sql.append("ORDER BY e.dataInicio DESC");
85
                try {
528 blopes 86
                        return getEntityManager().createQuery(sql.toString(), Vigencia.class).getResultList();
265 espaco 87
                } catch(Exception ex) {
88
                        ex.printStackTrace();
89
                        return null;
90
                }
91
        }
92
 
93
        @Override
528 blopes 94
        public List<Vigencia> consultarUltimasVigencias() {
265 espaco 95
                StringBuilder sql = new StringBuilder();
528 blopes 96
                sql.append("SELECT e FROM Vigencia e ");
97
                sql.append("ORDER BY e.dataInicio DESC");
265 espaco 98
                try {
528 blopes 99
                        return getEntityManager().createQuery(sql.toString(), Vigencia.class).setMaxResults(5).getResultList();
265 espaco 100
                } catch(Exception ex) {
101
                        ex.printStackTrace();
102
                        return null;
103
                }
104
        }
105
 
106
        @Override
107
        public List<Vigencia> consultarVigenciasDoAno(String ano) {
108
                StringBuilder sql = new StringBuilder();
109
                sql.append("SELECT e FROM Vigencia e ");
110
                sql.append("WHERE :dataInicial <= e.dataInicio AND :dataFinal >= e.dataFim ");
111
                sql.append("ORDER BY e.dataInicio");
112
                try {
113
                        Date dataInicial = DataUtils.getPrimeiroDiaDoAno(new Integer(ano));
114
                        Date dataFinal = DataUtils.getUltimoDiaDoAno(new Integer(ano));
115
                        TypedQuery<Vigencia> query = (TypedQuery<Vigencia>) getEntityManager().createQuery(sql.toString(), Vigencia.class);
116
                        query.setParameter("dataInicial", dataInicial);
117
                        query.setParameter("dataFinal", dataFinal);
118
                        return query.getResultList();
119
                } catch(Exception ex) {
120
                        ex.printStackTrace();
121
                        return null;
122
                }
123
        }
124
        */
125
}