From 704a7a323396c8136535419e873ea671e5c0ff73 Mon Sep 17 00:00:00 2001 From: caiosantos-codata Date: Wed, 1 Mar 2023 12:37:08 -0300 Subject: [PATCH 1/3] =?UTF-8?q?wip:=20filtrar=20m=C3=B3dulos=20n=C3=A3o=20?= =?UTF-8?q?utilizados?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gov/jfrj/siga/cp/bl/CpConfiguracaoBL.java | 28 +++++++++++++++++++ .../java/br/gov/jfrj/siga/dp/dao/CpDao.java | 25 ++++++++++++++++- .../jfrj/siga/vraptor/AcessoController.java | 2 +- 3 files changed, 53 insertions(+), 2 deletions(-) diff --git a/siga-cp/src/main/java/br/gov/jfrj/siga/cp/bl/CpConfiguracaoBL.java b/siga-cp/src/main/java/br/gov/jfrj/siga/cp/bl/CpConfiguracaoBL.java index 1e369eeda2b..ea9fb052372 100644 --- a/siga-cp/src/main/java/br/gov/jfrj/siga/cp/bl/CpConfiguracaoBL.java +++ b/siga-cp/src/main/java/br/gov/jfrj/siga/cp/bl/CpConfiguracaoBL.java @@ -86,6 +86,34 @@ public class CpConfiguracaoBL { SIGLAS_ORGAOS_OCULTADOS.add(SIGLA_ORGAO_PDS); } + + public static final String SIGLA_MODULO_SIGA_AQ = "SIGA-AQ"; + public static final String SIGLA_MODULO_SIGA_BDP= "SIGA-BDP"; + public static final String SIGLA_MODULO_SIGA_BNF= "SIGA-BNF"; + public static final String SIGLA_MODULO_SIGA_CAD = "SIGA-CAD"; + public static final String SIGLA_MODULO_SIGA_CST = "SIGA-CST"; + public static final String SIGLA_MODULO_SIGA_DNC = "SIGA-DCN"; + public static final String SIGLA_MODULO_LOT = "SIGA-LOT"; + public static final String SIGLA_MODULO_TERC = "SIGA-TERC"; + public static final String SIGLA_MODULO_TRN = "SIGA-TRN"; + + public static final List MODULOS_NAO_UTILIZADOS = new ArrayList(); + + static { + MODULOS_NAO_UTILIZADOS.add(SIGLA_MODULO_SIGA_AQ); + MODULOS_NAO_UTILIZADOS.add(SIGLA_MODULO_SIGA_BDP); + MODULOS_NAO_UTILIZADOS.add(SIGLA_MODULO_SIGA_BNF); + MODULOS_NAO_UTILIZADOS.add(SIGLA_MODULO_SIGA_CAD); + MODULOS_NAO_UTILIZADOS.add(SIGLA_MODULO_SIGA_CST); + MODULOS_NAO_UTILIZADOS.add(SIGLA_MODULO_SIGA_DNC); + MODULOS_NAO_UTILIZADOS.add(SIGLA_MODULO_LOT); + MODULOS_NAO_UTILIZADOS.add(SIGLA_MODULO_SIGA_BDP); + MODULOS_NAO_UTILIZADOS.add(SIGLA_MODULO_TERC); + MODULOS_NAO_UTILIZADOS.add(SIGLA_MODULO_TRN); + } + + + private final static org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(CpConfiguracaoBL.class); protected Date dtUltimaAtualizacaoCache = null; diff --git a/siga-cp/src/main/java/br/gov/jfrj/siga/dp/dao/CpDao.java b/siga-cp/src/main/java/br/gov/jfrj/siga/dp/dao/CpDao.java index b55ac7470fa..b1f93285f42 100644 --- a/siga-cp/src/main/java/br/gov/jfrj/siga/dp/dao/CpDao.java +++ b/siga-cp/src/main/java/br/gov/jfrj/siga/dp/dao/CpDao.java @@ -90,6 +90,7 @@ import br.gov.jfrj.siga.cp.CpToken; import br.gov.jfrj.siga.cp.CpUnidadeMedida; import br.gov.jfrj.siga.cp.QCpIdentidade; +import br.gov.jfrj.siga.cp.QCpServico; import br.gov.jfrj.siga.cp.bl.Cp; import br.gov.jfrj.siga.cp.bl.CpConfiguracaoBL; import br.gov.jfrj.siga.cp.bl.SituacaoFuncionalEnum; @@ -160,6 +161,7 @@ public class CpDao extends ModeloDao { private static final QDpFuncaoConfianca qDpFuncaoConfianca = QDpFuncaoConfianca.dpFuncaoConfianca; private static final QDpCargo qDpCargo = QDpCargo.dpCargo; private static final QDpLotacao qDpLotacao = QDpLotacao.dpLotacao; + private static final QCpServico qCpServico = QCpServico.cpServico; protected final SigaDialect dialeto = SigaDialect.fromSystemProperty(); @@ -250,7 +252,7 @@ public CpOrgao consultarPorSigla(final CpOrgao o) { public void inicializarCacheDeServicos() { synchronized (CpDao.class) { cacheServicos = new TreeMap<>(); - List l = listarTodos(CpServico.class, "siglaServico"); + List l = listarServicosAtivos(); for (CpServico s : l) { cacheServicos.put(s.getSigla(), s); } @@ -2433,6 +2435,27 @@ public List listarServicosPorPai(CpServico servicoPai) { q.where(cb().equal(c.get("cpServicoPai"), servicoPai)); return em().createQuery(q).getResultList(); } + + public List listarServicos(com.querydsl.core.types.Predicate... predicate) { + final JPAQuery query = new JPAQueryFactory(em()) + .select(qCpServico) + .from(qCpServico); + + if (predicate != null) { + query.where(predicate); + } + + return query.setHint(QueryHints.CACHEABLE, true) + .setHint(QueryHints.CACHE_REGION, CACHE_QUERY_HOURS) + .orderBy(qCpServico.siglaServico.asc()) + .fetch(); + } + + public List listarServicosAtivos() throws AplicacaoException { + final QCpServico qCpServico = QCpServico.cpServico; + return this.listarServicos( + qCpServico.siglaServico.notIn(CpConfiguracaoBL.MODULOS_NAO_UTILIZADOS)); + } @SuppressWarnings("unchecked") public List listarTiposGrupo() { diff --git a/siga/src/main/java/br/gov/jfrj/siga/vraptor/AcessoController.java b/siga/src/main/java/br/gov/jfrj/siga/vraptor/AcessoController.java index 0ef32b41b7c..0ad2c01aad4 100644 --- a/siga/src/main/java/br/gov/jfrj/siga/vraptor/AcessoController.java +++ b/siga/src/main/java/br/gov/jfrj/siga/vraptor/AcessoController.java @@ -157,7 +157,7 @@ private void listar(int idAbrangencia List l = null; if (servicoPai == null) { - l = dao().listarServicos(); + l = dao().listarServicosAtivos(); } else { l = new ArrayList(); // CpServico cpServicoPai = dao().consultarCpServicoPorChave(servicoPai); From 13af8ac8d9562b2c7dcf38c60d6ff266f9ace45b Mon Sep 17 00:00:00 2001 From: caiosantos-codata Date: Mon, 6 Mar 2023 11:54:03 -0300 Subject: [PATCH 2/3] =?UTF-8?q?recuperar=20servi=C3=A7o=20baseado=20apenas?= =?UTF-8?q?=20no=20cache=20inicializado?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gov/jfrj/siga/cp/bl/CpConfiguracaoBL.java | 23 ------------------- 1 file changed, 23 deletions(-) diff --git a/siga-cp/src/main/java/br/gov/jfrj/siga/cp/bl/CpConfiguracaoBL.java b/siga-cp/src/main/java/br/gov/jfrj/siga/cp/bl/CpConfiguracaoBL.java index ea9fb052372..c3c2d6f5ac3 100644 --- a/siga-cp/src/main/java/br/gov/jfrj/siga/cp/bl/CpConfiguracaoBL.java +++ b/siga-cp/src/main/java/br/gov/jfrj/siga/cp/bl/CpConfiguracaoBL.java @@ -799,29 +799,6 @@ public boolean podeUtilizarServicoPorConfiguracao(DpPessoa titular, DpLotacao lo CpServico srvRecuperado = null; srvRecuperado = dao().consultarCpServicoPorChave(servicoPath); - if (srvRecuperado == null) { - // Constroi uma linha completa, tipo full path - for (String s : servicoPath.split(";")) { - String[] asParts = s.split(":"); // Separa a sigla da - // descrição - String sSigla = asParts[0]; - srv = new CpServico(); - srv.setSiglaServico(srvPai != null ? srvPai.getSigla() + "-" + sSigla : sSigla); - srv.setCpServicoPai(srvPai); - srvRecuperado = dao().consultarPorSigla(srv); - if (srvRecuperado == null) { - CpTipoServico tpsrv = dao().consultar(CpTipoServico.TIPO_CONFIG_SISTEMA, CpTipoServico.class, false); - String sDesc = (asParts.length > 1 ? asParts[1] : ""); - srv.setDscServico(sDesc); - srv.setCpServicoPai(srvPai); - srv.setCpTipoServico(tpsrv); - ContextoPersistencia.begin(); - dao().acrescentarServico(srv); - ContextoPersistencia.commit(); - } - srvPai = srvRecuperado; - } - } return Cp.getInstance().getConf().podePorConfiguracao(titular, lotaTitular, srvRecuperado, CpTipoConfiguracao.TIPO_CONFIG_UTILIZAR_SERVICO); } catch (Exception e) { From 2112f3cf4c55a27632ad8c9ac38b21c273d9e586 Mon Sep 17 00:00:00 2001 From: caiosantos-codata Date: Tue, 7 Mar 2023 10:00:30 -0300 Subject: [PATCH 3/3] =?UTF-8?q?adicionar=20m=C3=B3dulos=20'transporte'=20e?= =?UTF-8?q?=20'workflow'=20ao=20conjunto=20de=20m=C3=B3dulos=20n=C3=A3o=20?= =?UTF-8?q?utilizados?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/br/gov/jfrj/siga/cp/CpServico.java | 20 ++++++++++-------- .../gov/jfrj/siga/cp/bl/CpConfiguracaoBL.java | 21 ++++++++++--------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/siga-cp/src/main/java/br/gov/jfrj/siga/cp/CpServico.java b/siga-cp/src/main/java/br/gov/jfrj/siga/cp/CpServico.java index 80e208a216e..4fd8277091a 100644 --- a/siga-cp/src/main/java/br/gov/jfrj/siga/cp/CpServico.java +++ b/siga-cp/src/main/java/br/gov/jfrj/siga/cp/CpServico.java @@ -54,15 +54,17 @@ public class CpServico extends AbstractCpServico implements Selecionavel { public static final String ACESSO_WEBSERVICE = "SPSEMPAPEL-SIGA-WS"; - public static final String SIGLA_MODULO_SIGA_AQ = "SIGA-AQ"; - public static final String SIGLA_MODULO_SIGA_BDP= "SIGA-BDP"; - public static final String SIGLA_MODULO_SIGA_BNF= "SIGA-BNF"; - public static final String SIGLA_MODULO_SIGA_CAD = "SIGA-CAD"; - public static final String SIGLA_MODULO_SIGA_CST = "SIGA-CST"; - public static final String SIGLA_MODULO_SIGA_DNC = "SIGA-DCN"; - public static final String SIGLA_MODULO_LOT = "SIGA-LOT"; - public static final String SIGLA_MODULO_TERC = "SIGA-TERC"; - public static final String SIGLA_MODULO_TRN = "SIGA-TRN"; + public static final String SIGLA_MODULO_ADICIONAL_QUALIFICACAO = "SIGA-AQ"; + public static final String SIGLA_MODULO_BANCO_PERMUTAS= "SIGA-BDP"; + public static final String SIGLA_MODULO_BENEFICIOS = "SIGA-BNF"; + public static final String SIGLA_MODULO_CADASTRO = "SIGA-CAD"; + public static final String SIGLA_MODULO_CONSULTAS = "SIGA-CST"; + public static final String SIGLA_MODULO_DOCENCIA = "SIGA-DCN"; + public static final String SIGLA_MODULO_LOTACAO = "SIGA-LOT"; + public static final String SIGLA_MODULO_TERCEIRIZADOS = "SIGA-TERC"; + public static final String SIGLA_MODULO_TREINAMENTO = "SIGA-TRN"; + public static final String SIGLA_MODULO_TRANSPORTE = "SIGA-TP"; + public static final String SIGLA_MODULO_WORKFLOW = "SIGA-WF"; public CpServico() { diff --git a/siga-cp/src/main/java/br/gov/jfrj/siga/cp/bl/CpConfiguracaoBL.java b/siga-cp/src/main/java/br/gov/jfrj/siga/cp/bl/CpConfiguracaoBL.java index f5e0bccd40d..149d8d331aa 100644 --- a/siga-cp/src/main/java/br/gov/jfrj/siga/cp/bl/CpConfiguracaoBL.java +++ b/siga-cp/src/main/java/br/gov/jfrj/siga/cp/bl/CpConfiguracaoBL.java @@ -91,16 +91,17 @@ public class CpConfiguracaoBL { public static final SortedSet MODULOS_NAO_UTILIZADOS; static { final SortedSet siglasModulosNaoUtilizados = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); - siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_SIGA_AQ); - siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_SIGA_BDP); - siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_SIGA_BNF); - siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_SIGA_CAD); - siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_SIGA_CST); - siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_SIGA_DNC); - siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_LOT); - siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_SIGA_BDP); - siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_TERC); - siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_TRN); + siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_ADICIONAL_QUALIFICACAO); + siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_BANCO_PERMUTAS); + siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_BENEFICIOS); + siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_CADASTRO); + siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_CONSULTAS); + siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_DOCENCIA); + siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_LOTACAO); + siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_TERCEIRIZADOS); + siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_TREINAMENTO); + siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_TRANSPORTE); + siglasModulosNaoUtilizados.add(CpServico.SIGLA_MODULO_WORKFLOW); MODULOS_NAO_UTILIZADOS = Collections.unmodifiableSortedSet(siglasModulosNaoUtilizados); }