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.List;
6
 
7
import javax.persistence.Column;
8
import javax.persistence.EmbeddedId;
9
import javax.persistence.Entity;
10
import javax.persistence.FetchType;
11
import javax.persistence.JoinColumn;
12
import javax.persistence.ManyToOne;
13
import javax.persistence.OneToMany;
14
import javax.persistence.Table;
15
import javax.persistence.Transient;
16
import javax.validation.Valid;
17
 
18
import org.hibernate.annotations.SQLDelete;
19
 
20
import br.gov.al.saude.framework.core.generic.identidade.Identidade;
21
import br.gov.al.saude.framework.core.util.VerificadorUtil;
22
import br.gov.al.saude.rhd.model.view.ServidorDadoFuncionalView;
23
import br.gov.al.saude.rhd.model.view.ServidorView;
24
import br.gov.al.saude.rhd.model.view.UnidadeView;
25
 
26
@Entity
27
@Table(name = "rhd_servidor_avaliacao", schema = "sc_rhd")
28
@SQLDelete(sql="UPDATE sc_rhd.rhd_servidor_avaliacao SET seq_grupo_avaliacao = null WHERE num_ano = ? and seq_servidor_dadofuncional = ?")
29
public class ServidorAvaliacao implements Serializable, Identidade, Comparable<ServidorAvaliacao>  {
30
 
31
        private static final long serialVersionUID = 1L;
32
 
33
        private ServidorAvaliacaoId servidorAvaliacaoId;
34
        private ServidorDadoFuncionalView servidorDadoFuncional;
35
        private Cronograma cronograma;
36
        private String tipoEfetivoExercicio;
37
        private GrupoAvaliacao grupoAvaliacao;
38
        private Boolean participacaoAvaliado;
39
        private String descricaoJustificativa;
40
        private Boolean statusAvaliacao;
41
        private List<RevisaoAvaliacao> revisoes;
42
 
43
        public ServidorAvaliacao() {
44
                servidorDadoFuncional = new ServidorDadoFuncionalView(new ServidorView());
45
                cronograma = new Cronograma();
46
                participacaoAvaliado = false;
47
        }
48
 
49
        public ServidorAvaliacao(String tipoEfetivoExercicio, Boolean participacaoAvaliado, String descricaoJustificativa,
50
                                                         Long sequencialDadoFuncional, Long numeroMatriculaDadoFuncional, Integer numeroDigitoMatriculaDadoFuncional,
51
                                                         String nomeServidor, Long numeroAnoCronograma, Long sequencialPessoa) {
52
                super();
53
                this.tipoEfetivoExercicio = tipoEfetivoExercicio;
54
                this.participacaoAvaliado = participacaoAvaliado;
55
                this.descricaoJustificativa = descricaoJustificativa;
56
                this.cronograma = new Cronograma(numeroAnoCronograma);
57
                this.servidorAvaliacaoId = new ServidorAvaliacaoId(sequencialDadoFuncional, numeroAnoCronograma);
58
                this.servidorDadoFuncional = new ServidorDadoFuncionalView(sequencialDadoFuncional, numeroMatriculaDadoFuncional,
59
                                                                                                                                   numeroDigitoMatriculaDadoFuncional, nomeServidor, sequencialPessoa);
60
        }
61
 
62
        @Override
63
        public void setId(Object id) {
64
                this.servidorAvaliacaoId = (ServidorAvaliacaoId) id;
65
        }
66
 
67
        @Override
68
        @Transient
69
        public Object getId() {
70
                return this.servidorAvaliacaoId;
71
        }
72
 
73
        @Valid
74
        @EmbeddedId
75
        public ServidorAvaliacaoId getServidorAvaliacaoId() {
76
                return servidorAvaliacaoId;
77
        }
78
 
79
        public void setServidorAvaliacaoId(ServidorAvaliacaoId servidorAvaliacaoId) {
80
                this.servidorAvaliacaoId = servidorAvaliacaoId;
81
        }
82
 
83
        @ManyToOne
84
        @JoinColumn(name="seq_servidor_dadofuncional", referencedColumnName="seq_servidor_dadofuncional", insertable=false, updatable=false, nullable=false)
85
        public ServidorDadoFuncionalView getServidorDadoFuncional() {
86
                return servidorDadoFuncional;
87
        }
88
 
89
        public void setServidorDadoFuncional(ServidorDadoFuncionalView servidorDadoFuncional) {
90
                this.servidorDadoFuncional = servidorDadoFuncional;
91
        }
92
 
93
        @ManyToOne
94
        @JoinColumn(name="num_ano", referencedColumnName="num_ano", insertable=false, updatable=false, nullable=false)
95
        public Cronograma getCronograma() {
96
                return cronograma;
97
        }
98
 
99
        public void setCronograma(Cronograma cronograma) {
100
                this.cronograma = cronograma;
101
        }
102
 
103
        @Column(name="tip_efetivo_exercicio", nullable=false)
104
        public String getTipoEfetivoExercicio() {
105
                return tipoEfetivoExercicio;
106
        }
107
 
108
        public void setTipoEfetivoExercicio(String tipoEfetivoExercicio) {
109
                this.tipoEfetivoExercicio = tipoEfetivoExercicio;
110
        }
111
 
112
        @ManyToOne
113
        @JoinColumn(name="seq_grupo_avaliacao")
114
        public GrupoAvaliacao getGrupoAvaliacao() {
115
                return grupoAvaliacao;
116
        }
117
 
118
        public void setGrupoAvaliacao(GrupoAvaliacao grupoAvaliacao) {
119
                this.grupoAvaliacao = grupoAvaliacao;
120
        }
121
 
122
        @OneToMany(mappedBy="servidorAvaliacao", fetch=FetchType.LAZY)
123
        public List<RevisaoAvaliacao> getRevisoes() {
124
                return VerificadorUtil.estaNulo(revisoes)? new ArrayList<RevisaoAvaliacao>(): revisoes;
125
        }
126
 
127
        public void setRevisoes(List<RevisaoAvaliacao> revisoes) {
128
                this.revisoes = revisoes;
129
        }
130
 
131
        @Column(name = "ind_participacao_avaliado")
132
        public Boolean getParticipacaoAvaliado() {
133
                return participacaoAvaliado;
134
        }
135
 
136
        public void setParticipacaoAvaliado(Boolean participacaoAvaliado) {
137
                this.participacaoAvaliado = participacaoAvaliado;
138
        }
139
 
140
        @Transient
141
        public String getEfetivoExercicioPorExtenso() {
142
                if(tipoEfetivoExercicio != null) {
143
                        char efetivoExercicio = tipoEfetivoExercicio.charAt(0);
144
                        switch (efetivoExercicio) {
145
                        case 'S':
146
                                return "Sim";
147
                        case 'N':
148
                                return "Não";
149
                        case 'P':
150
                                return "Pendente";
151
                        default:
152
                                break;
153
                        }
154
                }
155
                return null;
156
        }
157
 
158
        @Transient
159
        public String getEfetivoExercicio() {
160
                if(tipoEfetivoExercicio != null) {
161
                        return tipoEfetivoExercicio;
162
                }
163
                return null;
164
        }
165
 
166
        @Column(name="dsc_justificativa")
167
        public String getDescricaoJustificativa() {
168
                return descricaoJustificativa;
169
        }
170
 
171
        public void setDescricaoJustificativa(String descricaoJustificativa) {
172
                this.descricaoJustificativa = descricaoJustificativa;
173
        }
174
 
175
        @Override
176
        public int hashCode() {
177
                final int prime = 31;
178
                int result = 1;
179
                result = prime * result + ((servidorAvaliacaoId == null) ? 0 : servidorAvaliacaoId.hashCode());
180
                return result;
181
        }
182
 
183
        @Override
184
        public boolean equals(Object obj) {
185
                if (this == obj)
186
                        return true;
187
                if (obj == null)
188
                        return false;
189
                if (getClass() != obj.getClass())
190
                        return false;
191
                ServidorAvaliacao other = (ServidorAvaliacao) obj;
192
                if (servidorAvaliacaoId == null) {
193
                        if (other.servidorAvaliacaoId != null)
194
                                return false;
195
                } else if (!servidorAvaliacaoId.equals(other.servidorAvaliacaoId))
196
                        return false;
197
                return true;
198
        }
199
 
200
        @Transient
201
        public String getNomeServidor() {
202
                return getServidorDadoFuncional().getServidorView() != null ? getServidorDadoFuncional().getServidorView().getNome() : "" ;
203
        }
204
 
205
        @Transient
206
        public String getCpfServidor() {
207
                return getServidorDadoFuncional().getServidorView() != null ? getServidorDadoFuncional().getServidorView().getCpf() : "" ;
208
        }
209
 
210
        @Transient
211
        public String getMatriculaServidorConvertidaParaString() {
212
                return getServidorDadoFuncional() != null ? getServidorDadoFuncional().getNumeroMatricula().toString() : "" ;
213
        }
214
 
215
        @Transient
216
        public Long getMatriculaServidor() {
217
                return getServidorDadoFuncional() != null ? getServidorDadoFuncional().getNumeroMatricula() : null ;
218
        }
219
 
220
        @Transient
221
        public Integer getDigitoMatriculaServidor() {
222
                return getServidorDadoFuncional() != null ? getServidorDadoFuncional().getNumeroDigitoMatricula() : null ;
223
        }
224
 
225
        @Override
226
        public int compareTo(ServidorAvaliacao o) {
227
                return getNomeServidor().compareToIgnoreCase(o.getNomeServidor());
228
        }
229
 
230
        public void setStatusAvaliacao(Boolean statusAvaliacao) {
231
                this.statusAvaliacao = statusAvaliacao;
232
        }
233
 
234
        @Transient
235
        public Boolean getStatusAvaliacao() {
236
                return statusAvaliacao;
237
        }
238
 
239
        @Transient
240
        public String getParticipacaoAvaliadoPorExtenso() {
241
                return getParticipacaoAvaliado()? "Sim" : "Não";
242
        }
243
 
244
        @Transient
245
        public String getStatusAvaliacaoPorExtenso() {
246
                return getStatusAvaliacao() ? "Realizado" : "Pendente";
247
        }
248
 
249
        @Transient
250
        public Long getSequencialDadoFuncionalDoServidor() {
251
                return getServidorAvaliacaoId() != null ? getServidorAvaliacaoId().getSequencialDadoFuncionalServidor() : null;
252
        }
253
 
254
        @Transient
255
        public UnidadeView getUnidadeExercicioDadoFuncionalServidor() {
256
                return VerificadorUtil.naoEstaNulo(getServidorDadoFuncional()) ? getServidorDadoFuncional().getUnidadeExercicio() : null;
257
        }
258
 
259
        @Transient
260
        public Long getSequencialUnidadeExercicioDadoFuncionalServidor() {
261
                UnidadeView unidadeExercicio = getUnidadeExercicioDadoFuncionalServidor();
262
                return VerificadorUtil.naoEstaNulo(unidadeExercicio) ? unidadeExercicio.getSequencial() : null;
263
        }
264
 
265
        @Transient
266
        public Long getNumeroAnoCronograma() {
267
                return VerificadorUtil.naoEstaNulo(getCronograma()) ? getCronograma().getNumeroAno() : null;
268
        }
269
 
270
}