Commit dc14e6943d0d1034fd177ea0e08ba1e5e1ebf97b
1 parent
3597c7de
Exists in
master
and in
1 other branch
Melhorias no tratamento de exceção, novo resource com serviços relacionados ao S…
…IPAR, algumas melhorias em serviços existentes e documentação.
Showing
26 changed files
with
781 additions
and
222 deletions
Show diff stats
.settings/org.eclipse.wst.common.component
| 1 | <?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0"> | 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.3"> | 2 | + <wb-module deploy-name="sei-broker-2.2"> |
| 3 | <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/> | 3 | <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/> |
| 4 | <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/> | 4 | <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/> |
| 5 | <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/> | 5 | <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/> |
src/main/java/br/gov/ans/dao/DAO.java
| @@ -53,6 +53,10 @@ public class DAO<T> implements Serializable{ | @@ -53,6 +53,10 @@ public class DAO<T> implements Serializable{ | ||
| 53 | em.remove(em.merge(t)); | 53 | em.remove(em.merge(t)); |
| 54 | } | 54 | } |
| 55 | 55 | ||
| 56 | + public T findById(Serializable id){ | ||
| 57 | + return (T)em.find(classe, id); | ||
| 58 | + } | ||
| 59 | + | ||
| 56 | @Transactional | 60 | @Transactional |
| 57 | @SuppressWarnings({ "unchecked", "rawtypes" }) | 61 | @SuppressWarnings({ "unchecked", "rawtypes" }) |
| 58 | public Long count() { | 62 | public Long count() { |
src/main/java/br/gov/ans/exceptions/ResourceConflictException.java
0 → 100644
| @@ -0,0 +1,23 @@ | @@ -0,0 +1,23 @@ | ||
| 1 | +package br.gov.ans.exceptions; | ||
| 2 | + | ||
| 3 | +import javax.ejb.ApplicationException; | ||
| 4 | + | ||
| 5 | +@ApplicationException | ||
| 6 | +public class ResourceConflictException extends Exception{ | ||
| 7 | + | ||
| 8 | + private static final long serialVersionUID = 1L; | ||
| 9 | + | ||
| 10 | + private String message; | ||
| 11 | + | ||
| 12 | + public ResourceConflictException(String message) { | ||
| 13 | + this.message = message; | ||
| 14 | + } | ||
| 15 | + | ||
| 16 | + public String getMessage() { | ||
| 17 | + return message; | ||
| 18 | + } | ||
| 19 | + | ||
| 20 | + public void setMessage(String message) { | ||
| 21 | + this.message = message; | ||
| 22 | + } | ||
| 23 | +} |
src/main/java/br/gov/ans/exceptions/handlers/EJBExceptionHandler.java
0 → 100644
| @@ -0,0 +1,40 @@ | @@ -0,0 +1,40 @@ | ||
| 1 | +package br.gov.ans.exceptions.handlers; | ||
| 2 | + | ||
| 3 | +import static br.gov.ans.utils.HttpHeadersUtil.getAcceptType; | ||
| 4 | + | ||
| 5 | +import javax.ejb.EJBException; | ||
| 6 | +import javax.inject.Inject; | ||
| 7 | +import javax.ws.rs.core.Context; | ||
| 8 | +import javax.ws.rs.core.HttpHeaders; | ||
| 9 | +import javax.ws.rs.core.Response; | ||
| 10 | +import javax.ws.rs.core.Response.Status; | ||
| 11 | +import javax.ws.rs.ext.ExceptionMapper; | ||
| 12 | +import javax.ws.rs.ext.Provider; | ||
| 13 | + | ||
| 14 | +import org.jboss.logging.Logger; | ||
| 15 | + | ||
| 16 | +import br.gov.ans.exceptions.ErrorMessage; | ||
| 17 | +import br.gov.ans.utils.MessageUtils; | ||
| 18 | + | ||
| 19 | +@Provider | ||
| 20 | +public class EJBExceptionHandler implements ExceptionMapper<EJBException>{ | ||
| 21 | + | ||
| 22 | + @Inject | ||
| 23 | + private Logger logger; | ||
| 24 | + | ||
| 25 | + @Context | ||
| 26 | + private HttpHeaders headers; | ||
| 27 | + | ||
| 28 | + @Inject | ||
| 29 | + private MessageUtils messages; | ||
| 30 | + | ||
| 31 | + public Response toResponse(EJBException ex) { | ||
| 32 | + logger.error(ex, ex); | ||
| 33 | + | ||
| 34 | + return Response.status(Status.INTERNAL_SERVER_ERROR) | ||
| 35 | + .entity(new ErrorMessage(messages.getMessage("erro.inesperado"),String.valueOf(Status.INTERNAL_SERVER_ERROR.getStatusCode()))) | ||
| 36 | + .type(getAcceptType(headers)) | ||
| 37 | + .build(); | ||
| 38 | + } | ||
| 39 | + | ||
| 40 | +} |
src/main/java/br/gov/ans/exceptions/handlers/PersistenceExceptionHandler.java
0 → 100644
| @@ -0,0 +1,40 @@ | @@ -0,0 +1,40 @@ | ||
| 1 | +package br.gov.ans.exceptions.handlers; | ||
| 2 | + | ||
| 3 | +import static br.gov.ans.utils.HttpHeadersUtil.getAcceptType; | ||
| 4 | + | ||
| 5 | +import javax.inject.Inject; | ||
| 6 | +import javax.persistence.PersistenceException; | ||
| 7 | +import javax.ws.rs.core.Context; | ||
| 8 | +import javax.ws.rs.core.HttpHeaders; | ||
| 9 | +import javax.ws.rs.core.Response; | ||
| 10 | +import javax.ws.rs.core.Response.Status; | ||
| 11 | +import javax.ws.rs.ext.ExceptionMapper; | ||
| 12 | +import javax.ws.rs.ext.Provider; | ||
| 13 | + | ||
| 14 | +import org.jboss.logging.Logger; | ||
| 15 | + | ||
| 16 | +import br.gov.ans.exceptions.ErrorMessage; | ||
| 17 | +import br.gov.ans.utils.MessageUtils; | ||
| 18 | + | ||
| 19 | +@Provider | ||
| 20 | +public class PersistenceExceptionHandler implements ExceptionMapper<PersistenceException>{ | ||
| 21 | + | ||
| 22 | + @Inject | ||
| 23 | + private Logger logger; | ||
| 24 | + | ||
| 25 | + @Context | ||
| 26 | + private HttpHeaders headers; | ||
| 27 | + | ||
| 28 | + @Inject | ||
| 29 | + private MessageUtils messages; | ||
| 30 | + | ||
| 31 | + public Response toResponse(PersistenceException ex) { | ||
| 32 | + logger.error(ex, ex); | ||
| 33 | + | ||
| 34 | + return Response.status(Status.INTERNAL_SERVER_ERROR) | ||
| 35 | + .entity(new ErrorMessage(messages.getMessage("erro.inesperado"),String.valueOf(Status.INTERNAL_SERVER_ERROR.getStatusCode()))) | ||
| 36 | + .type(getAcceptType(headers)) | ||
| 37 | + .build(); | ||
| 38 | + } | ||
| 39 | + | ||
| 40 | +} |
src/main/java/br/gov/ans/exceptions/handlers/ResourceConflictExceptionHandler.java
0 → 100644
| @@ -0,0 +1,35 @@ | @@ -0,0 +1,35 @@ | ||
| 1 | +package br.gov.ans.exceptions.handlers; | ||
| 2 | + | ||
| 3 | +import static br.gov.ans.utils.HttpHeadersUtil.getAcceptType; | ||
| 4 | + | ||
| 5 | +import javax.inject.Inject; | ||
| 6 | +import javax.ws.rs.core.Context; | ||
| 7 | +import javax.ws.rs.core.HttpHeaders; | ||
| 8 | +import javax.ws.rs.core.Response; | ||
| 9 | +import javax.ws.rs.core.Response.Status; | ||
| 10 | +import javax.ws.rs.ext.ExceptionMapper; | ||
| 11 | +import javax.ws.rs.ext.Provider; | ||
| 12 | + | ||
| 13 | +import org.jboss.logging.Logger; | ||
| 14 | + | ||
| 15 | +import br.gov.ans.exceptions.ErrorMessage; | ||
| 16 | +import br.gov.ans.exceptions.ResourceConflictException; | ||
| 17 | + | ||
| 18 | +@Provider | ||
| 19 | +public class ResourceConflictExceptionHandler implements ExceptionMapper<ResourceConflictException>{ | ||
| 20 | + | ||
| 21 | + @Inject | ||
| 22 | + private Logger logger; | ||
| 23 | + | ||
| 24 | + @Context | ||
| 25 | + private HttpHeaders headers; | ||
| 26 | + | ||
| 27 | + public Response toResponse(ResourceConflictException ex) { | ||
| 28 | + logger.error(ex, ex); | ||
| 29 | + | ||
| 30 | + return Response.status(Status.CONFLICT) | ||
| 31 | + .entity(new ErrorMessage(ex.getMessage(),String.valueOf(Status.CONFLICT.getStatusCode()))) | ||
| 32 | + .type(getAcceptType(headers)) | ||
| 33 | + .build(); | ||
| 34 | + } | ||
| 35 | +} |
src/main/java/br/gov/ans/integracao/sei/client/SeiPortTypeProxy.java
| @@ -336,25 +336,17 @@ public class SeiPortTypeProxy implements br.gov.ans.integracao.sei.client.SeiPor | @@ -336,25 +336,17 @@ public class SeiPortTypeProxy implements br.gov.ans.integracao.sei.client.SeiPor | ||
| 336 | identificacaoServico, idUnidade, idArquivoExtensao); | 336 | identificacaoServico, idUnidade, idArquivoExtensao); |
| 337 | } | 337 | } |
| 338 | 338 | ||
| 339 | - public java.lang.String enviarProcesso(java.lang.String siglaSistema, | ||
| 340 | - java.lang.String identificacaoServico, java.lang.String idUnidade, | ||
| 341 | - java.lang.String protocoloProcedimento, | ||
| 342 | - java.lang.String[] unidadesDestino, | ||
| 343 | - java.lang.String sinManterAbertoUnidade, | ||
| 344 | - java.lang.String sinRemoverAnotacao, | ||
| 345 | - java.lang.String sinEnviarEmailNotificacao, | ||
| 346 | - java.lang.String dataRetornoProgramado, | ||
| 347 | - java.lang.String diasRetornoProgramado, | ||
| 348 | - java.lang.String sinDiasUteisRetornoProgramado, | 339 | + public java.lang.String enviarProcesso(java.lang.String siglaSistema, java.lang.String identificacaoServico, |
| 340 | + java.lang.String idUnidade, java.lang.String protocoloProcedimento, java.lang.String[] unidadesDestino, | ||
| 341 | + java.lang.String sinManterAbertoUnidade, java.lang.String sinRemoverAnotacao, | ||
| 342 | + java.lang.String sinEnviarEmailNotificacao, java.lang.String dataRetornoProgramado, | ||
| 343 | + java.lang.String diasRetornoProgramado, java.lang.String sinDiasUteisRetornoProgramado, | ||
| 349 | java.lang.String sinReabrir) throws java.rmi.RemoteException { | 344 | java.lang.String sinReabrir) throws java.rmi.RemoteException { |
| 350 | if (seiPortType == null) | 345 | if (seiPortType == null) |
| 351 | _initSeiPortTypeProxy(); | 346 | _initSeiPortTypeProxy(); |
| 352 | - return seiPortType.enviarProcesso(siglaSistema, identificacaoServico, | ||
| 353 | - idUnidade, protocoloProcedimento, unidadesDestino, | ||
| 354 | - sinManterAbertoUnidade, sinRemoverAnotacao, | ||
| 355 | - sinEnviarEmailNotificacao, dataRetornoProgramado, | ||
| 356 | - diasRetornoProgramado, sinDiasUteisRetornoProgramado, | ||
| 357 | - sinReabrir); | 347 | + return seiPortType.enviarProcesso(siglaSistema, identificacaoServico, idUnidade, protocoloProcedimento, |
| 348 | + unidadesDestino, sinManterAbertoUnidade, sinRemoverAnotacao, sinEnviarEmailNotificacao, | ||
| 349 | + dataRetornoProgramado, diasRetornoProgramado, sinDiasUteisRetornoProgramado, sinReabrir); | ||
| 358 | } | 350 | } |
| 359 | 351 | ||
| 360 | public br.gov.ans.integracao.sei.client.Usuario[] listarUsuarios( | 352 | public br.gov.ans.integracao.sei.client.Usuario[] listarUsuarios( |
src/main/java/br/gov/ans/integracao/sei/dao/DocumentoSiparDAO.java
| @@ -1,33 +0,0 @@ | @@ -1,33 +0,0 @@ | ||
| 1 | -package br.gov.ans.integracao.sei.dao; | ||
| 2 | - | ||
| 3 | -import java.util.HashMap; | ||
| 4 | -import java.util.List; | ||
| 5 | -import java.util.Map; | ||
| 6 | - | ||
| 7 | -import javax.inject.Inject; | ||
| 8 | - | ||
| 9 | -import br.gov.ans.dao.DAO; | ||
| 10 | -import br.gov.ans.integracao.sei.modelo.DocumentoSipar; | ||
| 11 | - | ||
| 12 | -public class DocumentoSiparDAO { | ||
| 13 | - | ||
| 14 | - @SuppressWarnings("cdi-ambiguous-dependency") | ||
| 15 | - @Inject | ||
| 16 | - private DAO<DocumentoSipar> dao; | ||
| 17 | - | ||
| 18 | - public DocumentoSipar getDocumento(String numeroDocumento, String anoDocumento, String digitoDocumento){ | ||
| 19 | - | ||
| 20 | - Map<String, Object> params = new HashMap<String, Object>(); | ||
| 21 | - params.put("numeroDocumento", numeroDocumento); | ||
| 22 | - params.put("anoDocumento", anoDocumento); | ||
| 23 | - params.put("digitoDocumento", digitoDocumento); | ||
| 24 | - | ||
| 25 | - List<DocumentoSipar> resultado = dao.executeNamedQuery("documentoPorNumeroAnoDigito", params); | ||
| 26 | - | ||
| 27 | - if(resultado.isEmpty()){ | ||
| 28 | - return null; | ||
| 29 | - } | ||
| 30 | - | ||
| 31 | - return resultado.get(0); | ||
| 32 | - } | ||
| 33 | -} |
src/main/java/br/gov/ans/integracao/sei/dao/SiparDAO.java
0 → 100644
| @@ -0,0 +1,49 @@ | @@ -0,0 +1,49 @@ | ||
| 1 | +package br.gov.ans.integracao.sei.dao; | ||
| 2 | + | ||
| 3 | +import java.util.HashMap; | ||
| 4 | +import java.util.List; | ||
| 5 | +import java.util.Map; | ||
| 6 | + | ||
| 7 | +import javax.ejb.Stateless; | ||
| 8 | +import javax.inject.Inject; | ||
| 9 | + | ||
| 10 | +import br.gov.ans.dao.DAO; | ||
| 11 | +import br.gov.ans.integracao.sipar.dao.ControleMigracao; | ||
| 12 | +import br.gov.ans.integracao.sipar.dao.ControleMigracaoId; | ||
| 13 | +import br.gov.ans.integracao.sipar.dao.DocumentoSipar; | ||
| 14 | + | ||
| 15 | +@Stateless | ||
| 16 | +public class SiparDAO { | ||
| 17 | + | ||
| 18 | + @SuppressWarnings("cdi-ambiguous-dependency") | ||
| 19 | + @Inject | ||
| 20 | + private DAO<DocumentoSipar> daoDocumento; | ||
| 21 | + | ||
| 22 | + @Inject | ||
| 23 | + private DAO<ControleMigracao> daoMigracao; | ||
| 24 | + | ||
| 25 | + public DocumentoSipar getDocumento(String numeroDocumento, String anoDocumento, String digitoDocumento){ | ||
| 26 | + | ||
| 27 | + Map<String, Object> params = new HashMap<String, Object>(); | ||
| 28 | + params.put("numeroDocumento", numeroDocumento); | ||
| 29 | + params.put("anoDocumento", anoDocumento); | ||
| 30 | + params.put("digitoDocumento", digitoDocumento); | ||
| 31 | + | ||
| 32 | + List<DocumentoSipar> resultado = daoDocumento.executeNamedQuery("documentoPorNumeroAnoDigito", params); | ||
| 33 | + | ||
| 34 | + if(resultado.isEmpty()){ | ||
| 35 | + return null; | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + return resultado.get(0); | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + public ControleMigracao buscaProcessoImportado(ControleMigracaoId id){ | ||
| 42 | + return daoMigracao.findById(id); | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + public void merge(ControleMigracao controleMigracao){ | ||
| 46 | + daoMigracao.merge(controleMigracao); | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | +} |
src/main/java/br/gov/ans/integracao/sei/modelo/DocumentoSipar.java
| @@ -1,130 +0,0 @@ | @@ -1,130 +0,0 @@ | ||
| 1 | -package br.gov.ans.integracao.sei.modelo; | ||
| 2 | - | ||
| 3 | -import java.util.Date; | ||
| 4 | - | ||
| 5 | -import javax.persistence.Entity; | ||
| 6 | -import javax.persistence.EntityResult; | ||
| 7 | -import javax.persistence.FieldResult; | ||
| 8 | -import javax.persistence.Id; | ||
| 9 | -import javax.persistence.NamedNativeQuery; | ||
| 10 | -import javax.persistence.SqlResultSetMapping; | ||
| 11 | - | ||
| 12 | -@Entity | ||
| 13 | -@SqlResultSetMapping(name="DocumentoSiparMapping", entities={ | ||
| 14 | - @EntityResult(entityClass = DocumentoSipar.class, | ||
| 15 | - fields = { | ||
| 16 | - @FieldResult(name = "digito", column = "NU_DIGITO_DOCUMENTO"), | ||
| 17 | - @FieldResult(name = "operadora", column = "CO_OPERADORA"), | ||
| 18 | - @FieldResult(name = "emissao", column = "DT_EMISSAO_DOCUMENTO"), | ||
| 19 | - @FieldResult(name = "registro", column = "DT_REGISTRO"), | ||
| 20 | - @FieldResult(name = "tipo", column = "CO_TIPO_DOCUMENTO"), | ||
| 21 | - @FieldResult(name = "resumo", column = "DS_RESUMO_DOCUMENTO"), | ||
| 22 | - @FieldResult(name = "orgaoPosse", column = "CO_ORGAO_POSSE"), | ||
| 23 | - @FieldResult(name = "orgaoOrigem", column = "CO_ORGAO_ORIGEM"), | ||
| 24 | - @FieldResult(name = "orgaoRegistro", column = "CO_ORGAO_REGISTRO"), | ||
| 25 | - @FieldResult(name = "assunto", column = "CO_ASSUNTO") | ||
| 26 | - }) | ||
| 27 | -}) | ||
| 28 | -@NamedNativeQuery(name = "documentoPorNumeroAnoDigito", resultSetMapping = "DocumentoSiparMapping", | ||
| 29 | -query = "SELECT TB.NU_DIGITO_DOCUMENTO, TB.CO_OPERADORA, TB.DT_EMISSAO_DOCUMENTO, TB.DT_REGISTRO, TB.CO_TIPO_DOCUMENTO, " | ||
| 30 | - + "TB.DS_RESUMO_DOCUMENTO, TB.CO_ORGAO_POSSE, TB.CO_ORGAO_ORIGEM, TB.CO_ORGAO_REGISTRO, RL.CO_ASSUNTO " | ||
| 31 | - + "FROM DBPSIPAR.TB_DOCUMENTO TB " | ||
| 32 | - + "LEFT JOIN DBPSIPAR.RL_ASSUNTO_DOCUMENTO RL ON RL.CO_DOCUMENTO = TB.CO_SEQ_DOCUMENTO " | ||
| 33 | - + "AND RL.NU_ANO_DOCUMENTO = TB.NU_ANO_DOCUMENTO " | ||
| 34 | - + "WHERE TB.CO_SEQ_DOCUMENTO = :numeroDocumento " | ||
| 35 | - + "AND TB.NU_ANO_DOCUMENTO = :anoDocumento " | ||
| 36 | - + "AND TB.NU_DIGITO_DOCUMENTO = :digitoDocumento") | ||
| 37 | -public class DocumentoSipar { | ||
| 38 | - @Id | ||
| 39 | - private String digito; | ||
| 40 | - private String operadora; | ||
| 41 | - private Date emissao; | ||
| 42 | - private Date registro; | ||
| 43 | - private String tipo; | ||
| 44 | - private String resumo; | ||
| 45 | - private Long orgaoPosse; | ||
| 46 | - private Long orgaoOrigem; | ||
| 47 | - private Long orgaoRegistro; | ||
| 48 | - private Long assunto; | ||
| 49 | - | ||
| 50 | - public String getDigito() { | ||
| 51 | - return digito; | ||
| 52 | - } | ||
| 53 | - | ||
| 54 | - public void setDigito(String digito) { | ||
| 55 | - this.digito = digito; | ||
| 56 | - } | ||
| 57 | - | ||
| 58 | - public Long getAssunto() { | ||
| 59 | - return assunto; | ||
| 60 | - } | ||
| 61 | - | ||
| 62 | - public void setAssunto(Long assunto) { | ||
| 63 | - this.assunto = assunto; | ||
| 64 | - } | ||
| 65 | - | ||
| 66 | - public String getOperadora() { | ||
| 67 | - return operadora; | ||
| 68 | - } | ||
| 69 | - | ||
| 70 | - public void setOperadora(String operadora) { | ||
| 71 | - this.operadora = operadora; | ||
| 72 | - } | ||
| 73 | - | ||
| 74 | - public Date getEmissao() { | ||
| 75 | - return emissao; | ||
| 76 | - } | ||
| 77 | - | ||
| 78 | - public void setEmissao(Date emissao) { | ||
| 79 | - this.emissao = emissao; | ||
| 80 | - } | ||
| 81 | - | ||
| 82 | - public String getTipo() { | ||
| 83 | - return tipo; | ||
| 84 | - } | ||
| 85 | - | ||
| 86 | - public void setTipo(String tipo) { | ||
| 87 | - this.tipo = tipo; | ||
| 88 | - } | ||
| 89 | - | ||
| 90 | - public String getResumo() { | ||
| 91 | - return resumo; | ||
| 92 | - } | ||
| 93 | - | ||
| 94 | - public void setResumo(String resumo) { | ||
| 95 | - this.resumo = resumo; | ||
| 96 | - } | ||
| 97 | - | ||
| 98 | - public Long getOrgaoPosse() { | ||
| 99 | - return orgaoPosse; | ||
| 100 | - } | ||
| 101 | - | ||
| 102 | - public void setOrgaoPosse(Long orgaoPosse) { | ||
| 103 | - this.orgaoPosse = orgaoPosse; | ||
| 104 | - } | ||
| 105 | - | ||
| 106 | - public Long getOrgaoOrigem() { | ||
| 107 | - return orgaoOrigem; | ||
| 108 | - } | ||
| 109 | - | ||
| 110 | - public void setOrgaoOrigem(Long orgaoOrigem) { | ||
| 111 | - this.orgaoOrigem = orgaoOrigem; | ||
| 112 | - } | ||
| 113 | - | ||
| 114 | - public Long getOrgaoRegistro() { | ||
| 115 | - return orgaoRegistro; | ||
| 116 | - } | ||
| 117 | - | ||
| 118 | - public void setOrgaoRegistro(Long orgaoRegistro) { | ||
| 119 | - this.orgaoRegistro = orgaoRegistro; | ||
| 120 | - } | ||
| 121 | - | ||
| 122 | - public Date getRegistro() { | ||
| 123 | - return registro; | ||
| 124 | - } | ||
| 125 | - | ||
| 126 | - public void setRegistro(Date registro) { | ||
| 127 | - this.registro = registro; | ||
| 128 | - } | ||
| 129 | - | ||
| 130 | -} |
src/main/java/br/gov/ans/integracao/sei/modelo/ResultadoConsultaDocumento.java
| @@ -3,6 +3,7 @@ package br.gov.ans.integracao.sei.modelo; | @@ -3,6 +3,7 @@ package br.gov.ans.integracao.sei.modelo; | ||
| 3 | import javax.xml.bind.annotation.XmlRootElement; | 3 | import javax.xml.bind.annotation.XmlRootElement; |
| 4 | 4 | ||
| 5 | import br.gov.ans.integracao.sei.client.RetornoConsultaDocumento; | 5 | import br.gov.ans.integracao.sei.client.RetornoConsultaDocumento; |
| 6 | +import br.gov.ans.integracao.sipar.dao.DocumentoSipar; | ||
| 6 | 7 | ||
| 7 | @XmlRootElement | 8 | @XmlRootElement |
| 8 | public class ResultadoConsultaDocumento { | 9 | public class ResultadoConsultaDocumento { |
src/main/java/br/gov/ans/integracao/sei/modelo/ResultadoConsultaProcesso.java
| @@ -3,6 +3,7 @@ package br.gov.ans.integracao.sei.modelo; | @@ -3,6 +3,7 @@ package br.gov.ans.integracao.sei.modelo; | ||
| 3 | import javax.xml.bind.annotation.XmlRootElement; | 3 | import javax.xml.bind.annotation.XmlRootElement; |
| 4 | 4 | ||
| 5 | import br.gov.ans.integracao.sei.client.RetornoConsultaProcedimento; | 5 | import br.gov.ans.integracao.sei.client.RetornoConsultaProcedimento; |
| 6 | +import br.gov.ans.integracao.sipar.dao.DocumentoSipar; | ||
| 6 | 7 | ||
| 7 | @XmlRootElement | 8 | @XmlRootElement |
| 8 | public class ResultadoConsultaProcesso { | 9 | public class ResultadoConsultaProcesso { |
src/main/java/br/gov/ans/integracao/sei/modelo/Tipo.java
| @@ -8,8 +8,8 @@ import javax.persistence.SqlResultSetMapping; | @@ -8,8 +8,8 @@ import javax.persistence.SqlResultSetMapping; | ||
| 8 | import javax.xml.bind.annotation.XmlRootElement; | 8 | import javax.xml.bind.annotation.XmlRootElement; |
| 9 | 9 | ||
| 10 | @Entity | 10 | @Entity |
| 11 | -@SqlResultSetMapping(name = "TipoMapping", entities = { @EntityResult(entityClass = Tipo.class, fields = { | ||
| 12 | - @FieldResult(name = "codigo", column = "tipoCodigo"), @FieldResult(name = "nome", column = "tipoNome") }) }) | 11 | +//@SqlResultSetMapping(name = "TipoMapping", entities = { @EntityResult(entityClass = Tipo.class, fields = { |
| 12 | +// @FieldResult(name = "codigo", column = "tipoCodigo"), @FieldResult(name = "nome", column = "tipoNome") }) }) | ||
| 13 | @XmlRootElement | 13 | @XmlRootElement |
| 14 | public class Tipo { | 14 | public class Tipo { |
| 15 | @Id | 15 | @Id |
src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java
| @@ -47,10 +47,9 @@ import br.gov.ans.integracao.sei.client.RetornoGeracaoProcedimento; | @@ -47,10 +47,9 @@ 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.dao.DocumentoDAO; | 49 | import br.gov.ans.integracao.sei.dao.DocumentoDAO; |
| 50 | -import br.gov.ans.integracao.sei.dao.DocumentoSiparDAO; | 50 | +import br.gov.ans.integracao.sei.dao.SiparDAO; |
| 51 | import br.gov.ans.integracao.sei.dao.ProcessoDAO; | 51 | import br.gov.ans.integracao.sei.dao.ProcessoDAO; |
| 52 | import br.gov.ans.integracao.sei.modelo.DocumentoResumido; | 52 | import br.gov.ans.integracao.sei.modelo.DocumentoResumido; |
| 53 | -import br.gov.ans.integracao.sei.modelo.DocumentoSipar; | ||
| 54 | import br.gov.ans.integracao.sei.modelo.EnvioDeProcesso; | 53 | import br.gov.ans.integracao.sei.modelo.EnvioDeProcesso; |
| 55 | import br.gov.ans.integracao.sei.modelo.Motivo; | 54 | import br.gov.ans.integracao.sei.modelo.Motivo; |
| 56 | import br.gov.ans.integracao.sei.modelo.NovoAndamento; | 55 | import br.gov.ans.integracao.sei.modelo.NovoAndamento; |
| @@ -63,6 +62,7 @@ import br.gov.ans.integracao.sei.modelo.ProcessoResumido; | @@ -63,6 +62,7 @@ import br.gov.ans.integracao.sei.modelo.ProcessoResumido; | ||
| 63 | import br.gov.ans.integracao.sei.modelo.ResultadoConsultaProcesso; | 62 | import br.gov.ans.integracao.sei.modelo.ResultadoConsultaProcesso; |
| 64 | import br.gov.ans.integracao.sei.modelo.SobrestamentoProcesso; | 63 | import br.gov.ans.integracao.sei.modelo.SobrestamentoProcesso; |
| 65 | import br.gov.ans.integracao.sei.utils.Constantes; | 64 | import br.gov.ans.integracao.sei.utils.Constantes; |
| 65 | +import br.gov.ans.integracao.sipar.dao.DocumentoSipar; | ||
| 66 | import br.gov.ans.utils.MessageUtils; | 66 | import br.gov.ans.utils.MessageUtils; |
| 67 | 67 | ||
| 68 | 68 | ||
| @@ -70,7 +70,7 @@ import br.gov.ans.utils.MessageUtils; | @@ -70,7 +70,7 @@ import br.gov.ans.utils.MessageUtils; | ||
| 70 | public class ProcessoResource { | 70 | public class ProcessoResource { |
| 71 | 71 | ||
| 72 | @Inject | 72 | @Inject |
| 73 | - private DocumentoSiparDAO documentoSiparDAO; | 73 | + private SiparDAO documentoSiparDAO; |
| 74 | 74 | ||
| 75 | @Inject | 75 | @Inject |
| 76 | private ProcessoDAO processoDAO; | 76 | private ProcessoDAO processoDAO; |
src/main/java/br/gov/ans/integracao/sei/rest/SiparResource.java
0 → 100644
| @@ -0,0 +1,233 @@ | @@ -0,0 +1,233 @@ | ||
| 1 | +package br.gov.ans.integracao.sei.rest; | ||
| 2 | + | ||
| 3 | +import java.net.URI; | ||
| 4 | +import java.util.Date; | ||
| 5 | + | ||
| 6 | +import javax.inject.Inject; | ||
| 7 | +import javax.ws.rs.Consumes; | ||
| 8 | +import javax.ws.rs.DELETE; | ||
| 9 | +import javax.ws.rs.POST; | ||
| 10 | +import javax.ws.rs.Path; | ||
| 11 | +import javax.ws.rs.PathParam; | ||
| 12 | +import javax.ws.rs.core.Context; | ||
| 13 | +import javax.ws.rs.core.MediaType; | ||
| 14 | +import javax.ws.rs.core.Response; | ||
| 15 | +import javax.ws.rs.core.Response.Status; | ||
| 16 | +import javax.ws.rs.core.UriBuilder; | ||
| 17 | +import javax.ws.rs.core.UriInfo; | ||
| 18 | + | ||
| 19 | +import org.jboss.logging.Logger; | ||
| 20 | + | ||
| 21 | +import br.gov.ans.exceptions.BusinessException; | ||
| 22 | +import br.gov.ans.exceptions.ResourceConflictException; | ||
| 23 | +import br.gov.ans.exceptions.ResourceNotFoundException; | ||
| 24 | +import br.gov.ans.integracao.sei.dao.SiparDAO; | ||
| 25 | +import br.gov.ans.integracao.sipar.dao.ControleMigracao; | ||
| 26 | +import br.gov.ans.integracao.sipar.dao.ControleMigracaoId; | ||
| 27 | +import br.gov.ans.utils.MessageUtils; | ||
| 28 | + | ||
| 29 | +@Path("/sipar") | ||
| 30 | +public class SiparResource { | ||
| 31 | + | ||
| 32 | + @Inject | ||
| 33 | + private SiparDAO dao; | ||
| 34 | + | ||
| 35 | + @Inject | ||
| 36 | + private MessageUtils messages; | ||
| 37 | + | ||
| 38 | + @Inject | ||
| 39 | + private Logger logger; | ||
| 40 | + | ||
| 41 | + @Context | ||
| 42 | + private UriInfo uriInfo; | ||
| 43 | + | ||
| 44 | + private static int TRUE = 1; | ||
| 45 | + private static int FALSE = 0; | ||
| 46 | + | ||
| 47 | + /** | ||
| 48 | + * @api {put} /sipar/importados Importar Processo SIPAR | ||
| 49 | + * @apiName importarProcesso | ||
| 50 | + * @apiGroup SIPAR | ||
| 51 | + * @apiVersion 2.0.0 | ||
| 52 | + * | ||
| 53 | + * @apiDescription Marca um processo físico (SIPAR) como importado para um processo eletrônico (SEI). | ||
| 54 | + * | ||
| 55 | + * @apiParam (Path Parameter) {String} processo Número do processo físico existente no SIPAR contendo 17 dígitos e iniciado com 33902. Ex. 33902111111111111 | ||
| 56 | + * | ||
| 57 | + * @apiExample {curl} Exemplo de requisição: | ||
| 58 | + * curl -i http://<host>/sei-broker/service/sipar/importados | ||
| 59 | + * | ||
| 60 | + * @apiSuccessExample {json} Success-Response: | ||
| 61 | + * HTTP/1.1 204 No Content | ||
| 62 | + * | ||
| 63 | + * @apiErrorExample {json} Error-Response: | ||
| 64 | + * HTTP/1.1 500 Internal Server Error | ||
| 65 | + * { | ||
| 66 | + * "error":"Mensagem de erro." | ||
| 67 | + * "code":"código do erro" | ||
| 68 | + * } | ||
| 69 | + * | ||
| 70 | + * | ||
| 71 | + * @apiErrorExample {json} Error-Response: | ||
| 72 | + * HTTP/1.1 400 Bad Request | ||
| 73 | + * { | ||
| 74 | + * "error":"Mensagem de erro." | ||
| 75 | + * "code":"código do erro" | ||
| 76 | + * } | ||
| 77 | + * | ||
| 78 | + * | ||
| 79 | + * @apiErrorExample {json} Error-Response: | ||
| 80 | + * HTTP/1.1 409 Conflict | ||
| 81 | + * { | ||
| 82 | + * "error":"Mensagem de erro." | ||
| 83 | + * "code":"código do erro" | ||
| 84 | + * } | ||
| 85 | + */ | ||
| 86 | + @POST | ||
| 87 | + @Path("/importados") | ||
| 88 | + @Consumes({MediaType.TEXT_PLAIN}) | ||
| 89 | + public Response importarProcesso(String processo) throws Exception{ | ||
| 90 | + String numero, ano, digito; | ||
| 91 | + | ||
| 92 | + try{ | ||
| 93 | + numero = extraiNumero(processo); | ||
| 94 | + ano = extraiAno(processo); | ||
| 95 | + digito = extraiDigitoVerificador(processo); | ||
| 96 | + }catch(Exception ex){ | ||
| 97 | + logger.error(messages.getMessage("erro.numero.sipar"), ex); | ||
| 98 | + throw new BusinessException(messages.getMessage("erro.numero.sipar",processo)); | ||
| 99 | + } | ||
| 100 | + | ||
| 101 | + isProcessoSipar(numero, ano, digito); | ||
| 102 | + | ||
| 103 | + if(isProcessoImportado(numero, ano)){ | ||
| 104 | + throw new ResourceConflictException(messages.getMessage("erro.processo.sipar.importado",processo)); | ||
| 105 | + } | ||
| 106 | + | ||
| 107 | + importarProcesso(numero, ano); | ||
| 108 | + | ||
| 109 | + return Response.created(getResourcePath(processo)).build(); | ||
| 110 | + | ||
| 111 | + } | ||
| 112 | + | ||
| 113 | + /** | ||
| 114 | + * @api {put} /processos-fisicos/{processo}/desmigracao 2.Desmigra Processo | ||
| 115 | + * @apiName desmigra | ||
| 116 | + * @apiGroup SIPAR | ||
| 117 | + * @apiVersion 1.0.0 | ||
| 118 | + * | ||
| 119 | + * @apiDescription Desmigra um processo iniciado no SIPAR e transferido para o SEI, permitindo novamente a anexação e tramitação no SIPAR. | ||
| 120 | + * | ||
| 121 | + * @apiParam (Path Parameter) {String} processo Número do processo físico existente no SIPAR contendo 17 dígitos e iniciado com 33902. Ex. 33902111111111111 | ||
| 122 | + * | ||
| 123 | + * @apiExample {curl} Exemplo de requisição: | ||
| 124 | + * curl -i http://<host>/sipar-broker/service/processos-fisicos/33902111111111111/desmigracao | ||
| 125 | + * | ||
| 126 | + * @apiSuccessExample {json} Success-Response: | ||
| 127 | + * HTTP/1.1 204 No Content | ||
| 128 | + * | ||
| 129 | + * @apiErrorExample {json} Error-Response: | ||
| 130 | + * HTTP/1.1 500 Internal Server Error | ||
| 131 | + * { | ||
| 132 | + * "error":"Mensagem de erro." | ||
| 133 | + * "code":"código do erro" | ||
| 134 | + * } | ||
| 135 | + * | ||
| 136 | + * | ||
| 137 | + * @apiErrorExample {json} Error-Response: | ||
| 138 | + * HTTP/1.1 400 Bad Request | ||
| 139 | + * { | ||
| 140 | + * "error":"Mensagem de erro." | ||
| 141 | + * "code":"código do erro" | ||
| 142 | + * } | ||
| 143 | + * | ||
| 144 | + * | ||
| 145 | + * @apiErrorExample {json} Error-Response: | ||
| 146 | + * HTTP/1.1 409 Conflict | ||
| 147 | + * { | ||
| 148 | + * "error":"Mensagem de erro." | ||
| 149 | + * "code":"código do erro" | ||
| 150 | + * } | ||
| 151 | + */ | ||
| 152 | + @DELETE | ||
| 153 | + @Path("/importados/{processo:\\d+}") | ||
| 154 | + public Response cancelarImportacaoProcesso(@PathParam("processo") String processo) throws Exception{ | ||
| 155 | + String numero, ano, digito; | ||
| 156 | + | ||
| 157 | + try{ | ||
| 158 | + numero = extraiNumero(processo); | ||
| 159 | + ano = extraiAno(processo); | ||
| 160 | + digito = extraiDigitoVerificador(processo); | ||
| 161 | + }catch(Exception ex){ | ||
| 162 | + logger.error(messages.getMessage("erro.numero.sipar"), ex); | ||
| 163 | + throw new BusinessException(messages.getMessage("erro.numero.sipar",processo)); | ||
| 164 | + } | ||
| 165 | + | ||
| 166 | + if(!isProcessoImportado(numero, ano)){ | ||
| 167 | + throw new ResourceNotFoundException(messages.getMessage("erro.processo.nao.importado",processo)); | ||
| 168 | + } | ||
| 169 | + | ||
| 170 | + cancelarImportacaoProcesso(numero, ano); | ||
| 171 | + | ||
| 172 | + return Response.noContent().build(); | ||
| 173 | + | ||
| 174 | + } | ||
| 175 | + | ||
| 176 | + private void importarProcesso(String numeroDocumento, String anoDocumento){ | ||
| 177 | + ControleMigracao controle = new ControleMigracao(); | ||
| 178 | + controle.setId(getControleMigracaoID(numeroDocumento, anoDocumento)); | ||
| 179 | + controle.setMigrado(TRUE); | ||
| 180 | + controle.setDataUltimaAlteracao(new Date()); | ||
| 181 | + | ||
| 182 | + dao.merge(controle); | ||
| 183 | + } | ||
| 184 | + | ||
| 185 | + private void cancelarImportacaoProcesso(String numeroDocumento, String anoDocumento){ | ||
| 186 | + ControleMigracao controle = new ControleMigracao(); | ||
| 187 | + controle.setId(getControleMigracaoID(numeroDocumento, anoDocumento)); | ||
| 188 | + controle.setMigrado(FALSE); | ||
| 189 | + controle.setDataUltimaAlteracao(new Date()); | ||
| 190 | + | ||
| 191 | + dao.merge(controle); | ||
| 192 | + } | ||
| 193 | + | ||
| 194 | + private ControleMigracaoId getControleMigracaoID(String numeroDocumento, String anoDocumento){ | ||
| 195 | + return new ControleMigracaoId(numeroDocumento, anoDocumento); | ||
| 196 | + } | ||
| 197 | + | ||
| 198 | + private String extraiNumero(String processo) { | ||
| 199 | + return processo.substring(0,(processo.length() - 6)); | ||
| 200 | + } | ||
| 201 | + | ||
| 202 | + private String extraiAno(String processo) { | ||
| 203 | + return processo.substring((processo.length() - 6), (processo.length() - 2)); | ||
| 204 | + } | ||
| 205 | + | ||
| 206 | + private String extraiDigitoVerificador(String processo) { | ||
| 207 | + return processo.substring((processo.length() - 2), processo.length()); | ||
| 208 | + } | ||
| 209 | + | ||
| 210 | + public boolean isProcessoImportado(String numeroDocumento, String anoDocumento){ | ||
| 211 | + ControleMigracao processoMigrado = dao.buscaProcessoImportado(getControleMigracaoID(numeroDocumento, anoDocumento)); | ||
| 212 | + | ||
| 213 | + if(processoMigrado != null && processoMigrado.isProcessoMigrado()){ | ||
| 214 | + return true; | ||
| 215 | + } | ||
| 216 | + | ||
| 217 | + return false; | ||
| 218 | + } | ||
| 219 | + | ||
| 220 | + public void isProcessoSipar(String numeroDocumento, String anoDocumento, String digitoDocumento) throws ResourceNotFoundException{ | ||
| 221 | + if(dao.getDocumento(numeroDocumento, anoDocumento, digitoDocumento) == null){ | ||
| 222 | + throw new ResourceNotFoundException(messages.getMessage("erro.processo.nao.pertence.sipar")); | ||
| 223 | + } | ||
| 224 | + } | ||
| 225 | + | ||
| 226 | + public URI getResourcePath(String resourceId){ | ||
| 227 | + UriBuilder builder = uriInfo.getAbsolutePathBuilder(); | ||
| 228 | + | ||
| 229 | + builder.path(resourceId); | ||
| 230 | + | ||
| 231 | + return builder.build(); | ||
| 232 | + } | ||
| 233 | +} |
src/main/java/br/gov/ans/integracao/sei/rest/TipoConferenciaResource.java
| @@ -14,6 +14,7 @@ import br.gov.ans.integracao.sei.client.TipoConferencia; | @@ -14,6 +14,7 @@ import br.gov.ans.integracao.sei.client.TipoConferencia; | ||
| 14 | import br.gov.ans.integracao.sei.modelo.Operacao; | 14 | import br.gov.ans.integracao.sei.modelo.Operacao; |
| 15 | import br.gov.ans.integracao.sei.utils.Constantes; | 15 | import br.gov.ans.integracao.sei.utils.Constantes; |
| 16 | 16 | ||
| 17 | +@Path("/") | ||
| 17 | public class TipoConferenciaResource { | 18 | public class TipoConferenciaResource { |
| 18 | 19 | ||
| 19 | @Inject | 20 | @Inject |
src/main/java/br/gov/ans/integracao/sei/rest/UsuarioResource.java
| @@ -10,10 +10,10 @@ import java.util.List; | @@ -10,10 +10,10 @@ import java.util.List; | ||
| 10 | 10 | ||
| 11 | import javax.inject.Inject; | 11 | import javax.inject.Inject; |
| 12 | import javax.ws.rs.Consumes; | 12 | import javax.ws.rs.Consumes; |
| 13 | +import javax.ws.rs.DELETE; | ||
| 13 | import javax.ws.rs.GET; | 14 | import javax.ws.rs.GET; |
| 14 | import javax.ws.rs.NotFoundException; | 15 | import javax.ws.rs.NotFoundException; |
| 15 | import javax.ws.rs.POST; | 16 | import javax.ws.rs.POST; |
| 16 | -import javax.ws.rs.PUT; | ||
| 17 | import javax.ws.rs.Path; | 17 | import javax.ws.rs.Path; |
| 18 | import javax.ws.rs.PathParam; | 18 | import javax.ws.rs.PathParam; |
| 19 | import javax.ws.rs.Produces; | 19 | import javax.ws.rs.Produces; |
| @@ -49,7 +49,9 @@ public class UsuarioResource { | @@ -49,7 +49,9 @@ public class UsuarioResource { | ||
| 49 | * @apiName listarUsuarios | 49 | * @apiName listarUsuarios |
| 50 | * @apiGroup Usuario | 50 | * @apiGroup Usuario |
| 51 | * @apiVersion 2.0.0 | 51 | * @apiVersion 2.0.0 |
| 52 | - * | 52 | + * |
| 53 | + * @apiPermission RO_SEI_BROKER | ||
| 54 | + * | ||
| 53 | * @apiDescription Este método realiza uma consulta aos usuários cadastrados que possuem o perfil "Básico". | 55 | * @apiDescription Este método realiza uma consulta aos usuários cadastrados que possuem o perfil "Básico". |
| 54 | * | 56 | * |
| 55 | * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. | 57 | * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. |
| @@ -81,7 +83,9 @@ public class UsuarioResource { | @@ -81,7 +83,9 @@ public class UsuarioResource { | ||
| 81 | * @apiName buscarUsuario | 83 | * @apiName buscarUsuario |
| 82 | * @apiGroup Usuario | 84 | * @apiGroup Usuario |
| 83 | * @apiVersion 2.0.0 | 85 | * @apiVersion 2.0.0 |
| 84 | - * | 86 | + * |
| 87 | + * @apiPermission RO_SEI_BROKER | ||
| 88 | + * | ||
| 85 | * @apiDescription Este método realiza a uma busca pelo login do usuário. | 89 | * @apiDescription Este método realiza a uma busca pelo login do usuário. |
| 86 | * | 90 | * |
| 87 | * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. | 91 | * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI. |
| @@ -111,7 +115,9 @@ public class UsuarioResource { | @@ -111,7 +115,9 @@ public class UsuarioResource { | ||
| 111 | * @apiName atribuirProcesso | 115 | * @apiName atribuirProcesso |
| 112 | * @apiGroup Usuario | 116 | * @apiGroup Usuario |
| 113 | * @apiVersion 2.0.0 | 117 | * @apiVersion 2.0.0 |
| 114 | - * | 118 | + * |
| 119 | + * @apiPermission RO_SEI_BROKER | ||
| 120 | + * | ||
| 115 | * @apiDescription Este método atribui o processo a um usuário. | 121 | * @apiDescription Este método atribui o processo a um usuário. |
| 116 | * | 122 | * |
| 117 | * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI | 123 | * @apiParam (Path Parameters) {String} unidade Sigla da Unidade cadastrada no SEI |
| @@ -155,7 +161,9 @@ public class UsuarioResource { | @@ -155,7 +161,9 @@ public class UsuarioResource { | ||
| 155 | * @apiName incluirUsuario | 161 | * @apiName incluirUsuario |
| 156 | * @apiGroup Usuario | 162 | * @apiGroup Usuario |
| 157 | * @apiVersion 2.0.0 | 163 | * @apiVersion 2.0.0 |
| 158 | - * | 164 | + * |
| 165 | + * @apiPermission RO_SEI_BROKER_ADM | ||
| 166 | + * | ||
| 159 | * @apiDescription Este método realiza a inclusão de novos usuários ou alterarações nos usuários existentes. | 167 | * @apiDescription Este método realiza a inclusão de novos usuários ou alterarações nos usuários existentes. |
| 160 | * | 168 | * |
| 161 | * @apiParam (Request Body) {String} codigo Código que deseja atribuir ao usuário | 169 | * @apiParam (Request Body) {String} codigo Código que deseja atribuir ao usuário |
| @@ -191,11 +199,13 @@ public class UsuarioResource { | @@ -191,11 +199,13 @@ public class UsuarioResource { | ||
| 191 | 199 | ||
| 192 | 200 | ||
| 193 | /** | 201 | /** |
| 194 | - * @api {post} /usuarios/excluir Excluir usuário | 202 | + * @api {delete} /usuarios/:login Excluir usuário |
| 195 | * @apiName excluirUsuario | 203 | * @apiName excluirUsuario |
| 196 | * @apiGroup Usuario | 204 | * @apiGroup Usuario |
| 197 | * @apiVersion 2.0.0 | 205 | * @apiVersion 2.0.0 |
| 198 | - * | 206 | + * |
| 207 | + * @apiPermission RO_SEI_BROKER_ADM | ||
| 208 | + * | ||
| 199 | * @apiDescription Este método realiza a exclusão de usuários. | 209 | * @apiDescription Este método realiza a exclusão de usuários. |
| 200 | * | 210 | * |
| 201 | * @apiParam {String} codigo Código que deseja atribuir ao usuário | 211 | * @apiParam {String} codigo Código que deseja atribuir ao usuário |
| @@ -203,7 +213,7 @@ public class UsuarioResource { | @@ -203,7 +213,7 @@ public class UsuarioResource { | ||
| 203 | * @apiParam {String} login Login que será atribuído ao usuário | 213 | * @apiParam {String} login Login que será atribuído ao usuário |
| 204 | * | 214 | * |
| 205 | * @apiExample Exemplo de requisição: | 215 | * @apiExample Exemplo de requisição: |
| 206 | - * endpoint: http://<host>/sei-broker/service/usuarios/excluir | 216 | + * endpoint: [DELETE] http://<host>/sei-broker/service/usuarios/andre.guimaraes |
| 207 | * | 217 | * |
| 208 | * body: | 218 | * body: |
| 209 | * { | 219 | * { |
| @@ -221,21 +231,23 @@ public class UsuarioResource { | @@ -221,21 +231,23 @@ public class UsuarioResource { | ||
| 221 | * "code":"código do erro" | 231 | * "code":"código do erro" |
| 222 | * } | 232 | * } |
| 223 | */ | 233 | */ |
| 224 | - @POST | ||
| 225 | - @Path("/usuarios/excluir") | 234 | + @DELETE |
| 235 | + @Path("/usuarios/{login}") | ||
| 226 | @Consumes({MediaType.APPLICATION_JSON}) | 236 | @Consumes({MediaType.APPLICATION_JSON}) |
| 227 | @Produces(MediaType.APPLICATION_JSON) | 237 | @Produces(MediaType.APPLICATION_JSON) |
| 228 | - public Boolean excluirUsuario(Usuario usuario) throws Exception{ | 238 | + public Boolean excluirUsuario(@PathParam("login") String login,Usuario usuario) throws Exception{ |
| 229 | return manterUsuario(Acao.EXCLUIR, usuario); | 239 | return manterUsuario(Acao.EXCLUIR, usuario); |
| 230 | } | 240 | } |
| 231 | 241 | ||
| 232 | 242 | ||
| 233 | /** | 243 | /** |
| 234 | - * @api {put} /usuarios/desativar Desativar usuário | 244 | + * @api {delete} /usuarios/ativos Desativar usuário |
| 235 | * @apiName desativarUsuario | 245 | * @apiName desativarUsuario |
| 236 | * @apiGroup Usuario | 246 | * @apiGroup Usuario |
| 237 | * @apiVersion 2.0.0 | 247 | * @apiVersion 2.0.0 |
| 238 | - * | 248 | + * |
| 249 | + * @apiPermission RO_SEI_BROKER_ADM | ||
| 250 | + * | ||
| 239 | * @apiDescription Este método desativa usuários. | 251 | * @apiDescription Este método desativa usuários. |
| 240 | * | 252 | * |
| 241 | * @apiParam {String} codigo Código que deseja atribuir ao usuário | 253 | * @apiParam {String} codigo Código que deseja atribuir ao usuário |
| @@ -243,7 +255,7 @@ public class UsuarioResource { | @@ -243,7 +255,7 @@ public class UsuarioResource { | ||
| 243 | * @apiParam {String} login Login que será atribuído ao usuário | 255 | * @apiParam {String} login Login que será atribuído ao usuário |
| 244 | * | 256 | * |
| 245 | * @apiExample Exemplo de requisição: | 257 | * @apiExample Exemplo de requisição: |
| 246 | - * endpoint: http://<host>/sei-broker/service/usuarios/desativar | 258 | + * endpoint: [DELETE] http://<host>/sei-broker/service/usuarios/ativos/andre.guimaraes |
| 247 | * | 259 | * |
| 248 | * body: | 260 | * body: |
| 249 | * { | 261 | * { |
| @@ -261,21 +273,23 @@ public class UsuarioResource { | @@ -261,21 +273,23 @@ public class UsuarioResource { | ||
| 261 | * "code":"código do erro" | 273 | * "code":"código do erro" |
| 262 | * } | 274 | * } |
| 263 | */ | 275 | */ |
| 264 | - @PUT | ||
| 265 | - @Path("/usuarios/desativar") | 276 | + @DELETE |
| 277 | + @Path("/usuarios/ativos/{login}") | ||
| 266 | @Consumes({MediaType.APPLICATION_JSON}) | 278 | @Consumes({MediaType.APPLICATION_JSON}) |
| 267 | @Produces(MediaType.APPLICATION_JSON) | 279 | @Produces(MediaType.APPLICATION_JSON) |
| 268 | - public Boolean desativarUsuario(Usuario usuario) throws Exception{ | 280 | + public Boolean desativarUsuario(@PathParam("login") String login,Usuario usuario) throws Exception{ |
| 269 | return manterUsuario(Acao.DESATIVAR, usuario); | 281 | return manterUsuario(Acao.DESATIVAR, usuario); |
| 270 | } | 282 | } |
| 271 | 283 | ||
| 272 | 284 | ||
| 273 | /** | 285 | /** |
| 274 | - * @api {put} /usuarios/ativar Ativar usuário | 286 | + * @api {post} /usuarios/ativos Ativar usuário |
| 275 | * @apiName ativarUsuario | 287 | * @apiName ativarUsuario |
| 276 | * @apiGroup Usuario | 288 | * @apiGroup Usuario |
| 277 | * @apiVersion 2.0.0 | 289 | * @apiVersion 2.0.0 |
| 278 | - * | 290 | + * |
| 291 | + * @apiPermission RO_SEI_BROKER_ADM | ||
| 292 | + * | ||
| 279 | * @apiDescription Este método reativa usuários. | 293 | * @apiDescription Este método reativa usuários. |
| 280 | * | 294 | * |
| 281 | * @apiParam {String} codigo Código que deseja atribuir ao usuário | 295 | * @apiParam {String} codigo Código que deseja atribuir ao usuário |
| @@ -283,7 +297,7 @@ public class UsuarioResource { | @@ -283,7 +297,7 @@ public class UsuarioResource { | ||
| 283 | * @apiParam {String} login Login que será atribuído ao usuário | 297 | * @apiParam {String} login Login que será atribuído ao usuário |
| 284 | * | 298 | * |
| 285 | * @apiExample Exemplo de requisição: | 299 | * @apiExample Exemplo de requisição: |
| 286 | - * endpoint: http://<host>/sei-broker/service/usuarios/ativar | 300 | + * endpoint: http://<host>/sei-broker/service/usuarios/ativos |
| 287 | * | 301 | * |
| 288 | * body: | 302 | * body: |
| 289 | * { | 303 | * { |
| @@ -301,8 +315,8 @@ public class UsuarioResource { | @@ -301,8 +315,8 @@ public class UsuarioResource { | ||
| 301 | * "code":"código do erro" | 315 | * "code":"código do erro" |
| 302 | * } | 316 | * } |
| 303 | */ | 317 | */ |
| 304 | - @PUT | ||
| 305 | - @Path("/usuarios/ativar") | 318 | + @POST |
| 319 | + @Path("/usuarios/ativos") | ||
| 306 | @Consumes({MediaType.APPLICATION_JSON}) | 320 | @Consumes({MediaType.APPLICATION_JSON}) |
| 307 | @Produces(MediaType.APPLICATION_JSON) | 321 | @Produces(MediaType.APPLICATION_JSON) |
| 308 | public Boolean ativarUsuario(Usuario usuario) throws Exception{ | 322 | public Boolean ativarUsuario(Usuario usuario) throws Exception{ |
src/main/java/br/gov/ans/integracao/sipar/dao/ControleMigracao.java
0 → 100644
| @@ -0,0 +1,56 @@ | @@ -0,0 +1,56 @@ | ||
| 1 | +package br.gov.ans.integracao.sipar.dao; | ||
| 2 | + | ||
| 3 | +import java.io.Serializable; | ||
| 4 | +import java.util.Date; | ||
| 5 | + | ||
| 6 | +import javax.persistence.Column; | ||
| 7 | +import javax.persistence.EmbeddedId; | ||
| 8 | +import javax.persistence.Entity; | ||
| 9 | +import javax.persistence.Table; | ||
| 10 | +import javax.persistence.Temporal; | ||
| 11 | +import javax.persistence.TemporalType; | ||
| 12 | + | ||
| 13 | +@Entity | ||
| 14 | +@Table(schema="DBPSIPAR", name="TB_CONTROLE_MIGRACAO_SIPAR_SEI") | ||
| 15 | +public class ControleMigracao implements Serializable { | ||
| 16 | + | ||
| 17 | + private static final long serialVersionUID = 1L; | ||
| 18 | + | ||
| 19 | + @EmbeddedId | ||
| 20 | + private ControleMigracaoId id; | ||
| 21 | + | ||
| 22 | + @Temporal(TemporalType.TIMESTAMP) | ||
| 23 | + @Column(name = "DT_ULTIMA_ALTERACAO_CONTROLE") | ||
| 24 | + private Date dataUltimaAlteracao; | ||
| 25 | + | ||
| 26 | + @Column(name="LG_DOCUMENTO_MIGRACAO_SEI") | ||
| 27 | + private Integer migrado; | ||
| 28 | + | ||
| 29 | + public ControleMigracaoId getId() { | ||
| 30 | + return id; | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + public void setId(ControleMigracaoId id) { | ||
| 34 | + this.id = id; | ||
| 35 | + } | ||
| 36 | + | ||
| 37 | + public Date getDataUltimaAlteracao() { | ||
| 38 | + return dataUltimaAlteracao; | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + public void setDataUltimaAlteracao(Date dataUltimaAlteracao) { | ||
| 42 | + this.dataUltimaAlteracao = dataUltimaAlteracao; | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + public Integer getMigrado() { | ||
| 46 | + return migrado; | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + public void setMigrado(Integer migrado) { | ||
| 50 | + this.migrado = migrado; | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + public boolean isProcessoMigrado() { | ||
| 54 | + return this.migrado == 1 ? true : false; | ||
| 55 | + } | ||
| 56 | +} |
src/main/java/br/gov/ans/integracao/sipar/dao/ControleMigracaoId.java
0 → 100644
| @@ -0,0 +1,61 @@ | @@ -0,0 +1,61 @@ | ||
| 1 | +package br.gov.ans.integracao.sipar.dao; | ||
| 2 | + | ||
| 3 | +import java.io.Serializable; | ||
| 4 | + | ||
| 5 | +import javax.persistence.Column; | ||
| 6 | +import javax.persistence.Embeddable; | ||
| 7 | + | ||
| 8 | +@Embeddable | ||
| 9 | +public class ControleMigracaoId implements Serializable { | ||
| 10 | + | ||
| 11 | + private static final long serialVersionUID = 1L; | ||
| 12 | + | ||
| 13 | + @Column(name = "CD_SEQ_DOCUMENTO") | ||
| 14 | + private String numero; | ||
| 15 | + | ||
| 16 | + @Column(name = "NR_ANO_DOCUMENTO") | ||
| 17 | + private String ano; | ||
| 18 | + | ||
| 19 | + public ControleMigracaoId() { | ||
| 20 | + } | ||
| 21 | + | ||
| 22 | + public ControleMigracaoId(String numero, String ano) { | ||
| 23 | + this.numero = numero; | ||
| 24 | + this.ano = ano; | ||
| 25 | + } | ||
| 26 | + | ||
| 27 | + public String getNumero() { | ||
| 28 | + return numero; | ||
| 29 | + } | ||
| 30 | + | ||
| 31 | + public void setNumero(String numero) { | ||
| 32 | + this.numero = numero; | ||
| 33 | + } | ||
| 34 | + | ||
| 35 | + public String getAno() { | ||
| 36 | + return ano; | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + public void setAno(String ano) { | ||
| 40 | + this.ano = ano; | ||
| 41 | + } | ||
| 42 | + | ||
| 43 | + @Override | ||
| 44 | + public boolean equals(Object obj) { | ||
| 45 | + if (obj instanceof ControleMigracao) { | ||
| 46 | + ControleMigracao controleMigracao = (ControleMigracao) obj; | ||
| 47 | + return (this.numero != null && this.numero.equals(controleMigracao.getId().getNumero()) && | ||
| 48 | + this.ano != null && this.ano.equals(controleMigracao.getId().getAno())); | ||
| 49 | + } | ||
| 50 | + return false; | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + @Override | ||
| 54 | + public int hashCode() { | ||
| 55 | + final int numeroPrimo = 31; | ||
| 56 | + int resultado = 1; | ||
| 57 | + resultado = (numeroPrimo * resultado) + ((this.numero == null) ? 0 : this.numero.hashCode()); | ||
| 58 | + resultado = (numeroPrimo * resultado) + ((this.ano == null) ? 0 : this.ano.hashCode()); | ||
| 59 | + return resultado; | ||
| 60 | + } | ||
| 61 | +} |
src/main/java/br/gov/ans/integracao/sipar/dao/DocumentoSipar.java
0 → 100644
| @@ -0,0 +1,130 @@ | @@ -0,0 +1,130 @@ | ||
| 1 | +package br.gov.ans.integracao.sipar.dao; | ||
| 2 | + | ||
| 3 | +import java.util.Date; | ||
| 4 | + | ||
| 5 | +import javax.persistence.Entity; | ||
| 6 | +import javax.persistence.EntityResult; | ||
| 7 | +import javax.persistence.FieldResult; | ||
| 8 | +import javax.persistence.Id; | ||
| 9 | +import javax.persistence.NamedNativeQuery; | ||
| 10 | +import javax.persistence.SqlResultSetMapping; | ||
| 11 | + | ||
| 12 | +@Entity | ||
| 13 | +@SqlResultSetMapping(name="DocumentoSiparMapping", entities={ | ||
| 14 | + @EntityResult(entityClass = DocumentoSipar.class, | ||
| 15 | + fields = { | ||
| 16 | + @FieldResult(name = "digito", column = "NU_DIGITO_DOCUMENTO"), | ||
| 17 | + @FieldResult(name = "operadora", column = "CO_OPERADORA"), | ||
| 18 | + @FieldResult(name = "emissao", column = "DT_EMISSAO_DOCUMENTO"), | ||
| 19 | + @FieldResult(name = "registro", column = "DT_REGISTRO"), | ||
| 20 | + @FieldResult(name = "tipo", column = "CO_TIPO_DOCUMENTO"), | ||
| 21 | + @FieldResult(name = "resumo", column = "DS_RESUMO_DOCUMENTO"), | ||
| 22 | + @FieldResult(name = "orgaoPosse", column = "CO_ORGAO_POSSE"), | ||
| 23 | + @FieldResult(name = "orgaoOrigem", column = "CO_ORGAO_ORIGEM"), | ||
| 24 | + @FieldResult(name = "orgaoRegistro", column = "CO_ORGAO_REGISTRO"), | ||
| 25 | + @FieldResult(name = "assunto", column = "CO_ASSUNTO") | ||
| 26 | + }) | ||
| 27 | +}) | ||
| 28 | +@NamedNativeQuery(name = "documentoPorNumeroAnoDigito", resultSetMapping = "DocumentoSiparMapping", | ||
| 29 | +query = "SELECT TB.NU_DIGITO_DOCUMENTO, TB.CO_OPERADORA, TB.DT_EMISSAO_DOCUMENTO, TB.DT_REGISTRO, TB.CO_TIPO_DOCUMENTO, " | ||
| 30 | + + "TB.DS_RESUMO_DOCUMENTO, TB.CO_ORGAO_POSSE, TB.CO_ORGAO_ORIGEM, TB.CO_ORGAO_REGISTRO, RL.CO_ASSUNTO " | ||
| 31 | + + "FROM DBPSIPAR.TB_DOCUMENTO TB " | ||
| 32 | + + "LEFT JOIN DBPSIPAR.RL_ASSUNTO_DOCUMENTO RL ON RL.CO_DOCUMENTO = TB.CO_SEQ_DOCUMENTO " | ||
| 33 | + + "AND RL.NU_ANO_DOCUMENTO = TB.NU_ANO_DOCUMENTO " | ||
| 34 | + + "WHERE TB.CO_SEQ_DOCUMENTO = :numeroDocumento " | ||
| 35 | + + "AND TB.NU_ANO_DOCUMENTO = :anoDocumento " | ||
| 36 | + + "AND TB.NU_DIGITO_DOCUMENTO = :digitoDocumento") | ||
| 37 | +public class DocumentoSipar { | ||
| 38 | + @Id | ||
| 39 | + private String digito; | ||
| 40 | + private String operadora; | ||
| 41 | + private Date emissao; | ||
| 42 | + private Date registro; | ||
| 43 | + private String tipo; | ||
| 44 | + private String resumo; | ||
| 45 | + private Long orgaoPosse; | ||
| 46 | + private Long orgaoOrigem; | ||
| 47 | + private Long orgaoRegistro; | ||
| 48 | + private Long assunto; | ||
| 49 | + | ||
| 50 | + public String getDigito() { | ||
| 51 | + return digito; | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + public void setDigito(String digito) { | ||
| 55 | + this.digito = digito; | ||
| 56 | + } | ||
| 57 | + | ||
| 58 | + public Long getAssunto() { | ||
| 59 | + return assunto; | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + public void setAssunto(Long assunto) { | ||
| 63 | + this.assunto = assunto; | ||
| 64 | + } | ||
| 65 | + | ||
| 66 | + public String getOperadora() { | ||
| 67 | + return operadora; | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + public void setOperadora(String operadora) { | ||
| 71 | + this.operadora = operadora; | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + public Date getEmissao() { | ||
| 75 | + return emissao; | ||
| 76 | + } | ||
| 77 | + | ||
| 78 | + public void setEmissao(Date emissao) { | ||
| 79 | + this.emissao = emissao; | ||
| 80 | + } | ||
| 81 | + | ||
| 82 | + public String getTipo() { | ||
| 83 | + return tipo; | ||
| 84 | + } | ||
| 85 | + | ||
| 86 | + public void setTipo(String tipo) { | ||
| 87 | + this.tipo = tipo; | ||
| 88 | + } | ||
| 89 | + | ||
| 90 | + public String getResumo() { | ||
| 91 | + return resumo; | ||
| 92 | + } | ||
| 93 | + | ||
| 94 | + public void setResumo(String resumo) { | ||
| 95 | + this.resumo = resumo; | ||
| 96 | + } | ||
| 97 | + | ||
| 98 | + public Long getOrgaoPosse() { | ||
| 99 | + return orgaoPosse; | ||
| 100 | + } | ||
| 101 | + | ||
| 102 | + public void setOrgaoPosse(Long orgaoPosse) { | ||
| 103 | + this.orgaoPosse = orgaoPosse; | ||
| 104 | + } | ||
| 105 | + | ||
| 106 | + public Long getOrgaoOrigem() { | ||
| 107 | + return orgaoOrigem; | ||
| 108 | + } | ||
| 109 | + | ||
| 110 | + public void setOrgaoOrigem(Long orgaoOrigem) { | ||
| 111 | + this.orgaoOrigem = orgaoOrigem; | ||
| 112 | + } | ||
| 113 | + | ||
| 114 | + public Long getOrgaoRegistro() { | ||
| 115 | + return orgaoRegistro; | ||
| 116 | + } | ||
| 117 | + | ||
| 118 | + public void setOrgaoRegistro(Long orgaoRegistro) { | ||
| 119 | + this.orgaoRegistro = orgaoRegistro; | ||
| 120 | + } | ||
| 121 | + | ||
| 122 | + public Date getRegistro() { | ||
| 123 | + return registro; | ||
| 124 | + } | ||
| 125 | + | ||
| 126 | + public void setRegistro(Date registro) { | ||
| 127 | + this.registro = registro; | ||
| 128 | + } | ||
| 129 | + | ||
| 130 | +} |
src/main/resources/META-INF/persistence.xml
| @@ -7,7 +7,7 @@ | @@ -7,7 +7,7 @@ | ||
| 7 | 7 | ||
| 8 | <jta-data-source>jdbc/sei-broker</jta-data-source> | 8 | <jta-data-source>jdbc/sei-broker</jta-data-source> |
| 9 | 9 | ||
| 10 | - <class>br.gov.ans.integracao.sei.modelo.DocumentoSipar</class> | 10 | + <class>br.gov.ans.integracao.sipar.dao.DocumentoSipar</class> |
| 11 | <class>br.gov.ans.integracao.sei.modelo.InclusaoDocumento</class> | 11 | <class>br.gov.ans.integracao.sei.modelo.InclusaoDocumento</class> |
| 12 | <class>br.gov.ans.modelo.LogIntegracaoSistemica</class> | 12 | <class>br.gov.ans.modelo.LogIntegracaoSistemica</class> |
| 13 | 13 |
src/main/resources/messages.properties
| @@ -32,9 +32,12 @@ erro.persistir.confirmacao.inclusao.documento = Ocorreu um erro ao persistir a c | @@ -32,9 +32,12 @@ erro.persistir.confirmacao.inclusao.documento = Ocorreu um erro ao persistir a c | ||
| 32 | erro.processar.conteudo.json = Erro ao processar o conteudo JSON, verifique a formação do JSON e se o envio foi realizado em Base64. | 32 | erro.processar.conteudo.json = Erro ao processar o conteudo JSON, verifique a formação do JSON e se o envio foi realizado em Base64. |
| 33 | erro.processo.anexado.nao.infomado = Número do processo a anexar não informado. | 33 | erro.processo.anexado.nao.infomado = Número do processo a anexar não informado. |
| 34 | erro.processo.incluir.bloco = Não foi possivel incluir o processo no bloco. | 34 | erro.processo.incluir.bloco = Não foi possivel incluir o processo no bloco. |
| 35 | +erro.processo.nao.importado = O processo {0} não foi encontrado nos registros de importação. | ||
| 35 | erro.processo.nao.pertence.sei = O processo {0} não pertence ao SEI. | 36 | erro.processo.nao.pertence.sei = O processo {0} não pertence ao SEI. |
| 37 | +erro.processo.nao.pertence.sipar = O processo {0} não pertence ao SIPAR. | ||
| 36 | erro.processo.relacionado.nao.infomado = É necessário informar o número do processo relacionado. | 38 | erro.processo.relacionado.nao.infomado = É necessário informar o número do processo relacionado. |
| 37 | erro.processo.sem.documentos = Nenhum documento anexado ao processo {0}. | 39 | erro.processo.sem.documentos = Nenhum documento anexado ao processo {0}. |
| 40 | +erro.processo.sipar.importado = O processo {0} já foi importado para o SEI. | ||
| 38 | erro.registrar.exclusao.documento = Erro ao registrar a exclusão do documento {0}. | 41 | erro.registrar.exclusao.documento = Erro ao registrar a exclusão do documento {0}. |
| 39 | erro.registro.inclusao = Ocorreu um erro ao persistir o registro de inclusão. | 42 | erro.registro.inclusao = Ocorreu um erro ao persistir o registro de inclusão. |
| 40 | erro.relacionar.processo = Ocorreu um erro ao relacionar os processos. | 43 | erro.relacionar.processo = Ocorreu um erro ao relacionar os processos. |
src/test/java/br/gov/ans/integracao/sei/testes/Base64Decoder.java
| @@ -5,7 +5,7 @@ import org.apache.commons.codec.binary.Base64; | @@ -5,7 +5,7 @@ import org.apache.commons.codec.binary.Base64; | ||
| 5 | 5 | ||
| 6 | public class Base64Decoder { | 6 | public class Base64Decoder { |
| 7 | public static void main(String[] args) { | 7 | public static void main(String[] args) { |
| 8 | - String base64 = "eyJudW1lcm9Qcm9jZXNzbyI6IjMzOTEwMDAwMTIzMjAxNzkzIiwKInJhemFvU29jaWFsIjoiQU1JTCBBU1NJU1TKTkNJQSBNyURJQ0EgSU5URVJOQUNJT05BTCBTLkEuIiwKImNucGpPcGVyYWRvcmEiOiIyOTMwOTEyNzAwMDE3OSIsCiJudW1lcm9SZWdpc3Ryb0FucyI6IjMyNjMwNSIsCiJkYXRhUHJvdG9jb2xvIjoiMDEvMDIvMjAxNyIsCiJtZXNJbmljaW9BcGxpY2FjYW8iOiIwNS8yMDE3IiwKImFub0luaWNpb0FwbGljYWNhbyI6IjA0LzIwMTgifQo="; | 8 | + String base64 = "PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PlRFU1RFVEVTVEU8L2JvZHk+PC9odG1sPg=="; |
| 9 | 9 | ||
| 10 | System.out.println(new String(Base64.decodeBase64(base64))); | 10 | System.out.println(new String(Base64.decodeBase64(base64))); |
| 11 | } | 11 | } |
src/test/java/br/gov/ans/integracao/sei/testes/Base64Encoder.java
| 1 | package br.gov.ans.integracao.sei.testes; | 1 | package br.gov.ans.integracao.sei.testes; |
| 2 | 2 | ||
| 3 | +import java.io.File; | ||
| 4 | +import java.io.FileInputStream; | ||
| 5 | +import java.io.IOException; | ||
| 6 | + | ||
| 3 | import org.apache.commons.codec.binary.Base64; | 7 | import org.apache.commons.codec.binary.Base64; |
| 4 | 8 | ||
| 5 | public class Base64Encoder { | 9 | public class Base64Encoder { |
| 6 | 10 | ||
| 7 | - public static void main(String[] args) { | ||
| 8 | - String string = "{\"conteudo\":\"tentativa 1 
 tentativa 2 tentativa 3 \\r tentativa 4 \\n fim! \"}"; | ||
| 9 | - System.out.println(string); | ||
| 10 | - System.out.println(Base64.encodeBase64String(string.getBytes())); | 11 | + public static void main(String[] args) throws IOException { |
| 12 | + String string = "{\"content\":\"tentativa 1 
 tentativa 2 tentativa 3 \\r tentativa 4 \\n fim! <br> teste da tag \"}"; | ||
| 13 | + | ||
| 14 | +// System.out.println(string); | ||
| 15 | + | ||
| 16 | +// System.out.println(Base64.encodeBase64String(string.getBytes())); | ||
| 17 | + Base64Encoder encoder = new Base64Encoder(); | ||
| 18 | + | ||
| 19 | + System.out.println(encoder.getBase64("0693609.pdf")); | ||
| 20 | + System.out.println(encoder.getMD5("0693609.pdf")); | ||
| 21 | + System.out.println(Base64.encodeBase64String("{\"regAns\":\"363022\",\"razaoSocial\":\"BRADESCO SAUDE E ASSISTENCIA S.A\",\"emailCadop\":\"teste@teste.com\",\"nuCnpj\":\"0000000000\",\"noCargoRepr\":\"Diretor\",\"noRepresentante\":\"André Guimarães\",\"anoInicio\":\"2016\",\"anoFinal\":\"2017\",\"numeroDocumento\":\"00000000\"}".getBytes())); | ||
| 22 | + } | ||
| 23 | + | ||
| 24 | + public String getBase64(String arquivo){ | ||
| 25 | + ClassLoader classLoader = getClass().getClassLoader(); | ||
| 26 | + | ||
| 27 | + File file = new File(classLoader.getResource(arquivo).getFile()); | ||
| 28 | + | ||
| 29 | + byte[] bytes = new byte[(int) file.length()]; | ||
| 30 | + | ||
| 31 | + try { | ||
| 32 | + FileInputStream fileInputStream = new FileInputStream(file); | ||
| 33 | + fileInputStream.read(bytes); | ||
| 34 | + } catch (Exception e) { | ||
| 35 | + e.printStackTrace(); | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + return Base64.encodeBase64String(bytes); | ||
| 11 | } | 39 | } |
| 12 | 40 | ||
| 41 | + public String getMD5(String arquivo) throws IOException{ | ||
| 42 | + ClassLoader classLoader = getClass().getClassLoader(); | ||
| 43 | + FileInputStream fis = new FileInputStream(new File(classLoader.getResource(arquivo).getFile())); | ||
| 44 | + String md5 = org.apache.commons.codec.digest.DigestUtils.md5Hex(fis); | ||
| 45 | + fis.close(); | ||
| 46 | + | ||
| 47 | + return md5; | ||
| 48 | + } | ||
| 13 | } | 49 | } |
| 50 | + |
src/test/java/br/gov/ans/integracao/sei/testes/FunctionalTest.java
| @@ -6,8 +6,8 @@ import com.jayway.restassured.RestAssured; | @@ -6,8 +6,8 @@ import com.jayway.restassured.RestAssured; | ||
| 6 | 6 | ||
| 7 | public class FunctionalTest { | 7 | public class FunctionalTest { |
| 8 | 8 | ||
| 9 | - protected final String USUARIO = "desenv_integracao_sei"; | ||
| 10 | - protected final String SENHA = "integra_sei_2016"; | 9 | + protected final String USUARIO = "andre.guimaraes"; |
| 10 | + protected final String SENHA = "Merda de senha!"; | ||
| 11 | protected static final Boolean DESENVOLVIMENTO = false; | 11 | protected static final Boolean DESENVOLVIMENTO = false; |
| 12 | 12 | ||
| 13 | @BeforeClass | 13 | @BeforeClass |
src/test/java/br/gov/ans/integracao/sei/testes/SeiBrokerTest.java
| @@ -105,12 +105,12 @@ public class SeiBrokerTest extends FunctionalTest{ | @@ -105,12 +105,12 @@ public class SeiBrokerTest extends FunctionalTest{ | ||
| 105 | 105 | ||
| 106 | @Test | 106 | @Test |
| 107 | public void AG_consultarDocumentosPorInteressadosTest(){ | 107 | public void AG_consultarDocumentosPorInteressadosTest(){ |
| 108 | - given().auth().basic(USUARIO, SENHA).accept("application/json").when().get("/363022/documentos").then().statusCode(200); | 108 | + given().auth().basic(USUARIO, SENHA).accept("application/json").when().get("/interessados/363022/documentos").then().statusCode(200); |
| 109 | } | 109 | } |
| 110 | 110 | ||
| 111 | @Test | 111 | @Test |
| 112 | - public void AH_consultarProcessosPorInteressadosTest(){ | ||
| 113 | - given().auth().basic(USUARIO, SENHA).accept("application/json").when().get("/363022/processos").then().statusCode(200); | 112 | + public void AH_consultarProcessos(){ |
| 113 | + given().auth().basic(USUARIO, SENHA).accept("application/json").when().get("/processos").then().statusCode(200); | ||
| 114 | } | 114 | } |
| 115 | 115 | ||
| 116 | @Test | 116 | @Test |
| @@ -143,7 +143,7 @@ public class SeiBrokerTest extends FunctionalTest{ | @@ -143,7 +143,7 @@ public class SeiBrokerTest extends FunctionalTest{ | ||
| 143 | given().auth().basic(USUARIO, SENHA).accept("application/json").when().get("/unidades/cotec/codigo").then().statusCode(200); | 143 | given().auth().basic(USUARIO, SENHA).accept("application/json").when().get("/unidades/cotec/codigo").then().statusCode(200); |
| 144 | } | 144 | } |
| 145 | 145 | ||
| 146 | - @Test | 146 | +// @Test |
| 147 | public void AP_cancelarDocumentoTest(){ | 147 | public void AP_cancelarDocumentoTest(){ |
| 148 | given() | 148 | given() |
| 149 | .auth() | 149 | .auth() |
| @@ -381,7 +381,7 @@ public class SeiBrokerTest extends FunctionalTest{ | @@ -381,7 +381,7 @@ public class SeiBrokerTest extends FunctionalTest{ | ||
| 381 | response.then().statusCode(200); | 381 | response.then().statusCode(200); |
| 382 | } | 382 | } |
| 383 | 383 | ||
| 384 | -// @Test | 384 | +//// @Test |
| 385 | // public void BL_incluirDocumentoPorArquivoTest() { | 385 | // public void BL_incluirDocumentoPorArquivoTest() { |
| 386 | // Response response = given() | 386 | // Response response = given() |
| 387 | // .auth() | 387 | // .auth() |
| @@ -561,8 +561,10 @@ public class SeiBrokerTest extends FunctionalTest{ | @@ -561,8 +561,10 @@ public class SeiBrokerTest extends FunctionalTest{ | ||
| 561 | i.setNome("BRADESCO SAUDE E ASSISTENCIA S.A"); | 561 | i.setNome("BRADESCO SAUDE E ASSISTENCIA S.A"); |
| 562 | i.setSigla("363022"); | 562 | i.setSigla("363022"); |
| 563 | documento.setInteressados(new Interessado[]{i}); | 563 | documento.setInteressados(new Interessado[]{i}); |
| 564 | - | ||
| 565 | - documento.setConteudo(Base64.encodeBase64String("<BR><BR>Tendo em vista que o processo foi criado indevidamente pelo sistema de integração do ressarcimento ao SUS, considera-se encerrado o processo eletrônico, sendo vedada qualquer juntada de novos documentos eletrônicos por meio do SEI.<BR>".getBytes())); | 564 | + |
| 565 | + documento.setConteudo("PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PlRFU1RFVEVTVEU8L2JvZHk+PC9odG1sPg=="); | ||
| 566 | + | ||
| 567 | +// documento.setConteudo(Base64.encodeBase64String("<BR><BR>Tendo em vista que o processo foi criado indevidamente pelo sistema de integração do ressarcimento ao SUS, considera-se encerrado o processo eletrônico, sendo vedada qualquer juntada de novos documentos eletrônicos por meio do SEI.<BR>".getBytes())); | ||
| 566 | 568 | ||
| 567 | return documento; | 569 | return documento; |
| 568 | } | 570 | } |