From 5a2b714d3e8cc2195e1614fb30ea5083d71ea6ac Mon Sep 17 00:00:00 2001 From: andre.guimaraes Date: Mon, 24 Sep 2018 10:46:26 -0300 Subject: [PATCH] Inclui filtro no serviço listarDocumentosProcesso --- src/main/java/br/gov/ans/integracao/sei/dao/DocumentoDAO.java | 18 ++++++++++++++---- src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java | 9 +++++---- src/main/resources/META-INF/persistence.xml | 2 +- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/main/java/br/gov/ans/integracao/sei/dao/DocumentoDAO.java b/src/main/java/br/gov/ans/integracao/sei/dao/DocumentoDAO.java index 5c5004e..d54a67b 100644 --- a/src/main/java/br/gov/ans/integracao/sei/dao/DocumentoDAO.java +++ b/src/main/java/br/gov/ans/integracao/sei/dao/DocumentoDAO.java @@ -54,8 +54,8 @@ public class DocumentoDAO { return query.getResultList(); } - public List getDocumentos(String interessado, String codigoTipo, Integer pagina, Integer qtdRegistros, boolean somenteAssinados, boolean ordemCrescente, - boolean orderByProcesso){ + public List getDocumentos(String interessado, String codigoTipo, Integer pagina, Integer qtdRegistros, boolean somenteAssinados, + boolean ordemCrescente, boolean orderByProcesso){ HashMap parametros = new HashMap(); StringBuilder builder = new StringBuilder("SELECT pr.protocolo_formatado_pesquisa numero, s.nome tipoNome, s.id_serie tipoCodigo, d.numero numeroInformado, "); @@ -154,7 +154,7 @@ public class DocumentoDAO { @SuppressWarnings("unchecked") public List getDocumentosProcesso(String idProcedimento, String codigoTipo, String origem, boolean somenteAssinados, - Integer pagina, Integer qtdRegistros){ + String numeroInformado, Integer pagina, Integer qtdRegistros){ HashMap parametros = new HashMap(); StringBuilder builder = new StringBuilder("SELECT pr.protocolo_formatado_pesquisa numero, s.nome tipoNome, s.id_serie tipoCodigo, d.numero numeroInformado, "); @@ -185,6 +185,11 @@ public class DocumentoDAO { parametros.put("origem", origem); } + if(StringUtils.isNotBlank(numeroInformado)){ + builder.append("AND d.numero like :numeroInformado "); + parametros.put("numeroInformado", "%"+numeroInformado+"%"); + } + builder.append("GROUP BY pr.protocolo_formatado_pesquisa ORDER BY pr.dta_geracao, pr.protocolo_formatado_pesquisa ASC"); Query query = em.createNativeQuery(builder.toString(), "DocumentoResumidoMapping"); @@ -209,7 +214,7 @@ public class DocumentoDAO { return documentos; } - public Long countDocumentosProcesso(String idProcedimento, String codigoTipo, String origem, boolean somenteAssinados){ + public Long countDocumentosProcesso(String idProcedimento, String codigoTipo, String origem, boolean somenteAssinados, String numeroInformado){ HashMap parametros = new HashMap(); StringBuilder builder = new StringBuilder("SELECT count(pr.protocolo_formatado_pesquisa) "); @@ -236,6 +241,11 @@ public class DocumentoDAO { builder.append("AND pr.sta_protocolo = :origem "); parametros.put("origem", origem); } + + if(StringUtils.isNotBlank(numeroInformado)){ + builder.append("AND d.numero like :numeroInformado "); + parametros.put("numeroInformado", "%"+numeroInformado+"%"); + } Query query = em.createNativeQuery(builder.toString()); diff --git a/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java b/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java index 633fa5a..a1d8282 100644 --- a/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java +++ b/src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java @@ -1176,6 +1176,7 @@ public class ProcessoResource { * @apiParam (Query Parameters) {String} [tipo=null] Identificador do tipo do documento, caso seja necessário filtrar pelo tipo * @apiParam (Query Parameters) {String = "G (gerado/interno), R (recebido/externo)"} [origem=null] Filtra os documentos por gerados ou recebidos * @apiParam (Query Parameters) {boolean} [somenteAssinados=false] Exibir somente documentos assinados + * @apiParam (Query Parameters) {String} [numeroInformado] Filtrar pelo número informado * @apiParam (Query Parameters) {String} [pagina=1] Número da página * @apiParam (Query Parameters) {String} [qtdRegistros = 50] Quantidade de registros que serão exibidos por página * @@ -1222,20 +1223,20 @@ public class ProcessoResource { @Path("/processos/{processo:\\d+}/documentos") @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) public Response listarDocumentosPorProcesso(@PathParam("processo") String processo, @QueryParam("tipo")String tipo, - @QueryParam("origem") String origem, @QueryParam("somenteAssinados") boolean somenteAssinados, @QueryParam("pagina") String pagina, - @QueryParam("qtdRegistros") String qtdRegistros)throws RemoteException, Exception{ + @QueryParam("origem") String origem, @QueryParam("somenteAssinados") boolean somenteAssinados, @QueryParam("numeroInformado") String numeroInformado, + @QueryParam("pagina") String pagina, @QueryParam("qtdRegistros") String qtdRegistros)throws RemoteException, Exception{ Integer tamanhoPagina = (qtdRegistros == null ? null : parseInt(qtdRegistros)); String idProcedimento = consultarIdProcedimento(processo); - Long totalDocumentosProcesso = documentoDAO.countDocumentosProcesso(idProcedimento, tipo, origem, somenteAssinados); + Long totalDocumentosProcesso = documentoDAO.countDocumentosProcesso(idProcedimento, tipo, origem, somenteAssinados, numeroInformado); if(totalDocumentosProcesso < 1L){ throw new ResourceNotFoundException(messages.getMessage("erro.processo.sem.documentos", formatarNumeroProcesso(processo))); } - List documentosProcesso = documentoDAO.getDocumentosProcesso(idProcedimento, tipo, origem, somenteAssinados, + List documentosProcesso = documentoDAO.getDocumentosProcesso(idProcedimento, tipo, origem, somenteAssinados, numeroInformado, pagina == null ? null : parseInt(pagina), tamanhoPagina); return Response.status(getStatus(totalDocumentosProcesso.intValue(), tamanhoPagina)).header("total_registros", totalDocumentosProcesso) diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml index 9a3234f..a17af4b 100644 --- a/src/main/resources/META-INF/persistence.xml +++ b/src/main/resources/META-INF/persistence.xml @@ -30,7 +30,7 @@ - + -- libgit2 0.21.2