Commit a77349db47513526b94783bac07f75c308c828ce

Authored by sys jenkins
1 parent d92c249e

Integrated SEI-BROKER_HM #66 (from Jenkins)

http://ansprsvn01.ans.gov.br/03_ARQUITETURA/projetos/sei-broker/Fontes/branches/branch_homologacao@2115
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 <modelVersion>4.0.0</modelVersion> 4 <modelVersion>4.0.0</modelVersion>
5 <groupId>br.gov.ans</groupId> 5 <groupId>br.gov.ans</groupId>
6 <artifactId>sei-broker</artifactId> 6 <artifactId>sei-broker</artifactId>
7 - <version>2.4.1</version> 7 + <version>2.4.2</version>
8 <packaging>war</packaging> 8 <packaging>war</packaging>
9 <name>sei-broker</name> 9 <name>sei-broker</name>
10 <description>Projeto demonstrativo de webservice Rest</description> 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,7 +84,7 @@ public class DocumentoDAO {
84 parametros.put("codigoTipo", codigoTipo); 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 if(orderByProcesso){ 89 if(orderByProcesso){
90 builder.append("ORDER BY processo "); 90 builder.append("ORDER BY processo ");
@@ -102,6 +102,7 @@ public class DocumentoDAO { @@ -102,6 +102,7 @@ public class DocumentoDAO {
102 102
103 setPaginacaoQuery(query, pagina, qtdRegistros); 103 setPaginacaoQuery(query, pagina, qtdRegistros);
104 104
  105 + @SuppressWarnings("unchecked")
105 List<Object[]> results = query.getResultList(); 106 List<Object[]> results = query.getResultList();
106 107
107 List<DocumentoResumido> documentos = new ArrayList<DocumentoResumido>(); 108 List<DocumentoResumido> documentos = new ArrayList<DocumentoResumido>();
@@ -152,7 +153,8 @@ public class DocumentoDAO { @@ -152,7 +153,8 @@ public class DocumentoDAO {
152 } 153 }
153 154
154 @SuppressWarnings("unchecked") 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 HashMap<String, Object> parametros = new HashMap<String, Object>(); 158 HashMap<String, Object> parametros = new HashMap<String, Object>();
157 159
158 StringBuilder builder = new StringBuilder("SELECT pr.protocolo_formatado_pesquisa numero, s.nome tipoNome, s.id_serie tipoCodigo, d.numero numeroInformado, "); 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,11 +185,12 @@ public class DocumentoDAO {
183 parametros.put("origem", origem); 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 Query query = em.createNativeQuery(builder.toString(), "DocumentoResumidoMapping"); 190 Query query = em.createNativeQuery(builder.toString(), "DocumentoResumidoMapping");
189 191
190 setQueryParameters(query, parametros); 192 setQueryParameters(query, parametros);
  193 + setPaginacaoQuery(query, pagina, qtdRegistros);
191 194
192 List<Object[]> results = null; 195 List<Object[]> results = null;
193 List<DocumentoResumido> documentos = new ArrayList<DocumentoResumido>(); 196 List<DocumentoResumido> documentos = new ArrayList<DocumentoResumido>();
@@ -205,5 +208,69 @@ public class DocumentoDAO { @@ -205,5 +208,69 @@ public class DocumentoDAO {
205 208
206 return documentos; 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,7 +56,10 @@ public class SiparDAO {
56 + "WHERE " 56 + "WHERE "
57 + "TR.DT_RECEBIMENTO IS NULL " 57 + "TR.DT_RECEBIMENTO IS NULL "
58 + "AND TR.CO_DOCUMENTO = :numero " 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 Query query = em.createNativeQuery(sql); 64 Query query = em.createNativeQuery(sql);
62 query.setParameter("numero", numero); 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,6 +51,7 @@ import br.gov.ans.integracao.sei.dao.ProcessoDAO;
51 import br.gov.ans.integracao.sei.dao.SiparDAO; 51 import br.gov.ans.integracao.sei.dao.SiparDAO;
52 import br.gov.ans.integracao.sei.modelo.DocumentoResumido; 52 import br.gov.ans.integracao.sei.modelo.DocumentoResumido;
53 import br.gov.ans.integracao.sei.modelo.EnvioDeProcesso; 53 import br.gov.ans.integracao.sei.modelo.EnvioDeProcesso;
  54 +import br.gov.ans.integracao.sei.modelo.InclusaoDocumento;
54 import br.gov.ans.integracao.sei.modelo.Motivo; 55 import br.gov.ans.integracao.sei.modelo.Motivo;
55 import br.gov.ans.integracao.sei.modelo.NovoAndamento; 56 import br.gov.ans.integracao.sei.modelo.NovoAndamento;
56 import br.gov.ans.integracao.sei.modelo.NovoProcesso; 57 import br.gov.ans.integracao.sei.modelo.NovoProcesso;
@@ -1165,6 +1166,8 @@ public class ProcessoResource { @@ -1165,6 +1166,8 @@ public class ProcessoResource {
1165 * @apiParam (Query Parameters) {String} [tipo=null] Identificador do tipo do documento, caso seja necessário filtrar pelo tipo 1166 * @apiParam (Query Parameters) {String} [tipo=null] Identificador do tipo do documento, caso seja necessário filtrar pelo tipo
1166 * @apiParam (Query Parameters) {String = "G (gerado/interno), R (recebido/externo)"} [origem=null] Filtra os documentos por gerados ou recebidos 1167 * @apiParam (Query Parameters) {String = "G (gerado/interno), R (recebido/externo)"} [origem=null] Filtra os documentos por gerados ou recebidos
1167 * @apiParam (Query Parameters) {boolean} [somenteAssinados=false] Exibir somente documentos assinados 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 * @apiExample Exemplo de requisição: 1172 * @apiExample Exemplo de requisição:
1170 * curl -i https://<host>/sei-broker/service/processos/33910003149201793/documentos 1173 * curl -i https://<host>/sei-broker/service/processos/33910003149201793/documentos
@@ -1181,6 +1184,8 @@ public class ProcessoResource { @@ -1181,6 +1184,8 @@ public class ProcessoResource {
1181 * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.tipoConferencia Tipo de conferência do documento. 1184 * @apiSuccess (Sucesso Response Body - 200) {String} documentos.documentoResumido.tipoConferencia Tipo de conferência do documento.
1182 * @apiSuccess (Sucesso Response Body - 200) {boolean} documentos.documentoResumido.assinado Boolean indicando se o documento foi assinado. 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 * @apiSuccessExample {json} Success-Response: 1189 * @apiSuccessExample {json} Success-Response:
1185 * HTTP/1.1 200 OK 1190 * HTTP/1.1 200 OK
1186 * { 1191 * {
@@ -1206,21 +1211,88 @@ public class ProcessoResource { @@ -1206,21 +1211,88 @@ public class ProcessoResource {
1206 @GET 1211 @GET
1207 @Path("/processos/{processo:\\d+}/documentos") 1212 @Path("/processos/{processo:\\d+}/documentos")
1208 @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) 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 public URI getResourcePath(String resourceId){ 1298 public URI getResourcePath(String resourceId){
@@ -1253,4 +1325,20 @@ public class ProcessoResource { @@ -1253,4 +1325,20 @@ public class ProcessoResource {
1253 1325
1254 return atributos.toArray(new AtributoAndamento[atributos.size()]); 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
1 -versao.sistema = V_2.4.1  
2 \ No newline at end of file 1 \ No newline at end of file
  2 +versao.sistema = V_2.4.2
3 \ No newline at end of file 3 \ No newline at end of file
src/main/resources/messages.properties
@@ -18,6 +18,7 @@ erro.desanexar.processo = Ocorreu um erro ao desanexar o processo. @@ -18,6 +18,7 @@ erro.desanexar.processo = Ocorreu um erro ao desanexar o processo.
18 erro.desbloquear.processo = Ocorreu um erro ao desbloquear o processo. 18 erro.desbloquear.processo = Ocorreu um erro ao desbloquear o processo.
19 erro.desrelacionar.processo = Ocorreu um erro ao remover o relacionamento. 19 erro.desrelacionar.processo = Ocorreu um erro ao remover o relacionamento.
20 erro.documento.incluir.bloco = Não foi possivel incluir o documento no bloco. 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 erro.documento.sem.processo = É necessário informar um número de processo para incluir um documento. 22 erro.documento.sem.processo = É necessário informar um número de processo para incluir um documento.
22 erro.estado.nao.encontrado = Não foi encontrado um estado para a sigla {0}. 23 erro.estado.nao.encontrado = Não foi encontrado um estado para a sigla {0}.
23 erro.inesperado = Ocorreu um erro inesperado no SEI-Broker, contacte a equipe responsável. 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({ &quot;api&quot;: [ @@ -1330,6 +1330,34 @@ define({ &quot;api&quot;: [
1330 "name": "" 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 "type": "get", 1361 "type": "get",
1334 "url": "/:unidade/cargos", 1362 "url": "/:unidade/cargos",
1335 "title": "Listar cargos", 1363 "title": "Listar cargos",
@@ -5772,6 +5800,145 @@ define({ &quot;api&quot;: [ @@ -5772,6 +5800,145 @@ define({ &quot;api&quot;: [
5772 }, 5800 },
5773 { 5801 {
5774 "type": "get", 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 &quot;GERADO&quot; internamente ou &quot;RECEBIDO&quot; 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 "url": "/:unidade/processos/:processo", 5942 "url": "/:unidade/processos/:processo",
5776 "title": "Consultar processo", 5943 "title": "Consultar processo",
5777 "name": "consultarProcesso", 5944 "name": "consultarProcesso",
@@ -7490,6 +7657,22 @@ define({ &quot;api&quot;: [ @@ -7490,6 +7657,22 @@ define({ &quot;api&quot;: [
7490 "field": "somenteAssinados", 7657 "field": "somenteAssinados",
7491 "defaultValue": "false", 7658 "defaultValue": "false",
7492 "description": "<p>Exibir somente documentos assinados</p>" 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({ &quot;api&quot;: [ @@ -7585,6 +7768,15 @@ define({ &quot;api&quot;: [
7585 "field": "documentos.documentoResumido.assinado", 7768 "field": "documentos.documentoResumido.assinado",
7586 "description": "<p>Boolean indicando se o documento foi assinado.</p>" 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 "examples": [ 7782 "examples": [
src/main/webapp/api-docs/api_data.json
@@ -1330,6 +1330,34 @@ @@ -1330,6 +1330,34 @@
1330 "name": "" 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 "type": "get", 1361 "type": "get",
1334 "url": "/:unidade/cargos", 1362 "url": "/:unidade/cargos",
1335 "title": "Listar cargos", 1363 "title": "Listar cargos",
@@ -5772,6 +5800,145 @@ @@ -5772,6 +5800,145 @@
5772 }, 5800 },
5773 { 5801 {
5774 "type": "get", 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 &quot;GERADO&quot; internamente ou &quot;RECEBIDO&quot; 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 "url": "/:unidade/processos/:processo", 5942 "url": "/:unidade/processos/:processo",
5776 "title": "Consultar processo", 5943 "title": "Consultar processo",
5777 "name": "consultarProcesso", 5944 "name": "consultarProcesso",
@@ -7490,6 +7657,22 @@ @@ -7490,6 +7657,22 @@
7490 "field": "somenteAssinados", 7657 "field": "somenteAssinados",
7491 "defaultValue": "false", 7658 "defaultValue": "false",
7492 "description": "<p>Exibir somente documentos assinados</p>" 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,6 +7768,15 @@
7585 "field": "documentos.documentoResumido.assinado", 7768 "field": "documentos.documentoResumido.assinado",
7586 "description": "<p>Boolean indicando se o documento foi assinado.</p>" 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 "examples": [ 7782 "examples": [
src/main/webapp/api-docs/api_project.js
@@ -8,7 +8,7 @@ define({ @@ -8,7 +8,7 @@ define({
8 "apidoc": "0.2.0", 8 "apidoc": "0.2.0",
9 "generator": { 9 "generator": {
10 "name": "apidoc", 10 "name": "apidoc",
11 - "time": "2018-03-23T14:42:37.240Z", 11 + "time": "2018-04-09T12:23:09.782Z",
12 "url": "http://apidocjs.com", 12 "url": "http://apidocjs.com",
13 "version": "0.15.1" 13 "version": "0.15.1"
14 } 14 }
src/main/webapp/api-docs/api_project.json
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 "apidoc": "0.2.0", 8 "apidoc": "0.2.0",
9 "generator": { 9 "generator": {
10 "name": "apidoc", 10 "name": "apidoc",
11 - "time": "2018-03-23T14:42:37.240Z", 11 + "time": "2018-04-09T12:23:09.782Z",
12 "url": "http://apidocjs.com", 12 "url": "http://apidocjs.com",
13 "version": "0.15.1" 13 "version": "0.15.1"
14 } 14 }