Commit 9d6d8b0195875ae76378a7729cba0812d07de163
1 parent
eb9f4811
Exists in
master
and in
1 other branch
Atualização do retorno do método consulta documentos do processo, agora o Docume…
…ntoResumido retorna o Tipo do documento de uma forma mais clara.
Showing
9 changed files
with
48 additions
and
84 deletions
Show diff stats
.settings/org.eclipse.wst.common.component
1 | 1 | <?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0"> |
2 | - <wb-module deploy-name="sei-broker-2.1"> | |
2 | + <wb-module deploy-name="sei-broker-2.3"> | |
3 | 3 | <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/> |
4 | 4 | <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/> |
5 | 5 | <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/> | ... | ... |
src/main/java/br/gov/ans/integracao/sei/dao/DocumentoDAO.java
... | ... | @@ -3,6 +3,7 @@ package br.gov.ans.integracao.sei.dao; |
3 | 3 | import static br.gov.ans.integracao.sei.utils.Util.setPaginacaoQuery; |
4 | 4 | import static br.gov.ans.integracao.sei.utils.Util.setQueryParameters; |
5 | 5 | |
6 | +import java.util.ArrayList; | |
6 | 7 | import java.util.HashMap; |
7 | 8 | import java.util.List; |
8 | 9 | |
... | ... | @@ -14,6 +15,7 @@ import javax.persistence.Query; |
14 | 15 | import org.apache.commons.lang3.StringUtils; |
15 | 16 | |
16 | 17 | import br.gov.ans.integracao.sei.modelo.DocumentoResumido; |
18 | +import br.gov.ans.integracao.sei.modelo.ProcessoResumido; | |
17 | 19 | |
18 | 20 | public class DocumentoDAO { |
19 | 21 | @PersistenceContext(unitName = "sei_pu", type = PersistenceContextType.EXTENDED) |
... | ... | @@ -43,7 +45,7 @@ public class DocumentoDAO { |
43 | 45 | |
44 | 46 | builder.append("order by pr.dta_geracao asc"); |
45 | 47 | |
46 | - Query query = em.createNativeQuery(builder.toString(), DocumentoResumido.class); | |
48 | + Query query = em.createNativeQuery(builder.toString(), "DocumentoResumidoMapping"); | |
47 | 49 | |
48 | 50 | setQueryParameters(query, parametros); |
49 | 51 | |
... | ... | @@ -79,33 +81,10 @@ public class DocumentoDAO { |
79 | 81 | } |
80 | 82 | |
81 | 83 | @SuppressWarnings("unchecked") |
82 | - public List<DocumentoResumido> getDocumentosProcessoV1(String idProcedimento){ | |
83 | - HashMap<String, Object> parametros = new HashMap<String, Object>(); | |
84 | - | |
85 | - StringBuilder builder = new StringBuilder("SELECT pr.protocolo_formatado_pesquisa numero, s.nome tipo, d.numero numeroInformado, "); | |
86 | - builder.append("CASE pr.sta_protocolo WHEN 'G' THEN 'GERADO' ELSE 'RECEBIDO' END origem, "); | |
87 | - builder.append("pr.dta_geracao dataGeracao, null as processo, null as unidade "); | |
88 | - builder.append("FROM protocolo pr, documento d, serie s "); | |
89 | - builder.append("WHERE d.id_serie = s.id_serie "); | |
90 | - builder.append("AND pr.id_protocolo = d.id_documento "); | |
91 | - builder.append("AND d.id_procedimento = :idProcedimento "); | |
92 | - | |
93 | - parametros.put("idProcedimento", idProcedimento); | |
94 | - | |
95 | - builder.append("ORDER BY pr.dta_geracao ASC"); | |
96 | - | |
97 | - Query query = em.createNativeQuery(builder.toString(), DocumentoResumido.class); | |
98 | - | |
99 | - setQueryParameters(query, parametros); | |
100 | - | |
101 | - return query.getResultList(); | |
102 | - } | |
103 | - | |
104 | - @SuppressWarnings("unchecked") | |
105 | 84 | public List<DocumentoResumido> getDocumentosProcesso(String idProcedimento, String codigoTipo, String origem, boolean somenteAssinados){ |
106 | 85 | HashMap<String, Object> parametros = new HashMap<String, Object>(); |
107 | 86 | |
108 | - StringBuilder builder = new StringBuilder("SELECT pr.protocolo_formatado_pesquisa numero, s.nome tipo, s.id_serie codigoTipo, d.numero numeroInformado, "); | |
87 | + StringBuilder builder = new StringBuilder("SELECT pr.protocolo_formatado_pesquisa numero, s.nome tipoNome, s.id_serie tipoCodigo, d.numero numeroInformado, "); | |
109 | 88 | builder.append("CASE pr.sta_protocolo WHEN 'G' THEN 'GERADO' ELSE 'RECEBIDO' END origem, d.id_tipo_conferencia tipoConferencia, "); |
110 | 89 | builder.append("pr.dta_geracao dataGeracao, null as processo, null as unidade, "); |
111 | 90 | builder.append("CASE WHEN a.id_assinatura is null THEN false ELSE true END assinado "); |
... | ... | @@ -135,11 +114,20 @@ public class DocumentoDAO { |
135 | 114 | |
136 | 115 | builder.append("GROUP BY numero ORDER BY pr.dta_geracao ASC"); |
137 | 116 | |
138 | - Query query = em.createNativeQuery(builder.toString(), DocumentoResumido.class); | |
117 | + Query query = em.createNativeQuery(builder.toString(), "DocumentoResumidoMapping"); | |
139 | 118 | |
140 | 119 | setQueryParameters(query, parametros); |
141 | 120 | |
142 | - return query.getResultList(); | |
121 | + List<Object[]> results = query.getResultList(); | |
122 | + | |
123 | + List<DocumentoResumido> documentos = new ArrayList<DocumentoResumido>(); | |
124 | + | |
125 | + results.stream().forEach((record) -> { | |
126 | + DocumentoResumido documento = (DocumentoResumido) record[0]; | |
127 | + documentos.add(documento); | |
128 | + }); | |
129 | + | |
130 | + return documentos; | |
143 | 131 | } |
144 | 132 | |
145 | 133 | } | ... | ... |
src/main/java/br/gov/ans/integracao/sei/modelo/DocumentoResumido.java
... | ... | @@ -6,6 +6,7 @@ import javax.persistence.Entity; |
6 | 6 | import javax.persistence.EntityResult; |
7 | 7 | import javax.persistence.FieldResult; |
8 | 8 | import javax.persistence.Id; |
9 | +import javax.persistence.OneToOne; | |
9 | 10 | import javax.persistence.SqlResultSetMapping; |
10 | 11 | import javax.xml.bind.annotation.XmlRootElement; |
11 | 12 | |
... | ... | @@ -15,39 +16,36 @@ import org.codehaus.jackson.map.annotate.JsonSerialize; |
15 | 16 | @Entity |
16 | 17 | @SqlResultSetMapping(name = "DocumentoResumidoMapping", entities = { @EntityResult(entityClass = DocumentoResumido.class, fields = { |
17 | 18 | @FieldResult(name = "numero", column = "numero"), |
18 | - @FieldResult(name = "tipo", column = "tipo"), | |
19 | 19 | @FieldResult(name = "numeroInformado", column = "numeroInformado"), |
20 | + @FieldResult(name = "unidade", column = "unidade"), | |
20 | 21 | @FieldResult(name = "origem", column = "origem"), |
21 | - @FieldResult(name = "dataGeracao", column = "dataGeracao") }) }) | |
22 | + @FieldResult(name = "processo", column = "processo"), | |
23 | + @FieldResult(name = "tipoConferencia", column = "tipoConferencia"), | |
24 | + @FieldResult(name = "assinado", column = "assinado"), | |
25 | + @FieldResult(name = "dataGeracao", column = "dataGeracao"), | |
26 | + @FieldResult(name = "tipo", column = "tipoCodigo") | |
27 | + }), | |
28 | + @EntityResult( | |
29 | + entityClass = Tipo.class, | |
30 | + fields = { | |
31 | + @FieldResult(name = "codigo", column = "tipoCodigo"), | |
32 | + @FieldResult(name = "nome", column = "tipoNome")}) | |
33 | + }) | |
22 | 34 | @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) |
23 | 35 | public class DocumentoResumido { |
24 | 36 | @Id |
25 | 37 | private String numero; |
26 | 38 | private String numeroInformado; |
27 | - private String tipo; | |
28 | 39 | private String unidade; |
29 | 40 | private String origem; |
30 | 41 | private Date dataGeracao; |
31 | 42 | private String processo; |
32 | - private String codigoTipo; | |
43 | + | |
44 | + @OneToOne | |
45 | + private Tipo tipo; | |
33 | 46 | private String tipoConferencia; |
34 | 47 | private boolean assinado; |
35 | 48 | |
36 | - public DocumentoResumido(){ | |
37 | - | |
38 | - } | |
39 | - | |
40 | - public DocumentoResumido(String numero, String tipo, String numeroInformado, String origem, Date dataGeracao){ | |
41 | - this.numero = numero; | |
42 | - this.tipo = tipo; | |
43 | - this.numeroInformado = numeroInformado; | |
44 | - this.origem = origem; | |
45 | - this.dataGeracao = dataGeracao; | |
46 | - } | |
47 | - | |
48 | - | |
49 | - | |
50 | - @Id | |
51 | 49 | public String getNumero() { |
52 | 50 | return numero; |
53 | 51 | } |
... | ... | @@ -56,11 +54,11 @@ public class DocumentoResumido { |
56 | 54 | this.numero = numero; |
57 | 55 | } |
58 | 56 | |
59 | - public String getTipo() { | |
57 | + public Tipo getTipo() { | |
60 | 58 | return tipo; |
61 | 59 | } |
62 | 60 | |
63 | - public void setTipo(String tipo) { | |
61 | + public void setTipo(Tipo tipo) { | |
64 | 62 | this.tipo = tipo; |
65 | 63 | } |
66 | 64 | |
... | ... | @@ -104,14 +102,6 @@ public class DocumentoResumido { |
104 | 102 | this.numeroInformado = numeroInformado; |
105 | 103 | } |
106 | 104 | |
107 | - public String getCodigoTipo() { | |
108 | - return codigoTipo; | |
109 | - } | |
110 | - | |
111 | - public void setCodigoTipo(String codigoTipo) { | |
112 | - this.codigoTipo = codigoTipo; | |
113 | - } | |
114 | - | |
115 | 105 | public String getTipoConferencia() { |
116 | 106 | return tipoConferencia; |
117 | 107 | } | ... | ... |
src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java
... | ... | @@ -1127,7 +1127,7 @@ public class ProcessoResource { |
1127 | 1127 | } |
1128 | 1128 | |
1129 | 1129 | /** |
1130 | - * @api {get} /:unidade/processos/:processo/documentos Listar documentos | |
1130 | + * @api {get} /processos/:processo/documentos Listar documentos | |
1131 | 1131 | * @apiName listarDocumentosPorProcesso |
1132 | 1132 | * @apiGroup Processo |
1133 | 1133 | * @apiVersion 2.0.0 |
... | ... | @@ -1136,7 +1136,6 @@ public class ProcessoResource { |
1136 | 1136 | * |
1137 | 1137 | * @apiDescription Retorna os documentos de um determinado processo. |
1138 | 1138 | * |
1139 | - * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. | |
1140 | 1139 | * @apiParam (Path Parameters) {String} processo Número do processo. |
1141 | 1140 | * |
1142 | 1141 | * @apiParam (Query Parameters) {String} [tipo=null] Identificador do tipo do documento, caso seja necessário filtrar pelo tipo |
... | ... | @@ -1144,7 +1143,7 @@ public class ProcessoResource { |
1144 | 1143 | * @apiParam (Query Parameters) {boolean} [somenteAssinados=false] Exibir somente documentos assinados |
1145 | 1144 | * |
1146 | 1145 | * @apiExample Exemplo de requisição: |
1147 | - * curl -i https://<host>/sei-broker/service/cosap/processos/33910003149201793/documentos | |
1146 | + * curl -i https://<host>/sei-broker/service/processos/33910003149201793/documentos | |
1148 | 1147 | * |
1149 | 1148 | * @apiSuccess (Sucesso Response Body - 200) {List} documentos Lista com os documentos encontrados. |
1150 | 1149 | * @apiSuccess (Sucesso Response Body - 200) {DocumentoResumido} documentos.documentoResumido Resumo do documento encontrado no SEI. |
... | ... | @@ -1176,9 +1175,9 @@ public class ProcessoResource { |
1176 | 1175 | * } |
1177 | 1176 | */ |
1178 | 1177 | @GET |
1179 | - @Path("/{unidade}/processos/{processo:\d+}/documentos") | |
1178 | + @Path("/processos/{processo:\d+}/documentos") | |
1180 | 1179 | @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) |
1181 | - public List<DocumentoResumido> listarDocumentosPorProcesso(@PathParam("unidade") String unidade, @PathParam("processo") String processo, @QueryParam("tipo")String tipo, | |
1180 | + public List<DocumentoResumido> listarDocumentosPorProcesso(@PathParam("processo") String processo, @QueryParam("tipo")String tipo, | |
1182 | 1181 | @QueryParam("origem") String origem, @QueryParam("somenteAssinados") boolean somenteAssinados) throws RemoteException, Exception{ |
1183 | 1182 | try{ |
1184 | 1183 | BigInteger idProcedimento = processoDAO.getIdProcedimento(formatarNumeroProcesso(processo)); | ... | ... |
src/main/resources/META-INF/persistence.xml
... | ... | @@ -21,10 +21,11 @@ |
21 | 21 | <persistence-unit name="sei_pu" transaction-type="JTA"> |
22 | 22 | <jta-data-source>jdbc/sei-mysql</jta-data-source> |
23 | 23 | |
24 | - | |
25 | - <class>br.gov.ans.integracao.sei.modelo.ProcessoResumido</class> | |
26 | 24 | <class>br.gov.ans.integracao.sei.modelo.Contato</class> |
25 | + <class>br.gov.ans.integracao.sei.modelo.DocumentoResumido</class> | |
26 | + <class>br.gov.ans.integracao.sei.modelo.ProcessoResumido</class> | |
27 | 27 | <class>br.gov.ans.integracao.sei.modelo.Tarefa</class> |
28 | + <class>br.gov.ans.integracao.sei.modelo.Tipo</class> | |
28 | 29 | |
29 | 30 | <properties> |
30 | 31 | <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" /> | ... | ... |
src/main/webapp/api-docs/api_data.js
... | ... | @@ -7151,7 +7151,7 @@ define({ "api": [ |
7151 | 7151 | }, |
7152 | 7152 | { |
7153 | 7153 | "type": "get", |
7154 | - "url": "/:unidade/processos/:processo/documentos", | |
7154 | + "url": "/processos/:processo/documentos", | |
7155 | 7155 | "title": "Listar documentos", |
7156 | 7156 | "name": "listarDocumentosPorProcesso", |
7157 | 7157 | "group": "Processo", |
... | ... | @@ -7169,13 +7169,6 @@ define({ "api": [ |
7169 | 7169 | "group": "Path Parameters", |
7170 | 7170 | "type": "String", |
7171 | 7171 | "optional": false, |
7172 | - "field": "unidade", | |
7173 | - "description": "<p>Sigla da Unidade cadastrada no SEI.</p>" | |
7174 | - }, | |
7175 | - { | |
7176 | - "group": "Path Parameters", | |
7177 | - "type": "String", | |
7178 | - "optional": false, | |
7179 | 7172 | "field": "processo", |
7180 | 7173 | "description": "<p>Número do processo.</p>" |
7181 | 7174 | } |
... | ... | @@ -7214,7 +7207,7 @@ define({ "api": [ |
7214 | 7207 | "examples": [ |
7215 | 7208 | { |
7216 | 7209 | "title": "Exemplo de requisição:\t", |
7217 | - "content": "curl -i https://<host>/sei-broker/service/cosap/processos/33910003149201793/documentos", | |
7210 | + "content": "curl -i https://<host>/sei-broker/service/processos/33910003149201793/documentos", | |
7218 | 7211 | "type": "json" |
7219 | 7212 | } |
7220 | 7213 | ], | ... | ... |
src/main/webapp/api-docs/api_data.json
... | ... | @@ -7151,7 +7151,7 @@ |
7151 | 7151 | }, |
7152 | 7152 | { |
7153 | 7153 | "type": "get", |
7154 | - "url": "/:unidade/processos/:processo/documentos", | |
7154 | + "url": "/processos/:processo/documentos", | |
7155 | 7155 | "title": "Listar documentos", |
7156 | 7156 | "name": "listarDocumentosPorProcesso", |
7157 | 7157 | "group": "Processo", |
... | ... | @@ -7169,13 +7169,6 @@ |
7169 | 7169 | "group": "Path Parameters", |
7170 | 7170 | "type": "String", |
7171 | 7171 | "optional": false, |
7172 | - "field": "unidade", | |
7173 | - "description": "<p>Sigla da Unidade cadastrada no SEI.</p>" | |
7174 | - }, | |
7175 | - { | |
7176 | - "group": "Path Parameters", | |
7177 | - "type": "String", | |
7178 | - "optional": false, | |
7179 | 7172 | "field": "processo", |
7180 | 7173 | "description": "<p>Número do processo.</p>" |
7181 | 7174 | } |
... | ... | @@ -7214,7 +7207,7 @@ |
7214 | 7207 | "examples": [ |
7215 | 7208 | { |
7216 | 7209 | "title": "Exemplo de requisição:\t", |
7217 | - "content": "curl -i https://<host>/sei-broker/service/cosap/processos/33910003149201793/documentos", | |
7210 | + "content": "curl -i https://<host>/sei-broker/service/processos/33910003149201793/documentos", | |
7218 | 7211 | "type": "json" |
7219 | 7212 | } |
7220 | 7213 | ], | ... | ... |
src/main/webapp/api-docs/api_project.js
src/main/webapp/api-docs/api_project.json