Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 espaco 1
package br.gov.al.saude.rhd.model;
2
 
3
import java.io.Serializable;
4
import java.util.ArrayList;
5
import java.util.Date;
6
import java.util.List;
7
 
8
import javax.persistence.CascadeType;
9
import javax.persistence.Column;
10
import javax.persistence.Entity;
11
import javax.persistence.FetchType;
12
import javax.persistence.GeneratedValue;
13
import javax.persistence.GenerationType;
14
import javax.persistence.Id;
15
import javax.persistence.JoinColumn;
16
import javax.persistence.JoinColumns;
17
import javax.persistence.ManyToOne;
18
import javax.persistence.OneToMany;
19
import javax.persistence.SequenceGenerator;
20
import javax.persistence.Table;
21
import javax.persistence.Transient;
22
import javax.validation.Valid;
23
import javax.validation.constraints.NotNull;
24
 
25
import org.hibernate.validator.constraints.NotEmpty;
26
 
27
import br.gov.al.saude.framework.core.interfaces.Cadastrar;
28
import br.gov.al.saude.framework.core.util.VerificadorUtil;
29
import br.gov.al.saude.rhd.tipo.TipoAvaliacao;
30
import br.gov.al.saude.rhd.tipo.TipoRevisao;
31
 
32
@Entity
33
@Table(name = "rhd_solicitacao_revisavaliac", schema = "sc_rhd")
34
public class RevisaoAvaliacao implements Serializable, Comparable<RevisaoAvaliacao> {
35
 
36
        private static final long serialVersionUID = 1L;
37
 
38
        private Long sequencial;
39
        private String solicitacao;
40
        private String resposta;
41
        private String tipoAvaliacao;
42
        private String tipoRevisao;
43
        private Double nota;
44
        private Date dataHoraCadastro;
45
        private ServidorAvaliacao servidorAvaliacao;
46
        private List<RevisaoAvaliacaoDesempenho> revisoesAvaliacaoDesempenho;
47
 
48
        @Id
49
        @Column(name="seq_solicitacao_revisavaliac", nullable=false)
50
        @GeneratedValue(generator = "SOLICITACAO_REVISAO_GENERATOR", strategy = GenerationType.SEQUENCE)
51
        @SequenceGenerator(name = "SOLICITACAO_REVISAO_GENERATOR", sequenceName = "sq_solrevisaval", initialValue = 1, allocationSize = 1)
52
        public Long getSequencial() {
53
                return sequencial;
54
        }
55
 
56
        public void setSequencial(Long sequencial) {
57
                this.sequencial = sequencial;
58
        }
59
 
60
        @Column(name="dsc_solicitacao_revisavaliac", nullable=false)
61
        @NotNull(message="Obrigatório informar a solicitação.", groups={Cadastrar.class})   
62
        @NotEmpty(message="Obrigatório informar a solicitação.", groups={Cadastrar.class})
63
        public String getSolicitacao() {
64
                return solicitacao;
65
        }
66
 
67
        public void setSolicitacao(String solicitacao) {
68
                this.solicitacao = solicitacao;
69
        }
70
 
71
        @Column(name="dsc_resposta_solicitacao", nullable=false)
72
        public String getResposta() {
73
                return resposta;
74
        }
75
 
76
        public void setResposta(String respota) {
77
                this.resposta = respota;
78
        }
79
 
80
        @Column(name="tip_avaliacao", nullable=false)
81
        public String getTipoAvaliacao() {
82
                return tipoAvaliacao;
83
        }
84
 
85
        public void setTipoAvaliacao(String tipoAvaliacao) {
86
                this.tipoAvaliacao = tipoAvaliacao;
87
        }
88
 
89
        @Column(name="tip_revisao", nullable=false)
90
        public String getTipoRevisao() {
91
                return tipoRevisao;
92
        }
93
 
94
        public void setTipoRevisao(String tipoRevisao) {
95
                this.tipoRevisao = tipoRevisao;
96
        }
97
 
98
        @Column(name="num_nota_avaliacao", nullable=false)
99
        public Double getNota() {
100
                return nota;
101
        }
102
 
103
        public void setNota(Double nota) {
104
                this.nota = nota;
105
        }
106
 
107
        @Column(name="dth_cadastro", nullable = false, updatable = false, insertable = false)
108
        public Date getDataHoraCadastro() {
109
                return dataHoraCadastro;
110
        }
111
 
112
        public void setDataHoraCadastro(Date dataHoraCadastro) {
113
                this.dataHoraCadastro = dataHoraCadastro;
114
        }
115
 
116
        @ManyToOne
117
        @JoinColumns({
118
                @JoinColumn(name ="seq_servidor_dadofuncional", referencedColumnName ="seq_servidor_dadofuncional" ),
119
                @JoinColumn(name ="num_ano", referencedColumnName ="num_ano" )
120
        })
121
        public ServidorAvaliacao getServidorAvaliacao() {
122
                return servidorAvaliacao;
123
        }
124
 
125
        public void setServidorAvaliacao(ServidorAvaliacao servidorAvaliacao) {
126
                this.servidorAvaliacao = servidorAvaliacao;
127
        }
128
 
129
        @Valid
130
        @OneToMany(mappedBy="revisaoAvaliacao", fetch=FetchType.EAGER, cascade=CascadeType.MERGE)
131
        public List<RevisaoAvaliacaoDesempenho> getRevisoesAvaliacaoDesempenho() {
132
                return VerificadorUtil.estaNulo(revisoesAvaliacaoDesempenho)? new ArrayList<RevisaoAvaliacaoDesempenho>() : revisoesAvaliacaoDesempenho;
133
        }
134
 
135
        public void setRevisoesAvaliacaoDesempenho(List<RevisaoAvaliacaoDesempenho> revisoesAvaliacaoDesempenho) {
136
                this.revisoesAvaliacaoDesempenho = revisoesAvaliacaoDesempenho;
137
        }
138
 
139
        @Transient
140
        public String getDescricaoTipoAvaliacao(){
141
                return VerificadorUtil.naoEstaNulo(getTipoAvaliacao()) ? TipoAvaliacao.parse(getTipoAvaliacao()).getDescricao() : null;
142
        }
143
 
144
        @Transient
145
        public String getDescricaoTipoRevisao(){
146
                return TipoRevisao.parse(getTipoRevisao()).getDescricao();
147
        }
148
 
149
        @Transient
150
        public Boolean isAvaliacaoDesempenho(){
151
                return TipoAvaliacao.DESEMPENHO.getValue().equals(tipoAvaliacao);
152
        }
153
 
154
        @Transient
155
        public Boolean isDiferenteDeAvaliacaoDesempenho(){
156
                return !isAvaliacaoDesempenho();
157
        }
158
 
159
        @Transient
160
        public Boolean isRevisaoTipoRecurso(){
161
                return TipoRevisao.RECURSO.getValue().equals(tipoRevisao);
162
        }
163
 
164
        @Transient
165
        public String getTipoRevisaoPorExtenso() {
166
                return getTipoRevisao() != null ? TipoRevisao.parse(getTipoRevisao()).getDescricao() : null;
167
        }
168
 
169
        public void adicionarRevisaoAvaliacaoDesempenho(RevisaoAvaliacaoDesempenho revisaoAvaliacaoDesempenho) {
170
                if (revisoesAvaliacaoDesempenho == null) {
171
                        revisoesAvaliacaoDesempenho = new ArrayList<RevisaoAvaliacaoDesempenho>();
172
                }
173
                revisoesAvaliacaoDesempenho.add(revisaoAvaliacaoDesempenho);
174
        }
175
 
176
        @Override
177
        public int hashCode() {
178
                final int prime = 31;
179
                int result = 1;
180
                result = prime * result + ((getSequencial() == null) ? 0 : getSequencial().hashCode());
181
                return result;
182
        }
183
 
184
        @Override
185
        public boolean equals(Object obj) {
186
                if (this == obj)
187
                        return true;
188
                if (obj == null)
189
                        return false;
190
                if (getClass() != obj.getClass())
191
                        return false;
192
                RevisaoAvaliacao other = (RevisaoAvaliacao) obj;
193
                if (getSequencial() == null) {
194
                        if (other.getSequencial() != null) {
195
                                return false;
196
                        }
197
                } else if (!getSequencial().equals(other.getSequencial())) {
198
                        return false;
199
                }
200
                return true;
201
        }
202
 
203
        @Override
204
        public int compareTo(RevisaoAvaliacao o) {
205
                return getServidorAvaliacao().compareTo(o.getServidorAvaliacao());
206
        }
207
 
208
}