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,8 +54,8 @@ public class DocumentoDAO {
54 return query.getResultList(); 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 HashMap<String, Object> parametros = new HashMap<String, Object>(); 59 HashMap<String, Object> parametros = new HashMap<String, Object>();
60 60
61 StringBuilder builder = new StringBuilder("SELECT pr.protocolo_formatado_pesquisa numero, s.nome tipoNome, s.id_serie tipoCodigo, d.numero numeroInformado, "); 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,7 +154,7 @@ public class DocumentoDAO {
154 154
155 @SuppressWarnings("unchecked") 155 @SuppressWarnings("unchecked")
156 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){ 157 + String numeroInformado, Integer pagina, Integer qtdRegistros){
158 HashMap<String, Object> parametros = new HashMap<String, Object>(); 158 HashMap<String, Object> parametros = new HashMap<String, Object>();
159 159
160 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, ");
@@ -185,6 +185,11 @@ public class DocumentoDAO { @@ -185,6 +185,11 @@ public class DocumentoDAO {
185 parametros.put("origem", origem); 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 builder.append("GROUP BY pr.protocolo_formatado_pesquisa ORDER BY pr.dta_geracao, pr.protocolo_formatado_pesquisa ASC"); 193 builder.append("GROUP BY pr.protocolo_formatado_pesquisa ORDER BY pr.dta_geracao, pr.protocolo_formatado_pesquisa ASC");
189 194
190 Query query = em.createNativeQuery(builder.toString(), "DocumentoResumidoMapping"); 195 Query query = em.createNativeQuery(builder.toString(), "DocumentoResumidoMapping");
@@ -209,7 +214,7 @@ public class DocumentoDAO { @@ -209,7 +214,7 @@ public class DocumentoDAO {
209 return documentos; 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 HashMap<String, Object> parametros = new HashMap<String, Object>(); 218 HashMap<String, Object> parametros = new HashMap<String, Object>();
214 219
215 StringBuilder builder = new StringBuilder("SELECT count(pr.protocolo_formatado_pesquisa) "); 220 StringBuilder builder = new StringBuilder("SELECT count(pr.protocolo_formatado_pesquisa) ");
@@ -236,6 +241,11 @@ public class DocumentoDAO { @@ -236,6 +241,11 @@ public class DocumentoDAO {
236 builder.append("AND pr.sta_protocolo = :origem "); 241 builder.append("AND pr.sta_protocolo = :origem ");
237 parametros.put("origem", origem); 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 Query query = em.createNativeQuery(builder.toString()); 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,6 +1176,7 @@ public class ProcessoResource {
1176 * @apiParam (Query Parameters) {String} [tipo=null] Identificador do tipo do documento, caso seja necessário filtrar pelo tipo 1176 * @apiParam (Query Parameters) {String} [tipo=null] Identificador do tipo do documento, caso seja necessário filtrar pelo tipo
1177 * @apiParam (Query Parameters) {String = "G (gerado/interno), R (recebido/externo)"} [origem=null] Filtra os documentos por gerados ou recebidos 1177 * @apiParam (Query Parameters) {String = "G (gerado/interno), R (recebido/externo)"} [origem=null] Filtra os documentos por gerados ou recebidos
1178 * @apiParam (Query Parameters) {boolean} [somenteAssinados=false] Exibir somente documentos assinados 1178 * @apiParam (Query Parameters) {boolean} [somenteAssinados=false] Exibir somente documentos assinados
  1179 + * @apiParam (Query Parameters) {String} [numeroInformado] Filtrar pelo número informado
1179 * @apiParam (Query Parameters) {String} [pagina=1] Número da página 1180 * @apiParam (Query Parameters) {String} [pagina=1] Número da página
1180 * @apiParam (Query Parameters) {String} [qtdRegistros = 50] Quantidade de registros que serão exibidos por página 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,20 +1223,20 @@ public class ProcessoResource {
1222 @Path("/processos/{processo:\\d+}/documentos") 1223 @Path("/processos/{processo:\\d+}/documentos")
1223 @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) 1224 @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
1224 public Response listarDocumentosPorProcesso(@PathParam("processo") String processo, @QueryParam("tipo")String tipo, 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 Integer tamanhoPagina = (qtdRegistros == null ? null : parseInt(qtdRegistros)); 1229 Integer tamanhoPagina = (qtdRegistros == null ? null : parseInt(qtdRegistros));
1229 1230
1230 String idProcedimento = consultarIdProcedimento(processo); 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 if(totalDocumentosProcesso < 1L){ 1235 if(totalDocumentosProcesso < 1L){
1235 throw new ResourceNotFoundException(messages.getMessage("erro.processo.sem.documentos", formatarNumeroProcesso(processo))); 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 pagina == null ? null : parseInt(pagina), tamanhoPagina); 1240 pagina == null ? null : parseInt(pagina), tamanhoPagina);
1240 1241
1241 return Response.status(getStatus(totalDocumentosProcesso.intValue(), tamanhoPagina)).header("total_registros", totalDocumentosProcesso) 1242 return Response.status(getStatus(totalDocumentosProcesso.intValue(), tamanhoPagina)).header("total_registros", totalDocumentosProcesso)
src/main/resources/META-INF/persistence.xml
@@ -30,7 +30,7 @@ @@ -30,7 +30,7 @@
30 <properties> 30 <properties>
31 <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" /> 31 <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
32 <property name="hibernate.show_sql" value="false" /> 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 <property name="hibernate.connection.charSet" value="UTF-8" /> 34 <property name="hibernate.connection.charSet" value="UTF-8" />
35 </properties> 35 </properties>
36 </persistence-unit> 36 </persistence-unit>