From 755238e7213e873f3e8a38ed7b9b87076abf8705 Mon Sep 17 00:00:00 2001 From: andre guimaraes Date: Tue, 10 Oct 2017 15:22:59 +0000 Subject: [PATCH] Alterações no método de consulta a documentos por interessado, query melhorada e retorno com mais informações, novas opções de filtragem adicionadas, documentação atualizada. --- src/main/java/br/gov/ans/integracao/sei/dao/DocumentoDAO.java | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------- src/main/java/br/gov/ans/integracao/sei/rest/DocumentoResource.java | 58 +++++++++++++++++++++++++++++++++++++--------------------- src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java | 35 +++++++++++++++++++++++++++-------- src/main/webapp/api-docs/api_data.js | 158 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------- src/main/webapp/api-docs/api_data.json | 158 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------- src/main/webapp/api-docs/api_project.js | 2 +- src/main/webapp/api-docs/api_project.json | 2 +- 7 files changed, 393 insertions(+), 124 deletions(-) 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 a55bfb7..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 @@ -8,6 +8,7 @@ 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; @@ -22,7 +23,7 @@ public class DocumentoDAO { 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 "); @@ -54,30 +55,103 @@ 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(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(interessado)){ - builder.append("AND 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") 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 31258d3..d80a304 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 @@ -503,7 +503,7 @@ 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 @@ -514,33 +514,47 @@ public class DocumentoResource { * * @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: @@ -551,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/ProcessoResource.java b/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java index 35eab68..4c8deb4 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 @@ -594,6 +594,20 @@ public class ProcessoResource { * * @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 * { @@ -1147,24 +1161,29 @@ public class ProcessoResource { * * @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) {boolean} documentos.documentoResumido.assinado Boolean indicando se o documento foi assinado. - * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.codigoTipo Identificador do tipo do documento. - * @apiSuccess (Sucesso Response Body - 200) {Data} documentos.documentoResumido.dataGeracao Data de geração do documento. * @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="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) {String} documentos.documentoResumido.tipo Tipo do documento. + * @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 * { - * "assinado": true, - * "codigoTipo": "5", - * "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: diff --git a/src/main/webapp/api-docs/api_data.js b/src/main/webapp/api-docs/api_data.js index 85af008..11edb59 100644 --- a/src/main/webapp/api-docs/api_data.js +++ b/src/main/webapp/api-docs/api_data.js @@ -3066,8 +3066,8 @@ define({ "api": [ }, { "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", @@ -3093,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", @@ -3118,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" } ], @@ -3130,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", @@ -3176,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": [ @@ -3199,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" } ] @@ -6364,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": [ @@ -7230,17 +7296,28 @@ define({ "api": [ }, { "group": "Sucesso Response Body - 200", - "type": "boolean", + "type": "String", "optional": false, - "field": "documentos.documentoResumido.assinado", - "description": "

Boolean indicando se o documento foi assinado.

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

Número do documento.

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

Identificador do tipo do documento.

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

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

" }, { "group": "Sucesso Response Body - 200", @@ -7251,28 +7328,24 @@ define({ "api": [ }, { "group": "Sucesso Response Body - 200", - "type": "String", + "type": "Tipo", "optional": false, - "field": "documentos.documentoResumido.numero", - "description": "

Número do documento.

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

Objeto representando o tipo do documento.

" }, { "group": "Sucesso Response Body - 200", "type": "String", - "allowedValues": [ - "\"GERADO\"", - "\"RECEBIDO\"" - ], "optional": false, - "field": "documentos.documentoResumido.origem", - "description": "

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

" + "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", - "description": "

Tipo do documento.

" + "field": "documentos.documentoResumido.tipo.nome", + "description": "

Nome do tipo do documento.

" }, { "group": "Sucesso Response Body - 200", @@ -7280,13 +7353,20 @@ define({ "api": [ "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 \"assinado\": true,\n \"codigoTipo\": \"5\",\n \"dataGeracao\": \"2015-08-10T00:00:00-03:00\",\n \"numero\": \"0670949\",\n \"origem\": \"RECEBIDO\",\n \"tipo\": \"Despacho\"\n \"tipoConferencia\": \"4\",\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" } ] diff --git a/src/main/webapp/api-docs/api_data.json b/src/main/webapp/api-docs/api_data.json index 0e9b2ed..c4404a2 100644 --- a/src/main/webapp/api-docs/api_data.json +++ b/src/main/webapp/api-docs/api_data.json @@ -3066,8 +3066,8 @@ }, { "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", @@ -3093,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", @@ -3118,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" } ], @@ -3130,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", @@ -3176,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": [ @@ -3199,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" } ] @@ -6364,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": [ @@ -7230,17 +7296,28 @@ }, { "group": "Sucesso Response Body - 200", - "type": "boolean", + "type": "String", "optional": false, - "field": "documentos.documentoResumido.assinado", - "description": "

Boolean indicando se o documento foi assinado.

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

Número do documento.

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

Identificador do tipo do documento.

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

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

" }, { "group": "Sucesso Response Body - 200", @@ -7251,28 +7328,24 @@ }, { "group": "Sucesso Response Body - 200", - "type": "String", + "type": "Tipo", "optional": false, - "field": "documentos.documentoResumido.numero", - "description": "

Número do documento.

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

Objeto representando o tipo do documento.

" }, { "group": "Sucesso Response Body - 200", "type": "String", - "allowedValues": [ - "\"GERADO\"", - "\"RECEBIDO\"" - ], "optional": false, - "field": "documentos.documentoResumido.origem", - "description": "

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

" + "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", - "description": "

Tipo do documento.

" + "field": "documentos.documentoResumido.tipo.nome", + "description": "

Nome do tipo do documento.

" }, { "group": "Sucesso Response Body - 200", @@ -7280,13 +7353,20 @@ "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 \"assinado\": true,\n \"codigoTipo\": \"5\",\n \"dataGeracao\": \"2015-08-10T00:00:00-03:00\",\n \"numero\": \"0670949\",\n \"origem\": \"RECEBIDO\",\n \"tipo\": \"Despacho\"\n \"tipoConferencia\": \"4\",\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" } ] diff --git a/src/main/webapp/api-docs/api_project.js b/src/main/webapp/api-docs/api_project.js index 183ff49..d37cdb8 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": "2017-10-09T13:37:15.818Z", + "time": "2017-10-10T15:21:17.201Z", "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 d12fcb0..4b3cdf9 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": "2017-10-09T13:37:15.818Z", + "time": "2017-10-10T15:21:17.201Z", "url": "http://apidocjs.com", "version": "0.15.1" } -- libgit2 0.21.2