From 6e272f6e6a8c082fa047f206abcf40c1c38c78d9 Mon Sep 17 00:00:00 2001 From: andre.guimaraes Date: Fri, 21 Sep 2018 16:16:11 -0300 Subject: [PATCH] Valida interessados na inclusão de documento --- src/main/java/br/gov/ans/integracao/sei/helper/ContatoHelper.java | 158 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/br/gov/ans/integracao/sei/helper/DocumentoHelper.java | 140 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/br/gov/ans/integracao/sei/helper/InteressadoHelper.java | 45 +++++++++++++++++++++++++++++++++++++++++++++ src/main/java/br/gov/ans/integracao/sei/helper/PessoaHelper.java | 199 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/br/gov/ans/integracao/sei/helper/ProcessoHelper.java | 38 ++++++++++++++++++++++++++++++++++++++ src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java | 4 ++-- src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java | 83 +++++++---------------------------------------------------------------------------- src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java | 2 +- src/main/java/br/gov/ans/integracao/sei/utils/ContatoHelper.java | 158 -------------------------------------------------------------------------------------------------------------------------------------------------------------- src/main/java/br/gov/ans/integracao/sei/utils/InteressadoHelper.java | 45 --------------------------------------------- src/main/java/br/gov/ans/integracao/sei/utils/PessoaHelper.java | 199 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/main/java/br/gov/ans/integracao/sei/utils/ProcessoHelper.java | 38 -------------------------------------- src/main/resources/messages.properties | 1 + src/test/java/br/gov/ans/integracao/sei/testes/FunctionalTest.java | 2 +- 14 files changed, 592 insertions(+), 520 deletions(-) create mode 100644 src/main/java/br/gov/ans/integracao/sei/helper/ContatoHelper.java create mode 100644 src/main/java/br/gov/ans/integracao/sei/helper/DocumentoHelper.java create mode 100644 src/main/java/br/gov/ans/integracao/sei/helper/InteressadoHelper.java create mode 100644 src/main/java/br/gov/ans/integracao/sei/helper/PessoaHelper.java create mode 100644 src/main/java/br/gov/ans/integracao/sei/helper/ProcessoHelper.java delete mode 100644 src/main/java/br/gov/ans/integracao/sei/utils/ContatoHelper.java delete mode 100644 src/main/java/br/gov/ans/integracao/sei/utils/InteressadoHelper.java delete mode 100644 src/main/java/br/gov/ans/integracao/sei/utils/PessoaHelper.java delete mode 100644 src/main/java/br/gov/ans/integracao/sei/utils/ProcessoHelper.java diff --git a/src/main/java/br/gov/ans/integracao/sei/helper/ContatoHelper.java b/src/main/java/br/gov/ans/integracao/sei/helper/ContatoHelper.java new file mode 100644 index 0000000..09c534d --- /dev/null +++ b/src/main/java/br/gov/ans/integracao/sei/helper/ContatoHelper.java @@ -0,0 +1,158 @@ +package br.gov.ans.integracao.sei.helper; + +import static br.gov.ans.integracao.sei.utils.Constantes.DATE_FORMATTER; +import static br.gov.ans.integracao.sei.utils.Constantes.NAO; +import static br.gov.ans.integracao.sei.utils.Constantes.SIM; +import static br.gov.ans.integracao.sei.utils.Util.getSOuN; + +import java.rmi.RemoteException; +import java.util.List; + +import javax.inject.Inject; + +import org.apache.commons.lang3.StringUtils; + +import br.gov.ans.integracao.sei.client.Contato; +import br.gov.ans.integracao.sei.dao.CidadeDAO; +import br.gov.ans.integracao.sei.dao.ContatoDAO; +import br.gov.ans.integracao.sei.exceptions.BusinessException; +import br.gov.ans.integracao.sei.modelo.Cidade; +import br.gov.ans.integracao.sei.modelo.Endereco; +import br.gov.ans.integracao.sei.modelo.Pessoa; +import br.gov.ans.integracao.sei.modelo.PessoaFisica; +import br.gov.ans.integracao.sei.modelo.PessoaJuridica; +import br.gov.ans.integracao.sei.modelo.enums.TipoPessoa; + +public class ContatoHelper { + + @Inject + private ContatoDAO contatoDAO; + + @Inject + private CidadeDAO cidadeDAO; + + public Contato buildContato(Pessoa pessoa) throws RemoteException, BusinessException, Exception{ + if(pessoa instanceof PessoaFisica){ + return buildContatoPessoaFisica((PessoaFisica) pessoa); + }else if(pessoa instanceof PessoaJuridica){ + return buildContatoPessoaJuridica((PessoaJuridica) pessoa); + } + + throw new BusinessException("Tipo inválido"); + } + + private Contato buildContatoPessoaFisica(PessoaFisica pessoa) throws RemoteException, BusinessException, Exception{ + Contato contato = buildContatoPessoa(pessoa); + + contato.setStaNatureza(TipoPessoa.FISICA.getCodigo()); + + if(pessoa.getSexo() != null){ + contato.setStaGenero(pessoa.getSexo().getCodigo()); + } + + contato.setCpf(pessoa.getCpf()); + contato.setRg(pessoa.getRg()); + contato.setOrgaoExpedidor(pessoa.getOrgaoEmissor()); + + if(pessoa.getDataNascimento() != null){ + contato.setDataNascimento(DATE_FORMATTER.format(pessoa.getDataNascimento())); + } + + contato.setMatricula(pessoa.getMatricula()); + contato.setMatriculaOab(pessoa.getMatriculaOab()); + + return contato; + } + + private Contato buildContatoPessoaJuridica(PessoaJuridica pessoa) throws RemoteException, BusinessException, Exception{ + Contato contato = buildContatoPessoa(pessoa); + + contato.setStaNatureza(TipoPessoa.JURIDICA.getCodigo()); + contato.setCnpj(pessoa.getCnpj()); + contato.setSitioInternet(pessoa.getWebsite()); + + return contato; + } + + private Contato buildContatoPessoa(Pessoa pessoa) throws RemoteException, BusinessException, Exception{ + Contato contato = new Contato(); + + contato.setSigla(pessoa.getSigla()); + contato.setNome(pessoa.getNome()); + contato.setTelefoneFixo(pessoa.getTelefone()); + contato.setTelefoneCelular(pessoa.getCelular()); + contato.setEmail(pessoa.getEmail()); + contato.setObservacao(pessoa.getObservacao()); + contato.setSinAtivo(getSOuN(pessoa.isAtivo())); + + preencherDadosAssociado(pessoa, contato); + + if(pessoa.getEndereco() != null){ + preencherEndereco(pessoa.getEndereco(), contato); + } + + return contato; + } + + private void preencherEndereco(Endereco endereco, Contato contato) throws RemoteException, BusinessException, Exception{ + contato.setEndereco(concatenarNumero(endereco.getLogradouro(), endereco.getNumero())); + contato.setComplemento(endereco.getComplemento()); + contato.setBairro(endereco.getBairro()); + contato.setCep(endereco.getCEP()); + + if(StringUtils.isNotBlank(endereco.getCidade())){ + Cidade cidade = getCidade(endereco.getCidade()); + + contato.setIdCidade(cidade.getId().toString()); + contato.setIdEstado(cidade.getEstado().getId().toString()); + contato.setIdPais(cidade.getEstado().getIdPais()); + } + } + + private void preencherDadosAssociado(Pessoa pessoa, Contato contato) throws RemoteException, BusinessException, Exception{ + if(pessoa.getAssociado() == null){ + contato.setSinEnderecoAssociado(NAO); + }else{ + contato.setSinEnderecoAssociado(SIM); + + contato.setIdContatoAssociado(getIdContato(pessoa.getAssociado().getSigla())+""); + contato.setNomeContatoAssociado(pessoa.getAssociado().getNome()); + + if(pessoa.getAssociado().getEndereco() != null){ + preencherEndereco(pessoa.getAssociado().getEndereco(), contato); + } + } + } + + public br.gov.ans.integracao.sei.modelo.Contato getContatoNaoTemporarioMaisAntigo(String sigla){ + List contatosNaoTemporariosPelaSigla = contatoDAO.getContatosNaoTemporariosPelaSigla(sigla); + + return contatosNaoTemporariosPelaSigla.get(0); + } + + public void preencherIdContato(Contato contato, String sigla){ + contato.setIdContato(getIdContato(sigla)+""); + } + + public Boolean isContatoCadastradoComoNaoTemporario(String sigla){ + List contatosNaoTemporariosPelaSigla = contatoDAO.getContatosNaoTemporariosPelaSigla(sigla); + + return !contatosNaoTemporariosPelaSigla.isEmpty(); + } + + private Integer getIdContato(String sigla){ + return contatoDAO.getContatoPelaSigla(sigla).getId(); + } + + private Cidade getCidade(String ibge){ + return cidadeDAO.getCidadePeloIbge(ibge); + } + + private String concatenarNumero(String logradouro, String numero){ + if(StringUtils.isNotBlank(numero)){ + return logradouro.trim() + ", " + numero; + } + + return logradouro; + } +} diff --git a/src/main/java/br/gov/ans/integracao/sei/helper/DocumentoHelper.java b/src/main/java/br/gov/ans/integracao/sei/helper/DocumentoHelper.java new file mode 100644 index 0000000..7cad5da --- /dev/null +++ b/src/main/java/br/gov/ans/integracao/sei/helper/DocumentoHelper.java @@ -0,0 +1,140 @@ +package br.gov.ans.integracao.sei.helper; + +import static br.gov.ans.integracao.sei.utils.Util.decodeConteudoMustache; +import static br.gov.ans.integracao.sei.utils.Util.encodeBase64; + +import java.io.StringWriter; +import java.rmi.RemoteException; +import java.util.Map; + +import javax.inject.Inject; + +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; +import org.codehaus.jackson.JsonParseException; +import org.hibernate.engine.transaction.jta.platform.internal.TransactionManagerBasedSynchronizationStrategy; +import org.jboss.logging.Logger; + +import com.github.mustachejava.Mustache; + +import br.gov.ans.integracao.sei.client.Documento; +import br.gov.ans.integracao.sei.exceptions.BusinessException; +import br.gov.ans.integracao.sei.utils.Constantes; +import br.gov.ans.utils.MessageUtils; +import br.gov.ans.utils.MustacheUtils; + +public class DocumentoHelper { + + @Inject + private MessageUtils messages; + + @Inject + private InteressadoHelper interessadoHelper; + + @Inject + private Logger logger; + + @Inject + private MustacheUtils mustacheUtils; + + public void validarDocumento(Documento documento, String template) throws BusinessException, RemoteException, Exception{ + if(documento == null){ + throw new BusinessException(messages.getMessage("erro.dados.documento.nao.informados")); + } + + validarNumeroProcesso(documento); + validarNomeArquivo(documento); + validarNumeroInformado(documento); + validarTamanhoConteudo(documento); + validarInteressados(documento); + + if(StringUtils.isNotEmpty(template)){ + processarPreenchimentoTemplate(documento, template); + } + } + + private void processarPreenchimentoTemplate(Documento documento, String template) throws RemoteException, Exception{ + validarInclusaoComTemplate(documento); + + transformarConteudoDocumentoInterno(documento, template); + } + + private void validarNumeroProcesso(Documento documento) throws BusinessException{ + if(StringUtils.isBlank(documento.getIdProcedimento())){ + throw new BusinessException(messages.getMessage("erro.documento.sem.processo")); + } + } + + private void validarNomeArquivo(Documento documento) throws BusinessException{ + if(StringUtils.length(documento.getNomeArquivo()) > 200){ + throw new BusinessException(messages.getMessage("erro.tamanho.nome.documento")); + } + } + + private void validarNumeroInformado(Documento documento) throws BusinessException{ + if(StringUtils.length(documento.getNumero()) > 50){ + throw new BusinessException(messages.getMessage("erro.tamanho.numero.informado")); + } + } + + private void validarInteressados(Documento documento) throws BusinessException{ + if(isSemInteressados(documento)){ + throw new BusinessException(messages.getMessage("erro.interessado.nao.informado")); + }else{ + interessadoHelper.tratarInteressados(documento.getInteressados()); + } + } + + private void validarInclusaoComTemplate(Documento documento) throws BusinessException{ + if(documento.getTipo().equals(Constantes.DOCUMENTO_RECEBIDO)){ + throw new BusinessException(messages.getMessage("erro.template.documento.recebido")); + } + } + + private void validarTamanhoConteudo(Documento documento) throws BusinessException{ + if(documento.getConteudo() == null){ + return; + } + + if(calcularBytes(documento.getConteudo().length()) > Constantes.TAMANHO_MAXIMO_DOCUMENTO){ + throw new BusinessException(messages.getMessage("erro.tamanho.documento")); + } + } + + private boolean isSemInteressados(Documento documento){ + return ArrayUtils.isEmpty(documento.getInteressados()); + } + + private double calcularBytes(int sizeBase64){ + return sizeBase64 * 3.0 / 4; + } + + private void transformarConteudoDocumentoInterno(Documento documento, String template) throws RemoteException, Exception{ + StringWriter writer = new StringWriter(); + + try{ + Mustache mustache = mustacheUtils.compile(removeExtensaoLegado(template)); + + Map model = decodeConteudoMustache(documento.getConteudo()); + + mustache.execute(writer, model); + String html = writer.toString(); + + documento.setConteudo(encodeBase64(html)); + }catch(JsonParseException ex){ + logger.debug(documento.getConteudo()); + throw new BusinessException(messages.getMessage("erro.processar.conteudo.json")); + }finally{ + writer.close(); + } + } + + private String removeExtensaoLegado(String template){ + if(template.contains(".mustache")){ + return StringUtils.remove(template, ".mustache"); + } + + return template; + } + +} diff --git a/src/main/java/br/gov/ans/integracao/sei/helper/InteressadoHelper.java b/src/main/java/br/gov/ans/integracao/sei/helper/InteressadoHelper.java new file mode 100644 index 0000000..1bf3dda --- /dev/null +++ b/src/main/java/br/gov/ans/integracao/sei/helper/InteressadoHelper.java @@ -0,0 +1,45 @@ +package br.gov.ans.integracao.sei.helper; + +import javax.inject.Inject; + +import br.gov.ans.integracao.sei.client.Interessado; +import br.gov.ans.integracao.sei.modelo.Contato; + +public class InteressadoHelper { + @Inject + private ContatoHelper contatoHelper; + + public void tratarInteressados(Interessado[] interessados){ + for(int i=0; i < interessados.length; i++){ + interessados[i] = tratarInteressado(interessados[i]); + } + } + + public Interessado tratarInteressado(Interessado interessado){ + if(isInteressadoCadastradoComoNaoTemporario(interessado.getSigla())){ + return getRegistroInteressadoNaoTemporarioMaisAntigo(interessado.getSigla()); + } + + return interessado; + } + + private boolean isInteressadoCadastradoComoNaoTemporario(String sigla){ + return contatoHelper.isContatoCadastradoComoNaoTemporario(sigla); + } + + public Interessado getRegistroInteressadoNaoTemporarioMaisAntigo(String sigla){ + Contato contatoNaoTemporarioMaisAntigo = contatoHelper.getContatoNaoTemporarioMaisAntigo(sigla); + + return convertContatoParaInteressado(contatoNaoTemporarioMaisAntigo); + } + + private Interessado convertContatoParaInteressado(Contato contato){ + Interessado interessado = new Interessado(); + + interessado.setNome(contato.getNome()); + interessado.setSigla(contato.getSigla()); + + return interessado; + } + +} diff --git a/src/main/java/br/gov/ans/integracao/sei/helper/PessoaHelper.java b/src/main/java/br/gov/ans/integracao/sei/helper/PessoaHelper.java new file mode 100644 index 0000000..a6916b2 --- /dev/null +++ b/src/main/java/br/gov/ans/integracao/sei/helper/PessoaHelper.java @@ -0,0 +1,199 @@ +package br.gov.ans.integracao.sei.helper; + +import static br.gov.ans.integracao.sei.utils.Constantes.DATE_FORMATTER; + +import java.lang.reflect.Field; +import java.text.ParseException; +import java.util.ArrayList; +import java.util.List; + +import javax.inject.Inject; + +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.reflect.FieldUtils; +import org.jboss.logging.Logger; + +import br.gov.ans.integracao.sei.client.Contato; +import br.gov.ans.integracao.sei.dao.CidadeDAO; +import br.gov.ans.integracao.sei.dao.ContatoDAO; +import br.gov.ans.integracao.sei.exceptions.BusinessException; +import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; +import br.gov.ans.integracao.sei.modelo.Endereco; +import br.gov.ans.integracao.sei.modelo.Pessoa; +import br.gov.ans.integracao.sei.modelo.PessoaFisica; +import br.gov.ans.integracao.sei.modelo.PessoaJuridica; +import br.gov.ans.integracao.sei.modelo.enums.Sexo; +import br.gov.ans.integracao.sei.modelo.enums.TipoPessoa; +import br.gov.ans.utils.MessageUtils; + +public class PessoaHelper { + + @Inject + private ContatoDAO contatoDAO; + + @Inject + private CidadeDAO cidadeDAO; + + @Inject + private Logger logger; + + @Inject + private MessageUtils messages; + + public List buildPessoa(Contato[] contatos) throws ParseException, BusinessException, IllegalAccessException, ResourceNotFoundException{ + if(ArrayUtils.isNotEmpty(contatos)){ + ArrayList pessoas = new ArrayList(); + + for(Contato c : contatos){ + pessoas.add(buildPessoa(c)); + } + + return pessoas; + } + + throw new ResourceNotFoundException(messages.getMessage("erro.nenhum.contato.encontrado")); + } + + public Pessoa buildPessoa(Contato contato) throws ParseException, BusinessException, IllegalAccessException{ + TipoPessoa tipo = TipoPessoa.getByCodigo(contato.getStaNatureza()); + + if(tipo.equals(TipoPessoa.FISICA)){ + return buildPessoaFisica(contato); + } + + if(tipo.equals(TipoPessoa.JURIDICA)){ + return buildPessoaJuridica(contato); + } + + throw new BusinessException(messages.getMessage("erro.tipo.pessoa.invalido")); + } + + public PessoaFisica buildPessoaFisica(Contato contato) throws ParseException, IllegalAccessException{ + PessoaFisica pessoa = new PessoaFisica(); + + pessoa.setSigla(contato.getSigla()); + pessoa.setNome(contato.getNome()); + + if(StringUtils.isNotBlank(contato.getStaGenero())){ + pessoa.setSexo(Sexo.getByCodigo(contato.getStaGenero())); + } + + if(StringUtils.isNotBlank(contato.getDataNascimento())){ + pessoa.setDataNascimento(DATE_FORMATTER.parse(contato.getDataNascimento())); + } + + pessoa.setCpf(contato.getCpf()); + pessoa.setRg(contato.getRg()); + pessoa.setOrgaoEmissor(contato.getOrgaoExpedidor()); + pessoa.setMatricula(contato.getMatricula()); + pessoa.setMatriculaOab(contato.getMatriculaOab()); + pessoa.setCelular(contato.getTelefoneCelular()); + pessoa.setTelefone(contato.getTelefoneFixo()); + pessoa.setEmail(contato.getEmail()); + pessoa.setObservacao(contato.getObservacao()); + pessoa.setAtivo("S".equals(contato.getSinAtivo())); + + pessoa.setEndereco(buildEndereco(contato)); + + if("S".equals(contato.getSinEnderecoAssociado())){ + pessoa.setAssociado(buildAssociado(contato)); + } + + return pessoa; + } + + public PessoaJuridica buildPessoaJuridica(Contato contato) throws ParseException, IllegalAccessException{ + PessoaJuridica pessoa = new PessoaJuridica(); + + pessoa.setSigla(contato.getSigla()); + pessoa.setNome(contato.getNome()); + pessoa.setCnpj(contato.getCnpj()); + pessoa.setCelular(contato.getTelefoneCelular()); + pessoa.setTelefone(contato.getTelefoneFixo()); + pessoa.setEmail(contato.getEmail()); + pessoa.setWebsite(contato.getSitioInternet()); + pessoa.setObservacao(contato.getObservacao()); + pessoa.setAtivo("S".equals(contato.getSinAtivo())); + + pessoa.setEndereco(buildEndereco(contato)); + + if("S".equals(contato.getSinEnderecoAssociado())){ + pessoa.setAssociado(buildAssociado(contato)); + } + + return pessoa; + } + + private Endereco buildEndereco(Contato contato){ + Endereco endereco = new Endereco(); + + endereco.setLogradouro(contato.getEndereco()); + endereco.setComplemento(contato.getComplemento()); + endereco.setBairro(contato.getBairro()); + endereco.setCEP(contato.getCep()); + + if(StringUtils.isNotBlank(contato.getIdCidade())){ + endereco.setCidade(getCodigoIbge(contato.getIdCidade())); + } + endereco.setUf(contato.getSiglaEstado()); + endereco.setPais(contato.getNomePais()); + + return endereco; + } + + private Endereco buildEnderecoAssociado(Contato contato){ + Endereco endereco = new Endereco(); + + endereco.setLogradouro(contato.getEndereco()); + endereco.setComplemento(contato.getComplemento()); + endereco.setBairro(contato.getBairro()); + endereco.setCEP(contato.getCep()); + + if(StringUtils.isNotBlank(contato.getIdCidade())){ + endereco.setCidade(getCodigoIbge(contato.getIdCidade())); + } + endereco.setUf(contato.getSiglaEstado()); + endereco.setPais(contato.getNomePais()); + + return endereco; + } + + private PessoaJuridica buildAssociado(Contato contato){ + PessoaJuridica pessoa = new PessoaJuridica(); + + pessoa.setSigla(getSiglaContato(contato.getIdContatoAssociado())); + pessoa.setNome(contato.getNomeContatoAssociado()); + pessoa.setCnpj(contato.getCnpjAssociado()); + + pessoa.setEndereco(buildEnderecoAssociado(contato)); + + return pessoa; + } + + private String getSiglaContato(String id){ + return contatoDAO.getContatoPeloId(id).getSigla(); + } + + public boolean hasAssociado(Contato contato) throws IllegalAccessException{ + List fieldsList = FieldUtils.getAllFieldsList(Contato.class); + + for(Field f : fieldsList){ + if(f.getName().contains("Associado")){ + String field = (String) FieldUtils.readDeclaredField(contato, f.getName(), true); + + logger.warn(field); + + if(StringUtils.isNotBlank(field)){ + return true; + } + } + } + + return false; + } + + public String getCodigoIbge(String idCidade){ + return cidadeDAO.getCidadePeloId(idCidade).getCodigoIbge(); + } +} diff --git a/src/main/java/br/gov/ans/integracao/sei/helper/ProcessoHelper.java b/src/main/java/br/gov/ans/integracao/sei/helper/ProcessoHelper.java new file mode 100644 index 0000000..18a4d20 --- /dev/null +++ b/src/main/java/br/gov/ans/integracao/sei/helper/ProcessoHelper.java @@ -0,0 +1,38 @@ +package br.gov.ans.integracao.sei.helper; + +import javax.inject.Inject; + +import org.apache.commons.lang3.ArrayUtils; + +import br.gov.ans.integracao.sei.exceptions.BusinessException; +import br.gov.ans.integracao.sei.modelo.NovoProcesso; +import br.gov.ans.utils.MessageUtils; + +public class ProcessoHelper { + + @Inject + private MessageUtils messages; + + @Inject + private InteressadoHelper interessadoHelper; + + public void validarNovoProcesso(NovoProcesso novoProcesso) throws BusinessException{ + if(novoProcesso == null){ + throw new BusinessException(messages.getMessage("erro.novo.processo.vazio")); + } + + if(novoProcesso.getDadosProcesso() == null){ + throw new BusinessException(messages.getMessage("erro.dados.processo.nao.informados")); + } + + if(isSemInteressados(novoProcesso)){ + throw new BusinessException(messages.getMessage("erro.interessado.nao.informado")); + }else{ + interessadoHelper.tratarInteressados(novoProcesso.getDadosProcesso().getInteressados()); + } + } + + public boolean isSemInteressados(NovoProcesso processo){ + return ArrayUtils.isEmpty(processo.getDadosProcesso().getInteressados()); + } +} diff --git a/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java b/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java index 7a0a1a2..a7a1df3 100644 --- a/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java +++ b/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java @@ -33,14 +33,14 @@ import br.gov.ans.integracao.sei.client.SeiPortTypeProxy; import br.gov.ans.integracao.sei.exceptions.BusinessException; import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; import br.gov.ans.integracao.sei.exceptions.WrappedException; +import br.gov.ans.integracao.sei.helper.ContatoHelper; +import br.gov.ans.integracao.sei.helper.PessoaHelper; import br.gov.ans.integracao.sei.modelo.Operacao; import br.gov.ans.integracao.sei.modelo.Pessoa; import br.gov.ans.integracao.sei.modelo.enums.Acao; import br.gov.ans.integracao.sei.modelo.enums.TipoContato; import br.gov.ans.integracao.sei.utils.Constantes; -import br.gov.ans.integracao.sei.utils.ContatoHelper; import br.gov.ans.integracao.sei.utils.MessagesKeys; -import br.gov.ans.integracao.sei.utils.PessoaHelper; import br.gov.ans.utils.MessageUtils; @Path("/") diff --git a/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java b/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java index 149c246..95e30f7 100644 --- a/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java +++ b/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java @@ -56,6 +56,7 @@ import br.gov.ans.integracao.sei.dao.InclusaoDocumentoDAO; import br.gov.ans.integracao.sei.exceptions.BusinessException; import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; import br.gov.ans.integracao.sei.exceptions.WrappedException; +import br.gov.ans.integracao.sei.helper.DocumentoHelper; import br.gov.ans.integracao.sei.modelo.CancelamentoDocumento; import br.gov.ans.integracao.sei.modelo.DocumentoResumido; import br.gov.ans.integracao.sei.modelo.ExclusaoDocumento; @@ -90,12 +91,12 @@ public class DocumentoResource { @Inject private Logger logger; - @Inject - private MustacheUtils mustacheUtils; - @Inject private MessageUtils messages; + @Inject + private DocumentoHelper documentoHelper; + @Context private SecurityContext securityContext; @@ -316,18 +317,11 @@ public class DocumentoResource { public Response incluirDocumento(@PathParam("unidade") String unidade, @QueryParam("template") String template, Documento documento) throws RemoteException, Exception{ RetornoInclusaoDocumento retorno = null; - validarTamanhoConteudo(documento); - + documentoHelper.validarDocumento(documento, template); + InclusaoDocumento inclusaoDocumento = registrarInclusao(documento, unidade); try{ - if(StringUtils.isNotEmpty(template)){ - validarInclusaoComTemplate(documento); - String conteudoHTML = transformarConteudoDocumentoInterno(documento.getConteudo(), template); - - documento.setConteudo(conteudoHTML); - } - logger.debug(messages.getMessage(MessagesKeys.DEBUG_NOVO_DOCUMENTO_ENVIADO)); retorno = seiNativeService.incluirDocumento(Constantes.SEI_BROKER, Operacao.INCLUIR_DOCUMENTO, unidadeResource.consultarCodigo(unidade), documento); @@ -625,8 +619,6 @@ public class DocumentoResource { public InclusaoDocumento registrarInclusao(Documento documento, String unidade) throws Exception{ InclusaoDocumento registro = new InclusaoDocumento(documento, unidade, getSistemaResponsavel(), calcularHashDocumento(documento.getConteudo())); - validarInclusaoDocumento(registro); - try{ userTransaction.begin(); @@ -704,47 +696,7 @@ public class DocumentoResource { contentType = StringUtils.remove(contentType, ";"); return !contentType.toLowerCase().equals("application/pdf"); } - - public void validarInclusaoComTemplate(Documento documento) throws BusinessException{ - if(documento.getTipo().equals(Constantes.DOCUMENTO_RECEBIDO)){ - throw new BusinessException(messages.getMessage("erro.template.documento.recebido")); - } - } - - public String transformarConteudoDocumentoInterno(String conteudo, String template) throws RemoteException, Exception{ - StringWriter writer = new StringWriter(); - try{ - Mustache mustache = mustacheUtils.compile(removeExtensaoLegado(template)); - - Map model = decodeConteudoMustache(conteudo); - - mustache.execute(writer, model); - String html = writer.toString(); - - return encodeBase64(html); - }catch(JsonParseException ex){ - logger.debug(conteudo); - throw new BusinessException(messages.getMessage("erro.processar.conteudo.json")); - }finally{ - writer.close(); - } - } - - public void validarInclusaoDocumento(InclusaoDocumento inclusao) throws BusinessException{ - if(StringUtils.isBlank(inclusao.getProcesso())){ - throw new BusinessException(messages.getMessage("erro.documento.sem.processo")); - } - - if(StringUtils.length(inclusao.getNome()) > 200){ - throw new BusinessException(messages.getMessage("erro.tamanho.nome.documento")); - } - - if(StringUtils.length(inclusao.getNumeroInformado()) > 50){ - throw new BusinessException(messages.getMessage("erro.tamanho.numero.informado")); - } - } - public URI getResourcePath(String resourceId){ UriBuilder builder = uriInfo.getAbsolutePathBuilder(); @@ -753,14 +705,6 @@ public class DocumentoResource { return builder.build(); } - public String removeExtensaoLegado(String template){ - if(template.contains(".mustache")){ - return StringUtils.remove(template, ".mustache"); - } - - return template; - } - public void registrarExclusao(String numero, String unidade, String motivo) throws BusinessException, NotSupportedException, SystemException, SecurityException, IllegalStateException, RollbackException, HeuristicMixedException, HeuristicRollbackException{ try{ userTransaction.begin(); @@ -781,18 +725,5 @@ public class DocumentoResource { throw new BusinessException(messages.getMessage("erro.tamanho.motivo.cancelamento")); } } - - public void validarTamanhoConteudo(Documento documento) throws BusinessException{ - if(documento == null || documento.getConteudo() == null){ - return; - } - - if(calcularBytes(documento.getConteudo().length()) > Constantes.TAMANHO_MAXIMO_DOCUMENTO){ - throw new BusinessException(messages.getMessage("erro.tamanho.documento")); - } - } - - private double calcularBytes(int sizeBase64){ - return sizeBase64 * 3.0 / 4; - } + } diff --git a/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java b/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java index ae20984..633fa5a 100644 --- a/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java +++ b/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java @@ -50,6 +50,7 @@ import br.gov.ans.integracao.sei.dao.SiparDAO; import br.gov.ans.integracao.sei.dao.UnidadeDAO; import br.gov.ans.integracao.sei.exceptions.BusinessException; import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; +import br.gov.ans.integracao.sei.helper.ProcessoHelper; import br.gov.ans.integracao.sei.modelo.DocumentoResumido; import br.gov.ans.integracao.sei.modelo.EnvioDeProcesso; import br.gov.ans.integracao.sei.modelo.Motivo; @@ -63,7 +64,6 @@ import br.gov.ans.integracao.sei.modelo.ProcessoResumido; import br.gov.ans.integracao.sei.modelo.ResultadoConsultaProcesso; import br.gov.ans.integracao.sei.modelo.SobrestamentoProcesso; import br.gov.ans.integracao.sei.utils.Constantes; -import br.gov.ans.integracao.sei.utils.ProcessoHelper; import br.gov.ans.integracao.sipar.dao.DocumentoSipar; import br.gov.ans.utils.MessageUtils; diff --git a/src/main/java/br/gov/ans/integracao/sei/utils/ContatoHelper.java b/src/main/java/br/gov/ans/integracao/sei/utils/ContatoHelper.java deleted file mode 100644 index 8d8a82d..0000000 --- a/src/main/java/br/gov/ans/integracao/sei/utils/ContatoHelper.java +++ /dev/null @@ -1,158 +0,0 @@ -package br.gov.ans.integracao.sei.utils; - -import static br.gov.ans.integracao.sei.utils.Constantes.DATE_FORMATTER; -import static br.gov.ans.integracao.sei.utils.Constantes.NAO; -import static br.gov.ans.integracao.sei.utils.Constantes.SIM; -import static br.gov.ans.integracao.sei.utils.Util.getSOuN; - -import java.rmi.RemoteException; -import java.util.List; - -import javax.inject.Inject; - -import org.apache.commons.lang3.StringUtils; - -import br.gov.ans.integracao.sei.client.Contato; -import br.gov.ans.integracao.sei.dao.CidadeDAO; -import br.gov.ans.integracao.sei.dao.ContatoDAO; -import br.gov.ans.integracao.sei.exceptions.BusinessException; -import br.gov.ans.integracao.sei.modelo.Cidade; -import br.gov.ans.integracao.sei.modelo.Endereco; -import br.gov.ans.integracao.sei.modelo.Pessoa; -import br.gov.ans.integracao.sei.modelo.PessoaFisica; -import br.gov.ans.integracao.sei.modelo.PessoaJuridica; -import br.gov.ans.integracao.sei.modelo.enums.TipoPessoa; - -public class ContatoHelper { - - @Inject - private ContatoDAO contatoDAO; - - @Inject - private CidadeDAO cidadeDAO; - - public Contato buildContato(Pessoa pessoa) throws RemoteException, BusinessException, Exception{ - if(pessoa instanceof PessoaFisica){ - return buildContatoPessoaFisica((PessoaFisica) pessoa); - }else if(pessoa instanceof PessoaJuridica){ - return buildContatoPessoaJuridica((PessoaJuridica) pessoa); - } - - throw new BusinessException("Tipo inválido"); - } - - private Contato buildContatoPessoaFisica(PessoaFisica pessoa) throws RemoteException, BusinessException, Exception{ - Contato contato = buildContatoPessoa(pessoa); - - contato.setStaNatureza(TipoPessoa.FISICA.getCodigo()); - - if(pessoa.getSexo() != null){ - contato.setStaGenero(pessoa.getSexo().getCodigo()); - } - - contato.setCpf(pessoa.getCpf()); - contato.setRg(pessoa.getRg()); - contato.setOrgaoExpedidor(pessoa.getOrgaoEmissor()); - - if(pessoa.getDataNascimento() != null){ - contato.setDataNascimento(DATE_FORMATTER.format(pessoa.getDataNascimento())); - } - - contato.setMatricula(pessoa.getMatricula()); - contato.setMatriculaOab(pessoa.getMatriculaOab()); - - return contato; - } - - private Contato buildContatoPessoaJuridica(PessoaJuridica pessoa) throws RemoteException, BusinessException, Exception{ - Contato contato = buildContatoPessoa(pessoa); - - contato.setStaNatureza(TipoPessoa.JURIDICA.getCodigo()); - contato.setCnpj(pessoa.getCnpj()); - contato.setSitioInternet(pessoa.getWebsite()); - - return contato; - } - - private Contato buildContatoPessoa(Pessoa pessoa) throws RemoteException, BusinessException, Exception{ - Contato contato = new Contato(); - - contato.setSigla(pessoa.getSigla()); - contato.setNome(pessoa.getNome()); - contato.setTelefoneFixo(pessoa.getTelefone()); - contato.setTelefoneCelular(pessoa.getCelular()); - contato.setEmail(pessoa.getEmail()); - contato.setObservacao(pessoa.getObservacao()); - contato.setSinAtivo(getSOuN(pessoa.isAtivo())); - - preencherDadosAssociado(pessoa, contato); - - if(pessoa.getEndereco() != null){ - preencherEndereco(pessoa.getEndereco(), contato); - } - - return contato; - } - - private void preencherEndereco(Endereco endereco, Contato contato) throws RemoteException, BusinessException, Exception{ - contato.setEndereco(concatenarNumero(endereco.getLogradouro(), endereco.getNumero())); - contato.setComplemento(endereco.getComplemento()); - contato.setBairro(endereco.getBairro()); - contato.setCep(endereco.getCEP()); - - if(StringUtils.isNotBlank(endereco.getCidade())){ - Cidade cidade = getCidade(endereco.getCidade()); - - contato.setIdCidade(cidade.getId().toString()); - contato.setIdEstado(cidade.getEstado().getId().toString()); - contato.setIdPais(cidade.getEstado().getIdPais()); - } - } - - private void preencherDadosAssociado(Pessoa pessoa, Contato contato) throws RemoteException, BusinessException, Exception{ - if(pessoa.getAssociado() == null){ - contato.setSinEnderecoAssociado(NAO); - }else{ - contato.setSinEnderecoAssociado(SIM); - - contato.setIdContatoAssociado(getIdContato(pessoa.getAssociado().getSigla())+""); - contato.setNomeContatoAssociado(pessoa.getAssociado().getNome()); - - if(pessoa.getAssociado().getEndereco() != null){ - preencherEndereco(pessoa.getAssociado().getEndereco(), contato); - } - } - } - - public br.gov.ans.integracao.sei.modelo.Contato getContatoNaoTemporarioMaisAntigo(String sigla){ - List contatosNaoTemporariosPelaSigla = contatoDAO.getContatosNaoTemporariosPelaSigla(sigla); - - return contatosNaoTemporariosPelaSigla.get(0); - } - - public void preencherIdContato(Contato contato, String sigla){ - contato.setIdContato(getIdContato(sigla)+""); - } - - public Boolean isContatoCadastradoComoNaoTemporario(String sigla){ - List contatosNaoTemporariosPelaSigla = contatoDAO.getContatosNaoTemporariosPelaSigla(sigla); - - return !contatosNaoTemporariosPelaSigla.isEmpty(); - } - - private Integer getIdContato(String sigla){ - return contatoDAO.getContatoPelaSigla(sigla).getId(); - } - - private Cidade getCidade(String ibge){ - return cidadeDAO.getCidadePeloIbge(ibge); - } - - private String concatenarNumero(String logradouro, String numero){ - if(StringUtils.isNotBlank(numero)){ - return logradouro.trim() + ", " + numero; - } - - return logradouro; - } -} diff --git a/src/main/java/br/gov/ans/integracao/sei/utils/InteressadoHelper.java b/src/main/java/br/gov/ans/integracao/sei/utils/InteressadoHelper.java deleted file mode 100644 index f953a03..0000000 --- a/src/main/java/br/gov/ans/integracao/sei/utils/InteressadoHelper.java +++ /dev/null @@ -1,45 +0,0 @@ -package br.gov.ans.integracao.sei.utils; - -import javax.inject.Inject; - -import br.gov.ans.integracao.sei.client.Interessado; -import br.gov.ans.integracao.sei.modelo.Contato; - -public class InteressadoHelper { - @Inject - private ContatoHelper contatoHelper; - - public void tratarInteressados(Interessado[] interessados){ - for(int i=0; i < interessados.length; i++){ - interessados[i] = tratarInteressado(interessados[i]); - } - } - - public Interessado tratarInteressado(Interessado interessado){ - if(isInteressadoCadastradoComoNaoTemporario(interessado.getSigla())){ - return getRegistroInteressadoNaoTemporarioMaisAntigo(interessado.getSigla()); - } - - return interessado; - } - - private boolean isInteressadoCadastradoComoNaoTemporario(String sigla){ - return contatoHelper.isContatoCadastradoComoNaoTemporario(sigla); - } - - public Interessado getRegistroInteressadoNaoTemporarioMaisAntigo(String sigla){ - Contato contatoNaoTemporarioMaisAntigo = contatoHelper.getContatoNaoTemporarioMaisAntigo(sigla); - - return convertContatoParaInteressado(contatoNaoTemporarioMaisAntigo); - } - - private Interessado convertContatoParaInteressado(Contato contato){ - Interessado interessado = new Interessado(); - - interessado.setNome(contato.getNome()); - interessado.setSigla(contato.getSigla()); - - return interessado; - } - -} diff --git a/src/main/java/br/gov/ans/integracao/sei/utils/PessoaHelper.java b/src/main/java/br/gov/ans/integracao/sei/utils/PessoaHelper.java deleted file mode 100644 index 7e807c8..0000000 --- a/src/main/java/br/gov/ans/integracao/sei/utils/PessoaHelper.java +++ /dev/null @@ -1,199 +0,0 @@ -package br.gov.ans.integracao.sei.utils; - -import static br.gov.ans.integracao.sei.utils.Constantes.DATE_FORMATTER; - -import java.lang.reflect.Field; -import java.text.ParseException; -import java.util.ArrayList; -import java.util.List; - -import javax.inject.Inject; - -import org.apache.commons.lang3.ArrayUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.reflect.FieldUtils; -import org.jboss.logging.Logger; - -import br.gov.ans.integracao.sei.client.Contato; -import br.gov.ans.integracao.sei.dao.CidadeDAO; -import br.gov.ans.integracao.sei.dao.ContatoDAO; -import br.gov.ans.integracao.sei.exceptions.BusinessException; -import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; -import br.gov.ans.integracao.sei.modelo.Endereco; -import br.gov.ans.integracao.sei.modelo.Pessoa; -import br.gov.ans.integracao.sei.modelo.PessoaFisica; -import br.gov.ans.integracao.sei.modelo.PessoaJuridica; -import br.gov.ans.integracao.sei.modelo.enums.Sexo; -import br.gov.ans.integracao.sei.modelo.enums.TipoPessoa; -import br.gov.ans.utils.MessageUtils; - -public class PessoaHelper { - - @Inject - private ContatoDAO contatoDAO; - - @Inject - private CidadeDAO cidadeDAO; - - @Inject - private Logger logger; - - @Inject - private MessageUtils messages; - - public List buildPessoa(Contato[] contatos) throws ParseException, BusinessException, IllegalAccessException, ResourceNotFoundException{ - if(ArrayUtils.isNotEmpty(contatos)){ - ArrayList pessoas = new ArrayList(); - - for(Contato c : contatos){ - pessoas.add(buildPessoa(c)); - } - - return pessoas; - } - - throw new ResourceNotFoundException(messages.getMessage("erro.nenhum.contato.encontrado")); - } - - public Pessoa buildPessoa(Contato contato) throws ParseException, BusinessException, IllegalAccessException{ - TipoPessoa tipo = TipoPessoa.getByCodigo(contato.getStaNatureza()); - - if(tipo.equals(TipoPessoa.FISICA)){ - return buildPessoaFisica(contato); - } - - if(tipo.equals(TipoPessoa.JURIDICA)){ - return buildPessoaJuridica(contato); - } - - throw new BusinessException(messages.getMessage("erro.tipo.pessoa.invalido")); - } - - public PessoaFisica buildPessoaFisica(Contato contato) throws ParseException, IllegalAccessException{ - PessoaFisica pessoa = new PessoaFisica(); - - pessoa.setSigla(contato.getSigla()); - pessoa.setNome(contato.getNome()); - - if(StringUtils.isNotBlank(contato.getStaGenero())){ - pessoa.setSexo(Sexo.getByCodigo(contato.getStaGenero())); - } - - if(StringUtils.isNotBlank(contato.getDataNascimento())){ - pessoa.setDataNascimento(DATE_FORMATTER.parse(contato.getDataNascimento())); - } - - pessoa.setCpf(contato.getCpf()); - pessoa.setRg(contato.getRg()); - pessoa.setOrgaoEmissor(contato.getOrgaoExpedidor()); - pessoa.setMatricula(contato.getMatricula()); - pessoa.setMatriculaOab(contato.getMatriculaOab()); - pessoa.setCelular(contato.getTelefoneCelular()); - pessoa.setTelefone(contato.getTelefoneFixo()); - pessoa.setEmail(contato.getEmail()); - pessoa.setObservacao(contato.getObservacao()); - pessoa.setAtivo("S".equals(contato.getSinAtivo())); - - pessoa.setEndereco(buildEndereco(contato)); - - if("S".equals(contato.getSinEnderecoAssociado())){ - pessoa.setAssociado(buildAssociado(contato)); - } - - return pessoa; - } - - public PessoaJuridica buildPessoaJuridica(Contato contato) throws ParseException, IllegalAccessException{ - PessoaJuridica pessoa = new PessoaJuridica(); - - pessoa.setSigla(contato.getSigla()); - pessoa.setNome(contato.getNome()); - pessoa.setCnpj(contato.getCnpj()); - pessoa.setCelular(contato.getTelefoneCelular()); - pessoa.setTelefone(contato.getTelefoneFixo()); - pessoa.setEmail(contato.getEmail()); - pessoa.setWebsite(contato.getSitioInternet()); - pessoa.setObservacao(contato.getObservacao()); - pessoa.setAtivo("S".equals(contato.getSinAtivo())); - - pessoa.setEndereco(buildEndereco(contato)); - - if("S".equals(contato.getSinEnderecoAssociado())){ - pessoa.setAssociado(buildAssociado(contato)); - } - - return pessoa; - } - - private Endereco buildEndereco(Contato contato){ - Endereco endereco = new Endereco(); - - endereco.setLogradouro(contato.getEndereco()); - endereco.setComplemento(contato.getComplemento()); - endereco.setBairro(contato.getBairro()); - endereco.setCEP(contato.getCep()); - - if(StringUtils.isNotBlank(contato.getIdCidade())){ - endereco.setCidade(getCodigoIbge(contato.getIdCidade())); - } - endereco.setUf(contato.getSiglaEstado()); - endereco.setPais(contato.getNomePais()); - - return endereco; - } - - private Endereco buildEnderecoAssociado(Contato contato){ - Endereco endereco = new Endereco(); - - endereco.setLogradouro(contato.getEndereco()); - endereco.setComplemento(contato.getComplemento()); - endereco.setBairro(contato.getBairro()); - endereco.setCEP(contato.getCep()); - - if(StringUtils.isNotBlank(contato.getIdCidade())){ - endereco.setCidade(getCodigoIbge(contato.getIdCidade())); - } - endereco.setUf(contato.getSiglaEstado()); - endereco.setPais(contato.getNomePais()); - - return endereco; - } - - private PessoaJuridica buildAssociado(Contato contato){ - PessoaJuridica pessoa = new PessoaJuridica(); - - pessoa.setSigla(getSiglaContato(contato.getIdContatoAssociado())); - pessoa.setNome(contato.getNomeContatoAssociado()); - pessoa.setCnpj(contato.getCnpjAssociado()); - - pessoa.setEndereco(buildEnderecoAssociado(contato)); - - return pessoa; - } - - private String getSiglaContato(String id){ - return contatoDAO.getContatoPeloId(id).getSigla(); - } - - public boolean hasAssociado(Contato contato) throws IllegalAccessException{ - List fieldsList = FieldUtils.getAllFieldsList(Contato.class); - - for(Field f : fieldsList){ - if(f.getName().contains("Associado")){ - String field = (String) FieldUtils.readDeclaredField(contato, f.getName(), true); - - logger.warn(field); - - if(StringUtils.isNotBlank(field)){ - return true; - } - } - } - - return false; - } - - public String getCodigoIbge(String idCidade){ - return cidadeDAO.getCidadePeloId(idCidade).getCodigoIbge(); - } -} diff --git a/src/main/java/br/gov/ans/integracao/sei/utils/ProcessoHelper.java b/src/main/java/br/gov/ans/integracao/sei/utils/ProcessoHelper.java deleted file mode 100644 index 5cb34c4..0000000 --- a/src/main/java/br/gov/ans/integracao/sei/utils/ProcessoHelper.java +++ /dev/null @@ -1,38 +0,0 @@ -package br.gov.ans.integracao.sei.utils; - -import javax.inject.Inject; - -import org.apache.commons.lang3.ArrayUtils; - -import br.gov.ans.integracao.sei.exceptions.BusinessException; -import br.gov.ans.integracao.sei.modelo.NovoProcesso; -import br.gov.ans.utils.MessageUtils; - -public class ProcessoHelper { - - @Inject - private MessageUtils messages; - - @Inject - private InteressadoHelper interessadoHelper; - - public void validarNovoProcesso(NovoProcesso novoProcesso) throws BusinessException{ - if(novoProcesso == null){ - throw new BusinessException(messages.getMessage("erro.novo.processo.vazio")); - } - - if(novoProcesso.getDadosProcesso() == null){ - throw new BusinessException(messages.getMessage("erro.dados.processo.nao.informados")); - } - - if(isSemInteressados(novoProcesso)){ - throw new BusinessException(messages.getMessage("erro.interessado.nao.informado")); - }else{ - interessadoHelper.tratarInteressados(novoProcesso.getDadosProcesso().getInteressados()); - } - } - - public boolean isSemInteressados(NovoProcesso processo){ - return ArrayUtils.isEmpty(processo.getDadosProcesso().getInteressados()); - } -} diff --git a/src/main/resources/messages.properties b/src/main/resources/messages.properties index b653eff..f970512 100644 --- a/src/main/resources/messages.properties +++ b/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 erro.codigo.ibge.invalido = Código do IBGE inválido, não foram encontradas cidades relacionadas ao código {0}. erro.conectar.sei = Ocorreu um erro ao se conectar ao SEI, contate a equipe responsável. erro.contato.nao.encontrado = Nenhum contato foi encontrado para o identificador {0}. +erro.dados.documento.nao.informados = Dados do documento não informados. erro.dados.processo.nao.informados = Dados do processo não informados. erro.desanexar.processo = Ocorreu um erro ao desanexar o processo. erro.desbloquear.processo = Ocorreu um erro ao desbloquear o processo. diff --git a/src/test/java/br/gov/ans/integracao/sei/testes/FunctionalTest.java b/src/test/java/br/gov/ans/integracao/sei/testes/FunctionalTest.java index afe620a..992e19f 100644 --- a/src/test/java/br/gov/ans/integracao/sei/testes/FunctionalTest.java +++ b/src/test/java/br/gov/ans/integracao/sei/testes/FunctionalTest.java @@ -8,7 +8,7 @@ public class FunctionalTest { protected final String USUARIO = "desenv_integracao_sei"; protected final String SENHA = "integra_sei_2016"; - protected static final Boolean DESENVOLVIMENTO = false; + protected static final Boolean DESENVOLVIMENTO = true; protected static final String BASIC = "Basic ZGVzZW52X2ludGVncmFjYW9fc2VpOmludGVncmFfc2VpXzIwMTY="; -- libgit2 0.21.2