From a77349db47513526b94783bac07f75c308c828ce Mon Sep 17 00:00:00 2001 From: sys jenkins Date: Thu, 19 Apr 2018 21:45:48 +0000 Subject: [PATCH] Integrated SEI-BROKER_HM #66 (from Jenkins) http://ansprsvn01.ans.gov.br/03_ARQUITETURA/projetos/sei-broker/Fontes/branches/branch_homologacao@2115 --- pom.xml | 2 +- src/main/java/br/gov/ans/integracao/sei/dao/DocumentoDAO.java | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- src/main/java/br/gov/ans/integracao/sei/dao/SiparDAO.java | 5 ++++- src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------- src/main/resources/config.properties | 2 +- src/main/resources/messages.properties | 1 + src/main/webapp/api-docs/api_data.js | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/webapp/api-docs/api_data.json | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/webapp/api-docs/api_project.js | 2 +- src/main/webapp/api-docs/api_project.json | 2 +- 10 files changed, 564 insertions(+), 21 deletions(-) diff --git a/pom.xml b/pom.xml index 1556692..0c38e01 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 br.gov.ans sei-broker - 2.4.1 + 2.4.2 war sei-broker Projeto demonstrativo de webservice Rest 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 9f2453d..5c5004e 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 @@ -84,7 +84,7 @@ public class DocumentoDAO { parametros.put("codigoTipo", codigoTipo); } - builder.append("GROUP BY numero "); + builder.append("GROUP BY pr.protocolo_formatado_pesquisa "); if(orderByProcesso){ builder.append("ORDER BY processo "); @@ -102,6 +102,7 @@ public class DocumentoDAO { setPaginacaoQuery(query, pagina, qtdRegistros); + @SuppressWarnings("unchecked") List results = query.getResultList(); List documentos = new ArrayList(); @@ -152,7 +153,8 @@ public class DocumentoDAO { } @SuppressWarnings("unchecked") - public List getDocumentosProcesso(String idProcedimento, String codigoTipo, String origem, boolean somenteAssinados){ + public List getDocumentosProcesso(String idProcedimento, String codigoTipo, String origem, boolean somenteAssinados, + Integer pagina, Integer qtdRegistros){ HashMap parametros = new HashMap(); StringBuilder builder = new StringBuilder("SELECT pr.protocolo_formatado_pesquisa numero, s.nome tipoNome, s.id_serie tipoCodigo, d.numero numeroInformado, "); @@ -183,11 +185,12 @@ public class DocumentoDAO { parametros.put("origem", origem); } - builder.append("GROUP BY numero ORDER BY pr.dta_geracao ASC"); + builder.append("GROUP BY pr.protocolo_formatado_pesquisa ORDER BY pr.dta_geracao, pr.protocolo_formatado_pesquisa ASC"); Query query = em.createNativeQuery(builder.toString(), "DocumentoResumidoMapping"); setQueryParameters(query, parametros); + setPaginacaoQuery(query, pagina, qtdRegistros); List results = null; List documentos = new ArrayList(); @@ -205,5 +208,69 @@ public class DocumentoDAO { return documentos; } + + public Long countDocumentosProcesso(String idProcedimento, String codigoTipo, String origem, boolean somenteAssinados){ + HashMap parametros = new HashMap(); + + StringBuilder builder = new StringBuilder("SELECT count(pr.protocolo_formatado_pesquisa) "); + 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 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 "); + 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); + } + + Query query = em.createNativeQuery(builder.toString()); + + setQueryParameters(query, parametros); + + try{ + return Long.valueOf(query.getSingleResult().toString()); + }catch(NoResultException ex){ + return 0L; + } + } + + public DocumentoResumido getDocumentoProcesso(String idProcedimento, String documento){ + 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, 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 "); + builder.append("LEFT JOIN assinatura AS a ON d.id_documento = a.id_documento "); + 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 "); + builder.append("AND pr.protocolo_formatado_pesquisa = :documento "); + + parametros.put("idProcedimento", idProcedimento); + parametros.put("documento", documento); + + Query query = em.createNativeQuery(builder.toString(), "DocumentoResumidoMapping"); + + setQueryParameters(query, parametros); + + Object result = query.getSingleResult(); + + return (DocumentoResumido) ((Object[]) result)[0]; + } } 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 index a5ce6d4..3a83ddf 100644 --- a/src/main/java/br/gov/ans/integracao/sei/dao/SiparDAO.java +++ b/src/main/java/br/gov/ans/integracao/sei/dao/SiparDAO.java @@ -56,7 +56,10 @@ public class SiparDAO { + "WHERE " + "TR.DT_RECEBIMENTO IS NULL " + "AND TR.CO_DOCUMENTO = :numero " - + "AND TR.NU_ANO_DOCUMENTO = :ano "; + + "AND TR.NU_ANO_DOCUMENTO = :ano " + + "AND TR.DT_ENVIO = (" + + " SELECT MAX(TR2.DT_ENVIO) FROM DBPSIPAR.TB_TRAMITACAO TR2 WHERE TR2.CO_DOCUMENTO = :numero AND TR2.NU_ANO_DOCUMENTO = :ano" + + ")"; Query query = em.createNativeQuery(sql); query.setParameter("numero", numero); 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 be31020..1db1918 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 @@ -51,6 +51,7 @@ import br.gov.ans.integracao.sei.dao.ProcessoDAO; import br.gov.ans.integracao.sei.dao.SiparDAO; import br.gov.ans.integracao.sei.modelo.DocumentoResumido; import br.gov.ans.integracao.sei.modelo.EnvioDeProcesso; +import br.gov.ans.integracao.sei.modelo.InclusaoDocumento; import br.gov.ans.integracao.sei.modelo.Motivo; import br.gov.ans.integracao.sei.modelo.NovoAndamento; import br.gov.ans.integracao.sei.modelo.NovoProcesso; @@ -1165,6 +1166,8 @@ public class ProcessoResource { * @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 + * @apiParam (Query Parameters) {String} [pagina=1] Número da página + * @apiParam (Query Parameters) {String} [qtdRegistros = 50] Quantidade de registros que serão exibidos por página * * @apiExample Exemplo de requisição: * curl -i https:///sei-broker/service/processos/33910003149201793/documentos @@ -1181,6 +1184,8 @@ public class ProcessoResource { * @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 * { @@ -1206,21 +1211,88 @@ public class ProcessoResource { @GET @Path("/processos/{processo:\\d+}/documentos") @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) - 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))); - } + public Response listarDocumentosPorProcesso(@PathParam("processo") String processo, @QueryParam("tipo")String tipo, + @QueryParam("origem") String origem, @QueryParam("somenteAssinados") boolean somenteAssinados, @QueryParam("pagina") String pagina, + @QueryParam("qtdRegistros") String qtdRegistros)throws RemoteException, Exception{ + + Integer tamanhoPagina = (qtdRegistros == null ? null : parseInt(qtdRegistros)); + + String idProcedimento = consultarIdProcedimento(processo); - return documentosProcesso; - }catch(NoResultException ex){ - throw new BusinessException(messages.getMessage("erro.processo.nao.pertence.sei", formatarNumeroProcesso(processo))); + Long totalDocumentosProcesso = documentoDAO.countDocumentosProcesso(idProcedimento, tipo, origem, somenteAssinados); + + if(totalDocumentosProcesso < 1L){ + throw new ResourceNotFoundException(messages.getMessage("erro.processo.sem.documentos", formatarNumeroProcesso(processo))); } + + List documentosProcesso = documentoDAO.getDocumentosProcesso(idProcedimento, tipo, origem, somenteAssinados, + pagina == null ? null : parseInt(pagina), tamanhoPagina); + + return Response.status(getStatus(totalDocumentosProcesso.intValue(), tamanhoPagina)).header("total_registros", totalDocumentosProcesso) + .entity(new GenericEntity>(documentosProcesso){}).build(); + } + + /** + * @api {get} /processos/:processo/documentos/:documento Consultar documento + * @apiName consultarDocumentoDoProcesso + * @apiGroup Processo + * @apiVersion 2.0.0 + * + * @apiPermission RO_SEI_BROKER ou RO_SEI_BROKER_CONSULTA + * + * @apiDescription Consulta um documento de determinado processo. + * + * @apiParam (Path Parameters) {String} processo Número do processo. + * @apiParam (Path Parameters) {String} documento Número do documento. + * + * @apiExample Exemplo de requisição: + * curl -i https:///sei-broker/service/processos/33910002924201874/documentos/55737058 + * + * @apiSuccess (Sucesso Response Body - 200) {DocumentoResumido} documentoResumido Resumo do documento encontrado no SEI. + * @apiSuccess (Sucesso Response Body - 200) {String} documentoResumido.numero Número do documento. + * @apiSuccess (Sucesso Response Body - 200) {String} 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"} documentoResumido.origem Origem do documento, se o mesmo é um documento "GERADO" internamente ou "RECEBIDO" de uma fonte externa. + * @apiSuccess (Sucesso Response Body - 200) {Data} documentoResumido.dataGeracao Data de geração do documento. + * @apiSuccess (Sucesso Response Body - 200) {Tipo} documentoResumido.tipo Objeto representando o tipo do documento. + * @apiSuccess (Sucesso Response Body - 200) {String} documentoResumido.tipo.codigo Identificados do tipo do documento, também conhecido como série. + * @apiSuccess (Sucesso Response Body - 200) {String} documentoResumido.tipo.nome Nome do tipo do documento. + * @apiSuccess (Sucesso Response Body - 200) {String} documentoResumido.tipoConferencia Tipo de conferência do documento. + * @apiSuccess (Sucesso Response Body - 200) {boolean} documentoResumido.assinado Boolean indicando se o documento foi assinado. + * + * @apiSuccessExample {json} Success-Response: + * HTTP/1.1 200 OK + * { + * "numero": "0670949", + * "numeroInformado": "594", + * "origem": "RECEBIDO", + * "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: + * HTTP/1.1 500 Internal Server Error + * { + * "error":"Mensagem de erro." + * "code":"código do erro" + * } + */ + @GET + @Path("/processos/{processo:\\d+}/documentos/{documento:\\d+}") + @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) + public DocumentoResumido consultarDocumentoDoProcesso(@PathParam("processo") String processo, @PathParam("documento") String documento)throws RemoteException, Exception{ + String idProcedimento = consultarIdProcedimento(processo); + try { + DocumentoResumido documentoProcesso = documentoDAO.getDocumentoProcesso(idProcedimento, documento); + + return documentoProcesso; + } catch (Exception e) { + throw new ResourceNotFoundException(messages.getMessage("erro.documento.nao.encontrado", documento, formatarNumeroProcesso(processo))); + } } public URI getResourcePath(String resourceId){ @@ -1253,4 +1325,20 @@ public class ProcessoResource { return atributos.toArray(new AtributoAndamento[atributos.size()]); } + + public String consultarIdProcedimento(String processo) throws Exception{ + try{ + return ((BigInteger) processoDAO.getIdProcedimento(formatarNumeroProcesso(processo))).toString(); + }catch(NoResultException ex){ + throw new BusinessException(messages.getMessage("erro.processo.nao.pertence.sei", formatarNumeroProcesso(processo))); + } + } + + public Status getStatus(Integer quantidadeItens, Integer tamanhoPagina){ + if(quantidadeItens > (tamanhoPagina == null ? Constantes.TAMANHO_PAGINA_PADRAO : tamanhoPagina )){ + return Status.PARTIAL_CONTENT; + } + + return Status.OK; + } } diff --git a/src/main/resources/config.properties b/src/main/resources/config.properties index 8f8a0b8..685ce42 100644 --- a/src/main/resources/config.properties +++ b/src/main/resources/config.properties @@ -1 +1 @@ -versao.sistema = V_2.4.1 \ No newline at end of file +versao.sistema = V_2.4.2 \ No newline at end of file diff --git a/src/main/resources/messages.properties b/src/main/resources/messages.properties index d4b819b..6651dca 100644 --- a/src/main/resources/messages.properties +++ b/src/main/resources/messages.properties @@ -18,6 +18,7 @@ erro.desanexar.processo = Ocorreu um erro ao desanexar o processo. erro.desbloquear.processo = Ocorreu um erro ao desbloquear o processo. erro.desrelacionar.processo = Ocorreu um erro ao remover o relacionamento. erro.documento.incluir.bloco = Não foi possivel incluir o documento no bloco. +erro.documento.nao.encontrado = Não existe documento com o identificador {0} no processo {1}. erro.documento.sem.processo = É necessário informar um número de processo para incluir um documento. erro.estado.nao.encontrado = Não foi encontrado um estado para a sigla {0}. erro.inesperado = Ocorreu um erro inesperado no SEI-Broker, contacte a equipe responsável. diff --git a/src/main/webapp/api-docs/api_data.js b/src/main/webapp/api-docs/api_data.js index 1278f26..b8dfb2f 100644 --- a/src/main/webapp/api-docs/api_data.js +++ b/src/main/webapp/api-docs/api_data.js @@ -1330,6 +1330,34 @@ define({ "api": [ "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.4.2/api-docs/main.js", + "group": "C__ANS_sei_broker_Fontes_branches_desenvolvimento_versao_3_sei_broker_target_sei_broker_2_4_2_api_docs_main_js", + "groupTitle": "C__ANS_sei_broker_Fontes_branches_desenvolvimento_versao_3_sei_broker_target_sei_broker_2_4_2_api_docs_main_js", + "name": "" + }, + { "type": "get", "url": "/:unidade/cargos", "title": "Listar cargos", @@ -5772,6 +5800,145 @@ define({ "api": [ }, { "type": "get", + "url": "/processos/:processo/documentos/:documento", + "title": "Consultar documento", + "name": "consultarDocumentoDoProcesso", + "group": "Processo", + "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER ou RO_SEI_BROKER_CONSULTA" + } + ], + "description": "

Consulta um documento de determinado processo.

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

Número do processo.

" + }, + { + "group": "Path Parameters", + "type": "String", + "optional": false, + "field": "documento", + "description": "

Número do documento.

" + } + ] + } + }, + "examples": [ + { + "title": "Exemplo de requisição:\t", + "content": "curl -i https:///sei-broker/service/processos/33910002924201874/documentos/55737058", + "type": "json" + } + ], + "success": { + "fields": { + "Sucesso Response Body - 200": [ + { + "group": "Sucesso Response Body - 200", + "type": "DocumentoResumido", + "optional": false, + "field": "documentoResumido", + "description": "

Resumo do documento encontrado no SEI.

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

Número do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "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", + "allowedValues": [ + "\"GERADO\"", + "\"RECEBIDO\"" + ], + "optional": false, + "field": "documentoResumido.origem", + "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": "documentoResumido.dataGeracao", + "description": "

Data de geração do documento.

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

Objeto representando o tipo do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "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": "documentoResumido.tipo.nome", + "description": "

Nome do tipo do documento.

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

Tipo de conferência do documento.

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

Boolean indicando se o documento foi assinado.

" + } + ] + }, + "examples": [ + { + "title": "Success-Response:", + "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" + } + ] + }, + "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": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "groupTitle": "Processo" + }, + { + "type": "get", "url": "/:unidade/processos/:processo", "title": "Consultar processo", "name": "consultarProcesso", @@ -7490,6 +7657,22 @@ define({ "api": [ "field": "somenteAssinados", "defaultValue": "false", "description": "

Exibir somente documentos assinados

" + }, + { + "group": "Query Parameters", + "type": "String", + "optional": true, + "field": "pagina", + "defaultValue": "1", + "description": "

Número da página

" + }, + { + "group": "Query Parameters", + "type": "String", + "optional": true, + "field": "qtdRegistros", + "defaultValue": "50", + "description": "

Quantidade de registros que serão exibidos por página

" } ] } @@ -7585,6 +7768,15 @@ define({ "api": [ "field": "documentos.documentoResumido.assinado", "description": "

Boolean indicando se o documento foi assinado.

" } + ], + "Sucesso Response Header- 200": [ + { + "group": "Sucesso Response Header- 200", + "type": "header", + "optional": false, + "field": "total_registros", + "description": "

Quantidade de registros que existem para essa consulta

" + } ] }, "examples": [ diff --git a/src/main/webapp/api-docs/api_data.json b/src/main/webapp/api-docs/api_data.json index 71f9ef8..44ec68e 100644 --- a/src/main/webapp/api-docs/api_data.json +++ b/src/main/webapp/api-docs/api_data.json @@ -1330,6 +1330,34 @@ "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.4.2/api-docs/main.js", + "group": "C__ANS_sei_broker_Fontes_branches_desenvolvimento_versao_3_sei_broker_target_sei_broker_2_4_2_api_docs_main_js", + "groupTitle": "C__ANS_sei_broker_Fontes_branches_desenvolvimento_versao_3_sei_broker_target_sei_broker_2_4_2_api_docs_main_js", + "name": "" + }, + { "type": "get", "url": "/:unidade/cargos", "title": "Listar cargos", @@ -5772,6 +5800,145 @@ }, { "type": "get", + "url": "/processos/:processo/documentos/:documento", + "title": "Consultar documento", + "name": "consultarDocumentoDoProcesso", + "group": "Processo", + "version": "2.0.0", + "permission": [ + { + "name": "RO_SEI_BROKER ou RO_SEI_BROKER_CONSULTA" + } + ], + "description": "

Consulta um documento de determinado processo.

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

Número do processo.

" + }, + { + "group": "Path Parameters", + "type": "String", + "optional": false, + "field": "documento", + "description": "

Número do documento.

" + } + ] + } + }, + "examples": [ + { + "title": "Exemplo de requisição:\t", + "content": "curl -i https:///sei-broker/service/processos/33910002924201874/documentos/55737058", + "type": "json" + } + ], + "success": { + "fields": { + "Sucesso Response Body - 200": [ + { + "group": "Sucesso Response Body - 200", + "type": "DocumentoResumido", + "optional": false, + "field": "documentoResumido", + "description": "

Resumo do documento encontrado no SEI.

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

Número do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "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", + "allowedValues": [ + "\"GERADO\"", + "\"RECEBIDO\"" + ], + "optional": false, + "field": "documentoResumido.origem", + "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": "documentoResumido.dataGeracao", + "description": "

Data de geração do documento.

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

Objeto representando o tipo do documento.

" + }, + { + "group": "Sucesso Response Body - 200", + "type": "String", + "optional": false, + "field": "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": "documentoResumido.tipo.nome", + "description": "

Nome do tipo do documento.

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

Tipo de conferência do documento.

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

Boolean indicando se o documento foi assinado.

" + } + ] + }, + "examples": [ + { + "title": "Success-Response:", + "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" + } + ] + }, + "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": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", + "groupTitle": "Processo" + }, + { + "type": "get", "url": "/:unidade/processos/:processo", "title": "Consultar processo", "name": "consultarProcesso", @@ -7490,6 +7657,22 @@ "field": "somenteAssinados", "defaultValue": "false", "description": "

Exibir somente documentos assinados

" + }, + { + "group": "Query Parameters", + "type": "String", + "optional": true, + "field": "pagina", + "defaultValue": "1", + "description": "

Número da página

" + }, + { + "group": "Query Parameters", + "type": "String", + "optional": true, + "field": "qtdRegistros", + "defaultValue": "50", + "description": "

Quantidade de registros que serão exibidos por página

" } ] } @@ -7585,6 +7768,15 @@ "field": "documentos.documentoResumido.assinado", "description": "

Boolean indicando se o documento foi assinado.

" } + ], + "Sucesso Response Header- 200": [ + { + "group": "Sucesso Response Header- 200", + "type": "header", + "optional": false, + "field": "total_registros", + "description": "

Quantidade de registros que existem para essa consulta

" + } ] }, "examples": [ diff --git a/src/main/webapp/api-docs/api_project.js b/src/main/webapp/api-docs/api_project.js index b7d1f69..b8d26e3 100644 --- a/src/main/webapp/api-docs/api_project.js +++ b/src/main/webapp/api-docs/api_project.js @@ -8,7 +8,7 @@ define({ "apidoc": "0.2.0", "generator": { "name": "apidoc", - "time": "2018-03-23T14:42:37.240Z", + "time": "2018-04-09T12:23:09.782Z", "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 b8f46df..265fff4 100644 --- a/src/main/webapp/api-docs/api_project.json +++ b/src/main/webapp/api-docs/api_project.json @@ -8,7 +8,7 @@ "apidoc": "0.2.0", "generator": { "name": "apidoc", - "time": "2018-03-23T14:42:37.240Z", + "time": "2018-04-09T12:23:09.782Z", "url": "http://apidocjs.com", "version": "0.15.1" } -- libgit2 0.21.2