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 @@ | @@ -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 @@ | @@ -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 @@ | @@ -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 @@ | @@ -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 @@ | @@ -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,14 +33,14 @@ import br.gov.ans.integracao.sei.client.SeiPortTypeProxy; | ||
33 | import br.gov.ans.integracao.sei.exceptions.BusinessException; | 33 | import br.gov.ans.integracao.sei.exceptions.BusinessException; |
34 | import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; | 34 | import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; |
35 | import br.gov.ans.integracao.sei.exceptions.WrappedException; | 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 | import br.gov.ans.integracao.sei.modelo.Operacao; | 38 | import br.gov.ans.integracao.sei.modelo.Operacao; |
37 | import br.gov.ans.integracao.sei.modelo.Pessoa; | 39 | import br.gov.ans.integracao.sei.modelo.Pessoa; |
38 | import br.gov.ans.integracao.sei.modelo.enums.Acao; | 40 | import br.gov.ans.integracao.sei.modelo.enums.Acao; |
39 | import br.gov.ans.integracao.sei.modelo.enums.TipoContato; | 41 | import br.gov.ans.integracao.sei.modelo.enums.TipoContato; |
40 | import br.gov.ans.integracao.sei.utils.Constantes; | 42 | import br.gov.ans.integracao.sei.utils.Constantes; |
41 | -import br.gov.ans.integracao.sei.utils.ContatoHelper; | ||
42 | import br.gov.ans.integracao.sei.utils.MessagesKeys; | 43 | import br.gov.ans.integracao.sei.utils.MessagesKeys; |
43 | -import br.gov.ans.integracao.sei.utils.PessoaHelper; | ||
44 | import br.gov.ans.utils.MessageUtils; | 44 | import br.gov.ans.utils.MessageUtils; |
45 | 45 | ||
46 | @Path("/") | 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,6 +56,7 @@ import br.gov.ans.integracao.sei.dao.InclusaoDocumentoDAO; | ||
56 | import br.gov.ans.integracao.sei.exceptions.BusinessException; | 56 | import br.gov.ans.integracao.sei.exceptions.BusinessException; |
57 | import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; | 57 | import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; |
58 | import br.gov.ans.integracao.sei.exceptions.WrappedException; | 58 | import br.gov.ans.integracao.sei.exceptions.WrappedException; |
59 | +import br.gov.ans.integracao.sei.helper.DocumentoHelper; | ||
59 | import br.gov.ans.integracao.sei.modelo.CancelamentoDocumento; | 60 | import br.gov.ans.integracao.sei.modelo.CancelamentoDocumento; |
60 | import br.gov.ans.integracao.sei.modelo.DocumentoResumido; | 61 | import br.gov.ans.integracao.sei.modelo.DocumentoResumido; |
61 | import br.gov.ans.integracao.sei.modelo.ExclusaoDocumento; | 62 | import br.gov.ans.integracao.sei.modelo.ExclusaoDocumento; |
@@ -90,12 +91,12 @@ public class DocumentoResource { | @@ -90,12 +91,12 @@ public class DocumentoResource { | ||
90 | @Inject | 91 | @Inject |
91 | private Logger logger; | 92 | private Logger logger; |
92 | 93 | ||
93 | - @Inject | ||
94 | - private MustacheUtils mustacheUtils; | ||
95 | - | ||
96 | @Inject | 94 | @Inject |
97 | private MessageUtils messages; | 95 | private MessageUtils messages; |
98 | 96 | ||
97 | + @Inject | ||
98 | + private DocumentoHelper documentoHelper; | ||
99 | + | ||
99 | @Context | 100 | @Context |
100 | private SecurityContext securityContext; | 101 | private SecurityContext securityContext; |
101 | 102 | ||
@@ -316,18 +317,11 @@ public class DocumentoResource { | @@ -316,18 +317,11 @@ public class DocumentoResource { | ||
316 | public Response incluirDocumento(@PathParam("unidade") String unidade, @QueryParam("template") String template, Documento documento) throws RemoteException, Exception{ | 317 | public Response incluirDocumento(@PathParam("unidade") String unidade, @QueryParam("template") String template, Documento documento) throws RemoteException, Exception{ |
317 | RetornoInclusaoDocumento retorno = null; | 318 | RetornoInclusaoDocumento retorno = null; |
318 | 319 | ||
319 | - validarTamanhoConteudo(documento); | ||
320 | - | 320 | + documentoHelper.validarDocumento(documento, template); |
321 | + | ||
321 | InclusaoDocumento inclusaoDocumento = registrarInclusao(documento, unidade); | 322 | InclusaoDocumento inclusaoDocumento = registrarInclusao(documento, unidade); |
322 | 323 | ||
323 | try{ | 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 | logger.debug(messages.getMessage(MessagesKeys.DEBUG_NOVO_DOCUMENTO_ENVIADO)); | 325 | logger.debug(messages.getMessage(MessagesKeys.DEBUG_NOVO_DOCUMENTO_ENVIADO)); |
332 | 326 | ||
333 | retorno = seiNativeService.incluirDocumento(Constantes.SEI_BROKER, Operacao.INCLUIR_DOCUMENTO, unidadeResource.consultarCodigo(unidade), documento); | 327 | retorno = seiNativeService.incluirDocumento(Constantes.SEI_BROKER, Operacao.INCLUIR_DOCUMENTO, unidadeResource.consultarCodigo(unidade), documento); |
@@ -625,8 +619,6 @@ public class DocumentoResource { | @@ -625,8 +619,6 @@ public class DocumentoResource { | ||
625 | public InclusaoDocumento registrarInclusao(Documento documento, String unidade) throws Exception{ | 619 | public InclusaoDocumento registrarInclusao(Documento documento, String unidade) throws Exception{ |
626 | InclusaoDocumento registro = new InclusaoDocumento(documento, unidade, getSistemaResponsavel(), calcularHashDocumento(documento.getConteudo())); | 620 | InclusaoDocumento registro = new InclusaoDocumento(documento, unidade, getSistemaResponsavel(), calcularHashDocumento(documento.getConteudo())); |
627 | 621 | ||
628 | - validarInclusaoDocumento(registro); | ||
629 | - | ||
630 | try{ | 622 | try{ |
631 | userTransaction.begin(); | 623 | userTransaction.begin(); |
632 | 624 | ||
@@ -704,47 +696,7 @@ public class DocumentoResource { | @@ -704,47 +696,7 @@ public class DocumentoResource { | ||
704 | contentType = StringUtils.remove(contentType, ";"); | 696 | contentType = StringUtils.remove(contentType, ";"); |
705 | return !contentType.toLowerCase().equals("application/pdf"); | 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 | public URI getResourcePath(String resourceId){ | 700 | public URI getResourcePath(String resourceId){ |
749 | UriBuilder builder = uriInfo.getAbsolutePathBuilder(); | 701 | UriBuilder builder = uriInfo.getAbsolutePathBuilder(); |
750 | 702 | ||
@@ -753,14 +705,6 @@ public class DocumentoResource { | @@ -753,14 +705,6 @@ public class DocumentoResource { | ||
753 | return builder.build(); | 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 | public void registrarExclusao(String numero, String unidade, String motivo) throws BusinessException, NotSupportedException, SystemException, SecurityException, IllegalStateException, RollbackException, HeuristicMixedException, HeuristicRollbackException{ | 708 | public void registrarExclusao(String numero, String unidade, String motivo) throws BusinessException, NotSupportedException, SystemException, SecurityException, IllegalStateException, RollbackException, HeuristicMixedException, HeuristicRollbackException{ |
765 | try{ | 709 | try{ |
766 | userTransaction.begin(); | 710 | userTransaction.begin(); |
@@ -781,18 +725,5 @@ public class DocumentoResource { | @@ -781,18 +725,5 @@ public class DocumentoResource { | ||
781 | throw new BusinessException(messages.getMessage("erro.tamanho.motivo.cancelamento")); | 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,6 +50,7 @@ import br.gov.ans.integracao.sei.dao.SiparDAO; | ||
50 | import br.gov.ans.integracao.sei.dao.UnidadeDAO; | 50 | import br.gov.ans.integracao.sei.dao.UnidadeDAO; |
51 | import br.gov.ans.integracao.sei.exceptions.BusinessException; | 51 | import br.gov.ans.integracao.sei.exceptions.BusinessException; |
52 | import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; | 52 | import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; |
53 | +import br.gov.ans.integracao.sei.helper.ProcessoHelper; | ||
53 | import br.gov.ans.integracao.sei.modelo.DocumentoResumido; | 54 | import br.gov.ans.integracao.sei.modelo.DocumentoResumido; |
54 | import br.gov.ans.integracao.sei.modelo.EnvioDeProcesso; | 55 | import br.gov.ans.integracao.sei.modelo.EnvioDeProcesso; |
55 | import br.gov.ans.integracao.sei.modelo.Motivo; | 56 | import br.gov.ans.integracao.sei.modelo.Motivo; |
@@ -63,7 +64,6 @@ import br.gov.ans.integracao.sei.modelo.ProcessoResumido; | @@ -63,7 +64,6 @@ import br.gov.ans.integracao.sei.modelo.ProcessoResumido; | ||
63 | import br.gov.ans.integracao.sei.modelo.ResultadoConsultaProcesso; | 64 | import br.gov.ans.integracao.sei.modelo.ResultadoConsultaProcesso; |
64 | import br.gov.ans.integracao.sei.modelo.SobrestamentoProcesso; | 65 | import br.gov.ans.integracao.sei.modelo.SobrestamentoProcesso; |
65 | import br.gov.ans.integracao.sei.utils.Constantes; | 66 | import br.gov.ans.integracao.sei.utils.Constantes; |
66 | -import br.gov.ans.integracao.sei.utils.ProcessoHelper; | ||
67 | import br.gov.ans.integracao.sipar.dao.DocumentoSipar; | 67 | import br.gov.ans.integracao.sipar.dao.DocumentoSipar; |
68 | import br.gov.ans.utils.MessageUtils; | 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,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,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,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,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,6 +17,7 @@ erro.cidade.nao.encontrada.ibge = Não há cidades para o código do IBGE informado | ||
17 | erro.codigo.ibge.invalido = Código do IBGE inválido, não foram encontradas cidades relacionadas ao código {0}. | 17 | erro.codigo.ibge.invalido = Código do IBGE inválido, não foram encontradas cidades relacionadas ao código {0}. |
18 | erro.conectar.sei = Ocorreu um erro ao se conectar ao SEI, contate a equipe responsável. | 18 | erro.conectar.sei = Ocorreu um erro ao se conectar ao SEI, contate a equipe responsável. |
19 | erro.contato.nao.encontrado = Nenhum contato foi encontrado para o identificador {0}. | 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 | erro.dados.processo.nao.informados = Dados do processo não informados. | 21 | erro.dados.processo.nao.informados = Dados do processo não informados. |
21 | erro.desanexar.processo = Ocorreu um erro ao desanexar o processo. | 22 | erro.desanexar.processo = Ocorreu um erro ao desanexar o processo. |
22 | erro.desbloquear.processo = Ocorreu um erro ao desbloquear o processo. | 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,7 +8,7 @@ public class FunctionalTest { | ||
8 | 8 | ||
9 | protected final String USUARIO = "desenv_integracao_sei"; | 9 | protected final String USUARIO = "desenv_integracao_sei"; |
10 | protected final String SENHA = "integra_sei_2016"; | 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 | protected static final String BASIC = "Basic ZGVzZW52X2ludGVncmFjYW9fc2VpOmludGVncmFfc2VpXzIwMTY="; | 13 | protected static final String BASIC = "Basic ZGVzZW52X2ludGVncmFjYW9fc2VpOmludGVncmFfc2VpXzIwMTY="; |
14 | 14 |