Commit a77349db47513526b94783bac07f75c308c828ce
1 parent
d92c249e
Exists in
master
and in
1 other branch
Integrated SEI-BROKER_HM #66 (from Jenkins)
http://ansprsvn01.ans.gov.br/03_ARQUITETURA/projetos/sei-broker/Fontes/branches/branch_homologacao@2115
Showing
10 changed files
with
564 additions
and
21 deletions
Show diff stats
pom.xml
| ... | ... | @@ -4,7 +4,7 @@ |
| 4 | 4 | <modelVersion>4.0.0</modelVersion> |
| 5 | 5 | <groupId>br.gov.ans</groupId> |
| 6 | 6 | <artifactId>sei-broker</artifactId> |
| 7 | - <version>2.4.1</version> | |
| 7 | + <version>2.4.2</version> | |
| 8 | 8 | <packaging>war</packaging> |
| 9 | 9 | <name>sei-broker</name> |
| 10 | 10 | <description>Projeto demonstrativo de webservice Rest</description> | ... | ... |
src/main/java/br/gov/ans/integracao/sei/dao/DocumentoDAO.java
| ... | ... | @@ -84,7 +84,7 @@ public class DocumentoDAO { |
| 84 | 84 | parametros.put("codigoTipo", codigoTipo); |
| 85 | 85 | } |
| 86 | 86 | |
| 87 | - builder.append("GROUP BY numero "); | |
| 87 | + builder.append("GROUP BY pr.protocolo_formatado_pesquisa "); | |
| 88 | 88 | |
| 89 | 89 | if(orderByProcesso){ |
| 90 | 90 | builder.append("ORDER BY processo "); |
| ... | ... | @@ -102,6 +102,7 @@ public class DocumentoDAO { |
| 102 | 102 | |
| 103 | 103 | setPaginacaoQuery(query, pagina, qtdRegistros); |
| 104 | 104 | |
| 105 | + @SuppressWarnings("unchecked") | |
| 105 | 106 | List<Object[]> results = query.getResultList(); |
| 106 | 107 | |
| 107 | 108 | List<DocumentoResumido> documentos = new ArrayList<DocumentoResumido>(); |
| ... | ... | @@ -152,7 +153,8 @@ public class DocumentoDAO { |
| 152 | 153 | } |
| 153 | 154 | |
| 154 | 155 | @SuppressWarnings("unchecked") |
| 155 | - public List<DocumentoResumido> getDocumentosProcesso(String idProcedimento, String codigoTipo, String origem, boolean somenteAssinados){ | |
| 156 | + public List<DocumentoResumido> getDocumentosProcesso(String idProcedimento, String codigoTipo, String origem, boolean somenteAssinados, | |
| 157 | + Integer pagina, Integer qtdRegistros){ | |
| 156 | 158 | HashMap<String, Object> parametros = new HashMap<String, Object>(); |
| 157 | 159 | |
| 158 | 160 | 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 { |
| 183 | 185 | parametros.put("origem", origem); |
| 184 | 186 | } |
| 185 | 187 | |
| 186 | - builder.append("GROUP BY numero ORDER BY pr.dta_geracao ASC"); | |
| 188 | + builder.append("GROUP BY pr.protocolo_formatado_pesquisa ORDER BY pr.dta_geracao, pr.protocolo_formatado_pesquisa ASC"); | |
| 187 | 189 | |
| 188 | 190 | Query query = em.createNativeQuery(builder.toString(), "DocumentoResumidoMapping"); |
| 189 | 191 | |
| 190 | 192 | setQueryParameters(query, parametros); |
| 193 | + setPaginacaoQuery(query, pagina, qtdRegistros); | |
| 191 | 194 | |
| 192 | 195 | List<Object[]> results = null; |
| 193 | 196 | List<DocumentoResumido> documentos = new ArrayList<DocumentoResumido>(); |
| ... | ... | @@ -205,5 +208,69 @@ public class DocumentoDAO { |
| 205 | 208 | |
| 206 | 209 | return documentos; |
| 207 | 210 | } |
| 211 | + | |
| 212 | + public Long countDocumentosProcesso(String idProcedimento, String codigoTipo, String origem, boolean somenteAssinados){ | |
| 213 | + HashMap<String, Object> parametros = new HashMap<String, Object>(); | |
| 214 | + | |
| 215 | + StringBuilder builder = new StringBuilder("SELECT count(pr.protocolo_formatado_pesquisa) "); | |
| 216 | + builder.append("FROM documento AS d "); | |
| 217 | + | |
| 218 | + if(somenteAssinados){ | |
| 219 | + builder.append("RIGHT JOIN assinatura AS a ON d.id_documento = a.id_documento "); | |
| 220 | + }else{ | |
| 221 | + builder.append("LEFT JOIN assinatura AS a ON d.id_documento = a.id_documento "); | |
| 222 | + } | |
| 223 | + | |
| 224 | + builder.append("JOIN protocolo AS pr ON pr.id_protocolo = d.id_documento "); | |
| 225 | + builder.append("JOIN serie AS s ON d.id_serie = s.id_serie "); | |
| 226 | + builder.append("WHERE d.id_procedimento = :idProcedimento "); | |
| 208 | 227 | |
| 228 | + parametros.put("idProcedimento", idProcedimento); | |
| 229 | + | |
| 230 | + if(StringUtils.isNotBlank(codigoTipo)){ | |
| 231 | + builder.append("AND s.id_serie in (:codigoTipo) "); | |
| 232 | + parametros.put("codigoTipo", codigoTipo); | |
| 233 | + } | |
| 234 | + | |
| 235 | + if(StringUtils.isNotBlank(origem)){ | |
| 236 | + builder.append("AND pr.sta_protocolo = :origem "); | |
| 237 | + parametros.put("origem", origem); | |
| 238 | + } | |
| 239 | + | |
| 240 | + Query query = em.createNativeQuery(builder.toString()); | |
| 241 | + | |
| 242 | + setQueryParameters(query, parametros); | |
| 243 | + | |
| 244 | + try{ | |
| 245 | + return Long.valueOf(query.getSingleResult().toString()); | |
| 246 | + }catch(NoResultException ex){ | |
| 247 | + return 0L; | |
| 248 | + } | |
| 249 | + } | |
| 250 | + | |
| 251 | + public DocumentoResumido getDocumentoProcesso(String idProcedimento, String documento){ | |
| 252 | + HashMap<String, Object> parametros = new HashMap<String, Object>(); | |
| 253 | + | |
| 254 | + StringBuilder builder = new StringBuilder("SELECT pr.protocolo_formatado_pesquisa numero, s.nome tipoNome, s.id_serie tipoCodigo, d.numero numeroInformado, "); | |
| 255 | + builder.append("CASE pr.sta_protocolo WHEN 'G' THEN 'GERADO' ELSE 'RECEBIDO' END origem, d.id_tipo_conferencia tipoConferencia, "); | |
| 256 | + builder.append("pr.dta_geracao dataGeracao, null as processo, null as unidade, "); | |
| 257 | + builder.append("CASE WHEN a.id_assinatura is null THEN false ELSE true END assinado "); | |
| 258 | + builder.append("FROM documento AS d "); | |
| 259 | + builder.append("LEFT JOIN assinatura AS a ON d.id_documento = a.id_documento "); | |
| 260 | + builder.append("JOIN protocolo AS pr ON pr.id_protocolo = d.id_documento "); | |
| 261 | + builder.append("JOIN serie AS s ON d.id_serie = s.id_serie "); | |
| 262 | + builder.append("WHERE d.id_procedimento = :idProcedimento "); | |
| 263 | + builder.append("AND pr.protocolo_formatado_pesquisa = :documento "); | |
| 264 | + | |
| 265 | + parametros.put("idProcedimento", idProcedimento); | |
| 266 | + parametros.put("documento", documento); | |
| 267 | + | |
| 268 | + Query query = em.createNativeQuery(builder.toString(), "DocumentoResumidoMapping"); | |
| 269 | + | |
| 270 | + setQueryParameters(query, parametros); | |
| 271 | + | |
| 272 | + Object result = query.getSingleResult(); | |
| 273 | + | |
| 274 | + return (DocumentoResumido) ((Object[]) result)[0]; | |
| 275 | + } | |
| 209 | 276 | } | ... | ... |
src/main/java/br/gov/ans/integracao/sei/dao/SiparDAO.java
| ... | ... | @@ -56,7 +56,10 @@ public class SiparDAO { |
| 56 | 56 | + "WHERE " |
| 57 | 57 | + "TR.DT_RECEBIMENTO IS NULL " |
| 58 | 58 | + "AND TR.CO_DOCUMENTO = :numero " |
| 59 | - + "AND TR.NU_ANO_DOCUMENTO = :ano "; | |
| 59 | + + "AND TR.NU_ANO_DOCUMENTO = :ano " | |
| 60 | + + "AND TR.DT_ENVIO = (" | |
| 61 | + + " SELECT MAX(TR2.DT_ENVIO) FROM DBPSIPAR.TB_TRAMITACAO TR2 WHERE TR2.CO_DOCUMENTO = :numero AND TR2.NU_ANO_DOCUMENTO = :ano" | |
| 62 | + + ")"; | |
| 60 | 63 | |
| 61 | 64 | Query query = em.createNativeQuery(sql); |
| 62 | 65 | query.setParameter("numero", numero); | ... | ... |
src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java
| ... | ... | @@ -51,6 +51,7 @@ import br.gov.ans.integracao.sei.dao.ProcessoDAO; |
| 51 | 51 | import br.gov.ans.integracao.sei.dao.SiparDAO; |
| 52 | 52 | import br.gov.ans.integracao.sei.modelo.DocumentoResumido; |
| 53 | 53 | import br.gov.ans.integracao.sei.modelo.EnvioDeProcesso; |
| 54 | +import br.gov.ans.integracao.sei.modelo.InclusaoDocumento; | |
| 54 | 55 | import br.gov.ans.integracao.sei.modelo.Motivo; |
| 55 | 56 | import br.gov.ans.integracao.sei.modelo.NovoAndamento; |
| 56 | 57 | import br.gov.ans.integracao.sei.modelo.NovoProcesso; |
| ... | ... | @@ -1165,6 +1166,8 @@ public class ProcessoResource { |
| 1165 | 1166 | * @apiParam (Query Parameters) {String} [tipo=null] Identificador do tipo do documento, caso seja necessário filtrar pelo tipo |
| 1166 | 1167 | * @apiParam (Query Parameters) {String = "G (gerado/interno), R (recebido/externo)"} [origem=null] Filtra os documentos por gerados ou recebidos |
| 1167 | 1168 | * @apiParam (Query Parameters) {boolean} [somenteAssinados=false] Exibir somente documentos assinados |
| 1169 | + * @apiParam (Query Parameters) {String} [pagina=1] Número da página | |
| 1170 | + * @apiParam (Query Parameters) {String} [qtdRegistros = 50] Quantidade de registros que serão exibidos por página | |
| 1168 | 1171 | * |
| 1169 | 1172 | * @apiExample Exemplo de requisição: |
| 1170 | 1173 | * curl -i https://<host>/sei-broker/service/processos/33910003149201793/documentos |
| ... | ... | @@ -1181,6 +1184,8 @@ public class ProcessoResource { |
| 1181 | 1184 | * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.tipoConferencia Tipo de conferência do documento. |
| 1182 | 1185 | * @apiSuccess (Sucesso Response Body - 200) {boolean} documentos.documentoResumido.assinado Boolean indicando se o documento foi assinado. |
| 1183 | 1186 | * |
| 1187 | + * @apiSuccess (Sucesso Response Header- 200) {header} total_registros Quantidade de registros que existem para essa consulta | |
| 1188 | + * | |
| 1184 | 1189 | * @apiSuccessExample {json} Success-Response: |
| 1185 | 1190 | * HTTP/1.1 200 OK |
| 1186 | 1191 | * { |
| ... | ... | @@ -1206,21 +1211,88 @@ public class ProcessoResource { |
| 1206 | 1211 | @GET |
| 1207 | 1212 | @Path("/processos/{processo:\\d+}/documentos") |
| 1208 | 1213 | @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) |
| 1209 | - public List<DocumentoResumido> listarDocumentosPorProcesso(@PathParam("processo") String processo, @QueryParam("tipo")String tipo, | |
| 1210 | - @QueryParam("origem") String origem, @QueryParam("somenteAssinados") boolean somenteAssinados) throws RemoteException, Exception{ | |
| 1211 | - try{ | |
| 1212 | - BigInteger idProcedimento = processoDAO.getIdProcedimento(formatarNumeroProcesso(processo)); | |
| 1213 | - | |
| 1214 | - List<DocumentoResumido> documentosProcesso = documentoDAO.getDocumentosProcesso(idProcedimento.toString(), tipo, origem, somenteAssinados); | |
| 1215 | - | |
| 1216 | - if(documentosProcesso.isEmpty()){ | |
| 1217 | - throw new ResourceNotFoundException(messages.getMessage("erro.processo.sem.documentos", formatarNumeroProcesso(processo))); | |
| 1218 | - } | |
| 1214 | + public Response listarDocumentosPorProcesso(@PathParam("processo") String processo, @QueryParam("tipo")String tipo, | |
| 1215 | + @QueryParam("origem") String origem, @QueryParam("somenteAssinados") boolean somenteAssinados, @QueryParam("pagina") String pagina, | |
| 1216 | + @QueryParam("qtdRegistros") String qtdRegistros)throws RemoteException, Exception{ | |
| 1217 | + | |
| 1218 | + Integer tamanhoPagina = (qtdRegistros == null ? null : parseInt(qtdRegistros)); | |
| 1219 | + | |
| 1220 | + String idProcedimento = consultarIdProcedimento(processo); | |
| 1219 | 1221 | |
| 1220 | - return documentosProcesso; | |
| 1221 | - }catch(NoResultException ex){ | |
| 1222 | - throw new BusinessException(messages.getMessage("erro.processo.nao.pertence.sei", formatarNumeroProcesso(processo))); | |
| 1222 | + Long totalDocumentosProcesso = documentoDAO.countDocumentosProcesso(idProcedimento, tipo, origem, somenteAssinados); | |
| 1223 | + | |
| 1224 | + if(totalDocumentosProcesso < 1L){ | |
| 1225 | + throw new ResourceNotFoundException(messages.getMessage("erro.processo.sem.documentos", formatarNumeroProcesso(processo))); | |
| 1223 | 1226 | } |
| 1227 | + | |
| 1228 | + List<DocumentoResumido> documentosProcesso = documentoDAO.getDocumentosProcesso(idProcedimento, tipo, origem, somenteAssinados, | |
| 1229 | + pagina == null ? null : parseInt(pagina), tamanhoPagina); | |
| 1230 | + | |
| 1231 | + return Response.status(getStatus(totalDocumentosProcesso.intValue(), tamanhoPagina)).header("total_registros", totalDocumentosProcesso) | |
| 1232 | + .entity(new GenericEntity<List<DocumentoResumido>>(documentosProcesso){}).build(); | |
| 1233 | + } | |
| 1234 | + | |
| 1235 | + /** | |
| 1236 | + * @api {get} /processos/:processo/documentos/:documento Consultar documento | |
| 1237 | + * @apiName consultarDocumentoDoProcesso | |
| 1238 | + * @apiGroup Processo | |
| 1239 | + * @apiVersion 2.0.0 | |
| 1240 | + * | |
| 1241 | + * @apiPermission RO_SEI_BROKER ou RO_SEI_BROKER_CONSULTA | |
| 1242 | + * | |
| 1243 | + * @apiDescription Consulta um documento de determinado processo. | |
| 1244 | + * | |
| 1245 | + * @apiParam (Path Parameters) {String} processo Número do processo. | |
| 1246 | + * @apiParam (Path Parameters) {String} documento Número do documento. | |
| 1247 | + * | |
| 1248 | + * @apiExample Exemplo de requisição: | |
| 1249 | + * curl -i https://<host>/sei-broker/service/processos/33910002924201874/documentos/55737058 | |
| 1250 | + * | |
| 1251 | + * @apiSuccess (Sucesso Response Body - 200) {DocumentoResumido} documentoResumido Resumo do documento encontrado no SEI. | |
| 1252 | + * @apiSuccess (Sucesso Response Body - 200) {String} documentoResumido.numero Número do documento. | |
| 1253 | + * @apiSuccess (Sucesso Response Body - 200) {String} documentoResumido.numeroInformado Número informado na inclusão do documento, também conhecido como número de árvore. | |
| 1254 | + * @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. | |
| 1255 | + * @apiSuccess (Sucesso Response Body - 200) {Data} documentoResumido.dataGeracao Data de geração do documento. | |
| 1256 | + * @apiSuccess (Sucesso Response Body - 200) {Tipo} documentoResumido.tipo Objeto representando o tipo do documento. | |
| 1257 | + * @apiSuccess (Sucesso Response Body - 200) {String} documentoResumido.tipo.codigo Identificados do tipo do documento, também conhecido como série. | |
| 1258 | + * @apiSuccess (Sucesso Response Body - 200) {String} documentoResumido.tipo.nome Nome do tipo do documento. | |
| 1259 | + * @apiSuccess (Sucesso Response Body - 200) {String} documentoResumido.tipoConferencia Tipo de conferência do documento. | |
| 1260 | + * @apiSuccess (Sucesso Response Body - 200) {boolean} documentoResumido.assinado Boolean indicando se o documento foi assinado. | |
| 1261 | + * | |
| 1262 | + * @apiSuccessExample {json} Success-Response: | |
| 1263 | + * HTTP/1.1 200 OK | |
| 1264 | + * { | |
| 1265 | + * "numero": "0670949", | |
| 1266 | + * "numeroInformado": "594", | |
| 1267 | + * "origem": "RECEBIDO", | |
| 1268 | + * "dataGeracao": "2015-08-10T00:00:00-03:00", | |
| 1269 | + * "tipo": { | |
| 1270 | + * "codigo": "629", | |
| 1271 | + * "nome": "Relatório de Arquivamento-SIF" | |
| 1272 | + * } | |
| 1273 | + * "tipoConferencia": "4", | |
| 1274 | + * "assinado": true | |
| 1275 | + * } | |
| 1276 | + * | |
| 1277 | + * @apiErrorExample {json} Error-Response: | |
| 1278 | + * HTTP/1.1 500 Internal Server Error | |
| 1279 | + * { | |
| 1280 | + * "error":"Mensagem de erro." | |
| 1281 | + * "code":"código do erro" | |
| 1282 | + * } | |
| 1283 | + */ | |
| 1284 | + @GET | |
| 1285 | + @Path("/processos/{processo:\\d+}/documentos/{documento:\\d+}") | |
| 1286 | + @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) | |
| 1287 | + public DocumentoResumido consultarDocumentoDoProcesso(@PathParam("processo") String processo, @PathParam("documento") String documento)throws RemoteException, Exception{ | |
| 1288 | + String idProcedimento = consultarIdProcedimento(processo); | |
| 1289 | + try { | |
| 1290 | + DocumentoResumido documentoProcesso = documentoDAO.getDocumentoProcesso(idProcedimento, documento); | |
| 1291 | + | |
| 1292 | + return documentoProcesso; | |
| 1293 | + } catch (Exception e) { | |
| 1294 | + throw new ResourceNotFoundException(messages.getMessage("erro.documento.nao.encontrado", documento, formatarNumeroProcesso(processo))); | |
| 1295 | + } | |
| 1224 | 1296 | } |
| 1225 | 1297 | |
| 1226 | 1298 | public URI getResourcePath(String resourceId){ |
| ... | ... | @@ -1253,4 +1325,20 @@ public class ProcessoResource { |
| 1253 | 1325 | |
| 1254 | 1326 | return atributos.toArray(new AtributoAndamento[atributos.size()]); |
| 1255 | 1327 | } |
| 1328 | + | |
| 1329 | + public String consultarIdProcedimento(String processo) throws Exception{ | |
| 1330 | + try{ | |
| 1331 | + return ((BigInteger) processoDAO.getIdProcedimento(formatarNumeroProcesso(processo))).toString(); | |
| 1332 | + }catch(NoResultException ex){ | |
| 1333 | + throw new BusinessException(messages.getMessage("erro.processo.nao.pertence.sei", formatarNumeroProcesso(processo))); | |
| 1334 | + } | |
| 1335 | + } | |
| 1336 | + | |
| 1337 | + public Status getStatus(Integer quantidadeItens, Integer tamanhoPagina){ | |
| 1338 | + if(quantidadeItens > (tamanhoPagina == null ? Constantes.TAMANHO_PAGINA_PADRAO : tamanhoPagina )){ | |
| 1339 | + return Status.PARTIAL_CONTENT; | |
| 1340 | + } | |
| 1341 | + | |
| 1342 | + return Status.OK; | |
| 1343 | + } | |
| 1256 | 1344 | } | ... | ... |
src/main/resources/config.properties
src/main/resources/messages.properties
| ... | ... | @@ -18,6 +18,7 @@ erro.desanexar.processo = Ocorreu um erro ao desanexar o processo. |
| 18 | 18 | erro.desbloquear.processo = Ocorreu um erro ao desbloquear o processo. |
| 19 | 19 | erro.desrelacionar.processo = Ocorreu um erro ao remover o relacionamento. |
| 20 | 20 | erro.documento.incluir.bloco = Não foi possivel incluir o documento no bloco. |
| 21 | +erro.documento.nao.encontrado = Não existe documento com o identificador {0} no processo {1}. | |
| 21 | 22 | erro.documento.sem.processo = É necessário informar um número de processo para incluir um documento. |
| 22 | 23 | erro.estado.nao.encontrado = Não foi encontrado um estado para a sigla {0}. |
| 23 | 24 | erro.inesperado = Ocorreu um erro inesperado no SEI-Broker, contacte a equipe responsável. | ... | ... |
src/main/webapp/api-docs/api_data.js
| ... | ... | @@ -1330,6 +1330,34 @@ define({ "api": [ |
| 1330 | 1330 | "name": "" |
| 1331 | 1331 | }, |
| 1332 | 1332 | { |
| 1333 | + "success": { | |
| 1334 | + "fields": { | |
| 1335 | + "Success 200": [ | |
| 1336 | + { | |
| 1337 | + "group": "Success 200", | |
| 1338 | + "optional": false, | |
| 1339 | + "field": "varname1", | |
| 1340 | + "description": "<p>No type.</p>" | |
| 1341 | + }, | |
| 1342 | + { | |
| 1343 | + "group": "Success 200", | |
| 1344 | + "type": "String", | |
| 1345 | + "optional": false, | |
| 1346 | + "field": "varname2", | |
| 1347 | + "description": "<p>With type.</p>" | |
| 1348 | + } | |
| 1349 | + ] | |
| 1350 | + } | |
| 1351 | + }, | |
| 1352 | + "type": "", | |
| 1353 | + "url": "", | |
| 1354 | + "version": "0.0.0", | |
| 1355 | + "filename": "sei-broker/target/sei-broker-2.4.2/api-docs/main.js", | |
| 1356 | + "group": "C__ANS_sei_broker_Fontes_branches_desenvolvimento_versao_3_sei_broker_target_sei_broker_2_4_2_api_docs_main_js", | |
| 1357 | + "groupTitle": "C__ANS_sei_broker_Fontes_branches_desenvolvimento_versao_3_sei_broker_target_sei_broker_2_4_2_api_docs_main_js", | |
| 1358 | + "name": "" | |
| 1359 | + }, | |
| 1360 | + { | |
| 1333 | 1361 | "type": "get", |
| 1334 | 1362 | "url": "/:unidade/cargos", |
| 1335 | 1363 | "title": "Listar cargos", |
| ... | ... | @@ -5772,6 +5800,145 @@ define({ "api": [ |
| 5772 | 5800 | }, |
| 5773 | 5801 | { |
| 5774 | 5802 | "type": "get", |
| 5803 | + "url": "/processos/:processo/documentos/:documento", | |
| 5804 | + "title": "Consultar documento", | |
| 5805 | + "name": "consultarDocumentoDoProcesso", | |
| 5806 | + "group": "Processo", | |
| 5807 | + "version": "2.0.0", | |
| 5808 | + "permission": [ | |
| 5809 | + { | |
| 5810 | + "name": "RO_SEI_BROKER ou RO_SEI_BROKER_CONSULTA" | |
| 5811 | + } | |
| 5812 | + ], | |
| 5813 | + "description": "<p>Consulta um documento de determinado processo.</p>", | |
| 5814 | + "parameter": { | |
| 5815 | + "fields": { | |
| 5816 | + "Path Parameters": [ | |
| 5817 | + { | |
| 5818 | + "group": "Path Parameters", | |
| 5819 | + "type": "String", | |
| 5820 | + "optional": false, | |
| 5821 | + "field": "processo", | |
| 5822 | + "description": "<p>Número do processo.</p>" | |
| 5823 | + }, | |
| 5824 | + { | |
| 5825 | + "group": "Path Parameters", | |
| 5826 | + "type": "String", | |
| 5827 | + "optional": false, | |
| 5828 | + "field": "documento", | |
| 5829 | + "description": "<p>Número do documento.</p>" | |
| 5830 | + } | |
| 5831 | + ] | |
| 5832 | + } | |
| 5833 | + }, | |
| 5834 | + "examples": [ | |
| 5835 | + { | |
| 5836 | + "title": "Exemplo de requisição:\t", | |
| 5837 | + "content": "curl -i https://<host>/sei-broker/service/processos/33910002924201874/documentos/55737058", | |
| 5838 | + "type": "json" | |
| 5839 | + } | |
| 5840 | + ], | |
| 5841 | + "success": { | |
| 5842 | + "fields": { | |
| 5843 | + "Sucesso Response Body - 200": [ | |
| 5844 | + { | |
| 5845 | + "group": "Sucesso Response Body - 200", | |
| 5846 | + "type": "DocumentoResumido", | |
| 5847 | + "optional": false, | |
| 5848 | + "field": "documentoResumido", | |
| 5849 | + "description": "<p>Resumo do documento encontrado no SEI.</p>" | |
| 5850 | + }, | |
| 5851 | + { | |
| 5852 | + "group": "Sucesso Response Body - 200", | |
| 5853 | + "type": "String", | |
| 5854 | + "optional": false, | |
| 5855 | + "field": "documentoResumido.numero", | |
| 5856 | + "description": "<p>Número do documento.</p>" | |
| 5857 | + }, | |
| 5858 | + { | |
| 5859 | + "group": "Sucesso Response Body - 200", | |
| 5860 | + "type": "String", | |
| 5861 | + "optional": false, | |
| 5862 | + "field": "documentoResumido.numeroInformado", | |
| 5863 | + "description": "<p>Número informado na inclusão do documento, também conhecido como número de árvore.</p>" | |
| 5864 | + }, | |
| 5865 | + { | |
| 5866 | + "group": "Sucesso Response Body - 200", | |
| 5867 | + "type": "String", | |
| 5868 | + "allowedValues": [ | |
| 5869 | + "\"GERADO\"", | |
| 5870 | + "\"RECEBIDO\"" | |
| 5871 | + ], | |
| 5872 | + "optional": false, | |
| 5873 | + "field": "documentoResumido.origem", | |
| 5874 | + "description": "<p>Origem do documento, se o mesmo é um documento "GERADO" internamente ou "RECEBIDO" de uma fonte externa.</p>" | |
| 5875 | + }, | |
| 5876 | + { | |
| 5877 | + "group": "Sucesso Response Body - 200", | |
| 5878 | + "type": "Data", | |
| 5879 | + "optional": false, | |
| 5880 | + "field": "documentoResumido.dataGeracao", | |
| 5881 | + "description": "<p>Data de geração do documento.</p>" | |
| 5882 | + }, | |
| 5883 | + { | |
| 5884 | + "group": "Sucesso Response Body - 200", | |
| 5885 | + "type": "Tipo", | |
| 5886 | + "optional": false, | |
| 5887 | + "field": "documentoResumido.tipo", | |
| 5888 | + "description": "<p>Objeto representando o tipo do documento.</p>" | |
| 5889 | + }, | |
| 5890 | + { | |
| 5891 | + "group": "Sucesso Response Body - 200", | |
| 5892 | + "type": "String", | |
| 5893 | + "optional": false, | |
| 5894 | + "field": "documentoResumido.tipo.codigo", | |
| 5895 | + "description": "<p>Identificados do tipo do documento, também conhecido como série.</p>" | |
| 5896 | + }, | |
| 5897 | + { | |
| 5898 | + "group": "Sucesso Response Body - 200", | |
| 5899 | + "type": "String", | |
| 5900 | + "optional": false, | |
| 5901 | + "field": "documentoResumido.tipo.nome", | |
| 5902 | + "description": "<p>Nome do tipo do documento.</p>" | |
| 5903 | + }, | |
| 5904 | + { | |
| 5905 | + "group": "Sucesso Response Body - 200", | |
| 5906 | + "type": "String", | |
| 5907 | + "optional": false, | |
| 5908 | + "field": "documentoResumido.tipoConferencia", | |
| 5909 | + "description": "<p>Tipo de conferência do documento.</p>" | |
| 5910 | + }, | |
| 5911 | + { | |
| 5912 | + "group": "Sucesso Response Body - 200", | |
| 5913 | + "type": "boolean", | |
| 5914 | + "optional": false, | |
| 5915 | + "field": "documentoResumido.assinado", | |
| 5916 | + "description": "<p>Boolean indicando se o documento foi assinado.</p>" | |
| 5917 | + } | |
| 5918 | + ] | |
| 5919 | + }, | |
| 5920 | + "examples": [ | |
| 5921 | + { | |
| 5922 | + "title": "Success-Response:", | |
| 5923 | + "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}", | |
| 5924 | + "type": "json" | |
| 5925 | + } | |
| 5926 | + ] | |
| 5927 | + }, | |
| 5928 | + "error": { | |
| 5929 | + "examples": [ | |
| 5930 | + { | |
| 5931 | + "title": "Error-Response:", | |
| 5932 | + "content": "HTTP/1.1 500 Internal Server Error\n{\n\t\"error\":\"Mensagem de erro.\"\n\t\"code\":\"código do erro\"\n}", | |
| 5933 | + "type": "json" | |
| 5934 | + } | |
| 5935 | + ] | |
| 5936 | + }, | |
| 5937 | + "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", | |
| 5938 | + "groupTitle": "Processo" | |
| 5939 | + }, | |
| 5940 | + { | |
| 5941 | + "type": "get", | |
| 5775 | 5942 | "url": "/:unidade/processos/:processo", |
| 5776 | 5943 | "title": "Consultar processo", |
| 5777 | 5944 | "name": "consultarProcesso", |
| ... | ... | @@ -7490,6 +7657,22 @@ define({ "api": [ |
| 7490 | 7657 | "field": "somenteAssinados", |
| 7491 | 7658 | "defaultValue": "false", |
| 7492 | 7659 | "description": "<p>Exibir somente documentos assinados</p>" |
| 7660 | + }, | |
| 7661 | + { | |
| 7662 | + "group": "Query Parameters", | |
| 7663 | + "type": "String", | |
| 7664 | + "optional": true, | |
| 7665 | + "field": "pagina", | |
| 7666 | + "defaultValue": "1", | |
| 7667 | + "description": "<p>Número da página</p>" | |
| 7668 | + }, | |
| 7669 | + { | |
| 7670 | + "group": "Query Parameters", | |
| 7671 | + "type": "String", | |
| 7672 | + "optional": true, | |
| 7673 | + "field": "qtdRegistros", | |
| 7674 | + "defaultValue": "50", | |
| 7675 | + "description": "<p>Quantidade de registros que serão exibidos por página</p>" | |
| 7493 | 7676 | } |
| 7494 | 7677 | ] |
| 7495 | 7678 | } |
| ... | ... | @@ -7585,6 +7768,15 @@ define({ "api": [ |
| 7585 | 7768 | "field": "documentos.documentoResumido.assinado", |
| 7586 | 7769 | "description": "<p>Boolean indicando se o documento foi assinado.</p>" |
| 7587 | 7770 | } |
| 7771 | + ], | |
| 7772 | + "Sucesso Response Header- 200": [ | |
| 7773 | + { | |
| 7774 | + "group": "Sucesso Response Header- 200", | |
| 7775 | + "type": "header", | |
| 7776 | + "optional": false, | |
| 7777 | + "field": "total_registros", | |
| 7778 | + "description": "<p>Quantidade de registros que existem para essa consulta</p>" | |
| 7779 | + } | |
| 7588 | 7780 | ] |
| 7589 | 7781 | }, |
| 7590 | 7782 | "examples": [ | ... | ... |
src/main/webapp/api-docs/api_data.json
| ... | ... | @@ -1330,6 +1330,34 @@ |
| 1330 | 1330 | "name": "" |
| 1331 | 1331 | }, |
| 1332 | 1332 | { |
| 1333 | + "success": { | |
| 1334 | + "fields": { | |
| 1335 | + "Success 200": [ | |
| 1336 | + { | |
| 1337 | + "group": "Success 200", | |
| 1338 | + "optional": false, | |
| 1339 | + "field": "varname1", | |
| 1340 | + "description": "<p>No type.</p>" | |
| 1341 | + }, | |
| 1342 | + { | |
| 1343 | + "group": "Success 200", | |
| 1344 | + "type": "String", | |
| 1345 | + "optional": false, | |
| 1346 | + "field": "varname2", | |
| 1347 | + "description": "<p>With type.</p>" | |
| 1348 | + } | |
| 1349 | + ] | |
| 1350 | + } | |
| 1351 | + }, | |
| 1352 | + "type": "", | |
| 1353 | + "url": "", | |
| 1354 | + "version": "0.0.0", | |
| 1355 | + "filename": "sei-broker/target/sei-broker-2.4.2/api-docs/main.js", | |
| 1356 | + "group": "C__ANS_sei_broker_Fontes_branches_desenvolvimento_versao_3_sei_broker_target_sei_broker_2_4_2_api_docs_main_js", | |
| 1357 | + "groupTitle": "C__ANS_sei_broker_Fontes_branches_desenvolvimento_versao_3_sei_broker_target_sei_broker_2_4_2_api_docs_main_js", | |
| 1358 | + "name": "" | |
| 1359 | + }, | |
| 1360 | + { | |
| 1333 | 1361 | "type": "get", |
| 1334 | 1362 | "url": "/:unidade/cargos", |
| 1335 | 1363 | "title": "Listar cargos", |
| ... | ... | @@ -5772,6 +5800,145 @@ |
| 5772 | 5800 | }, |
| 5773 | 5801 | { |
| 5774 | 5802 | "type": "get", |
| 5803 | + "url": "/processos/:processo/documentos/:documento", | |
| 5804 | + "title": "Consultar documento", | |
| 5805 | + "name": "consultarDocumentoDoProcesso", | |
| 5806 | + "group": "Processo", | |
| 5807 | + "version": "2.0.0", | |
| 5808 | + "permission": [ | |
| 5809 | + { | |
| 5810 | + "name": "RO_SEI_BROKER ou RO_SEI_BROKER_CONSULTA" | |
| 5811 | + } | |
| 5812 | + ], | |
| 5813 | + "description": "<p>Consulta um documento de determinado processo.</p>", | |
| 5814 | + "parameter": { | |
| 5815 | + "fields": { | |
| 5816 | + "Path Parameters": [ | |
| 5817 | + { | |
| 5818 | + "group": "Path Parameters", | |
| 5819 | + "type": "String", | |
| 5820 | + "optional": false, | |
| 5821 | + "field": "processo", | |
| 5822 | + "description": "<p>Número do processo.</p>" | |
| 5823 | + }, | |
| 5824 | + { | |
| 5825 | + "group": "Path Parameters", | |
| 5826 | + "type": "String", | |
| 5827 | + "optional": false, | |
| 5828 | + "field": "documento", | |
| 5829 | + "description": "<p>Número do documento.</p>" | |
| 5830 | + } | |
| 5831 | + ] | |
| 5832 | + } | |
| 5833 | + }, | |
| 5834 | + "examples": [ | |
| 5835 | + { | |
| 5836 | + "title": "Exemplo de requisição:\t", | |
| 5837 | + "content": "curl -i https://<host>/sei-broker/service/processos/33910002924201874/documentos/55737058", | |
| 5838 | + "type": "json" | |
| 5839 | + } | |
| 5840 | + ], | |
| 5841 | + "success": { | |
| 5842 | + "fields": { | |
| 5843 | + "Sucesso Response Body - 200": [ | |
| 5844 | + { | |
| 5845 | + "group": "Sucesso Response Body - 200", | |
| 5846 | + "type": "DocumentoResumido", | |
| 5847 | + "optional": false, | |
| 5848 | + "field": "documentoResumido", | |
| 5849 | + "description": "<p>Resumo do documento encontrado no SEI.</p>" | |
| 5850 | + }, | |
| 5851 | + { | |
| 5852 | + "group": "Sucesso Response Body - 200", | |
| 5853 | + "type": "String", | |
| 5854 | + "optional": false, | |
| 5855 | + "field": "documentoResumido.numero", | |
| 5856 | + "description": "<p>Número do documento.</p>" | |
| 5857 | + }, | |
| 5858 | + { | |
| 5859 | + "group": "Sucesso Response Body - 200", | |
| 5860 | + "type": "String", | |
| 5861 | + "optional": false, | |
| 5862 | + "field": "documentoResumido.numeroInformado", | |
| 5863 | + "description": "<p>Número informado na inclusão do documento, também conhecido como número de árvore.</p>" | |
| 5864 | + }, | |
| 5865 | + { | |
| 5866 | + "group": "Sucesso Response Body - 200", | |
| 5867 | + "type": "String", | |
| 5868 | + "allowedValues": [ | |
| 5869 | + "\"GERADO\"", | |
| 5870 | + "\"RECEBIDO\"" | |
| 5871 | + ], | |
| 5872 | + "optional": false, | |
| 5873 | + "field": "documentoResumido.origem", | |
| 5874 | + "description": "<p>Origem do documento, se o mesmo é um documento "GERADO" internamente ou "RECEBIDO" de uma fonte externa.</p>" | |
| 5875 | + }, | |
| 5876 | + { | |
| 5877 | + "group": "Sucesso Response Body - 200", | |
| 5878 | + "type": "Data", | |
| 5879 | + "optional": false, | |
| 5880 | + "field": "documentoResumido.dataGeracao", | |
| 5881 | + "description": "<p>Data de geração do documento.</p>" | |
| 5882 | + }, | |
| 5883 | + { | |
| 5884 | + "group": "Sucesso Response Body - 200", | |
| 5885 | + "type": "Tipo", | |
| 5886 | + "optional": false, | |
| 5887 | + "field": "documentoResumido.tipo", | |
| 5888 | + "description": "<p>Objeto representando o tipo do documento.</p>" | |
| 5889 | + }, | |
| 5890 | + { | |
| 5891 | + "group": "Sucesso Response Body - 200", | |
| 5892 | + "type": "String", | |
| 5893 | + "optional": false, | |
| 5894 | + "field": "documentoResumido.tipo.codigo", | |
| 5895 | + "description": "<p>Identificados do tipo do documento, também conhecido como série.</p>" | |
| 5896 | + }, | |
| 5897 | + { | |
| 5898 | + "group": "Sucesso Response Body - 200", | |
| 5899 | + "type": "String", | |
| 5900 | + "optional": false, | |
| 5901 | + "field": "documentoResumido.tipo.nome", | |
| 5902 | + "description": "<p>Nome do tipo do documento.</p>" | |
| 5903 | + }, | |
| 5904 | + { | |
| 5905 | + "group": "Sucesso Response Body - 200", | |
| 5906 | + "type": "String", | |
| 5907 | + "optional": false, | |
| 5908 | + "field": "documentoResumido.tipoConferencia", | |
| 5909 | + "description": "<p>Tipo de conferência do documento.</p>" | |
| 5910 | + }, | |
| 5911 | + { | |
| 5912 | + "group": "Sucesso Response Body - 200", | |
| 5913 | + "type": "boolean", | |
| 5914 | + "optional": false, | |
| 5915 | + "field": "documentoResumido.assinado", | |
| 5916 | + "description": "<p>Boolean indicando se o documento foi assinado.</p>" | |
| 5917 | + } | |
| 5918 | + ] | |
| 5919 | + }, | |
| 5920 | + "examples": [ | |
| 5921 | + { | |
| 5922 | + "title": "Success-Response:", | |
| 5923 | + "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}", | |
| 5924 | + "type": "json" | |
| 5925 | + } | |
| 5926 | + ] | |
| 5927 | + }, | |
| 5928 | + "error": { | |
| 5929 | + "examples": [ | |
| 5930 | + { | |
| 5931 | + "title": "Error-Response:", | |
| 5932 | + "content": "HTTP/1.1 500 Internal Server Error\n{\n\t\"error\":\"Mensagem de erro.\"\n\t\"code\":\"código do erro\"\n}", | |
| 5933 | + "type": "json" | |
| 5934 | + } | |
| 5935 | + ] | |
| 5936 | + }, | |
| 5937 | + "filename": "sei-broker/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java", | |
| 5938 | + "groupTitle": "Processo" | |
| 5939 | + }, | |
| 5940 | + { | |
| 5941 | + "type": "get", | |
| 5775 | 5942 | "url": "/:unidade/processos/:processo", |
| 5776 | 5943 | "title": "Consultar processo", |
| 5777 | 5944 | "name": "consultarProcesso", |
| ... | ... | @@ -7490,6 +7657,22 @@ |
| 7490 | 7657 | "field": "somenteAssinados", |
| 7491 | 7658 | "defaultValue": "false", |
| 7492 | 7659 | "description": "<p>Exibir somente documentos assinados</p>" |
| 7660 | + }, | |
| 7661 | + { | |
| 7662 | + "group": "Query Parameters", | |
| 7663 | + "type": "String", | |
| 7664 | + "optional": true, | |
| 7665 | + "field": "pagina", | |
| 7666 | + "defaultValue": "1", | |
| 7667 | + "description": "<p>Número da página</p>" | |
| 7668 | + }, | |
| 7669 | + { | |
| 7670 | + "group": "Query Parameters", | |
| 7671 | + "type": "String", | |
| 7672 | + "optional": true, | |
| 7673 | + "field": "qtdRegistros", | |
| 7674 | + "defaultValue": "50", | |
| 7675 | + "description": "<p>Quantidade de registros que serão exibidos por página</p>" | |
| 7493 | 7676 | } |
| 7494 | 7677 | ] |
| 7495 | 7678 | } |
| ... | ... | @@ -7585,6 +7768,15 @@ |
| 7585 | 7768 | "field": "documentos.documentoResumido.assinado", |
| 7586 | 7769 | "description": "<p>Boolean indicando se o documento foi assinado.</p>" |
| 7587 | 7770 | } |
| 7771 | + ], | |
| 7772 | + "Sucesso Response Header- 200": [ | |
| 7773 | + { | |
| 7774 | + "group": "Sucesso Response Header- 200", | |
| 7775 | + "type": "header", | |
| 7776 | + "optional": false, | |
| 7777 | + "field": "total_registros", | |
| 7778 | + "description": "<p>Quantidade de registros que existem para essa consulta</p>" | |
| 7779 | + } | |
| 7588 | 7780 | ] |
| 7589 | 7781 | }, |
| 7590 | 7782 | "examples": [ | ... | ... |
src/main/webapp/api-docs/api_project.js
src/main/webapp/api-docs/api_project.json