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.srv.core.aceitacao.plugin;
2
 
3
import static br.gov.al.saude.test.ConstantesTestHelper.DIRETORIO_DOCUMENTOS;
4
import static br.gov.al.saude.test.ConstantesTestHelper.DIRETORIO_FOTOS;
5
import static br.gov.al.saude.test.ConstantesTestHelper.VALOR_VAZIO;
6
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.DADOS_GRAVADOS_COM_SUCESSO;
7
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.FICHA_CADASTRARL_SERVIDOR_ATUALIZADA;
8
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.SERVIDOR_HOMOLOGADO_COM_SUCESSO;
9
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.SERVIDOR_VALIDADO_COM_SUCESSO;
10
import static br.gov.al.saude.test.ConstantesTestHelper.UtilConstantes.CINCO_ITENS;
11
import static br.gov.al.saude.test.ConstantesTestHelper.UtilConstantes.PRIMEIRO_REGISTRO;
12
 
13
import java.util.ArrayList;
14
import java.util.HashSet;
15
import java.util.LinkedHashSet;
16
import java.util.List;
17
import java.util.Set;
18
 
19
import net.sf.jasperreports.engine.JasperPrint;
20
 
21
import org.springframework.beans.factory.annotation.Autowired;
22
import org.springframework.security.core.context.SecurityContextHolder;
23
import org.springframework.security.core.context.SecurityContextImpl;
24
 
25
import br.gov.al.saude.framework.core.consulta.restricao.Restricoes;
26
import br.gov.al.saude.framework.core.generic.auditoria.RevisaoAuditoria;
27
import br.gov.al.saude.framework.core.util.ConversorDeTipo;
28
import br.gov.al.saude.framework.core.util.DataUtils;
29
import br.gov.al.saude.framework.core.util.RelatorioUtils;
30
import br.gov.al.saude.framework.core.util.StringUtils;
31
import br.gov.al.saude.framework.core.util.VerificadorUtil;
32
import br.gov.al.saude.framework.model.OrgaoView;
33
import br.gov.al.saude.framework.model.PessoaFisicaView;
34
import br.gov.al.saude.framework.model.SetorView;
35
import br.gov.al.saude.framework.model.UfView;
36
import br.gov.al.saude.framework.model.UsuarioView;
37
import br.gov.al.saude.framework.security.authentication.entity.UserIndra;
38
import br.gov.al.saude.framework.security.filter.IndraAuthentication;
39
import br.gov.al.saude.srv.core.application.banco.BancoFacade;
40
import br.gov.al.saude.srv.core.application.cargo.CargoFacade;
41
import br.gov.al.saude.srv.core.application.carreira.CarreiraFacade;
42
import br.gov.al.saude.srv.core.application.conselho.ConselhoFacade;
43
import br.gov.al.saude.srv.core.application.cursoestagio.CursoEstagioFacade;
44
import br.gov.al.saude.srv.core.application.deficiencia.DeficienciaFacade;
45
import br.gov.al.saude.srv.core.application.emissorrelatorio.EmissorRelatorioFacade;
46
import br.gov.al.saude.srv.core.application.especialidade.EspecialidadeFacade;
47
import br.gov.al.saude.srv.core.application.evento.EventoFacade;
48
import br.gov.al.saude.srv.core.application.eventoservidor.EventoServidorFacade;
49
import br.gov.al.saude.srv.core.application.formaingresso.FormaIngressoFacade;
50
import br.gov.al.saude.srv.core.application.funcao.FuncaoFacade;
51
import br.gov.al.saude.srv.core.application.grauinstrucao.GrauInstrucaoFacade;
52
import br.gov.al.saude.srv.core.application.instituicaoestagio.InstituicaoEstagioFacade;
53
import br.gov.al.saude.srv.core.application.nacionalidade.NacionalidadeFacade;
54
import br.gov.al.saude.srv.core.application.orgao.OrgaoFacade;
55
import br.gov.al.saude.srv.core.application.parametro.ParametroFacade;
56
import br.gov.al.saude.srv.core.application.programacaoferias.ProgramacaoFeriasFacade;
57
import br.gov.al.saude.srv.core.application.servidor.ServidorFacade;
58
import br.gov.al.saude.srv.core.application.setorview.SetorViewFacade;
59
import br.gov.al.saude.srv.core.application.situacaoservidor.SituacaoServidorFacade;
60
import br.gov.al.saude.srv.core.application.uf.UfFacade;
61
import br.gov.al.saude.srv.core.application.unidade.UnidadeFacade;
62
import br.gov.al.saude.srv.model.Banco;
63
import br.gov.al.saude.srv.model.Cargo;
64
import br.gov.al.saude.srv.model.Carreira;
65
import br.gov.al.saude.srv.model.Conselho;
66
import br.gov.al.saude.srv.model.CursoEstagio;
67
import br.gov.al.saude.srv.model.Deficiencia;
68
import br.gov.al.saude.srv.model.Especialidade;
69
import br.gov.al.saude.srv.model.Evento;
70
import br.gov.al.saude.srv.model.EventoServidorDadoFuncional;
71
import br.gov.al.saude.srv.model.EventoServidorDadoFuncionalAcesso;
72
import br.gov.al.saude.srv.model.EventoServidorDadoFuncionalDocumento;
73
import br.gov.al.saude.srv.model.EventoServidorDadoFuncionalExigeProcesso;
74
import br.gov.al.saude.srv.model.EventoServidorDadoFuncionalExigePublicacao;
75
import br.gov.al.saude.srv.model.EventoServidorDadoFuncionalExigeVigencia;
76
import br.gov.al.saude.srv.model.EventoServidorDadoFuncionalProgressaoFuncionalHorizontal;
77
import br.gov.al.saude.srv.model.EventoServidorDadoFuncionalProgressaoFuncionalVertical;
78
import br.gov.al.saude.srv.model.EventoServidorDadoFuncionalRedistribuicaoCessao;
79
import br.gov.al.saude.srv.model.EventoServidorDadoFuncionalRemocao;
80
import br.gov.al.saude.srv.model.EventoServidorDadoFuncionalTransferenciaReconducao;
81
import br.gov.al.saude.srv.model.FormaIngresso;
82
import br.gov.al.saude.srv.model.Funcao;
83
import br.gov.al.saude.srv.model.GrauInstrucao;
84
import br.gov.al.saude.srv.model.InstituicaoEstagio;
85
import br.gov.al.saude.srv.model.Nacionalidade;
86
import br.gov.al.saude.srv.model.Orgao;
87
import br.gov.al.saude.srv.model.Parametro;
88
import br.gov.al.saude.srv.model.ProgramacaoFerias;
89
import br.gov.al.saude.srv.model.ProgramacaoFeriasServidorDadoFuncional;
90
import br.gov.al.saude.srv.model.Servidor;
91
import br.gov.al.saude.srv.model.ServidorContaBancaria;
92
import br.gov.al.saude.srv.model.ServidorDadoFuncional;
93
import br.gov.al.saude.srv.model.ServidorDadoFuncionalConselho;
94
import br.gov.al.saude.srv.model.ServidorDadoFuncionalContratadoEstagiario;
95
import br.gov.al.saude.srv.model.ServidorDadoFuncionalContratadoPrestadorProcessoSeletivo;
96
import br.gov.al.saude.srv.model.ServidorDadoFuncionalMatricula;
97
import br.gov.al.saude.srv.model.ServidorDadoFuncionalMatriculaCarreira;
98
import br.gov.al.saude.srv.model.ServidorDependente;
99
import br.gov.al.saude.srv.model.ServidorLocalizacaoArquivo;
100
import br.gov.al.saude.srv.model.ServidorQualificacao;
101
import br.gov.al.saude.srv.model.SituacaoServidor;
102
import br.gov.al.saude.srv.model.Unidade;
103
import br.gov.al.saude.srv.model.dto.CargoDTO;
104
import br.gov.al.saude.srv.model.dto.EventoServidorDTO;
105
import br.gov.al.saude.srv.model.dto.FuncaoDTO;
106
import br.gov.al.saude.srv.model.dto.ParametroConsultaCargoDTO;
107
import br.gov.al.saude.srv.model.dto.ParametroConsultaFuncaoDTO;
108
import br.gov.al.saude.srv.model.dto.ParametroConsultaServidorAtivoDTO;
109
import br.gov.al.saude.srv.model.dto.ParametroConsultaServidorDTO;
110
import br.gov.al.saude.srv.model.dto.ParametrosRelatorioAcompanhamentoServidorDTO;
111
import br.gov.al.saude.srv.model.dto.ProgramacaoFeriasDTO;
112
import br.gov.al.saude.srv.model.dto.ServidorAtivoDTO;
113
import br.gov.al.saude.srv.model.dto.ServidorDTO;
114
import br.gov.al.saude.srv.model.enums.TipoClasseCarreira;
115
import br.gov.al.saude.srv.model.enums.TipoFuncao;
116
import br.gov.al.saude.srv.model.enums.TipoNivelCarreira;
117
import br.gov.al.saude.srv.model.enums.TipoPublicacao;
118
import br.gov.al.saude.srv.model.enums.TipoRelatorioAcompanhamento;
119
import br.gov.al.saude.srv.model.enums.TipoRelatorioQuantitativo;
120
import br.gov.al.saude.srv.model.enums.TipoRemocao;
121
import br.gov.al.saude.srv.model.enums.TipoSituacaoCadastral;
122
import br.gov.al.saude.srv.model.enums.TipoSituacaoEvento;
123
import br.gov.al.saude.srv.model.enums.TipoVinculo;
124
import br.gov.al.saude.test.aceitacao.helper.CenarioTestHelper;
125
import br.gov.al.saude.test.aceitacao.plugin.TestPlugin;
126
import br.gov.al.saude.test.builder.BancoBuilder;
127
import br.gov.al.saude.test.builder.CargoBuilder;
128
import br.gov.al.saude.test.builder.DeficienciaBuilder;
129
import br.gov.al.saude.test.builder.EspecialidadeBuilder;
130
import br.gov.al.saude.test.builder.EventoServidorDadoFuncionalAcessoBuilder;
131
import br.gov.al.saude.test.builder.EventoServidorDadoFuncionalBuilder;
132
import br.gov.al.saude.test.builder.EventoServidorDadoFuncionalDocumentoBuilder;
133
import br.gov.al.saude.test.builder.EventoServidorDadoFuncionalExigeProcessoBuilder;
134
import br.gov.al.saude.test.builder.EventoServidorDadoFuncionalExigePublicacaoBuilder;
135
import br.gov.al.saude.test.builder.EventoServidorDadoFuncionalExigeVigenciaBuilder;
136
import br.gov.al.saude.test.builder.EventoServidorDadoFuncionalProgressaoFuncionalHorizontalBuilder;
137
import br.gov.al.saude.test.builder.EventoServidorDadoFuncionalProgressaoFuncionalVerticalBuilder;
138
import br.gov.al.saude.test.builder.EventoServidorDadoFuncionalRedistribuicaoCessaoBuilder;
139
import br.gov.al.saude.test.builder.EventoServidorDadoFuncionalRemocaoBuilder;
140
import br.gov.al.saude.test.builder.EventoServidorDadoFuncionalTransferenciaReconducaoBuilder;
141
import br.gov.al.saude.test.builder.FormaIngressoBuilder;
142
import br.gov.al.saude.test.builder.FuncaoBuilder;
143
import br.gov.al.saude.test.builder.GrauInstrucaoBuilder;
144
import br.gov.al.saude.test.builder.NacionalidadeBuilder;
145
import br.gov.al.saude.test.builder.OrgaoBuilder;
146
import br.gov.al.saude.test.builder.OrgaoViewBuilder;
147
import br.gov.al.saude.test.builder.ParametroBuilder;
148
import br.gov.al.saude.test.builder.ParametroConsultaServidorAtivoDTOBuilder;
149
import br.gov.al.saude.test.builder.ParametrosRelatorioAcompanhamentoServidorDTOBuilder;
150
import br.gov.al.saude.test.builder.ProgramacaoFeriasServidorDadoFuncionalBuilder;
151
import br.gov.al.saude.test.builder.ServidorBuilder;
152
import br.gov.al.saude.test.builder.ServidorContaBancariaBuilder;
153
import br.gov.al.saude.test.builder.ServidorDadoFuncionalConselhoBuilder;
154
import br.gov.al.saude.test.builder.ServidorDadoFuncionalContratadoEstagiarioBuilder;
155
import br.gov.al.saude.test.builder.ServidorDadoFuncionalContratadoPrestadorProcessoSeletivoBuilder;
156
import br.gov.al.saude.test.builder.ServidorDadoFuncionalMatriculaBuilder;
157
import br.gov.al.saude.test.builder.ServidorDadoFuncionalMatriculaCarreiraBuilder;
158
import br.gov.al.saude.test.builder.ServidorDependenteBuilder;
159
import br.gov.al.saude.test.builder.ServidorLocalizacaoArquivoBuilder;
160
import br.gov.al.saude.test.builder.ServidorQualificacaoBuilder;
161
import br.gov.al.saude.test.builder.SetorViewBuilder;
162
import br.gov.al.saude.test.builder.SituacaoServidorBuilder;
163
import br.gov.al.saude.test.builder.UnidadeBuilder;
164
import br.gov.al.saude.test.builder.UsuarioViewBuilder;
165
import br.gov.al.saude.test.formatador.FormatadorServidorPorNossoNumero;
166
import br.gov.al.saude.test.formatador.impl.FormatadorDeMensagemImpl;
167
import br.gov.al.saude.test.util.Command;
168
import br.gov.al.saude.test.util.FileUtil;
169
import br.gov.al.saude.test.util.SrvConversorDeTipo;
170
import br.gov.al.saude.test.util.VerificadorLancamentoException;
171
import br.gov.al.saude.test.util.formatador.ContextoMensagem;
172
 
173
public class ApiTestPlugin implements TestPlugin {
174
 
175
        private CenarioTestHelper cenarioTestHelper;
176
        private ServidorFacade servidorFacade;
177
        private GrauInstrucaoFacade grauInstrucaoFacade;
178
        private NacionalidadeFacade nacionalidadeFacade;
179
        private DeficienciaFacade deficienciaFacade;
180
        private SituacaoServidorFacade situacaoServidorFacade;
181
        private CargoFacade cargoFacade;
182
        private FuncaoFacade funcaoFacade;
183
        private EspecialidadeFacade especialidadeFacade;
184
        private OrgaoFacade orgaoFacade;
185
        private FormaIngressoFacade formaIngressoFacade;
186
        private UnidadeFacade unidadeFacade;
187
        private SetorViewFacade setorViewFacade;
188
        private CarreiraFacade carreiraFacade;
189
        private ConselhoFacade conselhoFacade;
190
        private BancoFacade bancoFacade;
191
        private UfFacade ufFacade;
192
        private EmissorRelatorioFacade emissorRelatorioFacade;
193
        private InstituicaoEstagioFacade instituicaoEstagioFacade;
194
        private CursoEstagioFacade cursoEstagioFacade;
195
        private ParametroFacade parametroFacade;
196
        private EventoServidorFacade eventoServidorFacade;
197
        private EventoFacade eventoFacade;
198
        private ProgramacaoFeriasFacade programacaoFeriasFacade;
199
 
200
        public void setUp() throws Exception {
201
                cenarioTestHelper.limparBanco();
202
        }
203
 
204
        public void tearDown() throws Exception {}
205
 
206
        @Autowired
207
        public ApiTestPlugin(CenarioTestHelper cenarioTestHelper,
208
                                                 ServidorFacade servidorFacade,
209
                                                 GrauInstrucaoFacade grauInstrucaoFacade,
210
                                                 NacionalidadeFacade nacionalidadeFacade,
211
                                                 DeficienciaFacade deficienciaFacade,
212
                                                 SituacaoServidorFacade situacaoServidorFacade,
213
                                                 CargoFacade cargoFacade,
214
                                                 FuncaoFacade funcaoFacade,
215
                                                 EspecialidadeFacade especialidadeFacade,
216
                                                 OrgaoFacade orgaoExternoFacade,
217
                                                 UnidadeFacade unidadeFacade,
218
                                                 SetorViewFacade setorViewFacade,
219
                                                 CarreiraFacade carreiraFacade,
220
                                                 ConselhoFacade conselhoFacade,
221
                                                 BancoFacade bancoFacade,
222
                                                 UfFacade ufFacade,
223
                                                 EmissorRelatorioFacade emissorRelatorioFacade,
224
                                                 FormaIngressoFacade formaIngressoFacade,
225
                                                 InstituicaoEstagioFacade instituicaoEstagioFacade,
226
                                                 CursoEstagioFacade cursoEstagioFacade,
227
                                                 ParametroFacade parametroFacade,
228
                                                 EventoServidorFacade eventoServidorFacade,
229
                                                 ProgramacaoFeriasFacade programacaoFeriasFacade,
230
                                                 EventoFacade eventoFacade) {
231
 
232
                this.cenarioTestHelper = cenarioTestHelper;
233
                this.servidorFacade = servidorFacade;
234
                this.grauInstrucaoFacade = grauInstrucaoFacade;
235
                this.nacionalidadeFacade = nacionalidadeFacade;
236
                this.deficienciaFacade = deficienciaFacade;
237
                this.situacaoServidorFacade = situacaoServidorFacade;
238
                this.cargoFacade = cargoFacade;
239
                this.funcaoFacade = funcaoFacade;
240
                this.especialidadeFacade = especialidadeFacade;
241
                this.orgaoFacade = orgaoExternoFacade;
242
                this.unidadeFacade = unidadeFacade;
243
                this.setorViewFacade = setorViewFacade;
244
                this.carreiraFacade = carreiraFacade;
245
                this.conselhoFacade = conselhoFacade;
246
                this.bancoFacade = bancoFacade;
247
                this.ufFacade = ufFacade;
248
                this.emissorRelatorioFacade = emissorRelatorioFacade;
249
                this.formaIngressoFacade = formaIngressoFacade;
250
                this.instituicaoEstagioFacade = instituicaoEstagioFacade;
251
                this.cursoEstagioFacade = cursoEstagioFacade;
252
                this.parametroFacade = parametroFacade;
253
                this.eventoServidorFacade = eventoServidorFacade;
254
                this.programacaoFeriasFacade = programacaoFeriasFacade;
255
                this.eventoFacade = eventoFacade;
256
        }
257
 
258
        @Override
259
        public String consultarServidor(String cpf, String nome, String matricula, String nossoNumero, String situacaoCadastral) {
260
                final ParametroConsultaServidorDTO parametroConsultaServidorDTO = criarParametroConsultaServidorDTO(cpf, nome, matricula,
261
                                nossoNumero, TipoSituacaoCadastral.parse(situacaoCadastral));
262
 
263
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
264
                        @Override
265
                        public String execute() throws Exception {
266
                                List<ServidorDTO> servidores = servidorFacade.consultar(parametroConsultaServidorDTO);
267
 
268
                                return cenarioTestHelper.gerarMensagemConsultar(servidores);                           
269
                        }
270
                });
271
        }
272
 
273
        private ParametroConsultaServidorDTO criarParametroConsultaServidorDTO(String cpf, String nome, String matricula, String nossoNumero, TipoSituacaoCadastral tipoSituacaoCadastral) {
274
                return new ParametroConsultaServidorDTO(cpf, nome, StringUtils.valueLong(matricula), StringUtils.valueLong(nossoNumero), tipoSituacaoCadastral, 0, Integer.MAX_VALUE);
275
        }
276
 
277
        @Override
278
        public String consultarFuncao(String descricao, String nivel, String tipo, String ativo) {
279
                final ParametroConsultaFuncaoDTO parametroConsultaFuncaoDTO = criarParametroConsultaFuncaoDTO(descricao, nivel, tipo, ativo);
280
 
281
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
282
                        @Override
283
                        public String execute() throws Exception {
284
                                List<Funcao> funcoes = funcaoFacade.consultar(parametroConsultaFuncaoDTO);
285
                                return cenarioTestHelper.gerarMensagemConsultar(funcoes);              
286
                        }
287
                });
288
        }
289
 
290
        @Override
291
        public String cadastrarFuncao(String descricao, String nivel, String tipo, String quantidadeVagas) {
292
                final Funcao funcao = new FuncaoBuilder().comDescricao(descricao).comNivel(nivel).comTipoFuncao(tipo).comQuantidadeVagas(quantidadeVagas).build();
293
 
294
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
295
                        @Override
296
                        public String execute() throws Exception {
297
                                funcaoFacade.cadastrar(funcao);
298
                                Funcao funcaoConsultada = cenarioTestHelper.consultarFuncaoPorSequencial(funcao.getCodigo());
299
 
300
                                return DADOS_GRAVADOS_COM_SUCESSO + cenarioTestHelper.gerarMensagem(funcaoConsultada);
301
                        }
302
                });
303
        }
304
 
305
        @Override
306
        public String alterarFuncao(String codigo, String descricao, String nivel, String tipo, String quantidadeVagas, String ativo) {
307
                final Funcao funcao = new FuncaoBuilder().comCodigo(codigo).comDescricao(descricao).comNivel(nivel).comTipoFuncao(tipo)
308
                                .comQuantidadeVagas(quantidadeVagas).comAtivo(ativo).build();
309
 
310
 
311
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
312
                        @Override
313
                        public String execute() throws Exception {
314
                                funcaoFacade.alterar(funcao);
315
                                Funcao funcaoConsultada = cenarioTestHelper.consultarFuncaoPorSequencial(funcao.getCodigo());
316
 
317
                                return DADOS_GRAVADOS_COM_SUCESSO + cenarioTestHelper.gerarMensagem(funcaoConsultada);
318
                        }
319
                });
320
        }
321
 
322
        private ParametroConsultaFuncaoDTO criarParametroConsultaFuncaoDTO(String descricao, String nivel, String tipo, String ativo) {
323
                ParametroConsultaFuncaoDTO parametroConsultaFuncaoDTO = new ParametroConsultaFuncaoDTO();
324
                parametroConsultaFuncaoDTO.setDescricao(descricao);
325
                parametroConsultaFuncaoDTO.setNivel(nivel);
326
                parametroConsultaFuncaoDTO.setTipo(TipoFuncao.parse(tipo));
327
                parametroConsultaFuncaoDTO.setAtivo(SrvConversorDeTipo.converterStringParaBoolean(ativo));
328
                parametroConsultaFuncaoDTO.setPrimeiroRegistro(0);
329
                parametroConsultaFuncaoDTO.setTamanhoPagina(CINCO_ITENS);
330
                return parametroConsultaFuncaoDTO;
331
        }
332
 
333
        private ParametroConsultaCargoDTO criarParametroConsultaCargoDTO(String descricao, String sequencialGrauInstrucao, String ativo) {
334
                GrauInstrucao grauInstrucao = null;
335
 
336
                if (VerificadorUtil.naoEstaNulo(sequencialGrauInstrucao)) {
337
                        grauInstrucao = new GrauInstrucaoBuilder().comCodigo(sequencialGrauInstrucao).build();
338
                }
339
 
340
                return new ParametroConsultaCargoDTO(descricao, grauInstrucao,  SrvConversorDeTipo.converterStringParaBoolean(ativo), 0, CINCO_ITENS);
341
        }
342
 
343
        @Override
344
        public String consultarDadosServidor(final String sequencialPessoa) {
345
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
346
                        @Override
347
                        public String execute() throws Exception {
348
                                Servidor servidorConsultado = servidorFacade.consultarServidorPorSequencial(new Long(sequencialPessoa));
349
                                return cenarioTestHelper.gerarMensagem(servidorConsultado);
350
                        }
351
                });
352
        }
353
 
354
        @Override
355
        public String consultarFuncao(String descricao, String nivel, String tipo) {
356
                final ParametroConsultaFuncaoDTO parametroConsultaFuncaoDTO = criarParametroConsultaFuncaoDTO(descricao, nivel, tipo, null);
357
 
358
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
359
                        @Override
360
                        public String execute() throws Exception {
361
                                List<FuncaoDTO> funcoes = funcaoFacade.consultarFuncoesAtivas(parametroConsultaFuncaoDTO);
362
                                return cenarioTestHelper.gerarMensagemConsultar(funcoes);
363
                        }
364
                });
365
        }
366
 
367
        @Override
368
        public String consultarCargo(String descricao, String codigoGrauInstrucao) {
369
                final ParametroConsultaCargoDTO parametroConsultaCargoDTO = criarParametroConsultaCargoDTO(descricao, codigoGrauInstrucao, null);
370
 
371
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
372
                        @Override
373
                        public String execute() throws Exception {
374
                                List<CargoDTO> cargos = cargoFacade.consultarCargosAtivos(parametroConsultaCargoDTO);
375
                                return cenarioTestHelper.gerarMensagemConsultar(cargos);
376
                        }
377
                });
378
        }
379
 
380
        @Override
381
        public String listarGrauInstrucao() {
382
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
383
 
384
                        @Override
385
                        public String execute() throws Exception {
386
                                List<GrauInstrucao> listaGrauInstrucao = grauInstrucaoFacade.consultarTodos(new GrauInstrucao());
387
                                return cenarioTestHelper.gerarMensagemConsultar(listaGrauInstrucao);
388
                        }
389
                });
390
        }
391
 
392
        @Override
393
        public String listarNacionalidade() {
394
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
395
 
396
                        @Override
397
                        public String execute() throws Exception {
398
                                List<Nacionalidade> listaNacionalidade = nacionalidadeFacade.consultarTodos(new Nacionalidade());
399
                                return cenarioTestHelper.gerarMensagemConsultar(listaNacionalidade);
400
                        }
401
                });
402
        }
403
 
404
        @Override
405
        public String listarDeficiencia() {
406
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
407
 
408
                        @Override
409
                        public String execute() throws Exception {
410
                                List<Deficiencia> listaDeficiencia = deficienciaFacade.consultarTodos(new Deficiencia());
411
                                return cenarioTestHelper.gerarMensagemConsultar(listaDeficiencia);
412
                        }
413
                });
414
        }
415
 
416
        @Override
417
        public String listarSituacaoServidor() {
418
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
419
 
420
                        @Override
421
                        public String execute() throws Exception {
422
                                List<SituacaoServidor> listaSituacaoServidor = situacaoServidorFacade.consultarTodos(new SituacaoServidor());
423
                                return cenarioTestHelper.gerarMensagemConsultar(listaSituacaoServidor);
424
                        }
425
                });
426
        }
427
 
428
        @Override
429
        public String listarCargo() {
430
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
431
 
432
                        @Override
433
                        public String execute() throws Exception {
434
                                List<Cargo> listaCargo = cargoFacade.consultarTodos(new Cargo());
435
                                return cenarioTestHelper.gerarMensagemConsultar(listaCargo);
436
                        }
437
                });
438
        }
439
 
440
        @Override
441
        public String listarFuncao() {
442
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
443
 
444
                        @Override
445
                        public String execute() throws Exception {
446
                                List<Funcao> listaFuncao = funcaoFacade.consultarTodos(new Funcao());
447
                                return cenarioTestHelper.gerarMensagemConsultar(listaFuncao);
448
                        }
449
                });
450
        }
451
 
452
        @Override
453
        public String listarEspecialidade() {
454
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
455
 
456
                        @Override
457
                        public String execute() throws Exception {
458
                                List<Especialidade> listaEspecialidade = especialidadeFacade.consultarTodos(new Especialidade());
459
                                return cenarioTestHelper.gerarMensagemConsultar(listaEspecialidade);
460
                        }
461
                });
462
        }
463
 
464
        @Override
465
        public String listarOrgaoOrigem() {
466
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
467
 
468
                        @Override
469
                        public String execute() throws Exception {
470
                                List<Orgao> listaOrgaoOrigem = orgaoFacade.consultarTodos(new Orgao());
471
                                return cenarioTestHelper.gerarMensagemConsultar(listaOrgaoOrigem);
472
                        }
473
                });
474
        }
475
 
476
        @Override
477
        public String listarUnidade() {
478
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
479
 
480
                        @Override
481
                        public String execute() throws Exception {
482
                                List<Unidade> listaUnidade = unidadeFacade.consultarTodos(new Unidade());
483
                                return cenarioTestHelper.gerarMensagemConsultar(listaUnidade);
484
                        }
485
                });
486
        }
487
 
488
        @Override
489
        public String listarSetor() {
490
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
491
 
492
                        @Override
493
                        public String execute() throws Exception {
494
                                List<SetorView> listaSetor = setorViewFacade.consultarTodos(new SetorView());
495
                                return cenarioTestHelper.gerarMensagemConsultar(listaSetor);
496
                        }
497
                });
498
        }
499
 
500
        @Override
501
        public String listarCarreira() {
502
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
503
 
504
                        @Override
505
                        public String execute() throws Exception {
506
                                List<Carreira> listaCarreira = carreiraFacade.consultarTodos(new Carreira());
507
                                return cenarioTestHelper.gerarMensagemConsultar(listaCarreira);
508
                        }
509
                });
510
        }
511
 
512
        @Override
513
        public String listarConselho() {
514
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
515
 
516
                        @Override
517
                        public String execute() throws Exception {
518
                                List<Conselho> listaConselho = conselhoFacade.consultarTodos(new Conselho());
519
                                return cenarioTestHelper.gerarMensagemConsultar(listaConselho);
520
                        }
521
                });
522
        }
523
 
524
        @Override
525
        public String listarBanco() {
526
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
527
 
528
                        @Override
529
                        public String execute() throws Exception {
530
                                List<Banco> listaBanco = bancoFacade.consultarTodos(new Banco());
531
                                return cenarioTestHelper.gerarMensagemConsultar(listaBanco);
532
                        }
533
                });
534
        }
535
 
536
        @Override
537
        public String listarUf() {
538
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
539
 
540
                        @Override
541
                        public String execute() throws Exception {
542
                                List<UfView> listaUf = ufFacade.consultarTodos(new UfView());
543
                                return cenarioTestHelper.gerarMensagemConsultar(listaUf);
544
                        }
545
                });
546
        }
547
 
548
        @Override
549
        public String consultarPessoaFisica(final String sequencialPessoa) {
550
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
551
 
552
                        @Override
553
                        public String execute() throws Exception {
554
                                PessoaFisicaView pessoaConsultada = servidorFacade.consultarPessoaPorSequencial(Long.parseLong(sequencialPessoa));
555
                                return cenarioTestHelper.gerarMensagem(pessoaConsultada);
556
                        }
557
                });
558
        }
559
 
560
        @Override
561
        public String emitirFichaCadastral(final String sequencialPessoa) {
562
 
563
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
564
                        @Override
565
                        public String execute() throws Exception {
566
                                JasperPrint relatorioGerado = servidorFacade.emitirFichaCadastral(Long.parseLong(sequencialPessoa));
567
                                return RelatorioUtils.extrairTextoDoJasperPrintIhGeraMensagemRelatorio(relatorioGerado);
568
                        }
569
                });
570
        }
571
 
572
        @Override
573
        public String atualizarFichaCadastralServidor(final String sequencialPessoa, String foto, String codigoGrauInstrucao, String codigoNacionalidade,
574
                        String codigoDeficiencia, String observacao, String localizacaoArquivo, String dadosBancarios, String dependentes, String qualificacoes,
575
                        String dadosFuncionais, String dadosFuncionaisMatricula, String dadosFuncionaisMatriculaCarreira,
576
                        String dadosFuncionaisContratado, String dadosFuncionaisContratadoEstagiario, String dadosFuncionaisContratadoProcessoSeletivo,
577
                        String sequencialUsuario) {
578
 
579
                final Servidor servidor = gerarServidor(sequencialPessoa, foto, codigoGrauInstrucao, codigoNacionalidade,
580
                                codigoDeficiencia, observacao, localizacaoArquivo, dadosBancarios, dependentes, qualificacoes,
581
                                dadosFuncionais, dadosFuncionaisMatricula, dadosFuncionaisMatriculaCarreira,
582
                                dadosFuncionaisContratado, dadosFuncionaisContratadoEstagiario, dadosFuncionaisContratadoProcessoSeletivo,
583
                                sequencialUsuario);
584
 
585
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
586
                        @Override
587
                        public String execute() throws Exception {
588
                                servidorFacade.atualizarServidor(servidor);
589
                                Servidor servidorConsultado = cenarioTestHelper.consultarServidorPorSequencial(Long.parseLong(sequencialPessoa));
590
                                return DADOS_GRAVADOS_COM_SUCESSO + cenarioTestHelper.gerarMensagem(servidorConsultado);
591
                        }
592
                });
593
        }
594
 
595
        @Override
596
        public String alterarSituacaoCadastralServidor(final String sequencialPessoa, String sequencialUsuario, String situacaoCadastral) {
597
 
598
                Servidor servidorConsultado = cenarioTestHelper.consultarServidorPorSequencial(Long.parseLong(sequencialPessoa));
599
                UsuarioView usuarioAlteracao = cenarioTestHelper.consultarUsuarioViewComPermissoesScaPorSequencial(Long.parseLong(sequencialUsuario));
600
                final Servidor servidor = new ServidorBuilder(servidorConsultado).comUsuarioAlteracaoSituacaoCadastral(usuarioAlteracao).build();
601
                final TipoSituacaoCadastral situacao = TipoSituacaoCadastral.parse(situacaoCadastral);
602
 
603
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
604
                        @Override
605
                        public String execute() throws Exception {
606
                                servidorFacade.alterarSituacaoFichaCadastral(servidor, situacao);
607
                                Servidor servidorModificado = cenarioTestHelper.consultarServidorPorSequencial(Long.parseLong(sequencialPessoa));
608
                                return getMensagemRetornoAlterarSituacaoCadastral(situacao) + cenarioTestHelper.gerarMensagem(servidorModificado);
609
                        }
610
                });
611
        }
612
 
613
        private String getMensagemRetornoAlterarSituacaoCadastral(TipoSituacaoCadastral situacao) {
614
                return situacao.equals(TipoSituacaoCadastral.HOMOLOGADO) ? SERVIDOR_HOMOLOGADO_COM_SUCESSO : SERVIDOR_VALIDADO_COM_SUCESSO;
615
        }
616
 
617
        @Override
618
        public String emitirRelatorioAcompanhamentoServidor(final String tipoSexo, final String tipoEstadoCivil,
619
                        final String codigoGrauInstrucao, final String situacaoCadastral, final String tipoVinculo, final String codigoFormaIngresso, final String codigoSituacaoServidor,
620
                        final String cargaHoraria, final String codigoCargo, final String codigoFuncao, final String codigoEspecialidade,
621
                        final String codigoOrgaoOrigem, final String codigoOrgaoLotacao, final String unidadeExercicio, final String unidadeLotacao,
622
                        String periodoDataInicioNascimento, String periodoDataFimNascimento,
623
                        String periodoDataInicioAdmissao, String periodoDataFimAdmissao, String localizacaoArquivoCaixa,       
624
                        String localizacaoArquivoPasta, String localizacaoArquivoPrateleira, String localizacaoArquivoLado,      String campoDeAgrupamento) {
625
 
626
                final ParametrosRelatorioAcompanhamentoServidorDTO parametrosRelatorioAcompanhamentoServidorDTO =
627
                                new ParametrosRelatorioAcompanhamentoServidorDTOBuilder()
628
                                        .comSexoServidor(tipoSexo)
629
                                        .comEstadoCivilServidor(tipoEstadoCivil)
630
                                        .comGrauInstrucaoServidor(gerarGrauInstrucao(codigoGrauInstrucao))
631
                                        .comTipoSituacaoCadastral(situacaoCadastral)
632
                                        .comTipoVinculo(tipoVinculo)
633
                                        .comFormaIngresso(gerarFormaIngresso(codigoFormaIngresso))
634
                                        .comSituacaoServidor(gerarSituacaoServidor(codigoSituacaoServidor))
635
                                        .comCargaHoraria(converterStringParaInteger(cargaHoraria))
636
                                        .comCargoServidor(gerarCargo(codigoCargo))
637
                                        .comFuncaoServidor(gerarFuncao(codigoFuncao))
638
                                        .comEspecialidadeServidor(gerarEspecialidade(codigoEspecialidade))
639
                                        .comOrgaoOrigemServidor(gerarOrgao(codigoOrgaoOrigem))
640
                                        .comOrgaoLotacaoServidor(gerarOrgao(codigoOrgaoLotacao))
641
                                        .comUnidadeExercicioServidor(gerarUnidade(unidadeExercicio))
642
                                        .comUnidadeLotacaoServidor(gerarUnidade(unidadeLotacao))
643
                                        .comTipoRelatorioAcompanhamento(TipoRelatorioAcompanhamento.ACOMPANHAMENTO)
644
                                        .comPeriodoDataInicioNascimento(periodoDataInicioNascimento)
645
                                        .comPeriodoDataFimNascimento(periodoDataFimNascimento)
646
                                        .comPeriodoDataInicioAdmissao(periodoDataInicioAdmissao)
647
                                        .comPeriodoDataFimAdmissao(periodoDataFimAdmissao)
648
                                        .comLocalizacaoArquivoCaixa(localizacaoArquivoCaixa)
649
                                        .comLocalizacaoArquivoPasta(localizacaoArquivoPasta)
650
                                        .comLocalizacaoArquivoPrateleira(localizacaoArquivoPrateleira)
651
                                        .comLocalizacaoArquivoLado(localizacaoArquivoLado)
652
                                        .comCampoAgrupamento(campoDeAgrupamento)
653
                                        .build();
654
 
655
                        return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
656
                                @Override
657
                                public String execute() throws Exception {
658
                                        JasperPrint relatorioGerado = emissorRelatorioFacade.emitirRelatorioAcompanhamentoServidor(parametrosRelatorioAcompanhamentoServidorDTO);
659
                                        return RelatorioUtils.extrairTextoDoJasperPrintIhGeraMensagemRelatorio(relatorioGerado);
660
                                }
661
                        });
662
        }
663
 
664
        @Override
665
        public String emitirRelatorioAcompanhamentoServidorComDadosPessoais(final String tipoSexo, final String tipoEstadoCivil,
666
                        final String codigoGrauInstrucao,  final String situacaoCadastral, final String tipoVinculo, final      String formaIngresso, final String codigoSituacaoServidor,
667
                        final String cargaHoraria, final String codigoCargo, final String codigoFuncao, final String codigoEspecialidade,
668
                        final String codigoOrgaoOrigem, final String codigoOrgaoLotacao, final String unidadeExercicio, final String unidadeLotacao,
669
                        String periodoDataInicioNascimento, String periodoDataFimNascimento,
670
                        String periodoDataInicioAdmissao, String periodoDataFimAdmissao, String localizacaoArquivoCaixa,       
671
                        String localizacaoArquivoPasta, String localizacaoArquivoPrateleira, String localizacaoArquivoLado,      String campoDeAgrupamento) {
672
 
673
                        final ParametrosRelatorioAcompanhamentoServidorDTO parametrosRelatorioAcompanhamentoServidorDTO =
674
                                        new ParametrosRelatorioAcompanhamentoServidorDTOBuilder()
675
                                                .comSexoServidor(tipoSexo)
676
                                                .comEstadoCivilServidor(tipoEstadoCivil)
677
                                                .comGrauInstrucaoServidor(gerarGrauInstrucao(codigoGrauInstrucao))
678
                                                .comTipoSituacaoCadastral(situacaoCadastral)
679
                                                .comTipoVinculo(tipoVinculo)
680
                                                .comFormaIngresso(gerarFormaIngresso(formaIngresso))
681
                                                .comSituacaoServidor(gerarSituacaoServidor(codigoSituacaoServidor))
682
                                                .comCargaHoraria(converterStringParaInteger(cargaHoraria))
683
                                                .comCargoServidor(gerarCargo(codigoCargo))
684
                                                .comFuncaoServidor(gerarFuncao(codigoFuncao))
685
                                                .comEspecialidadeServidor(gerarEspecialidade(codigoEspecialidade))
686
                                                .comOrgaoOrigemServidor(gerarOrgao(codigoOrgaoOrigem))
687
                                                .comOrgaoLotacaoServidor(gerarOrgao(codigoOrgaoLotacao))
688
                                                .comUnidadeExercicioServidor(gerarUnidade(unidadeExercicio))
689
                                                .comUnidadeLotacaoServidor(gerarUnidade(unidadeLotacao))
690
                                                .comTipoRelatorioAcompanhamento(TipoRelatorioAcompanhamento.ACOMPANHAMENTO_DADOS_PESSOAIS)
691
                                                .comPeriodoDataInicioNascimento(periodoDataInicioNascimento)
692
                                                .comPeriodoDataFimNascimento(periodoDataFimNascimento)
693
                                                .comPeriodoDataInicioAdmissao(periodoDataInicioAdmissao)
694
                                                .comPeriodoDataFimAdmissao(periodoDataFimAdmissao)
695
                                                .comLocalizacaoArquivoCaixa(localizacaoArquivoCaixa)
696
                                                .comLocalizacaoArquivoPasta(localizacaoArquivoPasta)
697
                                                .comLocalizacaoArquivoPrateleira(localizacaoArquivoPrateleira)
698
                                                .comLocalizacaoArquivoLado(localizacaoArquivoLado)
699
                                                .comCampoAgrupamento(campoDeAgrupamento)
700
                                                .build();
701
 
702
                        return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
703
                                @Override
704
                                public String execute() throws Exception {
705
                                        JasperPrint relatorioGerado = emissorRelatorioFacade.emitirRelatorioAcompanhamentoServidor(parametrosRelatorioAcompanhamentoServidorDTO);
706
                                        return RelatorioUtils.extrairTextoDoJasperPrintIhGeraMensagemRelatorio(relatorioGerado);
707
                                }
708
                        });
709
        }
710
 
711
        @Override
712
        public String emitirRelatorioAcompanhamentoServidorComDadosFuncionais(final String tipoSexo, final String tipoEstadoCivil,
713
                        final String codigoGrauInstrucao, final String situacaoCadastral, final String tipoVinculo, final String formaIngresso, final String codigoSituacaoServidor,
714
                        final String cargaHoraria, final String codigoCargo, final String codigoFuncao, final String codigoEspecialidade,
715
                        final String codigoOrgaoOrigem, final String codigoOrgaoLotacao, final String unidadeExercicio, final String unidadeLotacao,
716
                        String periodoDataInicioNascimento, String periodoDataFimNascimento,
717
                        String periodoDataInicioAdmissao, String periodoDataFimAdmissao, String localizacaoArquivoCaixa,       
718
                        String localizacaoArquivoPasta, String localizacaoArquivoPrateleira, String localizacaoArquivoLado,      String campoDeAgrupamento) {
719
 
720
                final ParametrosRelatorioAcompanhamentoServidorDTO parametrosRelatorioAcompanhamentoServidorDTO =
721
                                new ParametrosRelatorioAcompanhamentoServidorDTOBuilder()
722
                                        .comSexoServidor(tipoSexo)
723
                                        .comEstadoCivilServidor(tipoEstadoCivil)
724
                                        .comGrauInstrucaoServidor(gerarGrauInstrucao(codigoGrauInstrucao))
725
                                        .comTipoSituacaoCadastral(situacaoCadastral)
726
                                        .comTipoVinculo(tipoVinculo)
727
                                        .comFormaIngresso(gerarFormaIngresso(formaIngresso))
728
                                        .comSituacaoServidor(gerarSituacaoServidor(codigoSituacaoServidor))
729
                                        .comCargaHoraria(converterStringParaInteger(cargaHoraria))
730
                                        .comCargoServidor(gerarCargo(codigoCargo))
731
                                        .comFuncaoServidor(gerarFuncao(codigoFuncao))
732
                                        .comEspecialidadeServidor(gerarEspecialidade(codigoEspecialidade))
733
                                        .comOrgaoOrigemServidor(gerarOrgao(codigoOrgaoOrigem))
734
                                        .comOrgaoLotacaoServidor(gerarOrgao(codigoOrgaoLotacao))
735
                                        .comUnidadeExercicioServidor(gerarUnidade(unidadeExercicio))
736
                                        .comUnidadeLotacaoServidor(gerarUnidade(unidadeLotacao))
737
                                        .comTipoRelatorioAcompanhamento(TipoRelatorioAcompanhamento.ACOMPANHAMENTO_DADOS_FUNCIONAIS)
738
                                        .comPeriodoDataInicioNascimento(periodoDataInicioNascimento)
739
                                        .comPeriodoDataFimNascimento(periodoDataFimNascimento)
740
                                        .comPeriodoDataInicioAdmissao(periodoDataInicioAdmissao)
741
                                        .comPeriodoDataFimAdmissao(periodoDataFimAdmissao)
742
                                        .comLocalizacaoArquivoCaixa(localizacaoArquivoCaixa)
743
                                        .comLocalizacaoArquivoPasta(localizacaoArquivoPasta)
744
                                        .comLocalizacaoArquivoPrateleira(localizacaoArquivoPrateleira)
745
                                        .comLocalizacaoArquivoLado(localizacaoArquivoLado)
746
                                        .comCampoAgrupamento(campoDeAgrupamento)
747
                                        .build();
748
 
749
 
750
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
751
                        @Override
752
                        public String execute() throws Exception {
753
                                JasperPrint relatorioGerado = emissorRelatorioFacade.emitirRelatorioAcompanhamentoServidor(parametrosRelatorioAcompanhamentoServidorDTO);
754
                                return RelatorioUtils.extrairTextoDoJasperPrintIhGeraMensagemRelatorio(relatorioGerado);
755
                        }
756
                });
757
        }
758
 
759
        @Override
760
        public String emitirRelatorioAcompanhamentoServidorComDadosBancarios(final String tipoSexo, final String tipoEstadoCivil,
761
                        final String codigoGrauInstrucao, final String situacaoCadastral, final String tipoVinculo, final String codigoFormaIngresso, final String codigoSituacaoServidor,
762
                        final String cargaHoraria, final String codigoCargo, final String codigoFuncao, final String codigoEspecialidade,
763
                        final String codigoOrgaoOrigem, final String codigoOrgaoLotacao, final String unidadeExercicio, final String unidadeLotacao,
764
                        String periodoDataInicioNascimento, String periodoDataFimNascimento,
765
                        String periodoDataInicioAdmissao, String periodoDataFimAdmissao, String localizacaoArquivoCaixa,       
766
                        String localizacaoArquivoPasta, String localizacaoArquivoPrateleira, String localizacaoArquivoLado,      String campoDeAgrupamento) {
767
 
768
                final ParametrosRelatorioAcompanhamentoServidorDTO parametrosRelatorioAcompanhamentoServidorDTO =
769
                                new ParametrosRelatorioAcompanhamentoServidorDTOBuilder()
770
                                        .comSexoServidor(tipoSexo)
771
                                        .comEstadoCivilServidor(tipoEstadoCivil)
772
                                        .comGrauInstrucaoServidor(gerarGrauInstrucao(codigoGrauInstrucao))
773
                                        .comTipoSituacaoCadastral(situacaoCadastral)
774
                                        .comTipoVinculo(tipoVinculo)
775
                                        .comFormaIngresso(gerarFormaIngresso(codigoFormaIngresso))
776
                                        .comSituacaoServidor(gerarSituacaoServidor(codigoSituacaoServidor))
777
                                        .comCargaHoraria(converterStringParaInteger(cargaHoraria))
778
                                        .comCargoServidor(gerarCargo(codigoCargo))
779
                                        .comFuncaoServidor(gerarFuncao(codigoFuncao))
780
                                        .comEspecialidadeServidor(gerarEspecialidade(codigoEspecialidade))
781
                                        .comOrgaoOrigemServidor(gerarOrgao(codigoOrgaoOrigem))
782
                                        .comOrgaoLotacaoServidor(gerarOrgao(codigoOrgaoLotacao))
783
                                        .comUnidadeExercicioServidor(gerarUnidade(unidadeExercicio))
784
                                        .comUnidadeLotacaoServidor(gerarUnidade(unidadeLotacao))
785
                                        .comTipoRelatorioAcompanhamento(TipoRelatorioAcompanhamento.ACOMPANHAMENTO_DADOS_BANCARIOS)
786
                                        .comPeriodoDataInicioNascimento(periodoDataInicioNascimento)
787
                                        .comPeriodoDataFimNascimento(periodoDataFimNascimento)
788
                                        .comPeriodoDataInicioAdmissao(periodoDataInicioAdmissao)
789
                                        .comPeriodoDataFimAdmissao(periodoDataFimAdmissao)
790
                                        .comLocalizacaoArquivoCaixa(localizacaoArquivoCaixa)
791
                                        .comLocalizacaoArquivoPasta(localizacaoArquivoPasta)
792
                                        .comLocalizacaoArquivoPrateleira(localizacaoArquivoPrateleira)
793
                                        .comLocalizacaoArquivoLado(localizacaoArquivoLado)
794
                                        .comCampoAgrupamento(campoDeAgrupamento)
795
                                        .build();
796
 
797
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
798
                        @Override
799
                        public String execute() throws Exception {
800
                                JasperPrint relatorioGerado = emissorRelatorioFacade.emitirRelatorioAcompanhamentoServidor(parametrosRelatorioAcompanhamentoServidorDTO);
801
                                return RelatorioUtils.extrairTextoDoJasperPrintIhGeraMensagemRelatorio(relatorioGerado);
802
                        }
803
                });
804
        }
805
 
806
        @Override
807
        public String emitirRelatorioAcompanhamentoServidorComQualificacoes(final String tipoSexo, final String tipoEstadoCivil,
808
                        final String codigoGrauInstrucao, final String situacaoCadastral, final String tipoVinculo, final String formaIngresso, final String codigoSituacaoServidor,
809
                        final String cargaHoraria, final String codigoCargo, final String codigoFuncao, final String codigoEspecialidade,
810
                        final String codigoOrgaoOrigem, final String codigoOrgaoLotacao, final String unidadeExercicio, final String unidadeLotacao,
811
                        String periodoDataInicioNascimento, String periodoDataFimNascimento,
812
                        String periodoDataInicioAdmissao, String periodoDataFimAdmissao, String localizacaoArquivoCaixa,       
813
                        String localizacaoArquivoPasta, String localizacaoArquivoPrateleira, String localizacaoArquivoLado,      String campoDeAgrupamento) {
814
 
815
                final ParametrosRelatorioAcompanhamentoServidorDTO parametrosRelatorioAcompanhamentoServidorDTO =
816
                                new ParametrosRelatorioAcompanhamentoServidorDTOBuilder()
817
                                        .comSexoServidor(tipoSexo)
818
                                        .comEstadoCivilServidor(tipoEstadoCivil)
819
                                        .comGrauInstrucaoServidor(gerarGrauInstrucao(codigoGrauInstrucao))
820
                                        .comTipoSituacaoCadastral(situacaoCadastral)
821
                                        .comTipoVinculo(tipoVinculo)
822
                                        .comFormaIngresso(gerarFormaIngresso(formaIngresso))
823
                                        .comSituacaoServidor(gerarSituacaoServidor(codigoSituacaoServidor))
824
                                        .comCargaHoraria(converterStringParaInteger(cargaHoraria))
825
                                        .comCargoServidor(gerarCargo(codigoCargo))
826
                                        .comFuncaoServidor(gerarFuncao(codigoFuncao))
827
                                        .comEspecialidadeServidor(gerarEspecialidade(codigoEspecialidade))
828
                                        .comOrgaoOrigemServidor(gerarOrgao(codigoOrgaoOrigem))
829
                                        .comOrgaoLotacaoServidor(gerarOrgao(codigoOrgaoLotacao))
830
                                        .comUnidadeExercicioServidor(gerarUnidade(unidadeExercicio))
831
                                        .comUnidadeLotacaoServidor(gerarUnidade(unidadeLotacao))
832
                                        .comTipoRelatorioAcompanhamento(TipoRelatorioAcompanhamento.ACOMPANHAMENTO_QUALIFICACOES)
833
                                        .comPeriodoDataInicioNascimento(periodoDataInicioNascimento)
834
                                        .comPeriodoDataFimNascimento(periodoDataFimNascimento)
835
                                        .comPeriodoDataInicioAdmissao(periodoDataInicioAdmissao)
836
                                        .comPeriodoDataFimAdmissao(periodoDataFimAdmissao)
837
                                        .comLocalizacaoArquivoCaixa(localizacaoArquivoCaixa)
838
                                        .comLocalizacaoArquivoPasta(localizacaoArquivoPasta)
839
                                        .comLocalizacaoArquivoPrateleira(localizacaoArquivoPrateleira)
840
                                        .comLocalizacaoArquivoLado(localizacaoArquivoLado)
841
                                        .comCampoAgrupamento(campoDeAgrupamento)
842
                                        .build();
843
 
844
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
845
                        @Override
846
                        public String execute() throws Exception {
847
                                JasperPrint relatorioGerado = emissorRelatorioFacade.emitirRelatorioAcompanhamentoServidor(parametrosRelatorioAcompanhamentoServidorDTO);
848
                                return RelatorioUtils.extrairTextoDoJasperPrintIhGeraMensagemRelatorio(relatorioGerado);
849
                        }
850
                });
851
        }
852
 
853
        private Integer converterStringParaInteger(String parametro) {
854
                if(VerificadorUtil.naoEstaNuloOuVazio(parametro)) {
855
                        return new Integer(parametro);
856
                }
857
                return null;
858
        }
859
 
860
        private Servidor gerarServidor(String sequencialPessoa, String foto, String codigoGrauInstrucao, String codigoNacionalidade,
861
                        String codigoDeficiencia, String observacao, String localizacaoArquivo, String dadosBancarios,  String dependentes, String qualificacoes,
862
                        String dadosFuncionais, String dadosFuncionaisMatricula, String dadosFuncionaisMatriculaCarreira,
863
                        String dadosFuncionaisContratado, String dadosFuncionaisContratadoEstagiario, String dadosFuncionaisContratadoProcessoSeletivo,
864
                        String sequencialUsuario) {
865
 
866
                Servidor servidorConsultado = cenarioTestHelper.consultarServidorPorSequencial(Long.parseLong(sequencialPessoa));
867
 
868
                Servidor servidor = new ServidorBuilder(servidorConsultado)
869
                                                                        .comSequencial(sequencialPessoa)
870
                                                                        .comGrauInstrucao(gerarGrauInstrucao(codigoGrauInstrucao))
871
                                                                        .comNacionalidade(gerarNacionalidade(codigoNacionalidade))
872
                                                                        .comDeficiencia(gerarDeficiencia(codigoDeficiencia))
873
                                                                        .comObservacao(observacao)
874
                                                                        .comDependente(gerarDependentes(dependentes))
875
                                                                        .comQualificacao(gerarQualificacoes(qualificacoes))
876
                                                                        .comDadoFuncional(gerarDadosFuncionais(dadosFuncionais, dadosFuncionaisMatricula, dadosFuncionaisMatriculaCarreira,
877
                                                                                        dadosFuncionaisContratado, dadosFuncionaisContratadoEstagiario, dadosFuncionaisContratadoProcessoSeletivo))
878
                                                                        .build();
879
 
880
                if(VerificadorUtil.estaNulo(servidorConsultado)) {
881
                        servidor.setUsuario(new UsuarioViewBuilder().comSequencial(sequencialUsuario).build());
882
                }
883
                servidor.setListaServidorContaBancaria(gerarDadosBancarios(dadosBancarios, servidor));
884
                servidor.setServidorLocalizacaoArquivo(gerarServidorLocalizacaoArquivo(localizacaoArquivo, servidor));
885
 
886
                servidor.setFoto(FileUtil.getConteudoArquivoImagem(DIRETORIO_FOTOS, foto));
887
 
888
                return servidor;
889
        }
890
 
891
        private ServidorLocalizacaoArquivo gerarServidorLocalizacaoArquivo(String localizacaoArquivo, Servidor servidor) {
892
                ServidorLocalizacaoArquivo servidorLocalizacaoArquivo = null;
893
 
894
                if(VerificadorUtil.naoEstaNuloOuVazio(localizacaoArquivo)) {
895
                        String[] localizacaoArquivoPropriedade = gerarArrayPropriedadesString(localizacaoArquivo);
896
 
897
                        servidorLocalizacaoArquivo = new ServidorLocalizacaoArquivoBuilder()
898
                                .comNumeroCaixa(getPropriedadeTratandoExcecao(localizacaoArquivoPropriedade, 0))
899
                                .comNumeroPasta(getPropriedadeTratandoExcecao(localizacaoArquivoPropriedade, 1))
900
                                .comNumeroPrateleira(getPropriedadeTratandoExcecao(localizacaoArquivoPropriedade, 2))
901
                                .comTipoLado(getPropriedadeTratandoExcecao(localizacaoArquivoPropriedade, 3))
902
                                .build();
903
 
904
                        servidorLocalizacaoArquivo.setServidor(servidor);
905
                }
906
                return servidorLocalizacaoArquivo;
907
        }
908
 
909
        private Set<ServidorContaBancaria> gerarDadosBancarios(String listaContasBancariasString, Servidor servidor) {
910
                Set<ServidorContaBancaria> contasBancarias = null;
911
 
912
                if(VerificadorUtil.naoEstaNuloOuVazio(listaContasBancariasString)) {
913
                        contasBancarias = new HashSet<ServidorContaBancaria>();
914
 
915
                        String[] contasBancariasArrayString = gerarArrayObjetosComPropriedadesString(listaContasBancariasString);
916
 
917
                        for (String contaBancariaArrayString : contasBancariasArrayString) {
918
                                String[] contaBancariaPropriedade = gerarArrayPropriedadesString(contaBancariaArrayString);
919
                                ServidorContaBancaria servidorContaBancaria = new ServidorContaBancariaBuilder()
920
                                        .comServidor(servidor)
921
                                        .comBanco(gerarBanco(getPropriedadeTratandoExcecao(contaBancariaPropriedade, 0)))
922
                                        .comNumeroAgencia(getPropriedadeTratandoExcecao(contaBancariaPropriedade, 1))
923
                                        .comNumeroConta(getPropriedadeTratandoExcecao(contaBancariaPropriedade, 2))
924
                                        .comNumeroOperacao(getPropriedadeTratandoExcecao(contaBancariaPropriedade, 3))
925
                                        .build();
926
                                contasBancarias.add(servidorContaBancaria);
927
                        }
928
                }
929
 
930
                return contasBancarias;
931
        }
932
 
933
        private Set<ServidorDadoFuncional> gerarDadosFuncionais(String dadosFuncionais, String dadosFuncionaisMatricula, String dadosFuncionaisMatriculaCarreira,
934
                        String dadosFuncionaisContratado, String dadosFuncionaisContratadoEstagiario, String dadosFuncionaisContratadoProcessoSeletivo) {
935
 
936
                Set<ServidorDadoFuncional> listaDadosFuncionais = new LinkedHashSet<ServidorDadoFuncional>();
937
 
938
                if(VerificadorUtil.naoEstaNuloOuVazio(dadosFuncionaisContratadoEstagiario)) {
939
                        listaDadosFuncionais.addAll(gerarDadosFuncionaisDoTipoContratadoEstagiario(dadosFuncionaisContratadoEstagiario,
940
                                        dadosFuncionaisContratado, dadosFuncionais));
941
                }
942
 
943
                if(VerificadorUtil.naoEstaNuloOuVazio(dadosFuncionaisContratadoProcessoSeletivo)) {
944
                        listaDadosFuncionais.addAll(gerarDadosFuncionaisDoTipoContratadoPrestadorProcessoSeletivo(dadosFuncionaisContratadoProcessoSeletivo,
945
                                        dadosFuncionaisContratado, dadosFuncionais));
946
                }
947
 
948
                if(VerificadorUtil.naoEstaNuloOuVazio(dadosFuncionaisMatriculaCarreira)) {
949
                        listaDadosFuncionais.addAll(gerarDadosFuncionaisDoTipoMatriculaCarreira(dadosFuncionaisMatriculaCarreira,
950
                                        dadosFuncionaisMatricula, dadosFuncionais));
951
                }
952
 
953
                if(VerificadorUtil.naoEstaNuloOuVazio(dadosFuncionaisMatricula)) {
954
                        listaDadosFuncionais.addAll(gerarDadosFuncionaisDoTipoMatricula(dadosFuncionaisMatricula,
955
                                        dadosFuncionais, dadosFuncionaisMatriculaCarreira));
956
                }
957
 
958
                return listaDadosFuncionais;
959
        }
960
 
961
        private Set<ServidorDadoFuncional> gerarDadosFuncionaisDoTipoContratadoEstagiario(String dadosFuncionaisContratadoEstagiario,
962
                        String dadosFuncionaisContratado, String dadosFuncionais) {
963
 
964
                Set<ServidorDadoFuncional> listaDadosFuncionais = new LinkedHashSet<ServidorDadoFuncional>();
965
 
966
                String[] dadosFuncionaisCEArrayString = gerarArrayObjetosComPropriedadesString(dadosFuncionaisContratadoEstagiario);
967
 
968
                for (String dadoFuncionalCEString : dadosFuncionaisCEArrayString) {
969
                        String[] dadoFuncionalCEPropriedade = gerarArrayPropriedadesString(dadoFuncionalCEString);
970
 
971
                        String[] dadosFuncionaisCArrayString = gerarArrayObjetosComPropriedadesString(dadosFuncionaisContratado);
972
                        String[] dadoFuncionalCPropriedade = null;
973
                        for (String dadoFuncionalCString : dadosFuncionaisCArrayString) {
974
                                dadoFuncionalCPropriedade = gerarArrayPropriedadesString(dadoFuncionalCString);
975
                                if (getPropriedadeTratandoExcecao(dadoFuncionalCEPropriedade, 0).equalsIgnoreCase(getPropriedadeTratandoExcecao(dadoFuncionalCPropriedade, 0))) {
976
                                        break;
977
                                }
978
                        }
979
 
980
                        String[] dadosFuncionaisArrayString = gerarArrayObjetosComPropriedadesString(dadosFuncionais);
981
                        String[] dadoFuncionalPropriedade = null;
982
                        for (String dadoFuncionalString : dadosFuncionaisArrayString) {
983
                                dadoFuncionalPropriedade = gerarArrayPropriedadesString(dadoFuncionalString);
984
                                if (getPropriedadeTratandoExcecao(dadoFuncionalCEPropriedade, 0).equalsIgnoreCase(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 0))) {
985
                                        break;
986
                                }
987
                        }
988
 
989
                        ServidorDadoFuncionalContratadoEstagiario servidorDadoFuncional = new ServidorDadoFuncionalContratadoEstagiarioBuilder()
990
                                .comSequencial(getPropriedadeTratandoExcecao(dadoFuncionalCEPropriedade, 1))
991
                                .comInstituicao(getPropriedadeTratandoExcecao(dadoFuncionalCEPropriedade, 2))
992
                                .comCursoEstagio(getPropriedadeTratandoExcecao(dadoFuncionalCEPropriedade, 3))
993
                                .comIndicadorObrigatorio(getPropriedadeTratandoExcecao(dadoFuncionalCEPropriedade, 4))
994
                                .comIndicadorRemunerado(getPropriedadeTratandoExcecao(dadoFuncionalCEPropriedade, 5))
995
                                .comTipoNivel(getPropriedadeTratandoExcecao(dadoFuncionalCEPropriedade, 6))
996
                                .comNumeroContrato(getPropriedadeTratandoExcecao(dadoFuncionalCPropriedade, 2))
997
                                .comDataFim(getPropriedadeTratandoExcecao(dadoFuncionalCPropriedade, 3))
998
                                .comDataRescisao(getPropriedadeTratandoExcecao(dadoFuncionalCPropriedade, 4))
999
                                .comFormaIngresso(gerarFormaIngresso(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 2)))
1000
                                .comDataInicio(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 3))
1001
                                .comCargaHoraria(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 4))
1002
                                .comOrgaoLotacao(gerarOrgao(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 5)))
1003
                                .comUnidadeLotacao(gerarUnidade(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 6)))
1004
                                .comSetor(gerarSetor(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 7)))
1005
                                .comEspecialidade(gerarEspecialidade(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 8)))
1006
                                .comConselho(gerarServidorDadoFuncionalConselho(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 9), getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 10), getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 11)))
1007
                                .build();
1008
 
1009
                        if(VerificadorUtil.naoEstaNulo(servidorDadoFuncional.getServidorDadoFuncionalConselho())) {
1010
                                servidorDadoFuncional.getServidorDadoFuncionalConselho().setServidorDadoFuncional(servidorDadoFuncional);
1011
                        }
1012
 
1013
                        listaDadosFuncionais.add(servidorDadoFuncional);
1014
                }
1015
 
1016
                return listaDadosFuncionais;
1017
        }
1018
 
1019
        private Set<ServidorDadoFuncional> gerarDadosFuncionaisDoTipoContratadoPrestadorProcessoSeletivo(String dadosFuncionaisContratadoProcessoSeletivo,
1020
                        String dadosFuncionaisContratado, String dadosFuncionais) {
1021
 
1022
                Set<ServidorDadoFuncional> listaDadosFuncionais = new LinkedHashSet<ServidorDadoFuncional>();
1023
 
1024
                String[] dadosFuncionaisCPPArrayString = gerarArrayObjetosComPropriedadesString(dadosFuncionaisContratadoProcessoSeletivo);
1025
 
1026
                for (String dadoFuncionalCPPString : dadosFuncionaisCPPArrayString) {
1027
                        String[] dadoFuncionalCPPPropriedade = gerarArrayPropriedadesString(dadoFuncionalCPPString);
1028
 
1029
                        String[] dadosFuncionaisCArrayString = gerarArrayObjetosComPropriedadesString(dadosFuncionaisContratado);
1030
                        String[] dadoFuncionalCPropriedade = null;
1031
                        for (String dadoFuncionalCString : dadosFuncionaisCArrayString) {
1032
                                dadoFuncionalCPropriedade = gerarArrayPropriedadesString(dadoFuncionalCString);
1033
                                if (getPropriedadeTratandoExcecao(dadoFuncionalCPPPropriedade, 0).equalsIgnoreCase(getPropriedadeTratandoExcecao(dadoFuncionalCPropriedade, 0))) {
1034
                                        break;
1035
                                }
1036
                        }
1037
 
1038
                        String[] dadosFuncionaisArrayString = gerarArrayObjetosComPropriedadesString(dadosFuncionais);
1039
                        String[] dadoFuncionalPropriedade = null;
1040
                        for (String dadoFuncionalString : dadosFuncionaisArrayString) {
1041
                                dadoFuncionalPropriedade = gerarArrayPropriedadesString(dadoFuncionalString);
1042
                                if (getPropriedadeTratandoExcecao(dadoFuncionalCPPPropriedade, 0).equalsIgnoreCase(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 0))) {
1043
                                        break;
1044
                                }
1045
                        }
1046
 
1047
                        ServidorDadoFuncionalContratadoPrestadorProcessoSeletivo servidorDadoFuncional = new ServidorDadoFuncionalContratadoPrestadorProcessoSeletivoBuilder()
1048
                                .comSequencial(getPropriedadeTratandoExcecao(dadoFuncionalCPPPropriedade, 1))
1049
                                .comCargo(getPropriedadeTratandoExcecao(dadoFuncionalCPPPropriedade, 2))
1050
                                .comOrgaoOrigem(getPropriedadeTratandoExcecao(dadoFuncionalCPPPropriedade, 3))
1051
                                .comNumeroContrato(getPropriedadeTratandoExcecao(dadoFuncionalCPropriedade, 2))
1052
                                .comDataFim(getPropriedadeTratandoExcecao(dadoFuncionalCPropriedade, 3))
1053
                                .comDataRescisao(getPropriedadeTratandoExcecao(dadoFuncionalCPropriedade, 4))
1054
                                .comFormaIngresso(gerarFormaIngresso(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 2)))
1055
                                .comDataInicio(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 3))
1056
                                .comCargaHoraria(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 4))
1057
                                .comOrgaoLotacao(gerarOrgao(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 5)))
1058
                                .comUnidadeLotacao(gerarUnidade(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 6)))
1059
                                .comSetor(gerarSetor(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 7)))
1060
                                .comConselho(gerarServidorDadoFuncionalConselho(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 9), getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 10), getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 11)))
1061
                                .build();
1062
 
1063
                        if(VerificadorUtil.naoEstaNulo(servidorDadoFuncional.getServidorDadoFuncionalConselho())) {
1064
                                servidorDadoFuncional.getServidorDadoFuncionalConselho().setServidorDadoFuncional(servidorDadoFuncional);
1065
                        }
1066
 
1067
                        listaDadosFuncionais.add(servidorDadoFuncional);
1068
                }
1069
 
1070
                return listaDadosFuncionais;
1071
        }
1072
 
1073
        private Set<ServidorDadoFuncional> gerarDadosFuncionaisDoTipoMatricula(String dadosFuncionaisMatricula,
1074
                        String dadosFuncionais, String dadosFuncionaisMatriculaCarreira) {
1075
 
1076
                Set<ServidorDadoFuncional> listaDadosFuncionais = new LinkedHashSet<ServidorDadoFuncional>();
1077
 
1078
                String[] dadosFuncionaisMArrayString = gerarArrayObjetosComPropriedadesString(dadosFuncionaisMatricula);
1079
 
1080
                for (String dadoFuncionalMString : dadosFuncionaisMArrayString) {
1081
                        String[] dadoFuncionalMPropriedade = gerarArrayPropriedadesString(dadoFuncionalMString);
1082
 
1083
                        Boolean dadoFuncionalMatriculaIsolado = true;
1084
                        if(VerificadorUtil.naoEstaNuloOuVazio(dadosFuncionaisMatriculaCarreira)) {
1085
                                String[] dadosFuncionaisMCArrayString = gerarArrayObjetosComPropriedadesString(dadosFuncionaisMatriculaCarreira);
1086
                                String[] dadoFuncionalMCPropriedade = null;
1087
                                for (String dadoFuncionalMCString : dadosFuncionaisMCArrayString) {
1088
                                        dadoFuncionalMCPropriedade = gerarArrayPropriedadesString(dadoFuncionalMCString);
1089
                                        if (getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 0).equalsIgnoreCase(getPropriedadeTratandoExcecao(dadoFuncionalMCPropriedade, 0))) {
1090
                                                dadoFuncionalMatriculaIsolado = false;
1091
                                                break;
1092
                                        }
1093
                                }
1094
                        }
1095
 
1096
                        if(dadoFuncionalMatriculaIsolado) {
1097
 
1098
                                String[] dadosFuncionaisArrayString = gerarArrayObjetosComPropriedadesString(dadosFuncionais);
1099
                                String[] dadoFuncionalPropriedade = null;
1100
                                for (String dadoFuncionalString : dadosFuncionaisArrayString) {
1101
                                        dadoFuncionalPropriedade = gerarArrayPropriedadesString(dadoFuncionalString);
1102
                                        if (getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 0).equalsIgnoreCase(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 0))) {
1103
                                                break;
1104
                                        }
1105
                                }
1106
 
1107
                                Funcao funcaoConsultada = VerificadorUtil.estaNuloOuVazio(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 9)) ? null :
1108
                                        cenarioTestHelper.consultarFuncaoPorSequencial(new Integer(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 9)));
1109
 
1110
                                ServidorDadoFuncionalMatricula servidorDadoFuncional = new ServidorDadoFuncionalMatriculaBuilder()
1111
                                        .comSequencial(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 1))
1112
                                        .comMatricula(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 2))
1113
                                        .comDigitoMatricula(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 3))
1114
                                        .comNumeroOrdem(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 4))
1115
                                        .comSituacaoServidor(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 5))
1116
                                        .comDataNomeacao(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 6))
1117
                                        .comDataPosse(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 7))
1118
                                        .comDataExercicio(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 8))
1119
                                        .comFuncao(funcaoConsultada)
1120
                                        .comOrgaoOrigem(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 10))
1121
                                        .comTipoRegimeTrabalho(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 11))
1122
                                        .comFormaIngresso(gerarFormaIngresso(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 2)))
1123
                                        .comDataInicio(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 3))
1124
                                        .comCargaHoraria(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 4))
1125
                                        .comOrgaoLotacao(gerarOrgao(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 5)))
1126
                                        .comUnidadeLotacao(gerarUnidade(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 6)))
1127
                                        .comSetor(gerarSetor(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 7)))
1128
                                        .comEspecialidade(gerarEspecialidade(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 8)))
1129
                                        .comConselho(gerarServidorDadoFuncionalConselho(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 9), getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 10), getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 11)))
1130
                                        .build();
1131
 
1132
                                if(VerificadorUtil.naoEstaNulo(servidorDadoFuncional.getServidorDadoFuncionalConselho())) {
1133
                                        servidorDadoFuncional.getServidorDadoFuncionalConselho().setServidorDadoFuncional(servidorDadoFuncional);
1134
                                }
1135
 
1136
                                listaDadosFuncionais.add(servidorDadoFuncional);
1137
                        }
1138
                }
1139
 
1140
                return listaDadosFuncionais;
1141
        }
1142
 
1143
        private Set<ServidorDadoFuncional> gerarDadosFuncionaisDoTipoMatriculaCarreira(String dadosFuncionaisMatriculaCarreira,
1144
                        String dadosFuncionaisMatricula, String dadosFuncionais) {
1145
 
1146
                Set<ServidorDadoFuncional> listaDadosFuncionais = new LinkedHashSet<ServidorDadoFuncional>();
1147
 
1148
                String[] dadosFuncionaisMCArrayString = gerarArrayObjetosComPropriedadesString(dadosFuncionaisMatriculaCarreira);
1149
 
1150
                for (String dadoFuncionalMCString : dadosFuncionaisMCArrayString) {
1151
                        String[] dadoFuncionalMCPropriedade = gerarArrayPropriedadesString(dadoFuncionalMCString);
1152
 
1153
                        String[] dadosFuncionaisMArrayString = gerarArrayObjetosComPropriedadesString(dadosFuncionaisMatricula);
1154
                        String[] dadoFuncionalMPropriedade = null;
1155
                        for (String dadoFuncionalMString : dadosFuncionaisMArrayString) {
1156
                                dadoFuncionalMPropriedade = gerarArrayPropriedadesString(dadoFuncionalMString);
1157
                                if (getPropriedadeTratandoExcecao(dadoFuncionalMCPropriedade, 0).equalsIgnoreCase(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 0))) {
1158
                                        break;
1159
                                }
1160
                        }
1161
 
1162
                        String[] dadosFuncionaisArrayString = gerarArrayObjetosComPropriedadesString(dadosFuncionais);
1163
                        String[] dadoFuncionalPropriedade = null;
1164
                        for (String dadoFuncionalString : dadosFuncionaisArrayString) {
1165
                                dadoFuncionalPropriedade = gerarArrayPropriedadesString(dadoFuncionalString);
1166
                                if (getPropriedadeTratandoExcecao(dadoFuncionalMCPropriedade, 0).equalsIgnoreCase(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 0))) {
1167
                                        break;
1168
                                }
1169
                        }
1170
 
1171
                        Funcao funcaoConsultada = VerificadorUtil.estaNuloOuVazio(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 9)) ? null :
1172
                                cenarioTestHelper.consultarFuncaoPorSequencial(new Integer(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 9)));
1173
 
1174
                        ServidorDadoFuncionalMatriculaCarreira servidorDadoFuncional = new ServidorDadoFuncionalMatriculaCarreiraBuilder()
1175
                                .comSequencial(getPropriedadeTratandoExcecao(dadoFuncionalMCPropriedade, 1))
1176
                                .comUnidadeExercicio(getPropriedadeTratandoExcecao(dadoFuncionalMCPropriedade, 2))
1177
                                .comCargo(getPropriedadeTratandoExcecao(dadoFuncionalMCPropriedade, 3))
1178
                                .comCarreira(getPropriedadeTratandoExcecao(dadoFuncionalMCPropriedade, 4))
1179
                                .comTipoClasse(getPropriedadeTratandoExcecao(dadoFuncionalMCPropriedade, 5))
1180
                                .comTipoNivel(getPropriedadeTratandoExcecao(dadoFuncionalMCPropriedade, 6))
1181
                                .comMatricula(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 2))
1182
                                .comDigitoMatricula(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 3))
1183
                                .comNumeroOrdem(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 4))
1184
                                .comSituacaoServidor(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 5))
1185
                                .comDataNomeacao(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 6))
1186
                                .comDataPosse(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 7))
1187
                                .comDataExercicio(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 8))
1188
                                .comFuncao(funcaoConsultada)
1189
                                .comOrgaoOrigem(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 10))
1190
                                .comTipoRegimeTrabalho(getPropriedadeTratandoExcecao(dadoFuncionalMPropriedade, 11))
1191
                                .comFormaIngresso(gerarFormaIngresso(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 2)))
1192
                                .comDataInicio(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 3))
1193
                                .comCargaHoraria(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 4))
1194
                                .comOrgaoLotacao(gerarOrgao(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 5)))
1195
                                .comUnidadeLotacao(gerarUnidade(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 6)))
1196
                                .comSetor(gerarSetor(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 7)))
1197
                                .comEspecialidade(gerarEspecialidade(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 8)))
1198
                                .comConselho(gerarServidorDadoFuncionalConselho(getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 9), getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 10), getPropriedadeTratandoExcecao(dadoFuncionalPropriedade, 11)))
1199
                                .build();
1200
 
1201
                        if(VerificadorUtil.naoEstaNulo(servidorDadoFuncional.getServidorDadoFuncionalConselho())) {
1202
                                servidorDadoFuncional.getServidorDadoFuncionalConselho().setServidorDadoFuncional(servidorDadoFuncional);
1203
                        }
1204
 
1205
                        listaDadosFuncionais.add(servidorDadoFuncional);
1206
                }
1207
 
1208
                return listaDadosFuncionais;
1209
        }
1210
 
1211
        private SetorView gerarSetor(String codigoSetor) {
1212
                SetorView setor = null;
1213
 
1214
                if(VerificadorUtil.naoEstaNuloOuVazio(codigoSetor)) {
1215
                        setor = new SetorViewBuilder().comCodigo(codigoSetor).build();
1216
                }
1217
 
1218
                return setor;
1219
        }
1220
 
1221
        private Unidade gerarUnidade(String codigoUnidade) {
1222
                Unidade unidade = null;
1223
 
1224
                if(VerificadorUtil.naoEstaNuloOuVazio(codigoUnidade)) {
1225
                        unidade = new UnidadeBuilder().comCodigo(codigoUnidade).build();
1226
                }
1227
 
1228
                return unidade;
1229
        }
1230
 
1231
        private Orgao gerarOrgao(String codigoOrgao) {
1232
                Orgao orgaoExterno= null;
1233
 
1234
                if(VerificadorUtil.naoEstaNuloOuVazio(codigoOrgao)) {
1235
                        orgaoExterno = new OrgaoBuilder().comSequencial(codigoOrgao).build();
1236
                }
1237
 
1238
                return orgaoExterno;
1239
        }
1240
 
1241
        private OrgaoView gerarOrgaoView(String codigoOrgao) {
1242
                OrgaoView orgao = null;
1243
 
1244
                if(VerificadorUtil.naoEstaNuloOuVazio(codigoOrgao)) {
1245
                        orgao = new OrgaoViewBuilder().comCodigo(codigoOrgao).build();
1246
                }
1247
 
1248
                return orgao;
1249
        }
1250
 
1251
        private SituacaoServidor gerarSituacaoServidor( String codigoSituacaoServidor) {
1252
                SituacaoServidor situacaoServidor = null;
1253
 
1254
                if(VerificadorUtil.naoEstaNuloOuVazio(codigoSituacaoServidor)) {
1255
                        situacaoServidor = new SituacaoServidorBuilder().comCodigo(codigoSituacaoServidor).build();
1256
                }
1257
 
1258
                return situacaoServidor;
1259
        }
1260
 
1261
        private Funcao gerarFuncao(String codigoFuncao) {
1262
                Funcao funcao = null;
1263
 
1264
                if(VerificadorUtil.naoEstaNuloOuVazio(codigoFuncao)) {
1265
                        funcao = new FuncaoBuilder().comCodigo(codigoFuncao).build();
1266
                }
1267
 
1268
                return funcao;
1269
        }
1270
 
1271
        private Cargo gerarCargo(String codigoCargo) {
1272
                Cargo cargo = null;
1273
 
1274
                if(VerificadorUtil.naoEstaNuloOuVazio(codigoCargo)) {
1275
                        cargo = new CargoBuilder().comCodigo(codigoCargo).build();
1276
                }
1277
 
1278
                return cargo;
1279
        }
1280
 
1281
        private Especialidade gerarEspecialidade(String codigoEspecialidade) {
1282
                Especialidade especialidade = null;
1283
 
1284
                if(VerificadorUtil.naoEstaNuloOuVazio(codigoEspecialidade)) {
1285
                        especialidade = new EspecialidadeBuilder().comCodigo(codigoEspecialidade).build();
1286
                }
1287
 
1288
                return especialidade;
1289
        }
1290
 
1291
        private Banco gerarBanco(String codigoBanco) {
1292
                Banco banco = null;
1293
 
1294
                if(VerificadorUtil.naoEstaNuloOuVazio(codigoBanco)) {
1295
                        banco = new BancoBuilder().comCodigo(codigoBanco).build();
1296
                }
1297
 
1298
                return banco;
1299
        }
1300
 
1301
        private FormaIngresso gerarFormaIngresso(String codigo) {
1302
                FormaIngresso formaIngresso = null;
1303
                FormaIngresso formaIngressoConsutlada = null;
1304
 
1305
                if(VerificadorUtil.naoEstaNuloOuVazio(codigo)) {
1306
                        formaIngresso = new FormaIngressoBuilder().comCodigo(codigo).build();
1307
                        formaIngressoConsutlada = cenarioTestHelper.consultarFormaIngressoPorSequencial(codigo);
1308
                }
1309
 
1310
                return VerificadorUtil.naoEstaNulo(formaIngressoConsutlada) ? formaIngressoConsutlada : formaIngresso;
1311
        }
1312
 
1313
        private ServidorDadoFuncionalConselho gerarServidorDadoFuncionalConselho(String numeroInscricao, String codigoConselho, String uf) {
1314
                ServidorDadoFuncionalConselho servidorDadoFuncionalConselho = null;
1315
 
1316
                if(VerificadorUtil.naoEstaNuloOuVazio(numeroInscricao) || VerificadorUtil.naoEstaNuloOuVazio(codigoConselho) || VerificadorUtil.naoEstaNuloOuVazio(uf)) {
1317
                        servidorDadoFuncionalConselho = new ServidorDadoFuncionalConselhoBuilder()
1318
                                .comNumeroInscricaoConselho(numeroInscricao)
1319
                                .comConselho(codigoConselho)
1320
                                .comUf(uf)
1321
                                .build();
1322
                }
1323
 
1324
                return servidorDadoFuncionalConselho;
1325
        }
1326
 
1327
        private Set<ServidorQualificacao> gerarQualificacoes(String listaQualificacoesString) {
1328
                Set<ServidorQualificacao> qualificacoes = null;
1329
 
1330
                if(VerificadorUtil.naoEstaNuloOuVazio(listaQualificacoesString)) {
1331
                        qualificacoes = new HashSet<ServidorQualificacao>();
1332
 
1333
                        String[] qualificacoesArrayString = gerarArrayObjetosComPropriedadesString(listaQualificacoesString);
1334
 
1335
                        for (String qualificacaoArrayString : qualificacoesArrayString) {
1336
                                String[] qualificacaoPropriedade = gerarArrayPropriedadesString(qualificacaoArrayString);
1337
                                ServidorQualificacao servidorQualificacao = new ServidorQualificacaoBuilder()
1338
                                        .comTipoQualificacao(getPropriedadeTratandoExcecao(qualificacaoPropriedade, 0))
1339
                                        .comDescricao(getPropriedadeTratandoExcecao(qualificacaoPropriedade, 1))
1340
                                        .comInstituicao(getPropriedadeTratandoExcecao(qualificacaoPropriedade, 2))
1341
                                        .comCargaHoraria(getPropriedadeTratandoExcecao(qualificacaoPropriedade, 3))
1342
                                        .comDataInicial(getPropriedadeTratandoExcecao(qualificacaoPropriedade, 4))
1343
                                        .comDataFinal(getPropriedadeTratandoExcecao(qualificacaoPropriedade, 5))
1344
                                        .comObservacao(getPropriedadeTratandoExcecao(qualificacaoPropriedade, 6))
1345
                                        .build();
1346
                                qualificacoes.add(servidorQualificacao);
1347
                        }
1348
                }
1349
 
1350
                return qualificacoes;
1351
        }
1352
 
1353
        private Set<ServidorDependente> gerarDependentes(String listaDependentesString) {
1354
                Set<ServidorDependente> dependentes = null;
1355
 
1356
                if(VerificadorUtil.naoEstaNuloOuVazio(listaDependentesString)) {
1357
                        dependentes = new HashSet<ServidorDependente>();
1358
 
1359
                        String[] dependentesArrayString = gerarArrayObjetosComPropriedadesString(listaDependentesString);
1360
 
1361
                        for (String dependenteArrayString : dependentesArrayString) {
1362
                                String[] dependentePropriedade = gerarArrayPropriedadesString(dependenteArrayString);
1363
                                ServidorDependente servidorDependente = new ServidorDependenteBuilder()
1364
                                        .comNome(getPropriedadeTratandoExcecao(dependentePropriedade, 0))
1365
                                        .comCPF(getPropriedadeTratandoExcecao(dependentePropriedade, 1))
1366
                                        .comDataNascimento(getPropriedadeTratandoExcecao(dependentePropriedade, 2))
1367
                                        .comSexo(getPropriedadeTratandoExcecao(dependentePropriedade, 3))
1368
                                        .comTipoParentesco(getPropriedadeTratandoExcecao(dependentePropriedade, 4))
1369
                                        .build();
1370
                                dependentes.add(servidorDependente);
1371
                        }
1372
                }
1373
 
1374
                return dependentes;
1375
        }
1376
 
1377
        private String getPropriedadeTratandoExcecao(String[] propriedades, int indice) {
1378
                try {
1379
                        return VerificadorUtil.naoEstaNuloOuVazio(propriedades[indice]) ? propriedades[indice] : null;
1380
                } catch(Exception ex) {
1381
                        return null;
1382
                }
1383
        }
1384
 
1385
        private String[] gerarArrayPropriedadesString(String objetosComPropriedadesString) {
1386
                return objetosComPropriedadesString.split(",");
1387
        }
1388
 
1389
        private String[] gerarArrayObjetosComPropriedadesString(String lista) {
1390
                return lista.split(";");
1391
        }
1392
 
1393
        private Deficiencia gerarDeficiencia(String codigoDeficiencia) {
1394
                Deficiencia deficiencia = null;
1395
 
1396
                if(VerificadorUtil.naoEstaNuloOuVazio(codigoDeficiencia)) {
1397
                        deficiencia = new DeficienciaBuilder().comCodigo(codigoDeficiencia).build();
1398
                }
1399
 
1400
                return deficiencia;
1401
        }
1402
 
1403
        private Nacionalidade gerarNacionalidade(String codigoNacionalidade) {
1404
                Nacionalidade nacionalidade = null;
1405
 
1406
                if(VerificadorUtil.naoEstaNuloOuVazio(codigoNacionalidade)) {
1407
                        nacionalidade = new NacionalidadeBuilder().comCodigo(codigoNacionalidade).build();
1408
                }
1409
 
1410
                return nacionalidade;
1411
        }
1412
 
1413
        private GrauInstrucao gerarGrauInstrucao(String codigoGrauInstrucao) {
1414
                GrauInstrucao grauInstrucao = null;
1415
 
1416
                if(VerificadorUtil.naoEstaNuloOuVazio(codigoGrauInstrucao)) {
1417
                        grauInstrucao = new GrauInstrucaoBuilder().comCodigo(codigoGrauInstrucao).build();
1418
                }
1419
 
1420
                return grauInstrucao;
1421
        }
1422
 
1423
        private String converterSimNaoParaTrueFalse(String value) {
1424
                if (VerificadorUtil.estaNulo(value)) return null;
1425
                if (value.equals("SIM")) return "true";
1426
                if (value.equals("NAO")) return "false";
1427
                return null;
1428
        }
1429
 
1430
        @Override
1431
        public String consultarOrgao(final String sigla, final String descricao, final String esfera, final String ativo) {
1432
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
1433
                        @Override
1434
                        public String execute() throws Exception {
1435
                                Orgao filtro = new OrgaoBuilder().comSigla(sigla).comDescricao(descricao).comEsfera(esfera).comSituacaoAtivo(converterSimNaoParaTrueFalse(ativo)).build();
1436
                                List<Orgao> orgaos = orgaoFacade.consultarOrgaos(filtro, PRIMEIRO_REGISTRO, Integer.MAX_VALUE);
1437
                                return new FormatadorDeMensagemImpl().formatar(ContextoMensagem.EXIBIR, orgaos.toArray());
1438
                        }
1439
                });
1440
        }
1441
 
1442
        @Override
1443
        public String cadastrarOrgao(final String codigo, final String esfera, final String descricao, final String sigla) {
1444
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {                     
1445
                        @Override
1446
                        public String execute() throws Exception {
1447
                                Orgao orgao = new OrgaoBuilder().comCodigoOrgao(codigo).comEsfera(esfera).comSigla(sigla).comDescricao(descricao).build();
1448
                                orgaoFacade.cadastrar(orgao);
1449
                                Orgao persistido = cenarioTestHelper.consultarOrgaoPorSequencial(orgao.getSequencial());
1450
                                return DADOS_GRAVADOS_COM_SUCESSO + ": " + new FormatadorDeMensagemImpl().formatar(ContextoMensagem.EXIBIR, persistido);
1451
                        }
1452
                });
1453
        }
1454
 
1455
        @Override
1456
        public String alterarOrgao(final String sequencial, final String codigo, final String esfera, final String descricao, final String sigla, final String ativo) {
1457
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {                     
1458
                        @Override
1459
                        public String execute() throws Exception {
1460
                                Orgao orgao = new OrgaoBuilder().comSequencial(sequencial).comCodigoOrgao(codigo).comEsfera(esfera).comSigla(sigla).comDescricao(descricao).comSituacaoAtivo(ativo).build();
1461
                                orgaoFacade.alterar(orgao);
1462
                                Orgao persistido = cenarioTestHelper.consultarOrgaoPorSequencial(orgao.getSequencial());
1463
                                return DADOS_GRAVADOS_COM_SUCESSO + ": " + new FormatadorDeMensagemImpl().formatar(ContextoMensagem.EXIBIR, persistido);
1464
                        }
1465
                });
1466
        }
1467
        @Override
1468
        public String consultarUnidade(final String sequencialOrgao, final String sigla, final String descricao, final String ativo) {
1469
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
1470
                        @Override
1471
                        public String execute() throws Exception {
1472
                                Unidade filtro = new UnidadeBuilder().comOrgao(sequencialOrgao).comSigla(sigla).comDescricao(descricao).comSituacaoAtivo(converterSimNaoParaTrueFalse(ativo)).build();
1473
                                List<Unidade> unidades = unidadeFacade.consultarUnidades(filtro, PRIMEIRO_REGISTRO, Integer.MAX_VALUE);
1474
 
1475
                                return cenarioTestHelper.gerarMensagemConsultar(unidades);
1476
                        }
1477
                });
1478
        }
1479
 
1480
        @Override
1481
        public String cadastrarUnidade(final String sequencialOrgao, final String sigla, final String descricao) {
1482
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {                     
1483
                        @Override
1484
                        public String execute() throws Exception {
1485
                                Unidade unidade = new UnidadeBuilder().comOrgao(sequencialOrgao).comSigla(sigla).comDescricao(descricao).build();
1486
                                unidadeFacade.cadastrar(unidade);
1487
                                Unidade unidadaConsultada = cenarioTestHelper.consultarUnidadePorSequencial(unidade.getCodigo());
1488
 
1489
                                return DADOS_GRAVADOS_COM_SUCESSO + cenarioTestHelper.gerarMensagem(unidadaConsultada);
1490
                        }
1491
                });
1492
        }
1493
 
1494
        @Override
1495
        public String alterarUnidade(String sequencialUnidade, String sequencialOrgao, String sigla, String descricao, String ativo) {
1496
                final Unidade unidade = new UnidadeBuilder().comCodigo(sequencialUnidade).comOrgao(sequencialOrgao).comSigla(sigla).comSituacaoAtivo(ativo).comDescricao(descricao).build();
1497
 
1498
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {                     
1499
                        @Override
1500
                        public String execute() throws Exception {
1501
                                unidadeFacade.alterar(unidade);
1502
                                Unidade unidadaConsultada = cenarioTestHelper.consultarUnidadePorSequencial(unidade.getCodigo());
1503
 
1504
                                return DADOS_GRAVADOS_COM_SUCESSO + cenarioTestHelper.gerarMensagem(unidadaConsultada);
1505
                        }
1506
                });
1507
        }
1508
 
1509
        @Override
1510
        public String consultarCargo(String descricao, String sequencialGrauInstrucao, String ativo) {
1511
                ParametroConsultaCargoDTO parametroConsultaCargoDTO = criarParametroConsultaCargoDTO(descricao, sequencialGrauInstrucao, ativo);
1512
                List<Cargo> cargos = cargoFacade.consultar(parametroConsultaCargoDTO);
1513
 
1514
                return cenarioTestHelper.gerarMensagemConsultar(cargos);
1515
        }
1516
 
1517
        @Override
1518
        public String cadastrarCargo(String descricao, String sequencialGrauInstrucao, String quantidadeDeVagas) {
1519
                final Cargo cargo = new CargoBuilder().comDescricao(descricao).comGrauInstrucao(sequencialGrauInstrucao).comQuantidadeDeVagas(quantidadeDeVagas).build();
1520
 
1521
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {                     
1522
                        @Override
1523
                        public String execute() throws Exception {
1524
                                cargoFacade.cadastrar(cargo);
1525
                                Cargo cargoConsultada = cenarioTestHelper.consultarCargoPorSequencial(cargo.getCodigo());
1526
 
1527
                                return DADOS_GRAVADOS_COM_SUCESSO + cenarioTestHelper.gerarMensagem(cargoConsultada);
1528
                        }
1529
                });
1530
        }
1531
 
1532
        @Override
1533
        public String alterarCargo(String codigo, String descricao,String sequencialGrauInstrucao, String quantidadeDeVagas, String ativo) {
1534
                final Cargo cargo = new CargoBuilder()
1535
                                        .comCodigo(codigo)
1536
                                        .comDescricao(descricao)
1537
                                        .comGrauInstrucao(sequencialGrauInstrucao)
1538
                                        .comQuantidadeDeVagas(quantidadeDeVagas)
1539
                                        .comAtivo(ativo)
1540
                                        .build();
1541
 
1542
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {                     
1543
                        @Override
1544
                        public String execute() throws Exception {
1545
                                cargoFacade.alterar(cargo);
1546
                                Cargo cargoConsultada = cenarioTestHelper.consultarCargoPorSequencial(cargo.getCodigo());
1547
 
1548
                                return DADOS_GRAVADOS_COM_SUCESSO + cenarioTestHelper.gerarMensagem(cargoConsultada);
1549
                        }
1550
                });
1551
        }
1552
 
1553
        @Override
1554
        public String listarOrgao() {
1555
                List<Orgao> listaOrgao = orgaoFacade.listarOrgao();
1556
                return cenarioTestHelper.gerarMensagemConsultar(listaOrgao);
1557
        }
1558
 
1559
        @Override
1560
        public String listarFormaIngresso(String tipoVinculo) {
1561
                FormaIngresso formaIngresso = new FormaIngressoBuilder().comTipoVinculo(TipoVinculo.CONTRATADO).build();
1562
                List<FormaIngresso> retornoListaFormaIngresso = formaIngressoFacade.consultarFormaIngressoPorTipoVinculo(formaIngresso);
1563
                return cenarioTestHelper.gerarMensagemConsultar(retornoListaFormaIngresso);
1564
        }
1565
        @Override
1566
        public String listarOrgaoAtivo() {
1567
                List<Orgao> listaOrgaoAtivo = orgaoFacade.listarOrgaoAtivo();
1568
                return cenarioTestHelper.gerarMensagemConsultar(listaOrgaoAtivo);
1569
        }
1570
 
1571
        @Override
1572
        public String emitirRelatorioQuantitativoDeCargoOuFuncao(final String tipoRelatorio) {
1573
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
1574
 
1575
                        @Override
1576
                        public String execute() throws Exception {
1577
                                TipoRelatorioQuantitativo relatorio = null;
1578
                                if(tipoRelatorio.equals("FUNCAO")){
1579
                                        relatorio = TipoRelatorioQuantitativo.ACOMPANHAMENTO_FUNCAO;
1580
                                }else{
1581
                                        relatorio = TipoRelatorioQuantitativo.ACOMPANHAMENTO_CARGO;
1582
                                }
1583
                                JasperPrint relatorioGerado = emissorRelatorioFacade.emitirRelatorioQuantitativoDeCargoOuFuncao(relatorio);
1584
                                return RelatorioUtils.extrairTextoDoJasperPrintIhGeraMensagemRelatorio(relatorioGerado);
1585
                        }
1586
                });
1587
        }
1588
 
1589
        @Override
1590
        public String listarUnidadeAtiva(String identificadorOrgao) {
1591
                final Unidade unidade = new UnidadeBuilder().comOrgao(identificadorOrgao).build();
1592
 
1593
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
1594
                        @Override
1595
                        public String execute() throws Exception {
1596
                                List<Unidade> listaUnidadesAtivas = unidadeFacade.listarUnidadeAtiva(unidade);
1597
                                return cenarioTestHelper.gerarMensagemUnidadeAtiva(listaUnidadesAtivas);
1598
                        }
1599
                });
1600
        }
1601
 
1602
        @Override
1603
        public String listarFormaIngressoParaDadoFuncional(String situacaoCadastral, String sequencialUsuario, String tipoVinculo) {
1604
                final TipoSituacaoCadastral situacao = TipoSituacaoCadastral.parse(situacaoCadastral);
1605
                final UsuarioView usuarioAlteracao = cenarioTestHelper.consultarUsuarioViewComPermissoesScaPorSequencial(Long.parseLong(sequencialUsuario));
1606
                final TipoVinculo vinculo = TipoVinculo.parse(tipoVinculo);
1607
 
1608
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
1609
                        @Override
1610
                        public String execute() throws Exception {
1611
                                List<FormaIngresso> listaFormaIngresso = formaIngressoFacade.listarFormaIngressoParaDadoFuncional(situacao, usuarioAlteracao, vinculo);
1612
                                return cenarioTestHelper.gerarMensagemFormaIngresso(listaFormaIngresso);
1613
                        }
1614
                });
1615
        }
1616
 
1617
        @Override
1618
        public String listarInstituicaoEstagio() {
1619
                List<InstituicaoEstagio> consultaInstituicao = instituicaoEstagioFacade.listarInstituicaoEstagio();
1620
                return cenarioTestHelper.gerarMensagemConsultar(consultaInstituicao);
1621
        }
1622
 
1623
        @Override
1624
        public String listarCursoEstagio() {
1625
                List<CursoEstagio> consultaCursoEstagio = cursoEstagioFacade.listarCursoEstagio();
1626
                return cenarioTestHelper.gerarMensagemConsultar(consultaCursoEstagio);
1627
        }
1628
 
1629
        @Override
1630
        public String listarParametro() {
1631
                List<Parametro> consultaParametro = parametroFacade.listarParametro();
1632
                return cenarioTestHelper.gerarMensagemConsultar(consultaParametro);
1633
        }
1634
 
1635
        @Override
1636
        public String alterarParametro(final String codigo, String valor) {
1637
                Parametro parametroConsultado = cenarioTestHelper.consultarParametroPorCodigo(Integer.parseInt(codigo));
1638
                final Parametro parametro = new ParametroBuilder(parametroConsultado).comValor(valor).build();
1639
 
1640
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
1641
                        @Override
1642
                        public String execute() throws Exception {
1643
                                parametroFacade.alterar(parametro);
1644
                                Parametro parametroAlterado = cenarioTestHelper.consultarParametroPorCodigo(Integer.parseInt(codigo));
1645
                                return DADOS_GRAVADOS_COM_SUCESSO + cenarioTestHelper.gerarMensagem(parametroAlterado);
1646
                        }
1647
                });
1648
        }
1649
 
1650
        @Override
1651
        public String listarEventoAtivo() {
1652
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
1653
                        @Override
1654
                        public String execute() throws Exception {
1655
                                List<Evento> eventos = eventoFacade.listarEventoAtivo();
1656
 
1657
                                return cenarioTestHelper.gerarMensagemConsultar(eventos);
1658
                        }
1659
                });
1660
        }
1661
 
1662
        @Override
1663
        public String consultarEventoServidor(final String sequencialUsuario, final String codigoEvento,
1664
                        final String sequencialUnidadeExercicio, final String tipoSituacaoEvento, final String sequencialDadoFuncional) {
1665
 
1666
                final UsuarioView usuario = cenarioTestHelper.consultarUsuarioViewComPermissoesScaPorSequencial(new Long(sequencialUsuario));
1667
                final List<Restricoes> listaRestricoes = gerarListaRestricoesConsultarEventoServidor(codigoEvento, sequencialUnidadeExercicio,
1668
                                tipoSituacaoEvento, sequencialDadoFuncional);
1669
 
1670
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
1671
                        @Override
1672
                        public String execute() throws Exception {
1673
                                List<EventoServidorDTO> eventosServidor = eventoServidorFacade.consultarDTOPassandoRestricoes(PRIMEIRO_REGISTRO, CINCO_ITENS,
1674
                                                listaRestricoes, usuario);
1675
                                return cenarioTestHelper.gerarMensagemConsultar(eventosServidor);
1676
                        }
1677
                });
1678
        }
1679
 
1680
        @Override
1681
        public String cadastrarEventoServidor(String sequencialUsuario, final String sequencialDadoFuncional, String codigoEvento,
1682
                        String dataEvento, String observacao, String indicadorRetroativo, String listaDocumentos,
1683
                        String exigeProcesso, String exigePortaria, String exigeDecreto, String exigeVigencia,
1684
                        String transferencia, String remocaoOficiosa, String remocaoOficial, String redistribuicao,
1685
                        String acesso, String progressaoHorizontal,     String progressoVertical) {
1686
 
1687
                inserirUsuarioHistoricoNoContexto(sequencialUsuario);
1688
 
1689
                final EventoServidorDadoFuncional eventoServidorDadoFuncional = gerarEventoServidorDadoFuncional(null, sequencialDadoFuncional, codigoEvento,
1690
                                null, dataEvento, observacao, indicadorRetroativo, listaDocumentos,
1691
                                exigeProcesso, exigePortaria, exigeDecreto, exigeVigencia,
1692
                                transferencia, remocaoOficiosa, remocaoOficial, redistribuicao,
1693
                                acesso, progressaoHorizontal, progressoVertical);
1694
 
1695
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
1696
                        @Override
1697
                        public String execute() throws Exception {
1698
                                eventoServidorFacade.cadastrar(eventoServidorDadoFuncional);
1699
                                EventoServidorDadoFuncional evento = cenarioTestHelper.consultarEventoServidorDadoFuncional(eventoServidorDadoFuncional.getSequencial());
1700
                                return DADOS_GRAVADOS_COM_SUCESSO + cenarioTestHelper.gerarMensagem(evento);
1701
                        }
1702
                });
1703
        }
1704
 
1705
        @Override
1706
        public String alterarEventoServidor(final String sequencial, String sequencialUsuario,
1707
                        String dataEvento, String observacao, String indicadorRetroativo, String listaDocumentos,
1708
                        String exigeProcesso, String exigePortaria, String exigeDecreto, String exigeVigencia,
1709
                        String transferencia, String remocaoOficiosa, String remocaoOficial, String redistribuicao,
1710
                        String acesso, String progressaoHorizontal, String progressoVertical) {
1711
 
1712
                inserirUsuarioHistoricoNoContexto(sequencialUsuario);
1713
 
1714
                EventoServidorDadoFuncional eventoCadastrado = cenarioTestHelper.consultarEventoServidorDadoFuncional(new Long(sequencial));
1715
                String sequencialDadoFuncional = eventoCadastrado.getServidorDadoFuncional().getSequencial().toString();
1716
                String codigoEvento = eventoCadastrado.getEvento().getCodigo().toString();
1717
                String tipoSituacao = eventoCadastrado.getTipoSituacaoEvento();
1718
 
1719
                final EventoServidorDadoFuncional eventoServidorDadoFuncional = gerarEventoServidorDadoFuncional(sequencial, sequencialDadoFuncional, codigoEvento,
1720
                                tipoSituacao, dataEvento, observacao, indicadorRetroativo, listaDocumentos,
1721
                                exigeProcesso, exigePortaria, exigeDecreto, exigeVigencia,
1722
                                transferencia, remocaoOficiosa, remocaoOficial, redistribuicao,
1723
                                acesso, progressaoHorizontal, progressoVertical);
1724
 
1725
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
1726
                        @Override
1727
                        public String execute() throws Exception {
1728
                                eventoServidorFacade.alterar(eventoServidorDadoFuncional);
1729
                                EventoServidorDadoFuncional evento = cenarioTestHelper.consultarEventoServidorDadoFuncional(new Long(sequencial));
1730
                                return DADOS_GRAVADOS_COM_SUCESSO + cenarioTestHelper.gerarMensagem(evento);
1731
                        }
1732
                });
1733
        }
1734
 
1735
        @Override
1736
        public String alterarSituacaoEventoServidor(final String sequencial, String sequencialUsuario, String tipoSituacao) {
1737
 
1738
                inserirUsuarioHistoricoNoContexto(sequencialUsuario);
1739
 
1740
                final EventoServidorDadoFuncional eventoCadastrado = cenarioTestHelper.consultarEventoServidorDadoFuncional(new Long(sequencial));
1741
                final TipoSituacaoEvento situacao = TipoSituacaoEvento.parse(tipoSituacao);
1742
 
1743
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
1744
                        @Override
1745
                        public String execute() throws Exception {
1746
                                eventoServidorFacade.alterarSituacao(eventoCadastrado, situacao);
1747
                                EventoServidorDadoFuncional evento = cenarioTestHelper.consultarEventoServidorDadoFuncional(new Long(sequencial));
1748
                                return mensagemFichaAtualizada(eventoCadastrado) + DADOS_GRAVADOS_COM_SUCESSO
1749
                                                + cenarioTestHelper.gerarMensagem(evento) + cenarioTestHelper.gerarMensagemDadoFuncional(evento.getServidorDadoFuncional());
1750
                        }
1751
 
1752
                        private String mensagemFichaAtualizada(EventoServidorDadoFuncional eventoServidor) {
1753
                                return (eventoServidor.getEvento().getIndicadorAtualizaFichaCadastral() && !eventoServidor.getIndicadorEventoRetroativo()) ?
1754
                                                FICHA_CADASTRARL_SERVIDOR_ATUALIZADA : VALOR_VAZIO;
1755
                        }
1756
                });
1757
        }
1758
 
1759
        @Override
1760
        public String visualizarEventoServidor(final String sequencialEventoServidorDadoFuncional) {
1761
 
1762
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
1763
                        @Override
1764
                        public String execute() throws Exception {
1765
                                EventoServidorDadoFuncional eventoServidor = eventoServidorFacade.consultarPorId(gerarEventoServidorConsulta(sequencialEventoServidorDadoFuncional));
1766
                                String mensagemRetorno = cenarioTestHelper.gerarMensagemEventoServidorDadoFuncional(eventoServidor);
1767
 
1768
                                RevisaoAuditoria revisao = eventoServidorFacade.consultarDataIhUsuarioDeCadastroDoRegistro(eventoServidor);
1769
                                mensagemRetorno = mensagemRetorno.replace("{usuario_cadastro}", revisao.getNomeUsuario());
1770
                                mensagemRetorno = mensagemRetorno.replace("{data_hora_cadastro}", DataUtils.converterDataComHorarioParaString(revisao.getDataHoraHistorico()));
1771
 
1772
                                return mensagemRetorno;
1773
                        }
1774
 
1775
                        private EventoServidorDadoFuncional gerarEventoServidorConsulta(String sequencialEventoServidorDadoFuncional) {
1776
                                return new EventoServidorDadoFuncionalBuilder().comSequencial(sequencialEventoServidorDadoFuncional).build();
1777
                        }
1778
                });
1779
        }
1780
 
1781
        private List<Restricoes> gerarListaRestricoesConsultarEventoServidor(String codigoEvento, String sequencialUnidadeExercicio,
1782
                        String tipoSituacaoEvento, String sequencialDadoFuncional) {
1783
 
1784
                List<Restricoes> listaRestricoes = new ArrayList<Restricoes>();
1785
 
1786
                if(VerificadorUtil.naoEstaNuloOuVazio(codigoEvento)) {
1787
                        listaRestricoes.add(Restricoes.igual("codigoEvento", ConversorDeTipo.parseInteger(codigoEvento)));
1788
                }
1789
 
1790
                if(VerificadorUtil.naoEstaNuloOuVazio(sequencialUnidadeExercicio)) {
1791
                        listaRestricoes.add(Restricoes.igual("sequencialUnidadeExercicio", ConversorDeTipo.parseLong(sequencialUnidadeExercicio)));
1792
                }
1793
 
1794
                if(VerificadorUtil.naoEstaNuloOuVazio(tipoSituacaoEvento)) {
1795
                        listaRestricoes.add(Restricoes.igual("tipoSituacaoEvento", tipoSituacaoEvento));
1796
                }
1797
 
1798
                if(VerificadorUtil.naoEstaNuloOuVazio(sequencialDadoFuncional)) {
1799
                        listaRestricoes.add(Restricoes.igual("sequencialDadoFuncional", ConversorDeTipo.parseLong(sequencialDadoFuncional)));
1800
                }
1801
 
1802
                return listaRestricoes;
1803
        }
1804
 
1805
        private EventoServidorDadoFuncional gerarEventoServidorDadoFuncional(String sequencial, String sequencialDadoFuncional, String codigoEvento,
1806
                        String tipoSituacao, String dataEvento, String observacao, String indicadorRetroativo, String listaDocumentos,
1807
                        String exigeProcesso, String exigePortaria, String exigeDecreto, String exigeVigencia,
1808
                        String transferencia, String remocaoOficiosa, String remocaoOficial, String redistribuicao,
1809
                        String acesso, String progressaoHorizontal,     String progressaoVertical) {
1810
 
1811
                EventoServidorDadoFuncional eventoServidor = new EventoServidorDadoFuncionalBuilder()
1812
                                .comSequencial(sequencial)
1813
                                .comServidorDadoFuncional(gerarServidorDadoFuncional(sequencialDadoFuncional))
1814
                                .comTipoSituacaoEvento(tipoSituacao)
1815
                                .comEvento(gerarEvento(codigoEvento))
1816
                                .comDataEvento(dataEvento)
1817
                                .comObservacao(observacao)
1818
                                .comIndicadorRetroativo(indicadorRetroativo)
1819
                                .comEventoTransferenciaReconducao(gerarEventoServidorTransferenciaReconducao(transferencia))
1820
                                .comEventoRedistribuicaoCessao(gerarEventoServidorRedistribuicaoCessao(redistribuicao))
1821
                                .comEventoAcesso(gerarEventoServidorAcesso(acesso))
1822
                                .comEventoProgressaoFuncionalHorizontal(gerarEventoServidorProgressaoFuncionalHorizontal(progressaoHorizontal))
1823
                                .comEventoProgressaoFuncionalVertical(gerarEventoServidorProgressaoFuncionalVertical(progressaoVertical))
1824
                                .build();
1825
 
1826
                if(VerificadorUtil.naoEstaNulo(eventoServidor.getEvento())) {
1827
                        if(eventoServidor.getEvento().getIndicadorExigeProcesso()) {
1828
                                eventoServidor.setEventoServidorDadoFuncionalExigeProcesso(gerarEventoServidorExigeProcesso(exigeProcesso, eventoServidor));
1829
                        }
1830
                        if(eventoServidor.getEvento().getIndicadorExigePortaria()) {
1831
                                eventoServidor.getEventoServidorDadoFuncionaisExigePublicacoes().add(gerarEventoServidorExigePublicacaoPortaria(exigePortaria, eventoServidor));
1832
                        }
1833
                        if(eventoServidor.getEvento().getIndicadorExigeDecreto()) {
1834
                                eventoServidor.getEventoServidorDadoFuncionaisExigePublicacoes().add(gerarEventoServidorExigePublicacaoDecreto(exigeDecreto, eventoServidor));
1835
                        }
1836
                        if(eventoServidor.getEvento().getIndicadorExigeVigencia()) {
1837
                                eventoServidor.setEventoServidorDadoFuncionalExigeVigencia(gerarEventoServidorExigeVigencia(exigeVigencia, eventoServidor));
1838
                        }
1839
                }
1840
 
1841
                eventoServidor.setEventoServidorDadoFuncionalDocumentos(gerarDocumentosEventoServidor(listaDocumentos, eventoServidor));
1842
                adicionarEventoServidorRemocao(remocaoOficiosa, remocaoOficial, eventoServidor);
1843
 
1844
                return eventoServidor;
1845
        }
1846
 
1847
        private ServidorDadoFuncional gerarServidorDadoFuncional(String sequencialDadoFuncional) {
1848
                ServidorDadoFuncional servidorDadoFuncional = null;
1849
 
1850
                if(VerificadorUtil.naoEstaNuloOuVazio(sequencialDadoFuncional)) {
1851
                        servidorDadoFuncional = cenarioTestHelper.consultarServidorDadoFuncional(new Long(sequencialDadoFuncional));
1852
                }
1853
 
1854
                return servidorDadoFuncional;
1855
        }
1856
 
1857
        private Evento gerarEvento(String codigo) {
1858
                Evento evento = null;
1859
 
1860
                if(VerificadorUtil.naoEstaNuloOuVazio(codigo)) {
1861
                        evento = cenarioTestHelper.consultarEvento(new Integer(codigo));
1862
                }
1863
 
1864
                return evento;
1865
        }
1866
 
1867
        private Set<EventoServidorDadoFuncionalDocumento> gerarDocumentosEventoServidor(String listaDocumentos, EventoServidorDadoFuncional eventoServidor) {
1868
                Set<EventoServidorDadoFuncionalDocumento> documentos = null;
1869
 
1870
                if(VerificadorUtil.naoEstaNuloOuVazio(listaDocumentos)) {
1871
                        documentos = new HashSet<EventoServidorDadoFuncionalDocumento>();
1872
 
1873
                        String[] documentosArrayString = gerarArrayObjetosComPropriedadesString(listaDocumentos);
1874
 
1875
                        for (String documentoArrayString : documentosArrayString) {
1876
                                String[] documentoPropriedade = gerarArrayPropriedadesString(documentoArrayString);
1877
                                EventoServidorDadoFuncionalDocumento eventoServidorDocumento = new EventoServidorDadoFuncionalDocumentoBuilder()
1878
                                        .comEventoServidorDadoFuncional(eventoServidor)
1879
                                        .comDescricao(getPropriedadeTratandoExcecao(documentoPropriedade, 0))
1880
                                        .comObjeto(criarArquivoObjeto(getPropriedadeTratandoExcecao(documentoPropriedade, 1)))
1881
                                        .comDescricaoExtensao(recuperarExtensaoArquivo(getPropriedadeTratandoExcecao(documentoPropriedade, 1)))
1882
                                        .build();
1883
                                documentos.add(eventoServidorDocumento);
1884
                        }
1885
                }
1886
 
1887
                return documentos;
1888
        }
1889
 
1890
        private byte[] criarArquivoObjeto(String arquivo) {
1891
                return FileUtil.getConteudoArquivoImagem(DIRETORIO_DOCUMENTOS, arquivo);
1892
        }
1893
 
1894
        private String recuperarExtensaoArquivo(String arquivo) {
1895
                return VerificadorUtil.naoEstaNuloOuVazio(arquivo) ? arquivo.substring(arquivo.lastIndexOf(".") + 1) : null;
1896
        }
1897
 
1898
        private EventoServidorDadoFuncionalExigeProcesso gerarEventoServidorExigeProcesso(String exigeProcesso, EventoServidorDadoFuncional eventoServidor) {
1899
                EventoServidorDadoFuncionalExigeProcesso evento = new EventoServidorDadoFuncionalExigeProcesso();
1900
 
1901
                if(VerificadorUtil.naoEstaNuloOuVazio(exigeProcesso)) {
1902
                        String[] exigeProcessoPropriedade = gerarArrayPropriedadesString(exigeProcesso);
1903
                        evento = new EventoServidorDadoFuncionalExigeProcessoBuilder()
1904
                                .comEventoServidorDadoFuncional(eventoServidor)
1905
                                .comOrgao(gerarOrgaoView(getPropriedadeTratandoExcecao(exigeProcessoPropriedade, 0)))
1906
                                .comNumeroProcesso(getPropriedadeTratandoExcecao(exigeProcessoPropriedade, 1))
1907
                                .comNumeroAnoProcesso(getPropriedadeTratandoExcecao(exigeProcessoPropriedade, 2))
1908
                                .build();
1909
                }
1910
 
1911
                return evento;
1912
        }
1913
 
1914
        private void adicionarEventoServidorRemocao(String remocaoOficiosa, String remocaoOficial, EventoServidorDadoFuncional eventoServidor) {
1915
                if(VerificadorUtil.naoEstaNuloOuVazio(remocaoOficiosa)) {
1916
                        eventoServidor.setEventoServidorDadoFuncionalRemocao(gerarEventoServidorRemocaoOficiosa(remocaoOficiosa, eventoServidor));
1917
                }
1918
 
1919
                if(VerificadorUtil.naoEstaNuloOuVazio(remocaoOficial)) {
1920
                        eventoServidor.setEventoServidorDadoFuncionalRemocao(gerarEventoServidorRemocaoOficial(remocaoOficial, eventoServidor));
1921
                }
1922
        }
1923
 
1924
        private EventoServidorDadoFuncionalExigePublicacao gerarEventoServidorExigePublicacaoPortaria(String numeroPortaria, EventoServidorDadoFuncional eventoServidor) {
1925
                return gerarEventoServidorExigePublicacao(TipoPublicacao.PORTARIA, numeroPortaria, eventoServidor);
1926
        }
1927
 
1928
        private EventoServidorDadoFuncionalExigePublicacao gerarEventoServidorExigePublicacaoDecreto(String numeroDecreto, EventoServidorDadoFuncional eventoServidor) {
1929
                return gerarEventoServidorExigePublicacao(TipoPublicacao.DECRETO, numeroDecreto, eventoServidor);
1930
        }
1931
 
1932
        private EventoServidorDadoFuncionalExigePublicacao gerarEventoServidorExigePublicacao(TipoPublicacao tipoPublicacao, String numero, EventoServidorDadoFuncional eventoServidor) {
1933
                return new EventoServidorDadoFuncionalExigePublicacaoBuilder()
1934
                                .comEventoServidorDadoFuncional(eventoServidor)
1935
                                .comNumeroPublicacao(numero)
1936
                                .comTipoPublicacao(tipoPublicacao)
1937
                                .build();
1938
        }
1939
 
1940
        private EventoServidorDadoFuncionalRemocao gerarEventoServidorRemocaoOficiosa(String remocaoOficiosa, EventoServidorDadoFuncional eventoServidor) {
1941
                return gerarEventoServidorRemocao(TipoRemocao.OFICIOSA, remocaoOficiosa, eventoServidor);
1942
        }
1943
 
1944
        private EventoServidorDadoFuncionalRemocao gerarEventoServidorRemocaoOficial(String remocaoOficial, EventoServidorDadoFuncional eventoServidor) {
1945
                return gerarEventoServidorRemocao(TipoRemocao.OFICIAL, remocaoOficial, eventoServidor);
1946
        }
1947
 
1948
        private EventoServidorDadoFuncionalRemocao gerarEventoServidorRemocao(TipoRemocao tipoRemocao, String remocao, EventoServidorDadoFuncional eventoServidor) {
1949
                EventoServidorDadoFuncionalRemocao evento = null;
1950
 
1951
                if(VerificadorUtil.naoEstaNuloOuVazio(remocao)) {
1952
                        String[] remocaoPropriedade = gerarArrayPropriedadesString(remocao);
1953
                        evento = new EventoServidorDadoFuncionalRemocaoBuilder()
1954
                                .comEventoServidorDadoFuncional(eventoServidor)
1955
                                .comUnidadeOrigem(gerarUnidade(getPropriedadeTratandoExcecao(remocaoPropriedade, 0)))
1956
                                .comUnidadeDestino(gerarUnidade(getPropriedadeTratandoExcecao(remocaoPropriedade, 1)))
1957
                                .comTipoRemocao(tipoRemocao)
1958
                                .build();
1959
                }
1960
 
1961
                return evento;
1962
        }
1963
 
1964
        private EventoServidorDadoFuncionalExigeVigencia gerarEventoServidorExigeVigencia(String exigeVigencia, EventoServidorDadoFuncional eventoServidor) {
1965
                EventoServidorDadoFuncionalExigeVigencia evento = new EventoServidorDadoFuncionalExigeVigencia();
1966
 
1967
                if(VerificadorUtil.naoEstaNuloOuVazio(exigeVigencia)) {
1968
                        String[] exigeVigenciaPropriedade = gerarArrayPropriedadesString(exigeVigencia);
1969
                        evento = new EventoServidorDadoFuncionalExigeVigenciaBuilder()
1970
                                .comEventoServidorDadoFuncional(eventoServidor)
1971
                                .comDataInicial(DataUtils.converterStringParaData(getPropriedadeTratandoExcecao(exigeVigenciaPropriedade, 0)))
1972
                                .comDataFinal(DataUtils.converterStringParaData(getPropriedadeTratandoExcecao(exigeVigenciaPropriedade, 1)))
1973
                                .build();
1974
                }
1975
 
1976
                return evento;
1977
        }
1978
 
1979
        private EventoServidorDadoFuncionalTransferenciaReconducao gerarEventoServidorTransferenciaReconducao(String transferencia) {
1980
                EventoServidorDadoFuncionalTransferenciaReconducao evento = null;
1981
 
1982
                if(VerificadorUtil.naoEstaNuloOuVazio(transferencia)) {
1983
                        String[] transferenciaPropriedade = gerarArrayPropriedadesString(transferencia);
1984
                        evento = new EventoServidorDadoFuncionalTransferenciaReconducaoBuilder()
1985
                                .comCargoOrigem(gerarCargo(getPropriedadeTratandoExcecao(transferenciaPropriedade, 0)))
1986
                                .comCargoDestino(gerarCargo(getPropriedadeTratandoExcecao(transferenciaPropriedade, 1)))
1987
                                .build();
1988
                }
1989
 
1990
                return evento;
1991
        }
1992
 
1993
        private EventoServidorDadoFuncionalRedistribuicaoCessao gerarEventoServidorRedistribuicaoCessao(String redistribuicao) {
1994
                EventoServidorDadoFuncionalRedistribuicaoCessao evento = null;
1995
 
1996
                if(VerificadorUtil.naoEstaNuloOuVazio(redistribuicao)) {
1997
                        String[] redistribuicaoPropriedade = gerarArrayPropriedadesString(redistribuicao);
1998
                        evento = new EventoServidorDadoFuncionalRedistribuicaoCessaoBuilder()
1999
                                .comOrgaoOrigem(gerarOrgao(getPropriedadeTratandoExcecao(redistribuicaoPropriedade, 0)))
2000
                                .comOrgaoDestino(gerarOrgao(getPropriedadeTratandoExcecao(redistribuicaoPropriedade, 1)))
2001
                                .build();
2002
                }
2003
 
2004
                return evento;
2005
        }
2006
 
2007
        private EventoServidorDadoFuncionalAcesso gerarEventoServidorAcesso(String acesso) {
2008
                EventoServidorDadoFuncionalAcesso evento = null;
2009
 
2010
                if(VerificadorUtil.naoEstaNuloOuVazio(acesso)) {
2011
                        String[] acessoPropriedade = gerarArrayPropriedadesString(acesso);
2012
                        evento = new EventoServidorDadoFuncionalAcessoBuilder()
2013
                                .comFuncaoOrigem(gerarFuncao(getPropriedadeTratandoExcecao(acessoPropriedade, 0)))
2014
                                .comFuncaoDestino(gerarFuncao(getPropriedadeTratandoExcecao(acessoPropriedade, 1)))
2015
                                .build();
2016
                }
2017
 
2018
                return evento;
2019
        }
2020
 
2021
        private EventoServidorDadoFuncionalProgressaoFuncionalHorizontal gerarEventoServidorProgressaoFuncionalHorizontal(String progressaoHorizontal) {
2022
                EventoServidorDadoFuncionalProgressaoFuncionalHorizontal evento = null;
2023
 
2024
                if(VerificadorUtil.naoEstaNuloOuVazio(progressaoHorizontal)) {
2025
                        String[] progressaoPropriedade = gerarArrayPropriedadesString(progressaoHorizontal);
2026
                        evento = new EventoServidorDadoFuncionalProgressaoFuncionalHorizontalBuilder()
2027
                                .comClasseCarreiraOrigem(TipoClasseCarreira.parse(getPropriedadeTratandoExcecao(progressaoPropriedade, 0)))
2028
                                .comClasseCarreiraDestino(TipoClasseCarreira.parse(getPropriedadeTratandoExcecao(progressaoPropriedade, 1)))
2029
                                .build();
2030
                }
2031
 
2032
                return evento;
2033
        }
2034
 
2035
        private EventoServidorDadoFuncionalProgressaoFuncionalVertical gerarEventoServidorProgressaoFuncionalVertical(String progressaoVertical) {
2036
                EventoServidorDadoFuncionalProgressaoFuncionalVertical evento = null;
2037
 
2038
                if(VerificadorUtil.naoEstaNuloOuVazio(progressaoVertical)) {
2039
                        String[] progressaoPropriedade = gerarArrayPropriedadesString(progressaoVertical);
2040
                        evento = new EventoServidorDadoFuncionalProgressaoFuncionalVerticalBuilder()
2041
                                .comNivelCarreiraOrigem(TipoNivelCarreira.parse(getPropriedadeTratandoExcecao(progressaoPropriedade, 0)))
2042
                                .comNivelCarreiraDestino(TipoNivelCarreira.parse(getPropriedadeTratandoExcecao(progressaoPropriedade, 1)))
2043
                                .build();
2044
                }
2045
 
2046
                return evento;
2047
        }
2048
 
2049
        private void inserirUsuarioHistoricoNoContexto(String sequencialUsuario) {
2050
                SecurityContextImpl context = new SecurityContextImpl();
2051
                UsuarioView usuarioView = new UsuarioView();
2052
                usuarioView.setSequencialPessoa(new Long(sequencialUsuario));
2053
                UserIndra userIndra = new UserIndra(usuarioView, "nome", "senha", true, null);
2054
                context.setAuthentication(new IndraAuthentication("login", userIndra, true, null));
2055
                SecurityContextHolder.setContext(context);
2056
        }
2057
 
2058
        @Override
2059
        public String listarUnidadeDoServidor(final String identificadorServidor) {
2060
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
2061
                        @Override
2062
                        public String execute() throws Exception {
2063
                                List<Unidade> unidades = unidadeFacade.listarUnidadeDoServidor(new Long(identificadorServidor));
2064
 
2065
                                return cenarioTestHelper.gerarMensagemConsultar(unidades);
2066
                        }
2067
                });
2068
        }
2069
 
2070
        @Override
2071
        public String consultarProgramacaoFerias(String anoProgramacao, String identificadorUnidade, String numeroServidor) {
2072
                List<Restricoes> listaRestricoes = new ArrayList<Restricoes>();
2073
                adicionandoRestricoes(anoProgramacao, identificadorUnidade, numeroServidor,     listaRestricoes);
2074
 
2075
                List<ProgramacaoFeriasDTO> listaProgramacaoFeriasDTO = programacaoFeriasFacade.consultarProgramacaoFerias(0, 5, listaRestricoes);
2076
 
2077
                return cenarioTestHelper.gerarMensagemConsultar(listaProgramacaoFeriasDTO);
2078
        }
2079
 
2080
        private void adicionandoRestricoes(String anoProgramacao, String identificadorUnidade, String numeroServidor, List<Restricoes> listaRestricoes) {
2081
                if(VerificadorUtil.naoEstaNuloOuVazio(anoProgramacao)) {
2082
                        listaRestricoes.add(Restricoes.igual("anoProgramacao", ConversorDeTipo.parseInteger(anoProgramacao)));
2083
                }
2084
 
2085
                if(VerificadorUtil.naoEstaNuloOuVazio(identificadorUnidade)) {
2086
                        listaRestricoes.add(Restricoes.igual("unidade", ConversorDeTipo.parseInteger(identificadorUnidade)));
2087
                }
2088
 
2089
                if(VerificadorUtil.naoEstaNuloOuVazio(numeroServidor)) {
2090
                        listaRestricoes.add(Restricoes.igual("nossoNumero", ConversorDeTipo.parseInteger(numeroServidor)));
2091
                }
2092
        }
2093
 
2094
        @Override
2095
        public String cadastrarProgramacaoFerias(final String anoProgramacao, final String identificadorUnidade, final String servidoresIhPeriodos) {
2096
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
2097
                        @Override
2098
                        public String execute() throws Exception {
2099
                                ProgramacaoFerias programacaoFerias = new ProgramacaoFerias();
2100
                                programacaoFerias.setNumeroAnoProgramacao(ConversorDeTipo.parseLong(anoProgramacao));
2101
                                programacaoFerias.setUnidade(new UnidadeBuilder().comCodigo(identificadorUnidade).build());
2102
                                programacaoFerias = criandoProgramacaoFeriasServidorDadoFuncional(programacaoFerias, servidoresIhPeriodos);
2103
                                programacaoFeriasFacade.cadastrar(programacaoFerias);
2104
                                ProgramacaoFerias ConsultaProgramacaoFerias = cenarioTestHelper.consultarProgramacaoFeriasIhServidorDadoFuncional(anoProgramacao, identificadorUnidade);  
2105
                                return DADOS_GRAVADOS_COM_SUCESSO + cenarioTestHelper.gerarMensagem(ConsultaProgramacaoFerias);
2106
                        }
2107
                });
2108
        }
2109
 
2110
        private ProgramacaoFerias criandoProgramacaoFeriasServidorDadoFuncional(ProgramacaoFerias programacaoFerias, String servidoresIhPeriodos) {
2111
                programacaoFerias.getProgramacoesFeriasServidorDadoFuncional().clear();
2112
                if(VerificadorUtil.naoEstaNuloOuVazio(servidoresIhPeriodos)){
2113
                        String[] servidor = servidoresIhPeriodos.split(";");
2114
                        for(String linhaCompleta : servidor){
2115
                                String[] dadosSeparado = linhaCompleta.split(",");
2116
                                ProgramacaoFeriasServidorDadoFuncional programacaoServidorDadoFuncional = new ProgramacaoFeriasServidorDadoFuncionalBuilder()
2117
                                        .comCodigo(dadosSeparado[0])
2118
                                        .comDataInicial(VerificadorUtil.naoEstaNuloOuVazio(dadosSeparado[1])? dadosSeparado[1] : null)
2119
                                         .comDataFinal((dadosSeparado.length > 2)? VerificadorUtil.naoEstaNuloOuVazio(dadosSeparado[2])? dadosSeparado[2] : null : null)
2120
                                         .comProgramacaoFerias(programacaoFerias)
2121
                                        .build();
2122
                                programacaoFerias.getProgramacoesFeriasServidorDadoFuncional().add(programacaoServidorDadoFuncional);
2123
                        }
2124
                }
2125
                return programacaoFerias;
2126
        }
2127
 
2128
        @Override
2129
        public String consultarServidorValido(String indicadoresUnidade, String cpf, String nome, String matricula, String nossoNumero) {
2130
                final ParametroConsultaServidorAtivoDTO parametros = new ParametroConsultaServidorAtivoDTOBuilder()
2131
                        .comCpf(cpf).comNossoNumero(nossoNumero).comMatricula(matricula)
2132
                        .comNome(nome).comUnidades(indicadoresUnidade).build();
2133
 
2134
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
2135
                        @Override
2136
                        public String execute() throws Exception {
2137
                                List<ServidorAtivoDTO> servidores = servidorFacade.consultarServidorAtivo(parametros);
2138
                                return cenarioTestHelper.gerarMensagemConsultar(servidores);
2139
                        }
2140
                });
2141
        }
2142
 
2143
        @Override
2144
        public String consultarServidorNaoPendente(String cpf, String nome, String matricula, String nossoNumero) {
2145
                final ParametroConsultaServidorAtivoDTO parametros = new ParametroConsultaServidorAtivoDTOBuilder()
2146
                        .comCpf(cpf).comNossoNumero(nossoNumero).comMatricula(matricula).comNome(nome).build();
2147
 
2148
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
2149
                        @Override
2150
                        public String execute() throws Exception {
2151
                                List<ServidorAtivoDTO> servidores = servidorFacade.consultarServidorNaoPendente(parametros);
2152
                                return cenarioTestHelper.gerarMensagemConsultar(servidores);
2153
                        }
2154
                });
2155
        }
2156
 
2157
        @Override
2158
        public String alterarProgramacaoFerias( final String anoProgramacao, final String codigoUnidade, final String servidoresIhPeriodos) {
2159
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
2160
                        @Override
2161
                        public String execute() throws Exception {
2162
                                ProgramacaoFerias programacaoFerias = cenarioTestHelper.consultarProgramacaoFeriasIhServidorDadoFuncional(anoProgramacao, codigoUnidade);
2163
                                criandoProgramacaoFeriasServidorDadoFuncional(programacaoFerias, servidoresIhPeriodos);
2164
                                programacaoFeriasFacade.alterar(programacaoFerias);
2165
                                ProgramacaoFerias ConsultaProgramacaoFerias = cenarioTestHelper.consultarProgramacaoFeriasIhServidorDadoFuncional(anoProgramacao, codigoUnidade);  
2166
                                return DADOS_GRAVADOS_COM_SUCESSO + cenarioTestHelper.gerarMensagem(ConsultaProgramacaoFerias);
2167
                        }
2168
                });
2169
        }
2170
 
2171
        @Override
2172
        public String consultarServidorPorNossoNumero(final String nossoNumero) {
2173
                return VerificadorLancamentoException.verificarMensagemLancamentoException(new Command() {
2174
                        @Override
2175
                        public String execute() throws Exception {
2176
                                Long sequencialNossoNumero = ConversorDeTipo.parseLong(nossoNumero);
2177
                                Servidor servidor = servidorFacade.consultarServidorPorNossoNumero(sequencialNossoNumero);
2178
                                return new FormatadorServidorPorNossoNumero().formatar(servidor);
2179
                        }
2180
                });
2181
        }
2182
 
2183
        @Override
2184
        public String detalharProgramacaoFerias(String anoProgramacao, String codigoUnidade) {
2185
                ProgramacaoFerias programacaoFerias = new ProgramacaoFerias();
2186
                programacaoFerias.setNumeroAnoProgramacao(ConversorDeTipo.parseLong(anoProgramacao));
2187
                programacaoFerias.setUnidade(new UnidadeBuilder().comCodigo(codigoUnidade).build());
2188
                ProgramacaoFerias consultaProgramacaoFerias = programacaoFeriasFacade.consultarDetalheProgramacaoFeriasPorId(programacaoFerias);
2189
            StringBuilder mensagemRetornoFilhas = montandoMensagemDaListaDaEntidadeInterna(consultaProgramacaoFerias);
2190
                return cenarioTestHelper.gerarMensagemDetalheProgramacaoFerias(consultaProgramacaoFerias) + mensagemRetornoFilhas.toString();
2191
        }
2192
 
2193
        private StringBuilder montandoMensagemDaListaDaEntidadeInterna(ProgramacaoFerias consultaProgramacaoFerias) {
2194
                StringBuilder mensagemRetornoFilhas = new StringBuilder("[Programações: ");
2195
            for(ProgramacaoFeriasServidorDadoFuncional pfsdf : consultaProgramacaoFerias.getProgramacoesFeriasServidorDadoFuncional()) {
2196
                String msg = cenarioTestHelper.gerarMensagemDetalheProgramacaoFeriasServidorDadoFuncional(pfsdf);
2197
                RevisaoAuditoria revisaoAuditoria =     programacaoFeriasFacade.consultarDataIhUsuarioDaUltimaAlteracaoDoRegistro(pfsdf);
2198
                if(revisaoAuditoria != null) {
2199
                        msg = msg.replace("{nome_usuario}", revisaoAuditoria.getNomeUsuario());
2200
                        msg = msg.replace("{data_alteracao}", DataUtils.converterDataComHorarioParaString(revisaoAuditoria.getDataHoraHistorico()));
2201
                } else {
2202
                        msg = msg.replace("{nome_usuario}", VALOR_VAZIO);
2203
                        msg = msg.replace("{data_alteracao}", VALOR_VAZIO);
2204
                }
2205
                mensagemRetornoFilhas.append(msg);
2206
            }
2207
            mensagemRetornoFilhas.append(" ]");
2208
                return mensagemRetornoFilhas;
2209
        }
2210
 
2211
}