Skip to content

Commit

Permalink
EX - Corrige exibição da Mesa Virtual para os internos (Bug após migr…
Browse files Browse the repository at this point in the history
…ação MYSQL)
  • Loading branch information
jmolivei committed Jan 25, 2024
1 parent e438f10 commit 17b012e
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 4 deletions.
2 changes: 1 addition & 1 deletion siga-ex/src/main/java/br/gov/jfrj/siga/ex/bl/Mesa2Ant.java
Original file line number Diff line number Diff line change
Expand Up @@ -462,7 +462,7 @@ && temMarcador(hashMobGrp, idMob, Integer.valueOf(CpMarcadorGrupoEnum.CAIXA_DE_E
if ( iMobs + 1000 < iMobsFim )
iMobsFim = iMobs + 1000;
List<Object[]> refs = dao.listarMovimentacoesMesa(
listIdMobil.subList(iMobs, iMobsFim), trazerComposto);
listIdMobil.subList(iMobs, iMobsFim), titular, lotaTitular, trazerComposto);

for (Object[] ref : refs) {
incluiMovimentacoesMesa(map, ref);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package br.gov.jfrj.siga.ex.logic;

import com.crivano.jlogic.And;
import com.crivano.jlogic.CompositeExpressionSupport;
import com.crivano.jlogic.Expression;

import br.gov.jfrj.siga.dp.DpLotacao;
import br.gov.jfrj.siga.dp.DpPessoa;
import br.gov.jfrj.siga.ex.model.enm.ExTipoDeConfiguracao;

public class ExPodeBuscarUltimaMovimentacaoPorId extends CompositeExpressionSupport {

private final DpPessoa titular;
private final DpLotacao lotaTitular;

public ExPodeBuscarUltimaMovimentacaoPorId(DpPessoa titular, DpLotacao lotaTitular) {
this.titular = titular;
this.lotaTitular = lotaTitular;
}

@Override
protected Expression create() {

return And.of(

new ExPodePorConfiguracao(titular, lotaTitular)
.withIdTpConf(ExTipoDeConfiguracao.BUSCAR_ULTIMA_MOV_POR_ID)

);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -623,7 +623,14 @@ public enum ExTipoDeConfiguracao implements ITipoDeConfiguracao {
new Enum[] { CpParamCfg.ORGAO, CpParamCfg.LOTACAO, CpParamCfg.PESSOA },
new Enum[] { CpParamCfg.SITUACAO },
new CpSituacaoDeConfiguracaoEnum[] { CpSituacaoDeConfiguracaoEnum.PODE, CpSituacaoDeConfiguracaoEnum.NAO_PODE },
CpSituacaoDeConfiguracaoEnum.NAO_PODE, true);
CpSituacaoDeConfiguracaoEnum.NAO_PODE, true),


BUSCAR_ULTIMA_MOV_POR_ID(67, "Buscar Última Movimentação do Documento por ID e não por Timestamp", "Esta configuração tem o objetivo de mudar a forma como a mesa busca a última movimentação de um documento.",
new Enum[] { CpParamCfg.ORGAO, CpParamCfg.LOTACAO, CpParamCfg.PESSOA },
new Enum[] { CpParamCfg.SITUACAO },
new CpSituacaoDeConfiguracaoEnum[] { CpSituacaoDeConfiguracaoEnum.PODE, CpSituacaoDeConfiguracaoEnum.NAO_PODE },
CpSituacaoDeConfiguracaoEnum.PODE, true);


private final int id;
Expand Down
38 changes: 36 additions & 2 deletions siga-ex/src/main/java/br/gov/jfrj/siga/hibernate/ExDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,11 @@
import br.gov.jfrj.siga.ex.ExTpDocPublicacao;
import br.gov.jfrj.siga.ex.ExVia;
import br.gov.jfrj.siga.ex.BIE.ExBoletimDoc;
import br.gov.jfrj.siga.ex.bl.Ex;
import br.gov.jfrj.siga.ex.bl.ExBL;
import br.gov.jfrj.siga.ex.bl.Mesa2Ant;
import br.gov.jfrj.siga.ex.logic.ExPodeBuscarUltimaMovimentacaoPorId;
import br.gov.jfrj.siga.ex.logic.ExPodeEditarData;
import br.gov.jfrj.siga.ex.logic.ExPodeOtimizarQuadroDeExpedientes;
import br.gov.jfrj.siga.ex.model.enm.ExTipoDeMovimentacao;
import br.gov.jfrj.siga.ex.util.MascaraUtil;
Expand Down Expand Up @@ -2542,10 +2545,40 @@ public List listarMobilsPorGrupoEMarcas(boolean contar, Integer qtd, Integer off
return l;
}

public List listarMovimentacoesMesa(List<Long> listIdMobil, boolean trazerComposto) {
public List listarMovimentacoesMesa(List<Long> listIdMobil, DpPessoa titular, DpLotacao lotaTitular, boolean trazerComposto) {
// long tempoIni = System.nanoTime();
List<List<String>> l = new ArrayList<List<String>> ();
Query query = em()
Query query = null;
boolean podeBuscarUltimaMovimentacaoPorId = Ex
.getInstance()
.getComp()
.pode(ExPodeBuscarUltimaMovimentacaoPorId.class,titular, lotaTitular);

if (podeBuscarUltimaMovimentacaoPorId) {
query = em()
.createQuery(
"select "
+ "mob, "
+ (trazerComposto ? " frm.isComposto, " : "0, ")
+ "(select movUltima from ExMovimentacao movUltima "
+ " where movUltima.exMobil.idMobil = mob.idMobil and movUltima.idMov = ("
+ " select max(movUltima1.idMov) from ExMovimentacao movUltima1"
+ " where movUltima1.exMobil.idMobil = mob.idMobil "
+ " and movUltima1.exMovimentacaoCanceladora.idMov = null ) ), "
+ "(select movTramite from ExMovimentacao movTramite"
+ " where movTramite.exMobil.idMobil = mob.idMobil and movTramite.idMov = ("
+ " select max(movTramite1.idMov) from ExMovimentacao movTramite1"
+ " where movTramite1.exTipoMovimentacao = :tpmov "
+ " and movTramite1.exMobil.idMobil = mob.idMobil "
+ " and movTramite1.exMovimentacaoCanceladora.idMov = null ) ), "
+ "doc "
+ "from ExMobil mob "
+ "inner join mob.exDocumento doc "
+ (trazerComposto ? "inner join doc.exFormaDocumento frm " : "")
+ "where mob.idMobil in (:listIdMobil) "
);
} else {
query = em()
.createQuery(
"select "
+ "mob, "
Expand All @@ -2567,6 +2600,7 @@ public List listarMovimentacoesMesa(List<Long> listIdMobil, boolean trazerCompos
+ (trazerComposto ? "inner join doc.exFormaDocumento frm " : "")
+ "where mob.idMobil in (:listIdMobil) "
);
}
query.setParameter("tpmov", ExTipoDeMovimentacao.TRANSFERENCIA);
if (listIdMobil != null) {
query.setParameter("listIdMobil", listIdMobil);
Expand Down

0 comments on commit 17b012e

Please sign in to comment.