Subversion Repositories Integrator Subversion

Rev

Rev 715 | 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
 
698 blopes 95
        @Override
732 blopes 96
        public void alterarSituacao(String campoTipo, Long sequencialVigencia, String situacao) {
698 blopes 97
                StringBuilder sql = new StringBuilder();
732 blopes 98
                sql.append("UPDATE Vigencia vigencia SET vigencia.");
99
                sql.append(campoTipo);
100
                sql.append(" = :situacao ");
698 blopes 101
                sql.append("WHERE vigencia.sequencial = :sequencialVigencia ");
102
                try {
103
                        getEntityManager().createQuery(sql.toString())
104
                                .setParameter("sequencialVigencia", sequencialVigencia)
105
                                .setParameter("situacao", situacao)
106
                                .executeUpdate();
107
                        getEntityManager().flush();
108
                } catch(Exception ex) {
109
                        ex.printStackTrace();
110
                }
111
        }
112
 
528 blopes 113
        /*
265 espaco 114
        @Override
528 blopes 115
        public List<Vigencia> consultarVigenciasSemAvaliacoes() {
265 espaco 116
                StringBuilder sql = new StringBuilder();
528 blopes 117
                sql.append("SELECT e FROM Vigencia e WHERE (SELECT COUNT(*) FROM Avaliacao a WHERE a.vigencia.sequencial = e.sequencial) = 0 ");
265 espaco 118
                sql.append("ORDER BY e.dataInicio DESC");
119
                try {
528 blopes 120
                        return getEntityManager().createQuery(sql.toString(), Vigencia.class).getResultList();
265 espaco 121
                } catch(Exception ex) {
122
                        ex.printStackTrace();
123
                        return null;
124
                }
125
        }
126
 
127
        @Override
528 blopes 128
        public List<Vigencia> consultarUltimasVigencias() {
265 espaco 129
                StringBuilder sql = new StringBuilder();
528 blopes 130
                sql.append("SELECT e FROM Vigencia e ");
131
                sql.append("ORDER BY e.dataInicio DESC");
265 espaco 132
                try {
528 blopes 133
                        return getEntityManager().createQuery(sql.toString(), Vigencia.class).setMaxResults(5).getResultList();
265 espaco 134
                } catch(Exception ex) {
135
                        ex.printStackTrace();
136
                        return null;
137
                }
138
        }
139
 
140
        @Override
141
        public List<Vigencia> consultarVigenciasDoAno(String ano) {
142
                StringBuilder sql = new StringBuilder();
143
                sql.append("SELECT e FROM Vigencia e ");
144
                sql.append("WHERE :dataInicial <= e.dataInicio AND :dataFinal >= e.dataFim ");
145
                sql.append("ORDER BY e.dataInicio");
146
                try {
147
                        Date dataInicial = DataUtils.getPrimeiroDiaDoAno(new Integer(ano));
148
                        Date dataFinal = DataUtils.getUltimoDiaDoAno(new Integer(ano));
149
                        TypedQuery<Vigencia> query = (TypedQuery<Vigencia>) getEntityManager().createQuery(sql.toString(), Vigencia.class);
150
                        query.setParameter("dataInicial", dataInicial);
151
                        query.setParameter("dataFinal", dataFinal);
152
                        return query.getResultList();
153
                } catch(Exception ex) {
154
                        ex.printStackTrace();
155
                        return null;
156
                }
157
        }
158
        */
159
}