Commit a1e3c1bb0900ad1716c1c3819273f1b916cf7cc8
1 parent
fb4a12ef
Exists in
master
and in
1 other branch
Adiciona consulta a unidades do processo
Inclusão de serviço que consulte as unidades onde o processo está aberto.
Showing
6 changed files
with
65 additions
and
6 deletions
Show diff stats
pom.xml
@@ -4,7 +4,7 @@ | @@ -4,7 +4,7 @@ | ||
4 | <modelVersion>4.0.0</modelVersion> | 4 | <modelVersion>4.0.0</modelVersion> |
5 | <groupId>br.gov.ans</groupId> | 5 | <groupId>br.gov.ans</groupId> |
6 | <artifactId>sei-broker</artifactId> | 6 | <artifactId>sei-broker</artifactId> |
7 | - <version>2.5.1</version> | 7 | + <version>2.6</version> |
8 | <packaging>war</packaging> | 8 | <packaging>war</packaging> |
9 | <name>sei-broker</name> | 9 | <name>sei-broker</name> |
10 | <description>Camada de integração REST para comunicação com o SEI</description> | 10 | <description>Camada de integração REST para comunicação com o SEI</description> |
src/main/java/br/gov/ans/integracao/sei/client/Unidade.java
@@ -7,15 +7,19 @@ | @@ -7,15 +7,19 @@ | ||
7 | 7 | ||
8 | package br.gov.ans.integracao.sei.client; | 8 | package br.gov.ans.integracao.sei.client; |
9 | 9 | ||
10 | +import javax.persistence.Entity; | ||
11 | +import javax.persistence.Id; | ||
10 | import javax.xml.bind.annotation.XmlRootElement; | 12 | import javax.xml.bind.annotation.XmlRootElement; |
11 | 13 | ||
12 | import org.codehaus.jackson.annotate.JsonIgnoreProperties; | 14 | import org.codehaus.jackson.annotate.JsonIgnoreProperties; |
13 | import org.codehaus.jackson.map.annotate.JsonSerialize; | 15 | import org.codehaus.jackson.map.annotate.JsonSerialize; |
14 | 16 | ||
17 | +@Entity | ||
15 | @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) | 18 | @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) |
16 | @JsonIgnoreProperties(ignoreUnknown = true) | 19 | @JsonIgnoreProperties(ignoreUnknown = true) |
17 | @XmlRootElement | 20 | @XmlRootElement |
18 | public class Unidade implements java.io.Serializable { | 21 | public class Unidade implements java.io.Serializable { |
22 | + @Id | ||
19 | private java.lang.String idUnidade; | 23 | private java.lang.String idUnidade; |
20 | 24 | ||
21 | private java.lang.String sigla; | 25 | private java.lang.String sigla; |
@@ -166,7 +170,8 @@ public class Unidade implements java.io.Serializable { | @@ -166,7 +170,8 @@ public class Unidade implements java.io.Serializable { | ||
166 | this.sinOuvidoria = sinOuvidoria; | 170 | this.sinOuvidoria = sinOuvidoria; |
167 | } | 171 | } |
168 | 172 | ||
169 | - private java.lang.Object __equalsCalc = null; | 173 | + private transient java.lang.Object __equalsCalc = null; |
174 | + | ||
170 | public synchronized boolean equals(java.lang.Object obj) { | 175 | public synchronized boolean equals(java.lang.Object obj) { |
171 | if (!(obj instanceof Unidade)) return false; | 176 | if (!(obj instanceof Unidade)) return false; |
172 | Unidade other = (Unidade) obj; | 177 | Unidade other = (Unidade) obj; |
@@ -200,7 +205,8 @@ public class Unidade implements java.io.Serializable { | @@ -200,7 +205,8 @@ public class Unidade implements java.io.Serializable { | ||
200 | return _equals; | 205 | return _equals; |
201 | } | 206 | } |
202 | 207 | ||
203 | - private boolean __hashCodeCalc = false; | 208 | + private transient boolean __hashCodeCalc = false; |
209 | + | ||
204 | public synchronized int hashCode() { | 210 | public synchronized int hashCode() { |
205 | if (__hashCodeCalc) { | 211 | if (__hashCodeCalc) { |
206 | return 0; | 212 | return 0; |
src/main/java/br/gov/ans/integracao/sei/dao/UnidadeDAO.java
0 → 100644
@@ -0,0 +1,33 @@ | @@ -0,0 +1,33 @@ | ||
1 | +package br.gov.ans.integracao.sei.dao; | ||
2 | + | ||
3 | +import java.util.List; | ||
4 | + | ||
5 | +import javax.persistence.EntityManager; | ||
6 | +import javax.persistence.PersistenceContext; | ||
7 | +import javax.persistence.PersistenceContextType; | ||
8 | +import javax.persistence.Query; | ||
9 | + | ||
10 | +import br.gov.ans.integracao.sei.client.Unidade; | ||
11 | + | ||
12 | +public class UnidadeDAO { | ||
13 | + @PersistenceContext(unitName = "sei_pu", type = PersistenceContextType.EXTENDED) | ||
14 | + private EntityManager em; | ||
15 | + | ||
16 | + public List<Unidade> listarUnidadesProcesso(String idProcedimento){ | ||
17 | + StringBuilder sql = new StringBuilder("SELECT u.id_unidade idUnidade, u.sigla, u.descricao, u.sin_protocolo sinProtocolo, "); | ||
18 | + sql.append("u.sin_arquivamento sinArquivamento, u.sin_ouvidoria sinOuvidoria "); | ||
19 | + sql.append("FROM protocolo p "); | ||
20 | + sql.append("JOIN atividade a ON p.id_protocolo = a.id_protocolo "); | ||
21 | + sql.append("JOIN unidade u ON a.id_unidade = u.id_unidade "); | ||
22 | + sql.append("JOIN tarefa t ON a.id_tarefa = t.id_tarefa "); | ||
23 | + sql.append("WHERE p.id_protocolo = :protocolo "); | ||
24 | + sql.append("and t.id_tarefa in (32, 29) "); | ||
25 | + sql.append("group by u.id_unidade order by u.idx_unidade; "); | ||
26 | + | ||
27 | + Query query = em.createNativeQuery(sql.toString(), Unidade.class); | ||
28 | + | ||
29 | + query.setParameter("protocolo", idProcedimento); | ||
30 | + | ||
31 | + return query.getResultList(); | ||
32 | + } | ||
33 | +} |
src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java
@@ -46,12 +46,13 @@ import br.gov.ans.integracao.sei.client.RetornoConsultaProcedimento; | @@ -46,12 +46,13 @@ import br.gov.ans.integracao.sei.client.RetornoConsultaProcedimento; | ||
46 | import br.gov.ans.integracao.sei.client.RetornoGeracaoProcedimento; | 46 | import br.gov.ans.integracao.sei.client.RetornoGeracaoProcedimento; |
47 | import br.gov.ans.integracao.sei.client.SeiPortTypeProxy; | 47 | import br.gov.ans.integracao.sei.client.SeiPortTypeProxy; |
48 | import br.gov.ans.integracao.sei.client.TipoProcedimento; | 48 | import br.gov.ans.integracao.sei.client.TipoProcedimento; |
49 | +import br.gov.ans.integracao.sei.client.Unidade; | ||
49 | import br.gov.ans.integracao.sei.dao.DocumentoDAO; | 50 | import br.gov.ans.integracao.sei.dao.DocumentoDAO; |
50 | import br.gov.ans.integracao.sei.dao.ProcessoDAO; | 51 | import br.gov.ans.integracao.sei.dao.ProcessoDAO; |
51 | import br.gov.ans.integracao.sei.dao.SiparDAO; | 52 | import br.gov.ans.integracao.sei.dao.SiparDAO; |
53 | +import br.gov.ans.integracao.sei.dao.UnidadeDAO; | ||
52 | import br.gov.ans.integracao.sei.modelo.DocumentoResumido; | 54 | import br.gov.ans.integracao.sei.modelo.DocumentoResumido; |
53 | import br.gov.ans.integracao.sei.modelo.EnvioDeProcesso; | 55 | import br.gov.ans.integracao.sei.modelo.EnvioDeProcesso; |
54 | -import br.gov.ans.integracao.sei.modelo.InclusaoDocumento; | ||
55 | import br.gov.ans.integracao.sei.modelo.Motivo; | 56 | import br.gov.ans.integracao.sei.modelo.Motivo; |
56 | import br.gov.ans.integracao.sei.modelo.NovoAndamento; | 57 | import br.gov.ans.integracao.sei.modelo.NovoAndamento; |
57 | import br.gov.ans.integracao.sei.modelo.NovoProcesso; | 58 | import br.gov.ans.integracao.sei.modelo.NovoProcesso; |
@@ -78,6 +79,9 @@ public class ProcessoResource { | @@ -78,6 +79,9 @@ public class ProcessoResource { | ||
78 | 79 | ||
79 | @Inject | 80 | @Inject |
80 | private DocumentoDAO documentoDAO; | 81 | private DocumentoDAO documentoDAO; |
82 | + | ||
83 | + @Inject | ||
84 | + private UnidadeDAO unidadeDAO; | ||
81 | 85 | ||
82 | @Inject | 86 | @Inject |
83 | private SeiPortTypeProxy seiNativeService; | 87 | private SeiPortTypeProxy seiNativeService; |
@@ -1295,6 +1299,21 @@ public class ProcessoResource { | @@ -1295,6 +1299,21 @@ public class ProcessoResource { | ||
1295 | } | 1299 | } |
1296 | } | 1300 | } |
1297 | 1301 | ||
1302 | + @GET | ||
1303 | + @Path("/processos/{processo:\\d+}/unidades") | ||
1304 | + @Produces(MediaType.APPLICATION_JSON) | ||
1305 | + public Response consultarUnidadesProcesso(@PathParam("processo") String processo) throws Exception{ | ||
1306 | + String idProcedimento = consultarIdProcedimento(processo); | ||
1307 | + | ||
1308 | + List<Unidade> unidades = unidadeDAO.listarUnidadesProcesso(idProcedimento); | ||
1309 | + | ||
1310 | + if(unidades.isEmpty()){ | ||
1311 | + throw new ResourceNotFoundException(messages.getMessage("erro.nao.unidades.processo.aberto")); | ||
1312 | + } | ||
1313 | + | ||
1314 | + return Response.ok(unidades).build(); | ||
1315 | + } | ||
1316 | + | ||
1298 | public URI getResourcePath(String resourceId){ | 1317 | public URI getResourcePath(String resourceId){ |
1299 | UriBuilder builder = uriInfo.getAbsolutePathBuilder(); | 1318 | UriBuilder builder = uriInfo.getAbsolutePathBuilder(); |
1300 | 1319 |
src/main/java/br/gov/ans/utils/PDFUtil.java
@@ -16,10 +16,10 @@ public class PDFUtil { | @@ -16,10 +16,10 @@ public class PDFUtil { | ||
16 | tidy.setXHTML(true); | 16 | tidy.setXHTML(true); |
17 | 17 | ||
18 | Document document = tidy.parseDOM(new ByteArrayInputStream(bytes), null); | 18 | Document document = tidy.parseDOM(new ByteArrayInputStream(bytes), null); |
19 | - | 19 | + |
20 | ITextRenderer renderer = new ITextRenderer(); | 20 | ITextRenderer renderer = new ITextRenderer(); |
21 | renderer.setDocument(document, null); | 21 | renderer.setDocument(document, null); |
22 | - renderer.layout(); | 22 | + renderer.layout(); |
23 | 23 | ||
24 | ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); | 24 | ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); |
25 | renderer.createPDF(outputStream); | 25 | renderer.createPDF(outputStream); |
src/main/resources/messages.properties
@@ -30,6 +30,7 @@ erro.campos.obrigatorios.sobrestamento.processo = É necessário informar o número | @@ -30,6 +30,7 @@ erro.campos.obrigatorios.sobrestamento.processo = É necessário informar o número | ||
30 | erro.marcar.processo = Ocorreu um erro ao adicionar o marcador ao processo. | 30 | erro.marcar.processo = Ocorreu um erro ao adicionar o marcador ao processo. |
31 | erro.motivo.cancelamento.obrigatorio = É obrigatório informar o motivo do cancelamento. | 31 | erro.motivo.cancelamento.obrigatorio = É obrigatório informar o motivo do cancelamento. |
32 | erro.motivo.nao.infomado = Motivo não informado. | 32 | erro.motivo.nao.infomado = Motivo não informado. |
33 | +erro.nao.unidades.processo.aberto = Não há unidades onde o processo esteja aberto. | ||
33 | erro.nenhum.contato.encontrado = Nenhum contato encontrado. | 34 | erro.nenhum.contato.encontrado = Nenhum contato encontrado. |
34 | erro.nenhum.documento.encontrado.interessado = Nenhum documento foi encontrado para o interessado {0}. | 35 | erro.nenhum.documento.encontrado.interessado = Nenhum documento foi encontrado para o interessado {0}. |
35 | erro.nenhum.processo.encontrado.filtros = Nenhum processo encontrado para os filtros informados. | 36 | erro.nenhum.processo.encontrado.filtros = Nenhum processo encontrado para os filtros informados. |