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 44 }
45 45  
46 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 50 builder.append("AND tp.id_tipo_procedimento = proc.id_tipo_procedimento ");
... ... @@ -73,25 +73,31 @@ public class ProcessoDAO {
73 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 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 90 if(StringUtils.isNotBlank(interessado)){
86 91 builder.append("AND c.sigla = :interessado ");
87 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 101 Query query = em.createNativeQuery(builder.toString());
96 102  
97 103 setQueryParameters(query, parametros);
... ...
src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java
... ... @@ -576,7 +576,7 @@ public class ProcessoResource {
576 576 * @apiParam (Query Parameters) {String} [unidade] Unidade da qual deseja filtrar os processos
577 577 * @apiParam (Query Parameters) {String} [pagina=1] Número da página
578 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 581 * @apiExample Exemplo de requisição:
582 582 * curl -i https://<host>/sei-broker/service/processos
... ... @@ -605,7 +605,7 @@ public class ProcessoResource {
605 605 @Path("/processos")
606 606 @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
607 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 609 @QueryParam("crescente") boolean crescente, @QueryParam("pagina") String pagina, @QueryParam("qtdRegistros") String qtdRegistros) throws BusinessException{
610 610  
611 611 List<ProcessoResumido> processos = processoDAO.getProcessos(interessado, unidade, tipoProcesso,
... ... @@ -613,7 +613,7 @@ public class ProcessoResource {
613 613  
614 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 618 return Response.ok().entity(entity)
619 619 .header("total_registros", totalRegistros).build();
... ...
src/main/webapp/api-docs/api_data.js
... ... @@ -6268,7 +6268,7 @@ define({ &quot;api&quot;: [
6268 6268 "group": "Query Parameters",
6269 6269 "type": "String",
6270 6270 "optional": true,
6271   - "field": "tipoProcesso",
  6271 + "field": "tipo",
6272 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 6268 "group": "Query Parameters",
6269 6269 "type": "String",
6270 6270 "optional": true,
6271   - "field": "tipoProcesso",
  6271 + "field": "tipo",
6272 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 8 "apidoc": "0.2.0",
9 9 "generator": {
10 10 "name": "apidoc",
11   - "time": "2017-10-04T17:59:43.178Z",
  11 + "time": "2017-10-04T19:12:14.480Z",
12 12 "url": "http://apidocjs.com",
13 13 "version": "0.15.1"
14 14 }
... ...
src/main/webapp/api-docs/api_project.json
... ... @@ -8,7 +8,7 @@
8 8 "apidoc": "0.2.0",
9 9 "generator": {
10 10 "name": "apidoc",
11   - "time": "2017-10-04T17:59:43.178Z",
  11 + "time": "2017-10-04T19:12:14.480Z",
12 12 "url": "http://apidocjs.com",
13 13 "version": "0.15.1"
14 14 }
... ...