Commit 6e272f6e6a8c082fa047f206abcf40c1c38c78d9
1 parent
deaa9f25
Exists in
master
and in
1 other branch
Valida interessados na inclusão de documento
- validação dos interessados na inclusão de um documento - refatoração do metodo de inclusão de documento - criação de helpers - organização de pacotes OTRS - 2018091720002004
Showing
14 changed files
with
592 additions
and
520 deletions
Show diff stats
src/main/java/br/gov/ans/integracao/sei/helper/ContatoHelper.java
0 → 100644
... | ... | @@ -0,0 +1,158 @@ |
1 | +package br.gov.ans.integracao.sei.helper; | |
2 | + | |
3 | +import static br.gov.ans.integracao.sei.utils.Constantes.DATE_FORMATTER; | |
4 | +import static br.gov.ans.integracao.sei.utils.Constantes.NAO; | |
5 | +import static br.gov.ans.integracao.sei.utils.Constantes.SIM; | |
6 | +import static br.gov.ans.integracao.sei.utils.Util.getSOuN; | |
7 | + | |
8 | +import java.rmi.RemoteException; | |
9 | +import java.util.List; | |
10 | + | |
11 | +import javax.inject.Inject; | |
12 | + | |
13 | +import org.apache.commons.lang3.StringUtils; | |
14 | + | |
15 | +import br.gov.ans.integracao.sei.client.Contato; | |
16 | +import br.gov.ans.integracao.sei.dao.CidadeDAO; | |
17 | +import br.gov.ans.integracao.sei.dao.ContatoDAO; | |
18 | +import br.gov.ans.integracao.sei.exceptions.BusinessException; | |
19 | +import br.gov.ans.integracao.sei.modelo.Cidade; | |
20 | +import br.gov.ans.integracao.sei.modelo.Endereco; | |
21 | +import br.gov.ans.integracao.sei.modelo.Pessoa; | |
22 | +import br.gov.ans.integracao.sei.modelo.PessoaFisica; | |
23 | +import br.gov.ans.integracao.sei.modelo.PessoaJuridica; | |
24 | +import br.gov.ans.integracao.sei.modelo.enums.TipoPessoa; | |
25 | + | |
26 | +public class ContatoHelper { | |
27 | + | |
28 | + @Inject | |
29 | + private ContatoDAO contatoDAO; | |
30 | + | |
31 | + @Inject | |
32 | + private CidadeDAO cidadeDAO; | |
33 | + | |
34 | + public Contato buildContato(Pessoa pessoa) throws RemoteException, BusinessException, Exception{ | |
35 | + if(pessoa instanceof PessoaFisica){ | |
36 | + return buildContatoPessoaFisica((PessoaFisica) pessoa); | |
37 | + }else if(pessoa instanceof PessoaJuridica){ | |
38 | + return buildContatoPessoaJuridica((PessoaJuridica) pessoa); | |
39 | + } | |
40 | + | |
41 | + throw new BusinessException("Tipo inválido"); | |
42 | + } | |
43 | + | |
44 | + private Contato buildContatoPessoaFisica(PessoaFisica pessoa) throws RemoteException, BusinessException, Exception{ | |
45 | + Contato contato = buildContatoPessoa(pessoa); | |
46 | + | |
47 | + contato.setStaNatureza(TipoPessoa.FISICA.getCodigo()); | |
48 | + | |
49 | + if(pessoa.getSexo() != null){ | |
50 | + contato.setStaGenero(pessoa.getSexo().getCodigo()); | |
51 | + } | |
52 | + | |
53 | + contato.setCpf(pessoa.getCpf()); | |
54 | + contato.setRg(pessoa.getRg()); | |
55 | + contato.setOrgaoExpedidor(pessoa.getOrgaoEmissor()); | |
56 | + | |
57 | + if(pessoa.getDataNascimento() != null){ | |
58 | + contato.setDataNascimento(DATE_FORMATTER.format(pessoa.getDataNascimento())); | |
59 | + } | |
60 | + | |
61 | + contato.setMatricula(pessoa.getMatricula()); | |
62 | + contato.setMatriculaOab(pessoa.getMatriculaOab()); | |
63 | + | |
64 | + return contato; | |
65 | + } | |
66 | + | |
67 | + private Contato buildContatoPessoaJuridica(PessoaJuridica pessoa) throws RemoteException, BusinessException, Exception{ | |
68 | + Contato contato = buildContatoPessoa(pessoa); | |
69 | + | |
70 | + contato.setStaNatureza(TipoPessoa.JURIDICA.getCodigo()); | |
71 | + contato.setCnpj(pessoa.getCnpj()); | |
72 | + contato.setSitioInternet(pessoa.getWebsite()); | |
73 | + | |
74 | + return contato; | |
75 | + } | |
76 | + | |
77 | + private Contato buildContatoPessoa(Pessoa pessoa) throws RemoteException, BusinessException, Exception{ | |
78 | + Contato contato = new Contato(); | |
79 | + | |
80 | + contato.setSigla(pessoa.getSigla()); | |
81 | + contato.setNome(pessoa.getNome()); | |
82 | + contato.setTelefoneFixo(pessoa.getTelefone()); | |
83 | + contato.setTelefoneCelular(pessoa.getCelular()); | |
84 | + contato.setEmail(pessoa.getEmail()); | |
85 | + contato.setObservacao(pessoa.getObservacao()); | |
86 | + contato.setSinAtivo(getSOuN(pessoa.isAtivo())); | |
87 | + | |
88 | + preencherDadosAssociado(pessoa, contato); | |
89 | + | |
90 | + if(pessoa.getEndereco() != null){ | |
91 | + preencherEndereco(pessoa.getEndereco(), contato); | |
92 | + } | |
93 | + | |
94 | + return contato; | |
95 | + } | |
96 | + | |
97 | + private void preencherEndereco(Endereco endereco, Contato contato) throws RemoteException, BusinessException, Exception{ | |
98 | + contato.setEndereco(concatenarNumero(endereco.getLogradouro(), endereco.getNumero())); | |
99 | + contato.setComplemento(endereco.getComplemento()); | |
100 | + contato.setBairro(endereco.getBairro()); | |
101 | + contato.setCep(endereco.getCEP()); | |
102 | + | |
103 | + if(StringUtils.isNotBlank(endereco.getCidade())){ | |
104 | + Cidade cidade = getCidade(endereco.getCidade()); | |
105 | + | |
106 | + contato.setIdCidade(cidade.getId().toString()); | |
107 | + contato.setIdEstado(cidade.getEstado().getId().toString()); | |
108 | + contato.setIdPais(cidade.getEstado().getIdPais()); | |
109 | + } | |
110 | + } | |
111 | + | |
112 | + private void preencherDadosAssociado(Pessoa pessoa, Contato contato) throws RemoteException, BusinessException, Exception{ | |
113 | + if(pessoa.getAssociado() == null){ | |
114 | + contato.setSinEnderecoAssociado(NAO); | |
115 | + }else{ | |
116 | + contato.setSinEnderecoAssociado(SIM); | |
117 | + | |
118 | + contato.setIdContatoAssociado(getIdContato(pessoa.getAssociado().getSigla())+""); | |
119 | + contato.setNomeContatoAssociado(pessoa.getAssociado().getNome()); | |
120 | + | |
121 | + if(pessoa.getAssociado().getEndereco() != null){ | |
122 | + preencherEndereco(pessoa.getAssociado().getEndereco(), contato); | |
123 | + } | |
124 | + } | |
125 | + } | |
126 | + | |
127 | + public br.gov.ans.integracao.sei.modelo.Contato getContatoNaoTemporarioMaisAntigo(String sigla){ | |
128 | + List<br.gov.ans.integracao.sei.modelo.Contato> contatosNaoTemporariosPelaSigla = contatoDAO.getContatosNaoTemporariosPelaSigla(sigla); | |
129 | + | |
130 | + return contatosNaoTemporariosPelaSigla.get(0); | |
131 | + } | |
132 | + | |
133 | + public void preencherIdContato(Contato contato, String sigla){ | |
134 | + contato.setIdContato(getIdContato(sigla)+""); | |
135 | + } | |
136 | + | |
137 | + public Boolean isContatoCadastradoComoNaoTemporario(String sigla){ | |
138 | + List<br.gov.ans.integracao.sei.modelo.Contato> contatosNaoTemporariosPelaSigla = contatoDAO.getContatosNaoTemporariosPelaSigla(sigla); | |
139 | + | |
140 | + return !contatosNaoTemporariosPelaSigla.isEmpty(); | |
141 | + } | |
142 | + | |
143 | + private Integer getIdContato(String sigla){ | |
144 | + return contatoDAO.getContatoPelaSigla(sigla).getId(); | |
145 | + } | |
146 | + | |
147 | + private Cidade getCidade(String ibge){ | |
148 | + return cidadeDAO.getCidadePeloIbge(ibge); | |
149 | + } | |
150 | + | |
151 | + private String concatenarNumero(String logradouro, String numero){ | |
152 | + if(StringUtils.isNotBlank(numero)){ | |
153 | + return logradouro.trim() + ", " + numero; | |
154 | + } | |
155 | + | |
156 | + return logradouro; | |
157 | + } | |
158 | +} | ... | ... |
src/main/java/br/gov/ans/integracao/sei/helper/DocumentoHelper.java
0 → 100644
... | ... | @@ -0,0 +1,140 @@ |
1 | +package br.gov.ans.integracao.sei.helper; | |
2 | + | |
3 | +import static br.gov.ans.integracao.sei.utils.Util.decodeConteudoMustache; | |
4 | +import static br.gov.ans.integracao.sei.utils.Util.encodeBase64; | |
5 | + | |
6 | +import java.io.StringWriter; | |
7 | +import java.rmi.RemoteException; | |
8 | +import java.util.Map; | |
9 | + | |
10 | +import javax.inject.Inject; | |
11 | + | |
12 | +import org.apache.commons.lang3.ArrayUtils; | |
13 | +import org.apache.commons.lang3.StringUtils; | |
14 | +import org.codehaus.jackson.JsonParseException; | |
15 | +import org.hibernate.engine.transaction.jta.platform.internal.TransactionManagerBasedSynchronizationStrategy; | |
16 | +import org.jboss.logging.Logger; | |
17 | + | |
18 | +import com.github.mustachejava.Mustache; | |
19 | + | |
20 | +import br.gov.ans.integracao.sei.client.Documento; | |
21 | +import br.gov.ans.integracao.sei.exceptions.BusinessException; | |
22 | +import br.gov.ans.integracao.sei.utils.Constantes; | |
23 | +import br.gov.ans.utils.MessageUtils; | |
24 | +import br.gov.ans.utils.MustacheUtils; | |
25 | + | |
26 | +public class DocumentoHelper { | |
27 | + | |
28 | + @Inject | |
29 | + private MessageUtils messages; | |
30 | + | |
31 | + @Inject | |
32 | + private InteressadoHelper interessadoHelper; | |
33 | + | |
34 | + @Inject | |
35 | + private Logger logger; | |
36 | + | |
37 | + @Inject | |
38 | + private MustacheUtils mustacheUtils; | |
39 | + | |
40 | + public void validarDocumento(Documento documento, String template) throws BusinessException, RemoteException, Exception{ | |
41 | + if(documento == null){ | |
42 | + throw new BusinessException(messages.getMessage("erro.dados.documento.nao.informados")); | |
43 | + } | |
44 | + | |
45 | + validarNumeroProcesso(documento); | |
46 | + validarNomeArquivo(documento); | |
47 | + validarNumeroInformado(documento); | |
48 | + validarTamanhoConteudo(documento); | |
49 | + validarInteressados(documento); | |
50 | + | |
51 | + if(StringUtils.isNotEmpty(template)){ | |
52 | + processarPreenchimentoTemplate(documento, template); | |
53 | + } | |
54 | + } | |
55 | + | |
56 | + private void processarPreenchimentoTemplate(Documento documento, String template) throws RemoteException, Exception{ | |
57 | + validarInclusaoComTemplate(documento); | |
58 | + | |
59 | + transformarConteudoDocumentoInterno(documento, template); | |
60 | + } | |
61 | + | |
62 | + private void validarNumeroProcesso(Documento documento) throws BusinessException{ | |
63 | + if(StringUtils.isBlank(documento.getIdProcedimento())){ | |
64 | + throw new BusinessException(messages.getMessage("erro.documento.sem.processo")); | |
65 | + } | |
66 | + } | |
67 | + | |
68 | + private void validarNomeArquivo(Documento documento) throws BusinessException{ | |
69 | + if(StringUtils.length(documento.getNomeArquivo()) > 200){ | |
70 | + throw new BusinessException(messages.getMessage("erro.tamanho.nome.documento")); | |
71 | + } | |
72 | + } | |
73 | + | |
74 | + private void validarNumeroInformado(Documento documento) throws BusinessException{ | |
75 | + if(StringUtils.length(documento.getNumero()) > 50){ | |
76 | + throw new BusinessException(messages.getMessage("erro.tamanho.numero.informado")); | |
77 | + } | |
78 | + } | |
79 | + | |
80 | + private void validarInteressados(Documento documento) throws BusinessException{ | |
81 | + if(isSemInteressados(documento)){ | |
82 | + throw new BusinessException(messages.getMessage("erro.interessado.nao.informado")); | |
83 | + }else{ | |
84 | + interessadoHelper.tratarInteressados(documento.getInteressados()); | |
85 | + } | |
86 | + } | |
87 | + | |
88 | + private void validarInclusaoComTemplate(Documento documento) throws BusinessException{ | |
89 | + if(documento.getTipo().equals(Constantes.DOCUMENTO_RECEBIDO)){ | |
90 | + throw new BusinessException(messages.getMessage("erro.template.documento.recebido")); | |
91 | + } | |
92 | + } | |
93 | + | |
94 | + private void validarTamanhoConteudo(Documento documento) throws BusinessException{ | |
95 | + if(documento.getConteudo() == null){ | |
96 | + return; | |
97 | + } | |
98 | + | |
99 | + if(calcularBytes(documento.getConteudo().length()) > Constantes.TAMANHO_MAXIMO_DOCUMENTO){ | |
100 | + throw new BusinessException(messages.getMessage("erro.tamanho.documento")); | |
101 | + } | |
102 | + } | |
103 | + | |
104 | + private boolean isSemInteressados(Documento documento){ | |
105 | + return ArrayUtils.isEmpty(documento.getInteressados()); | |
106 | + } | |
107 | + | |
108 | + private double calcularBytes(int sizeBase64){ | |
109 | + return sizeBase64 * 3.0 / 4; | |
110 | + } | |
111 | + | |
112 | + private void transformarConteudoDocumentoInterno(Documento documento, String template) throws RemoteException, Exception{ | |
113 | + StringWriter writer = new StringWriter(); | |
114 | + | |
115 | + try{ | |
116 | + Mustache mustache = mustacheUtils.compile(removeExtensaoLegado(template)); | |
117 | + | |
118 | + Map<String, Object> model = decodeConteudoMustache(documento.getConteudo()); | |
119 | + | |
120 | + mustache.execute(writer, model); | |
121 | + String html = writer.toString(); | |
122 | + | |
123 | + documento.setConteudo(encodeBase64(html)); | |
124 | + }catch(JsonParseException ex){ | |
125 | + logger.debug(documento.getConteudo()); | |
126 | + throw new BusinessException(messages.getMessage("erro.processar.conteudo.json")); | |
127 | + }finally{ | |
128 | + writer.close(); | |
129 | + } | |
130 | + } | |
131 | + | |
132 | + private String removeExtensaoLegado(String template){ | |
133 | + if(template.contains(".mustache")){ | |
134 | + return StringUtils.remove(template, ".mustache"); | |
135 | + } | |
136 | + | |
137 | + return template; | |
138 | + } | |
139 | + | |
140 | +} | ... | ... |
src/main/java/br/gov/ans/integracao/sei/helper/InteressadoHelper.java
0 → 100644
... | ... | @@ -0,0 +1,45 @@ |
1 | +package br.gov.ans.integracao.sei.helper; | |
2 | + | |
3 | +import javax.inject.Inject; | |
4 | + | |
5 | +import br.gov.ans.integracao.sei.client.Interessado; | |
6 | +import br.gov.ans.integracao.sei.modelo.Contato; | |
7 | + | |
8 | +public class InteressadoHelper { | |
9 | + @Inject | |
10 | + private ContatoHelper contatoHelper; | |
11 | + | |
12 | + public void tratarInteressados(Interessado[] interessados){ | |
13 | + for(int i=0; i < interessados.length; i++){ | |
14 | + interessados[i] = tratarInteressado(interessados[i]); | |
15 | + } | |
16 | + } | |
17 | + | |
18 | + public Interessado tratarInteressado(Interessado interessado){ | |
19 | + if(isInteressadoCadastradoComoNaoTemporario(interessado.getSigla())){ | |
20 | + return getRegistroInteressadoNaoTemporarioMaisAntigo(interessado.getSigla()); | |
21 | + } | |
22 | + | |
23 | + return interessado; | |
24 | + } | |
25 | + | |
26 | + private boolean isInteressadoCadastradoComoNaoTemporario(String sigla){ | |
27 | + return contatoHelper.isContatoCadastradoComoNaoTemporario(sigla); | |
28 | + } | |
29 | + | |
30 | + public Interessado getRegistroInteressadoNaoTemporarioMaisAntigo(String sigla){ | |
31 | + Contato contatoNaoTemporarioMaisAntigo = contatoHelper.getContatoNaoTemporarioMaisAntigo(sigla); | |
32 | + | |
33 | + return convertContatoParaInteressado(contatoNaoTemporarioMaisAntigo); | |
34 | + } | |
35 | + | |
36 | + private Interessado convertContatoParaInteressado(Contato contato){ | |
37 | + Interessado interessado = new Interessado(); | |
38 | + | |
39 | + interessado.setNome(contato.getNome()); | |
40 | + interessado.setSigla(contato.getSigla()); | |
41 | + | |
42 | + return interessado; | |
43 | + } | |
44 | + | |
45 | +} | ... | ... |
src/main/java/br/gov/ans/integracao/sei/helper/PessoaHelper.java
0 → 100644
... | ... | @@ -0,0 +1,199 @@ |
1 | +package br.gov.ans.integracao.sei.helper; | |
2 | + | |
3 | +import static br.gov.ans.integracao.sei.utils.Constantes.DATE_FORMATTER; | |
4 | + | |
5 | +import java.lang.reflect.Field; | |
6 | +import java.text.ParseException; | |
7 | +import java.util.ArrayList; | |
8 | +import java.util.List; | |
9 | + | |
10 | +import javax.inject.Inject; | |
11 | + | |
12 | +import org.apache.commons.lang3.ArrayUtils; | |
13 | +import org.apache.commons.lang3.StringUtils; | |
14 | +import org.apache.commons.lang3.reflect.FieldUtils; | |
15 | +import org.jboss.logging.Logger; | |
16 | + | |
17 | +import br.gov.ans.integracao.sei.client.Contato; | |
18 | +import br.gov.ans.integracao.sei.dao.CidadeDAO; | |
19 | +import br.gov.ans.integracao.sei.dao.ContatoDAO; | |
20 | +import br.gov.ans.integracao.sei.exceptions.BusinessException; | |
21 | +import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; | |
22 | +import br.gov.ans.integracao.sei.modelo.Endereco; | |
23 | +import br.gov.ans.integracao.sei.modelo.Pessoa; | |
24 | +import br.gov.ans.integracao.sei.modelo.PessoaFisica; | |
25 | +import br.gov.ans.integracao.sei.modelo.PessoaJuridica; | |
26 | +import br.gov.ans.integracao.sei.modelo.enums.Sexo; | |
27 | +import br.gov.ans.integracao.sei.modelo.enums.TipoPessoa; | |
28 | +import br.gov.ans.utils.MessageUtils; | |
29 | + | |
30 | +public class PessoaHelper { | |
31 | + | |
32 | + @Inject | |
33 | + private ContatoDAO contatoDAO; | |
34 | + | |
35 | + @Inject | |
36 | + private CidadeDAO cidadeDAO; | |
37 | + | |
38 | + @Inject | |
39 | + private Logger logger; | |
40 | + | |
41 | + @Inject | |
42 | + private MessageUtils messages; | |
43 | + | |
44 | + public List<Pessoa> buildPessoa(Contato[] contatos) throws ParseException, BusinessException, IllegalAccessException, ResourceNotFoundException{ | |
45 | + if(ArrayUtils.isNotEmpty(contatos)){ | |
46 | + ArrayList<Pessoa> pessoas = new ArrayList<Pessoa>(); | |
47 | + | |
48 | + for(Contato c : contatos){ | |
49 | + pessoas.add(buildPessoa(c)); | |
50 | + } | |
51 | + | |
52 | + return pessoas; | |
53 | + } | |
54 | + | |
55 | + throw new ResourceNotFoundException(messages.getMessage("erro.nenhum.contato.encontrado")); | |
56 | + } | |
57 | + | |
58 | + public Pessoa buildPessoa(Contato contato) throws ParseException, BusinessException, IllegalAccessException{ | |
59 | + TipoPessoa tipo = TipoPessoa.getByCodigo(contato.getStaNatureza()); | |
60 | + | |
61 | + if(tipo.equals(TipoPessoa.FISICA)){ | |
62 | + return buildPessoaFisica(contato); | |
63 | + } | |
64 | + | |
65 | + if(tipo.equals(TipoPessoa.JURIDICA)){ | |
66 | + return buildPessoaJuridica(contato); | |
67 | + } | |
68 | + | |
69 | + throw new BusinessException(messages.getMessage("erro.tipo.pessoa.invalido")); | |
70 | + } | |
71 | + | |
72 | + public PessoaFisica buildPessoaFisica(Contato contato) throws ParseException, IllegalAccessException{ | |
73 | + PessoaFisica pessoa = new PessoaFisica(); | |
74 | + | |
75 | + pessoa.setSigla(contato.getSigla()); | |
76 | + pessoa.setNome(contato.getNome()); | |
77 | + | |
78 | + if(StringUtils.isNotBlank(contato.getStaGenero())){ | |
79 | + pessoa.setSexo(Sexo.getByCodigo(contato.getStaGenero())); | |
80 | + } | |
81 | + | |
82 | + if(StringUtils.isNotBlank(contato.getDataNascimento())){ | |
83 | + pessoa.setDataNascimento(DATE_FORMATTER.parse(contato.getDataNascimento())); | |
84 | + } | |
85 | + | |
86 | + pessoa.setCpf(contato.getCpf()); | |
87 | + pessoa.setRg(contato.getRg()); | |
88 | + pessoa.setOrgaoEmissor(contato.getOrgaoExpedidor()); | |
89 | + pessoa.setMatricula(contato.getMatricula()); | |
90 | + pessoa.setMatriculaOab(contato.getMatriculaOab()); | |
91 | + pessoa.setCelular(contato.getTelefoneCelular()); | |
92 | + pessoa.setTelefone(contato.getTelefoneFixo()); | |
93 | + pessoa.setEmail(contato.getEmail()); | |
94 | + pessoa.setObservacao(contato.getObservacao()); | |
95 | + pessoa.setAtivo("S".equals(contato.getSinAtivo())); | |
96 | + | |
97 | + pessoa.setEndereco(buildEndereco(contato)); | |
98 | + | |
99 | + if("S".equals(contato.getSinEnderecoAssociado())){ | |
100 | + pessoa.setAssociado(buildAssociado(contato)); | |
101 | + } | |
102 | + | |
103 | + return pessoa; | |
104 | + } | |
105 | + | |
106 | + public PessoaJuridica buildPessoaJuridica(Contato contato) throws ParseException, IllegalAccessException{ | |
107 | + PessoaJuridica pessoa = new PessoaJuridica(); | |
108 | + | |
109 | + pessoa.setSigla(contato.getSigla()); | |
110 | + pessoa.setNome(contato.getNome()); | |
111 | + pessoa.setCnpj(contato.getCnpj()); | |
112 | + pessoa.setCelular(contato.getTelefoneCelular()); | |
113 | + pessoa.setTelefone(contato.getTelefoneFixo()); | |
114 | + pessoa.setEmail(contato.getEmail()); | |
115 | + pessoa.setWebsite(contato.getSitioInternet()); | |
116 | + pessoa.setObservacao(contato.getObservacao()); | |
117 | + pessoa.setAtivo("S".equals(contato.getSinAtivo())); | |
118 | + | |
119 | + pessoa.setEndereco(buildEndereco(contato)); | |
120 | + | |
121 | + if("S".equals(contato.getSinEnderecoAssociado())){ | |
122 | + pessoa.setAssociado(buildAssociado(contato)); | |
123 | + } | |
124 | + | |
125 | + return pessoa; | |
126 | + } | |
127 | + | |
128 | + private Endereco buildEndereco(Contato contato){ | |
129 | + Endereco endereco = new Endereco(); | |
130 | + | |
131 | + endereco.setLogradouro(contato.getEndereco()); | |
132 | + endereco.setComplemento(contato.getComplemento()); | |
133 | + endereco.setBairro(contato.getBairro()); | |
134 | + endereco.setCEP(contato.getCep()); | |
135 | + | |
136 | + if(StringUtils.isNotBlank(contato.getIdCidade())){ | |
137 | + endereco.setCidade(getCodigoIbge(contato.getIdCidade())); | |
138 | + } | |
139 | + endereco.setUf(contato.getSiglaEstado()); | |
140 | + endereco.setPais(contato.getNomePais()); | |
141 | + | |
142 | + return endereco; | |
143 | + } | |
144 | + | |
145 | + private Endereco buildEnderecoAssociado(Contato contato){ | |
146 | + Endereco endereco = new Endereco(); | |
147 | + | |
148 | + endereco.setLogradouro(contato.getEndereco()); | |
149 | + endereco.setComplemento(contato.getComplemento()); | |
150 | + endereco.setBairro(contato.getBairro()); | |
151 | + endereco.setCEP(contato.getCep()); | |
152 | + | |
153 | + if(StringUtils.isNotBlank(contato.getIdCidade())){ | |
154 | + endereco.setCidade(getCodigoIbge(contato.getIdCidade())); | |
155 | + } | |
156 | + endereco.setUf(contato.getSiglaEstado()); | |
157 | + endereco.setPais(contato.getNomePais()); | |
158 | + | |
159 | + return endereco; | |
160 | + } | |
161 | + | |
162 | + private PessoaJuridica buildAssociado(Contato contato){ | |
163 | + PessoaJuridica pessoa = new PessoaJuridica(); | |
164 | + | |
165 | + pessoa.setSigla(getSiglaContato(contato.getIdContatoAssociado())); | |
166 | + pessoa.setNome(contato.getNomeContatoAssociado()); | |
167 | + pessoa.setCnpj(contato.getCnpjAssociado()); | |
168 | + | |
169 | + pessoa.setEndereco(buildEnderecoAssociado(contato)); | |
170 | + | |
171 | + return pessoa; | |
172 | + } | |
173 | + | |
174 | + private String getSiglaContato(String id){ | |
175 | + return contatoDAO.getContatoPeloId(id).getSigla(); | |
176 | + } | |
177 | + | |
178 | + public boolean hasAssociado(Contato contato) throws IllegalAccessException{ | |
179 | + List<Field> fieldsList = FieldUtils.getAllFieldsList(Contato.class); | |
180 | + | |
181 | + for(Field f : fieldsList){ | |
182 | + if(f.getName().contains("Associado")){ | |
183 | + String field = (String) FieldUtils.readDeclaredField(contato, f.getName(), true); | |
184 | + | |
185 | + logger.warn(field); | |
186 | + | |
187 | + if(StringUtils.isNotBlank(field)){ | |
188 | + return true; | |
189 | + } | |
190 | + } | |
191 | + } | |
192 | + | |
193 | + return false; | |
194 | + } | |
195 | + | |
196 | + public String getCodigoIbge(String idCidade){ | |
197 | + return cidadeDAO.getCidadePeloId(idCidade).getCodigoIbge(); | |
198 | + } | |
199 | +} | ... | ... |
src/main/java/br/gov/ans/integracao/sei/helper/ProcessoHelper.java
0 → 100644
... | ... | @@ -0,0 +1,38 @@ |
1 | +package br.gov.ans.integracao.sei.helper; | |
2 | + | |
3 | +import javax.inject.Inject; | |
4 | + | |
5 | +import org.apache.commons.lang3.ArrayUtils; | |
6 | + | |
7 | +import br.gov.ans.integracao.sei.exceptions.BusinessException; | |
8 | +import br.gov.ans.integracao.sei.modelo.NovoProcesso; | |
9 | +import br.gov.ans.utils.MessageUtils; | |
10 | + | |
11 | +public class ProcessoHelper { | |
12 | + | |
13 | + @Inject | |
14 | + private MessageUtils messages; | |
15 | + | |
16 | + @Inject | |
17 | + private InteressadoHelper interessadoHelper; | |
18 | + | |
19 | + public void validarNovoProcesso(NovoProcesso novoProcesso) throws BusinessException{ | |
20 | + if(novoProcesso == null){ | |
21 | + throw new BusinessException(messages.getMessage("erro.novo.processo.vazio")); | |
22 | + } | |
23 | + | |
24 | + if(novoProcesso.getDadosProcesso() == null){ | |
25 | + throw new BusinessException(messages.getMessage("erro.dados.processo.nao.informados")); | |
26 | + } | |
27 | + | |
28 | + if(isSemInteressados(novoProcesso)){ | |
29 | + throw new BusinessException(messages.getMessage("erro.interessado.nao.informado")); | |
30 | + }else{ | |
31 | + interessadoHelper.tratarInteressados(novoProcesso.getDadosProcesso().getInteressados()); | |
32 | + } | |
33 | + } | |
34 | + | |
35 | + public boolean isSemInteressados(NovoProcesso processo){ | |
36 | + return ArrayUtils.isEmpty(processo.getDadosProcesso().getInteressados()); | |
37 | + } | |
38 | +} | ... | ... |
src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java
... | ... | @@ -33,14 +33,14 @@ import br.gov.ans.integracao.sei.client.SeiPortTypeProxy; |
33 | 33 | import br.gov.ans.integracao.sei.exceptions.BusinessException; |
34 | 34 | import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; |
35 | 35 | import br.gov.ans.integracao.sei.exceptions.WrappedException; |
36 | +import br.gov.ans.integracao.sei.helper.ContatoHelper; | |
37 | +import br.gov.ans.integracao.sei.helper.PessoaHelper; | |
36 | 38 | import br.gov.ans.integracao.sei.modelo.Operacao; |
37 | 39 | import br.gov.ans.integracao.sei.modelo.Pessoa; |
38 | 40 | import br.gov.ans.integracao.sei.modelo.enums.Acao; |
39 | 41 | import br.gov.ans.integracao.sei.modelo.enums.TipoContato; |
40 | 42 | import br.gov.ans.integracao.sei.utils.Constantes; |
41 | -import br.gov.ans.integracao.sei.utils.ContatoHelper; | |
42 | 43 | import br.gov.ans.integracao.sei.utils.MessagesKeys; |
43 | -import br.gov.ans.integracao.sei.utils.PessoaHelper; | |
44 | 44 | import br.gov.ans.utils.MessageUtils; |
45 | 45 | |
46 | 46 | @Path("/") | ... | ... |
src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java
... | ... | @@ -56,6 +56,7 @@ import br.gov.ans.integracao.sei.dao.InclusaoDocumentoDAO; |
56 | 56 | import br.gov.ans.integracao.sei.exceptions.BusinessException; |
57 | 57 | import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; |
58 | 58 | import br.gov.ans.integracao.sei.exceptions.WrappedException; |
59 | +import br.gov.ans.integracao.sei.helper.DocumentoHelper; | |
59 | 60 | import br.gov.ans.integracao.sei.modelo.CancelamentoDocumento; |
60 | 61 | import br.gov.ans.integracao.sei.modelo.DocumentoResumido; |
61 | 62 | import br.gov.ans.integracao.sei.modelo.ExclusaoDocumento; |
... | ... | @@ -90,12 +91,12 @@ public class DocumentoResource { |
90 | 91 | @Inject |
91 | 92 | private Logger logger; |
92 | 93 | |
93 | - @Inject | |
94 | - private MustacheUtils mustacheUtils; | |
95 | - | |
96 | 94 | @Inject |
97 | 95 | private MessageUtils messages; |
98 | 96 | |
97 | + @Inject | |
98 | + private DocumentoHelper documentoHelper; | |
99 | + | |
99 | 100 | @Context |
100 | 101 | private SecurityContext securityContext; |
101 | 102 | |
... | ... | @@ -316,18 +317,11 @@ public class DocumentoResource { |
316 | 317 | public Response incluirDocumento(@PathParam("unidade") String unidade, @QueryParam("template") String template, Documento documento) throws RemoteException, Exception{ |
317 | 318 | RetornoInclusaoDocumento retorno = null; |
318 | 319 | |
319 | - validarTamanhoConteudo(documento); | |
320 | - | |
320 | + documentoHelper.validarDocumento(documento, template); | |
321 | + | |
321 | 322 | InclusaoDocumento inclusaoDocumento = registrarInclusao(documento, unidade); |
322 | 323 | |
323 | 324 | try{ |
324 | - if(StringUtils.isNotEmpty(template)){ | |
325 | - validarInclusaoComTemplate(documento); | |
326 | - String conteudoHTML = transformarConteudoDocumentoInterno(documento.getConteudo(), template); | |
327 | - | |
328 | - documento.setConteudo(conteudoHTML); | |
329 | - } | |
330 | - | |
331 | 325 | logger.debug(messages.getMessage(MessagesKeys.DEBUG_NOVO_DOCUMENTO_ENVIADO)); |
332 | 326 | |
333 | 327 | retorno = seiNativeService.incluirDocumento(Constantes.SEI_BROKER, Operacao.INCLUIR_DOCUMENTO, unidadeResource.consultarCodigo(unidade), documento); |
... | ... | @@ -625,8 +619,6 @@ public class DocumentoResource { |
625 | 619 | public InclusaoDocumento registrarInclusao(Documento documento, String unidade) throws Exception{ |
626 | 620 | InclusaoDocumento registro = new InclusaoDocumento(documento, unidade, getSistemaResponsavel(), calcularHashDocumento(documento.getConteudo())); |
627 | 621 | |
628 | - validarInclusaoDocumento(registro); | |
629 | - | |
630 | 622 | try{ |
631 | 623 | userTransaction.begin(); |
632 | 624 | |
... | ... | @@ -704,47 +696,7 @@ public class DocumentoResource { |
704 | 696 | contentType = StringUtils.remove(contentType, ";"); |
705 | 697 | return !contentType.toLowerCase().equals("application/pdf"); |
706 | 698 | } |
707 | - | |
708 | - public void validarInclusaoComTemplate(Documento documento) throws BusinessException{ | |
709 | - if(documento.getTipo().equals(Constantes.DOCUMENTO_RECEBIDO)){ | |
710 | - throw new BusinessException(messages.getMessage("erro.template.documento.recebido")); | |
711 | - } | |
712 | - } | |
713 | - | |
714 | - public String transformarConteudoDocumentoInterno(String conteudo, String template) throws RemoteException, Exception{ | |
715 | - StringWriter writer = new StringWriter(); | |
716 | 699 | |
717 | - try{ | |
718 | - Mustache mustache = mustacheUtils.compile(removeExtensaoLegado(template)); | |
719 | - | |
720 | - Map<String, Object> model = decodeConteudoMustache(conteudo); | |
721 | - | |
722 | - mustache.execute(writer, model); | |
723 | - String html = writer.toString(); | |
724 | - | |
725 | - return encodeBase64(html); | |
726 | - }catch(JsonParseException ex){ | |
727 | - logger.debug(conteudo); | |
728 | - throw new BusinessException(messages.getMessage("erro.processar.conteudo.json")); | |
729 | - }finally{ | |
730 | - writer.close(); | |
731 | - } | |
732 | - } | |
733 | - | |
734 | - public void validarInclusaoDocumento(InclusaoDocumento inclusao) throws BusinessException{ | |
735 | - if(StringUtils.isBlank(inclusao.getProcesso())){ | |
736 | - throw new BusinessException(messages.getMessage("erro.documento.sem.processo")); | |
737 | - } | |
738 | - | |
739 | - if(StringUtils.length(inclusao.getNome()) > 200){ | |
740 | - throw new BusinessException(messages.getMessage("erro.tamanho.nome.documento")); | |
741 | - } | |
742 | - | |
743 | - if(StringUtils.length(inclusao.getNumeroInformado()) > 50){ | |
744 | - throw new BusinessException(messages.getMessage("erro.tamanho.numero.informado")); | |
745 | - } | |
746 | - } | |
747 | - | |
748 | 700 | public URI getResourcePath(String resourceId){ |
749 | 701 | UriBuilder builder = uriInfo.getAbsolutePathBuilder(); |
750 | 702 | |
... | ... | @@ -753,14 +705,6 @@ public class DocumentoResource { |
753 | 705 | return builder.build(); |
754 | 706 | } |
755 | 707 | |
756 | - public String removeExtensaoLegado(String template){ | |
757 | - if(template.contains(".mustache")){ | |
758 | - return StringUtils.remove(template, ".mustache"); | |
759 | - } | |
760 | - | |
761 | - return template; | |
762 | - } | |
763 | - | |
764 | 708 | public void registrarExclusao(String numero, String unidade, String motivo) throws BusinessException, NotSupportedException, SystemException, SecurityException, IllegalStateException, RollbackException, HeuristicMixedException, HeuristicRollbackException{ |
765 | 709 | try{ |
766 | 710 | userTransaction.begin(); |
... | ... | @@ -781,18 +725,5 @@ public class DocumentoResource { |
781 | 725 | throw new BusinessException(messages.getMessage("erro.tamanho.motivo.cancelamento")); |
782 | 726 | } |
783 | 727 | } |
784 | - | |
785 | - public void validarTamanhoConteudo(Documento documento) throws BusinessException{ | |
786 | - if(documento == null || documento.getConteudo() == null){ | |
787 | - return; | |
788 | - } | |
789 | - | |
790 | - if(calcularBytes(documento.getConteudo().length()) > Constantes.TAMANHO_MAXIMO_DOCUMENTO){ | |
791 | - throw new BusinessException(messages.getMessage("erro.tamanho.documento")); | |
792 | - } | |
793 | - } | |
794 | - | |
795 | - private double calcularBytes(int sizeBase64){ | |
796 | - return sizeBase64 * 3.0 / 4; | |
797 | - } | |
728 | + | |
798 | 729 | } | ... | ... |
src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java
... | ... | @@ -50,6 +50,7 @@ import br.gov.ans.integracao.sei.dao.SiparDAO; |
50 | 50 | import br.gov.ans.integracao.sei.dao.UnidadeDAO; |
51 | 51 | import br.gov.ans.integracao.sei.exceptions.BusinessException; |
52 | 52 | import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; |
53 | +import br.gov.ans.integracao.sei.helper.ProcessoHelper; | |
53 | 54 | import br.gov.ans.integracao.sei.modelo.DocumentoResumido; |
54 | 55 | import br.gov.ans.integracao.sei.modelo.EnvioDeProcesso; |
55 | 56 | import br.gov.ans.integracao.sei.modelo.Motivo; |
... | ... | @@ -63,7 +64,6 @@ import br.gov.ans.integracao.sei.modelo.ProcessoResumido; |
63 | 64 | import br.gov.ans.integracao.sei.modelo.ResultadoConsultaProcesso; |
64 | 65 | import br.gov.ans.integracao.sei.modelo.SobrestamentoProcesso; |
65 | 66 | import br.gov.ans.integracao.sei.utils.Constantes; |
66 | -import br.gov.ans.integracao.sei.utils.ProcessoHelper; | |
67 | 67 | import br.gov.ans.integracao.sipar.dao.DocumentoSipar; |
68 | 68 | import br.gov.ans.utils.MessageUtils; |
69 | 69 | ... | ... |
src/main/java/br/gov/ans/integracao/sei/utils/ContatoHelper.java
... | ... | @@ -1,158 +0,0 @@ |
1 | -package br.gov.ans.integracao.sei.utils; | |
2 | - | |
3 | -import static br.gov.ans.integracao.sei.utils.Constantes.DATE_FORMATTER; | |
4 | -import static br.gov.ans.integracao.sei.utils.Constantes.NAO; | |
5 | -import static br.gov.ans.integracao.sei.utils.Constantes.SIM; | |
6 | -import static br.gov.ans.integracao.sei.utils.Util.getSOuN; | |
7 | - | |
8 | -import java.rmi.RemoteException; | |
9 | -import java.util.List; | |
10 | - | |
11 | -import javax.inject.Inject; | |
12 | - | |
13 | -import org.apache.commons.lang3.StringUtils; | |
14 | - | |
15 | -import br.gov.ans.integracao.sei.client.Contato; | |
16 | -import br.gov.ans.integracao.sei.dao.CidadeDAO; | |
17 | -import br.gov.ans.integracao.sei.dao.ContatoDAO; | |
18 | -import br.gov.ans.integracao.sei.exceptions.BusinessException; | |
19 | -import br.gov.ans.integracao.sei.modelo.Cidade; | |
20 | -import br.gov.ans.integracao.sei.modelo.Endereco; | |
21 | -import br.gov.ans.integracao.sei.modelo.Pessoa; | |
22 | -import br.gov.ans.integracao.sei.modelo.PessoaFisica; | |
23 | -import br.gov.ans.integracao.sei.modelo.PessoaJuridica; | |
24 | -import br.gov.ans.integracao.sei.modelo.enums.TipoPessoa; | |
25 | - | |
26 | -public class ContatoHelper { | |
27 | - | |
28 | - @Inject | |
29 | - private ContatoDAO contatoDAO; | |
30 | - | |
31 | - @Inject | |
32 | - private CidadeDAO cidadeDAO; | |
33 | - | |
34 | - public Contato buildContato(Pessoa pessoa) throws RemoteException, BusinessException, Exception{ | |
35 | - if(pessoa instanceof PessoaFisica){ | |
36 | - return buildContatoPessoaFisica((PessoaFisica) pessoa); | |
37 | - }else if(pessoa instanceof PessoaJuridica){ | |
38 | - return buildContatoPessoaJuridica((PessoaJuridica) pessoa); | |
39 | - } | |
40 | - | |
41 | - throw new BusinessException("Tipo inválido"); | |
42 | - } | |
43 | - | |
44 | - private Contato buildContatoPessoaFisica(PessoaFisica pessoa) throws RemoteException, BusinessException, Exception{ | |
45 | - Contato contato = buildContatoPessoa(pessoa); | |
46 | - | |
47 | - contato.setStaNatureza(TipoPessoa.FISICA.getCodigo()); | |
48 | - | |
49 | - if(pessoa.getSexo() != null){ | |
50 | - contato.setStaGenero(pessoa.getSexo().getCodigo()); | |
51 | - } | |
52 | - | |
53 | - contato.setCpf(pessoa.getCpf()); | |
54 | - contato.setRg(pessoa.getRg()); | |
55 | - contato.setOrgaoExpedidor(pessoa.getOrgaoEmissor()); | |
56 | - | |
57 | - if(pessoa.getDataNascimento() != null){ | |
58 | - contato.setDataNascimento(DATE_FORMATTER.format(pessoa.getDataNascimento())); | |
59 | - } | |
60 | - | |
61 | - contato.setMatricula(pessoa.getMatricula()); | |
62 | - contato.setMatriculaOab(pessoa.getMatriculaOab()); | |
63 | - | |
64 | - return contato; | |
65 | - } | |
66 | - | |
67 | - private Contato buildContatoPessoaJuridica(PessoaJuridica pessoa) throws RemoteException, BusinessException, Exception{ | |
68 | - Contato contato = buildContatoPessoa(pessoa); | |
69 | - | |
70 | - contato.setStaNatureza(TipoPessoa.JURIDICA.getCodigo()); | |
71 | - contato.setCnpj(pessoa.getCnpj()); | |
72 | - contato.setSitioInternet(pessoa.getWebsite()); | |
73 | - | |
74 | - return contato; | |
75 | - } | |
76 | - | |
77 | - private Contato buildContatoPessoa(Pessoa pessoa) throws RemoteException, BusinessException, Exception{ | |
78 | - Contato contato = new Contato(); | |
79 | - | |
80 | - contato.setSigla(pessoa.getSigla()); | |
81 | - contato.setNome(pessoa.getNome()); | |
82 | - contato.setTelefoneFixo(pessoa.getTelefone()); | |
83 | - contato.setTelefoneCelular(pessoa.getCelular()); | |
84 | - contato.setEmail(pessoa.getEmail()); | |
85 | - contato.setObservacao(pessoa.getObservacao()); | |
86 | - contato.setSinAtivo(getSOuN(pessoa.isAtivo())); | |
87 | - | |
88 | - preencherDadosAssociado(pessoa, contato); | |
89 | - | |
90 | - if(pessoa.getEndereco() != null){ | |
91 | - preencherEndereco(pessoa.getEndereco(), contato); | |
92 | - } | |
93 | - | |
94 | - return contato; | |
95 | - } | |
96 | - | |
97 | - private void preencherEndereco(Endereco endereco, Contato contato) throws RemoteException, BusinessException, Exception{ | |
98 | - contato.setEndereco(concatenarNumero(endereco.getLogradouro(), endereco.getNumero())); | |
99 | - contato.setComplemento(endereco.getComplemento()); | |
100 | - contato.setBairro(endereco.getBairro()); | |
101 | - contato.setCep(endereco.getCEP()); | |
102 | - | |
103 | - if(StringUtils.isNotBlank(endereco.getCidade())){ | |
104 | - Cidade cidade = getCidade(endereco.getCidade()); | |
105 | - | |
106 | - contato.setIdCidade(cidade.getId().toString()); | |
107 | - contato.setIdEstado(cidade.getEstado().getId().toString()); | |
108 | - contato.setIdPais(cidade.getEstado().getIdPais()); | |
109 | - } | |
110 | - } | |
111 | - | |
112 | - private void preencherDadosAssociado(Pessoa pessoa, Contato contato) throws RemoteException, BusinessException, Exception{ | |
113 | - if(pessoa.getAssociado() == null){ | |
114 | - contato.setSinEnderecoAssociado(NAO); | |
115 | - }else{ | |
116 | - contato.setSinEnderecoAssociado(SIM); | |
117 | - | |
118 | - contato.setIdContatoAssociado(getIdContato(pessoa.getAssociado().getSigla())+""); | |
119 | - contato.setNomeContatoAssociado(pessoa.getAssociado().getNome()); | |
120 | - | |
121 | - if(pessoa.getAssociado().getEndereco() != null){ | |
122 | - preencherEndereco(pessoa.getAssociado().getEndereco(), contato); | |
123 | - } | |
124 | - } | |
125 | - } | |
126 | - | |
127 | - public br.gov.ans.integracao.sei.modelo.Contato getContatoNaoTemporarioMaisAntigo(String sigla){ | |
128 | - List<br.gov.ans.integracao.sei.modelo.Contato> contatosNaoTemporariosPelaSigla = contatoDAO.getContatosNaoTemporariosPelaSigla(sigla); | |
129 | - | |
130 | - return contatosNaoTemporariosPelaSigla.get(0); | |
131 | - } | |
132 | - | |
133 | - public void preencherIdContato(Contato contato, String sigla){ | |
134 | - contato.setIdContato(getIdContato(sigla)+""); | |
135 | - } | |
136 | - | |
137 | - public Boolean isContatoCadastradoComoNaoTemporario(String sigla){ | |
138 | - List<br.gov.ans.integracao.sei.modelo.Contato> contatosNaoTemporariosPelaSigla = contatoDAO.getContatosNaoTemporariosPelaSigla(sigla); | |
139 | - | |
140 | - return !contatosNaoTemporariosPelaSigla.isEmpty(); | |
141 | - } | |
142 | - | |
143 | - private Integer getIdContato(String sigla){ | |
144 | - return contatoDAO.getContatoPelaSigla(sigla).getId(); | |
145 | - } | |
146 | - | |
147 | - private Cidade getCidade(String ibge){ | |
148 | - return cidadeDAO.getCidadePeloIbge(ibge); | |
149 | - } | |
150 | - | |
151 | - private String concatenarNumero(String logradouro, String numero){ | |
152 | - if(StringUtils.isNotBlank(numero)){ | |
153 | - return logradouro.trim() + ", " + numero; | |
154 | - } | |
155 | - | |
156 | - return logradouro; | |
157 | - } | |
158 | -} |
src/main/java/br/gov/ans/integracao/sei/utils/InteressadoHelper.java
... | ... | @@ -1,45 +0,0 @@ |
1 | -package br.gov.ans.integracao.sei.utils; | |
2 | - | |
3 | -import javax.inject.Inject; | |
4 | - | |
5 | -import br.gov.ans.integracao.sei.client.Interessado; | |
6 | -import br.gov.ans.integracao.sei.modelo.Contato; | |
7 | - | |
8 | -public class InteressadoHelper { | |
9 | - @Inject | |
10 | - private ContatoHelper contatoHelper; | |
11 | - | |
12 | - public void tratarInteressados(Interessado[] interessados){ | |
13 | - for(int i=0; i < interessados.length; i++){ | |
14 | - interessados[i] = tratarInteressado(interessados[i]); | |
15 | - } | |
16 | - } | |
17 | - | |
18 | - public Interessado tratarInteressado(Interessado interessado){ | |
19 | - if(isInteressadoCadastradoComoNaoTemporario(interessado.getSigla())){ | |
20 | - return getRegistroInteressadoNaoTemporarioMaisAntigo(interessado.getSigla()); | |
21 | - } | |
22 | - | |
23 | - return interessado; | |
24 | - } | |
25 | - | |
26 | - private boolean isInteressadoCadastradoComoNaoTemporario(String sigla){ | |
27 | - return contatoHelper.isContatoCadastradoComoNaoTemporario(sigla); | |
28 | - } | |
29 | - | |
30 | - public Interessado getRegistroInteressadoNaoTemporarioMaisAntigo(String sigla){ | |
31 | - Contato contatoNaoTemporarioMaisAntigo = contatoHelper.getContatoNaoTemporarioMaisAntigo(sigla); | |
32 | - | |
33 | - return convertContatoParaInteressado(contatoNaoTemporarioMaisAntigo); | |
34 | - } | |
35 | - | |
36 | - private Interessado convertContatoParaInteressado(Contato contato){ | |
37 | - Interessado interessado = new Interessado(); | |
38 | - | |
39 | - interessado.setNome(contato.getNome()); | |
40 | - interessado.setSigla(contato.getSigla()); | |
41 | - | |
42 | - return interessado; | |
43 | - } | |
44 | - | |
45 | -} |
src/main/java/br/gov/ans/integracao/sei/utils/PessoaHelper.java
... | ... | @@ -1,199 +0,0 @@ |
1 | -package br.gov.ans.integracao.sei.utils; | |
2 | - | |
3 | -import static br.gov.ans.integracao.sei.utils.Constantes.DATE_FORMATTER; | |
4 | - | |
5 | -import java.lang.reflect.Field; | |
6 | -import java.text.ParseException; | |
7 | -import java.util.ArrayList; | |
8 | -import java.util.List; | |
9 | - | |
10 | -import javax.inject.Inject; | |
11 | - | |
12 | -import org.apache.commons.lang3.ArrayUtils; | |
13 | -import org.apache.commons.lang3.StringUtils; | |
14 | -import org.apache.commons.lang3.reflect.FieldUtils; | |
15 | -import org.jboss.logging.Logger; | |
16 | - | |
17 | -import br.gov.ans.integracao.sei.client.Contato; | |
18 | -import br.gov.ans.integracao.sei.dao.CidadeDAO; | |
19 | -import br.gov.ans.integracao.sei.dao.ContatoDAO; | |
20 | -import br.gov.ans.integracao.sei.exceptions.BusinessException; | |
21 | -import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; | |
22 | -import br.gov.ans.integracao.sei.modelo.Endereco; | |
23 | -import br.gov.ans.integracao.sei.modelo.Pessoa; | |
24 | -import br.gov.ans.integracao.sei.modelo.PessoaFisica; | |
25 | -import br.gov.ans.integracao.sei.modelo.PessoaJuridica; | |
26 | -import br.gov.ans.integracao.sei.modelo.enums.Sexo; | |
27 | -import br.gov.ans.integracao.sei.modelo.enums.TipoPessoa; | |
28 | -import br.gov.ans.utils.MessageUtils; | |
29 | - | |
30 | -public class PessoaHelper { | |
31 | - | |
32 | - @Inject | |
33 | - private ContatoDAO contatoDAO; | |
34 | - | |
35 | - @Inject | |
36 | - private CidadeDAO cidadeDAO; | |
37 | - | |
38 | - @Inject | |
39 | - private Logger logger; | |
40 | - | |
41 | - @Inject | |
42 | - private MessageUtils messages; | |
43 | - | |
44 | - public List<Pessoa> buildPessoa(Contato[] contatos) throws ParseException, BusinessException, IllegalAccessException, ResourceNotFoundException{ | |
45 | - if(ArrayUtils.isNotEmpty(contatos)){ | |
46 | - ArrayList<Pessoa> pessoas = new ArrayList<Pessoa>(); | |
47 | - | |
48 | - for(Contato c : contatos){ | |
49 | - pessoas.add(buildPessoa(c)); | |
50 | - } | |
51 | - | |
52 | - return pessoas; | |
53 | - } | |
54 | - | |
55 | - throw new ResourceNotFoundException(messages.getMessage("erro.nenhum.contato.encontrado")); | |
56 | - } | |
57 | - | |
58 | - public Pessoa buildPessoa(Contato contato) throws ParseException, BusinessException, IllegalAccessException{ | |
59 | - TipoPessoa tipo = TipoPessoa.getByCodigo(contato.getStaNatureza()); | |
60 | - | |
61 | - if(tipo.equals(TipoPessoa.FISICA)){ | |
62 | - return buildPessoaFisica(contato); | |
63 | - } | |
64 | - | |
65 | - if(tipo.equals(TipoPessoa.JURIDICA)){ | |
66 | - return buildPessoaJuridica(contato); | |
67 | - } | |
68 | - | |
69 | - throw new BusinessException(messages.getMessage("erro.tipo.pessoa.invalido")); | |
70 | - } | |
71 | - | |
72 | - public PessoaFisica buildPessoaFisica(Contato contato) throws ParseException, IllegalAccessException{ | |
73 | - PessoaFisica pessoa = new PessoaFisica(); | |
74 | - | |
75 | - pessoa.setSigla(contato.getSigla()); | |
76 | - pessoa.setNome(contato.getNome()); | |
77 | - | |
78 | - if(StringUtils.isNotBlank(contato.getStaGenero())){ | |
79 | - pessoa.setSexo(Sexo.getByCodigo(contato.getStaGenero())); | |
80 | - } | |
81 | - | |
82 | - if(StringUtils.isNotBlank(contato.getDataNascimento())){ | |
83 | - pessoa.setDataNascimento(DATE_FORMATTER.parse(contato.getDataNascimento())); | |
84 | - } | |
85 | - | |
86 | - pessoa.setCpf(contato.getCpf()); | |
87 | - pessoa.setRg(contato.getRg()); | |
88 | - pessoa.setOrgaoEmissor(contato.getOrgaoExpedidor()); | |
89 | - pessoa.setMatricula(contato.getMatricula()); | |
90 | - pessoa.setMatriculaOab(contato.getMatriculaOab()); | |
91 | - pessoa.setCelular(contato.getTelefoneCelular()); | |
92 | - pessoa.setTelefone(contato.getTelefoneFixo()); | |
93 | - pessoa.setEmail(contato.getEmail()); | |
94 | - pessoa.setObservacao(contato.getObservacao()); | |
95 | - pessoa.setAtivo("S".equals(contato.getSinAtivo())); | |
96 | - | |
97 | - pessoa.setEndereco(buildEndereco(contato)); | |
98 | - | |
99 | - if("S".equals(contato.getSinEnderecoAssociado())){ | |
100 | - pessoa.setAssociado(buildAssociado(contato)); | |
101 | - } | |
102 | - | |
103 | - return pessoa; | |
104 | - } | |
105 | - | |
106 | - public PessoaJuridica buildPessoaJuridica(Contato contato) throws ParseException, IllegalAccessException{ | |
107 | - PessoaJuridica pessoa = new PessoaJuridica(); | |
108 | - | |
109 | - pessoa.setSigla(contato.getSigla()); | |
110 | - pessoa.setNome(contato.getNome()); | |
111 | - pessoa.setCnpj(contato.getCnpj()); | |
112 | - pessoa.setCelular(contato.getTelefoneCelular()); | |
113 | - pessoa.setTelefone(contato.getTelefoneFixo()); | |
114 | - pessoa.setEmail(contato.getEmail()); | |
115 | - pessoa.setWebsite(contato.getSitioInternet()); | |
116 | - pessoa.setObservacao(contato.getObservacao()); | |
117 | - pessoa.setAtivo("S".equals(contato.getSinAtivo())); | |
118 | - | |
119 | - pessoa.setEndereco(buildEndereco(contato)); | |
120 | - | |
121 | - if("S".equals(contato.getSinEnderecoAssociado())){ | |
122 | - pessoa.setAssociado(buildAssociado(contato)); | |
123 | - } | |
124 | - | |
125 | - return pessoa; | |
126 | - } | |
127 | - | |
128 | - private Endereco buildEndereco(Contato contato){ | |
129 | - Endereco endereco = new Endereco(); | |
130 | - | |
131 | - endereco.setLogradouro(contato.getEndereco()); | |
132 | - endereco.setComplemento(contato.getComplemento()); | |
133 | - endereco.setBairro(contato.getBairro()); | |
134 | - endereco.setCEP(contato.getCep()); | |
135 | - | |
136 | - if(StringUtils.isNotBlank(contato.getIdCidade())){ | |
137 | - endereco.setCidade(getCodigoIbge(contato.getIdCidade())); | |
138 | - } | |
139 | - endereco.setUf(contato.getSiglaEstado()); | |
140 | - endereco.setPais(contato.getNomePais()); | |
141 | - | |
142 | - return endereco; | |
143 | - } | |
144 | - | |
145 | - private Endereco buildEnderecoAssociado(Contato contato){ | |
146 | - Endereco endereco = new Endereco(); | |
147 | - | |
148 | - endereco.setLogradouro(contato.getEndereco()); | |
149 | - endereco.setComplemento(contato.getComplemento()); | |
150 | - endereco.setBairro(contato.getBairro()); | |
151 | - endereco.setCEP(contato.getCep()); | |
152 | - | |
153 | - if(StringUtils.isNotBlank(contato.getIdCidade())){ | |
154 | - endereco.setCidade(getCodigoIbge(contato.getIdCidade())); | |
155 | - } | |
156 | - endereco.setUf(contato.getSiglaEstado()); | |
157 | - endereco.setPais(contato.getNomePais()); | |
158 | - | |
159 | - return endereco; | |
160 | - } | |
161 | - | |
162 | - private PessoaJuridica buildAssociado(Contato contato){ | |
163 | - PessoaJuridica pessoa = new PessoaJuridica(); | |
164 | - | |
165 | - pessoa.setSigla(getSiglaContato(contato.getIdContatoAssociado())); | |
166 | - pessoa.setNome(contato.getNomeContatoAssociado()); | |
167 | - pessoa.setCnpj(contato.getCnpjAssociado()); | |
168 | - | |
169 | - pessoa.setEndereco(buildEnderecoAssociado(contato)); | |
170 | - | |
171 | - return pessoa; | |
172 | - } | |
173 | - | |
174 | - private String getSiglaContato(String id){ | |
175 | - return contatoDAO.getContatoPeloId(id).getSigla(); | |
176 | - } | |
177 | - | |
178 | - public boolean hasAssociado(Contato contato) throws IllegalAccessException{ | |
179 | - List<Field> fieldsList = FieldUtils.getAllFieldsList(Contato.class); | |
180 | - | |
181 | - for(Field f : fieldsList){ | |
182 | - if(f.getName().contains("Associado")){ | |
183 | - String field = (String) FieldUtils.readDeclaredField(contato, f.getName(), true); | |
184 | - | |
185 | - logger.warn(field); | |
186 | - | |
187 | - if(StringUtils.isNotBlank(field)){ | |
188 | - return true; | |
189 | - } | |
190 | - } | |
191 | - } | |
192 | - | |
193 | - return false; | |
194 | - } | |
195 | - | |
196 | - public String getCodigoIbge(String idCidade){ | |
197 | - return cidadeDAO.getCidadePeloId(idCidade).getCodigoIbge(); | |
198 | - } | |
199 | -} |
src/main/java/br/gov/ans/integracao/sei/utils/ProcessoHelper.java
... | ... | @@ -1,38 +0,0 @@ |
1 | -package br.gov.ans.integracao.sei.utils; | |
2 | - | |
3 | -import javax.inject.Inject; | |
4 | - | |
5 | -import org.apache.commons.lang3.ArrayUtils; | |
6 | - | |
7 | -import br.gov.ans.integracao.sei.exceptions.BusinessException; | |
8 | -import br.gov.ans.integracao.sei.modelo.NovoProcesso; | |
9 | -import br.gov.ans.utils.MessageUtils; | |
10 | - | |
11 | -public class ProcessoHelper { | |
12 | - | |
13 | - @Inject | |
14 | - private MessageUtils messages; | |
15 | - | |
16 | - @Inject | |
17 | - private InteressadoHelper interessadoHelper; | |
18 | - | |
19 | - public void validarNovoProcesso(NovoProcesso novoProcesso) throws BusinessException{ | |
20 | - if(novoProcesso == null){ | |
21 | - throw new BusinessException(messages.getMessage("erro.novo.processo.vazio")); | |
22 | - } | |
23 | - | |
24 | - if(novoProcesso.getDadosProcesso() == null){ | |
25 | - throw new BusinessException(messages.getMessage("erro.dados.processo.nao.informados")); | |
26 | - } | |
27 | - | |
28 | - if(isSemInteressados(novoProcesso)){ | |
29 | - throw new BusinessException(messages.getMessage("erro.interessado.nao.informado")); | |
30 | - }else{ | |
31 | - interessadoHelper.tratarInteressados(novoProcesso.getDadosProcesso().getInteressados()); | |
32 | - } | |
33 | - } | |
34 | - | |
35 | - public boolean isSemInteressados(NovoProcesso processo){ | |
36 | - return ArrayUtils.isEmpty(processo.getDadosProcesso().getInteressados()); | |
37 | - } | |
38 | -} |
src/main/resources/messages.properties
... | ... | @@ -17,6 +17,7 @@ erro.cidade.nao.encontrada.ibge = Não há cidades para o código do IBGE informado |
17 | 17 | erro.codigo.ibge.invalido = Código do IBGE inválido, não foram encontradas cidades relacionadas ao código {0}. |
18 | 18 | erro.conectar.sei = Ocorreu um erro ao se conectar ao SEI, contate a equipe responsável. |
19 | 19 | erro.contato.nao.encontrado = Nenhum contato foi encontrado para o identificador {0}. |
20 | +erro.dados.documento.nao.informados = Dados do documento não informados. | |
20 | 21 | erro.dados.processo.nao.informados = Dados do processo não informados. |
21 | 22 | erro.desanexar.processo = Ocorreu um erro ao desanexar o processo. |
22 | 23 | erro.desbloquear.processo = Ocorreu um erro ao desbloquear o processo. | ... | ... |
src/test/java/br/gov/ans/integracao/sei/testes/FunctionalTest.java
... | ... | @@ -8,7 +8,7 @@ public class FunctionalTest { |
8 | 8 | |
9 | 9 | protected final String USUARIO = "desenv_integracao_sei"; |
10 | 10 | protected final String SENHA = "integra_sei_2016"; |
11 | - protected static final Boolean DESENVOLVIMENTO = false; | |
11 | + protected static final Boolean DESENVOLVIMENTO = true; | |
12 | 12 | |
13 | 13 | protected static final String BASIC = "Basic ZGVzZW52X2ludGVncmFjYW9fc2VpOmludGVncmFfc2VpXzIwMTY="; |
14 | 14 | ... | ... |