Commit 5a2b714d3e8cc2195e1614fb30ea5083d71ea6ac

Authored by andre.guimaraes
1 parent 6e272f6e

Inclui filtro no serviço listarDocumentosProcesso

Inclusão do filtro numeroInformado no serviço que lista os documentos de
um determinado processo.
src/main/java/br/gov/ans/integracao/sei/dao/DocumentoDAO.java
... ... @@ -54,8 +54,8 @@ public class DocumentoDAO {
54 54 return query.getResultList();
55 55 }
56 56  
57   - public List<DocumentoResumido> getDocumentos(String interessado, String codigoTipo, Integer pagina, Integer qtdRegistros, boolean somenteAssinados, boolean ordemCrescente,
58   - boolean orderByProcesso){
  57 + public List<DocumentoResumido> getDocumentos(String interessado, String codigoTipo, Integer pagina, Integer qtdRegistros, boolean somenteAssinados,
  58 + boolean ordemCrescente, boolean orderByProcesso){
59 59 HashMap<String, Object> parametros = new HashMap<String, Object>();
60 60  
61 61 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 {
154 154  
155 155 @SuppressWarnings("unchecked")
156 156 public List<DocumentoResumido> getDocumentosProcesso(String idProcedimento, String codigoTipo, String origem, boolean somenteAssinados,
157   - Integer pagina, Integer qtdRegistros){
  157 + String numeroInformado, Integer pagina, Integer qtdRegistros){
158 158 HashMap<String, Object> parametros = new HashMap<String, Object>();
159 159  
160 160 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 {
185 185 parametros.put("origem", origem);
186 186 }
187 187  
  188 + if(StringUtils.isNotBlank(numeroInformado)){
  189 + builder.append("AND d.numero like :numeroInformado ");
  190 + parametros.put("numeroInformado", "%"+numeroInformado+"%");
  191 + }
  192 +
188 193 builder.append("GROUP BY pr.protocolo_formatado_pesquisa ORDER BY pr.dta_geracao, pr.protocolo_formatado_pesquisa ASC");
189 194  
190 195 Query query = em.createNativeQuery(builder.toString(), "DocumentoResumidoMapping");
... ... @@ -209,7 +214,7 @@ public class DocumentoDAO {
209 214 return documentos;
210 215 }
211 216  
212   - public Long countDocumentosProcesso(String idProcedimento, String codigoTipo, String origem, boolean somenteAssinados){
  217 + public Long countDocumentosProcesso(String idProcedimento, String codigoTipo, String origem, boolean somenteAssinados, String numeroInformado){
213 218 HashMap<String, Object> parametros = new HashMap<String, Object>();
214 219  
215 220 StringBuilder builder = new StringBuilder("SELECT count(pr.protocolo_formatado_pesquisa) ");
... ... @@ -236,6 +241,11 @@ public class DocumentoDAO {
236 241 builder.append("AND pr.sta_protocolo = :origem ");
237 242 parametros.put("origem", origem);
238 243 }
  244 +
  245 + if(StringUtils.isNotBlank(numeroInformado)){
  246 + builder.append("AND d.numero like :numeroInformado ");
  247 + parametros.put("numeroInformado", "%"+numeroInformado+"%");
  248 + }
239 249  
240 250 Query query = em.createNativeQuery(builder.toString());
241 251  
... ...
src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java
... ... @@ -1176,6 +1176,7 @@ public class ProcessoResource {
1176 1176 * @apiParam (Query Parameters) {String} [tipo=null] Identificador do tipo do documento, caso seja necessário filtrar pelo tipo
1177 1177 * @apiParam (Query Parameters) {String = "G (gerado/interno), R (recebido/externo)"} [origem=null] Filtra os documentos por gerados ou recebidos
1178 1178 * @apiParam (Query Parameters) {boolean} [somenteAssinados=false] Exibir somente documentos assinados
  1179 + * @apiParam (Query Parameters) {String} [numeroInformado] Filtrar pelo número informado
1179 1180 * @apiParam (Query Parameters) {String} [pagina=1] Número da página
1180 1181 * @apiParam (Query Parameters) {String} [qtdRegistros = 50] Quantidade de registros que serão exibidos por página
1181 1182 *
... ... @@ -1222,20 +1223,20 @@ public class ProcessoResource {
1222 1223 @Path("/processos/{processo:\\d+}/documentos")
1223 1224 @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
1224 1225 public Response listarDocumentosPorProcesso(@PathParam("processo") String processo, @QueryParam("tipo")String tipo,
1225   - @QueryParam("origem") String origem, @QueryParam("somenteAssinados") boolean somenteAssinados, @QueryParam("pagina") String pagina,
1226   - @QueryParam("qtdRegistros") String qtdRegistros)throws RemoteException, Exception{
  1226 + @QueryParam("origem") String origem, @QueryParam("somenteAssinados") boolean somenteAssinados, @QueryParam("numeroInformado") String numeroInformado,
  1227 + @QueryParam("pagina") String pagina, @QueryParam("qtdRegistros") String qtdRegistros)throws RemoteException, Exception{
1227 1228  
1228 1229 Integer tamanhoPagina = (qtdRegistros == null ? null : parseInt(qtdRegistros));
1229 1230  
1230 1231 String idProcedimento = consultarIdProcedimento(processo);
1231 1232  
1232   - Long totalDocumentosProcesso = documentoDAO.countDocumentosProcesso(idProcedimento, tipo, origem, somenteAssinados);
  1233 + Long totalDocumentosProcesso = documentoDAO.countDocumentosProcesso(idProcedimento, tipo, origem, somenteAssinados, numeroInformado);
1233 1234  
1234 1235 if(totalDocumentosProcesso < 1L){
1235 1236 throw new ResourceNotFoundException(messages.getMessage("erro.processo.sem.documentos", formatarNumeroProcesso(processo)));
1236 1237 }
1237 1238  
1238   - List<DocumentoResumido> documentosProcesso = documentoDAO.getDocumentosProcesso(idProcedimento, tipo, origem, somenteAssinados,
  1239 + List<DocumentoResumido> documentosProcesso = documentoDAO.getDocumentosProcesso(idProcedimento, tipo, origem, somenteAssinados, numeroInformado,
1239 1240 pagina == null ? null : parseInt(pagina), tamanhoPagina);
1240 1241  
1241 1242 return Response.status(getStatus(totalDocumentosProcesso.intValue(), tamanhoPagina)).header("total_registros", totalDocumentosProcesso)
... ...
src/main/resources/META-INF/persistence.xml
... ... @@ -30,7 +30,7 @@
30 30 <properties>
31 31 <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
32 32 <property name="hibernate.show_sql" value="false" />
33   - <property name="hibernate.format_sql" value="false"/>
  33 + <property name="hibernate.format_sql" value="true"/>
34 34 <property name="hibernate.connection.charSet" value="UTF-8" />
35 35 </properties>
36 36 </persistence-unit>
... ...