Commit d099286d6714b94caa3b48dc0f2c44426b221cfb

Authored by andre.guimaraes
1 parent 99bc23f9

Retorna unidade na consultaDocumentosProcesso

A consulta a documentos do processo passa a retornar a unidade
responsável pela inclusão do documento. Criado um endpoint para lista os
processos de um interessado.

OTRS - 2018092820000496
src/main/java/br/gov/ans/integracao/sei/dao/DocumentoDAO.java
@@ -21,39 +21,6 @@ public class DocumentoDAO { @@ -21,39 +21,6 @@ public class DocumentoDAO {
21 @PersistenceContext(unitName = "sei_pu", type = PersistenceContextType.EXTENDED) 21 @PersistenceContext(unitName = "sei_pu", type = PersistenceContextType.EXTENDED)
22 private EntityManager em; 22 private EntityManager em;
23 23
24 - @SuppressWarnings("unchecked")  
25 - public List<DocumentoResumido> getDocumentosV1(String interessado, String unidade, Integer pagina, Integer qtdRegistros){  
26 - HashMap<String, Object> parametros = new HashMap<String, Object>();  
27 -  
28 - StringBuilder builder = new StringBuilder("SELECT ");  
29 - builder.append("pr.protocolo_formatado_pesquisa numero, s.nome tipo, d.numero numeroInformado, ");  
30 - builder.append("(select protocolo_formatado from protocolo where id_protocolo = d.id_procedimento) processo, ");  
31 - builder.append("u.sigla unidade, CASE pr.sta_protocolo WHEN 'G' THEN 'GERADO' ELSE 'RECEBIDO' END origem, pr.dta_geracao dataGeracao ");  
32 - builder.append("FROM participante p, protocolo pr, documento d, contato c, serie s, unidade u ");  
33 - builder.append("WHERE p.id_contato = c.id_contato AND p.id_protocolo = pr.id_protocolo AND p.id_protocolo = d.id_documento ");  
34 - builder.append("AND p.id_unidade = u.id_unidade AND d.id_serie = s.id_serie ");  
35 -  
36 - if(StringUtils.isNotBlank(interessado)){  
37 - builder.append("AND c.sigla = :interessado ");  
38 - parametros.put("interessado", interessado);  
39 - }  
40 -  
41 - if(StringUtils.isNotBlank(unidade)){  
42 - builder.append("AND u.sigla = :unidade ");  
43 - parametros.put("unidade", unidade);  
44 - }  
45 -  
46 - builder.append("order by pr.dta_geracao asc");  
47 -  
48 - Query query = em.createNativeQuery(builder.toString(), "DocumentoResumidoMapping");  
49 -  
50 - setQueryParameters(query, parametros);  
51 -  
52 - setPaginacaoQuery(query, pagina, qtdRegistros);  
53 -  
54 - return query.getResultList();  
55 - }  
56 -  
57 public List<DocumentoResumido> getDocumentos(String interessado, String codigoTipo, Integer pagina, Integer qtdRegistros, boolean somenteAssinados, 24 public List<DocumentoResumido> getDocumentos(String interessado, String codigoTipo, Integer pagina, Integer qtdRegistros, boolean somenteAssinados,
58 boolean ordemCrescente, boolean orderByProcesso){ 25 boolean ordemCrescente, boolean orderByProcesso){
59 HashMap<String, Object> parametros = new HashMap<String, Object>(); 26 HashMap<String, Object> parametros = new HashMap<String, Object>();
@@ -161,7 +128,7 @@ public class DocumentoDAO { @@ -161,7 +128,7 @@ public class DocumentoDAO {
161 StringBuilder builder = new StringBuilder("SELECT pr.protocolo_formatado_pesquisa numero, s.nome tipoNome, s.id_serie tipoCodigo, "); 128 StringBuilder builder = new StringBuilder("SELECT pr.protocolo_formatado_pesquisa numero, s.nome tipoNome, s.id_serie tipoCodigo, ");
162 builder.append("d.numero numeroInformado, an.nome nome, "); 129 builder.append("d.numero numeroInformado, an.nome nome, ");
163 builder.append("CASE pr.sta_protocolo WHEN 'G' THEN 'GERADO' ELSE 'RECEBIDO' END origem, d.id_tipo_conferencia tipoConferencia, "); 130 builder.append("CASE pr.sta_protocolo WHEN 'G' THEN 'GERADO' ELSE 'RECEBIDO' END origem, d.id_tipo_conferencia tipoConferencia, ");
164 - builder.append("pr.dta_geracao dataGeracao, null as processo, null as unidade, "); 131 + builder.append("pr.dta_geracao dataGeracao, null as processo, u.sigla as unidade, ");
165 builder.append("CASE WHEN a.id_assinatura is null THEN false ELSE true END assinado "); 132 builder.append("CASE WHEN a.id_assinatura is null THEN false ELSE true END assinado ");
166 builder.append("FROM documento AS d "); 133 builder.append("FROM documento AS d ");
167 134
@@ -173,6 +140,7 @@ public class DocumentoDAO { @@ -173,6 +140,7 @@ public class DocumentoDAO {
173 140
174 builder.append("JOIN protocolo AS pr ON pr.id_protocolo = d.id_documento "); 141 builder.append("JOIN protocolo AS pr ON pr.id_protocolo = d.id_documento ");
175 builder.append("JOIN serie AS s ON d.id_serie = s.id_serie "); 142 builder.append("JOIN serie AS s ON d.id_serie = s.id_serie ");
  143 + builder.append("JOIN unidade AS u ON u.id_unidade = d.id_unidade_responsavel ");
176 builder.append("LEFT JOIN anexo AS an ON d.id_documento = an.id_protocolo "); 144 builder.append("LEFT JOIN anexo AS an ON d.id_documento = an.id_protocolo ");
177 builder.append("WHERE d.id_procedimento = :idProcedimento "); 145 builder.append("WHERE d.id_procedimento = :idProcedimento ");
178 146
src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java
@@ -654,6 +654,16 @@ public class ProcessoResource { @@ -654,6 +654,16 @@ public class ProcessoResource {
654 .header("total_registros", totalRegistros).build(); 654 .header("total_registros", totalRegistros).build();
655 } 655 }
656 656
  657 + @GET
  658 + @Path("/interessados/{interessado}/processos")
  659 + @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
  660 + @Wrapped(element = "processos")
  661 + public Response consultarProcessosPorInteressado(@PathParam("interessado") String interessado, @QueryParam("unidade") String unidade, @QueryParam("tipo") String tipoProcesso,
  662 + @QueryParam("crescente") boolean crescente, @QueryParam("pagina") String pagina, @QueryParam("qtdRegistros") String qtdRegistros) throws Exception{
  663 +
  664 + return consultarProcessos(interessado, unidade, tipoProcesso, crescente, pagina, qtdRegistros);
  665 + }
  666 +
657 /** 667 /**
658 * @api {get} /:unidade/processos/:processo/andamentos Listar andamentos 668 * @api {get} /:unidade/processos/:processo/andamentos Listar andamentos
659 * @apiName listarAndamentos 669 * @apiName listarAndamentos