Commit 8cca72681efe39b3601eef9cf5e7638350f88d50
1 parent
ca4ef3f8
Exists in
master
and in
1 other branch
Refatora serviço de consulta a processo
- Cria parâmetro que desabilita consulta ao SIPAR - Consulta ao SIPAR deixa de ser realizada caso processo exista no SEI - Move algumas classes para novos pacotes
Showing
14 changed files
with
428 additions
and
383 deletions
Show diff stats
src/main/java/br/gov/ans/integracao/sei/dao/SiparDAO.java
| @@ -1,80 +0,0 @@ | @@ -1,80 +0,0 @@ | ||
| 1 | -package br.gov.ans.integracao.sei.dao; | ||
| 2 | - | ||
| 3 | -import java.math.BigDecimal; | ||
| 4 | -import java.util.HashMap; | ||
| 5 | -import java.util.List; | ||
| 6 | -import java.util.Map; | ||
| 7 | - | ||
| 8 | -import javax.ejb.Stateful; | ||
| 9 | -import javax.inject.Inject; | ||
| 10 | -import javax.persistence.EntityManager; | ||
| 11 | -import javax.persistence.PersistenceContext; | ||
| 12 | -import javax.persistence.PersistenceContextType; | ||
| 13 | -import javax.persistence.Query; | ||
| 14 | - | ||
| 15 | -import br.gov.ans.dao.DAO; | ||
| 16 | -import br.gov.ans.integracao.sipar.dao.ControleMigracao; | ||
| 17 | -import br.gov.ans.integracao.sipar.dao.ControleMigracaoId; | ||
| 18 | -import br.gov.ans.integracao.sipar.dao.DocumentoSipar; | ||
| 19 | - | ||
| 20 | -@Stateful | ||
| 21 | -public class SiparDAO { | ||
| 22 | - | ||
| 23 | - @PersistenceContext(unitName = "sei_broker_pu", type = PersistenceContextType.EXTENDED) | ||
| 24 | - private EntityManager em; | ||
| 25 | - | ||
| 26 | - @SuppressWarnings("cdi-ambiguous-dependency") | ||
| 27 | - @Inject | ||
| 28 | - private DAO<DocumentoSipar> daoDocumento; | ||
| 29 | - | ||
| 30 | - @Inject | ||
| 31 | - private DAO<ControleMigracao> daoMigracao; | ||
| 32 | - | ||
| 33 | - public DocumentoSipar getDocumento(String numeroDocumento, String anoDocumento, String digitoDocumento){ | ||
| 34 | - | ||
| 35 | - Map<String, Object> params = new HashMap<String, Object>(); | ||
| 36 | - params.put("numeroDocumento", numeroDocumento); | ||
| 37 | - params.put("anoDocumento", anoDocumento); | ||
| 38 | - params.put("digitoDocumento", digitoDocumento); | ||
| 39 | - | ||
| 40 | - List<DocumentoSipar> resultado = daoDocumento.executeNamedQuery("documentoPorNumeroAnoDigito", params); | ||
| 41 | - | ||
| 42 | - if(resultado.isEmpty()){ | ||
| 43 | - return null; | ||
| 44 | - } | ||
| 45 | - | ||
| 46 | - return resultado.get(0); | ||
| 47 | - } | ||
| 48 | - | ||
| 49 | - public ControleMigracao buscaProcessoImportado(ControleMigracaoId id){ | ||
| 50 | - return daoMigracao.findById(id); | ||
| 51 | - } | ||
| 52 | - | ||
| 53 | - public boolean isProcessoEmTramitacao(String numero, String ano){ | ||
| 54 | - | ||
| 55 | - String sql = "SELECT count(*) FROM DBPSIPAR.TB_TRAMITACAO TR " | ||
| 56 | - + "WHERE " | ||
| 57 | - + "TR.DT_RECEBIMENTO IS NULL " | ||
| 58 | - + "AND TR.CO_DOCUMENTO = :numero " | ||
| 59 | - + "AND TR.NU_ANO_DOCUMENTO = :ano " | ||
| 60 | - + "AND TR.DT_ENVIO = (" | ||
| 61 | - + " SELECT MAX(TR2.DT_ENVIO) FROM DBPSIPAR.TB_TRAMITACAO TR2 WHERE TR2.CO_DOCUMENTO = :numero AND TR2.NU_ANO_DOCUMENTO = :ano" | ||
| 62 | - + ")"; | ||
| 63 | - | ||
| 64 | - Query query = em.createNativeQuery(sql); | ||
| 65 | - query.setParameter("numero", numero); | ||
| 66 | - query.setParameter("ano", ano); | ||
| 67 | - | ||
| 68 | - Long count = ((BigDecimal) query.getSingleResult()).longValue(); | ||
| 69 | - | ||
| 70 | - if(count > 0L){ | ||
| 71 | - return true; | ||
| 72 | - } | ||
| 73 | - return false; | ||
| 74 | - } | ||
| 75 | - | ||
| 76 | - public void merge(ControleMigracao controleMigracao){ | ||
| 77 | - daoMigracao.merge(controleMigracao); | ||
| 78 | - } | ||
| 79 | - | ||
| 80 | -} |
src/main/java/br/gov/ans/integracao/sei/modelo/ResultadoConsultaDocumento.java
| @@ -6,7 +6,7 @@ import org.codehaus.jackson.annotate.JsonIgnoreProperties; | @@ -6,7 +6,7 @@ import org.codehaus.jackson.annotate.JsonIgnoreProperties; | ||
| 6 | import org.codehaus.jackson.map.annotate.JsonSerialize; | 6 | import org.codehaus.jackson.map.annotate.JsonSerialize; |
| 7 | 7 | ||
| 8 | import br.gov.ans.integracao.sei.client.RetornoConsultaDocumento; | 8 | import br.gov.ans.integracao.sei.client.RetornoConsultaDocumento; |
| 9 | -import br.gov.ans.integracao.sipar.dao.DocumentoSipar; | 9 | +import br.gov.ans.integracao.sipar.modelo.DocumentoSipar; |
| 10 | 10 | ||
| 11 | @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) | 11 | @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) |
| 12 | @JsonIgnoreProperties(ignoreUnknown = true) | 12 | @JsonIgnoreProperties(ignoreUnknown = true) |
src/main/java/br/gov/ans/integracao/sei/modelo/ResultadoConsultaProcesso.java
| @@ -6,7 +6,7 @@ import org.codehaus.jackson.annotate.JsonIgnoreProperties; | @@ -6,7 +6,7 @@ import org.codehaus.jackson.annotate.JsonIgnoreProperties; | ||
| 6 | import org.codehaus.jackson.map.annotate.JsonSerialize; | 6 | import org.codehaus.jackson.map.annotate.JsonSerialize; |
| 7 | 7 | ||
| 8 | import br.gov.ans.integracao.sei.client.RetornoConsultaProcedimento; | 8 | import br.gov.ans.integracao.sei.client.RetornoConsultaProcedimento; |
| 9 | -import br.gov.ans.integracao.sipar.dao.DocumentoSipar; | 9 | +import br.gov.ans.integracao.sipar.modelo.DocumentoSipar; |
| 10 | 10 | ||
| 11 | @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) | 11 | @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) |
| 12 | @JsonIgnoreProperties(ignoreUnknown = true) | 12 | @JsonIgnoreProperties(ignoreUnknown = true) |
src/main/java/br/gov/ans/integracao/sei/rest/ProcessoResource.java
| @@ -46,7 +46,6 @@ import br.gov.ans.integracao.sei.client.TipoProcedimento; | @@ -46,7 +46,6 @@ import br.gov.ans.integracao.sei.client.TipoProcedimento; | ||
| 46 | import br.gov.ans.integracao.sei.client.Unidade; | 46 | import br.gov.ans.integracao.sei.client.Unidade; |
| 47 | import br.gov.ans.integracao.sei.dao.DocumentoDAO; | 47 | import br.gov.ans.integracao.sei.dao.DocumentoDAO; |
| 48 | import br.gov.ans.integracao.sei.dao.ProcessoDAO; | 48 | import br.gov.ans.integracao.sei.dao.ProcessoDAO; |
| 49 | -import br.gov.ans.integracao.sei.dao.SiparDAO; | ||
| 50 | import br.gov.ans.integracao.sei.dao.UnidadeDAO; | 49 | import br.gov.ans.integracao.sei.dao.UnidadeDAO; |
| 51 | import br.gov.ans.integracao.sei.exceptions.BusinessException; | 50 | import br.gov.ans.integracao.sei.exceptions.BusinessException; |
| 52 | import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; | 51 | import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; |
| @@ -63,15 +62,12 @@ import br.gov.ans.integracao.sei.modelo.ProcessoResumido; | @@ -63,15 +62,12 @@ 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; |
| 66 | -import br.gov.ans.integracao.sipar.dao.DocumentoSipar; | 65 | +import br.gov.ans.integracao.sipar.modelo.DocumentoSipar; |
| 67 | import br.gov.ans.utils.MessageUtils; | 66 | import br.gov.ans.utils.MessageUtils; |
| 68 | 67 | ||
| 69 | 68 | ||
| 70 | @Path("") | 69 | @Path("") |
| 71 | public class ProcessoResource { | 70 | public class ProcessoResource { |
| 72 | - | ||
| 73 | - @Inject | ||
| 74 | - private SiparDAO documentoSiparDAO; | ||
| 75 | 71 | ||
| 76 | @Inject | 72 | @Inject |
| 77 | private ProcessoDAO processoDAO; | 73 | private ProcessoDAO processoDAO; |
| @@ -87,7 +83,10 @@ public class ProcessoResource { | @@ -87,7 +83,10 @@ public class ProcessoResource { | ||
| 87 | 83 | ||
| 88 | @Inject | 84 | @Inject |
| 89 | private UnidadeResource unidadeResource; | 85 | private UnidadeResource unidadeResource; |
| 90 | - | 86 | + |
| 87 | + @Inject | ||
| 88 | + private SiparResource siparResource; | ||
| 89 | + | ||
| 91 | @Inject | 90 | @Inject |
| 92 | private MessageUtils messages; | 91 | private MessageUtils messages; |
| 93 | 92 | ||
| @@ -103,61 +102,74 @@ public class ProcessoResource { | @@ -103,61 +102,74 @@ public class ProcessoResource { | ||
| 103 | @GET | 102 | @GET |
| 104 | @Path("{unidade}/processos/{processo:\\d+}") | 103 | @Path("{unidade}/processos/{processo:\\d+}") |
| 105 | @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) | 104 | @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) |
| 106 | - public ResultadoConsultaProcesso consultarProcesso(@PathParam("unidade") String unidade, @PathParam("processo") String processo, | ||
| 107 | - @QueryParam("assuntos") String exibirAssuntos, @QueryParam("interessados") String exibirInteressados, @QueryParam("observacoes") String exibirObservacoes, | ||
| 108 | - @QueryParam("andamento") String exibirAndamento, @QueryParam("andamento-conclusao") String exibirAndamentoConclusao, @QueryParam("ultimo-andamento") String exibirUltimoAndamento, | ||
| 109 | - @QueryParam("unidades") String exibirUnidadesAberto, @QueryParam("relacionados") String exibirProcessosRelacionados, @QueryParam("anexados") String exibirProcessosAnexados, | ||
| 110 | - @QueryParam("auto-formatacao") String autoFormatar) throws Exception{ | 105 | + public Response ConsultarProcessoV2(@PathParam("unidade") String unidade, @PathParam("processo") String processo, |
| 106 | + @QueryParam("assuntos") String exibirAssuntos, @QueryParam("interessados") String exibirInteressados, | ||
| 107 | + @QueryParam("observacoes") String exibirObservacoes, @QueryParam("andamento") String exibirAndamento, | ||
| 108 | + @QueryParam("andamento-conclusao") String exibirAndamentoConclusao, | ||
| 109 | + @QueryParam("ultimo-andamento") String exibirUltimoAndamento, | ||
| 110 | + @QueryParam("unidades") String exibirUnidadesAberto, | ||
| 111 | + @QueryParam("relacionados") String exibirProcessosRelacionados, | ||
| 112 | + @QueryParam("anexados") String exibirProcessosAnexados, | ||
| 113 | + @QueryParam("auto-formatacao") String autoFormatar) throws RemoteException, Exception { | ||
| 114 | + | ||
| 115 | + if (Constantes.IS_CONSULTA_SIPAR_HABILITADA) { | ||
| 116 | + return Response.ok(consultarProcessoANS(unidade, processo, exibirAssuntos, exibirInteressados, | ||
| 117 | + exibirObservacoes, exibirAndamento, exibirAndamentoConclusao, exibirUltimoAndamento, | ||
| 118 | + exibirUnidadesAberto, exibirProcessosRelacionados, exibirProcessosAnexados, autoFormatar)).build(); | ||
| 119 | + } | ||
| 111 | 120 | ||
| 112 | - ResultadoConsultaProcesso resultado = null; | ||
| 113 | - | ||
| 114 | - RetornoConsultaProcedimento processoSEI = consultarProcessoSEI(unidade, processo, exibirAssuntos, exibirInteressados, exibirObservacoes, exibirAndamento, exibirAndamentoConclusao, | ||
| 115 | - exibirUltimoAndamento, exibirUnidadesAberto, exibirProcessosRelacionados, exibirProcessosAnexados, autoFormatar); | ||
| 116 | - | ||
| 117 | - DocumentoSipar processoSIPAR = consultarProcessoSIPAR(processo); | 121 | + return Response.ok(consultarProcessoSEI(unidade, processo, exibirAssuntos, exibirInteressados, |
| 122 | + exibirObservacoes, exibirAndamento, exibirAndamentoConclusao, exibirUltimoAndamento, | ||
| 123 | + exibirUnidadesAberto, exibirProcessosRelacionados, exibirProcessosAnexados)).build(); | ||
| 124 | + } | ||
| 125 | + | ||
| 126 | + public ResultadoConsultaProcesso consultarProcessoANS(String unidade, String processo, String exibirAssuntos, | ||
| 127 | + String exibirInteressados, String exibirObservacoes, String exibirAndamento, | ||
| 128 | + String exibirAndamentoConclusao, String exibirUltimoAndamento, String exibirUnidadesAberto, | ||
| 129 | + String exibirProcessosRelacionados, String exibirProcessosAnexados, String autoFormatar) throws Exception { | ||
| 118 | 130 | ||
| 119 | - if(processoSEI != null || processoSIPAR != null){ | ||
| 120 | - resultado = new ResultadoConsultaProcesso(); | ||
| 121 | - resultado.setSei(processoSEI); | ||
| 122 | - resultado.setSipar(processoSIPAR); | ||
| 123 | - }else{ | 131 | + ResultadoConsultaProcesso resultado = new ResultadoConsultaProcesso(); |
| 132 | + | ||
| 133 | + try{ | ||
| 134 | + resultado.setSei(consultarProcessoSEI(unidade, | ||
| 135 | + isAutoFormatar(autoFormatar) ? formatarNumeroProcesso(processo) : processo, exibirAssuntos, | ||
| 136 | + exibirInteressados, exibirObservacoes, exibirAndamento, exibirAndamentoConclusao, | ||
| 137 | + exibirUltimoAndamento, exibirUnidadesAberto, exibirProcessosRelacionados, exibirProcessosAnexados)); | ||
| 138 | + | ||
| 139 | + return resultado; | ||
| 140 | + }catch (AxisFault ex) { | ||
| 141 | + logger.error(ex); | ||
| 142 | + logger.debug(ex, ex); | ||
| 143 | + } | ||
| 144 | + | ||
| 145 | + resultado.setSipar(consultarProcessoSIPAR(processo)); | ||
| 146 | + | ||
| 147 | + if(resultado.getSei() == null && resultado.getSipar() == null){ | ||
| 124 | throw new ResourceNotFoundException(messages.getMessage("erro.processo.nao.encontrado", processo)); | 148 | throw new ResourceNotFoundException(messages.getMessage("erro.processo.nao.encontrado", processo)); |
| 125 | } | 149 | } |
| 126 | 150 | ||
| 127 | return resultado; | 151 | return resultado; |
| 128 | } | 152 | } |
| 129 | - | 153 | + |
| 130 | public RetornoConsultaProcedimento consultarProcessoSEI(String unidade, String processo, String exibirAssuntos, String exibirInteressados, | 154 | public RetornoConsultaProcedimento consultarProcessoSEI(String unidade, String processo, String exibirAssuntos, String exibirInteressados, |
| 131 | String exibirObservacoes, String exibirAndamento, String exibirAndamentoConclusao, String exibirUltimoAndamento, String exibirUnidadesAberto, | 155 | String exibirObservacoes, String exibirAndamento, String exibirAndamentoConclusao, String exibirUltimoAndamento, String exibirUnidadesAberto, |
| 132 | - String exibirProcessosRelacionados, String exibirProcessosAnexados, String autoFormatar) throws RemoteException, Exception{ | ||
| 133 | - if(isAutoFormatar(autoFormatar)){ | ||
| 134 | - processo = formatarNumeroProcesso(processo); | ||
| 135 | - } | ||
| 136 | - | ||
| 137 | - try{ | ||
| 138 | - return seiNativeService.consultarProcedimento(Constantes.SIGLA_SEI_BROKER, Constantes.CHAVE_IDENTIFICACAO, unidadeResource.consultarCodigo(unidade), processo, getSOuN(exibirAssuntos), | ||
| 139 | - getSOuN(exibirInteressados), getSOuN(exibirObservacoes), getSOuN(exibirAndamento), getSOuN(exibirAndamentoConclusao), getSOuN(exibirUltimoAndamento), getSOuN(exibirUnidadesAberto), | ||
| 140 | - getSOuN(exibirProcessosRelacionados), getSOuN(exibirProcessosAnexados)); | ||
| 141 | - }catch(AxisFault ex){ | ||
| 142 | - logger.error(ex); | ||
| 143 | - logger.debug(ex, ex); | ||
| 144 | - return null; | ||
| 145 | - } | 156 | + String exibirProcessosRelacionados, String exibirProcessosAnexados) throws RemoteException, Exception{ |
| 157 | + | ||
| 158 | + return seiNativeService.consultarProcedimento(Constantes.SIGLA_SEI_BROKER, Constantes.CHAVE_IDENTIFICACAO, unidadeResource.consultarCodigo(unidade), processo, getSOuN(exibirAssuntos), | ||
| 159 | + getSOuN(exibirInteressados), getSOuN(exibirObservacoes), getSOuN(exibirAndamento), getSOuN(exibirAndamentoConclusao), getSOuN(exibirUltimoAndamento), getSOuN(exibirUnidadesAberto), | ||
| 160 | + getSOuN(exibirProcessosRelacionados), getSOuN(exibirProcessosAnexados)); | ||
| 146 | } | 161 | } |
| 147 | - | 162 | + |
| 148 | public DocumentoSipar consultarProcessoSIPAR(String processo){ | 163 | public DocumentoSipar consultarProcessoSIPAR(String processo){ |
| 149 | - String documento, ano, digito; | ||
| 150 | - | ||
| 151 | - try{ | ||
| 152 | - documento = processo.substring(0,(processo.length() - 6)); | ||
| 153 | - ano = processo.substring((processo.length() - 6), (processo.length() - 2)); | ||
| 154 | - digito = processo.substring((processo.length() - 2), processo.length()); | ||
| 155 | - }catch(Exception e){ | ||
| 156 | - logger.error(messages.getMessage("erro.numero.sipar")); | ||
| 157 | - return null; | 164 | + DocumentoSipar documentoSipar = null; |
| 165 | + | ||
| 166 | + try { | ||
| 167 | + documentoSipar = siparResource.consultarProcesso(processo); | ||
| 168 | + } catch (BusinessException ex) { | ||
| 169 | + logger.error(ex); | ||
| 158 | } | 170 | } |
| 159 | 171 | ||
| 160 | - return documentoSiparDAO.getDocumento(documento, ano, digito); | 172 | + return documentoSipar; |
| 161 | } | 173 | } |
| 162 | 174 | ||
| 163 | @POST | 175 | @POST |
src/main/java/br/gov/ans/integracao/sei/rest/SiparResource.java
| @@ -6,9 +6,11 @@ import java.util.Date; | @@ -6,9 +6,11 @@ import java.util.Date; | ||
| 6 | import javax.inject.Inject; | 6 | import javax.inject.Inject; |
| 7 | import javax.ws.rs.Consumes; | 7 | import javax.ws.rs.Consumes; |
| 8 | import javax.ws.rs.DELETE; | 8 | import javax.ws.rs.DELETE; |
| 9 | +import javax.ws.rs.GET; | ||
| 9 | import javax.ws.rs.POST; | 10 | import javax.ws.rs.POST; |
| 10 | import javax.ws.rs.Path; | 11 | import javax.ws.rs.Path; |
| 11 | import javax.ws.rs.PathParam; | 12 | import javax.ws.rs.PathParam; |
| 13 | +import javax.ws.rs.Produces; | ||
| 12 | import javax.ws.rs.core.Context; | 14 | import javax.ws.rs.core.Context; |
| 13 | import javax.ws.rs.core.MediaType; | 15 | import javax.ws.rs.core.MediaType; |
| 14 | import javax.ws.rs.core.Response; | 16 | import javax.ws.rs.core.Response; |
| @@ -17,12 +19,13 @@ import javax.ws.rs.core.UriInfo; | @@ -17,12 +19,13 @@ import javax.ws.rs.core.UriInfo; | ||
| 17 | 19 | ||
| 18 | import org.jboss.logging.Logger; | 20 | import org.jboss.logging.Logger; |
| 19 | 21 | ||
| 20 | -import br.gov.ans.integracao.sei.dao.SiparDAO; | ||
| 21 | import br.gov.ans.integracao.sei.exceptions.BusinessException; | 22 | import br.gov.ans.integracao.sei.exceptions.BusinessException; |
| 22 | import br.gov.ans.integracao.sei.exceptions.ResourceConflictException; | 23 | import br.gov.ans.integracao.sei.exceptions.ResourceConflictException; |
| 23 | import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; | 24 | import br.gov.ans.integracao.sei.exceptions.ResourceNotFoundException; |
| 24 | -import br.gov.ans.integracao.sipar.dao.ControleMigracao; | ||
| 25 | -import br.gov.ans.integracao.sipar.dao.ControleMigracaoId; | 25 | +import br.gov.ans.integracao.sipar.dao.SiparDAO; |
| 26 | +import br.gov.ans.integracao.sipar.modelo.ControleMigracao; | ||
| 27 | +import br.gov.ans.integracao.sipar.modelo.ControleMigracaoId; | ||
| 28 | +import br.gov.ans.integracao.sipar.modelo.DocumentoSipar; | ||
| 26 | import br.gov.ans.utils.MessageUtils; | 29 | import br.gov.ans.utils.MessageUtils; |
| 27 | 30 | ||
| 28 | @Path("/sipar") | 31 | @Path("/sipar") |
| @@ -100,6 +103,35 @@ public class SiparResource { | @@ -100,6 +103,35 @@ public class SiparResource { | ||
| 100 | 103 | ||
| 101 | } | 104 | } |
| 102 | 105 | ||
| 106 | + @GET | ||
| 107 | + @Path("{processo:\\d+}") | ||
| 108 | + @Produces(MediaType.APPLICATION_JSON) | ||
| 109 | + public DocumentoSipar consultarProcessoSIPAR(@PathParam("processo") String processo) throws BusinessException, ResourceNotFoundException{ | ||
| 110 | + DocumentoSipar documento = consultarProcesso(processo); | ||
| 111 | + | ||
| 112 | + if(documento == null){ | ||
| 113 | + throw new ResourceNotFoundException(messages.getMessage("erro.processo.nao.encontrado", processo)); | ||
| 114 | + } | ||
| 115 | + | ||
| 116 | + return documento; | ||
| 117 | + } | ||
| 118 | + | ||
| 119 | + public DocumentoSipar consultarProcesso(String processo) throws BusinessException{ | ||
| 120 | + String numero, ano, digito; | ||
| 121 | + | ||
| 122 | + try{ | ||
| 123 | + numero = extraiNumero(processo); | ||
| 124 | + ano = extraiAno(processo); | ||
| 125 | + digito = extraiDigitoVerificador(processo); | ||
| 126 | + }catch(Exception ex){ | ||
| 127 | + logger.error(ex); | ||
| 128 | + | ||
| 129 | + throw new BusinessException(messages.getMessage("erro.numero.sipar",processo)); | ||
| 130 | + } | ||
| 131 | + | ||
| 132 | + return dao.getDocumento(numero, ano, digito); | ||
| 133 | + } | ||
| 134 | + | ||
| 103 | private void importarProcesso(String numeroDocumento, String anoDocumento){ | 135 | private void importarProcesso(String numeroDocumento, String anoDocumento){ |
| 104 | ControleMigracao controle = new ControleMigracao(); | 136 | ControleMigracao controle = new ControleMigracao(); |
| 105 | controle.setId(getControleMigracaoID(numeroDocumento, anoDocumento)); | 137 | controle.setId(getControleMigracaoID(numeroDocumento, anoDocumento)); |
src/main/java/br/gov/ans/integracao/sei/utils/Constantes.java
| @@ -15,10 +15,11 @@ public class Constantes { | @@ -15,10 +15,11 @@ public class Constantes { | ||
| 15 | public static final String CHAVE_IDENTIFICACAO = "REALIZAR_INTEGRACAO"; | 15 | public static final String CHAVE_IDENTIFICACAO = "REALIZAR_INTEGRACAO"; |
| 16 | public static final String CODIGO_BRASIL = "76"; | 16 | public static final String CODIGO_BRASIL = "76"; |
| 17 | public static final String CODIGO_ORGAO_ANS = "0"; | 17 | public static final String CODIGO_ORGAO_ANS = "0"; |
| 18 | - public static final String CONTENT_TYPE_HEADER_KEY= "Content-Type"; | 18 | + public static final String CONTENT_TYPE_HEADER_KEY= "Content-Type"; |
| 19 | public static final String DATE_PATTERN = "dd/MM/yyyy"; | 19 | public static final String DATE_PATTERN = "dd/MM/yyyy"; |
| 20 | public static final String DOCUMENTO_GERAL = "G"; | 20 | public static final String DOCUMENTO_GERAL = "G"; |
| 21 | public static final String DOCUMENTO_RECEBIDO = "R"; | 21 | public static final String DOCUMENTO_RECEBIDO = "R"; |
| 22 | + public static final boolean IS_CONSULTA_SIPAR_HABILITADA = true; | ||
| 22 | public static final String JBOSS_HOME = System.getProperty("jboss.home.dir"); | 23 | public static final String JBOSS_HOME = System.getProperty("jboss.home.dir"); |
| 23 | public static final String MASCARA_PROCESSO_17 = "#####.######/####-##"; | 24 | public static final String MASCARA_PROCESSO_17 = "#####.######/####-##"; |
| 24 | public static final String MASCARA_PROCESSO_21 = "#######.########/####-##"; | 25 | public static final String MASCARA_PROCESSO_21 = "#######.########/####-##"; |
src/main/java/br/gov/ans/integracao/sipar/dao/ControleMigracao.java
| @@ -1,56 +0,0 @@ | @@ -1,56 +0,0 @@ | ||
| 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
| @@ -1,61 +0,0 @@ | @@ -1,61 +0,0 @@ | ||
| 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 ControleMigracaoId) { | ||
| 46 | - ControleMigracaoId controleMigracao = (ControleMigracaoId) obj; | ||
| 47 | - return (this.numero != null && this.numero.equals(controleMigracao.getNumero()) && | ||
| 48 | - this.ano != null && this.ano.equals(controleMigracao.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
| @@ -1,131 +0,0 @@ | @@ -1,131 +0,0 @@ | ||
| 1 | -package br.gov.ans.integracao.sipar.dao; | ||
| 2 | - | ||
| 3 | -import java.io.Serializable; | ||
| 4 | -import java.util.Date; | ||
| 5 | - | ||
| 6 | -import javax.persistence.Entity; | ||
| 7 | -import javax.persistence.EntityResult; | ||
| 8 | -import javax.persistence.FieldResult; | ||
| 9 | -import javax.persistence.Id; | ||
| 10 | -import javax.persistence.NamedNativeQuery; | ||
| 11 | -import javax.persistence.SqlResultSetMapping; | ||
| 12 | - | ||
| 13 | -@Entity | ||
| 14 | -@SqlResultSetMapping(name="DocumentoSiparMapping", entities={ | ||
| 15 | - @EntityResult(entityClass = DocumentoSipar.class, | ||
| 16 | - fields = { | ||
| 17 | - @FieldResult(name = "digito", column = "NU_DIGITO_DOCUMENTO"), | ||
| 18 | - @FieldResult(name = "operadora", column = "CO_OPERADORA"), | ||
| 19 | - @FieldResult(name = "emissao", column = "DT_EMISSAO_DOCUMENTO"), | ||
| 20 | - @FieldResult(name = "registro", column = "DT_REGISTRO"), | ||
| 21 | - @FieldResult(name = "tipo", column = "CO_TIPO_DOCUMENTO"), | ||
| 22 | - @FieldResult(name = "resumo", column = "DS_RESUMO_DOCUMENTO"), | ||
| 23 | - @FieldResult(name = "orgaoPosse", column = "CO_ORGAO_POSSE"), | ||
| 24 | - @FieldResult(name = "orgaoOrigem", column = "CO_ORGAO_ORIGEM"), | ||
| 25 | - @FieldResult(name = "orgaoRegistro", column = "CO_ORGAO_REGISTRO"), | ||
| 26 | - @FieldResult(name = "assunto", column = "CO_ASSUNTO") | ||
| 27 | - }) | ||
| 28 | -}) | ||
| 29 | -@NamedNativeQuery(name = "documentoPorNumeroAnoDigito", resultSetMapping = "DocumentoSiparMapping", | ||
| 30 | -query = "SELECT TB.NU_DIGITO_DOCUMENTO, TB.CO_OPERADORA, TB.DT_EMISSAO_DOCUMENTO, TB.DT_REGISTRO, TB.CO_TIPO_DOCUMENTO, " | ||
| 31 | - + "TB.DS_RESUMO_DOCUMENTO, TB.CO_ORGAO_POSSE, TB.CO_ORGAO_ORIGEM, TB.CO_ORGAO_REGISTRO, RL.CO_ASSUNTO " | ||
| 32 | - + "FROM DBPSIPAR.TB_DOCUMENTO TB " | ||
| 33 | - + "LEFT JOIN DBPSIPAR.RL_ASSUNTO_DOCUMENTO RL ON RL.CO_DOCUMENTO = TB.CO_SEQ_DOCUMENTO " | ||
| 34 | - + "AND RL.NU_ANO_DOCUMENTO = TB.NU_ANO_DOCUMENTO " | ||
| 35 | - + "WHERE TB.CO_SEQ_DOCUMENTO = :numeroDocumento " | ||
| 36 | - + "AND TB.NU_ANO_DOCUMENTO = :anoDocumento " | ||
| 37 | - + "AND TB.NU_DIGITO_DOCUMENTO = :digitoDocumento") | ||
| 38 | -public class DocumentoSipar implements Serializable{ | ||
| 39 | - @Id | ||
| 40 | - private String digito; | ||
| 41 | - private String operadora; | ||
| 42 | - private Date emissao; | ||
| 43 | - private Date registro; | ||
| 44 | - private String tipo; | ||
| 45 | - private String resumo; | ||
| 46 | - private Long orgaoPosse; | ||
| 47 | - private Long orgaoOrigem; | ||
| 48 | - private Long orgaoRegistro; | ||
| 49 | - private Long assunto; | ||
| 50 | - | ||
| 51 | - public String getDigito() { | ||
| 52 | - return digito; | ||
| 53 | - } | ||
| 54 | - | ||
| 55 | - public void setDigito(String digito) { | ||
| 56 | - this.digito = digito; | ||
| 57 | - } | ||
| 58 | - | ||
| 59 | - public Long getAssunto() { | ||
| 60 | - return assunto; | ||
| 61 | - } | ||
| 62 | - | ||
| 63 | - public void setAssunto(Long assunto) { | ||
| 64 | - this.assunto = assunto; | ||
| 65 | - } | ||
| 66 | - | ||
| 67 | - public String getOperadora() { | ||
| 68 | - return operadora; | ||
| 69 | - } | ||
| 70 | - | ||
| 71 | - public void setOperadora(String operadora) { | ||
| 72 | - this.operadora = operadora; | ||
| 73 | - } | ||
| 74 | - | ||
| 75 | - public Date getEmissao() { | ||
| 76 | - return emissao; | ||
| 77 | - } | ||
| 78 | - | ||
| 79 | - public void setEmissao(Date emissao) { | ||
| 80 | - this.emissao = emissao; | ||
| 81 | - } | ||
| 82 | - | ||
| 83 | - public String getTipo() { | ||
| 84 | - return tipo; | ||
| 85 | - } | ||
| 86 | - | ||
| 87 | - public void setTipo(String tipo) { | ||
| 88 | - this.tipo = tipo; | ||
| 89 | - } | ||
| 90 | - | ||
| 91 | - public String getResumo() { | ||
| 92 | - return resumo; | ||
| 93 | - } | ||
| 94 | - | ||
| 95 | - public void setResumo(String resumo) { | ||
| 96 | - this.resumo = resumo; | ||
| 97 | - } | ||
| 98 | - | ||
| 99 | - public Long getOrgaoPosse() { | ||
| 100 | - return orgaoPosse; | ||
| 101 | - } | ||
| 102 | - | ||
| 103 | - public void setOrgaoPosse(Long orgaoPosse) { | ||
| 104 | - this.orgaoPosse = orgaoPosse; | ||
| 105 | - } | ||
| 106 | - | ||
| 107 | - public Long getOrgaoOrigem() { | ||
| 108 | - return orgaoOrigem; | ||
| 109 | - } | ||
| 110 | - | ||
| 111 | - public void setOrgaoOrigem(Long orgaoOrigem) { | ||
| 112 | - this.orgaoOrigem = orgaoOrigem; | ||
| 113 | - } | ||
| 114 | - | ||
| 115 | - public Long getOrgaoRegistro() { | ||
| 116 | - return orgaoRegistro; | ||
| 117 | - } | ||
| 118 | - | ||
| 119 | - public void setOrgaoRegistro(Long orgaoRegistro) { | ||
| 120 | - this.orgaoRegistro = orgaoRegistro; | ||
| 121 | - } | ||
| 122 | - | ||
| 123 | - public Date getRegistro() { | ||
| 124 | - return registro; | ||
| 125 | - } | ||
| 126 | - | ||
| 127 | - public void setRegistro(Date registro) { | ||
| 128 | - this.registro = registro; | ||
| 129 | - } | ||
| 130 | - | ||
| 131 | -} |
src/main/java/br/gov/ans/integracao/sipar/dao/SiparDAO.java
0 → 100644
| @@ -0,0 +1,80 @@ | @@ -0,0 +1,80 @@ | ||
| 1 | +package br.gov.ans.integracao.sipar.dao; | ||
| 2 | + | ||
| 3 | +import java.math.BigDecimal; | ||
| 4 | +import java.util.HashMap; | ||
| 5 | +import java.util.List; | ||
| 6 | +import java.util.Map; | ||
| 7 | + | ||
| 8 | +import javax.ejb.Stateful; | ||
| 9 | +import javax.inject.Inject; | ||
| 10 | +import javax.persistence.EntityManager; | ||
| 11 | +import javax.persistence.PersistenceContext; | ||
| 12 | +import javax.persistence.PersistenceContextType; | ||
| 13 | +import javax.persistence.Query; | ||
| 14 | + | ||
| 15 | +import br.gov.ans.dao.DAO; | ||
| 16 | +import br.gov.ans.integracao.sipar.modelo.ControleMigracao; | ||
| 17 | +import br.gov.ans.integracao.sipar.modelo.ControleMigracaoId; | ||
| 18 | +import br.gov.ans.integracao.sipar.modelo.DocumentoSipar; | ||
| 19 | + | ||
| 20 | +@Stateful | ||
| 21 | +public class SiparDAO { | ||
| 22 | + | ||
| 23 | + @PersistenceContext(unitName = "sei_broker_pu", type = PersistenceContextType.EXTENDED) | ||
| 24 | + private EntityManager em; | ||
| 25 | + | ||
| 26 | + @SuppressWarnings("cdi-ambiguous-dependency") | ||
| 27 | + @Inject | ||
| 28 | + private DAO<DocumentoSipar> daoDocumento; | ||
| 29 | + | ||
| 30 | + @Inject | ||
| 31 | + private DAO<ControleMigracao> daoMigracao; | ||
| 32 | + | ||
| 33 | + public DocumentoSipar getDocumento(String numeroDocumento, String anoDocumento, String digitoDocumento){ | ||
| 34 | + | ||
| 35 | + Map<String, Object> params = new HashMap<String, Object>(); | ||
| 36 | + params.put("numeroDocumento", numeroDocumento); | ||
| 37 | + params.put("anoDocumento", anoDocumento); | ||
| 38 | + params.put("digitoDocumento", digitoDocumento); | ||
| 39 | + | ||
| 40 | + List<DocumentoSipar> resultado = daoDocumento.executeNamedQuery("documentoPorNumeroAnoDigito", params); | ||
| 41 | + | ||
| 42 | + if(resultado.isEmpty()){ | ||
| 43 | + return null; | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + return resultado.get(0); | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + public ControleMigracao buscaProcessoImportado(ControleMigracaoId id){ | ||
| 50 | + return daoMigracao.findById(id); | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + public boolean isProcessoEmTramitacao(String numero, String ano){ | ||
| 54 | + | ||
| 55 | + String sql = "SELECT count(*) FROM DBPSIPAR.TB_TRAMITACAO TR " | ||
| 56 | + + "WHERE " | ||
| 57 | + + "TR.DT_RECEBIMENTO IS NULL " | ||
| 58 | + + "AND TR.CO_DOCUMENTO = :numero " | ||
| 59 | + + "AND TR.NU_ANO_DOCUMENTO = :ano " | ||
| 60 | + + "AND TR.DT_ENVIO = (" | ||
| 61 | + + " SELECT MAX(TR2.DT_ENVIO) FROM DBPSIPAR.TB_TRAMITACAO TR2 WHERE TR2.CO_DOCUMENTO = :numero AND TR2.NU_ANO_DOCUMENTO = :ano" | ||
| 62 | + + ")"; | ||
| 63 | + | ||
| 64 | + Query query = em.createNativeQuery(sql); | ||
| 65 | + query.setParameter("numero", numero); | ||
| 66 | + query.setParameter("ano", ano); | ||
| 67 | + | ||
| 68 | + Long count = ((BigDecimal) query.getSingleResult()).longValue(); | ||
| 69 | + | ||
| 70 | + if(count > 0L){ | ||
| 71 | + return true; | ||
| 72 | + } | ||
| 73 | + return false; | ||
| 74 | + } | ||
| 75 | + | ||
| 76 | + public void merge(ControleMigracao controleMigracao){ | ||
| 77 | + daoMigracao.merge(controleMigracao); | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | +} |
src/main/java/br/gov/ans/integracao/sipar/modelo/ControleMigracao.java
0 → 100644
| @@ -0,0 +1,56 @@ | @@ -0,0 +1,56 @@ | ||
| 1 | +package br.gov.ans.integracao.sipar.modelo; | ||
| 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/modelo/ControleMigracaoId.java
0 → 100644
| @@ -0,0 +1,61 @@ | @@ -0,0 +1,61 @@ | ||
| 1 | +package br.gov.ans.integracao.sipar.modelo; | ||
| 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 ControleMigracaoId) { | ||
| 46 | + ControleMigracaoId controleMigracao = (ControleMigracaoId) obj; | ||
| 47 | + return (this.numero != null && this.numero.equals(controleMigracao.getNumero()) && | ||
| 48 | + this.ano != null && this.ano.equals(controleMigracao.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/modelo/DocumentoSipar.java
0 → 100644
| @@ -0,0 +1,131 @@ | @@ -0,0 +1,131 @@ | ||
| 1 | +package br.gov.ans.integracao.sipar.modelo; | ||
| 2 | + | ||
| 3 | +import java.io.Serializable; | ||
| 4 | +import java.util.Date; | ||
| 5 | + | ||
| 6 | +import javax.persistence.Entity; | ||
| 7 | +import javax.persistence.EntityResult; | ||
| 8 | +import javax.persistence.FieldResult; | ||
| 9 | +import javax.persistence.Id; | ||
| 10 | +import javax.persistence.NamedNativeQuery; | ||
| 11 | +import javax.persistence.SqlResultSetMapping; | ||
| 12 | + | ||
| 13 | +@Entity | ||
| 14 | +@SqlResultSetMapping(name="DocumentoSiparMapping", entities={ | ||
| 15 | + @EntityResult(entityClass = DocumentoSipar.class, | ||
| 16 | + fields = { | ||
| 17 | + @FieldResult(name = "digito", column = "NU_DIGITO_DOCUMENTO"), | ||
| 18 | + @FieldResult(name = "operadora", column = "CO_OPERADORA"), | ||
| 19 | + @FieldResult(name = "emissao", column = "DT_EMISSAO_DOCUMENTO"), | ||
| 20 | + @FieldResult(name = "registro", column = "DT_REGISTRO"), | ||
| 21 | + @FieldResult(name = "tipo", column = "CO_TIPO_DOCUMENTO"), | ||
| 22 | + @FieldResult(name = "resumo", column = "DS_RESUMO_DOCUMENTO"), | ||
| 23 | + @FieldResult(name = "orgaoPosse", column = "CO_ORGAO_POSSE"), | ||
| 24 | + @FieldResult(name = "orgaoOrigem", column = "CO_ORGAO_ORIGEM"), | ||
| 25 | + @FieldResult(name = "orgaoRegistro", column = "CO_ORGAO_REGISTRO"), | ||
| 26 | + @FieldResult(name = "assunto", column = "CO_ASSUNTO") | ||
| 27 | + }) | ||
| 28 | +}) | ||
| 29 | +@NamedNativeQuery(name = "documentoPorNumeroAnoDigito", resultSetMapping = "DocumentoSiparMapping", | ||
| 30 | +query = "SELECT TB.NU_DIGITO_DOCUMENTO, TB.CO_OPERADORA, TB.DT_EMISSAO_DOCUMENTO, TB.DT_REGISTRO, TB.CO_TIPO_DOCUMENTO, " | ||
| 31 | + + "TB.DS_RESUMO_DOCUMENTO, TB.CO_ORGAO_POSSE, TB.CO_ORGAO_ORIGEM, TB.CO_ORGAO_REGISTRO, RL.CO_ASSUNTO " | ||
| 32 | + + "FROM DBPSIPAR.TB_DOCUMENTO TB " | ||
| 33 | + + "LEFT JOIN DBPSIPAR.RL_ASSUNTO_DOCUMENTO RL ON RL.CO_DOCUMENTO = TB.CO_SEQ_DOCUMENTO " | ||
| 34 | + + "AND RL.NU_ANO_DOCUMENTO = TB.NU_ANO_DOCUMENTO " | ||
| 35 | + + "WHERE TB.CO_SEQ_DOCUMENTO = :numeroDocumento " | ||
| 36 | + + "AND TB.NU_ANO_DOCUMENTO = :anoDocumento " | ||
| 37 | + + "AND TB.NU_DIGITO_DOCUMENTO = :digitoDocumento") | ||
| 38 | +public class DocumentoSipar implements Serializable{ | ||
| 39 | + @Id | ||
| 40 | + private String digito; | ||
| 41 | + private String operadora; | ||
| 42 | + private Date emissao; | ||
| 43 | + private Date registro; | ||
| 44 | + private String tipo; | ||
| 45 | + private String resumo; | ||
| 46 | + private Long orgaoPosse; | ||
| 47 | + private Long orgaoOrigem; | ||
| 48 | + private Long orgaoRegistro; | ||
| 49 | + private Long assunto; | ||
| 50 | + | ||
| 51 | + public String getDigito() { | ||
| 52 | + return digito; | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + public void setDigito(String digito) { | ||
| 56 | + this.digito = digito; | ||
| 57 | + } | ||
| 58 | + | ||
| 59 | + public Long getAssunto() { | ||
| 60 | + return assunto; | ||
| 61 | + } | ||
| 62 | + | ||
| 63 | + public void setAssunto(Long assunto) { | ||
| 64 | + this.assunto = assunto; | ||
| 65 | + } | ||
| 66 | + | ||
| 67 | + public String getOperadora() { | ||
| 68 | + return operadora; | ||
| 69 | + } | ||
| 70 | + | ||
| 71 | + public void setOperadora(String operadora) { | ||
| 72 | + this.operadora = operadora; | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + public Date getEmissao() { | ||
| 76 | + return emissao; | ||
| 77 | + } | ||
| 78 | + | ||
| 79 | + public void setEmissao(Date emissao) { | ||
| 80 | + this.emissao = emissao; | ||
| 81 | + } | ||
| 82 | + | ||
| 83 | + public String getTipo() { | ||
| 84 | + return tipo; | ||
| 85 | + } | ||
| 86 | + | ||
| 87 | + public void setTipo(String tipo) { | ||
| 88 | + this.tipo = tipo; | ||
| 89 | + } | ||
| 90 | + | ||
| 91 | + public String getResumo() { | ||
| 92 | + return resumo; | ||
| 93 | + } | ||
| 94 | + | ||
| 95 | + public void setResumo(String resumo) { | ||
| 96 | + this.resumo = resumo; | ||
| 97 | + } | ||
| 98 | + | ||
| 99 | + public Long getOrgaoPosse() { | ||
| 100 | + return orgaoPosse; | ||
| 101 | + } | ||
| 102 | + | ||
| 103 | + public void setOrgaoPosse(Long orgaoPosse) { | ||
| 104 | + this.orgaoPosse = orgaoPosse; | ||
| 105 | + } | ||
| 106 | + | ||
| 107 | + public Long getOrgaoOrigem() { | ||
| 108 | + return orgaoOrigem; | ||
| 109 | + } | ||
| 110 | + | ||
| 111 | + public void setOrgaoOrigem(Long orgaoOrigem) { | ||
| 112 | + this.orgaoOrigem = orgaoOrigem; | ||
| 113 | + } | ||
| 114 | + | ||
| 115 | + public Long getOrgaoRegistro() { | ||
| 116 | + return orgaoRegistro; | ||
| 117 | + } | ||
| 118 | + | ||
| 119 | + public void setOrgaoRegistro(Long orgaoRegistro) { | ||
| 120 | + this.orgaoRegistro = orgaoRegistro; | ||
| 121 | + } | ||
| 122 | + | ||
| 123 | + public Date getRegistro() { | ||
| 124 | + return registro; | ||
| 125 | + } | ||
| 126 | + | ||
| 127 | + public void setRegistro(Date registro) { | ||
| 128 | + this.registro = registro; | ||
| 129 | + } | ||
| 130 | + | ||
| 131 | +} |
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.sipar.dao.DocumentoSipar</class> | 10 | + <class>br.gov.ans.integracao.sipar.modelo.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 |