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