Commit eb9f48114815650b694cd1dddf17b66d755cfaeb

Authored by andre guimaraes
1 parent 9bbcf30f

Corrigido o count dos processos e erro que ocorria ao filtrar por tipo de proces…

…so, documentação atualizada.
src/main/java/br/gov/ans/integracao/sei/dao/ProcessoDAO.java
@@ -44,7 +44,7 @@ public class ProcessoDAO { @@ -44,7 +44,7 @@ public class ProcessoDAO {
44 } 44 }
45 45
46 if(StringUtils.isNoneBlank(tipoProcesso)){ 46 if(StringUtils.isNoneBlank(tipoProcesso)){
47 - builder.append("AND proc.id_tipo_procedimento = :tipoProcesso"); 47 + builder.append("AND proc.id_tipo_procedimento = :tipoProcesso ");
48 } 48 }
49 49
50 builder.append("AND tp.id_tipo_procedimento = proc.id_tipo_procedimento "); 50 builder.append("AND tp.id_tipo_procedimento = proc.id_tipo_procedimento ");
@@ -73,25 +73,31 @@ public class ProcessoDAO { @@ -73,25 +73,31 @@ public class ProcessoDAO {
73 return processos; 73 return processos;
74 } 74 }
75 75
76 - public Long countProcessos(String interessado, String unidade){ 76 + public Long countProcessos(String interessado, String unidade, String tipoProcesso){
77 HashMap<String, Object> parametros = new HashMap<String, Object>(); 77 HashMap<String, Object> parametros = new HashMap<String, Object>();
  78 +
  79 + StringBuilder builder = new StringBuilder("SELECT count(*) ");
  80 + builder.append("FROM protocolo pr, tipo_procedimento tp, participante p ");
  81 +
  82 + if(StringUtils.isNotBlank(interessado)){
  83 + builder.append("JOIN contato c ON c.id_contato = p.id_contato ");
  84 + }
78 85
79 - StringBuilder builder = new StringBuilder("SELECT ");  
80 - builder.append("COUNT(*) ");  
81 - builder.append("FROM participante p, protocolo pr, contato c, unidade u ");  
82 - builder.append("WHERE " );  
83 - builder.append("p.id_contato = c.id_contato AND p.id_protocolo = pr.id_protocolo AND p.id_unidade = u.id_unidade AND pr.sta_protocolo = 'P' "); 86 + builder.append("JOIN unidade u ON u.id_unidade = p.id_unidade ");
  87 + builder.append("JOIN procedimento proc ON proc.id_procedimento = p.id_protocolo ");
  88 + builder.append("WHERE pr.sta_protocolo = 'P' AND p.id_protocolo = pr.id_protocolo ");
84 89
85 if(StringUtils.isNotBlank(interessado)){ 90 if(StringUtils.isNotBlank(interessado)){
86 builder.append("AND c.sigla = :interessado "); 91 builder.append("AND c.sigla = :interessado ");
87 parametros.put("interessado", interessado); 92 parametros.put("interessado", interessado);
88 } 93 }
89 94
90 - if(StringUtils.isNotBlank(unidade)){  
91 - builder.append("AND u.sigla = :unidade ");  
92 - parametros.put("unidade", unidade); 95 + if(StringUtils.isNoneBlank(tipoProcesso)){
  96 + builder.append("AND proc.id_tipo_procedimento = :tipoProcesso ");
93 } 97 }
94 98
  99 + builder.append("AND tp.id_tipo_procedimento = proc.id_tipo_procedimento ");
  100 +
95 Query query = em.createNativeQuery(builder.toString()); 101 Query query = em.createNativeQuery(builder.toString());
96 102
97 setQueryParameters(query, parametros); 103 setQueryParameters(query, parametros);
src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java
@@ -576,7 +576,7 @@ public class ProcessoResource { @@ -576,7 +576,7 @@ public class ProcessoResource {
576 * @apiParam (Query Parameters) {String} [unidade] Unidade da qual deseja filtrar os processos 576 * @apiParam (Query Parameters) {String} [unidade] Unidade da qual deseja filtrar os processos
577 * @apiParam (Query Parameters) {String} [pagina=1] Número da página 577 * @apiParam (Query Parameters) {String} [pagina=1] Número da página
578 * @apiParam (Query Parameters) {String} [qtdRegistros=50] Quantidade de registros retornados por página 578 * @apiParam (Query Parameters) {String} [qtdRegistros=50] Quantidade de registros retornados por página
579 - * @apiParam (Query Parameters) {String} [tipoProcesso] Identificador do tipo de processo que deseja filtrar 579 + * @apiParam (Query Parameters) {String} [tipo] Identificador do tipo de processo que deseja filtrar
580 * 580 *
581 * @apiExample Exemplo de requisição: 581 * @apiExample Exemplo de requisição:
582 * curl -i https://<host>/sei-broker/service/processos 582 * curl -i https://<host>/sei-broker/service/processos
@@ -605,7 +605,7 @@ public class ProcessoResource { @@ -605,7 +605,7 @@ public class ProcessoResource {
605 @Path("/processos") 605 @Path("/processos")
606 @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) 606 @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
607 @Wrapped(element = "processos") 607 @Wrapped(element = "processos")
608 - public Response consultarProcessos(@QueryParam("interessado") String interessado, @QueryParam("unidade") String unidade, @QueryParam("tipoProcesso") String tipoProcesso, 608 + public Response consultarProcessos(@QueryParam("interessado") String interessado, @QueryParam("unidade") String unidade, @QueryParam("tipo") String tipoProcesso,
609 @QueryParam("crescente") boolean crescente, @QueryParam("pagina") String pagina, @QueryParam("qtdRegistros") String qtdRegistros) throws BusinessException{ 609 @QueryParam("crescente") boolean crescente, @QueryParam("pagina") String pagina, @QueryParam("qtdRegistros") String qtdRegistros) throws BusinessException{
610 610
611 List<ProcessoResumido> processos = processoDAO.getProcessos(interessado, unidade, tipoProcesso, 611 List<ProcessoResumido> processos = processoDAO.getProcessos(interessado, unidade, tipoProcesso,
@@ -613,7 +613,7 @@ public class ProcessoResource { @@ -613,7 +613,7 @@ public class ProcessoResource {
613 613
614 GenericEntity<List<ProcessoResumido>> entity = new GenericEntity<List<ProcessoResumido>>(processos){}; 614 GenericEntity<List<ProcessoResumido>> entity = new GenericEntity<List<ProcessoResumido>>(processos){};
615 615
616 - Long totalRegistros = processoDAO.countProcessos(interessado, unidade); 616 + Long totalRegistros = processoDAO.countProcessos(interessado, unidade, tipoProcesso);
617 617
618 return Response.ok().entity(entity) 618 return Response.ok().entity(entity)
619 .header("total_registros", totalRegistros).build(); 619 .header("total_registros", totalRegistros).build();
src/main/webapp/api-docs/api_data.js
@@ -6268,7 +6268,7 @@ define({ &quot;api&quot;: [ @@ -6268,7 +6268,7 @@ define({ &quot;api&quot;: [
6268 "group": "Query Parameters", 6268 "group": "Query Parameters",
6269 "type": "String", 6269 "type": "String",
6270 "optional": true, 6270 "optional": true,
6271 - "field": "tipoProcesso", 6271 + "field": "tipo",
6272 "description": "<p>Identificador do tipo de processo que deseja filtrar</p>" 6272 "description": "<p>Identificador do tipo de processo que deseja filtrar</p>"
6273 } 6273 }
6274 ] 6274 ]
src/main/webapp/api-docs/api_data.json
@@ -6268,7 +6268,7 @@ @@ -6268,7 +6268,7 @@
6268 "group": "Query Parameters", 6268 "group": "Query Parameters",
6269 "type": "String", 6269 "type": "String",
6270 "optional": true, 6270 "optional": true,
6271 - "field": "tipoProcesso", 6271 + "field": "tipo",
6272 "description": "<p>Identificador do tipo de processo que deseja filtrar</p>" 6272 "description": "<p>Identificador do tipo de processo que deseja filtrar</p>"
6273 } 6273 }
6274 ] 6274 ]
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": "2017-10-04T17:59:43.178Z", 11 + "time": "2017-10-04T19:12:14.480Z",
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": "2017-10-04T17:59:43.178Z", 11 + "time": "2017-10-04T19:12:14.480Z",
12 "url": "http://apidocjs.com", 12 "url": "http://apidocjs.com",
13 "version": "0.15.1" 13 "version": "0.15.1"
14 } 14 }