package br.gov.mj.sislegis.app.service.ejbs; import java.rmi.RemoteException; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; import javax.ejb.Stateless; import javax.inject.Inject; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Join; import javax.persistence.criteria.JoinType; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; import javax.persistence.criteria.Subquery; import javax.xml.rpc.ServiceException; import br.gov.mj.sislegis.app.enumerated.ElaboracaoNormativaNorma; import br.gov.mj.sislegis.app.enumerated.ElaboracaoNormativaObjeto; import br.gov.mj.sislegis.app.enumerated.ElaboracaoNormativaSituacao; import br.gov.mj.sislegis.app.enumerated.ElaboracaoNormativaSubTipo; import br.gov.mj.sislegis.app.enumerated.ElaboracaoNormativaTipo; import br.gov.mj.sislegis.app.json.DropdownMultiselectSelecionadosJSON; import br.gov.mj.sislegis.app.json.TagJSON; import br.gov.mj.sislegis.app.model.AreaConsultada; import br.gov.mj.sislegis.app.model.Comentario; import br.gov.mj.sislegis.app.model.ElaboracaoNormativa; import br.gov.mj.sislegis.app.model.ElaboracaoNormativaCoAutores; import br.gov.mj.sislegis.app.model.ElaboracaoNormativaCoAutoresPK; import br.gov.mj.sislegis.app.model.ElaboracaoNormativaConsulta; import br.gov.mj.sislegis.app.model.ElaboracaoNormativaTiposMarcados; import br.gov.mj.sislegis.app.model.Equipe; import br.gov.mj.sislegis.app.model.Orgao; import br.gov.mj.sislegis.app.model.StatusSidof; import br.gov.mj.sislegis.app.model.Tag; import br.gov.mj.sislegis.app.model.TagElaboracaoNormativa; import br.gov.mj.sislegis.app.model.TagElaboracaoNormativaPK; import br.gov.mj.sislegis.app.model.Usuario; import br.gov.mj.sislegis.app.seiws.RetornoConsultaProcedimento; import br.gov.mj.sislegis.app.seiws.SeiServiceLocator; import br.gov.mj.sislegis.app.service.AbstractPersistence; import br.gov.mj.sislegis.app.service.AreaConsultadaService; import br.gov.mj.sislegis.app.service.ElaboracaoNormativaCoAutoresService; import br.gov.mj.sislegis.app.service.ElaboracaoNormativaConsultaService; import br.gov.mj.sislegis.app.service.ElaboracaoNormativaService; import br.gov.mj.sislegis.app.service.ElaboracaoNormativaTiposMarcadosService; import br.gov.mj.sislegis.app.service.OrgaoService; import br.gov.mj.sislegis.app.service.OrigemElaboracaoNormativaService; import br.gov.mj.sislegis.app.service.TagElaboracaoNormativaService; import br.gov.mj.sislegis.app.service.TagService; import br.gov.mj.sislegis.app.service.UsuarioService; import br.gov.mj.sislegis.app.util.SislegisUtil; @Stateless public class ElaboracaoNormativaServiceEjb extends AbstractPersistence<ElaboracaoNormativa, Long> implements ElaboracaoNormativaService { @Inject public TagService tagService; @Inject public UsuarioService usuarioService; @Inject public AreaConsultadaService areaConsultadaService; @Inject public OrigemElaboracaoNormativaService origemElaboracaoNormativaService; @Inject public TagElaboracaoNormativaService tagElaboracaoNormativaService; @Inject public ElaboracaoNormativaTiposMarcadosService elaboracaoNormativaTiposMarcadosService; @Inject public OrgaoService orgaoService; @Inject public ElaboracaoNormativaCoAutoresService elaboracaoNormativaCoAutoresService; @Inject public ElaboracaoNormativaConsultaService elaboracaoNormativaConsultaService; @Inject public SeiServiceLocator locator; @PersistenceContext private EntityManager em; public ElaboracaoNormativaServiceEjb() { super(ElaboracaoNormativa.class); } @Override protected EntityManager getEntityManager() { return em; } public ElaboracaoNormativa buscaElaboracaoNormativaPorId(Long id){ ElaboracaoNormativa elaboracaoNormativa = getEntityManager().find(ElaboracaoNormativa.class, id); elaboracaoNormativa.setTags(new ArrayList<TagJSON>()); for(TagElaboracaoNormativa tagElaboracaoNormativa:elaboracaoNormativa.getTagsElaboracaoNormativa()){ TagJSON tagJSON = new TagJSON(tagElaboracaoNormativa.getTag().toString()); elaboracaoNormativa.getTags().add(tagJSON); } elaboracaoNormativa.setTagsElaboracaoNormativa(null); elaboracaoNormativa.setListaComentario(new ArrayList<Comentario>(elaboracaoNormativa.getListaComentario())); elaboracaoNormativa.setTipos(new ArrayList<ElaboracaoNormativaTipo>()); for(ElaboracaoNormativaTiposMarcados elaboracaoNormativaTiposMarcados:elaboracaoNormativa.getListaElaboracaoNormativaTiposMarcados()){ elaboracaoNormativa.getTipos().add(elaboracaoNormativaTiposMarcados.getTipo()); } elaboracaoNormativa.setListaCoAutoresSelecionadosDropdown(new ArrayList<DropdownMultiselectSelecionadosJSON>()); for(ElaboracaoNormativaCoAutores elaboracaoNormativaCoAutores:elaboracaoNormativa.getListaElaboracaoNormativaCoAutor()){ DropdownMultiselectSelecionadosJSON dropdownMultiselectJSON = new DropdownMultiselectSelecionadosJSON(); dropdownMultiselectJSON.setId(elaboracaoNormativaCoAutores.getElaboracaoNormativaCoAutoresPK().getIdOrgao()); elaboracaoNormativa.getListaCoAutoresSelecionadosDropdown().add(dropdownMultiselectJSON); } elaboracaoNormativa.setListaElaboracaoNormativaCoAutor(null); if(!Objects.isNull(elaboracaoNormativa.getEquipe())) elaboracaoNormativa.setPareceristas(usuarioService.findByIdEquipe(elaboracaoNormativa.getEquipe().getId())); carregaLinkSei(elaboracaoNormativa); return elaboracaoNormativa; } private void carregaLinkSei(ElaboracaoNormativa elaboracaoNormativa) { if(!Objects.isNull(elaboracaoNormativa.getNup()) &&!elaboracaoNormativa.getNup().equals("")){ String link = consultaServicoWS(elaboracaoNormativa.getNup()); if(!Objects.isNull(link)) link =link.replaceAll("sei.mj", "seipreprod.mj"); elaboracaoNormativa.setLinkSei(link); } } @Override public void salvar(ElaboracaoNormativa elaboracaoNormativa) { if(!Objects.isNull(elaboracaoNormativa.getEquipe())) elaboracaoNormativa.getEquipe().setListaEquipeUsuario(null); processaExclusaoTagElaboracaoNormativa(elaboracaoNormativa); elaboracaoNormativa.setTagsElaboracaoNormativa(populaTagsElaboracaoNormativa(elaboracaoNormativa)); if(!Objects.isNull(elaboracaoNormativa.getOrigem()) &&Objects.isNull(elaboracaoNormativa.getOrigem().getId())){ Orgao orgao = orgaoService .findByProperty("nome", elaboracaoNormativa.getOrigem().getNome()); elaboracaoNormativa.setOrigem(orgao); } processaExclusaoElaboracaoNormativaConsulta(elaboracaoNormativa); processaListaElaboracaoNormativaConsulta(elaboracaoNormativa); processaExclusaoElaboracaoNormativaCoAutores(elaboracaoNormativa); precessaListaElaboracaoNormativaCoAutores(elaboracaoNormativa); save(elaboracaoNormativa); carregaLinkSei(elaboracaoNormativa); } private void processaListaElaboracaoNormativaConsulta( ElaboracaoNormativa elaboracaoNormativa) { if(!Objects.isNull(elaboracaoNormativa.getListaElaboracaoNormativaConsulta())){ for(ElaboracaoNormativaConsulta elaboracaoNormativaConsulta:elaboracaoNormativa.getListaElaboracaoNormativaConsulta()){ elaboracaoNormativaConsulta.setElaboracaoNormativa(elaboracaoNormativa); if(!Objects.isNull(elaboracaoNormativaConsulta.getAreaConsultada()) &&Objects.isNull(elaboracaoNormativaConsulta.getAreaConsultada().getId())){ AreaConsultada areaConsultada = areaConsultadaService .findByProperty("descricao", elaboracaoNormativaConsulta.getAreaConsultada().getDescricao()); elaboracaoNormativaConsulta.setAreaConsultada(areaConsultada); } } } } private void processaExclusaoElaboracaoNormativaConsulta( ElaboracaoNormativa elaboracaoNormativa) { List<ElaboracaoNormativaConsulta> lista = elaboracaoNormativaConsultaService .pesquisaElaboracaoNormativaConsutaPorIdElaboracaoNormativa(elaboracaoNormativa.getId()); List<ElaboracaoNormativaConsulta> listaExclusao = new ArrayList<ElaboracaoNormativaConsulta>(); c:for(ElaboracaoNormativaConsulta elaboracaoNormativaConsulta:lista){ for(ElaboracaoNormativaConsulta elaboracaoNormativaConsulta2:elaboracaoNormativa.getListaElaboracaoNormativaConsulta()){ if(elaboracaoNormativaConsulta.equals(elaboracaoNormativaConsulta2)){ continue c; } } listaExclusao.add(elaboracaoNormativaConsulta); } for(ElaboracaoNormativaConsulta elaboracaoNormativaConsulta:listaExclusao){ elaboracaoNormativaConsultaService.deleteElaboracaoNormativaConsutaPorIdElaboracaoNormativa(elaboracaoNormativaConsulta.getId()); } } private void precessaListaElaboracaoNormativaCoAutores( ElaboracaoNormativa elaboracaoNormativa) { elaboracaoNormativa.setListaElaboracaoNormativaCoAutor(elaboracaoNormativaCoAutoresService .pesquisaPorElaboracaoNormativa(elaboracaoNormativa.getId())); c:for(DropdownMultiselectSelecionadosJSON dropdownMultiselectJSON:elaboracaoNormativa.getListaCoAutoresSelecionadosDropdown()){ if(!Objects.isNull(elaboracaoNormativa.getListaElaboracaoNormativaCoAutor())){ for(ElaboracaoNormativaCoAutores elaboracaoNormativaCoAutores:elaboracaoNormativa.getListaElaboracaoNormativaCoAutor()){ if(dropdownMultiselectJSON.getId().equals(elaboracaoNormativaCoAutores.getOrgao().getId())){ continue c; } } }else{ elaboracaoNormativa.setListaElaboracaoNormativaCoAutor(new ArrayList<ElaboracaoNormativaCoAutores>()); } ElaboracaoNormativaCoAutores elaboracaoNormativaCoAutores = new ElaboracaoNormativaCoAutores(); ElaboracaoNormativaCoAutoresPK elaboracaoNormativaCoAutoresPK = new ElaboracaoNormativaCoAutoresPK(); elaboracaoNormativaCoAutores.setElaboracaoNormativaCoAutoresPK(elaboracaoNormativaCoAutoresPK); elaboracaoNormativaCoAutores.setOrgao(orgaoService.findById(dropdownMultiselectJSON.getId())); elaboracaoNormativaCoAutores.setElaboracaoNormativa(elaboracaoNormativa); elaboracaoNormativa.getListaElaboracaoNormativaCoAutor().add(elaboracaoNormativaCoAutores); } } private void processaExclusaoElaboracaoNormativaCoAutores( ElaboracaoNormativa elaboracaoNormativa) { elaboracaoNormativa.setListaElaboracaoNormativaCoAutor(elaboracaoNormativaCoAutoresService .pesquisaPorElaboracaoNormativa(elaboracaoNormativa.getId())); List<ElaboracaoNormativaCoAutores> listaExclusao=null; if(!Objects.isNull(elaboracaoNormativa.getListaCoAutoresSelecionadosDropdown())){ listaExclusao = new ArrayList<ElaboracaoNormativaCoAutores>(); if(!Objects.isNull(elaboracaoNormativa.getListaElaboracaoNormativaCoAutor())){ c:for(ElaboracaoNormativaCoAutores elaboracaoNormativaCoAutor: elaboracaoNormativa.getListaElaboracaoNormativaCoAutor()){ for(DropdownMultiselectSelecionadosJSON dropdownMultiselectJSON: elaboracaoNormativa.getListaCoAutoresSelecionadosDropdown()){ if(dropdownMultiselectJSON.getId().equals(elaboracaoNormativaCoAutor.getOrgao().getId())){ continue c; } } listaExclusao.add(elaboracaoNormativaCoAutor); } } elaboracaoNormativa.setListaElaboracaoNormativaCoAutor(null); } if(!Objects.isNull(listaExclusao)){ for(ElaboracaoNormativaCoAutores elaboracaoNormativaCoAutores:listaExclusao){ elaboracaoNormativaCoAutoresService .deleteElaboracaoNormativaCoAutoresServiceEjb(elaboracaoNormativaCoAutores.getElaboracaoNormativaCoAutoresPK()); } } } private void processaExclusaoTagElaboracaoNormativa( ElaboracaoNormativa elaboracaoNormativa) { if(!Objects.isNull(elaboracaoNormativa.getId())){ List<TagElaboracaoNormativa> lista = tagElaboracaoNormativaService.buscaTagsElaboracaoNormativa(elaboracaoNormativa.getId()); c:for(TagElaboracaoNormativa tagElaboracaoNormativa:lista){ for(TagJSON tagJSON:elaboracaoNormativa.getTags()){ if(tagJSON.getText().equals(tagElaboracaoNormativa.getTag().getTag())) continue c; } tagElaboracaoNormativaService.deleteTagElaboracaoNormativa(tagElaboracaoNormativa); } } } @SuppressWarnings("unchecked") private Set<TagElaboracaoNormativa> populaTagsElaboracaoNormativa(ElaboracaoNormativa elaboracaoNormativa) { Set<TagElaboracaoNormativa> tagsElaboracaoNormativa = new HashSet<TagElaboracaoNormativa>(); List<TagElaboracaoNormativa> lista =new ArrayList<TagElaboracaoNormativa>(); if(!Objects.isNull(elaboracaoNormativa.getId())){ lista = getEntityManager() .createNativeQuery("select ten.* from TagElaboracaoNormativa ten " + "where ten.elaboracaoNormativa_id = :id", TagElaboracaoNormativa.class) .setParameter("id", elaboracaoNormativa.getId()).getResultList(); } c:for(DropdownMultiselectSelecionadosJSON dropdownMultiselectJSON:elaboracaoNormativa.getListaCoAutoresSelecionadosDropdown()){ if(!Objects.isNull(elaboracaoNormativa.getListaElaboracaoNormativaCoAutor())){ for(ElaboracaoNormativaCoAutores elaboracaoNormativaCoAutores:elaboracaoNormativa.getListaElaboracaoNormativaCoAutor()){ if(dropdownMultiselectJSON.getId().equals(elaboracaoNormativaCoAutores.getOrgao().getId())){ continue c; } } }else{ elaboracaoNormativa.setListaElaboracaoNormativaCoAutor(new ArrayList<ElaboracaoNormativaCoAutores>()); } ElaboracaoNormativaCoAutores elaboracaoNormativaCoAutores = new ElaboracaoNormativaCoAutores(); elaboracaoNormativaCoAutores.setOrgao(orgaoService.findById(dropdownMultiselectJSON.getId())); elaboracaoNormativaCoAutores.setElaboracaoNormativa(elaboracaoNormativa); elaboracaoNormativa.getListaElaboracaoNormativaCoAutor().add(elaboracaoNormativaCoAutores); } c: for (TagJSON tagJSON : elaboracaoNormativa.getTags()) { for(TagElaboracaoNormativa tagElaboracaoNormativa:lista){ if(tagJSON.getText().equals(tagElaboracaoNormativa.getTag().toString())){ continue c; } } TagElaboracaoNormativaPK tagElaboracaoNormativaPK = new TagElaboracaoNormativaPK(); TagElaboracaoNormativa tagElaboracaoNormativa = new TagElaboracaoNormativa(); tagElaboracaoNormativaPK.setId(elaboracaoNormativa.getId()); tagElaboracaoNormativaPK.setTag(tagJSON.getText()); tagElaboracaoNormativa.setTagElaboracaoNormativaPK(tagElaboracaoNormativaPK); tagElaboracaoNormativa.setElaboracaoNormativa(elaboracaoNormativa); Tag tag = getEntityManager().find(Tag.class, tagJSON.getText()); if(Objects.isNull(tag)){ tag=new Tag(); tag.setTag(tagJSON.getText()); } tagElaboracaoNormativa.setTag(tag); tagsElaboracaoNormativa.add(tagElaboracaoNormativa); } return tagsElaboracaoNormativa; } public List<ElaboracaoNormativa> listarTodos(){ CriteriaBuilder cb = getEntityManager().getCriteriaBuilder(); CriteriaQuery<ElaboracaoNormativa> cq = cb.createQuery(ElaboracaoNormativa.class); Root<ElaboracaoNormativa> en = cq.from(ElaboracaoNormativa.class); cq.select(en); Query query = getEntityManager().createQuery(cq); @SuppressWarnings("unchecked") List<ElaboracaoNormativa> result = query.getResultList(); return result; } @SuppressWarnings("unchecked") @Override public List<ElaboracaoNormativa> buscaPorParametros( Map<String, Object> mapaCampos) { CriteriaBuilder cb = getEntityManager().getCriteriaBuilder(); CriteriaQuery<ElaboracaoNormativa> cq = cb.createQuery(ElaboracaoNormativa.class); Root<ElaboracaoNormativa> en = cq.from(ElaboracaoNormativa.class); Join<ElaboracaoNormativa, Orgao> oen = en.join("origem", JoinType.LEFT); Join<ElaboracaoNormativa, Orgao> ca = en.join("coAutor", JoinType.LEFT); Join<ElaboracaoNormativa, StatusSidof> ss = en.join("statusSidof", JoinType.LEFT); Join<ElaboracaoNormativa, Equipe> eq = en.join("equipe", JoinType.LEFT); Join<ElaboracaoNormativa, Usuario> us = en.join("parecerista", JoinType.LEFT); cq.select(cb.construct(ElaboracaoNormativa.class, en.get("id"), en.get("tipo"), en.get("subTipo"), en.get("elaboracaoNormativaSituacao"), en.get("elaboracaoNormativaNorma"), en.get("ano"), en.get("numero"), oen.get("nome"), ca.get("nome"), en.get("ementa"), ss.get("descricao"), en.get("identificacao"), eq.get("nome"), us.get("nome"), en.get("nup"), en.get("dataInclusaoSIDOF"), en.get("dataAssinaturaSIDOF"), en.get("ementaManifestacao"), en.get("dataManifestacao"), en.get("normaGeradaAno"), en.get("normaGeradaNumero") )); List<Predicate> predicates=new ArrayList<Predicate>(); if(!Objects.isNull(mapaCampos.get("ano")) &&!mapaCampos.get("ano").equals("")){ Predicate ano =cb.equal(en.get("ano"), mapaCampos.get("ano")); predicates.add(ano); } if(!Objects.isNull(mapaCampos.get("numero")) &&!mapaCampos.get("numero").equals("")){ Predicate numero =cb.equal(en.get("numero"), mapaCampos.get("numero")); predicates.add(numero); } if(!Objects.isNull(mapaCampos.get("identificacao")) &&!mapaCampos.get("identificacao").equals("")){ Predicate identificacao =cb.equal(en.get("identificacao"), ElaboracaoNormativaObjeto.get((String)mapaCampos.get("identificacao"))); predicates.add(identificacao); } if(!Objects.isNull(mapaCampos.get("distribuicao")) &&((Long)mapaCampos.get("distribuicao")).compareTo(0L)!=0L){ Predicate distribuicao =cb.equal(en.get("distribuicao"), mapaCampos.get("distribuicao")); predicates.add(distribuicao); } if(!Objects.isNull(mapaCampos.get("parecerista")) &&((Long)mapaCampos.get("parecerista")).compareTo(0L)!=0L){ Predicate parecerista =cb.equal(en.get("parecerista"), mapaCampos.get("parecerista")); predicates.add(parecerista); } if(!Objects.isNull(mapaCampos.get("statusSidof")) &&((Long)mapaCampos.get("statusSidof")).compareTo(0L)!=0L){ Predicate statusSidof =cb.equal(ss.get("id"), mapaCampos.get("statusSidof")); predicates.add(statusSidof); } if(!Objects.isNull(mapaCampos.get("elaboracaoNormativaNorma")) &&!mapaCampos.get("elaboracaoNormativaNorma").equals("")){ Predicate elaboracaoNormativaNorma =cb.equal(en.get("elaboracaoNormativaNorma"), ElaboracaoNormativaNorma.get((String)mapaCampos.get("elaboracaoNormativaNorma"))); predicates.add(elaboracaoNormativaNorma); } if(!Objects.isNull(mapaCampos.get("elaboracaoNormativaSituacao")) &&!mapaCampos.get("elaboracaoNormativaSituacao").equals("")){ Predicate elaboracaoNormativaSituacao =cb.equal(en.get("elaboracaoNormativaSituacao"), ElaboracaoNormativaSituacao.get((String)mapaCampos.get("elaboracaoNormativaSituacao"))); predicates.add(elaboracaoNormativaSituacao); } if(!Objects.isNull(mapaCampos.get("tipo")) &&!mapaCampos.get("tipo").equals("")){ Predicate tipo =cb.equal(en.get("tipo"), ElaboracaoNormativaTipo.get((String)mapaCampos.get("tipo"))); predicates.add(tipo); } if(!Objects.isNull(mapaCampos.get("subTipo")) &&!mapaCampos.get("subTipo").equals("")){ Predicate subTipo =cb.equal(en.get("subTipo"), ElaboracaoNormativaSubTipo.get((String)mapaCampos.get("subTipo"))); predicates.add(subTipo); } if(!Objects.isNull(mapaCampos.get("ementa")) &&!mapaCampos.get("ementa").equals("")){ Predicate ementa =cb.like(en.<String>get("ementa"), mapaCampos.get("ementa").toString()); predicates.add(ementa); } if(!Objects.isNull(mapaCampos.get("listaOrigensSelecionadosDropdown")) &&!mapaCampos.get("listaOrigensSelecionadosDropdown").equals("")){ List<String> lista = SislegisUtil.jsonArrayToList(mapaCampos.get("listaOrigensSelecionadosDropdown").toString()); if(!lista.isEmpty()){ Predicate listaOrigensSelecionadosDropdown =oen.get("id").in(lista); predicates.add(listaOrigensSelecionadosDropdown); } } if(!Objects.isNull(mapaCampos.get("listaTagsSelecionadosDropdown")) &&!mapaCampos.get("listaTagsSelecionadosDropdown").equals("")){ Subquery<TagElaboracaoNormativa> subqueryTags = cq.subquery(TagElaboracaoNormativa.class); @SuppressWarnings("rawtypes") Root fromTagElaboracaoNormativa = subqueryTags.from(TagElaboracaoNormativa.class); subqueryTags.select(fromTagElaboracaoNormativa.get("elaboracaoNormativa")); Join<TagElaboracaoNormativa, Tag> tag = fromTagElaboracaoNormativa.join("tag", JoinType.INNER); List<String> lista = SislegisUtil.jsonArrayToList(mapaCampos.get("listaTagsSelecionadosDropdown").toString()); if(!lista.isEmpty()){ subqueryTags.where(tag.get("tag").in(lista)); predicates.add(en.get("id").in(subqueryTags)); } } if(!Objects.isNull(mapaCampos.get("listaCoAutoresSelecionadosDropdown")) &&!mapaCampos.get("listaCoAutoresSelecionadosDropdown").equals("")){ List<String> lista = SislegisUtil.jsonArrayToList(mapaCampos.get("listaCoAutoresSelecionadosDropdown").toString()); if(!lista.isEmpty()){ Predicate listaCoAutoresSelecionadosDropdown =ca.get("id").in(lista); predicates.add(listaCoAutoresSelecionadosDropdown); } } if(!Objects.isNull(mapaCampos.get("nup")) &&!mapaCampos.get("nup").equals("")){ Predicate nup =cb.like(en.<String>get("nup"), mapaCampos.get("nup").toString()); predicates.add(nup); } cq.where(predicates.toArray(new Predicate[]{})); Query query = getEntityManager().createQuery(cq); List<ElaboracaoNormativa> result = query.getResultList(); return result; } public List<ElaboracaoNormativa> buscarPorSufixo(String sufixo) { TypedQuery<ElaboracaoNormativa> findByIdQuery = getEntityManager().createQuery( "SELECT e FROM ElaboracaoNormativa e WHERE upper(e.nup) like upper(:sufixo)", ElaboracaoNormativa.class); findByIdQuery.setParameter("sufixo", "%"+sufixo+"%"); return findByIdQuery.getResultList(); } @Override public String consultaServicoWS(String nup) { RetornoConsultaProcedimento retorno =null; try { retorno = locator.getSeiPortService().consultarProcedimento("SISLEGIS", "sislegis", null, nup, null, null, null, null, null, null, null, null, null); } catch (RemoteException | ServiceException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } return retorno.getLinkAcesso(); } }