From 2d1b6fb17d6715c1efa6b3e39249cf776cc3e2e7 Mon Sep 17 00:00:00 2001 From: andre guimaraes Date: Wed, 6 Dec 2017 14:45:07 +0000 Subject: [PATCH] Alterações para integração SIF x SEI, versão 2.2 do Broker. --- .classpath | 4 ++-- .settings/org.eclipse.wst.common.component | 2 +- apidoc.json | 2 +- pom.xml | 2 +- src/main/java/br/gov/ans/dao/DAO.java | 4 ++++ src/main/java/br/gov/ans/exceptions/BusinessException.java | 3 +++ src/main/java/br/gov/ans/exceptions/ResourceConflictException.java | 23 +++++++++++++++++++++++ src/main/java/br/gov/ans/exceptions/ResourceNotFoundException.java | 3 +++ src/main/java/br/gov/ans/exceptions/WrappedException.java | 3 +++ src/main/java/br/gov/ans/exceptions/handlers/EJBExceptionHandler.java | 40 ++++++++++++++++++++++++++++++++++++++++ src/main/java/br/gov/ans/exceptions/handlers/PersistenceExceptionHandler.java | 40 ++++++++++++++++++++++++++++++++++++++++ src/main/java/br/gov/ans/exceptions/handlers/ResourceConflictExceptionHandler.java | 35 +++++++++++++++++++++++++++++++++++ src/main/java/br/gov/ans/integracao/sei/client/Assinatura.java | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- src/main/java/br/gov/ans/integracao/sei/client/Procedimento.java | 4 ++-- src/main/java/br/gov/ans/integracao/sei/client/SeiPortTypeProxy.java | 24 ++++++++---------------- src/main/java/br/gov/ans/integracao/sei/client/Usuario.java | 37 +++++++++++++------------------------ src/main/java/br/gov/ans/integracao/sei/dao/DocumentoDAO.java | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------ src/main/java/br/gov/ans/integracao/sei/dao/DocumentoSiparDAO.java | 33 --------------------------------- src/main/java/br/gov/ans/integracao/sei/dao/ProcessoDAO.java | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------ src/main/java/br/gov/ans/integracao/sei/dao/SiparDAO.java | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/br/gov/ans/integracao/sei/modelo/DocumentoResumido.java | 60 ++++++++++++++++++++++++++++++++++++++++-------------------- src/main/java/br/gov/ans/integracao/sei/modelo/DocumentoSipar.java | 130 ---------------------------------------------------------------------------------------------------------------------------------- src/main/java/br/gov/ans/integracao/sei/modelo/ProcessoResumido.java | 27 ++++++++++++++++++++++++--- src/main/java/br/gov/ans/integracao/sei/modelo/ResultadoConsultaDocumento.java | 1 + src/main/java/br/gov/ans/integracao/sei/modelo/ResultadoConsultaProcesso.java | 1 + src/main/java/br/gov/ans/integracao/sei/modelo/Tipo.java | 34 ++++++++++++++++++++++++++++++++++ src/main/java/br/gov/ans/integracao/sei/modelo/TipoDocumento.java | 39 +++++++++++++++++++++++++++++++++++++++ src/main/java/br/gov/ans/integracao/sei/modelo/UsuarioProjeto.java | 112 ---------------------------------------------------------------------------------------------------------------- src/main/java/br/gov/ans/integracao/sei/rest/ArquivoResource.java | 14 ++++++++------ src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java | 53 +++++++++++++++++++++++++++++++++++++---------------- src/main/java/br/gov/ans/integracao/sei/rest/CargoResource.java | 4 +++- src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java | 20 +++++++++++++++----- src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------- src/main/java/br/gov/ans/integracao/sei/rest/ExtensoesResource.java | 6 +++--- src/main/java/br/gov/ans/integracao/sei/rest/HipoteseLegalResource.java | 4 +++- src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java | 20 +++++++++++++++----- src/main/java/br/gov/ans/integracao/sei/rest/MarcadorResource.java | 10 ++++++---- src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java | 189 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------- src/main/java/br/gov/ans/integracao/sei/rest/SeriesResource.java | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- src/main/java/br/gov/ans/integracao/sei/rest/SiparResource.java | 237 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/br/gov/ans/integracao/sei/rest/TarefaResource.java | 4 +++- src/main/java/br/gov/ans/integracao/sei/rest/TipoConferenciaResource.java | 5 ++++- src/main/java/br/gov/ans/integracao/sei/rest/UnidadeResource.java | 18 ++++++++++++------ src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------ src/main/java/br/gov/ans/integracao/sipar/dao/ControleMigracao.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/br/gov/ans/integracao/sipar/dao/ControleMigracaoId.java | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/br/gov/ans/integracao/sipar/dao/DocumentoSipar.java | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/resources/META-INF/persistence.xml | 7 ++++--- src/main/resources/messages.properties | 7 +++++++ src/main/webapp/WEB-INF/web.xml | 23 +++++++++++++++++++++++ src/main/webapp/api-docs/api_data.js | 1055 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/main/webapp/api-docs/api_data.json | 1055 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/main/webapp/api-docs/api_project.js | 4 ++-- src/main/webapp/api-docs/api_project.json | 4 ++-- src/test/java/br/gov/ans/integracao/sei/testes/Base64Decoder.java | 2 +- src/test/java/br/gov/ans/integracao/sei/testes/Base64Encoder.java | 45 +++++++++++++++++++++++++++++++++++++++++---- src/test/java/br/gov/ans/integracao/sei/testes/FunctionalTest.java | 4 ++-- src/test/java/br/gov/ans/integracao/sei/testes/SeiBrokerTest.java | 12 +++++++----- 58 files changed, 3399 insertions(+), 968 deletions(-) create mode 100644 src/main/java/br/gov/ans/exceptions/ResourceConflictException.java create mode 100644 src/main/java/br/gov/ans/exceptions/handlers/EJBExceptionHandler.java create mode 100644 src/main/java/br/gov/ans/exceptions/handlers/PersistenceExceptionHandler.java create mode 100644 src/main/java/br/gov/ans/exceptions/handlers/ResourceConflictExceptionHandler.java delete mode 100644 src/main/java/br/gov/ans/integracao/sei/dao/DocumentoSiparDAO.java create mode 100644 src/main/java/br/gov/ans/integracao/sei/dao/SiparDAO.java delete mode 100644 src/main/java/br/gov/ans/integracao/sei/modelo/DocumentoSipar.java create mode 100644 src/main/java/br/gov/ans/integracao/sei/modelo/Tipo.java create mode 100644 src/main/java/br/gov/ans/integracao/sei/modelo/TipoDocumento.java delete mode 100644 src/main/java/br/gov/ans/integracao/sei/modelo/UsuarioProjeto.java create mode 100644 src/main/java/br/gov/ans/integracao/sei/rest/SiparResource.java create mode 100644 src/main/java/br/gov/ans/integracao/sipar/dao/ControleMigracao.java create mode 100644 src/main/java/br/gov/ans/integracao/sipar/dao/ControleMigracaoId.java create mode 100644 src/main/java/br/gov/ans/integracao/sipar/dao/DocumentoSipar.java diff --git a/.classpath b/.classpath index 260e4f4..63cfcbe 100644 --- a/.classpath +++ b/.classpath @@ -33,9 +33,9 @@ - + - + diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index e2f474a..e69ab3f 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -1,5 +1,5 @@ - + diff --git a/apidoc.json b/apidoc.json index 9e56d0e..382a562 100644 --- a/apidoc.json +++ b/apidoc.json @@ -1,7 +1,7 @@ { "name": "sei-broker", "version": "2.0.0", - "description": "Documentação da camada de integração ANS X SEI. Essa documentação serve para apoiar aos consumidores da camada de integração, pode ser necessário consultar a documentação oficial do SEI para melhor entendimento do negócio e seus objetos.", + "description": "Documentação da camada de integração ANS X SEI. Essa documentação serve para apoiar aos consumidores da camada de integração, pode ser necessário consultar a documentação oficial do SEI para melhor entendimento do negócio e seus objetos. Mais informações do SEI-Broker veja o artigo wiki.", "title": "Documentação - sei-broker", "url":"https:///sei-broker/service" } \ No newline at end of file diff --git a/pom.xml b/pom.xml index d017a15..976e3e8 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 br.gov.ans sei-broker - 2.1 + 2.2 war sei-broker Projeto demonstrativo de webservice Rest diff --git a/src/main/java/br/gov/ans/dao/DAO.java b/src/main/java/br/gov/ans/dao/DAO.java index b3cc129..c6effb3 100644 --- a/src/main/java/br/gov/ans/dao/DAO.java +++ b/src/main/java/br/gov/ans/dao/DAO.java @@ -53,6 +53,10 @@ public class DAO implements Serializable{ em.remove(em.merge(t)); } + public T findById(Serializable id){ + return (T)em.find(classe, id); + } + @Transactional @SuppressWarnings({ "unchecked", "rawtypes" }) public Long count() { diff --git a/src/main/java/br/gov/ans/exceptions/BusinessException.java b/src/main/java/br/gov/ans/exceptions/BusinessException.java index 3e4b73e..2c847f8 100644 --- a/src/main/java/br/gov/ans/exceptions/BusinessException.java +++ b/src/main/java/br/gov/ans/exceptions/BusinessException.java @@ -1,5 +1,8 @@ package br.gov.ans.exceptions; +import javax.ejb.ApplicationException; + +@ApplicationException public class BusinessException extends Exception{ private static final long serialVersionUID = 1L; diff --git a/src/main/java/br/gov/ans/exceptions/ResourceConflictException.java b/src/main/java/br/gov/ans/exceptions/ResourceConflictException.java new file mode 100644 index 0000000..6f095cc --- /dev/null +++ b/src/main/java/br/gov/ans/exceptions/ResourceConflictException.java @@ -0,0 +1,23 @@ +package br.gov.ans.exceptions; + +import javax.ejb.ApplicationException; + +@ApplicationException +public class ResourceConflictException extends Exception{ + + private static final long serialVersionUID = 1L; + + private String message; + + public ResourceConflictException(String message) { + this.message = message; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/src/main/java/br/gov/ans/exceptions/ResourceNotFoundException.java b/src/main/java/br/gov/ans/exceptions/ResourceNotFoundException.java index f4433db..541984c 100644 --- a/src/main/java/br/gov/ans/exceptions/ResourceNotFoundException.java +++ b/src/main/java/br/gov/ans/exceptions/ResourceNotFoundException.java @@ -1,5 +1,8 @@ package br.gov.ans.exceptions; +import javax.ejb.ApplicationException; + +@ApplicationException public class ResourceNotFoundException extends Exception { private static final long serialVersionUID = 1L; diff --git a/src/main/java/br/gov/ans/exceptions/WrappedException.java b/src/main/java/br/gov/ans/exceptions/WrappedException.java index 7808297..0fd1d8c 100644 --- a/src/main/java/br/gov/ans/exceptions/WrappedException.java +++ b/src/main/java/br/gov/ans/exceptions/WrappedException.java @@ -1,5 +1,8 @@ package br.gov.ans.exceptions; +import javax.ejb.ApplicationException; + +@ApplicationException public class WrappedException extends Exception{ private static final long serialVersionUID = 1L; diff --git a/src/main/java/br/gov/ans/exceptions/handlers/EJBExceptionHandler.java b/src/main/java/br/gov/ans/exceptions/handlers/EJBExceptionHandler.java new file mode 100644 index 0000000..a361df7 --- /dev/null +++ b/src/main/java/br/gov/ans/exceptions/handlers/EJBExceptionHandler.java @@ -0,0 +1,40 @@ +package br.gov.ans.exceptions.handlers; + +import static br.gov.ans.utils.HttpHeadersUtil.getAcceptType; + +import javax.ejb.EJBException; +import javax.inject.Inject; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.HttpHeaders; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; +import javax.ws.rs.ext.ExceptionMapper; +import javax.ws.rs.ext.Provider; + +import org.jboss.logging.Logger; + +import br.gov.ans.exceptions.ErrorMessage; +import br.gov.ans.utils.MessageUtils; + +@Provider +public class EJBExceptionHandler implements ExceptionMapper{ + + @Inject + private Logger logger; + + @Context + private HttpHeaders headers; + + @Inject + private MessageUtils messages; + + public Response toResponse(EJBException ex) { + logger.error(ex, ex); + + return Response.status(Status.INTERNAL_SERVER_ERROR) + .entity(new ErrorMessage(messages.getMessage("erro.inesperado"),String.valueOf(Status.INTERNAL_SERVER_ERROR.getStatusCode()))) + .type(getAcceptType(headers)) + .build(); + } + +} diff --git a/src/main/java/br/gov/ans/exceptions/handlers/PersistenceExceptionHandler.java b/src/main/java/br/gov/ans/exceptions/handlers/PersistenceExceptionHandler.java new file mode 100644 index 0000000..8e6fe00 --- /dev/null +++ b/src/main/java/br/gov/ans/exceptions/handlers/PersistenceExceptionHandler.java @@ -0,0 +1,40 @@ +package br.gov.ans.exceptions.handlers; + +import static br.gov.ans.utils.HttpHeadersUtil.getAcceptType; + +import javax.inject.Inject; +import javax.persistence.PersistenceException; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.HttpHeaders; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; +import javax.ws.rs.ext.ExceptionMapper; +import javax.ws.rs.ext.Provider; + +import org.jboss.logging.Logger; + +import br.gov.ans.exceptions.ErrorMessage; +import br.gov.ans.utils.MessageUtils; + +@Provider +public class PersistenceExceptionHandler implements ExceptionMapper{ + + @Inject + private Logger logger; + + @Context + private HttpHeaders headers; + + @Inject + private MessageUtils messages; + + public Response toResponse(PersistenceException ex) { + logger.error(ex, ex); + + return Response.status(Status.INTERNAL_SERVER_ERROR) + .entity(new ErrorMessage(messages.getMessage("erro.inesperado"),String.valueOf(Status.INTERNAL_SERVER_ERROR.getStatusCode()))) + .type(getAcceptType(headers)) + .build(); + } + +} diff --git a/src/main/java/br/gov/ans/exceptions/handlers/ResourceConflictExceptionHandler.java b/src/main/java/br/gov/ans/exceptions/handlers/ResourceConflictExceptionHandler.java new file mode 100644 index 0000000..0e36394 --- /dev/null +++ b/src/main/java/br/gov/ans/exceptions/handlers/ResourceConflictExceptionHandler.java @@ -0,0 +1,35 @@ +package br.gov.ans.exceptions.handlers; + +import static br.gov.ans.utils.HttpHeadersUtil.getAcceptType; + +import javax.inject.Inject; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.HttpHeaders; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; +import javax.ws.rs.ext.ExceptionMapper; +import javax.ws.rs.ext.Provider; + +import org.jboss.logging.Logger; + +import br.gov.ans.exceptions.ErrorMessage; +import br.gov.ans.exceptions.ResourceConflictException; + +@Provider +public class ResourceConflictExceptionHandler implements ExceptionMapper{ + + @Inject + private Logger logger; + + @Context + private HttpHeaders headers; + + public Response toResponse(ResourceConflictException ex) { + logger.error(ex, ex); + + return Response.status(Status.CONFLICT) + .entity(new ErrorMessage(ex.getMessage(),String.valueOf(Status.CONFLICT.getStatusCode()))) + .type(getAcceptType(headers)) + .build(); + } +} diff --git a/src/main/java/br/gov/ans/integracao/sei/client/Assinatura.java b/src/main/java/br/gov/ans/integracao/sei/client/Assinatura.java index c917163..168f83a 100644 --- a/src/main/java/br/gov/ans/integracao/sei/client/Assinatura.java +++ b/src/main/java/br/gov/ans/integracao/sei/client/Assinatura.java @@ -17,16 +17,32 @@ public class Assinatura implements java.io.Serializable { private java.lang.String dataHora; + private java.lang.String idUsuario; + + private java.lang.String idOrigem; + + private java.lang.String idOrgao; + + private java.lang.String sigla; + public Assinatura() { } public Assinatura( java.lang.String nome, java.lang.String cargoFuncao, - java.lang.String dataHora) { + java.lang.String dataHora, + java.lang.String idUsuario, + java.lang.String idOrigem, + java.lang.String idOrgao, + java.lang.String sigla) { this.nome = nome; this.cargoFuncao = cargoFuncao; this.dataHora = dataHora; + this.idUsuario = idUsuario; + this.idOrigem = idOrigem; + this.idOrgao = idOrgao; + this.sigla = sigla; } @@ -89,6 +105,30 @@ public class Assinatura implements java.io.Serializable { this.dataHora = dataHora; } + public java.lang.String getIdUsuario() { + return idUsuario; + } + public void setIdUsuario(java.lang.String idUsuario) { + this.idUsuario = idUsuario; + } + public java.lang.String getIdOrigem() { + return idOrigem; + } + public void setIdOrigem(java.lang.String idOrigem) { + this.idOrigem = idOrigem; + } + public java.lang.String getIdOrgao() { + return idOrgao; + } + public void setIdOrgao(java.lang.String idOrgao) { + this.idOrgao = idOrgao; + } + public java.lang.String getSigla() { + return sigla; + } + public void setSigla(java.lang.String sigla) { + this.sigla = sigla; + } private java.lang.Object __equalsCalc = null; public synchronized boolean equals(java.lang.Object obj) { if (!(obj instanceof Assinatura)) return false; @@ -109,7 +149,19 @@ public class Assinatura implements java.io.Serializable { this.cargoFuncao.equals(other.getCargoFuncao()))) && ((this.dataHora==null && other.getDataHora()==null) || (this.dataHora!=null && - this.dataHora.equals(other.getDataHora()))); + this.dataHora.equals(other.getDataHora()))) && + ((this.idUsuario==null && other.getIdUsuario()==null) || + (this.idUsuario!=null && + this.idUsuario.equals(other.getIdUsuario()))) && + ((this.idOrigem==null && other.getIdOrigem()==null) || + (this.idOrigem!=null && + this.idOrigem.equals(other.getIdOrigem()))) && + ((this.idOrgao==null && other.getIdOrgao()==null) || + (this.idOrgao!=null && + this.idOrgao.equals(other.getIdOrgao()))) && + ((this.sigla==null && other.getSigla()==null) || + (this.sigla!=null && + this.sigla.equals(other.getSigla()))); __equalsCalc = null; return _equals; } @@ -130,6 +182,18 @@ public class Assinatura implements java.io.Serializable { if (getDataHora() != null) { _hashCode += getDataHora().hashCode(); } + if (getIdUsuario() != null) { + _hashCode += getIdUsuario().hashCode(); + } + if (getIdOrigem() != null) { + _hashCode += getIdOrigem().hashCode(); + } + if (getIdOrgao() != null) { + _hashCode += getIdOrgao().hashCode(); + } + if (getSigla() != null) { + _hashCode += getSigla().hashCode(); + } __hashCodeCalc = false; return _hashCode; } @@ -158,6 +222,30 @@ public class Assinatura implements java.io.Serializable { elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string")); elemField.setNillable(false); typeDesc.addFieldDesc(elemField); + elemField = new org.apache.axis.description.ElementDesc(); + elemField.setFieldName("idUsuario"); + elemField.setXmlName(new javax.xml.namespace.QName("", "IdUsuario")); + elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string")); + elemField.setNillable(false); + typeDesc.addFieldDesc(elemField); + elemField = new org.apache.axis.description.ElementDesc(); + elemField.setFieldName("idOrigem"); + elemField.setXmlName(new javax.xml.namespace.QName("", "IdOrigem")); + elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string")); + elemField.setNillable(false); + typeDesc.addFieldDesc(elemField); + elemField = new org.apache.axis.description.ElementDesc(); + elemField.setFieldName("idOrgao"); + elemField.setXmlName(new javax.xml.namespace.QName("", "IdOrgao")); + elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string")); + elemField.setNillable(false); + typeDesc.addFieldDesc(elemField); + elemField = new org.apache.axis.description.ElementDesc(); + elemField.setFieldName("sigla"); + elemField.setXmlName(new javax.xml.namespace.QName("", "Sigla")); + elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string")); + elemField.setNillable(false); + typeDesc.addFieldDesc(elemField); } /** diff --git a/src/main/java/br/gov/ans/integracao/sei/client/Procedimento.java b/src/main/java/br/gov/ans/integracao/sei/client/Procedimento.java index 71e2bd8..c4a4474 100644 --- a/src/main/java/br/gov/ans/integracao/sei/client/Procedimento.java +++ b/src/main/java/br/gov/ans/integracao/sei/client/Procedimento.java @@ -376,13 +376,13 @@ public class Procedimento implements java.io.Serializable { elemField.setFieldName("observacao"); elemField.setXmlName(new javax.xml.namespace.QName("", "Observacao")); elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setNillable(false); + elemField.setNillable(true); typeDesc.addFieldDesc(elemField); elemField = new org.apache.axis.description.ElementDesc(); elemField.setFieldName("nivelAcesso"); elemField.setXmlName(new javax.xml.namespace.QName("", "NivelAcesso")); elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setNillable(false); + elemField.setNillable(true); typeDesc.addFieldDesc(elemField); elemField = new org.apache.axis.description.ElementDesc(); elemField.setFieldName("idHipoteseLegal"); diff --git a/src/main/java/br/gov/ans/integracao/sei/client/SeiPortTypeProxy.java b/src/main/java/br/gov/ans/integracao/sei/client/SeiPortTypeProxy.java index f884488..ba30f46 100644 --- a/src/main/java/br/gov/ans/integracao/sei/client/SeiPortTypeProxy.java +++ b/src/main/java/br/gov/ans/integracao/sei/client/SeiPortTypeProxy.java @@ -336,25 +336,17 @@ public class SeiPortTypeProxy implements br.gov.ans.integracao.sei.client.SeiPor identificacaoServico, idUnidade, idArquivoExtensao); } - public java.lang.String enviarProcesso(java.lang.String siglaSistema, - java.lang.String identificacaoServico, java.lang.String idUnidade, - java.lang.String protocoloProcedimento, - java.lang.String[] unidadesDestino, - java.lang.String sinManterAbertoUnidade, - java.lang.String sinRemoverAnotacao, - java.lang.String sinEnviarEmailNotificacao, - java.lang.String dataRetornoProgramado, - java.lang.String diasRetornoProgramado, - java.lang.String sinDiasUteisRetornoProgramado, + public java.lang.String enviarProcesso(java.lang.String siglaSistema, java.lang.String identificacaoServico, + java.lang.String idUnidade, java.lang.String protocoloProcedimento, java.lang.String[] unidadesDestino, + java.lang.String sinManterAbertoUnidade, java.lang.String sinRemoverAnotacao, + java.lang.String sinEnviarEmailNotificacao, java.lang.String dataRetornoProgramado, + java.lang.String diasRetornoProgramado, java.lang.String sinDiasUteisRetornoProgramado, java.lang.String sinReabrir) throws java.rmi.RemoteException { if (seiPortType == null) _initSeiPortTypeProxy(); - return seiPortType.enviarProcesso(siglaSistema, identificacaoServico, - idUnidade, protocoloProcedimento, unidadesDestino, - sinManterAbertoUnidade, sinRemoverAnotacao, - sinEnviarEmailNotificacao, dataRetornoProgramado, - diasRetornoProgramado, sinDiasUteisRetornoProgramado, - sinReabrir); + return seiPortType.enviarProcesso(siglaSistema, identificacaoServico, idUnidade, protocoloProcedimento, + unidadesDestino, sinManterAbertoUnidade, sinRemoverAnotacao, sinEnviarEmailNotificacao, + dataRetornoProgramado, diasRetornoProgramado, sinDiasUteisRetornoProgramado, sinReabrir); } public br.gov.ans.integracao.sei.client.Usuario[] listarUsuarios( diff --git a/src/main/java/br/gov/ans/integracao/sei/client/Usuario.java b/src/main/java/br/gov/ans/integracao/sei/client/Usuario.java index b086d75..b101962 100644 --- a/src/main/java/br/gov/ans/integracao/sei/client/Usuario.java +++ b/src/main/java/br/gov/ans/integracao/sei/client/Usuario.java @@ -89,30 +89,19 @@ public class Usuario implements java.io.Serializable { this.nome = nome; } - private java.lang.Object __equalsCalc = null; - public synchronized boolean equals(java.lang.Object obj) { - if (!(obj instanceof Usuario)) return false; - Usuario other = (Usuario) obj; - if (obj == null) return false; - if (this == obj) return true; - if (__equalsCalc != null) { - return (__equalsCalc == obj); - } - __equalsCalc = obj; - boolean _equals; - _equals = true && - ((this.idUsuario==null && other.getIdUsuario()==null) || - (this.idUsuario!=null && - this.idUsuario.equals(other.getIdUsuario()))) && - ((this.sigla==null && other.getSigla()==null) || - (this.sigla!=null && - this.sigla.equals(other.getSigla()))) && - ((this.nome==null && other.getNome()==null) || - (this.nome!=null && - this.nome.equals(other.getNome()))); - __equalsCalc = null; - return _equals; - } + public synchronized boolean equals(java.lang.Object obj) { + if (!(obj instanceof Usuario)){ + return false; + } + + Usuario other = (Usuario) obj; + + if(this.getSigla().equals(other.getSigla())){ + return true; + } + + return false; + } private boolean __hashCodeCalc = false; public synchronized int hashCode() { diff --git a/src/main/java/br/gov/ans/integracao/sei/dao/DocumentoDAO.java b/src/main/java/br/gov/ans/integracao/sei/dao/DocumentoDAO.java index 47bafb2..2645044 100644 --- a/src/main/java/br/gov/ans/integracao/sei/dao/DocumentoDAO.java +++ b/src/main/java/br/gov/ans/integracao/sei/dao/DocumentoDAO.java @@ -3,10 +3,12 @@ package br.gov.ans.integracao.sei.dao; import static br.gov.ans.integracao.sei.utils.Util.setPaginacaoQuery; import static br.gov.ans.integracao.sei.utils.Util.setQueryParameters; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import javax.persistence.EntityManager; +import javax.persistence.NoResultException; import javax.persistence.PersistenceContext; import javax.persistence.PersistenceContextType; import javax.persistence.Query; @@ -14,13 +16,14 @@ import javax.persistence.Query; import org.apache.commons.lang3.StringUtils; import br.gov.ans.integracao.sei.modelo.DocumentoResumido; +import br.gov.ans.integracao.sei.modelo.ProcessoResumido; public class DocumentoDAO { @PersistenceContext(unitName = "sei_pu", type = PersistenceContextType.EXTENDED) private EntityManager em; @SuppressWarnings("unchecked") - public List getDocumentos(String interessado, String unidade, Integer pagina, Integer qtdRegistros){ + public List getDocumentosV1(String interessado, String unidade, Integer pagina, Integer qtdRegistros){ HashMap parametros = new HashMap(); StringBuilder builder = new StringBuilder("SELECT "); @@ -43,7 +46,7 @@ public class DocumentoDAO { builder.append("order by pr.dta_geracao asc"); - Query query = em.createNativeQuery(builder.toString(), DocumentoResumido.class); + Query query = em.createNativeQuery(builder.toString(), "DocumentoResumidoMapping"); setQueryParameters(query, parametros); @@ -52,52 +55,153 @@ public class DocumentoDAO { return query.getResultList(); } - public Long countDocumentos(String interessado, String unidade){ + public List getDocumentos(String interessado, String codigoTipo, Integer pagina, Integer qtdRegistros, boolean somenteAssinados, boolean ordemCrescente, + boolean orderByProcesso){ HashMap parametros = new HashMap(); + + StringBuilder builder = new StringBuilder("SELECT pr.protocolo_formatado_pesquisa numero, s.nome tipoNome, s.id_serie tipoCodigo, d.numero numeroInformado, "); + builder.append("CASE pr.sta_protocolo WHEN 'G' THEN 'GERADO' ELSE 'RECEBIDO' END origem, d.id_tipo_conferencia tipoConferencia, "); + builder.append("pr.dta_geracao dataGeracao, pr2.protocolo_formatado as processo, u.sigla as unidade, "); + builder.append("CASE WHEN a.id_assinatura is null THEN false ELSE true END assinado "); + builder.append("FROM documento AS d "); + - StringBuilder builder = new StringBuilder("SELECT "); - builder.append("COUNT(*) "); - builder.append("FROM participante p, protocolo pr, documento d, contato c, serie s, unidade u "); - builder.append("WHERE p.id_contato = c.id_contato AND p.id_protocolo = pr.id_protocolo AND p.id_protocolo = d.id_documento "); - builder.append("AND p.id_unidade = u.id_unidade AND d.id_serie = s.id_serie "); - - if(StringUtils.isNotBlank(interessado)){ - builder.append("AND c.sigla = :interessado "); - parametros.put("interessado", interessado); + if(somenteAssinados){ + builder.append("RIGHT JOIN assinatura AS a ON d.id_documento = a.id_documento "); + }else{ + builder.append("LEFT JOIN assinatura AS a ON d.id_documento = a.id_documento "); + } + + builder.append("JOIN participante p ON p.id_protocolo = d.id_documento "); + builder.append("JOIN protocolo AS pr ON pr.id_protocolo = d.id_documento "); + builder.append("JOIN protocolo AS pr2 ON pr2.id_protocolo = d.id_procedimento "); + builder.append("JOIN serie AS s ON d.id_serie = s.id_serie "); + builder.append("JOIN unidade AS u ON u.id_unidade = d.id_unidade_responsavel "); + builder.append("WHERE p.id_contato in (select c.id_contato from contato c where c.sigla = :interessado) "); + parametros.put("interessado", interessado); + + if(StringUtils.isNotBlank(codigoTipo)){ + builder.append("AND s.id_serie in (:codigoTipo)"); + parametros.put("codigoTipo", codigoTipo); + } + + builder.append("GROUP BY numero "); + + if(orderByProcesso){ + builder.append("ORDER BY processo "); + }else{ + builder.append("ORDER BY pr.dta_geracao "); + } + + if(!ordemCrescente){ + builder.append("DESC"); } - if(StringUtils.isNotBlank(unidade)){ - builder.append("AND u.sigla = :unidade "); - parametros.put("unidade", unidade); + Query query = em.createNativeQuery(builder.toString(), "DocumentoResumidoMapping"); + + setQueryParameters(query, parametros); + + setPaginacaoQuery(query, pagina, qtdRegistros); + + List results = query.getResultList(); + + List documentos = new ArrayList(); + + results.stream().forEach((record) -> { + DocumentoResumido documento = (DocumentoResumido) record[0]; + documentos.add(documento); + }); + + return documentos; + } + + public Long countDocumentos(String interessado, String codigoTipo, boolean somenteAssinados){ + HashMap parametros = new HashMap(); + + StringBuilder builder = new StringBuilder("SELECT count(*) "); + builder.append("FROM documento AS d "); + + + if(somenteAssinados){ + builder.append("RIGHT JOIN assinatura AS a ON d.id_documento = a.id_documento "); + }else{ + builder.append("LEFT JOIN assinatura AS a ON d.id_documento = a.id_documento "); } + + builder.append("JOIN participante p ON p.id_protocolo = d.id_documento "); + builder.append("JOIN protocolo AS pr ON pr.id_protocolo = d.id_documento "); + builder.append("JOIN protocolo AS pr2 ON pr2.id_protocolo = d.id_procedimento "); + builder.append("JOIN serie AS s ON d.id_serie = s.id_serie "); + builder.append("JOIN unidade AS u ON u.id_unidade = d.id_unidade_responsavel "); + builder.append("WHERE p.id_contato in (select c.id_contato from contato c where c.sigla = :interessado) "); + parametros.put("interessado", interessado); + + if(StringUtils.isNotBlank(codigoTipo)){ + builder.append("AND s.id_serie in (:codigoTipo)"); + parametros.put("codigoTipo", codigoTipo); + } + + builder.append("GROUP BY pr.protocolo_formatado_pesquisa "); Query query = em.createNativeQuery(builder.toString()); setQueryParameters(query, parametros); - - return Long.valueOf(query.getSingleResult().toString()); + + try{ + return Long.valueOf(query.getSingleResult().toString()); + }catch(NoResultException ex){ + return 0L; + } } @SuppressWarnings("unchecked") - public List getDocumentosProcesso(String processo){ + public List getDocumentosProcesso(String idProcedimento, String codigoTipo, String origem, boolean somenteAssinados){ HashMap parametros = new HashMap(); - StringBuilder builder = new StringBuilder("SELECT pr.protocolo_formatado_pesquisa numero, s.nome tipo, d.numero numeroInformado, "); - builder.append("CASE pr.sta_protocolo WHEN 'G' THEN 'GERADO' ELSE 'RECEBIDO' END origem, "); - builder.append("pr.dta_geracao dataGeracao, null as processo, null as unidade "); - builder.append("FROM protocolo pr, documento d, serie s "); - builder.append("WHERE d.id_serie = s.id_serie "); - builder.append("AND pr.id_protocolo = d.id_documento "); - builder.append("AND d.id_procedimento = (SELECT id_protocolo FROM protocolo WHERE protocolo_formatado = :processo) "); - - parametros.put("processo", processo); + StringBuilder builder = new StringBuilder("SELECT pr.protocolo_formatado_pesquisa numero, s.nome tipoNome, s.id_serie tipoCodigo, d.numero numeroInformado, "); + builder.append("CASE pr.sta_protocolo WHEN 'G' THEN 'GERADO' ELSE 'RECEBIDO' END origem, d.id_tipo_conferencia tipoConferencia, "); + builder.append("pr.dta_geracao dataGeracao, null as processo, null as unidade, "); + builder.append("CASE WHEN a.id_assinatura is null THEN false ELSE true END assinado "); + builder.append("FROM documento AS d "); + + if(somenteAssinados){ + builder.append("RIGHT JOIN assinatura AS a ON d.id_documento = a.id_documento "); + }else{ + builder.append("LEFT JOIN assinatura AS a ON d.id_documento = a.id_documento "); + } - builder.append("ORDER BY pr.dta_geracao ASC"); + builder.append("JOIN protocolo AS pr ON pr.id_protocolo = d.id_documento "); + builder.append("JOIN serie AS s ON d.id_serie = s.id_serie "); + builder.append("WHERE d.id_procedimento = :idProcedimento "); - Query query = em.createNativeQuery(builder.toString(), DocumentoResumido.class); + parametros.put("idProcedimento", idProcedimento); + + if(StringUtils.isNotBlank(codigoTipo)){ + builder.append("AND s.id_serie in (:codigoTipo) "); + parametros.put("codigoTipo", codigoTipo); + } + + if(StringUtils.isNotBlank(origem)){ + builder.append("AND pr.sta_protocolo = :origem "); + parametros.put("origem", origem); + } + + builder.append("GROUP BY numero ORDER BY pr.dta_geracao ASC"); + + Query query = em.createNativeQuery(builder.toString(), "DocumentoResumidoMapping"); setQueryParameters(query, parametros); - return query.getResultList(); + List results = query.getResultList(); + + List documentos = new ArrayList(); + + results.stream().forEach((record) -> { + DocumentoResumido documento = (DocumentoResumido) record[0]; + documentos.add(documento); + }); + + return documentos; } + } diff --git a/src/main/java/br/gov/ans/integracao/sei/dao/DocumentoSiparDAO.java b/src/main/java/br/gov/ans/integracao/sei/dao/DocumentoSiparDAO.java deleted file mode 100644 index ee4181a..0000000 --- a/src/main/java/br/gov/ans/integracao/sei/dao/DocumentoSiparDAO.java +++ /dev/null @@ -1,33 +0,0 @@ -package br.gov.ans.integracao.sei.dao; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.inject.Inject; - -import br.gov.ans.dao.DAO; -import br.gov.ans.integracao.sei.modelo.DocumentoSipar; - -public class DocumentoSiparDAO { - - @SuppressWarnings("cdi-ambiguous-dependency") - @Inject - private DAO dao; - - public DocumentoSipar getDocumento(String numeroDocumento, String anoDocumento, String digitoDocumento){ - - Map params = new HashMap(); - params.put("numeroDocumento", numeroDocumento); - params.put("anoDocumento", anoDocumento); - params.put("digitoDocumento", digitoDocumento); - - List resultado = dao.executeNamedQuery("documentoPorNumeroAnoDigito", params); - - if(resultado.isEmpty()){ - return null; - } - - return resultado.get(0); - } -} diff --git a/src/main/java/br/gov/ans/integracao/sei/dao/ProcessoDAO.java b/src/main/java/br/gov/ans/integracao/sei/dao/ProcessoDAO.java index c23fcca..e76766c 100644 --- a/src/main/java/br/gov/ans/integracao/sei/dao/ProcessoDAO.java +++ b/src/main/java/br/gov/ans/integracao/sei/dao/ProcessoDAO.java @@ -3,6 +3,8 @@ package br.gov.ans.integracao.sei.dao; import static br.gov.ans.integracao.sei.utils.Util.setPaginacaoQuery; import static br.gov.ans.integracao.sei.utils.Util.setQueryParameters; +import java.math.BigInteger; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -21,26 +23,45 @@ public class ProcessoDAO { private EntityManager em; @SuppressWarnings("unchecked") - public List getProcessos(String interessado, String unidade, Integer pagina, Integer qtdRegistros){ + public List getProcessos(String interessado, String unidade, String tipoProcesso, Integer pagina, Integer qtdRegistros, boolean crescente){ HashMap parametros = new HashMap(); + + StringBuilder builder = new StringBuilder("SELECT pr.protocolo_formatado_pesquisa numero, pr.protocolo_formatado numeroFormatado, pr.descricao, proc.id_tipo_procedimento tipoCodigo, "); + builder.append("tp.nome tipoNome, u.sigla as unidade, pr.dta_geracao dataGeracao "); + builder.append("FROM protocolo pr, tipo_procedimento tp, participante p "); + + if(StringUtils.isNotBlank(interessado)){ + builder.append("JOIN contato c ON c.id_contato = p.id_contato "); + } - StringBuilder builder = new StringBuilder("SELECT "); - builder.append("pr.descricao, u.sigla as unidade, pr.protocolo_formatado_pesquisa protocolo, pr.protocolo_formatado, pr.dta_geracao data_geracao "); - builder.append("FROM participante p, protocolo pr, contato c, unidade u "); - builder.append("WHERE " ); - builder.append("p.id_contato = c.id_contato AND p.id_protocolo = pr.id_protocolo AND p.id_unidade = u.id_unidade AND pr.sta_protocolo = 'P' "); + builder.append("JOIN unidade u ON u.id_unidade = p.id_unidade "); + builder.append("JOIN procedimento proc ON proc.id_procedimento = p.id_protocolo "); + builder.append("WHERE pr.sta_protocolo = 'P' AND p.id_protocolo = pr.id_protocolo "); if(StringUtils.isNotBlank(interessado)){ builder.append("AND c.sigla = :interessado "); parametros.put("interessado", interessado); } - if(StringUtils.isNotBlank(unidade)){ - builder.append("AND u.sigla = :unidade "); + if(StringUtils.isNoneBlank(tipoProcesso)){ + builder.append("AND proc.id_tipo_procedimento = :tipoProcesso "); + parametros.put("tipoProcesso", tipoProcesso); + } + + builder.append("AND tp.id_tipo_procedimento = proc.id_tipo_procedimento "); + + if(StringUtils.isNoneBlank(unidade)){ + builder.append("AND p.id_unidade = :unidade "); parametros.put("unidade", unidade); } - builder.append("order by pr.dta_geracao asc"); + builder.append("group by pr.protocolo_formatado_pesquisa "); + + if(crescente){ + builder.append("order by pr.dta_geracao asc"); + }else{ + builder.append("order by pr.dta_geracao desc"); + } Query query = em.createNativeQuery(builder.toString(), "ProcessoResumidoMapping"); @@ -48,25 +69,46 @@ public class ProcessoDAO { setPaginacaoQuery(query, pagina, qtdRegistros); - return query.getResultList(); + List results = query.getResultList(); + + List processos = new ArrayList(); + + results.stream().forEach((record) -> { + ProcessoResumido processo = (ProcessoResumido) record[0]; + processos.add(processo); + }); + + return processos; } - public Long countProcessos(String interessado, String unidade){ + public Long countProcessos(String interessado, String unidade, String tipoProcesso){ HashMap parametros = new HashMap(); + + StringBuilder builder = new StringBuilder("SELECT count(DISTINCT pr.protocolo_formatado_pesquisa) "); + builder.append("FROM protocolo pr, tipo_procedimento tp, participante p "); + + if(StringUtils.isNotBlank(interessado)){ + builder.append("JOIN contato c ON c.id_contato = p.id_contato "); + } - StringBuilder builder = new StringBuilder("SELECT "); - builder.append("COUNT(*) "); - builder.append("FROM participante p, protocolo pr, contato c, unidade u "); - builder.append("WHERE " ); - builder.append("p.id_contato = c.id_contato AND p.id_protocolo = pr.id_protocolo AND p.id_unidade = u.id_unidade AND pr.sta_protocolo = 'P' "); + builder.append("JOIN unidade u ON u.id_unidade = p.id_unidade "); + builder.append("JOIN procedimento proc ON proc.id_procedimento = p.id_protocolo "); + builder.append("WHERE pr.sta_protocolo = 'P' AND p.id_protocolo = pr.id_protocolo "); if(StringUtils.isNotBlank(interessado)){ builder.append("AND c.sigla = :interessado "); parametros.put("interessado", interessado); } - if(StringUtils.isNotBlank(unidade)){ - builder.append("AND u.sigla = :unidade "); + if(StringUtils.isNoneBlank(tipoProcesso)){ + builder.append("AND proc.id_tipo_procedimento = :tipoProcesso "); + parametros.put("tipoProcesso", tipoProcesso); + } + + builder.append("AND tp.id_tipo_procedimento = proc.id_tipo_procedimento "); + + if(StringUtils.isNoneBlank(unidade)){ + builder.append("AND p.id_unidade = :unidade "); parametros.put("unidade", unidade); } @@ -76,4 +118,18 @@ public class ProcessoDAO { return Long.valueOf(query.getSingleResult().toString()); } + + + public BigInteger getIdProcedimento(String processo){ + HashMap parametros = new HashMap(); + String sql = "SELECT id_protocolo FROM protocolo WHERE protocolo_formatado = :processo"; + + parametros.put("processo", processo); + + Query query = em.createNativeQuery(sql); + + setQueryParameters(query, parametros); + + return (BigInteger) query.getSingleResult(); + } } diff --git a/src/main/java/br/gov/ans/integracao/sei/dao/SiparDAO.java b/src/main/java/br/gov/ans/integracao/sei/dao/SiparDAO.java new file mode 100644 index 0000000..d5fc73a --- /dev/null +++ b/src/main/java/br/gov/ans/integracao/sei/dao/SiparDAO.java @@ -0,0 +1,49 @@ +package br.gov.ans.integracao.sei.dao; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.ejb.Stateless; +import javax.inject.Inject; + +import br.gov.ans.dao.DAO; +import br.gov.ans.integracao.sipar.dao.ControleMigracao; +import br.gov.ans.integracao.sipar.dao.ControleMigracaoId; +import br.gov.ans.integracao.sipar.dao.DocumentoSipar; + +@Stateless +public class SiparDAO { + + @SuppressWarnings("cdi-ambiguous-dependency") + @Inject + private DAO daoDocumento; + + @Inject + private DAO daoMigracao; + + public DocumentoSipar getDocumento(String numeroDocumento, String anoDocumento, String digitoDocumento){ + + Map params = new HashMap(); + params.put("numeroDocumento", numeroDocumento); + params.put("anoDocumento", anoDocumento); + params.put("digitoDocumento", digitoDocumento); + + List resultado = daoDocumento.executeNamedQuery("documentoPorNumeroAnoDigito", params); + + if(resultado.isEmpty()){ + return null; + } + + return resultado.get(0); + } + + public ControleMigracao buscaProcessoImportado(ControleMigracaoId id){ + return daoMigracao.findById(id); + } + + public void merge(ControleMigracao controleMigracao){ + daoMigracao.merge(controleMigracao); + } + +} diff --git a/src/main/java/br/gov/ans/integracao/sei/modelo/DocumentoResumido.java b/src/main/java/br/gov/ans/integracao/sei/modelo/DocumentoResumido.java index 1f794c3..ccdf209 100644 --- a/src/main/java/br/gov/ans/integracao/sei/modelo/DocumentoResumido.java +++ b/src/main/java/br/gov/ans/integracao/sei/modelo/DocumentoResumido.java @@ -6,42 +6,46 @@ import javax.persistence.Entity; import javax.persistence.EntityResult; import javax.persistence.FieldResult; import javax.persistence.Id; +import javax.persistence.OneToOne; import javax.persistence.SqlResultSetMapping; import javax.xml.bind.annotation.XmlRootElement; +import org.codehaus.jackson.map.annotate.JsonSerialize; + @XmlRootElement @Entity @SqlResultSetMapping(name = "DocumentoResumidoMapping", entities = { @EntityResult(entityClass = DocumentoResumido.class, fields = { @FieldResult(name = "numero", column = "numero"), - @FieldResult(name = "tipo", column = "tipo"), @FieldResult(name = "numeroInformado", column = "numeroInformado"), + @FieldResult(name = "unidade", column = "unidade"), @FieldResult(name = "origem", column = "origem"), - @FieldResult(name = "dataGeracao", column = "dataGeracao") }) }) + @FieldResult(name = "processo", column = "processo"), + @FieldResult(name = "tipoConferencia", column = "tipoConferencia"), + @FieldResult(name = "assinado", column = "assinado"), + @FieldResult(name = "dataGeracao", column = "dataGeracao"), + @FieldResult(name = "tipo", column = "tipoCodigo") + }), + @EntityResult( + entityClass = Tipo.class, + fields = { + @FieldResult(name = "codigo", column = "tipoCodigo"), + @FieldResult(name = "nome", column = "tipoNome")}) + }) +@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) public class DocumentoResumido { @Id private String numero; private String numeroInformado; - private String tipo; private String unidade; private String origem; private Date dataGeracao; private String processo; - - public DocumentoResumido(){ - - } - - public DocumentoResumido(String numero, String tipo, String numeroInformado, String origem, Date dataGeracao){ - this.numero = numero; - this.tipo = tipo; - this.numeroInformado = numeroInformado; - this.origem = origem; - this.dataGeracao = dataGeracao; - } - - - @Id + @OneToOne + private Tipo tipo; + private String tipoConferencia; + private boolean assinado; + public String getNumero() { return numero; } @@ -50,11 +54,11 @@ public class DocumentoResumido { this.numero = numero; } - public String getTipo() { + public Tipo getTipo() { return tipo; } - public void setTipo(String tipo) { + public void setTipo(Tipo tipo) { this.tipo = tipo; } @@ -98,4 +102,20 @@ public class DocumentoResumido { this.numeroInformado = numeroInformado; } + public String getTipoConferencia() { + return tipoConferencia; + } + + public void setTipoConferencia(String tipoConferencia) { + this.tipoConferencia = tipoConferencia; + } + + public boolean isAssinado() { + return assinado; + } + + public void setAssinado(boolean assinado) { + this.assinado = assinado; + } + } diff --git a/src/main/java/br/gov/ans/integracao/sei/modelo/DocumentoSipar.java b/src/main/java/br/gov/ans/integracao/sei/modelo/DocumentoSipar.java deleted file mode 100644 index c63461c..0000000 --- a/src/main/java/br/gov/ans/integracao/sei/modelo/DocumentoSipar.java +++ /dev/null @@ -1,130 +0,0 @@ -package br.gov.ans.integracao.sei.modelo; - -import java.util.Date; - -import javax.persistence.Entity; -import javax.persistence.EntityResult; -import javax.persistence.FieldResult; -import javax.persistence.Id; -import javax.persistence.NamedNativeQuery; -import javax.persistence.SqlResultSetMapping; - -@Entity -@SqlResultSetMapping(name="DocumentoSiparMapping", entities={ - @EntityResult(entityClass = DocumentoSipar.class, - fields = { - @FieldResult(name = "digito", column = "NU_DIGITO_DOCUMENTO"), - @FieldResult(name = "operadora", column = "CO_OPERADORA"), - @FieldResult(name = "emissao", column = "DT_EMISSAO_DOCUMENTO"), - @FieldResult(name = "registro", column = "DT_REGISTRO"), - @FieldResult(name = "tipo", column = "CO_TIPO_DOCUMENTO"), - @FieldResult(name = "resumo", column = "DS_RESUMO_DOCUMENTO"), - @FieldResult(name = "orgaoPosse", column = "CO_ORGAO_POSSE"), - @FieldResult(name = "orgaoOrigem", column = "CO_ORGAO_ORIGEM"), - @FieldResult(name = "orgaoRegistro", column = "CO_ORGAO_REGISTRO"), - @FieldResult(name = "assunto", column = "CO_ASSUNTO") - }) -}) -@NamedNativeQuery(name = "documentoPorNumeroAnoDigito", resultSetMapping = "DocumentoSiparMapping", -query = "SELECT TB.NU_DIGITO_DOCUMENTO, TB.CO_OPERADORA, TB.DT_EMISSAO_DOCUMENTO, TB.DT_REGISTRO, TB.CO_TIPO_DOCUMENTO, " - + "TB.DS_RESUMO_DOCUMENTO, TB.CO_ORGAO_POSSE, TB.CO_ORGAO_ORIGEM, TB.CO_ORGAO_REGISTRO, RL.CO_ASSUNTO " - + "FROM DBPSIPAR.TB_DOCUMENTO TB " - + "LEFT JOIN DBPSIPAR.RL_ASSUNTO_DOCUMENTO RL ON RL.CO_DOCUMENTO = TB.CO_SEQ_DOCUMENTO " - + "AND RL.NU_ANO_DOCUMENTO = TB.NU_ANO_DOCUMENTO " - + "WHERE TB.CO_SEQ_DOCUMENTO = :numeroDocumento " - + "AND TB.NU_ANO_DOCUMENTO = :anoDocumento " - + "AND TB.NU_DIGITO_DOCUMENTO = :digitoDocumento") -public class DocumentoSipar { - @Id - private String digito; - private String operadora; - private Date emissao; - private Date registro; - private String tipo; - private String resumo; - private Long orgaoPosse; - private Long orgaoOrigem; - private Long orgaoRegistro; - private Long assunto; - - public String getDigito() { - return digito; - } - - public void setDigito(String digito) { - this.digito = digito; - } - - public Long getAssunto() { - return assunto; - } - - public void setAssunto(Long assunto) { - this.assunto = assunto; - } - - public String getOperadora() { - return operadora; - } - - public void setOperadora(String operadora) { - this.operadora = operadora; - } - - public Date getEmissao() { - return emissao; - } - - public void setEmissao(Date emissao) { - this.emissao = emissao; - } - - public String getTipo() { - return tipo; - } - - public void setTipo(String tipo) { - this.tipo = tipo; - } - - public String getResumo() { - return resumo; - } - - public void setResumo(String resumo) { - this.resumo = resumo; - } - - public Long getOrgaoPosse() { - return orgaoPosse; - } - - public void setOrgaoPosse(Long orgaoPosse) { - this.orgaoPosse = orgaoPosse; - } - - public Long getOrgaoOrigem() { - return orgaoOrigem; - } - - public void setOrgaoOrigem(Long orgaoOrigem) { - this.orgaoOrigem = orgaoOrigem; - } - - public Long getOrgaoRegistro() { - return orgaoRegistro; - } - - public void setOrgaoRegistro(Long orgaoRegistro) { - this.orgaoRegistro = orgaoRegistro; - } - - public Date getRegistro() { - return registro; - } - - public void setRegistro(Date registro) { - this.registro = registro; - } - -} diff --git a/src/main/java/br/gov/ans/integracao/sei/modelo/ProcessoResumido.java b/src/main/java/br/gov/ans/integracao/sei/modelo/ProcessoResumido.java index 93cace1..090fd21 100644 --- a/src/main/java/br/gov/ans/integracao/sei/modelo/ProcessoResumido.java +++ b/src/main/java/br/gov/ans/integracao/sei/modelo/ProcessoResumido.java @@ -6,17 +6,29 @@ import javax.persistence.Entity; import javax.persistence.EntityResult; import javax.persistence.FieldResult; import javax.persistence.Id; +import javax.persistence.OneToOne; import javax.persistence.SqlResultSetMapping; import javax.xml.bind.annotation.XmlRootElement; +import org.codehaus.jackson.map.annotate.JsonSerialize; + @XmlRootElement @Entity @SqlResultSetMapping(name = "ProcessoResumidoMapping", entities = { @EntityResult(entityClass = ProcessoResumido.class, fields = { - @FieldResult(name = "numero", column = "protocolo"), - @FieldResult(name = "numeroFormatado", column = "protocolo_formatado"), + @FieldResult(name = "numero", column = "numero"), + @FieldResult(name = "numeroFormatado", column = "numeroFormatado"), @FieldResult(name = "descricao", column = "descricao"), @FieldResult(name = "unidade", column = "unidade"), - @FieldResult(name = "dataGeracao", column = "data_geracao") }) }) + @FieldResult(name = "dataGeracao", column = "dataGeracao"), + @FieldResult(name = "tipo", column = "tipoCodigo") + }), + @EntityResult( + entityClass = Tipo.class, + fields = { + @FieldResult(name = "codigo", column = "tipoCodigo"), + @FieldResult(name = "nome", column = "tipoNome")}) + }) +@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) public class ProcessoResumido { @Id @@ -25,6 +37,8 @@ public class ProcessoResumido { private String descricao; private String unidade; private Date dataGeracao; + @OneToOne + private Tipo tipo; public String getNumero() { return numero; @@ -66,4 +80,11 @@ public class ProcessoResumido { this.dataGeracao = dataGeracao; } + public Tipo getTipo() { + return tipo; + } + + public void setTipo(Tipo tipo) { + this.tipo = tipo; + } } diff --git a/src/main/java/br/gov/ans/integracao/sei/modelo/ResultadoConsultaDocumento.java b/src/main/java/br/gov/ans/integracao/sei/modelo/ResultadoConsultaDocumento.java index 80f7d4c..d299234 100644 --- a/src/main/java/br/gov/ans/integracao/sei/modelo/ResultadoConsultaDocumento.java +++ b/src/main/java/br/gov/ans/integracao/sei/modelo/ResultadoConsultaDocumento.java @@ -3,6 +3,7 @@ package br.gov.ans.integracao.sei.modelo; import javax.xml.bind.annotation.XmlRootElement; import br.gov.ans.integracao.sei.client.RetornoConsultaDocumento; +import br.gov.ans.integracao.sipar.dao.DocumentoSipar; @XmlRootElement public class ResultadoConsultaDocumento { diff --git a/src/main/java/br/gov/ans/integracao/sei/modelo/ResultadoConsultaProcesso.java b/src/main/java/br/gov/ans/integracao/sei/modelo/ResultadoConsultaProcesso.java index bbdfb09..3f323fd 100644 --- a/src/main/java/br/gov/ans/integracao/sei/modelo/ResultadoConsultaProcesso.java +++ b/src/main/java/br/gov/ans/integracao/sei/modelo/ResultadoConsultaProcesso.java @@ -3,6 +3,7 @@ package br.gov.ans.integracao.sei.modelo; import javax.xml.bind.annotation.XmlRootElement; import br.gov.ans.integracao.sei.client.RetornoConsultaProcedimento; +import br.gov.ans.integracao.sipar.dao.DocumentoSipar; @XmlRootElement public class ResultadoConsultaProcesso { diff --git a/src/main/java/br/gov/ans/integracao/sei/modelo/Tipo.java b/src/main/java/br/gov/ans/integracao/sei/modelo/Tipo.java new file mode 100644 index 0000000..6ac765f --- /dev/null +++ b/src/main/java/br/gov/ans/integracao/sei/modelo/Tipo.java @@ -0,0 +1,34 @@ +package br.gov.ans.integracao.sei.modelo; + +import javax.persistence.Entity; +import javax.persistence.EntityResult; +import javax.persistence.FieldResult; +import javax.persistence.Id; +import javax.persistence.SqlResultSetMapping; +import javax.xml.bind.annotation.XmlRootElement; + +@Entity +//@SqlResultSetMapping(name = "TipoMapping", entities = { @EntityResult(entityClass = Tipo.class, fields = { +// @FieldResult(name = "codigo", column = "tipoCodigo"), @FieldResult(name = "nome", column = "tipoNome") }) }) +@XmlRootElement +public class Tipo { + @Id + private String codigo; + private String nome; + + public String getCodigo() { + return codigo; + } + + public void setCodigo(String codigo) { + this.codigo = codigo; + } + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } +} diff --git a/src/main/java/br/gov/ans/integracao/sei/modelo/TipoDocumento.java b/src/main/java/br/gov/ans/integracao/sei/modelo/TipoDocumento.java new file mode 100644 index 0000000..0f13b97 --- /dev/null +++ b/src/main/java/br/gov/ans/integracao/sei/modelo/TipoDocumento.java @@ -0,0 +1,39 @@ +package br.gov.ans.integracao.sei.modelo; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement +public class TipoDocumento { + private String identificador; + private String nome; + private String aplicabilidade; + + public TipoDocumento(){} + + public TipoDocumento(String identificador, String nome, String aplicabilidade){ + this.identificador = identificador; + this.nome = nome; + this.aplicabilidade = aplicabilidade; + } + + public String getIdentificador() { + return identificador; + } + public void setIdentificador(String identificador) { + this.identificador = identificador; + } + public String getNome() { + return nome; + } + public void setNome(String nome) { + this.nome = nome; + } + + public String getAplicabilidade() { + return aplicabilidade; + } + + public void setAplicabilidade(String aplicabilidade) { + this.aplicabilidade = aplicabilidade; + } +} diff --git a/src/main/java/br/gov/ans/integracao/sei/modelo/UsuarioProjeto.java b/src/main/java/br/gov/ans/integracao/sei/modelo/UsuarioProjeto.java deleted file mode 100644 index c529d91..0000000 --- a/src/main/java/br/gov/ans/integracao/sei/modelo/UsuarioProjeto.java +++ /dev/null @@ -1,112 +0,0 @@ -package br.gov.ans.integracao.sei.modelo; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.NamedQueries; -import javax.persistence.NamedQuery; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; - -@Entity -@Table(name = "DIDES.TB_USUARIO_PROJETO") -@SequenceGenerator(name = "sq_usuario_projeto", sequenceName = "DIDES.NOME_DA_SEQUENCE") -@NamedQueries({ @NamedQuery(name = "Usuario.findAllUsuarioServico", query = "SELECT u FROM UsuarioProjeto u " - + "WHERE u.idPessoa is null AND u.senha is not null AND u.usuarioProjeto = 1") }) -public class UsuarioProjeto { - - @Id - @GeneratedValue(generator = "sq_usuario_projeto", strategy = GenerationType.SEQUENCE) - @Column(name = "ID_USUARIO") - private Long id; - - @Column(name = "ID_PESSOA_USUARIO") - private Long idPessoa; - - @Column(name = "DE_LOGIN_USUARIO") - private String loginUsuario; - - @Column(name = "DE_SENHA") - private String senha; - - @Column(name = "NM_USUARIO") - private String nomeUsuario; - - @Column(name = "LG_ATIVO") - private Long status; - - @Column(name = "LG_USUARIO_PROJECT") - private Long usuarioProjeto; - - @Column(name = "LG_BLOQUEADO") - private Long usuarioBloqueado; - - @Column(name = "DE_OBSERVACAO_USUARIO") - private String observacao; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getIdPessoa() { - return idPessoa; - } - - public void setIdPessoa(Long idPessoa) { - this.idPessoa = idPessoa; - } - - public String getLoginUsuario() { - return loginUsuario; - } - - public void setLoginUsuario(String loginUsuario) { - this.loginUsuario = loginUsuario; - } - - public String getNomeUsuario() { - return nomeUsuario; - } - - public void setNomeUsuario(String nomeUsuario) { - this.nomeUsuario = nomeUsuario; - } - - public Long getStatus() { - return status; - } - - public void setStatus(Long status) { - this.status = status; - } - - public Long getUsuarioBloqueado() { - return usuarioBloqueado; - } - - public void setUsuarioBloqueado(Long usuarioBloqueado) { - this.usuarioBloqueado = usuarioBloqueado; - } - - public String getObservacao() { - return observacao; - } - - public void setObservacao(String observacao) { - this.observacao = observacao; - } - - public String getSenha() { - return senha; - } - - public void setSenha(String senha) { - this.senha = senha; - } -} diff --git a/src/main/java/br/gov/ans/integracao/sei/rest/ArquivoResource.java b/src/main/java/br/gov/ans/integracao/sei/rest/ArquivoResource.java index 9cbfedd..e3b6722 100644 --- a/src/main/java/br/gov/ans/integracao/sei/rest/ArquivoResource.java +++ b/src/main/java/br/gov/ans/integracao/sei/rest/ArquivoResource.java @@ -3,7 +3,6 @@ package br.gov.ans.integracao.sei.rest; import java.net.URI; import java.rmi.RemoteException; -import javax.ejb.Stateless; import javax.inject.Inject; import javax.ws.rs.Consumes; import javax.ws.rs.POST; @@ -27,7 +26,6 @@ import br.gov.ans.integracao.sei.utils.Constantes; import br.gov.ans.utils.MessageUtils; @Path("/") -@Stateless public class ArquivoResource { @Inject @@ -47,7 +45,9 @@ public class ArquivoResource { * @apiName adicionarArquivo * @apiGroup Arquivo * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription O serviço criará um arquivo no repositório de documentos e retornará seu identificador. O envio do arquivo poderá ser particionado com chamadas * posteriores ao serviço de Adicionar Conteúdo Arquivo. Após todo o conteúdo ser transferido o arquivo será ativado e poderá ser associado com um documento externo * no serviço de inclusão de documento. Serão excluídos em 24 horas os arquivos não completados e não associados a um documento. @@ -96,8 +96,8 @@ public class ArquivoResource { public Response adicionarArquivo(@PathParam("unidade") String unidade, Arquivo arquivo) throws RemoteException, Exception{ validarTamanhoArquivo(arquivo); - String identificador = seiNativeService.adicionarArquivo(Constantes.SEI_BROKER, Operacao.ADICIONAR_ARQUIVO, unidadeResource.consultarCodigo(unidade), arquivo.getNome(), arquivo.getTamanho(), - arquivo.getHash(), arquivo.getConteudo()); + String identificador = seiNativeService.adicionarArquivo(Constantes.SEI_BROKER, Operacao.ADICIONAR_ARQUIVO, + unidadeResource.consultarCodigo(unidade), arquivo.getNome(), arquivo.getTamanho(), arquivo.getHash(), arquivo.getConteudo()); return Response.created(getResourcePath(identificador)).entity(new ArquivoCriado(identificador)).build(); } @@ -107,7 +107,9 @@ public class ArquivoResource { * @apiName adicionarConteudoArquivo * @apiGroup Arquivo * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Adiciona conteúdo a um arquivo criado, o sistema identificará automaticamente quando o conteúdo foi completado validando o tamanho em bytes * e o hash do conteúdo. Quando as condições forem satisfeitas o arquivo será ativado e poderá ser utilizado nas chamadas de inclusão de documento. * diff --git a/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java b/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java index d4b5b27..49b4209 100644 --- a/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java +++ b/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java @@ -6,7 +6,6 @@ import static br.gov.ans.integracao.sei.utils.Util.trueOrFalse; import java.net.URI; -import javax.ejb.Stateless; import javax.inject.Inject; import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; @@ -34,7 +33,6 @@ import br.gov.ans.integracao.sei.utils.Constantes; import br.gov.ans.utils.MessageUtils; @Path("") -@Stateless public class BlocoResource { @Inject @@ -54,7 +52,9 @@ public class BlocoResource { * @apiName consultarBloco * @apiGroup Bloco * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Recupera as informações do bloco informado. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -107,7 +107,9 @@ public class BlocoResource { * @apiName disponibilizarBloco * @apiGroup Bloco * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Disponibiliza um determinado bloco. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -144,7 +146,9 @@ public class BlocoResource { * @apiName cancelarDisponibilizacaoBloco * @apiGroup Bloco * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Cancela a disponibilização de blocos. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -166,7 +170,8 @@ public class BlocoResource { @Path("{unidade}/blocos/disponibilizados/{bloco}") @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) public String cancelarDisponibilizacaoBloco(@PathParam("unidade") String unidade, @PathParam("bloco") String bloco) throws Exception{ - String resultado = seiNativeService.cancelarDisponibilizacaoBloco(Constantes.SEI_BROKER, Operacao.CANCELAR_DISPONIBILIZACAO_BLOCO, unidadeResource.consultarCodigo(unidade), bloco); + String resultado = seiNativeService.cancelarDisponibilizacaoBloco(Constantes.SEI_BROKER, Operacao.CANCELAR_DISPONIBILIZACAO_BLOCO, + unidadeResource.consultarCodigo(unidade), bloco); return trueOrFalse(resultado) + ""; } @@ -177,7 +182,9 @@ public class BlocoResource { * @apiName excluirBloco * @apiGroup Bloco * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Exclui um bloco criado. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -209,7 +216,9 @@ public class BlocoResource { * @apiName gerarBloco * @apiGroup Bloco * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Gera um novo bloco. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -249,8 +258,8 @@ public class BlocoResource { @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) public Response gerarBloco(@PathParam("unidade") String unidade, NovoBloco bloco) throws Exception{ - String retorno = seiNativeService.gerarBloco(Constantes.SEI_BROKER, Operacao.GERAR_BLOCO, unidadeResource.consultarCodigo(unidade), bloco.getTipo().getCodigo(), bloco.getDescricao(), bloco.getUnidades(), - bloco.getDocumentos(), getSOuN(bloco.isDisponibilizar())); + String retorno = seiNativeService.gerarBloco(Constantes.SEI_BROKER, Operacao.GERAR_BLOCO, unidadeResource.consultarCodigo(unidade), bloco.getTipo().getCodigo(), + bloco.getDescricao(), unidadeResource.buscarCodigoUnidades(bloco.getUnidades()), bloco.getDocumentos(), getSOuN(bloco.isDisponibilizar())); return Response.created(getResourcePath(retorno)).entity(retorno).build(); } @@ -260,7 +269,9 @@ public class BlocoResource { * @apiName incluirDocumentoNoBloco * @apiGroup Bloco * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Inclui um documento no bloco. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -300,7 +311,9 @@ public class BlocoResource { * @apiName incluirDocumentoComAnotacaoNoBloco * @apiGroup Bloco * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Inclui um documento no bloco. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -342,7 +355,9 @@ public class BlocoResource { * @apiName retirarDocumentoDoBloco * @apiGroup Bloco * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Remove o documento do bloco. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -375,7 +390,9 @@ public class BlocoResource { * @apiName incluirProcessoNoBloco * @apiGroup Bloco * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Inclui um processo no bloco. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -418,7 +435,9 @@ public class BlocoResource { * @apiName incluirProcessoComAnotacaoNoBloco * @apiGroup Bloco * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Inclui um processo no bloco, junto com uma anotação. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -467,7 +486,9 @@ public class BlocoResource { * @apiName retirarProcessoDoBloco * @apiGroup Bloco * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Este método remove o processo do bloco. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI diff --git a/src/main/java/br/gov/ans/integracao/sei/rest/CargoResource.java b/src/main/java/br/gov/ans/integracao/sei/rest/CargoResource.java index 8be591a..c74d58e 100644 --- a/src/main/java/br/gov/ans/integracao/sei/rest/CargoResource.java +++ b/src/main/java/br/gov/ans/integracao/sei/rest/CargoResource.java @@ -29,7 +29,9 @@ public class CargoResource { * @apiName listarCargos * @apiGroup Cargo * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Lista os cargos. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI 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 09cc2ef..bf5df81 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 @@ -70,7 +70,9 @@ public class ContatoResource { * @apiName listarTipos * @apiGroup Contato * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Consulta os tipos de contato. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -99,7 +101,9 @@ public class ContatoResource { * @apiName listarContatos * @apiGroup Contato * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Consulta os contatos de determinado tipo, o retorno pode ser PessoaFisica ou PessoaJuridica é recomendado utilizar a ans-commons-sei. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -200,7 +204,9 @@ public class ContatoResource { * @apiName getContato * @apiGroup Contato * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Consulta contato pela sigla(login) * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -293,7 +299,9 @@ public class ContatoResource { * @apiName criarContato * @apiGroup Contato * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Incluir contato * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -388,7 +396,9 @@ public class ContatoResource { * @apiName atualizarContato * @apiGroup Contato * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Atualizar contato * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI 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 52c7ad7..793e9c7 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 @@ -112,7 +112,9 @@ public class DocumentoResource { * @apiName consultarDocumento * @apiGroup Documento * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Consulta documento cadastrado no SEI. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -207,7 +209,9 @@ public class DocumentoResource { * @apiName incluirDocumento * @apiGroup Documento * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Inclui um documento no SEI, podem ser incluídos documentos internos e externos, para documentos externo o tamanho máximo é 20MB. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -220,7 +224,7 @@ public class DocumentoResource { * @apiParam (Request Body) {String} [protocoloProcedimento] Número do processo onde o documento deve ser inserido, visível para o usuário. Opcional se IdProcedimento informado. * @apiParam (Request Body) {String} [idTipoConferencia] Identificador do tipo de conferência associada com o documento externo * @apiParam (Request Body) {String{50}} [numero] Número do documento, passar null para documentos gerados com numeração controlada pelo SEI.Para documentos externos informar o número ou nome complementar a ser exibido na árvore de documentos do processo (o SEI não controla numeração de documentos externos). - * @apiParam (Request Body) {String} [data] Data do documento, obrigatório para documentos externos. Passar null para documentos gerados + * @apiParam (Request Body) {String} [data] Data do documento (dd/MM/yyyy), obrigatório para documentos externos. Passar null para documentos gerados. * @apiParam (Request Body) {String} [descricao] Descrição do documento para documentos gerados. Passar null para documentos externos * @apiParam (Request Body) {Remetente} [remetente] Obrigatório para documentos externos, passar null para documentos gerados. * @apiParam (Request Body) {String} [remetente.nome] Nome do remetente @@ -234,7 +238,7 @@ public class DocumentoResource { * @apiParam (Request Body) {String} [observacao] Texto da observação da unidade, passar null se não existir * @apiParam (Request Body) {String{200}} [nomeArquivo] Nome do arquivo, obrigatório para documentos externos. Passar null para documentos gerados. * @apiParam (Request Body) {String} conteudo Conteúdo do arquivo codificado em Base64. Para documentos gerados será o conteúdo da seção principal do editor HTML e para documentos externos será o conteúdo do anexo. Para documentos com template cadastrado, enviar Base64 do JSon referente ao conteúdo a ser preenchido no template. - * @apiParam (Request Body) {String = "0 (público)","1 (restrito)", "2 (sigiloso)", "null (herda do processo)"} [nivelAcesso] Nível de acesso do documento + * @apiParam (Request Body) {String = "0 (público)","1 (restrito)", "2 (sigiloso)", "null (herda do tipo de processo)"} [nivelAcesso] Nível de acesso do documento * @apiParam (Request Body) {String} [idHipoteseLegal] Identificador da hipótese legal associada * @apiParam (Request Body) {String} [idArquivo] Identificador do arquivo enviado pelo serviço de Incluir Arquivo * @apiParam (Request Body) {String = "S (Sim)","N (Não)"} [sinBloqueado] Bloquear o documento, não permite excluí-lo ou alterar seu conteúdo @@ -325,7 +329,9 @@ public class DocumentoResource { * @apiName cancelarDocumento * @apiGroup Documento * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Cancela um documento. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -374,7 +380,9 @@ public class DocumentoResource { * @apiName consultarDocumentosIncluidosBroker * @apiGroup Documento * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Consulta documentos inclusos pelo SEI-Broker. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -444,7 +452,9 @@ public class DocumentoResource { * @apiName exportarDocumento * @apiGroup Documento * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Exporta documentos do SEI em PDF. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -493,42 +503,58 @@ public class DocumentoResource { } /** - * @api {get} /:interessado/documentos Consultar por interessados + * @api {get} /interessados/:interessado/documentos Consultar por interessado * @apiName consultarDocumentoInteressado * @apiGroup Documento * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Retorna os documentos de um determinado interessado. * * @apiParam (Path Parameters) {String} interessado Identificador do interessado * - * @apiParam (Query Parameters) {String} [unidade] Unidade da qual deseja filtrar os documentos + * @apiParam (Query Parameters) {String} [tipo] Tipo/Série do documento + * @apiParam (Query Parameters) {boolean} [somenteAssinados=false] Exibir somente documentos assinados + * @apiParam (Query Parameters) {boolean} [orderByProcesso=false] Ordenar pelo número do processo, por padrão o retorno é ordenado pela dataGeracao + * @apiParam (Query Parameters) {boolean} [crescente=false] Ordenar em ordem crescente * @apiParam (Query Parameters) {String} [pagina=1] Número da página * @apiParam (Query Parameters) {String} [qtdRegistros=50] Quantidade de registros retornados por página * * @apiExample Exemplo de requisição: - * curl -i https:///sei-broker/service/363022/documentos + * curl -i https:///sei-broker/service/interessados/005711/documentos * - * @apiSuccess (Sucesso Response Body - 200) {List} documentos Lista com os documentos encontrados - * @apiSuccess (Sucesso Response Body - 200) {DocumentoResumido} documentos.documentoResumido Resumo do documento encontrado no SEI - * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.numero Número do documento - * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.tipo Tipo do documento - * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.processo Processo ao qual o documento pertence - * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.unidade Unidade responsável pelo processo - * @apiSuccess (Sucesso Response Body - 200) {String="GERADO","RECEBIDO"} documentos.documentoResumido.origem Origem do documento, se o mesmo é um documento "GERADO" internamente ou "RECEBIDO" de uma fonte externa - * @apiSuccess (Sucesso Response Body - 200) {Data} documentos.documentoResumido.dataGeracao Data de geração do documento + * @apiSuccess (Sucesso Response Body - 200) {List} documentos Lista com os documentos encontrados. + * @apiSuccess (Sucesso Response Body - 200) {DocumentoResumido} documentos.documentoResumido Resumo do documento encontrado no SEI. + * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.numero Número do documento. + * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.numeroInformado Número informado na inclusão do documento, também conhecido como número de árvore. + * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.unidade Unidade responsável pelo documento. + * @apiSuccess (Sucesso Response Body - 200) {String="GERADO","RECEBIDO"} documentos.documentoResumido.origem Origem do documento, se o mesmo é um documento "GERADO" internamente ou "RECEBIDO" de uma fonte externa. + * @apiSuccess (Sucesso Response Body - 200) {Data} documentos.documentoResumido.dataGeracao Data de geração do documento. + * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.processo Processo onde o documento está incluído. + * @apiSuccess (Sucesso Response Body - 200) {Tipo} documentos.documentoResumido.tipo Objeto representando o tipo do documento. + * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.tipo.codigo Identificados do tipo do documento, também conhecido como série. + * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.tipo.nome Nome do tipo do documento. + * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.tipoConferencia Tipo de conferência do documento. + * @apiSuccess (Sucesso Response Body - 200) {boolean} documentos.documentoResumido.assinado Boolean indicando se o documento foi assinado. * * @apiSuccess (Sucesso Response Header - 200) {header} total_registros Quantidade de registros que existem para essa consulta * * @apiSuccessExample {json} Success-Response: * HTTP/1.1 200 OK * { - * "dataGeracao": "2015-08-25T00:00:00-03:00", - * "numero": "0057646", + * "numero": "0670949", + * "numeroInformado": "594", + * "unidade": "COSAP", * "origem": "RECEBIDO", - * "processo": "33902.554351/2015-16", - * "tipo": "Contrato", - * "unidade": "COAI" + * "dataGeracao": "2015-08-10T00:00:00-03:00", + * "processo": "33910.000002/2017-41", + * "tipo": { + * "codigo": "629", + * "nome": "Relatório de Arquivamento-SIF" + * } + * "tipoConferencia": "4", + * "assinado": true * } * * @apiErrorExample {json} Error-Response: @@ -539,16 +565,18 @@ public class DocumentoResource { * } */ @GET - @Path("{interessado}/documentos") + @Path("interessados/{interessado}/documentos") @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) - public Response consultarDocumentos(@PathParam("interessado") String interessado, @QueryParam("unidade") String unidade, @QueryParam("pagina") String pagina, - @QueryParam("qtdRegistros") String qtdRegistros) throws BusinessException{ + public Response consultarDocumentos(@PathParam("interessado") String interessado, @QueryParam("tipo") String tipo, @QueryParam("pagina") String pagina, + @QueryParam("qtdRegistros") String qtdRegistros, @QueryParam("somenteAssinados") boolean somenteAssinados, @QueryParam("crescente") boolean ordemCrescente, + @QueryParam("orderByProcesso") boolean orderByProcesso) throws BusinessException{ - List documentos = daoDocumento.getDocumentos(interessado, unidade, pagina == null? null:parseInt(pagina), qtdRegistros == null? null : parseInt(qtdRegistros)); + List documentos = daoDocumento.getDocumentos(interessado, tipo, pagina == null? null:parseInt(pagina), qtdRegistros == null? null : parseInt(qtdRegistros), + somenteAssinados, ordemCrescente, orderByProcesso); GenericEntity> entity = new GenericEntity>(documentos){}; - Long totalRegistros = daoDocumento.countDocumentos(interessado, unidade); + Long totalRegistros = daoDocumento.countDocumentos(interessado, tipo, somenteAssinados); return Response.ok().entity(entity) .header("total_registros", totalRegistros).build(); diff --git a/src/main/java/br/gov/ans/integracao/sei/rest/ExtensoesResource.java b/src/main/java/br/gov/ans/integracao/sei/rest/ExtensoesResource.java index 2568b6e..8d238bb 100644 --- a/src/main/java/br/gov/ans/integracao/sei/rest/ExtensoesResource.java +++ b/src/main/java/br/gov/ans/integracao/sei/rest/ExtensoesResource.java @@ -1,6 +1,5 @@ package br.gov.ans.integracao.sei.rest; -import javax.ejb.Stateless; import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; @@ -15,7 +14,6 @@ import br.gov.ans.integracao.sei.modelo.Operacao; import br.gov.ans.integracao.sei.utils.Constantes; @Path("/") -@Stateless public class ExtensoesResource { @Inject @@ -29,7 +27,9 @@ public class ExtensoesResource { * @apiName listarExtensoesPermitidas * @apiGroup Extensao * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Este método realiza uma busca pelas extensões de arquivos permitidas. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. diff --git a/src/main/java/br/gov/ans/integracao/sei/rest/HipoteseLegalResource.java b/src/main/java/br/gov/ans/integracao/sei/rest/HipoteseLegalResource.java index 9b8607d..3a626f4 100644 --- a/src/main/java/br/gov/ans/integracao/sei/rest/HipoteseLegalResource.java +++ b/src/main/java/br/gov/ans/integracao/sei/rest/HipoteseLegalResource.java @@ -30,7 +30,9 @@ public class HipoteseLegalResource { * @apiName listarHipoteses * @apiGroup Hipotese Legal * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Lista as hipóteses legais. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI diff --git a/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java b/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java index 17ec04b..e80f9f2 100644 --- a/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java +++ b/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java @@ -45,7 +45,9 @@ public class InfraResource { * @apiName getPaises * @apiGroup Endereco * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Consulta países cadastrados. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -84,7 +86,9 @@ public class InfraResource { * @apiName getEstados * @apiGroup Endereco * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Consulta estados cadastrados. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -133,7 +137,9 @@ public class InfraResource { * @apiName getEstado * @apiGroup Endereco * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Consulta o estado pela sigla. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -191,7 +197,9 @@ public class InfraResource { * @apiName getCidades * @apiGroup Endereco * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Consulta as cidades de um determinado estado. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -240,7 +248,9 @@ public class InfraResource { * @apiName getCidade * @apiGroup Endereco * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Consulta a cidade pelo código do IBGE. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI diff --git a/src/main/java/br/gov/ans/integracao/sei/rest/MarcadorResource.java b/src/main/java/br/gov/ans/integracao/sei/rest/MarcadorResource.java index d5fa462..7d0dfa1 100644 --- a/src/main/java/br/gov/ans/integracao/sei/rest/MarcadorResource.java +++ b/src/main/java/br/gov/ans/integracao/sei/rest/MarcadorResource.java @@ -5,7 +5,6 @@ import static br.gov.ans.integracao.sei.utils.Util.trueOrFalse; import java.rmi.RemoteException; -import javax.ejb.Stateless; import javax.inject.Inject; import javax.ws.rs.Consumes; import javax.ws.rs.GET; @@ -27,7 +26,6 @@ import br.gov.ans.integracao.sei.utils.Constantes; import br.gov.ans.utils.MessageUtils; @Path("/") -@Stateless public class MarcadorResource { @Inject @@ -44,7 +42,9 @@ public class MarcadorResource { * @apiName listarMarcadores * @apiGroup Marcador * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Lista os marcadores de uma unidade. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -77,7 +77,9 @@ public class MarcadorResource { * @apiName marcarProcesso * @apiGroup Marcador * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Adiciona um processo ao marcador. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. 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 44860f4..3e2befc 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 @@ -7,6 +7,7 @@ import static br.gov.ans.integracao.sei.utils.Util.getSOuN; import static br.gov.ans.integracao.sei.utils.Util.parseInt; import static br.gov.ans.integracao.sei.utils.Util.trueOrFalse; +import java.math.BigInteger; import java.net.URI; import java.rmi.RemoteException; import java.util.ArrayList; @@ -14,8 +15,8 @@ import java.util.HashMap; import java.util.List; import java.util.Set; -import javax.ejb.Stateless; import javax.inject.Inject; +import javax.persistence.NoResultException; import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; import javax.ws.rs.GET; @@ -38,6 +39,7 @@ import org.jboss.logging.Logger; import org.jboss.resteasy.annotations.providers.jaxb.Wrapped; import br.gov.ans.exceptions.BusinessException; +import br.gov.ans.exceptions.ResourceNotFoundException; import br.gov.ans.integracao.sei.client.Andamento; import br.gov.ans.integracao.sei.client.AtributoAndamento; import br.gov.ans.integracao.sei.client.RetornoConsultaProcedimento; @@ -45,10 +47,9 @@ import br.gov.ans.integracao.sei.client.RetornoGeracaoProcedimento; import br.gov.ans.integracao.sei.client.SeiPortTypeProxy; import br.gov.ans.integracao.sei.client.TipoProcedimento; import br.gov.ans.integracao.sei.dao.DocumentoDAO; -import br.gov.ans.integracao.sei.dao.DocumentoSiparDAO; +import br.gov.ans.integracao.sei.dao.SiparDAO; import br.gov.ans.integracao.sei.dao.ProcessoDAO; import br.gov.ans.integracao.sei.modelo.DocumentoResumido; -import br.gov.ans.integracao.sei.modelo.DocumentoSipar; import br.gov.ans.integracao.sei.modelo.EnvioDeProcesso; import br.gov.ans.integracao.sei.modelo.Motivo; import br.gov.ans.integracao.sei.modelo.NovoAndamento; @@ -61,15 +62,15 @@ 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.sipar.dao.DocumentoSipar; import br.gov.ans.utils.MessageUtils; @Path("") -@Stateless public class ProcessoResource { @Inject - private DocumentoSiparDAO documentoSiparDAO; + private SiparDAO documentoSiparDAO; @Inject private ProcessoDAO processoDAO; @@ -98,6 +99,8 @@ public class ProcessoResource { * @apiGroup Processo * @apiVersion 2.0.0 * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Este método realiza uma consulta a processos no SEI e no SIPAR. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -269,7 +272,9 @@ public class ProcessoResource { * @apiName concluirProcesso * @apiGroup Processo * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Conclui o processo informado. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -312,22 +317,24 @@ public class ProcessoResource { * @apiName enviarProcesso * @apiGroup Processo * @apiVersion 2.0.0 + * + * @apiPermission RO_SEI_BROKER * * @apiDescription Envia processos a outras unidades. * - * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI + * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. Representa a unidade de localização atual do processo. * * @apiParam (Query Parameters) {String = "S (sim), N (não)"} [reabir=N] Reabrir automaticamente caso esteja concluído na unidade * @apiParam (Query Parameters) {String = "S (sim), N (não)"} [auto-formatacao=S] O broker utilizará a mascara padrão para formatar o número do processo * - * @apiParam (Request Body) {String} processo Numero do processo a ser enviado - * @apiParam (Request Body) {String[]} unidadesDestino Códigos das unidades para onde o bloco será enviado - * @apiParam (Request Body) {Boolean} manterAbertoOrigem=false Informa se o processo deve continuar aberto na unidade de origem - * @apiParam (Request Body) {Boolean} removerAnotacoes=false Informa se as anotações do processo devem ser removidas - * @apiParam (Request Body) {Boolean} enviarEmailNotificacao=false Informa se deve ser enviado um e-mail de notificação - * @apiParam (Request Body) {Date} dataRetornoProgramado=null Data para retorno programado do processo a unidade (padrão ISO-8601) - * @apiParam (Request Body) {Integer} qtdDiasAteRetorno=null Quantidade de dias até o retorno do processo - * @apiParam (Request Body) {Boolean} somenteDiasUteis=false Informa se só serão contabilizados dias úteis + * @apiParam (Request Body) {String} processo Numero do processo a ser enviado. Em caso de processo apensado, o processo a ser enviado deve ser o processo PAI. Não é possível tramitar através do processo FILHO. + * @apiParam (Request Body) {String[]} unidadesDestino Lista com os identificadores das unidades de destino do processo, código ou nome da unidade. + * @apiParam (Request Body) {Boolean} manterAbertoOrigem=false Informa se o processo deve continuar aberto na unidade de origem . + * @apiParam (Request Body) {Boolean} removerAnotacoes=false Informa se as anotações do processo devem ser removidas. + * @apiParam (Request Body) {Boolean} enviarEmailNotificacao=false Informa se deve ser enviado um e-mail de notificação. + * @apiParam (Request Body) {Date} dataRetornoProgramado=null Data para retorno programado do processo a unidade (padrão ISO-8601). + * @apiParam (Request Body) {Integer} qtdDiasAteRetorno=null Quantidade de dias até o retorno do processo. + * @apiParam (Request Body) {Boolean} somenteDiasUteis=false Informa se só serão contabilizados dias úteis. * * @apiExample Exemplo de requisição: * endpoint: [POST] https:///sei-broker/service/COSAP/processos/enviados @@ -366,8 +373,9 @@ public class ProcessoResource { } String resultado = seiNativeService.enviarProcesso(Constantes.SEI_BROKER, Operacao.ENVIAR_PROCESSO, unidadeResource.consultarCodigo(unidade), processo, - dadosEnvio.getUnidadesDestino(), getSOuN(dadosEnvio.getManterAbertoOrigem()), getSOuN(dadosEnvio.getRemoverAnotacoes()), getSOuN(dadosEnvio.getEnviarEmailNotificacao()), - formatarData(dadosEnvio.getDataRetornoProgramado()), (dadosEnvio.getQtdDiasAteRetorno() != null ? dadosEnvio.getQtdDiasAteRetorno().toString() : null), getSOuN(dadosEnvio.getSomenteDiasUteis()), + unidadeResource.buscarCodigoUnidades(dadosEnvio.getUnidadesDestino()), getSOuN(dadosEnvio.getManterAbertoOrigem()), getSOuN(dadosEnvio.getRemoverAnotacoes()), + getSOuN(dadosEnvio.getEnviarEmailNotificacao()), formatarData(dadosEnvio.getDataRetornoProgramado()), + (dadosEnvio.getQtdDiasAteRetorno() != null ? dadosEnvio.getQtdDiasAteRetorno().toString() : null), getSOuN(dadosEnvio.getSomenteDiasUteis()), getSOuN(reabrir)); return trueOrFalse(resultado) + ""; @@ -379,7 +387,9 @@ public class ProcessoResource { * @apiName reabrirProcesso * @apiGroup Processo * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Reabre um processo. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -417,7 +427,9 @@ public class ProcessoResource { * @apiName listarTiposProcesso * @apiGroup Processo * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Consulta os tipos de processo. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI @@ -448,7 +460,9 @@ public class ProcessoResource { * @apiName abrirProcesso * @apiGroup Processo * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Abre um processo. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. @@ -548,21 +562,24 @@ public class ProcessoResource { } /** - * @api {get} /:interessado/processos Consultar por interessados - * @apiName consultarProcessosInteressado + * @api {get} /processos Listar processos + * @apiName consultarProcessos * @apiGroup Processo * @apiVersion 2.0.0 - * - * @apiDescription Retorna os processos de um determinado interessado. * - * @apiParam (Path Parameters) {String} interessado Identificador do interessado + * @apiPermission RO_SEI_BROKER + * + * @apiDescription Lista os processos conforme os filtros informados. * + * @apiParam (Query Parameters) {Boolean} [crescente=false] Ordenar em ordem crescente, processos mais antigos primeiro + * @apiParam (Query Parameters) {String} [interessado] Identificador do interessado * @apiParam (Query Parameters) {String} [unidade] Unidade da qual deseja filtrar os processos * @apiParam (Query Parameters) {String} [pagina=1] Número da página * @apiParam (Query Parameters) {String} [qtdRegistros=50] Quantidade de registros retornados por página + * @apiParam (Query Parameters) {String} [tipo] Identificador do tipo de processo que deseja filtrar * * @apiExample Exemplo de requisição: - * curl -i https:///sei-broker/service/414247/processos + * curl -i https:///sei-broker/service/processos * * @apiSuccess (Sucesso Response Body - 200) {List} processos Lista com os processos encontrados * @apiSuccess (Sucesso Response Body - 200) {ProcessoResumido} processos.processoResumido Resumo do processo encontrado no SEI @@ -571,9 +588,26 @@ public class ProcessoResource { * @apiSuccess (Sucesso Response Body - 200) {String} processos.processoResumido.descricao Descrição do processo * @apiSuccess (Sucesso Response Body - 200) {String} processos.processoResumido.unidade Unidade responsável pelo processo * @apiSuccess (Sucesso Response Body - 200) {Data} processos.processoResumido.dataGeracao Data de geração do processo + * @apiSuccess (Sucesso Response Body - 200) {Tipo} processos.processoResumido.tipo Objeto com os dados do tipo de processo + * @apiSuccess (Sucesso Response Body - 200) {String} processos.processoResumido.tipo.codigo Código do tipo + * @apiSuccess (Sucesso Response Body - 200) {String} processos.processoResumido.tipo.nome Nome do tipo * * @apiSuccess (Sucesso Response Header - 200) {header} total_registros quantidade de registros que existem para essa consulta. * + * @apiSuccessExample {json} Success-Response: + * HTTP/1.1 200 OK + * { + * "numero": "33910007118201710", + * "numeroFormatado": "33910.007118/2017-10", + * "descricao": "D:2237021 - SUL AMÉRICA SEGURO SAÚDE S/A", + * "unidade": "NÚCLEO-RJ", + * "dataGeracao": "2017-10-09T03:00:00.000+0000", + * "tipo": { + * "codigo": "100000882", + * "nome": "Fiscalização: Sancionador" + * } + * } + * * @apiErrorExample {json} Error-Response: * HTTP/1.1 500 Internal Server Error * { @@ -582,17 +616,22 @@ public class ProcessoResource { * } */ @GET - @Path("/{interessado}/processos") + @Path("/processos") @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) @Wrapped(element = "processos") - public Response consultarProcessos(@PathParam("interessado") String interessado, @QueryParam("unidade") String unidade, @QueryParam("pagina") String pagina, - @QueryParam("qtdRegistros") String qtdRegistros) throws BusinessException{ + public Response consultarProcessos(@QueryParam("interessado") String interessado, @QueryParam("unidade") String unidade, @QueryParam("tipo") String tipoProcesso, + @QueryParam("crescente") boolean crescente, @QueryParam("pagina") String pagina, @QueryParam("qtdRegistros") String qtdRegistros) throws Exception{ + + if(StringUtils.isNotBlank(unidade)){ + unidade = unidadeResource.consultarCodigo(unidade); + } - List processos = processoDAO.getProcessos(interessado, unidade, pagina == null? null:parseInt(pagina), qtdRegistros == null? null : parseInt(qtdRegistros)); + List processos = processoDAO.getProcessos(interessado, unidade, tipoProcesso, + pagina == null? null:parseInt(pagina), qtdRegistros == null? null : parseInt(qtdRegistros), crescente); GenericEntity> entity = new GenericEntity>(processos){}; - Long totalRegistros = processoDAO.countProcessos(interessado, unidade); + Long totalRegistros = processoDAO.countProcessos(interessado, unidade, tipoProcesso); return Response.ok().entity(entity) .header("total_registros", totalRegistros).build(); @@ -603,7 +642,9 @@ public class ProcessoResource { * @apiName listarAndamentos * @apiGroup Processo * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Lista as andamentos do processo. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. @@ -661,7 +702,9 @@ public class ProcessoResource { * @apiName lancarAndamento * @apiGroup Processo * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Lança um andamento ao processo. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. @@ -722,7 +765,9 @@ public class ProcessoResource { * @apiName anexarProcesso * @apiGroup Processo * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Anexar um processo. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. @@ -772,7 +817,9 @@ public class ProcessoResource { * @apiName desanexarProcesso * @apiGroup Processo * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Remove um processo anexado. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. @@ -819,7 +866,9 @@ public class ProcessoResource { * @apiName bloquearProcesso * @apiGroup Processo * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Bloquear um processo. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. @@ -869,7 +918,9 @@ public class ProcessoResource { * @apiName desbloquearProcesso * @apiGroup Processo * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Desbloquear um processo. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. @@ -907,7 +958,9 @@ public class ProcessoResource { * @apiName relacionarProcesso * @apiGroup Processo * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Relacionar processos. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. @@ -957,7 +1010,9 @@ public class ProcessoResource { * @apiName desrelacionarProcesso * @apiGroup Processo * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Desrelacionar processos. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. @@ -998,7 +1053,9 @@ public class ProcessoResource { * @apiName sobrestarProcesso * @apiGroup Processo * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Sobrestar processo. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. @@ -1051,7 +1108,9 @@ public class ProcessoResource { * @apiName removerSobrestamentoProcesso * @apiGroup Processo * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Remover sobrestamento de processo. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. @@ -1086,34 +1145,49 @@ public class ProcessoResource { } /** - * @api {get} /:unidade/processos/:processo/documentos Listar documentos + * @api {get} /processos/:processo/documentos Listar documentos * @apiName listarDocumentosPorProcesso * @apiGroup Processo * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Retorna os documentos de um determinado processo. * - * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. * @apiParam (Path Parameters) {String} processo Número do processo. * + * @apiParam (Query Parameters) {String} [tipo=null] Identificador do tipo do documento, caso seja necessário filtrar pelo tipo + * @apiParam (Query Parameters) {String = "G (gerado/interno), R (recebido/externo)"} [origem=null] Filtra os documentos por gerados ou recebidos + * @apiParam (Query Parameters) {boolean} [somenteAssinados=false] Exibir somente documentos assinados * * @apiExample Exemplo de requisição: - * curl -i https:///sei-broker/service/cosap/processos/33910003149201793/documentos + * curl -i https:///sei-broker/service/processos/33910003149201793/documentos * * @apiSuccess (Sucesso Response Body - 200) {List} documentos Lista com os documentos encontrados. * @apiSuccess (Sucesso Response Body - 200) {DocumentoResumido} documentos.documentoResumido Resumo do documento encontrado no SEI. * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.numero Número do documento. - * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.tipo Tipo do documento. + * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.numeroInformado Número informado na inclusão do documento, também conhecido como número de árvore. * @apiSuccess (Sucesso Response Body - 200) {String="GERADO","RECEBIDO"} documentos.documentoResumido.origem Origem do documento, se o mesmo é um documento "GERADO" internamente ou "RECEBIDO" de uma fonte externa. * @apiSuccess (Sucesso Response Body - 200) {Data} documentos.documentoResumido.dataGeracao Data de geração do documento. + * @apiSuccess (Sucesso Response Body - 200) {Tipo} documentos.documentoResumido.tipo Objeto representando o tipo do documento. + * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.tipo.codigo Identificados do tipo do documento, também conhecido como série. + * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.tipo.nome Nome do tipo do documento. + * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.tipoConferencia Tipo de conferência do documento. + * @apiSuccess (Sucesso Response Body - 200) {boolean} documentos.documentoResumido.assinado Boolean indicando se o documento foi assinado. * * @apiSuccessExample {json} Success-Response: * HTTP/1.1 200 OK * { - * "dataGeracao": "2015-08-10T00:00:00-03:00", * "numero": "0670949", + * "numeroInformado": "594", * "origem": "RECEBIDO", - * "tipo": "Despacho" + * "dataGeracao": "2015-08-10T00:00:00-03:00", + * "tipo": { + * "codigo": "629", + * "nome": "Relatório de Arquivamento-SIF" + * } + * "tipoConferencia": "4", + * "assinado": true * } * * @apiErrorExample {json} Error-Response: @@ -1124,10 +1198,23 @@ public class ProcessoResource { * } */ @GET - @Path("/{unidade}/processos/{processo:\\d+}/documentos") + @Path("/processos/{processo:\\d+}/documentos") @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) - public List listarDocumentosPorProcesso(@PathParam("unidade") String unidade, @PathParam("processo") String processo) throws RemoteException, Exception{ - return documentoDAO.getDocumentosProcesso(formatarNumeroProcesso(processo)); + public List listarDocumentosPorProcesso(@PathParam("processo") String processo, @QueryParam("tipo")String tipo, + @QueryParam("origem") String origem, @QueryParam("somenteAssinados") boolean somenteAssinados) throws RemoteException, Exception{ + try{ + BigInteger idProcedimento = processoDAO.getIdProcedimento(formatarNumeroProcesso(processo)); + + List documentosProcesso = documentoDAO.getDocumentosProcesso(idProcedimento.toString(), tipo, origem, somenteAssinados); + + if(documentosProcesso.isEmpty()){ + throw new ResourceNotFoundException(messages.getMessage("erro.processo.sem.documentos",formatarNumeroProcesso(processo))); + } + + return documentosProcesso; + }catch(NoResultException ex){ + throw new BusinessException(messages.getMessage("erro.processo.nao.pertence.sei", formatarNumeroProcesso(processo))); + } } public URI getResourcePath(String resourceId){ diff --git a/src/main/java/br/gov/ans/integracao/sei/rest/SeriesResource.java b/src/main/java/br/gov/ans/integracao/sei/rest/SeriesResource.java index 4543256..cabcd86 100644 --- a/src/main/java/br/gov/ans/integracao/sei/rest/SeriesResource.java +++ b/src/main/java/br/gov/ans/integracao/sei/rest/SeriesResource.java @@ -6,24 +6,27 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import javax.ejb.Stateless; import javax.inject.Inject; import javax.ws.rs.GET; +import javax.ws.rs.NotFoundException; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; +import javax.ws.rs.core.GenericEntity; import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; import org.apache.commons.lang3.StringUtils; import br.gov.ans.integracao.sei.client.SeiPortTypeProxy; import br.gov.ans.integracao.sei.client.Serie; import br.gov.ans.integracao.sei.modelo.Operacao; +import br.gov.ans.integracao.sei.modelo.TipoDocumento; import br.gov.ans.integracao.sei.utils.Constantes; +import br.gov.ans.utils.MessageUtils; @Path("/") -@Stateless public class SeriesResource { @Inject @@ -31,13 +34,18 @@ public class SeriesResource { @Inject private UnidadeResource unidadeResource; + + @Inject + private MessageUtils messages; /** * @api {get} /:unidade/series Listar séries * @apiName listarSeries * @apiGroup Serie * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Este método realiza uma consulta às séries. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. @@ -71,9 +79,66 @@ public class SeriesResource { list.removeIf(serie -> !serie.getNome().toLowerCase().contains(filtro.toLowerCase())); + if(list.isEmpty()){ + throw new NotFoundException(messages.getMessage("erro.series.nao.encontradas")); + } + return list.toArray(new Serie[list.size()]); } return series; } + + /** + * @api {get} /:unidade/tipos-documentos Listar tipos documentos + * @apiName listarTiposDocumentos + * @apiGroup Documento + * @apiVersion 2.0.0 + * + * @apiPermission RO_SEI_BROKER + * + * @apiDescription Lista os tipos de documentos do SEI. + * + * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. + * + * @apiParam (Query Parameters) {String} [filtro] Para filtrar por documentos que contenham o trecho no nome. + * + * @apiExample {curl} Exemplo de requisição: + * curl -i https:///sei-broker/service/COSAP/tipos-documentos + * + * @apiSuccess (Sucesso - 200) {List} tipos Lista com os tipos de documentos + * @apiSuccess (Sucesso - 200) {String} tipos.identificador Identificador do tipo de documento + * @apiSuccess (Sucesso - 200) {String} tipos.nome Nome do tipo de documento + * @apiSuccess (Sucesso - 200) {String} series.aplicabilidade T = Documentos internos e externos, I = documentos internos, E = documentos externos e F = formulários + * + * @apiErrorExample {json} Error-Response: + * HTTP/1.1 500 Internal Server Error + * { + * "error":"Mensagem de erro." + * "code":"código do erro" + * } + */ + @GET + @Path("{unidade}/tipos-documentos") + @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) + public Response listarTiposDocumentos(@PathParam("unidade") String unidade, @QueryParam("filtro") String filtro) throws Exception{ + Serie[] series = listarSeries(unidade, null, filtro); + + if(series == null || series.length < 1){ + throw new NotFoundException(messages.getMessage("erro.tipo.documento.nao.encontrado")); + } + + return Response.ok(new GenericEntity>(getTiposDocumentos(series)){}).build(); + } + + public List getTiposDocumentos(Serie[] series){ + List tipos = new ArrayList(); + + for(Serie s : series){ + tipos.add(new TipoDocumento(s.getIdSerie(), s.getNome(), s.getAplicabilidade())); + } + + return tipos; + } + } diff --git a/src/main/java/br/gov/ans/integracao/sei/rest/SiparResource.java b/src/main/java/br/gov/ans/integracao/sei/rest/SiparResource.java new file mode 100644 index 0000000..5863a96 --- /dev/null +++ b/src/main/java/br/gov/ans/integracao/sei/rest/SiparResource.java @@ -0,0 +1,237 @@ +package br.gov.ans.integracao.sei.rest; + +import java.net.URI; +import java.util.Date; + +import javax.inject.Inject; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; +import javax.ws.rs.core.UriBuilder; +import javax.ws.rs.core.UriInfo; + +import org.jboss.logging.Logger; + +import br.gov.ans.exceptions.BusinessException; +import br.gov.ans.exceptions.ResourceConflictException; +import br.gov.ans.exceptions.ResourceNotFoundException; +import br.gov.ans.integracao.sei.dao.SiparDAO; +import br.gov.ans.integracao.sipar.dao.ControleMigracao; +import br.gov.ans.integracao.sipar.dao.ControleMigracaoId; +import br.gov.ans.utils.MessageUtils; + +@Path("/sipar") +public class SiparResource { + + @Inject + private SiparDAO dao; + + @Inject + private MessageUtils messages; + + @Inject + private Logger logger; + + @Context + private UriInfo uriInfo; + + private static int TRUE = 1; + private static int FALSE = 0; + + /** + * @api {post} /sipar/importados Importar Processo + * @apiName importarProcesso + * @apiGroup SIPAR + * @apiVersion 2.0.0 + * + * @apiDescription Marca um processo físico (SIPAR) como importado para um processo eletrônico (SEI). + * + * @apiParam (Header Parameters) {String} content-type Informar text/plain + * @apiParam (Request Body) {String} processo Número do processo a ser importado + * + * @apiExample Exemplo de requisição: + * endpoint: [POST] http:///sei-broker/service/sipar/importados + * + * body: + * 33902112492200241 + * + * @apiSuccessExample {json} Success-Response: + * HTTP/1.1 201 Created + * + * @apiErrorExample {json} Error-Response: + * HTTP/1.1 500 Internal Server Error + * { + * "error":"Mensagem de erro." + * "code":"código do erro" + * } + * + * + * @apiErrorExample {json} Error-Response: + * HTTP/1.1 400 Bad Request + * { + * "error":"Mensagem de erro." + * "code":"código do erro" + * } + * + * + * @apiErrorExample {json} Error-Response: + * HTTP/1.1 409 Conflict + * { + * "error":"Mensagem de erro." + * "code":"código do erro" + * } + */ + @POST + @Path("/importados") + @Consumes({MediaType.TEXT_PLAIN}) + public Response importarProcesso(String processo) throws Exception{ + String numero, ano, digito; + + try{ + numero = extraiNumero(processo); + ano = extraiAno(processo); + digito = extraiDigitoVerificador(processo); + }catch(Exception ex){ + logger.error(messages.getMessage("erro.numero.sipar"), ex); + throw new BusinessException(messages.getMessage("erro.numero.sipar",processo)); + } + + isProcessoSipar(numero, ano, digito); + + if(isProcessoImportado(numero, ano)){ + throw new ResourceConflictException(messages.getMessage("erro.processo.sipar.importado",processo)); + } + + importarProcesso(numero, ano); + + return Response.created(getResourcePath(processo)).build(); + + } + + /** + * @api {delete} /sipar/importados/:processo Cancelar Importação Processo + * @apiName cancelarImportacaoProcesso + * @apiGroup SIPAR + * @apiVersion 2.0.0 + * + * @apiDescription Desmarca um processo físico (SIPAR) como importado para um processo eletrônico (SEI). + * + * @apiParam (Path Parameter) {String} processo Número do processo físico existente no SIPAR contendo 17 dígitos e iniciado com 33902. Ex. 33902111111111111 + * + * @apiExample {curl} Exemplo de requisição: + * curl -X DELETE http:///sei-broker/service/sipar/importados/33902112492200241 + * + * @apiSuccessExample {json} Success-Response: + * HTTP/1.1 204 No Content + * + * @apiErrorExample {json} Error-Response: + * HTTP/1.1 500 Internal Server Error + * { + * "error":"Mensagem de erro." + * "code":"código do erro" + * } + * + * + * @apiErrorExample {json} Error-Response: + * HTTP/1.1 400 Bad Request + * { + * "error":"Mensagem de erro." + * "code":"código do erro" + * } + * + * + * @apiErrorExample {json} Error-Response: + * HTTP/1.1 404 Not Found + * { + * "error":"Mensagem de erro." + * "code":"código do erro" + * } + */ + @DELETE + @Path("/importados/{processo:\\d+}") + public Response cancelarImportacaoProcesso(@PathParam("processo") String processo) throws Exception{ + String numero, ano, digito; + + try{ + numero = extraiNumero(processo); + ano = extraiAno(processo); + digito = extraiDigitoVerificador(processo); + }catch(Exception ex){ + logger.error(messages.getMessage("erro.numero.sipar"), ex); + throw new BusinessException(messages.getMessage("erro.numero.sipar",processo)); + } + + if(!isProcessoImportado(numero, ano)){ + throw new ResourceNotFoundException(messages.getMessage("erro.processo.nao.importado",processo)); + } + + cancelarImportacaoProcesso(numero, ano); + + return Response.noContent().build(); + + } + + private void importarProcesso(String numeroDocumento, String anoDocumento){ + ControleMigracao controle = new ControleMigracao(); + controle.setId(getControleMigracaoID(numeroDocumento, anoDocumento)); + controle.setMigrado(TRUE); + controle.setDataUltimaAlteracao(new Date()); + + dao.merge(controle); + } + + private void cancelarImportacaoProcesso(String numeroDocumento, String anoDocumento){ + ControleMigracao controle = new ControleMigracao(); + controle.setId(getControleMigracaoID(numeroDocumento, anoDocumento)); + controle.setMigrado(FALSE); + controle.setDataUltimaAlteracao(new Date()); + + dao.merge(controle); + } + + private ControleMigracaoId getControleMigracaoID(String numeroDocumento, String anoDocumento){ + return new ControleMigracaoId(numeroDocumento, anoDocumento); + } + + private String extraiNumero(String processo) { + return processo.substring(0,(processo.length() - 6)); + } + + private String extraiAno(String processo) { + return processo.substring((processo.length() - 6), (processo.length() - 2)); + } + + private String extraiDigitoVerificador(String processo) { + return processo.substring((processo.length() - 2), processo.length()); + } + + public boolean isProcessoImportado(String numeroDocumento, String anoDocumento){ + ControleMigracao processoMigrado = dao.buscaProcessoImportado(getControleMigracaoID(numeroDocumento, anoDocumento)); + + if(processoMigrado != null && processoMigrado.isProcessoMigrado()){ + return true; + } + + return false; + } + + public void isProcessoSipar(String numeroDocumento, String anoDocumento, String digitoDocumento) throws ResourceNotFoundException{ + if(dao.getDocumento(numeroDocumento, anoDocumento, digitoDocumento) == null){ + throw new ResourceNotFoundException(messages.getMessage("erro.processo.nao.pertence.sipar",(numeroDocumento+anoDocumento+digitoDocumento))); + } + } + + public URI getResourcePath(String resourceId){ + UriBuilder builder = uriInfo.getAbsolutePathBuilder(); + + builder.path(resourceId); + + return builder.build(); + } +} diff --git a/src/main/java/br/gov/ans/integracao/sei/rest/TarefaResource.java b/src/main/java/br/gov/ans/integracao/sei/rest/TarefaResource.java index 74f4a3b..a164562 100644 --- a/src/main/java/br/gov/ans/integracao/sei/rest/TarefaResource.java +++ b/src/main/java/br/gov/ans/integracao/sei/rest/TarefaResource.java @@ -29,7 +29,9 @@ public class TarefaResource { * @apiName listarTarefas * @apiGroup Tarefa * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Lista os tipos de tarefas existentes no SEI. * * @apiParam (Query Parameters) {String} [nome] Filtro para o nome da tarefa. diff --git a/src/main/java/br/gov/ans/integracao/sei/rest/TipoConferenciaResource.java b/src/main/java/br/gov/ans/integracao/sei/rest/TipoConferenciaResource.java index 641c229..e3a9f01 100644 --- a/src/main/java/br/gov/ans/integracao/sei/rest/TipoConferenciaResource.java +++ b/src/main/java/br/gov/ans/integracao/sei/rest/TipoConferenciaResource.java @@ -14,6 +14,7 @@ import br.gov.ans.integracao.sei.client.TipoConferencia; import br.gov.ans.integracao.sei.modelo.Operacao; import br.gov.ans.integracao.sei.utils.Constantes; +@Path("/") public class TipoConferenciaResource { @Inject @@ -27,7 +28,9 @@ public class TipoConferenciaResource { * @apiName listarTiposConferencia * @apiGroup Tipos Conferência * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Lista os tipos de conferência. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI diff --git a/src/main/java/br/gov/ans/integracao/sei/rest/UnidadeResource.java b/src/main/java/br/gov/ans/integracao/sei/rest/UnidadeResource.java index 17a04af..6b0390d 100644 --- a/src/main/java/br/gov/ans/integracao/sei/rest/UnidadeResource.java +++ b/src/main/java/br/gov/ans/integracao/sei/rest/UnidadeResource.java @@ -4,7 +4,6 @@ import java.rmi.RemoteException; import java.util.ArrayList; import java.util.HashMap; -import javax.ejb.Stateless; import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; @@ -22,7 +21,6 @@ import br.gov.ans.integracao.sei.utils.Constantes; import br.gov.ans.utils.MessageUtils; @Path("/unidades") -@Stateless public class UnidadeResource { @Inject @@ -41,7 +39,9 @@ public class UnidadeResource { * @apiName listarUnidades * @apiGroup Unidade * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Retorna as Unidades cadastradas no SEI. * * @apiExample {curl} Exemplo de requisição: @@ -61,11 +61,11 @@ public class UnidadeResource { */ @GET @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) - public br.gov.ans.integracao.sei.client.Unidade[] listarUnidades() throws RemoteException{ + public br.gov.ans.integracao.sei.client.Unidade[] listarUnidades() throws Exception{ return seiNativeService.listarUnidades(Constantes.SEI_BROKER, Operacao.LISTAR_UNIDADES, null, null); } - public HashMap getUnidades() throws RemoteException { + public HashMap getUnidades() throws Exception { if(unidades == null){ logger.info(messages.getMessage("carregando.unidades")); @@ -86,7 +86,9 @@ public class UnidadeResource { * @apiName consultarCodigo * @apiGroup Unidade * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Retorna o código da Unidade pesquisada. * * @apiParam (Path Parameters) {String} unidade Sigla da Unidade que deseja consultar o código @@ -109,6 +111,10 @@ public class UnidadeResource { public String consultarCodigo(@PathParam("chave") String chave) throws Exception{ logger.debug(messages.getMessage("consultando.unidade",chave)); + if(isInteger(chave)){ + return chave; + } + if(!getUnidades().containsKey(chave.toUpperCase())){ throw new BusinessException(messages.getMessage("erro.unidade.nao.encontrada", chave)); } diff --git a/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java b/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java index 05541cb..8989544 100644 --- a/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java +++ b/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java @@ -4,15 +4,16 @@ import static br.gov.ans.integracao.sei.utils.Util.formatarNumeroProcesso; import static br.gov.ans.integracao.sei.utils.Util.getSOuN; import static br.gov.ans.integracao.sei.utils.Util.trueOrFalse; +import java.rmi.RemoteException; import java.util.Arrays; import java.util.List; -import javax.ejb.Stateless; import javax.inject.Inject; import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; import javax.ws.rs.GET; +import javax.ws.rs.NotFoundException; import javax.ws.rs.POST; -import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; @@ -29,7 +30,6 @@ import br.gov.ans.integracao.sip.client.SIPSoapClient; import br.gov.ans.utils.MessageUtils; @Path("/") -@Stateless public class UsuarioResource { @Inject @@ -49,11 +49,14 @@ public class UsuarioResource { * @apiName listarUsuarios * @apiGroup Usuario * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Este método realiza uma consulta aos usuários cadastrados que possuem o perfil "Básico". * - * @apiParam {String} unidade Sigla da Unidade cadastrada no SEI - * @apiParam {String} [usuario=null] Id do usuário que deseja recuperar as informações + * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. + * + * @apiParam (Query Parameters) {String} [usuario=null] Id do usuário que deseja recuperar as informações * * @apiExample {curl} Exemplo de requisição: * curl -i http:///sei-broker/service/usuarios/COSAP @@ -70,23 +73,26 @@ public class UsuarioResource { @GET @Path("/{unidade}/usuarios") @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) - public br.gov.ans.integracao.sei.client.Usuario[] listarUsuarios(@PathParam("unidade") String unidade, @QueryParam("usuario") String usuario) throws Exception{ + public br.gov.ans.integracao.sei.client.Usuario[] listarUsuarios(@PathParam("unidade") String unidade, @QueryParam("usuario") String usuario) throws RemoteException, Exception{ return seiNativeService.listarUsuarios(Constantes.SEI_BROKER, Operacao.LISTAR_USUARIOS, unidadeResource.consultarCodigo(unidade), usuario); } /** - * @api {get} /usuarios/:usuario Buscar usuário + * @api {get} :unidade/usuarios/:usuario Buscar usuário * @apiName buscarUsuario * @apiGroup Usuario * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Este método realiza a uma busca pelo login do usuário. * - * @apiParam {String} usuario Login do usuário + * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. + * @apiParam (Path Parameters) {String} usuario Login do usuário * * @apiExample Exemplo de requisição: - * curl -i http:///sei-broker/service/usuarios/andre.guimaraes + * curl -i http:///sei-broker/service/cosap/usuarios/andre.guimaraes * * @apiSuccess {Usuario} usuario Informações do usuário encontrado. * @@ -109,13 +115,16 @@ public class UsuarioResource { * @apiName atribuirProcesso * @apiGroup Usuario * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER + * * @apiDescription Este método atribui o processo a um usuário. * - * @apiParam {String} unidade Sigla da Unidade cadastrada no SEI - * @apiParam {String} processo Numero do processo a ser atribuído - * @apiParam {String} usuario Login do usuário a quem deseja atribuir o processo - * @apiParam {String} [reabrir-processo=N] S ou N para reabrir o processo + * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI + * @apiParam (Path Parameters) {String} usuario Login do usuário a quem deseja atribuir o processo + * + * @apiParam (Request Body) {String} processo Numero do processo a ser atribuído + * @apiParam (Request Body) {String} [reabrir-processo=N] S ou N para reabrir o processo * * @apiExample Exemplo de requisição: * endpoint: [POST] http:///sei-broker/service/COSAP/usuarios/andre.guimaraes/processos @@ -148,19 +157,21 @@ public class UsuarioResource { } /** - * @api {post} /usuarios/incluir-alterar Incluir ou alterar usuário + * @api {post} /usuarios Incluir usuário * @apiName incluirUsuario * @apiGroup Usuario * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER_ADM + * * @apiDescription Este método realiza a inclusão de novos usuários ou alterarações nos usuários existentes. * - * @apiParam {String} codigo Código que deseja atribuir ao usuário - * @apiParam {String} nome Nome do usuário - * @apiParam {String} login Login que será atribuído ao usuário + * @apiParam (Request Body) {String} codigo Código que deseja atribuir ao usuário + * @apiParam (Request Body) {String} nome Nome do usuário + * @apiParam (Request Body) {String} login Login que será atribuído ao usuário * * @apiExample Exemplo de requisição: - * endpoint: http:///sei-broker/service/usuarios/incluir-alterar + * endpoint: http:///sei-broker/service/usuarios * * body: * { @@ -179,7 +190,7 @@ public class UsuarioResource { * } */ @POST - @Path("/usuarios/incluir-alterar") + @Path("/usuarios") @Consumes({MediaType.APPLICATION_JSON}) @Produces(MediaType.APPLICATION_JSON) public Boolean incluirUsuario(Usuario usuario) throws Exception{ @@ -188,11 +199,13 @@ public class UsuarioResource { /** - * @api {post} /usuarios/excluir Excluir usuário + * @api {delete} /usuarios/:login Excluir usuário * @apiName excluirUsuario * @apiGroup Usuario * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER_ADM + * * @apiDescription Este método realiza a exclusão de usuários. * * @apiParam {String} codigo Código que deseja atribuir ao usuário @@ -200,7 +213,7 @@ public class UsuarioResource { * @apiParam {String} login Login que será atribuído ao usuário * * @apiExample Exemplo de requisição: - * endpoint: http:///sei-broker/service/usuarios/excluir + * endpoint: [DELETE] http:///sei-broker/service/usuarios/andre.guimaraes * * body: * { @@ -218,21 +231,23 @@ public class UsuarioResource { * "code":"código do erro" * } */ - @POST - @Path("/usuarios/excluir") + @DELETE + @Path("/usuarios/{login}") @Consumes({MediaType.APPLICATION_JSON}) @Produces(MediaType.APPLICATION_JSON) - public Boolean excluirUsuario(Usuario usuario) throws Exception{ + public Boolean excluirUsuario(@PathParam("login") String login,Usuario usuario) throws Exception{ return manterUsuario(Acao.EXCLUIR, usuario); } /** - * @api {put} /usuarios/desativar Desativar usuário + * @api {delete} /usuarios/ativos Desativar usuário * @apiName desativarUsuario * @apiGroup Usuario * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER_ADM + * * @apiDescription Este método desativa usuários. * * @apiParam {String} codigo Código que deseja atribuir ao usuário @@ -240,7 +255,7 @@ public class UsuarioResource { * @apiParam {String} login Login que será atribuído ao usuário * * @apiExample Exemplo de requisição: - * endpoint: http:///sei-broker/service/usuarios/desativar + * endpoint: [DELETE] http:///sei-broker/service/usuarios/ativos/andre.guimaraes * * body: * { @@ -258,21 +273,23 @@ public class UsuarioResource { * "code":"código do erro" * } */ - @PUT - @Path("/usuarios/desativar") + @DELETE + @Path("/usuarios/ativos/{login}") @Consumes({MediaType.APPLICATION_JSON}) @Produces(MediaType.APPLICATION_JSON) - public Boolean desativarUsuario(Usuario usuario) throws Exception{ + public Boolean desativarUsuario(@PathParam("login") String login,Usuario usuario) throws Exception{ return manterUsuario(Acao.DESATIVAR, usuario); } /** - * @api {put} /usuarios/ativar Ativar usuário + * @api {post} /usuarios/ativos Ativar usuário * @apiName ativarUsuario * @apiGroup Usuario * @apiVersion 2.0.0 - * + * + * @apiPermission RO_SEI_BROKER_ADM + * * @apiDescription Este método reativa usuários. * * @apiParam {String} codigo Código que deseja atribuir ao usuário @@ -280,7 +297,7 @@ public class UsuarioResource { * @apiParam {String} login Login que será atribuído ao usuário * * @apiExample Exemplo de requisição: - * endpoint: http:///sei-broker/service/usuarios/ativar + * endpoint: http:///sei-broker/service/usuarios/ativos * * body: * { @@ -298,8 +315,8 @@ public class UsuarioResource { * "code":"código do erro" * } */ - @PUT - @Path("/usuarios/ativar") + @POST + @Path("/usuarios/ativos") @Consumes({MediaType.APPLICATION_JSON}) @Produces(MediaType.APPLICATION_JSON) public Boolean ativarUsuario(Usuario usuario) throws Exception{ @@ -311,7 +328,7 @@ public class UsuarioResource { return sipClient.replicarUsuario(acao.getCodigoAcao(), usuario.getCodigo(), Constantes.CODIGO_ORGAO_ANS, usuario.getLogin(), usuario.getNome()); } - public br.gov.ans.integracao.sei.client.Usuario getUsuario(String loginUsuario, String unidade) throws Exception{ + public br.gov.ans.integracao.sei.client.Usuario getUsuario(String loginUsuario, String unidade) throws NotFoundException,Exception{ br.gov.ans.integracao.sei.client.Usuario usuario = new br.gov.ans.integracao.sei.client.Usuario(); usuario.setSigla(loginUsuario); @@ -320,7 +337,7 @@ public class UsuarioResource { int index = usuarios.indexOf(usuario); if(index < 0){ - throw new Exception(messages.getMessage("erro.usuario.nao.encontrado", loginUsuario)); + throw new NotFoundException(messages.getMessage("erro.usuario.nao.encontrado", loginUsuario)); } return usuarios.get(index); diff --git a/src/main/java/br/gov/ans/integracao/sipar/dao/ControleMigracao.java b/src/main/java/br/gov/ans/integracao/sipar/dao/ControleMigracao.java new file mode 100644 index 0000000..2c57e47 --- /dev/null +++ b/src/main/java/br/gov/ans/integracao/sipar/dao/ControleMigracao.java @@ -0,0 +1,56 @@ +package br.gov.ans.integracao.sipar.dao; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@Entity +@Table(schema="DBPSIPAR", name="TB_CONTROLE_MIGRACAO_SIPAR_SEI") +public class ControleMigracao implements Serializable { + + private static final long serialVersionUID = 1L; + + @EmbeddedId + private ControleMigracaoId id; + + @Temporal(TemporalType.TIMESTAMP) + @Column(name = "DT_ULTIMA_ALTERACAO_CONTROLE") + private Date dataUltimaAlteracao; + + @Column(name="LG_DOCUMENTO_MIGRACAO_SEI") + private Integer migrado; + + public ControleMigracaoId getId() { + return id; + } + + public void setId(ControleMigracaoId id) { + this.id = id; + } + + public Date getDataUltimaAlteracao() { + return dataUltimaAlteracao; + } + + public void setDataUltimaAlteracao(Date dataUltimaAlteracao) { + this.dataUltimaAlteracao = dataUltimaAlteracao; + } + + public Integer getMigrado() { + return migrado; + } + + public void setMigrado(Integer migrado) { + this.migrado = migrado; + } + + public boolean isProcessoMigrado() { + return this.migrado == 1 ? true : false; + } +} diff --git a/src/main/java/br/gov/ans/integracao/sipar/dao/ControleMigracaoId.java b/src/main/java/br/gov/ans/integracao/sipar/dao/ControleMigracaoId.java new file mode 100644 index 0000000..eeab6e0 --- /dev/null +++ b/src/main/java/br/gov/ans/integracao/sipar/dao/ControleMigracaoId.java @@ -0,0 +1,61 @@ +package br.gov.ans.integracao.sipar.dao; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Embeddable; + +@Embeddable +public class ControleMigracaoId implements Serializable { + + private static final long serialVersionUID = 1L; + + @Column(name = "CD_SEQ_DOCUMENTO") + private String numero; + + @Column(name = "NR_ANO_DOCUMENTO") + private String ano; + + public ControleMigracaoId() { + } + + public ControleMigracaoId(String numero, String ano) { + this.numero = numero; + this.ano = ano; + } + + public String getNumero() { + return numero; + } + + public void setNumero(String numero) { + this.numero = numero; + } + + public String getAno() { + return ano; + } + + public void setAno(String ano) { + this.ano = ano; + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof ControleMigracao) { + ControleMigracao controleMigracao = (ControleMigracao) obj; + return (this.numero != null && this.numero.equals(controleMigracao.getId().getNumero()) && + this.ano != null && this.ano.equals(controleMigracao.getId().getAno())); + } + return false; + } + + @Override + public int hashCode() { + final int numeroPrimo = 31; + int resultado = 1; + resultado = (numeroPrimo * resultado) + ((this.numero == null) ? 0 : this.numero.hashCode()); + resultado = (numeroPrimo * resultado) + ((this.ano == null) ? 0 : this.ano.hashCode()); + return resultado; + } +} diff --git a/src/main/java/br/gov/ans/integracao/sipar/dao/DocumentoSipar.java b/src/main/java/br/gov/ans/integracao/sipar/dao/DocumentoSipar.java new file mode 100644 index 0000000..75d8a31 --- /dev/null +++ b/src/main/java/br/gov/ans/integracao/sipar/dao/DocumentoSipar.java @@ -0,0 +1,130 @@ +package br.gov.ans.integracao.sipar.dao; + +import java.util.Date; + +import javax.persistence.Entity; +import javax.persistence.EntityResult; +import javax.persistence.FieldResult; +import javax.persistence.Id; +import javax.persistence.NamedNativeQuery; +import javax.persistence.SqlResultSetMapping; + +@Entity +@SqlResultSetMapping(name="DocumentoSiparMapping", entities={ + @EntityResult(entityClass = DocumentoSipar.class, + fields = { + @FieldResult(name = "digito", column = "NU_DIGITO_DOCUMENTO"), + @FieldResult(name = "operadora", column = "CO_OPERADORA"), + @FieldResult(name = "emissao", column = "DT_EMISSAO_DOCUMENTO"), + @FieldResult(name = "registro", column = "DT_REGISTRO"), + @FieldResult(name = "tipo", column = "CO_TIPO_DOCUMENTO"), + @FieldResult(name = "resumo", column = "DS_RESUMO_DOCUMENTO"), + @FieldResult(name = "orgaoPosse", column = "CO_ORGAO_POSSE"), + @FieldResult(name = "orgaoOrigem", column = "CO_ORGAO_ORIGEM"), + @FieldResult(name = "orgaoRegistro", column = "CO_ORGAO_REGISTRO"), + @FieldResult(name = "assunto", column = "CO_ASSUNTO") + }) +}) +@NamedNativeQuery(name = "documentoPorNumeroAnoDigito", resultSetMapping = "DocumentoSiparMapping", +query = "SELECT TB.NU_DIGITO_DOCUMENTO, TB.CO_OPERADORA, TB.DT_EMISSAO_DOCUMENTO, TB.DT_REGISTRO, TB.CO_TIPO_DOCUMENTO, " + + "TB.DS_RESUMO_DOCUMENTO, TB.CO_ORGAO_POSSE, TB.CO_ORGAO_ORIGEM, TB.CO_ORGAO_REGISTRO, RL.CO_ASSUNTO " + + "FROM DBPSIPAR.TB_DOCUMENTO TB " + + "LEFT JOIN DBPSIPAR.RL_ASSUNTO_DOCUMENTO RL ON RL.CO_DOCUMENTO = TB.CO_SEQ_DOCUMENTO " + + "AND RL.NU_ANO_DOCUMENTO = TB.NU_ANO_DOCUMENTO " + + "WHERE TB.CO_SEQ_DOCUMENTO = :numeroDocumento " + + "AND TB.NU_ANO_DOCUMENTO = :anoDocumento " + + "AND TB.NU_DIGITO_DOCUMENTO = :digitoDocumento") +public class DocumentoSipar { + @Id + private String digito; + private String operadora; + private Date emissao; + private Date registro; + private String tipo; + private String resumo; + private Long orgaoPosse; + private Long orgaoOrigem; + private Long orgaoRegistro; + private Long assunto; + + public String getDigito() { + return digito; + } + + public void setDigito(String digito) { + this.digito = digito; + } + + public Long getAssunto() { + return assunto; + } + + public void setAssunto(Long assunto) { + this.assunto = assunto; + } + + public String getOperadora() { + return operadora; + } + + public void setOperadora(String operadora) { + this.operadora = operadora; + } + + public Date getEmissao() { + return emissao; + } + + public void setEmissao(Date emissao) { + this.emissao = emissao; + } + + public String getTipo() { + return tipo; + } + + public void setTipo(String tipo) { + this.tipo = tipo; + } + + public String getResumo() { + return resumo; + } + + public void setResumo(String resumo) { + this.resumo = resumo; + } + + public Long getOrgaoPosse() { + return orgaoPosse; + } + + public void setOrgaoPosse(Long orgaoPosse) { + this.orgaoPosse = orgaoPosse; + } + + public Long getOrgaoOrigem() { + return orgaoOrigem; + } + + public void setOrgaoOrigem(Long orgaoOrigem) { + this.orgaoOrigem = orgaoOrigem; + } + + public Long getOrgaoRegistro() { + return orgaoRegistro; + } + + public void setOrgaoRegistro(Long orgaoRegistro) { + this.orgaoRegistro = orgaoRegistro; + } + + public Date getRegistro() { + return registro; + } + + public void setRegistro(Date registro) { + this.registro = registro; + } + +} diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml index 9730aaa..9a3234f 100644 --- a/src/main/resources/META-INF/persistence.xml +++ b/src/main/resources/META-INF/persistence.xml @@ -7,7 +7,7 @@ jdbc/sei-broker - br.gov.ans.integracao.sei.modelo.DocumentoSipar + br.gov.ans.integracao.sipar.dao.DocumentoSipar br.gov.ans.integracao.sei.modelo.InclusaoDocumento br.gov.ans.modelo.LogIntegracaoSistemica @@ -21,10 +21,11 @@ jdbc/sei-mysql - - br.gov.ans.integracao.sei.modelo.ProcessoResumido br.gov.ans.integracao.sei.modelo.Contato + br.gov.ans.integracao.sei.modelo.DocumentoResumido + br.gov.ans.integracao.sei.modelo.ProcessoResumido br.gov.ans.integracao.sei.modelo.Tarefa + br.gov.ans.integracao.sei.modelo.Tipo diff --git a/src/main/resources/messages.properties b/src/main/resources/messages.properties index 8cc1211..0fbf13e 100644 --- a/src/main/resources/messages.properties +++ b/src/main/resources/messages.properties @@ -32,12 +32,18 @@ erro.persistir.confirmacao.inclusao.documento = Ocorreu um erro ao persistir a c erro.processar.conteudo.json = Erro ao processar o conteudo JSON, verifique a formação do JSON e se o envio foi realizado em Base64. erro.processo.anexado.nao.infomado = Número do processo a anexar não informado. erro.processo.incluir.bloco = Não foi possivel incluir o processo no bloco. +erro.processo.nao.importado = O processo {0} não foi encontrado nos registros de importação. +erro.processo.nao.pertence.sei = O processo {0} não pertence ao SEI. +erro.processo.nao.pertence.sipar = O processo {0} não pertence ao SIPAR. erro.processo.relacionado.nao.infomado = É necessário informar o número do processo relacionado. +erro.processo.sem.documentos = Nenhum documento anexado ao processo {0}. +erro.processo.sipar.importado = O processo {0} já foi importado para o SEI. erro.registrar.exclusao.documento = Erro ao registrar a exclusão do documento {0}. erro.registro.inclusao = Ocorreu um erro ao persistir o registro de inclusão. erro.relacionar.processo = Ocorreu um erro ao relacionar os processos. erro.remover.sobrestamento.processo = Ocorreu um erro ao remover o sobrestamento do processo. erro.sei = Ocorreu um erro no SEI. +erro.series.nao.encontradas = Nenhuma série foi encontrada para o filtro informado. erro.sobrestar.processo = Ocorreu um erro ao sobrestar o processo. erro.tamanho.arquivo = Tamanho do arquivo maior que o permitido para integração. erro.tamanho.documento = Tamanho do documento maior que o permitido para integração, utilize o envio particionado. @@ -50,6 +56,7 @@ erro.template.documento.recebido = O uso de templates é vedado a documentos gera erro.template.nao.encontrado = Template {0} não encontrado. erro.testar.mysql = Erro ao testar conexao MySQL. erro.testar.oracle = Erro ao testar conexao Oracle. +erro.tipo.documento.nao.encontrado = Nenhum tipo de documento foi encontrado. erro.tipo.pessoa.invalido = Tipo de pessoa inválido. erro.unidade.nao.encontrada = Unidade {0} não encontrada. erro.usuario.nao.encontrado = Usuário {0} não encontrado. diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index ddabd22..67144b0 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -69,6 +69,21 @@ + Serviço Rest de Integração ao SEI + + Todos os serviços + /service/usuarios/* + DELETE + POST + PUT + GET + + + RO_SEI_BROKER_ADM + + + + Serviço Rest de Apoio Serviço de verificação da versão @@ -81,6 +96,10 @@ RO_SEI_BROKER + + + RO_SEI_BROKER_ADM + @@ -142,5 +161,9 @@ resteasy.sAXExceptionHandler br.gov.ans.exceptions.handlers.SAXExceptionHandler + + + resteasy.persistenceExceptionHandler + br.gov.ans.exceptions.handlers.PersistenceExceptionHandler \ No newline at end of file diff --git a/src/main/webapp/api-docs/api_data.js b/src/main/webapp/api-docs/api_data.js index 44b4c05..7f6fabe 100644 --- a/src/main/webapp/api-docs/api_data.js +++ b/src/main/webapp/api-docs/api_data.js @@ -6,6 +6,11 @@ define({ "api": [ "name": "adicionarArquivo", "group": "Arquivo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

O serviço criará um arquivo no repositório de documentos e retornará seu identificador. O envio do arquivo poderá ser particionado com chamadas posteriores ao serviço de Adicionar Conteúdo Arquivo. Após todo o conteúdo ser transferido o arquivo será ativado e poderá ser associado com um documento externo no serviço de inclusão de documento. Serão excluídos em 24 horas os arquivos não completados e não associados a um documento.

", "parameter": { "fields": { @@ -109,7 +114,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ArquivoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ArquivoResource.java", "groupTitle": "Arquivo" }, { @@ -119,6 +124,11 @@ define({ "api": [ "name": "adicionarConteudoArquivo", "group": "Arquivo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Adiciona conteúdo a um arquivo criado, o sistema identificará automaticamente quando o conteúdo foi completado validando o tamanho em bytes e o hash do conteúdo. Quando as condições forem satisfeitas o arquivo será ativado e poderá ser utilizado nas chamadas de inclusão de documento.

", "parameter": { "fields": { @@ -215,7 +225,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ArquivoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ArquivoResource.java", "groupTitle": "Arquivo" }, { @@ -225,6 +235,11 @@ define({ "api": [ "name": "cancelarDisponibilizacaoBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Cancela a disponibilização de blocos.

", "parameter": { "fields": { @@ -275,7 +290,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -285,6 +300,11 @@ define({ "api": [ "name": "consultarBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Recupera as informações do bloco informado.

", "parameter": { "fields": { @@ -478,7 +498,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -488,6 +508,11 @@ define({ "api": [ "name": "disponibilizarBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Disponibiliza um determinado bloco.

", "parameter": { "fields": { @@ -540,7 +565,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -550,6 +575,11 @@ define({ "api": [ "name": "excluirBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Exclui um bloco criado.

", "parameter": { "fields": { @@ -600,7 +630,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -610,6 +640,11 @@ define({ "api": [ "name": "gerarBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Gera um novo bloco.

", "parameter": { "fields": { @@ -712,7 +747,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -722,6 +757,11 @@ define({ "api": [ "name": "incluirDocumentoComAnotacaoNoBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Inclui um documento no bloco.

", "parameter": { "fields": { @@ -789,7 +829,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -799,6 +839,11 @@ define({ "api": [ "name": "incluirDocumentoNoBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Inclui um documento no bloco.

", "parameter": { "fields": { @@ -858,7 +903,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -868,6 +913,11 @@ define({ "api": [ "name": "incluirProcessoComAnotacaoNoBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Inclui um processo no bloco, junto com uma anotação.

", "parameter": { "fields": { @@ -948,7 +998,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -958,6 +1008,11 @@ define({ "api": [ "name": "incluirProcessoNoBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Inclui um processo no bloco.

", "parameter": { "fields": { @@ -1030,7 +1085,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -1040,6 +1095,11 @@ define({ "api": [ "name": "retirarDocumentoDoBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Remove o documento do bloco.

", "parameter": { "fields": { @@ -1097,7 +1157,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -1107,6 +1167,11 @@ define({ "api": [ "name": "retirarProcessoDoBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Este método remove o processo do bloco.

", "parameter": { "fields": { @@ -1177,7 +1242,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -1203,37 +1268,9 @@ define({ "api": [ "type": "", "url": "", "version": "0.0.0", - "filename": "sei-broker/src/main/webapp/api-docs/main.js", - "group": "C__ANS_sei_broker_branches_desenvolvimento_versao_3_sei_broker_src_main_webapp_api_docs_main_js", - "groupTitle": "C__ANS_sei_broker_branches_desenvolvimento_versao_3_sei_broker_src_main_webapp_api_docs_main_js", - "name": "" - }, - { - "success": { - "fields": { - "Success 200": [ - { - "group": "Success 200", - "optional": false, - "field": "varname1", - "description": "

No type.

" - }, - { - "group": "Success 200", - "type": "String", - "optional": false, - "field": "varname2", - "description": "

With type.

" - } - ] - } - }, - "type": "", - "url": "", - "version": "0.0.0", - "filename": "sei-broker/target/sei-broker-2.1/api-docs/main.js", - "group": "C__ANS_sei_broker_branches_desenvolvimento_versao_3_sei_broker_target_sei_broker_2_1_api_docs_main_js", - "groupTitle": "C__ANS_sei_broker_branches_desenvolvimento_versao_3_sei_broker_target_sei_broker_2_1_api_docs_main_js", + "filename": "branch_homologacao/src/main/webapp/api-docs/main.js", + "group": "C__ANS_sei_broker_Fontes_branches_branch_homologacao_src_main_webapp_api_docs_main_js", + "groupTitle": "C__ANS_sei_broker_Fontes_branches_branch_homologacao_src_main_webapp_api_docs_main_js", "name": "" }, { @@ -1243,6 +1280,11 @@ define({ "api": [ "name": "listarCargos", "group": "Cargo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Lista os cargos.

", "parameter": { "fields": { @@ -1323,7 +1365,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/CargoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/CargoResource.java", "groupTitle": "Cargo" }, { @@ -1333,6 +1375,11 @@ define({ "api": [ "name": "atualizarContato", "group": "Contato", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Atualizar contato

", "parameter": { "fields": { @@ -1610,7 +1657,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", "groupTitle": "Contato" }, { @@ -1620,6 +1667,11 @@ define({ "api": [ "name": "criarContato", "group": "Contato", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Incluir contato

", "parameter": { "fields": { @@ -1894,7 +1946,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", "groupTitle": "Contato" }, { @@ -1904,6 +1956,11 @@ define({ "api": [ "name": "getContato", "group": "Contato", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta contato pela sigla(login)

", "parameter": { "fields": { @@ -2183,7 +2240,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", "groupTitle": "Contato" }, { @@ -2193,6 +2250,11 @@ define({ "api": [ "name": "listarContatos", "group": "Contato", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta os contatos de determinado tipo, o retorno pode ser PessoaFisica ou PessoaJuridica é recomendado utilizar a ans-commons-sei.

", "parameter": { "fields": { @@ -2525,7 +2587,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", "groupTitle": "Contato" }, { @@ -2535,6 +2597,11 @@ define({ "api": [ "name": "listarTipos", "group": "Contato", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta os tipos de contato.

", "parameter": { "fields": { @@ -2578,7 +2645,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", "groupTitle": "Contato" }, { @@ -2588,6 +2655,11 @@ define({ "api": [ "name": "cancelarDocumento", "group": "Documento", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Cancela um documento.

", "parameter": { "fields": { @@ -2647,7 +2719,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", "groupTitle": "Documento" }, { @@ -2657,6 +2729,11 @@ define({ "api": [ "name": "consultarDocumento", "group": "Documento", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta documento cadastrado no SEI.

", "parameter": { "fields": { @@ -2984,16 +3061,21 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", "groupTitle": "Documento" }, { "type": "get", - "url": "/:interessado/documentos", - "title": "Consultar por interessados", + "url": "/interessados/:interessado/documentos", + "title": "Consultar por interessado", "name": "consultarDocumentoInteressado", "group": "Documento", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Retorna os documentos de um determinado interessado.

", "parameter": { "fields": { @@ -3011,8 +3093,32 @@ define({ "api": [ "group": "Query Parameters", "type": "String", "optional": true, - "field": "unidade", - "description": "

Unidade da qual deseja filtrar os documentos

" + "field": "tipo", + "description": "

Tipo/Série do documento

" + }, + { + "group": "Query Parameters", + "type": "boolean", + "optional": true, + "field": "somenteAssinados", + "defaultValue": "false", + "description": "

Exibir somente documentos assinados

" + }, + { + "group": "Query Parameters", + "type": "boolean", + "optional": true, + "field": "orderByProcesso", + "defaultValue": "false", + "description": "

Ordenar pelo número do processo, por padrão o retorno é ordenado pela dataGeracao

" + }, + { + "group": "Query Parameters", + "type": "boolean", + "optional": true, + "field": "crescente", + "defaultValue": "false", + "description": "

Ordenar em ordem crescente

" }, { "group": "Query Parameters", @@ -3036,7 +3142,7 @@ define({ "api": [ "examples": [ { "title": "Exemplo de requisição:\t", - "content": "curl -i https:///sei-broker/service/363022/documentos", + "content": "curl -i https:///sei-broker/service/interessados/005711/documentos", "type": "json" } ], @@ -3048,42 +3154,35 @@ define({ "api": [ "type": "List", "optional": false, "field": "documentos", - "description": "

Lista com os documentos encontrados

" + "description": "

Lista com os documentos encontrados.

" }, { "group": "Sucesso Response Body - 200", "type": "DocumentoResumido", "optional": false, "field": "documentos.documentoResumido", - "description": "

Resumo do documento encontrado no SEI

" + "description": "

Resumo do documento encontrado no SEI.

" }, { "group": "Sucesso Response Body - 200", "type": "String", "optional": false, "field": "documentos.documentoResumido.numero", - "description": "

Número do documento

" - }, - { - "group": "Sucesso Response Body - 200", - "type": "String", - "optional": false, - "field": "documentos.documentoResumido.tipo", - "description": "

Tipo do documento

" + "description": "

Número do documento.

" }, { "group": "Sucesso Response Body - 200", "type": "String", "optional": false, - "field": "documentos.documentoResumido.processo", - "description": "

Processo ao qual o documento pertence

" + "field": "documentos.documentoResumido.numeroInformado", + "description": "

Número informado na inclusão do documento, também conhecido como número de árvore.

" }, { "group": "Sucesso Response Body - 200", "type": "String", "optional": false, "field": "documentos.documentoResumido.unidade", - "description": "

Unidade responsável pelo processo

" + "description": "

Unidade responsável pelo documento.

" }, { "group": "Sucesso Response Body - 200", @@ -3094,14 +3193,56 @@ define({ "api": [ ], "optional": false, "field": "documentos.documentoResumido.origem", - "description": "

Origem do documento, se o mesmo é um documento "GERADO" internamente ou "RECEBIDO" de uma fonte externa

" + "description": "

Origem do documento, se o mesmo é um documento "GERADO" internamente ou "RECEBIDO" de uma fonte externa.

" }, { "group": "Sucesso Response Body - 200", "type": "Data", "optional": false, "field": "documentos.documentoResumido.dataGeracao", - "description": "

Data de geração do documento

" + "description": "

Data de geração do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "documentos.documentoResumido.processo", + "description": "

Processo onde o documento está incluído.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "Tipo", + "optional": false, + "field": "documentos.documentoResumido.tipo", + "description": "

Objeto representando o tipo do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "documentos.documentoResumido.tipo.codigo", + "description": "

Identificados do tipo do documento, também conhecido como série.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "documentos.documentoResumido.tipo.nome", + "description": "

Nome do tipo do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "documentos.documentoResumido.tipoConferencia", + "description": "

Tipo de conferência do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "boolean", + "optional": false, + "field": "documentos.documentoResumido.assinado", + "description": "

Boolean indicando se o documento foi assinado.

" } ], "Sucesso Response Header - 200": [ @@ -3117,7 +3258,7 @@ define({ "api": [ "examples": [ { "title": "Success-Response:", - "content": "HTTP/1.1 200 OK\n{\n \"dataGeracao\": \"2015-08-25T00:00:00-03:00\",\n \"numero\": \"0057646\",\n \"origem\": \"RECEBIDO\",\n \"processo\": \"33902.554351/2015-16\",\n \"tipo\": \"Contrato\",\n \"unidade\": \"COAI\"\n}", + "content": "HTTP/1.1 200 OK\n{\n \"numero\": \"0670949\",\n \"numeroInformado\": \"594\",\n \"unidade\": \"COSAP\",\n \"origem\": \"RECEBIDO\",\n \"dataGeracao\": \"2015-08-10T00:00:00-03:00\",\n \"processo\": \"33910.000002/2017-41\",\n \"tipo\": {\n \t\"codigo\": \"629\",\n \t\"nome\": \"Relatório de Arquivamento-SIF\"\n }\n \"tipoConferencia\": \"4\",\n \"assinado\": true\n}", "type": "json" } ] @@ -3131,7 +3272,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", "groupTitle": "Documento" }, { @@ -3141,6 +3282,11 @@ define({ "api": [ "name": "consultarDocumentosIncluidosBroker", "group": "Documento", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta documentos inclusos pelo SEI-Broker.

", "parameter": { "fields": { @@ -3302,7 +3448,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", "groupTitle": "Documento" }, { @@ -3312,6 +3458,11 @@ define({ "api": [ "name": "exportarDocumento", "group": "Documento", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Exporta documentos do SEI em PDF.

", "parameter": { "fields": { @@ -3362,7 +3513,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", "groupTitle": "Documento" }, { @@ -3372,6 +3523,11 @@ define({ "api": [ "name": "incluirDocumento", "group": "Documento", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Inclui um documento no SEI, podem ser incluídos documentos internos e externos, para documentos externo o tamanho máximo é 20MB.

", "parameter": { "fields": { @@ -3446,7 +3602,7 @@ define({ "api": [ "type": "String", "optional": true, "field": "data", - "description": "

Data do documento, obrigatório para documentos externos. Passar null para documentos gerados

" + "description": "

Data do documento (dd/MM/yyyy), obrigatório para documentos externos. Passar null para documentos gerados.

" }, { "group": "Request Body", @@ -3547,7 +3703,7 @@ define({ "api": [ "\"0 (público)\"", "\"1 (restrito)\"", "\"2 (sigiloso)\"", - "\"null (herda do processo)\"" + "\"null (herda do tipo de processo)\"" ], "optional": true, "field": "nivelAcesso", @@ -3661,7 +3817,95 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", + "groupTitle": "Documento" + }, + { + "type": "get", + "url": "/:unidade/tipos-documentos", + "title": "Listar tipos documentos", + "name": "listarTiposDocumentos", + "group": "Documento", + "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], + "description": "

Lista os tipos de documentos do SEI.

", + "parameter": { + "fields": { + "Path Parameters": [ + { + "group": "Path Parameters", + "type": "String", + "optional": false, + "field": "unidade", + "description": "

Sigla da Unidade cadastrada no SEI.

" + } + ], + "Query Parameters": [ + { + "group": "Query Parameters", + "type": "String", + "optional": true, + "field": "filtro", + "description": "

Para filtrar por documentos que contenham o trecho no nome.

" + } + ] + } + }, + "examples": [ + { + "title": "Exemplo de requisição:", + "content": "curl -i https:///sei-broker/service/COSAP/tipos-documentos", + "type": "curl" + } + ], + "success": { + "fields": { + "Sucesso - 200": [ + { + "group": "Sucesso - 200", + "type": "List", + "optional": false, + "field": "tipos", + "description": "

Lista com os tipos de documentos

" + }, + { + "group": "Sucesso - 200", + "type": "String", + "optional": false, + "field": "tipos.identificador", + "description": "

Identificador do tipo de documento

" + }, + { + "group": "Sucesso - 200", + "type": "String", + "optional": false, + "field": "tipos.nome", + "description": "

Nome do tipo de documento

" + }, + { + "group": "Sucesso - 200", + "type": "String", + "optional": false, + "field": "series.aplicabilidade", + "description": "

T = Documentos internos e externos, I = documentos internos, E = documentos externos e F = formulários

" + } + ] + } + }, + "error": { + "examples": [ + { + "title": "Error-Response:", + "content": "HTTP/1.1 500 Internal Server Error\n{\n\t\"error\":\"Mensagem de erro.\"\n\t\"code\":\"código do erro\"\n}", + "type": "json" + } + ] + }, + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/SeriesResource.java", "groupTitle": "Documento" }, { @@ -3671,6 +3915,11 @@ define({ "api": [ "name": "getCidade", "group": "Endereco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta a cidade pelo código do IBGE.

", "parameter": { "fields": { @@ -3770,7 +4019,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", "groupTitle": "Endereco" }, { @@ -3780,6 +4029,11 @@ define({ "api": [ "name": "getCidades", "group": "Endereco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta as cidades de um determinado estado.

", "parameter": { "fields": { @@ -3888,7 +4142,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", "groupTitle": "Endereco" }, { @@ -3898,6 +4152,11 @@ define({ "api": [ "name": "getEstado", "group": "Endereco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta o estado pela sigla.

", "parameter": { "fields": { @@ -4000,7 +4259,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", "groupTitle": "Endereco" }, { @@ -4010,6 +4269,11 @@ define({ "api": [ "name": "getEstados", "group": "Endereco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta estados cadastrados.

", "parameter": { "fields": { @@ -4102,7 +4366,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", "groupTitle": "Endereco" }, { @@ -4112,6 +4376,11 @@ define({ "api": [ "name": "getPaises", "group": "Endereco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta países cadastrados.

", "parameter": { "fields": { @@ -4183,7 +4452,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", "groupTitle": "Endereco" }, { @@ -4193,6 +4462,11 @@ define({ "api": [ "name": "listarExtensoesPermitidas", "group": "Extensao", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Este método realiza uma busca pelas extensões de arquivos permitidas.

", "parameter": { "fields": { @@ -4267,7 +4541,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ExtensoesResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ExtensoesResource.java", "groupTitle": "Extensao" }, { @@ -4277,7 +4551,12 @@ define({ "api": [ "name": "listarHipoteses", "group": "Hipotese_Legal", "version": "2.0.0", - "description": "

Lista as hipóteses legais.

", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], + "description": "

Lista as hipóteses legais.

", "parameter": { "fields": { "Path Parameters": [ @@ -4357,7 +4636,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/HipoteseLegalResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/HipoteseLegalResource.java", "groupTitle": "Hipotese_Legal" }, { @@ -4432,7 +4711,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/InfoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/InfoResource.java", "groupTitle": "Info" }, { @@ -4472,7 +4751,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/InfoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/InfoResource.java", "groupTitle": "Info" }, { @@ -4512,7 +4791,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/InfoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/InfoResource.java", "groupTitle": "Info" }, { @@ -4552,7 +4831,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/InfoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/InfoResource.java", "groupTitle": "Info" }, { @@ -4562,6 +4841,11 @@ define({ "api": [ "name": "listarMarcadores", "group": "Marcador", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Lista os marcadores de uma unidade.

", "parameter": { "fields": { @@ -4633,7 +4917,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/MarcadorResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/MarcadorResource.java", "groupTitle": "Marcador" }, { @@ -4643,6 +4927,11 @@ define({ "api": [ "name": "marcarProcesso", "group": "Marcador", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Adiciona um processo ao marcador.

", "parameter": { "fields": { @@ -4712,7 +5001,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/MarcadorResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/MarcadorResource.java", "groupTitle": "Marcador" }, { @@ -4722,6 +5011,11 @@ define({ "api": [ "name": "abrirProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Abre um processo.

", "parameter": { "fields": { @@ -5022,7 +5316,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -5032,6 +5326,11 @@ define({ "api": [ "name": "anexarProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Anexar um processo.

", "parameter": { "fields": { @@ -5094,7 +5393,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -5104,6 +5403,11 @@ define({ "api": [ "name": "bloquearProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Bloquear um processo.

", "parameter": { "fields": { @@ -5159,7 +5463,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -5169,6 +5473,11 @@ define({ "api": [ "name": "concluirProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Conclui o processo informado.

", "parameter": { "fields": { @@ -5234,7 +5543,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -5244,6 +5553,11 @@ define({ "api": [ "name": "consultarProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Este método realiza uma consulta a processos no SEI e no SIPAR.

", "parameter": { "fields": { @@ -5952,29 +6266,40 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { "type": "get", - "url": "/:interessado/processos", - "title": "Consultar por interessados", - "name": "consultarProcessosInteressado", + "url": "/processos", + "title": "Listar processos", + "name": "consultarProcessos", "group": "Processo", "version": "2.0.0", - "description": "

Retorna os processos de um determinado interessado.

", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], + "description": "

Lista os processos conforme os filtros informados.

", "parameter": { "fields": { - "Path Parameters": [ + "Query Parameters": [ { - "group": "Path Parameters", + "group": "Query Parameters", + "type": "Boolean", + "optional": true, + "field": "crescente", + "defaultValue": "false", + "description": "

Ordenar em ordem crescente, processos mais antigos primeiro

" + }, + { + "group": "Query Parameters", "type": "String", - "optional": false, + "optional": true, "field": "interessado", "description": "

Identificador do interessado

" - } - ], - "Query Parameters": [ + }, { "group": "Query Parameters", "type": "String", @@ -5997,6 +6322,13 @@ define({ "api": [ "field": "qtdRegistros", "defaultValue": "50", "description": "

Quantidade de registros retornados por página

" + }, + { + "group": "Query Parameters", + "type": "String", + "optional": true, + "field": "tipo", + "description": "

Identificador do tipo de processo que deseja filtrar

" } ] } @@ -6004,7 +6336,7 @@ define({ "api": [ "examples": [ { "title": "Exemplo de requisição:\t", - "content": "curl -i https:///sei-broker/service/414247/processos", + "content": "curl -i https:///sei-broker/service/processos", "type": "json" } ], @@ -6059,6 +6391,27 @@ define({ "api": [ "optional": false, "field": "processos.processoResumido.dataGeracao", "description": "

Data de geração do processo

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "Tipo", + "optional": false, + "field": "processos.processoResumido.tipo", + "description": "

Objeto com os dados do tipo de processo

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "processos.processoResumido.tipo.codigo", + "description": "

Código do tipo

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "processos.processoResumido.tipo.nome", + "description": "

Nome do tipo

" } ], "Sucesso Response Header - 200": [ @@ -6070,7 +6423,14 @@ define({ "api": [ "description": "

quantidade de registros que existem para essa consulta.

" } ] - } + }, + "examples": [ + { + "title": "Success-Response:", + "content": "HTTP/1.1 200 OK\n{\n \"numero\": \"33910007118201710\",\n \"numeroFormatado\": \"33910.007118/2017-10\",\n \"descricao\": \"D:2237021 - SUL AMÉRICA SEGURO SAÚDE S/A\",\n \"unidade\": \"NÚCLEO-RJ\",\n \"dataGeracao\": \"2017-10-09T03:00:00.000+0000\",\n \"tipo\": {\n \t\"codigo\": \"100000882\",\n \t\"nome\": \"Fiscalização: Sancionador\"\n }\n}", + "type": "json" + } + ] }, "error": { "examples": [ @@ -6081,7 +6441,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -6091,6 +6451,11 @@ define({ "api": [ "name": "desanexarProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Remove um processo anexado.

", "parameter": { "fields": { @@ -6153,7 +6518,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -6163,6 +6528,11 @@ define({ "api": [ "name": "desbloquearProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Desbloquear um processo.

", "parameter": { "fields": { @@ -6209,7 +6579,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -6219,6 +6589,11 @@ define({ "api": [ "name": "desrelacionarProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Desrelacionar processos.

", "parameter": { "fields": { @@ -6272,7 +6647,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -6282,6 +6657,11 @@ define({ "api": [ "name": "enviarProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Envia processos a outras unidades.

", "parameter": { "fields": { @@ -6291,7 +6671,7 @@ define({ "api": [ "type": "String", "optional": false, "field": "unidade", - "description": "

Sigla da Unidade cadastrada no SEI

" + "description": "

Sigla da Unidade cadastrada no SEI. Representa a unidade de localização atual do processo.

" } ], "Query Parameters": [ @@ -6324,14 +6704,14 @@ define({ "api": [ "type": "String", "optional": false, "field": "processo", - "description": "

Numero do processo a ser enviado

" + "description": "

Numero do processo a ser enviado. Em caso de processo apensado, o processo a ser enviado deve ser o processo PAI. Não é possível tramitar através do processo FILHO.

" }, { "group": "Request Body", "type": "String[]", "optional": false, "field": "unidadesDestino", - "description": "

Códigos das unidades para onde o bloco será enviado

" + "description": "

Lista com os identificadores das unidades de destino do processo, código ou nome da unidade.

" }, { "group": "Request Body", @@ -6339,7 +6719,7 @@ define({ "api": [ "optional": false, "field": "manterAbertoOrigem", "defaultValue": "false", - "description": "

Informa se o processo deve continuar aberto na unidade de origem

" + "description": "

Informa se o processo deve continuar aberto na unidade de origem .

" }, { "group": "Request Body", @@ -6347,7 +6727,7 @@ define({ "api": [ "optional": false, "field": "removerAnotacoes", "defaultValue": "false", - "description": "

Informa se as anotações do processo devem ser removidas

" + "description": "

Informa se as anotações do processo devem ser removidas.

" }, { "group": "Request Body", @@ -6355,7 +6735,7 @@ define({ "api": [ "optional": false, "field": "enviarEmailNotificacao", "defaultValue": "false", - "description": "

Informa se deve ser enviado um e-mail de notificação

" + "description": "

Informa se deve ser enviado um e-mail de notificação.

" }, { "group": "Request Body", @@ -6363,7 +6743,7 @@ define({ "api": [ "optional": false, "field": "dataRetornoProgramado", "defaultValue": "null", - "description": "

Data para retorno programado do processo a unidade (padrão ISO-8601)

" + "description": "

Data para retorno programado do processo a unidade (padrão ISO-8601).

" }, { "group": "Request Body", @@ -6371,7 +6751,7 @@ define({ "api": [ "optional": false, "field": "qtdDiasAteRetorno", "defaultValue": "null", - "description": "

Quantidade de dias até o retorno do processo

" + "description": "

Quantidade de dias até o retorno do processo.

" }, { "group": "Request Body", @@ -6379,7 +6759,7 @@ define({ "api": [ "optional": false, "field": "somenteDiasUteis", "defaultValue": "false", - "description": "

Informa se só serão contabilizados dias úteis

" + "description": "

Informa se só serão contabilizados dias úteis.

" } ] } @@ -6413,7 +6793,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -6423,6 +6803,11 @@ define({ "api": [ "name": "lancarAndamento", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Lança um andamento ao processo.

", "parameter": { "fields": { @@ -6615,7 +7000,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -6625,6 +7010,11 @@ define({ "api": [ "name": "listarAndamentos", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Lista as andamentos do processo.

", "parameter": { "fields": { @@ -6822,16 +7212,21 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { "type": "get", - "url": "/:unidade/processos/:processo/documentos", + "url": "/processos/:processo/documentos", "title": "Listar documentos", "name": "listarDocumentosPorProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Retorna os documentos de um determinado processo.

", "parameter": { "fields": { @@ -6840,15 +7235,37 @@ define({ "api": [ "group": "Path Parameters", "type": "String", "optional": false, - "field": "unidade", - "description": "

Sigla da Unidade cadastrada no SEI.

" + "field": "processo", + "description": "

Número do processo.

" + } + ], + "Query Parameters": [ + { + "group": "Query Parameters", + "type": "String", + "optional": true, + "field": "tipo", + "defaultValue": "null", + "description": "

Identificador do tipo do documento, caso seja necessário filtrar pelo tipo

" }, { - "group": "Path Parameters", + "group": "Query Parameters", "type": "String", - "optional": false, - "field": "processo", - "description": "

Número do processo.

" + "allowedValues": [ + "\"G (gerado/interno), R (recebido/externo)\"" + ], + "optional": true, + "field": "origem", + "defaultValue": "null", + "description": "

Filtra os documentos por gerados ou recebidos

" + }, + { + "group": "Query Parameters", + "type": "boolean", + "optional": true, + "field": "somenteAssinados", + "defaultValue": "false", + "description": "

Exibir somente documentos assinados

" } ] } @@ -6856,7 +7273,7 @@ define({ "api": [ "examples": [ { "title": "Exemplo de requisição:\t", - "content": "curl -i https:///sei-broker/service/cosap/processos/33910003149201793/documentos", + "content": "curl -i https:///sei-broker/service/processos/33910003149201793/documentos", "type": "json" } ], @@ -6888,8 +7305,8 @@ define({ "api": [ "group": "Sucesso Response Body - 200", "type": "String", "optional": false, - "field": "documentos.documentoResumido.tipo", - "description": "

Tipo do documento.

" + "field": "documentos.documentoResumido.numeroInformado", + "description": "

Número informado na inclusão do documento, também conhecido como número de árvore.

" }, { "group": "Sucesso Response Body - 200", @@ -6908,13 +7325,48 @@ define({ "api": [ "optional": false, "field": "documentos.documentoResumido.dataGeracao", "description": "

Data de geração do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "Tipo", + "optional": false, + "field": "documentos.documentoResumido.tipo", + "description": "

Objeto representando o tipo do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "documentos.documentoResumido.tipo.codigo", + "description": "

Identificados do tipo do documento, também conhecido como série.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "documentos.documentoResumido.tipo.nome", + "description": "

Nome do tipo do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "documentos.documentoResumido.tipoConferencia", + "description": "

Tipo de conferência do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "boolean", + "optional": false, + "field": "documentos.documentoResumido.assinado", + "description": "

Boolean indicando se o documento foi assinado.

" } ] }, "examples": [ { "title": "Success-Response:", - "content": "HTTP/1.1 200 OK\n{\n \"dataGeracao\": \"2015-08-10T00:00:00-03:00\",\n \"numero\": \"0670949\",\n \"origem\": \"RECEBIDO\",\n \"tipo\": \"Despacho\"\n}", + "content": "HTTP/1.1 200 OK\n{\n \"numero\": \"0670949\",\n \"numeroInformado\": \"594\",\n \"origem\": \"RECEBIDO\",\n \"dataGeracao\": \"2015-08-10T00:00:00-03:00\",\n \"tipo\": {\n \t\"codigo\": \"629\",\n \t\"nome\": \"Relatório de Arquivamento-SIF\"\n }\n \"tipoConferencia\": \"4\",\n \"assinado\": true\n}", "type": "json" } ] @@ -6928,7 +7380,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -6938,6 +7390,11 @@ define({ "api": [ "name": "listarTiposProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta os tipos de processo.

", "parameter": { "fields": { @@ -6990,7 +7447,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -7000,6 +7457,11 @@ define({ "api": [ "name": "reabrirProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Reabre um processo.

", "parameter": { "fields": { @@ -7063,7 +7525,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -7073,6 +7535,11 @@ define({ "api": [ "name": "relacionarProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Relacionar processos.

", "parameter": { "fields": { @@ -7135,7 +7602,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -7145,6 +7612,11 @@ define({ "api": [ "name": "removerSobrestamentoProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Remover sobrestamento de processo.

", "parameter": { "fields": { @@ -7191,7 +7663,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -7201,6 +7673,11 @@ define({ "api": [ "name": "sobrestarProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Sobrestar processo.

", "parameter": { "fields": { @@ -7270,16 +7747,148 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { + "type": "delete", + "url": "/sipar/importados/:processo", + "title": "Cancelar Importação Processo", + "name": "cancelarImportacaoProcesso", + "group": "SIPAR", + "version": "2.0.0", + "description": "

Desmarca um processo físico (SIPAR) como importado para um processo eletrônico (SEI).

", + "parameter": { + "fields": { + "Path Parameter": [ + { + "group": "Path Parameter", + "type": "String", + "optional": false, + "field": "processo", + "description": "

Número do processo físico existente no SIPAR contendo 17 dígitos e iniciado com 33902. Ex. 33902111111111111

" + } + ] + } + }, + "examples": [ + { + "title": "Exemplo de requisição:", + "content": "curl -X DELETE http:///sei-broker/service/sipar/importados/33902112492200241", + "type": "curl" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response:", + "content": "HTTP/1.1 204 No Content", + "type": "json" + } + ] + }, + "error": { + "examples": [ + { + "title": "Error-Response:", + "content": "HTTP/1.1 500 Internal Server Error\n{\n\t\t\"error\":\"Mensagem de erro.\"\n\t\t\"code\":\"código do erro\"\n}", + "type": "json" + }, + { + "title": "Error-Response:", + "content": "HTTP/1.1 400 Bad Request\n{\n\t\t\"error\":\"Mensagem de erro.\"\n\t\t\"code\":\"código do erro\"\n}", + "type": "json" + }, + { + "title": "Error-Response:", + "content": "HTTP/1.1 404 Not Found\n{\n\t\t\"error\":\"Mensagem de erro.\"\n\t\t\"code\":\"código do erro\"\n}", + "type": "json" + } + ] + }, + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/SiparResource.java", + "groupTitle": "SIPAR" + }, + { + "type": "post", + "url": "/sipar/importados", + "title": "Importar Processo", + "name": "importarProcesso", + "group": "SIPAR", + "version": "2.0.0", + "description": "

Marca um processo físico (SIPAR) como importado para um processo eletrônico (SEI).

", + "parameter": { + "fields": { + "Header Parameters": [ + { + "group": "Header Parameters", + "type": "String", + "optional": false, + "field": "content-type", + "description": "

Informar text/plain

" + } + ], + "Request Body": [ + { + "group": "Request Body", + "type": "String", + "optional": false, + "field": "processo", + "description": "

Número do processo a ser importado

" + } + ] + } + }, + "examples": [ + { + "title": "Exemplo de requisição:\t", + "content": "endpoint: [POST] http:///sei-broker/service/sipar/importados\n\nbody:\n33902112492200241", + "type": "json" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response:", + "content": "HTTP/1.1 201 Created", + "type": "json" + } + ] + }, + "error": { + "examples": [ + { + "title": "Error-Response:", + "content": "HTTP/1.1 500 Internal Server Error\n{\n\t\t\"error\":\"Mensagem de erro.\"\n\t\t\"code\":\"código do erro\"\n}", + "type": "json" + }, + { + "title": "Error-Response:", + "content": "HTTP/1.1 400 Bad Request\n{\n\t\t\"error\":\"Mensagem de erro.\"\n\t\t\"code\":\"código do erro\"\n}", + "type": "json" + }, + { + "title": "Error-Response:", + "content": "HTTP/1.1 409 Conflict\n{\n\t\t\"error\":\"Mensagem de erro.\"\n\t\t\"code\":\"código do erro\"\n}", + "type": "json" + } + ] + }, + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/SiparResource.java", + "groupTitle": "SIPAR" + }, + { "type": "get", "url": "/:unidade/series", "title": "Listar séries", "name": "listarSeries", "group": "Serie", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Este método realiza uma consulta às séries.

", "parameter": { "fields": { @@ -7361,7 +7970,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/SeriesResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/SeriesResource.java", "groupTitle": "Serie" }, { @@ -7371,6 +7980,11 @@ define({ "api": [ "name": "listarTarefas", "group": "Tarefa", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Lista os tipos de tarefas existentes no SEI.

", "parameter": { "fields": { @@ -7470,7 +8084,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/TarefaResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/TarefaResource.java", "groupTitle": "Tarefa" }, { @@ -7480,6 +8094,11 @@ define({ "api": [ "name": "listarTiposConferencia", "group": "Tipos_Confer_ncia", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Lista os tipos de conferência.

", "parameter": { "fields": { @@ -7537,7 +8156,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/TipoConferenciaResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/TipoConferenciaResource.java", "groupTitle": "Tipos_Confer_ncia" }, { @@ -7547,6 +8166,11 @@ define({ "api": [ "name": "consultarCodigo", "group": "Unidade", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Retorna o código da Unidade pesquisada.

", "parameter": { "fields": { @@ -7590,7 +8214,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/UnidadeResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/UnidadeResource.java", "groupTitle": "Unidade" }, { @@ -7600,6 +8224,11 @@ define({ "api": [ "name": "listarUnidades", "group": "Unidade", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Retorna as Unidades cadastradas no SEI.

", "examples": [ { @@ -7651,16 +8280,21 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/UnidadeResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/UnidadeResource.java", "groupTitle": "Unidade" }, { - "type": "put", - "url": "/usuarios/ativar", + "type": "post", + "url": "/usuarios/ativos", "title": "Ativar usuário", "name": "ativarUsuario", "group": "Usuario", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER_ADM" + } + ], "description": "

Este método reativa usuários.

", "parameter": { "fields": { @@ -7692,7 +8326,7 @@ define({ "api": [ "examples": [ { "title": "Exemplo de requisição:\t", - "content": "endpoint: http:///sei-broker/service/usuarios/ativar\n\nbody:\n{\n\t\"codigo\":\"1234\",\n\t\"nome\":\"André Luís Fernandes Guimarães\",\n\t\"login\":\"andre.guimaraes\"\n}", + "content": "endpoint: http:///sei-broker/service/usuarios/ativos\n\nbody:\n{\n\t\"codigo\":\"1234\",\n\t\"nome\":\"André Luís Fernandes Guimarães\",\n\t\"login\":\"andre.guimaraes\"\n}", "type": "json" } ], @@ -7718,7 +8352,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", "groupTitle": "Usuario" }, { @@ -7728,33 +8362,40 @@ define({ "api": [ "name": "atribuirProcesso", "group": "Usuario", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Este método atribui o processo a um usuário.

", "parameter": { "fields": { - "Parameter": [ + "Path Parameters": [ { - "group": "Parameter", + "group": "Path Parameters", "type": "String", "optional": false, "field": "unidade", "description": "

Sigla da Unidade cadastrada no SEI

" }, { - "group": "Parameter", + "group": "Path Parameters", "type": "String", "optional": false, - "field": "processo", - "description": "

Numero do processo a ser atribuído

" - }, + "field": "usuario", + "description": "

Login do usuário a quem deseja atribuir o processo

" + } + ], + "Request Body": [ { - "group": "Parameter", + "group": "Request Body", "type": "String", "optional": false, - "field": "usuario", - "description": "

Login do usuário a quem deseja atribuir o processo

" + "field": "processo", + "description": "

Numero do processo a ser atribuído

" }, { - "group": "Parameter", + "group": "Request Body", "type": "String", "optional": true, "field": "reabrir-processo", @@ -7793,22 +8434,34 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", "groupTitle": "Usuario" }, { "type": "get", - "url": "/usuarios/:usuario", + "url": ":unidade/usuarios/:usuario", "title": "Buscar usuário", "name": "buscarUsuario", "group": "Usuario", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Este método realiza a uma busca pelo login do usuário.

", "parameter": { "fields": { - "Parameter": [ + "Path Parameters": [ { - "group": "Parameter", + "group": "Path Parameters", + "type": "String", + "optional": false, + "field": "unidade", + "description": "

Sigla da Unidade cadastrada no SEI.

" + }, + { + "group": "Path Parameters", "type": "String", "optional": false, "field": "usuario", @@ -7820,7 +8473,7 @@ define({ "api": [ "examples": [ { "title": "Exemplo de requisição:\t", - "content": "curl -i http:///sei-broker/service/usuarios/andre.guimaraes", + "content": "curl -i http:///sei-broker/service/cosap/usuarios/andre.guimaraes", "type": "json" } ], @@ -7846,16 +8499,21 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", "groupTitle": "Usuario" }, { - "type": "put", - "url": "/usuarios/desativar", + "type": "delete", + "url": "/usuarios/ativos", "title": "Desativar usuário", "name": "desativarUsuario", "group": "Usuario", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER_ADM" + } + ], "description": "

Este método desativa usuários.

", "parameter": { "fields": { @@ -7887,7 +8545,7 @@ define({ "api": [ "examples": [ { "title": "Exemplo de requisição:\t", - "content": "endpoint: http:///sei-broker/service/usuarios/desativar\n\nbody:\n{\n\t\"codigo\":\"1234\",\n\t\"nome\":\"André Luís Fernandes Guimarães\",\n\t\"login\":\"andre.guimaraes\"\n}", + "content": "endpoint: [DELETE] http:///sei-broker/service/usuarios/ativos/andre.guimaraes\n\nbody:\n{\n\t\"codigo\":\"1234\",\n\t\"nome\":\"André Luís Fernandes Guimarães\",\n\t\"login\":\"andre.guimaraes\"\n}", "type": "json" } ], @@ -7913,16 +8571,21 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", "groupTitle": "Usuario" }, { - "type": "post", - "url": "/usuarios/excluir", + "type": "delete", + "url": "/usuarios/:login", "title": "Excluir usuário", "name": "excluirUsuario", "group": "Usuario", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER_ADM" + } + ], "description": "

Este método realiza a exclusão de usuários.

", "parameter": { "fields": { @@ -7954,7 +8617,7 @@ define({ "api": [ "examples": [ { "title": "Exemplo de requisição:\t", - "content": "endpoint: http:///sei-broker/service/usuarios/excluir\n\nbody:\n{\n\t\"codigo\":\"1234\",\n\t\"nome\":\"André Luís Fernandes Guimarães\",\n\t\"login\":\"andre.guimaraes\"\n}", + "content": "endpoint: [DELETE] http:///sei-broker/service/usuarios/andre.guimaraes\n\nbody:\n{\n\t\"codigo\":\"1234\",\n\t\"nome\":\"André Luís Fernandes Guimarães\",\n\t\"login\":\"andre.guimaraes\"\n}", "type": "json" } ], @@ -7980,36 +8643,41 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", "groupTitle": "Usuario" }, { "type": "post", - "url": "/usuarios/incluir-alterar", - "title": "Incluir ou alterar usuário", + "url": "/usuarios", + "title": "Incluir usuário", "name": "incluirUsuario", "group": "Usuario", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER_ADM" + } + ], "description": "

Este método realiza a inclusão de novos usuários ou alterarações nos usuários existentes.

", "parameter": { "fields": { - "Parameter": [ + "Request Body": [ { - "group": "Parameter", + "group": "Request Body", "type": "String", "optional": false, "field": "codigo", "description": "

Código que deseja atribuir ao usuário

" }, { - "group": "Parameter", + "group": "Request Body", "type": "String", "optional": false, "field": "nome", "description": "

Nome do usuário

" }, { - "group": "Parameter", + "group": "Request Body", "type": "String", "optional": false, "field": "login", @@ -8021,7 +8689,7 @@ define({ "api": [ "examples": [ { "title": "Exemplo de requisição:\t", - "content": "endpoint: http:///sei-broker/service/usuarios/incluir-alterar\n\nbody:\n{\n\t\"codigo\":\"1234\",\n\t\"nome\":\"André Luís Fernandes Guimarães\",\n\t\"login\":\"andre.guimaraes\"\n}", + "content": "endpoint: http:///sei-broker/service/usuarios\n\nbody:\n{\n\t\"codigo\":\"1234\",\n\t\"nome\":\"André Luís Fernandes Guimarães\",\n\t\"login\":\"andre.guimaraes\"\n}", "type": "json" } ], @@ -8047,7 +8715,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", "groupTitle": "Usuario" }, { @@ -8057,19 +8725,26 @@ define({ "api": [ "name": "listarUsuarios", "group": "Usuario", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Este método realiza uma consulta aos usuários cadastrados que possuem o perfil "Básico".

", "parameter": { "fields": { - "Parameter": [ + "Path Parameters": [ { - "group": "Parameter", + "group": "Path Parameters", "type": "String", "optional": false, "field": "unidade", - "description": "

Sigla da Unidade cadastrada no SEI

" - }, + "description": "

Sigla da Unidade cadastrada no SEI.

" + } + ], + "Query Parameters": [ { - "group": "Parameter", + "group": "Query Parameters", "type": "String", "optional": true, "field": "usuario", @@ -8108,7 +8783,7 @@ define({ "api": [ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", "groupTitle": "Usuario" } ] }); diff --git a/src/main/webapp/api-docs/api_data.json b/src/main/webapp/api-docs/api_data.json index c3ba2b2..1e547b7 100644 --- a/src/main/webapp/api-docs/api_data.json +++ b/src/main/webapp/api-docs/api_data.json @@ -6,6 +6,11 @@ "name": "adicionarArquivo", "group": "Arquivo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

O serviço criará um arquivo no repositório de documentos e retornará seu identificador. O envio do arquivo poderá ser particionado com chamadas posteriores ao serviço de Adicionar Conteúdo Arquivo. Após todo o conteúdo ser transferido o arquivo será ativado e poderá ser associado com um documento externo no serviço de inclusão de documento. Serão excluídos em 24 horas os arquivos não completados e não associados a um documento.

", "parameter": { "fields": { @@ -109,7 +114,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ArquivoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ArquivoResource.java", "groupTitle": "Arquivo" }, { @@ -119,6 +124,11 @@ "name": "adicionarConteudoArquivo", "group": "Arquivo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Adiciona conteúdo a um arquivo criado, o sistema identificará automaticamente quando o conteúdo foi completado validando o tamanho em bytes e o hash do conteúdo. Quando as condições forem satisfeitas o arquivo será ativado e poderá ser utilizado nas chamadas de inclusão de documento.

", "parameter": { "fields": { @@ -215,7 +225,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ArquivoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ArquivoResource.java", "groupTitle": "Arquivo" }, { @@ -225,6 +235,11 @@ "name": "cancelarDisponibilizacaoBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Cancela a disponibilização de blocos.

", "parameter": { "fields": { @@ -275,7 +290,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -285,6 +300,11 @@ "name": "consultarBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Recupera as informações do bloco informado.

", "parameter": { "fields": { @@ -478,7 +498,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -488,6 +508,11 @@ "name": "disponibilizarBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Disponibiliza um determinado bloco.

", "parameter": { "fields": { @@ -540,7 +565,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -550,6 +575,11 @@ "name": "excluirBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Exclui um bloco criado.

", "parameter": { "fields": { @@ -600,7 +630,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -610,6 +640,11 @@ "name": "gerarBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Gera um novo bloco.

", "parameter": { "fields": { @@ -712,7 +747,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -722,6 +757,11 @@ "name": "incluirDocumentoComAnotacaoNoBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Inclui um documento no bloco.

", "parameter": { "fields": { @@ -789,7 +829,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -799,6 +839,11 @@ "name": "incluirDocumentoNoBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Inclui um documento no bloco.

", "parameter": { "fields": { @@ -858,7 +903,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -868,6 +913,11 @@ "name": "incluirProcessoComAnotacaoNoBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Inclui um processo no bloco, junto com uma anotação.

", "parameter": { "fields": { @@ -948,7 +998,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -958,6 +1008,11 @@ "name": "incluirProcessoNoBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Inclui um processo no bloco.

", "parameter": { "fields": { @@ -1030,7 +1085,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -1040,6 +1095,11 @@ "name": "retirarDocumentoDoBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Remove o documento do bloco.

", "parameter": { "fields": { @@ -1097,7 +1157,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -1107,6 +1167,11 @@ "name": "retirarProcessoDoBloco", "group": "Bloco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Este método remove o processo do bloco.

", "parameter": { "fields": { @@ -1177,7 +1242,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/BlocoResource.java", "groupTitle": "Bloco" }, { @@ -1203,37 +1268,9 @@ "type": "", "url": "", "version": "0.0.0", - "filename": "sei-broker/src/main/webapp/api-docs/main.js", - "group": "C__ANS_sei_broker_branches_desenvolvimento_versao_3_sei_broker_src_main_webapp_api_docs_main_js", - "groupTitle": "C__ANS_sei_broker_branches_desenvolvimento_versao_3_sei_broker_src_main_webapp_api_docs_main_js", - "name": "" - }, - { - "success": { - "fields": { - "Success 200": [ - { - "group": "Success 200", - "optional": false, - "field": "varname1", - "description": "

No type.

" - }, - { - "group": "Success 200", - "type": "String", - "optional": false, - "field": "varname2", - "description": "

With type.

" - } - ] - } - }, - "type": "", - "url": "", - "version": "0.0.0", - "filename": "sei-broker/target/sei-broker-2.1/api-docs/main.js", - "group": "C__ANS_sei_broker_branches_desenvolvimento_versao_3_sei_broker_target_sei_broker_2_1_api_docs_main_js", - "groupTitle": "C__ANS_sei_broker_branches_desenvolvimento_versao_3_sei_broker_target_sei_broker_2_1_api_docs_main_js", + "filename": "branch_homologacao/src/main/webapp/api-docs/main.js", + "group": "C__ANS_sei_broker_Fontes_branches_branch_homologacao_src_main_webapp_api_docs_main_js", + "groupTitle": "C__ANS_sei_broker_Fontes_branches_branch_homologacao_src_main_webapp_api_docs_main_js", "name": "" }, { @@ -1243,6 +1280,11 @@ "name": "listarCargos", "group": "Cargo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Lista os cargos.

", "parameter": { "fields": { @@ -1323,7 +1365,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/CargoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/CargoResource.java", "groupTitle": "Cargo" }, { @@ -1333,6 +1375,11 @@ "name": "atualizarContato", "group": "Contato", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Atualizar contato

", "parameter": { "fields": { @@ -1610,7 +1657,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", "groupTitle": "Contato" }, { @@ -1620,6 +1667,11 @@ "name": "criarContato", "group": "Contato", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Incluir contato

", "parameter": { "fields": { @@ -1894,7 +1946,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", "groupTitle": "Contato" }, { @@ -1904,6 +1956,11 @@ "name": "getContato", "group": "Contato", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta contato pela sigla(login)

", "parameter": { "fields": { @@ -2183,7 +2240,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", "groupTitle": "Contato" }, { @@ -2193,6 +2250,11 @@ "name": "listarContatos", "group": "Contato", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta os contatos de determinado tipo, o retorno pode ser PessoaFisica ou PessoaJuridica é recomendado utilizar a ans-commons-sei.

", "parameter": { "fields": { @@ -2525,7 +2587,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", "groupTitle": "Contato" }, { @@ -2535,6 +2597,11 @@ "name": "listarTipos", "group": "Contato", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta os tipos de contato.

", "parameter": { "fields": { @@ -2578,7 +2645,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ContatoResource.java", "groupTitle": "Contato" }, { @@ -2588,6 +2655,11 @@ "name": "cancelarDocumento", "group": "Documento", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Cancela um documento.

", "parameter": { "fields": { @@ -2647,7 +2719,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", "groupTitle": "Documento" }, { @@ -2657,6 +2729,11 @@ "name": "consultarDocumento", "group": "Documento", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta documento cadastrado no SEI.

", "parameter": { "fields": { @@ -2984,16 +3061,21 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", "groupTitle": "Documento" }, { "type": "get", - "url": "/:interessado/documentos", - "title": "Consultar por interessados", + "url": "/interessados/:interessado/documentos", + "title": "Consultar por interessado", "name": "consultarDocumentoInteressado", "group": "Documento", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Retorna os documentos de um determinado interessado.

", "parameter": { "fields": { @@ -3011,8 +3093,32 @@ "group": "Query Parameters", "type": "String", "optional": true, - "field": "unidade", - "description": "

Unidade da qual deseja filtrar os documentos

" + "field": "tipo", + "description": "

Tipo/Série do documento

" + }, + { + "group": "Query Parameters", + "type": "boolean", + "optional": true, + "field": "somenteAssinados", + "defaultValue": "false", + "description": "

Exibir somente documentos assinados

" + }, + { + "group": "Query Parameters", + "type": "boolean", + "optional": true, + "field": "orderByProcesso", + "defaultValue": "false", + "description": "

Ordenar pelo número do processo, por padrão o retorno é ordenado pela dataGeracao

" + }, + { + "group": "Query Parameters", + "type": "boolean", + "optional": true, + "field": "crescente", + "defaultValue": "false", + "description": "

Ordenar em ordem crescente

" }, { "group": "Query Parameters", @@ -3036,7 +3142,7 @@ "examples": [ { "title": "Exemplo de requisição:\t", - "content": "curl -i https:///sei-broker/service/363022/documentos", + "content": "curl -i https:///sei-broker/service/interessados/005711/documentos", "type": "json" } ], @@ -3048,42 +3154,35 @@ "type": "List", "optional": false, "field": "documentos", - "description": "

Lista com os documentos encontrados

" + "description": "

Lista com os documentos encontrados.

" }, { "group": "Sucesso Response Body - 200", "type": "DocumentoResumido", "optional": false, "field": "documentos.documentoResumido", - "description": "

Resumo do documento encontrado no SEI

" + "description": "

Resumo do documento encontrado no SEI.

" }, { "group": "Sucesso Response Body - 200", "type": "String", "optional": false, "field": "documentos.documentoResumido.numero", - "description": "

Número do documento

" - }, - { - "group": "Sucesso Response Body - 200", - "type": "String", - "optional": false, - "field": "documentos.documentoResumido.tipo", - "description": "

Tipo do documento

" + "description": "

Número do documento.

" }, { "group": "Sucesso Response Body - 200", "type": "String", "optional": false, - "field": "documentos.documentoResumido.processo", - "description": "

Processo ao qual o documento pertence

" + "field": "documentos.documentoResumido.numeroInformado", + "description": "

Número informado na inclusão do documento, também conhecido como número de árvore.

" }, { "group": "Sucesso Response Body - 200", "type": "String", "optional": false, "field": "documentos.documentoResumido.unidade", - "description": "

Unidade responsável pelo processo

" + "description": "

Unidade responsável pelo documento.

" }, { "group": "Sucesso Response Body - 200", @@ -3094,14 +3193,56 @@ ], "optional": false, "field": "documentos.documentoResumido.origem", - "description": "

Origem do documento, se o mesmo é um documento "GERADO" internamente ou "RECEBIDO" de uma fonte externa

" + "description": "

Origem do documento, se o mesmo é um documento "GERADO" internamente ou "RECEBIDO" de uma fonte externa.

" }, { "group": "Sucesso Response Body - 200", "type": "Data", "optional": false, "field": "documentos.documentoResumido.dataGeracao", - "description": "

Data de geração do documento

" + "description": "

Data de geração do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "documentos.documentoResumido.processo", + "description": "

Processo onde o documento está incluído.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "Tipo", + "optional": false, + "field": "documentos.documentoResumido.tipo", + "description": "

Objeto representando o tipo do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "documentos.documentoResumido.tipo.codigo", + "description": "

Identificados do tipo do documento, também conhecido como série.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "documentos.documentoResumido.tipo.nome", + "description": "

Nome do tipo do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "documentos.documentoResumido.tipoConferencia", + "description": "

Tipo de conferência do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "boolean", + "optional": false, + "field": "documentos.documentoResumido.assinado", + "description": "

Boolean indicando se o documento foi assinado.

" } ], "Sucesso Response Header - 200": [ @@ -3117,7 +3258,7 @@ "examples": [ { "title": "Success-Response:", - "content": "HTTP/1.1 200 OK\n{\n \"dataGeracao\": \"2015-08-25T00:00:00-03:00\",\n \"numero\": \"0057646\",\n \"origem\": \"RECEBIDO\",\n \"processo\": \"33902.554351/2015-16\",\n \"tipo\": \"Contrato\",\n \"unidade\": \"COAI\"\n}", + "content": "HTTP/1.1 200 OK\n{\n \"numero\": \"0670949\",\n \"numeroInformado\": \"594\",\n \"unidade\": \"COSAP\",\n \"origem\": \"RECEBIDO\",\n \"dataGeracao\": \"2015-08-10T00:00:00-03:00\",\n \"processo\": \"33910.000002/2017-41\",\n \"tipo\": {\n \t\"codigo\": \"629\",\n \t\"nome\": \"Relatório de Arquivamento-SIF\"\n }\n \"tipoConferencia\": \"4\",\n \"assinado\": true\n}", "type": "json" } ] @@ -3131,7 +3272,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", "groupTitle": "Documento" }, { @@ -3141,6 +3282,11 @@ "name": "consultarDocumentosIncluidosBroker", "group": "Documento", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta documentos inclusos pelo SEI-Broker.

", "parameter": { "fields": { @@ -3302,7 +3448,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", "groupTitle": "Documento" }, { @@ -3312,6 +3458,11 @@ "name": "exportarDocumento", "group": "Documento", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Exporta documentos do SEI em PDF.

", "parameter": { "fields": { @@ -3362,7 +3513,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", "groupTitle": "Documento" }, { @@ -3372,6 +3523,11 @@ "name": "incluirDocumento", "group": "Documento", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Inclui um documento no SEI, podem ser incluídos documentos internos e externos, para documentos externo o tamanho máximo é 20MB.

", "parameter": { "fields": { @@ -3446,7 +3602,7 @@ "type": "String", "optional": true, "field": "data", - "description": "

Data do documento, obrigatório para documentos externos. Passar null para documentos gerados

" + "description": "

Data do documento (dd/MM/yyyy), obrigatório para documentos externos. Passar null para documentos gerados.

" }, { "group": "Request Body", @@ -3547,7 +3703,7 @@ "\"0 (público)\"", "\"1 (restrito)\"", "\"2 (sigiloso)\"", - "\"null (herda do processo)\"" + "\"null (herda do tipo de processo)\"" ], "optional": true, "field": "nivelAcesso", @@ -3661,7 +3817,95 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java", + "groupTitle": "Documento" + }, + { + "type": "get", + "url": "/:unidade/tipos-documentos", + "title": "Listar tipos documentos", + "name": "listarTiposDocumentos", + "group": "Documento", + "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], + "description": "

Lista os tipos de documentos do SEI.

", + "parameter": { + "fields": { + "Path Parameters": [ + { + "group": "Path Parameters", + "type": "String", + "optional": false, + "field": "unidade", + "description": "

Sigla da Unidade cadastrada no SEI.

" + } + ], + "Query Parameters": [ + { + "group": "Query Parameters", + "type": "String", + "optional": true, + "field": "filtro", + "description": "

Para filtrar por documentos que contenham o trecho no nome.

" + } + ] + } + }, + "examples": [ + { + "title": "Exemplo de requisição:", + "content": "curl -i https:///sei-broker/service/COSAP/tipos-documentos", + "type": "curl" + } + ], + "success": { + "fields": { + "Sucesso - 200": [ + { + "group": "Sucesso - 200", + "type": "List", + "optional": false, + "field": "tipos", + "description": "

Lista com os tipos de documentos

" + }, + { + "group": "Sucesso - 200", + "type": "String", + "optional": false, + "field": "tipos.identificador", + "description": "

Identificador do tipo de documento

" + }, + { + "group": "Sucesso - 200", + "type": "String", + "optional": false, + "field": "tipos.nome", + "description": "

Nome do tipo de documento

" + }, + { + "group": "Sucesso - 200", + "type": "String", + "optional": false, + "field": "series.aplicabilidade", + "description": "

T = Documentos internos e externos, I = documentos internos, E = documentos externos e F = formulários

" + } + ] + } + }, + "error": { + "examples": [ + { + "title": "Error-Response:", + "content": "HTTP/1.1 500 Internal Server Error\n{\n\t\"error\":\"Mensagem de erro.\"\n\t\"code\":\"código do erro\"\n}", + "type": "json" + } + ] + }, + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/SeriesResource.java", "groupTitle": "Documento" }, { @@ -3671,6 +3915,11 @@ "name": "getCidade", "group": "Endereco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta a cidade pelo código do IBGE.

", "parameter": { "fields": { @@ -3770,7 +4019,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", "groupTitle": "Endereco" }, { @@ -3780,6 +4029,11 @@ "name": "getCidades", "group": "Endereco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta as cidades de um determinado estado.

", "parameter": { "fields": { @@ -3888,7 +4142,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", "groupTitle": "Endereco" }, { @@ -3898,6 +4152,11 @@ "name": "getEstado", "group": "Endereco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta o estado pela sigla.

", "parameter": { "fields": { @@ -4000,7 +4259,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", "groupTitle": "Endereco" }, { @@ -4010,6 +4269,11 @@ "name": "getEstados", "group": "Endereco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta estados cadastrados.

", "parameter": { "fields": { @@ -4102,7 +4366,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", "groupTitle": "Endereco" }, { @@ -4112,6 +4376,11 @@ "name": "getPaises", "group": "Endereco", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta países cadastrados.

", "parameter": { "fields": { @@ -4183,7 +4452,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/InfraResource.java", "groupTitle": "Endereco" }, { @@ -4193,6 +4462,11 @@ "name": "listarExtensoesPermitidas", "group": "Extensao", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Este método realiza uma busca pelas extensões de arquivos permitidas.

", "parameter": { "fields": { @@ -4267,7 +4541,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ExtensoesResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ExtensoesResource.java", "groupTitle": "Extensao" }, { @@ -4277,7 +4551,12 @@ "name": "listarHipoteses", "group": "Hipotese_Legal", "version": "2.0.0", - "description": "

Lista as hipóteses legais.

", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], + "description": "

Lista as hipóteses legais.

", "parameter": { "fields": { "Path Parameters": [ @@ -4357,7 +4636,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/HipoteseLegalResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/HipoteseLegalResource.java", "groupTitle": "Hipotese_Legal" }, { @@ -4432,7 +4711,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/InfoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/InfoResource.java", "groupTitle": "Info" }, { @@ -4472,7 +4751,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/InfoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/InfoResource.java", "groupTitle": "Info" }, { @@ -4512,7 +4791,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/InfoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/InfoResource.java", "groupTitle": "Info" }, { @@ -4552,7 +4831,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/InfoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/InfoResource.java", "groupTitle": "Info" }, { @@ -4562,6 +4841,11 @@ "name": "listarMarcadores", "group": "Marcador", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Lista os marcadores de uma unidade.

", "parameter": { "fields": { @@ -4633,7 +4917,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/MarcadorResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/MarcadorResource.java", "groupTitle": "Marcador" }, { @@ -4643,6 +4927,11 @@ "name": "marcarProcesso", "group": "Marcador", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Adiciona um processo ao marcador.

", "parameter": { "fields": { @@ -4712,7 +5001,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/MarcadorResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/MarcadorResource.java", "groupTitle": "Marcador" }, { @@ -4722,6 +5011,11 @@ "name": "abrirProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Abre um processo.

", "parameter": { "fields": { @@ -5022,7 +5316,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -5032,6 +5326,11 @@ "name": "anexarProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Anexar um processo.

", "parameter": { "fields": { @@ -5094,7 +5393,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -5104,6 +5403,11 @@ "name": "bloquearProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Bloquear um processo.

", "parameter": { "fields": { @@ -5159,7 +5463,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -5169,6 +5473,11 @@ "name": "concluirProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Conclui o processo informado.

", "parameter": { "fields": { @@ -5234,7 +5543,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -5244,6 +5553,11 @@ "name": "consultarProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Este método realiza uma consulta a processos no SEI e no SIPAR.

", "parameter": { "fields": { @@ -5952,29 +6266,40 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { "type": "get", - "url": "/:interessado/processos", - "title": "Consultar por interessados", - "name": "consultarProcessosInteressado", + "url": "/processos", + "title": "Listar processos", + "name": "consultarProcessos", "group": "Processo", "version": "2.0.0", - "description": "

Retorna os processos de um determinado interessado.

", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], + "description": "

Lista os processos conforme os filtros informados.

", "parameter": { "fields": { - "Path Parameters": [ + "Query Parameters": [ { - "group": "Path Parameters", + "group": "Query Parameters", + "type": "Boolean", + "optional": true, + "field": "crescente", + "defaultValue": "false", + "description": "

Ordenar em ordem crescente, processos mais antigos primeiro

" + }, + { + "group": "Query Parameters", "type": "String", - "optional": false, + "optional": true, "field": "interessado", "description": "

Identificador do interessado

" - } - ], - "Query Parameters": [ + }, { "group": "Query Parameters", "type": "String", @@ -5997,6 +6322,13 @@ "field": "qtdRegistros", "defaultValue": "50", "description": "

Quantidade de registros retornados por página

" + }, + { + "group": "Query Parameters", + "type": "String", + "optional": true, + "field": "tipo", + "description": "

Identificador do tipo de processo que deseja filtrar

" } ] } @@ -6004,7 +6336,7 @@ "examples": [ { "title": "Exemplo de requisição:\t", - "content": "curl -i https:///sei-broker/service/414247/processos", + "content": "curl -i https:///sei-broker/service/processos", "type": "json" } ], @@ -6059,6 +6391,27 @@ "optional": false, "field": "processos.processoResumido.dataGeracao", "description": "

Data de geração do processo

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "Tipo", + "optional": false, + "field": "processos.processoResumido.tipo", + "description": "

Objeto com os dados do tipo de processo

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "processos.processoResumido.tipo.codigo", + "description": "

Código do tipo

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "processos.processoResumido.tipo.nome", + "description": "

Nome do tipo

" } ], "Sucesso Response Header - 200": [ @@ -6070,7 +6423,14 @@ "description": "

quantidade de registros que existem para essa consulta.

" } ] - } + }, + "examples": [ + { + "title": "Success-Response:", + "content": "HTTP/1.1 200 OK\n{\n \"numero\": \"33910007118201710\",\n \"numeroFormatado\": \"33910.007118/2017-10\",\n \"descricao\": \"D:2237021 - SUL AMÉRICA SEGURO SAÚDE S/A\",\n \"unidade\": \"NÚCLEO-RJ\",\n \"dataGeracao\": \"2017-10-09T03:00:00.000+0000\",\n \"tipo\": {\n \t\"codigo\": \"100000882\",\n \t\"nome\": \"Fiscalização: Sancionador\"\n }\n}", + "type": "json" + } + ] }, "error": { "examples": [ @@ -6081,7 +6441,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -6091,6 +6451,11 @@ "name": "desanexarProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Remove um processo anexado.

", "parameter": { "fields": { @@ -6153,7 +6518,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -6163,6 +6528,11 @@ "name": "desbloquearProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Desbloquear um processo.

", "parameter": { "fields": { @@ -6209,7 +6579,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -6219,6 +6589,11 @@ "name": "desrelacionarProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Desrelacionar processos.

", "parameter": { "fields": { @@ -6272,7 +6647,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -6282,6 +6657,11 @@ "name": "enviarProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Envia processos a outras unidades.

", "parameter": { "fields": { @@ -6291,7 +6671,7 @@ "type": "String", "optional": false, "field": "unidade", - "description": "

Sigla da Unidade cadastrada no SEI

" + "description": "

Sigla da Unidade cadastrada no SEI. Representa a unidade de localização atual do processo.

" } ], "Query Parameters": [ @@ -6324,14 +6704,14 @@ "type": "String", "optional": false, "field": "processo", - "description": "

Numero do processo a ser enviado

" + "description": "

Numero do processo a ser enviado. Em caso de processo apensado, o processo a ser enviado deve ser o processo PAI. Não é possível tramitar através do processo FILHO.

" }, { "group": "Request Body", "type": "String[]", "optional": false, "field": "unidadesDestino", - "description": "

Códigos das unidades para onde o bloco será enviado

" + "description": "

Lista com os identificadores das unidades de destino do processo, código ou nome da unidade.

" }, { "group": "Request Body", @@ -6339,7 +6719,7 @@ "optional": false, "field": "manterAbertoOrigem", "defaultValue": "false", - "description": "

Informa se o processo deve continuar aberto na unidade de origem

" + "description": "

Informa se o processo deve continuar aberto na unidade de origem .

" }, { "group": "Request Body", @@ -6347,7 +6727,7 @@ "optional": false, "field": "removerAnotacoes", "defaultValue": "false", - "description": "

Informa se as anotações do processo devem ser removidas

" + "description": "

Informa se as anotações do processo devem ser removidas.

" }, { "group": "Request Body", @@ -6355,7 +6735,7 @@ "optional": false, "field": "enviarEmailNotificacao", "defaultValue": "false", - "description": "

Informa se deve ser enviado um e-mail de notificação

" + "description": "

Informa se deve ser enviado um e-mail de notificação.

" }, { "group": "Request Body", @@ -6363,7 +6743,7 @@ "optional": false, "field": "dataRetornoProgramado", "defaultValue": "null", - "description": "

Data para retorno programado do processo a unidade (padrão ISO-8601)

" + "description": "

Data para retorno programado do processo a unidade (padrão ISO-8601).

" }, { "group": "Request Body", @@ -6371,7 +6751,7 @@ "optional": false, "field": "qtdDiasAteRetorno", "defaultValue": "null", - "description": "

Quantidade de dias até o retorno do processo

" + "description": "

Quantidade de dias até o retorno do processo.

" }, { "group": "Request Body", @@ -6379,7 +6759,7 @@ "optional": false, "field": "somenteDiasUteis", "defaultValue": "false", - "description": "

Informa se só serão contabilizados dias úteis

" + "description": "

Informa se só serão contabilizados dias úteis.

" } ] } @@ -6413,7 +6793,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -6423,6 +6803,11 @@ "name": "lancarAndamento", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Lança um andamento ao processo.

", "parameter": { "fields": { @@ -6615,7 +7000,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -6625,6 +7010,11 @@ "name": "listarAndamentos", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Lista as andamentos do processo.

", "parameter": { "fields": { @@ -6822,16 +7212,21 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { "type": "get", - "url": "/:unidade/processos/:processo/documentos", + "url": "/processos/:processo/documentos", "title": "Listar documentos", "name": "listarDocumentosPorProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Retorna os documentos de um determinado processo.

", "parameter": { "fields": { @@ -6840,15 +7235,37 @@ "group": "Path Parameters", "type": "String", "optional": false, - "field": "unidade", - "description": "

Sigla da Unidade cadastrada no SEI.

" + "field": "processo", + "description": "

Número do processo.

" + } + ], + "Query Parameters": [ + { + "group": "Query Parameters", + "type": "String", + "optional": true, + "field": "tipo", + "defaultValue": "null", + "description": "

Identificador do tipo do documento, caso seja necessário filtrar pelo tipo

" }, { - "group": "Path Parameters", + "group": "Query Parameters", "type": "String", - "optional": false, - "field": "processo", - "description": "

Número do processo.

" + "allowedValues": [ + "\"G (gerado/interno), R (recebido/externo)\"" + ], + "optional": true, + "field": "origem", + "defaultValue": "null", + "description": "

Filtra os documentos por gerados ou recebidos

" + }, + { + "group": "Query Parameters", + "type": "boolean", + "optional": true, + "field": "somenteAssinados", + "defaultValue": "false", + "description": "

Exibir somente documentos assinados

" } ] } @@ -6856,7 +7273,7 @@ "examples": [ { "title": "Exemplo de requisição:\t", - "content": "curl -i https:///sei-broker/service/cosap/processos/33910003149201793/documentos", + "content": "curl -i https:///sei-broker/service/processos/33910003149201793/documentos", "type": "json" } ], @@ -6888,8 +7305,8 @@ "group": "Sucesso Response Body - 200", "type": "String", "optional": false, - "field": "documentos.documentoResumido.tipo", - "description": "

Tipo do documento.

" + "field": "documentos.documentoResumido.numeroInformado", + "description": "

Número informado na inclusão do documento, também conhecido como número de árvore.

" }, { "group": "Sucesso Response Body - 200", @@ -6908,13 +7325,48 @@ "optional": false, "field": "documentos.documentoResumido.dataGeracao", "description": "

Data de geração do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "Tipo", + "optional": false, + "field": "documentos.documentoResumido.tipo", + "description": "

Objeto representando o tipo do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "documentos.documentoResumido.tipo.codigo", + "description": "

Identificados do tipo do documento, também conhecido como série.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "documentos.documentoResumido.tipo.nome", + "description": "

Nome do tipo do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "documentos.documentoResumido.tipoConferencia", + "description": "

Tipo de conferência do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "boolean", + "optional": false, + "field": "documentos.documentoResumido.assinado", + "description": "

Boolean indicando se o documento foi assinado.

" } ] }, "examples": [ { "title": "Success-Response:", - "content": "HTTP/1.1 200 OK\n{\n \"dataGeracao\": \"2015-08-10T00:00:00-03:00\",\n \"numero\": \"0670949\",\n \"origem\": \"RECEBIDO\",\n \"tipo\": \"Despacho\"\n}", + "content": "HTTP/1.1 200 OK\n{\n \"numero\": \"0670949\",\n \"numeroInformado\": \"594\",\n \"origem\": \"RECEBIDO\",\n \"dataGeracao\": \"2015-08-10T00:00:00-03:00\",\n \"tipo\": {\n \t\"codigo\": \"629\",\n \t\"nome\": \"Relatório de Arquivamento-SIF\"\n }\n \"tipoConferencia\": \"4\",\n \"assinado\": true\n}", "type": "json" } ] @@ -6928,7 +7380,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -6938,6 +7390,11 @@ "name": "listarTiposProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Consulta os tipos de processo.

", "parameter": { "fields": { @@ -6990,7 +7447,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -7000,6 +7457,11 @@ "name": "reabrirProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Reabre um processo.

", "parameter": { "fields": { @@ -7063,7 +7525,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -7073,6 +7535,11 @@ "name": "relacionarProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Relacionar processos.

", "parameter": { "fields": { @@ -7135,7 +7602,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -7145,6 +7612,11 @@ "name": "removerSobrestamentoProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Remover sobrestamento de processo.

", "parameter": { "fields": { @@ -7191,7 +7663,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { @@ -7201,6 +7673,11 @@ "name": "sobrestarProcesso", "group": "Processo", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Sobrestar processo.

", "parameter": { "fields": { @@ -7270,16 +7747,148 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", "groupTitle": "Processo" }, { + "type": "delete", + "url": "/sipar/importados/:processo", + "title": "Cancelar Importação Processo", + "name": "cancelarImportacaoProcesso", + "group": "SIPAR", + "version": "2.0.0", + "description": "

Desmarca um processo físico (SIPAR) como importado para um processo eletrônico (SEI).

", + "parameter": { + "fields": { + "Path Parameter": [ + { + "group": "Path Parameter", + "type": "String", + "optional": false, + "field": "processo", + "description": "

Número do processo físico existente no SIPAR contendo 17 dígitos e iniciado com 33902. Ex. 33902111111111111

" + } + ] + } + }, + "examples": [ + { + "title": "Exemplo de requisição:", + "content": "curl -X DELETE http:///sei-broker/service/sipar/importados/33902112492200241", + "type": "curl" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response:", + "content": "HTTP/1.1 204 No Content", + "type": "json" + } + ] + }, + "error": { + "examples": [ + { + "title": "Error-Response:", + "content": "HTTP/1.1 500 Internal Server Error\n{\n\t\t\"error\":\"Mensagem de erro.\"\n\t\t\"code\":\"código do erro\"\n}", + "type": "json" + }, + { + "title": "Error-Response:", + "content": "HTTP/1.1 400 Bad Request\n{\n\t\t\"error\":\"Mensagem de erro.\"\n\t\t\"code\":\"código do erro\"\n}", + "type": "json" + }, + { + "title": "Error-Response:", + "content": "HTTP/1.1 404 Not Found\n{\n\t\t\"error\":\"Mensagem de erro.\"\n\t\t\"code\":\"código do erro\"\n}", + "type": "json" + } + ] + }, + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/SiparResource.java", + "groupTitle": "SIPAR" + }, + { + "type": "post", + "url": "/sipar/importados", + "title": "Importar Processo", + "name": "importarProcesso", + "group": "SIPAR", + "version": "2.0.0", + "description": "

Marca um processo físico (SIPAR) como importado para um processo eletrônico (SEI).

", + "parameter": { + "fields": { + "Header Parameters": [ + { + "group": "Header Parameters", + "type": "String", + "optional": false, + "field": "content-type", + "description": "

Informar text/plain

" + } + ], + "Request Body": [ + { + "group": "Request Body", + "type": "String", + "optional": false, + "field": "processo", + "description": "

Número do processo a ser importado

" + } + ] + } + }, + "examples": [ + { + "title": "Exemplo de requisição:\t", + "content": "endpoint: [POST] http:///sei-broker/service/sipar/importados\n\nbody:\n33902112492200241", + "type": "json" + } + ], + "success": { + "examples": [ + { + "title": "Success-Response:", + "content": "HTTP/1.1 201 Created", + "type": "json" + } + ] + }, + "error": { + "examples": [ + { + "title": "Error-Response:", + "content": "HTTP/1.1 500 Internal Server Error\n{\n\t\t\"error\":\"Mensagem de erro.\"\n\t\t\"code\":\"código do erro\"\n}", + "type": "json" + }, + { + "title": "Error-Response:", + "content": "HTTP/1.1 400 Bad Request\n{\n\t\t\"error\":\"Mensagem de erro.\"\n\t\t\"code\":\"código do erro\"\n}", + "type": "json" + }, + { + "title": "Error-Response:", + "content": "HTTP/1.1 409 Conflict\n{\n\t\t\"error\":\"Mensagem de erro.\"\n\t\t\"code\":\"código do erro\"\n}", + "type": "json" + } + ] + }, + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/SiparResource.java", + "groupTitle": "SIPAR" + }, + { "type": "get", "url": "/:unidade/series", "title": "Listar séries", "name": "listarSeries", "group": "Serie", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Este método realiza uma consulta às séries.

", "parameter": { "fields": { @@ -7361,7 +7970,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/SeriesResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/SeriesResource.java", "groupTitle": "Serie" }, { @@ -7371,6 +7980,11 @@ "name": "listarTarefas", "group": "Tarefa", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Lista os tipos de tarefas existentes no SEI.

", "parameter": { "fields": { @@ -7470,7 +8084,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/TarefaResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/TarefaResource.java", "groupTitle": "Tarefa" }, { @@ -7480,6 +8094,11 @@ "name": "listarTiposConferencia", "group": "Tipos_Confer_ncia", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Lista os tipos de conferência.

", "parameter": { "fields": { @@ -7537,7 +8156,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/TipoConferenciaResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/TipoConferenciaResource.java", "groupTitle": "Tipos_Confer_ncia" }, { @@ -7547,6 +8166,11 @@ "name": "consultarCodigo", "group": "Unidade", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Retorna o código da Unidade pesquisada.

", "parameter": { "fields": { @@ -7590,7 +8214,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/UnidadeResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/UnidadeResource.java", "groupTitle": "Unidade" }, { @@ -7600,6 +8224,11 @@ "name": "listarUnidades", "group": "Unidade", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Retorna as Unidades cadastradas no SEI.

", "examples": [ { @@ -7651,16 +8280,21 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/UnidadeResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/UnidadeResource.java", "groupTitle": "Unidade" }, { - "type": "put", - "url": "/usuarios/ativar", + "type": "post", + "url": "/usuarios/ativos", "title": "Ativar usuário", "name": "ativarUsuario", "group": "Usuario", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER_ADM" + } + ], "description": "

Este método reativa usuários.

", "parameter": { "fields": { @@ -7692,7 +8326,7 @@ "examples": [ { "title": "Exemplo de requisição:\t", - "content": "endpoint: http:///sei-broker/service/usuarios/ativar\n\nbody:\n{\n\t\"codigo\":\"1234\",\n\t\"nome\":\"André Luís Fernandes Guimarães\",\n\t\"login\":\"andre.guimaraes\"\n}", + "content": "endpoint: http:///sei-broker/service/usuarios/ativos\n\nbody:\n{\n\t\"codigo\":\"1234\",\n\t\"nome\":\"André Luís Fernandes Guimarães\",\n\t\"login\":\"andre.guimaraes\"\n}", "type": "json" } ], @@ -7718,7 +8352,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", "groupTitle": "Usuario" }, { @@ -7728,33 +8362,40 @@ "name": "atribuirProcesso", "group": "Usuario", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Este método atribui o processo a um usuário.

", "parameter": { "fields": { - "Parameter": [ + "Path Parameters": [ { - "group": "Parameter", + "group": "Path Parameters", "type": "String", "optional": false, "field": "unidade", "description": "

Sigla da Unidade cadastrada no SEI

" }, { - "group": "Parameter", + "group": "Path Parameters", "type": "String", "optional": false, - "field": "processo", - "description": "

Numero do processo a ser atribuído

" - }, + "field": "usuario", + "description": "

Login do usuário a quem deseja atribuir o processo

" + } + ], + "Request Body": [ { - "group": "Parameter", + "group": "Request Body", "type": "String", "optional": false, - "field": "usuario", - "description": "

Login do usuário a quem deseja atribuir o processo

" + "field": "processo", + "description": "

Numero do processo a ser atribuído

" }, { - "group": "Parameter", + "group": "Request Body", "type": "String", "optional": true, "field": "reabrir-processo", @@ -7793,22 +8434,34 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", "groupTitle": "Usuario" }, { "type": "get", - "url": "/usuarios/:usuario", + "url": ":unidade/usuarios/:usuario", "title": "Buscar usuário", "name": "buscarUsuario", "group": "Usuario", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Este método realiza a uma busca pelo login do usuário.

", "parameter": { "fields": { - "Parameter": [ + "Path Parameters": [ { - "group": "Parameter", + "group": "Path Parameters", + "type": "String", + "optional": false, + "field": "unidade", + "description": "

Sigla da Unidade cadastrada no SEI.

" + }, + { + "group": "Path Parameters", "type": "String", "optional": false, "field": "usuario", @@ -7820,7 +8473,7 @@ "examples": [ { "title": "Exemplo de requisição:\t", - "content": "curl -i http:///sei-broker/service/usuarios/andre.guimaraes", + "content": "curl -i http:///sei-broker/service/cosap/usuarios/andre.guimaraes", "type": "json" } ], @@ -7846,16 +8499,21 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", "groupTitle": "Usuario" }, { - "type": "put", - "url": "/usuarios/desativar", + "type": "delete", + "url": "/usuarios/ativos", "title": "Desativar usuário", "name": "desativarUsuario", "group": "Usuario", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER_ADM" + } + ], "description": "

Este método desativa usuários.

", "parameter": { "fields": { @@ -7887,7 +8545,7 @@ "examples": [ { "title": "Exemplo de requisição:\t", - "content": "endpoint: http:///sei-broker/service/usuarios/desativar\n\nbody:\n{\n\t\"codigo\":\"1234\",\n\t\"nome\":\"André Luís Fernandes Guimarães\",\n\t\"login\":\"andre.guimaraes\"\n}", + "content": "endpoint: [DELETE] http:///sei-broker/service/usuarios/ativos/andre.guimaraes\n\nbody:\n{\n\t\"codigo\":\"1234\",\n\t\"nome\":\"André Luís Fernandes Guimarães\",\n\t\"login\":\"andre.guimaraes\"\n}", "type": "json" } ], @@ -7913,16 +8571,21 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", "groupTitle": "Usuario" }, { - "type": "post", - "url": "/usuarios/excluir", + "type": "delete", + "url": "/usuarios/:login", "title": "Excluir usuário", "name": "excluirUsuario", "group": "Usuario", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER_ADM" + } + ], "description": "

Este método realiza a exclusão de usuários.

", "parameter": { "fields": { @@ -7954,7 +8617,7 @@ "examples": [ { "title": "Exemplo de requisição:\t", - "content": "endpoint: http:///sei-broker/service/usuarios/excluir\n\nbody:\n{\n\t\"codigo\":\"1234\",\n\t\"nome\":\"André Luís Fernandes Guimarães\",\n\t\"login\":\"andre.guimaraes\"\n}", + "content": "endpoint: [DELETE] http:///sei-broker/service/usuarios/andre.guimaraes\n\nbody:\n{\n\t\"codigo\":\"1234\",\n\t\"nome\":\"André Luís Fernandes Guimarães\",\n\t\"login\":\"andre.guimaraes\"\n}", "type": "json" } ], @@ -7980,36 +8643,41 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", "groupTitle": "Usuario" }, { "type": "post", - "url": "/usuarios/incluir-alterar", - "title": "Incluir ou alterar usuário", + "url": "/usuarios", + "title": "Incluir usuário", "name": "incluirUsuario", "group": "Usuario", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER_ADM" + } + ], "description": "

Este método realiza a inclusão de novos usuários ou alterarações nos usuários existentes.

", "parameter": { "fields": { - "Parameter": [ + "Request Body": [ { - "group": "Parameter", + "group": "Request Body", "type": "String", "optional": false, "field": "codigo", "description": "

Código que deseja atribuir ao usuário

" }, { - "group": "Parameter", + "group": "Request Body", "type": "String", "optional": false, "field": "nome", "description": "

Nome do usuário

" }, { - "group": "Parameter", + "group": "Request Body", "type": "String", "optional": false, "field": "login", @@ -8021,7 +8689,7 @@ "examples": [ { "title": "Exemplo de requisição:\t", - "content": "endpoint: http:///sei-broker/service/usuarios/incluir-alterar\n\nbody:\n{\n\t\"codigo\":\"1234\",\n\t\"nome\":\"André Luís Fernandes Guimarães\",\n\t\"login\":\"andre.guimaraes\"\n}", + "content": "endpoint: http:///sei-broker/service/usuarios\n\nbody:\n{\n\t\"codigo\":\"1234\",\n\t\"nome\":\"André Luís Fernandes Guimarães\",\n\t\"login\":\"andre.guimaraes\"\n}", "type": "json" } ], @@ -8047,7 +8715,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", "groupTitle": "Usuario" }, { @@ -8057,19 +8725,26 @@ "name": "listarUsuarios", "group": "Usuario", "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER" + } + ], "description": "

Este método realiza uma consulta aos usuários cadastrados que possuem o perfil "Básico".

", "parameter": { "fields": { - "Parameter": [ + "Path Parameters": [ { - "group": "Parameter", + "group": "Path Parameters", "type": "String", "optional": false, "field": "unidade", - "description": "

Sigla da Unidade cadastrada no SEI

" - }, + "description": "

Sigla da Unidade cadastrada no SEI.

" + } + ], + "Query Parameters": [ { - "group": "Parameter", + "group": "Query Parameters", "type": "String", "optional": true, "field": "usuario", @@ -8108,7 +8783,7 @@ } ] }, - "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", + "filename": "branch_homologacao/src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java", "groupTitle": "Usuario" } ] diff --git a/src/main/webapp/api-docs/api_project.js b/src/main/webapp/api-docs/api_project.js index 4068af8..ff4274e 100644 --- a/src/main/webapp/api-docs/api_project.js +++ b/src/main/webapp/api-docs/api_project.js @@ -1,14 +1,14 @@ define({ "name": "sei-broker", "version": "2.0.0", - "description": "Documentação da camada de integração ANS X SEI. Essa documentação serve para apoiar aos consumidores da camada de integração, pode ser necessário consultar a documentação oficial do SEI para melhor entendimento do negócio e seus objetos.", + "description": "Documentação da camada de integração ANS X SEI. Essa documentação serve para apoiar aos consumidores da camada de integração, pode ser necessário consultar a documentação oficial do SEI para melhor entendimento do negócio e seus objetos. Mais informações do SEI-Broker veja o artigo wiki.", "title": "Documentação - sei-broker", "url": "https:///sei-broker/service", "sampleUrl": false, "apidoc": "0.2.0", "generator": { "name": "apidoc", - "time": "2017-05-30T13:44:55.325Z", + "time": "2017-10-30T13:05:05.280Z", "url": "http://apidocjs.com", "version": "0.15.1" } diff --git a/src/main/webapp/api-docs/api_project.json b/src/main/webapp/api-docs/api_project.json index eb08936..2db59fb 100644 --- a/src/main/webapp/api-docs/api_project.json +++ b/src/main/webapp/api-docs/api_project.json @@ -1,14 +1,14 @@ { "name": "sei-broker", "version": "2.0.0", - "description": "Documentação da camada de integração ANS X SEI. Essa documentação serve para apoiar aos consumidores da camada de integração, pode ser necessário consultar a documentação oficial do SEI para melhor entendimento do negócio e seus objetos.", + "description": "Documentação da camada de integração ANS X SEI. Essa documentação serve para apoiar aos consumidores da camada de integração, pode ser necessário consultar a documentação oficial do SEI para melhor entendimento do negócio e seus objetos. Mais informações do SEI-Broker veja o artigo wiki.", "title": "Documentação - sei-broker", "url": "https:///sei-broker/service", "sampleUrl": false, "apidoc": "0.2.0", "generator": { "name": "apidoc", - "time": "2017-05-30T13:44:55.325Z", + "time": "2017-10-30T13:05:05.280Z", "url": "http://apidocjs.com", "version": "0.15.1" } diff --git a/src/test/java/br/gov/ans/integracao/sei/testes/Base64Decoder.java b/src/test/java/br/gov/ans/integracao/sei/testes/Base64Decoder.java index 8a01aea..3b3f990 100644 --- a/src/test/java/br/gov/ans/integracao/sei/testes/Base64Decoder.java +++ b/src/test/java/br/gov/ans/integracao/sei/testes/Base64Decoder.java @@ -5,7 +5,7 @@ import org.apache.commons.codec.binary.Base64; public class Base64Decoder { public static void main(String[] args) { - String base64 = "eyJudW1lcm9Qcm9jZXNzbyI6IjMzOTEwMDAwMTIzMjAxNzkzIiwKInJhemFvU29jaWFsIjoiQU1JTCBBU1NJU1TKTkNJQSBNyURJQ0EgSU5URVJOQUNJT05BTCBTLkEuIiwKImNucGpPcGVyYWRvcmEiOiIyOTMwOTEyNzAwMDE3OSIsCiJudW1lcm9SZWdpc3Ryb0FucyI6IjMyNjMwNSIsCiJkYXRhUHJvdG9jb2xvIjoiMDEvMDIvMjAxNyIsCiJtZXNJbmljaW9BcGxpY2FjYW8iOiIwNS8yMDE3IiwKImFub0luaWNpb0FwbGljYWNhbyI6IjA0LzIwMTgifQo="; + String base64 = "PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PlRFU1RFVEVTVEU8L2JvZHk+PC9odG1sPg=="; System.out.println(new String(Base64.decodeBase64(base64))); } diff --git a/src/test/java/br/gov/ans/integracao/sei/testes/Base64Encoder.java b/src/test/java/br/gov/ans/integracao/sei/testes/Base64Encoder.java index 496e381..e6cbe35 100644 --- a/src/test/java/br/gov/ans/integracao/sei/testes/Base64Encoder.java +++ b/src/test/java/br/gov/ans/integracao/sei/testes/Base64Encoder.java @@ -1,13 +1,50 @@ package br.gov.ans.integracao.sei.testes; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + import org.apache.commons.codec.binary.Base64; public class Base64Encoder { - public static void main(String[] args) { - String string = "{\"conteudo\":\"tentativa 1 tentativa 2 tentativa 3 \\r tentativa 4 \\n fim! \"}"; - System.out.println(string); - System.out.println(Base64.encodeBase64String(string.getBytes())); + public static void main(String[] args) throws IOException { + String string = "{\"content\":\"tentativa 1 tentativa 2 tentativa 3 \\r tentativa 4 \\n fim!
teste da tag \"}"; + +// System.out.println(string); + +// System.out.println(Base64.encodeBase64String(string.getBytes())); + Base64Encoder encoder = new Base64Encoder(); + + System.out.println(encoder.getBase64("0693609.pdf")); + System.out.println(encoder.getMD5("0693609.pdf")); + System.out.println(Base64.encodeBase64String("{\"regAns\":\"363022\",\"razaoSocial\":\"BRADESCO SAUDE E ASSISTENCIA S.A\",\"emailCadop\":\"teste@teste.com\",\"nuCnpj\":\"0000000000\",\"noCargoRepr\":\"Diretor\",\"noRepresentante\":\"André Guimarães\",\"anoInicio\":\"2016\",\"anoFinal\":\"2017\",\"numeroDocumento\":\"00000000\"}".getBytes())); + } + + public String getBase64(String arquivo){ + ClassLoader classLoader = getClass().getClassLoader(); + + File file = new File(classLoader.getResource(arquivo).getFile()); + + byte[] bytes = new byte[(int) file.length()]; + + try { + FileInputStream fileInputStream = new FileInputStream(file); + fileInputStream.read(bytes); + } catch (Exception e) { + e.printStackTrace(); + } + + return Base64.encodeBase64String(bytes); } + public String getMD5(String arquivo) throws IOException{ + ClassLoader classLoader = getClass().getClassLoader(); + FileInputStream fis = new FileInputStream(new File(classLoader.getResource(arquivo).getFile())); + String md5 = org.apache.commons.codec.digest.DigestUtils.md5Hex(fis); + fis.close(); + + return md5; + } } + 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 4f6e799..fb866b1 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 @@ -6,8 +6,8 @@ import com.jayway.restassured.RestAssured; public class FunctionalTest { - protected final String USUARIO = "desenv_integracao_sei"; - protected final String SENHA = "integra_sei_2016"; + protected final String USUARIO = "andre.guimaraes"; + protected final String SENHA = "Merda de senha!"; protected static final Boolean DESENVOLVIMENTO = false; @BeforeClass diff --git a/src/test/java/br/gov/ans/integracao/sei/testes/SeiBrokerTest.java b/src/test/java/br/gov/ans/integracao/sei/testes/SeiBrokerTest.java index 02d0569..b995568 100644 --- a/src/test/java/br/gov/ans/integracao/sei/testes/SeiBrokerTest.java +++ b/src/test/java/br/gov/ans/integracao/sei/testes/SeiBrokerTest.java @@ -105,12 +105,12 @@ public class SeiBrokerTest extends FunctionalTest{ @Test public void AG_consultarDocumentosPorInteressadosTest(){ - given().auth().basic(USUARIO, SENHA).accept("application/json").when().get("/363022/documentos").then().statusCode(200); + given().auth().basic(USUARIO, SENHA).accept("application/json").when().get("/interessados/363022/documentos").then().statusCode(200); } @Test - public void AH_consultarProcessosPorInteressadosTest(){ - given().auth().basic(USUARIO, SENHA).accept("application/json").when().get("/363022/processos").then().statusCode(200); + public void AH_consultarProcessos(){ + given().auth().basic(USUARIO, SENHA).accept("application/json").when().get("/processos").then().statusCode(200); } @Test @@ -561,8 +561,10 @@ public class SeiBrokerTest extends FunctionalTest{ i.setNome("BRADESCO SAUDE E ASSISTENCIA S.A"); i.setSigla("363022"); documento.setInteressados(new Interessado[]{i}); - - documento.setConteudo(Base64.encodeBase64String("

Tendo em vista que o processo foi criado indevidamente pelo sistema de integração do ressarcimento ao SUS, considera-se encerrado o processo eletrônico, sendo vedada qualquer juntada de novos documentos eletrônicos por meio do SEI.
".getBytes())); + + documento.setConteudo("PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PlRFU1RFVEVTVEU8L2JvZHk+PC9odG1sPg=="); + +// documento.setConteudo(Base64.encodeBase64String("

Tendo em vista que o processo foi criado indevidamente pelo sistema de integração do ressarcimento ao SUS, considera-se encerrado o processo eletrônico, sendo vedada qualquer juntada de novos documentos eletrônicos por meio do SEI.
".getBytes())); return documento; } -- libgit2 0.21.2