Skip to content

Commit

Permalink
Merge branch 'GITHUBdevelop' into GITHUBrelease
Browse files Browse the repository at this point in the history
  • Loading branch information
dinarde committed Apr 26, 2021
2 parents fbf1f24 + 2b455d0 commit 91431e8
Show file tree
Hide file tree
Showing 13 changed files with 168 additions and 39 deletions.
15 changes: 14 additions & 1 deletion siga-base/src/main/java/br/gov/jfrj/siga/base/Prop.java
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,19 @@ public static void defineGlobalProperties() {

/* Obriga o preenchimento da descrição da ciência */
provider.addPublicProperty("/siga.ciencia.preenchimento.obrigatorio", "true");


/* Cadastro de marcadores: Define um grupo da mesa default onde irá aparecer o marcador
* */
provider.addPublicProperty("/siga.marcadores.grupo.default", "");

/* Cadastro de marcadores: Lista de finalidades que a lotação poderá cadastrar. Default - todos
* Para selecionar apenas alguns, separar os nomes com vírgulas,
* por ex: "Etiqueta,Etiqueta Direcionada,Lista"
* */
provider.addPublicProperty("/siga.marcadores.lota.finalidades", "");
/* Cadastro de marcadores: Se true, exibe campo de data de ativação no cadastro de
* marcadores. Se false não exibe.
* */
provider.addPublicProperty("/siga.marcadores.exibe.dataativacao", "false");
}
}
17 changes: 13 additions & 4 deletions siga-cp/src/main/java/br/gov/jfrj/siga/cp/bl/CpBL.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@

import br.gov.jfrj.siga.base.AplicacaoException;
import br.gov.jfrj.siga.base.Correio;
import br.gov.jfrj.siga.base.Data;
import br.gov.jfrj.siga.base.GeraMessageDigest;
import br.gov.jfrj.siga.base.Prop;
import br.gov.jfrj.siga.base.RegraNegocioException;
Expand Down Expand Up @@ -1425,7 +1426,7 @@ public String obterURLPermanente(String tipoLink, String token) {

public void gravarMarcador(final Long id, final DpPessoa cadastrante, final DpLotacao lotacao, final CpIdentidade identidade,
final String descricao, final String descrDetalhada, final CpMarcadorCorEnum idCor, final CpMarcadorIconeEnum idIcone, final CpMarcadorGrupoEnum grupoId,
final CpMarcadorFinalidadeEnum idFinalidade) throws Exception {
final CpMarcadorFinalidadeEnum idFinalidade, final String dataAtivacao) throws Exception {
if (idFinalidade == CpMarcadorFinalidadeEnum.SISTEMA)
throw new AplicacaoException ("Não é permitido o cadastro de marcadores de sistema.");

Expand Down Expand Up @@ -1455,6 +1456,10 @@ public void gravarMarcador(final Long id, final DpPessoa cadastrante, final DpLo
if (idFinalidade == CpMarcadorFinalidadeEnum.PASTA_PADRAO && id == null && cpp > 0)
throw new AplicacaoException ("Só é permitido criar uma pasta padrão");

Date dtAtivacao = null;
if (dataAtivacao != null)
dtAtivacao = Data.parse(dataAtivacao);

if (id == null && (listaMarcadoresLotacaoEGerais.stream()
.filter(mar -> mar.getDescrMarcador()
.equals(descricao)).count() > 0))
Expand All @@ -1467,16 +1472,20 @@ public void gravarMarcador(final Long id, final DpPessoa cadastrante, final DpLo

marcadorAnt = dao().consultar(id, CpMarcador.class, false);
if (marcadorAnt != null) {
if (marcadorAnt.getDpLotacaoIni() != null &&
marcadorAnt.getDpLotacaoIni().getIdInicial() != cadastrante.getLotacao().getIdInicial())
throw new AplicacaoException ("Não é permitida a alteração de marcador de outra " + msgLotacao);

marcador.setHisIdIni(marcadorAnt.getHisIdIni());
marcador.setIdFinalidade(idFinalidade);
marcador.setOrdem(marcadorAnt.getOrdem());
marcador.setDpLotacaoIni(idFinalidade.getIdTpMarcador() == CpTipoMarcadorEnum.TIPO_MARCADOR_LOTACAO ? marcadorAnt.getDpLotacaoIni() : null);
marcador.setDpLotacaoIni(idFinalidade.getIdTpMarcador() == CpTipoMarcadorEnum.TIPO_MARCADOR_LOTACAO ? lotacao.getLotacaoInicial() : null);
marcador.setDescrMarcador(descricao);
marcador.setDescrDetalhada(descrDetalhada);
marcador.setIdGrupo(grupoId);
marcador.setIdCor(idCor);
marcador.setIdIcone(idIcone);
dao().gravarComHistorico(marcador, marcadorAnt, null, identidade);
dao().gravarComHistorico(marcador, marcadorAnt, dtAtivacao, identidade);
} else {
throw new AplicacaoException ("Marcador não existente para esta " + msgLotacao
+ " (" + id.toString() + ").");
Expand All @@ -1492,7 +1501,7 @@ public void gravarMarcador(final Long id, final DpPessoa cadastrante, final DpLo
marcador.setIdIcone(idIcone);
marcador.setDpLotacaoIni(idFinalidade.getIdTpMarcador() == CpTipoMarcadorEnum.TIPO_MARCADOR_LOTACAO ? lotacao.getLotacaoInicial() : null);
marcador.setOrdem(ordem);
dao().gravarComHistorico(marcador, null, null, identidade);
dao().gravarComHistorico(marcador, null, dtAtivacao, identidade);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

import br.gov.jfrj.siga.cp.CpTipoMarcadorEnum;
import br.gov.jfrj.siga.cp.converter.IEnumWithId;
import br.gov.jfrj.siga.base.Prop;
import br.gov.jfrj.siga.base.SigaMessages;

public enum CpMarcadorFinalidadeEnum implements IEnumWithId {
SISTEMA(1, CpMarcadorFinalidadeGrupoEnum.SISTEMA, "Sistema", "Marcador de Sistema",
Expand Down Expand Up @@ -45,10 +47,10 @@ public enum CpMarcadorFinalidadeEnum implements IEnumWithId {
CpMarcadorTipoExibicaoEnum.MENOR_DATA, CpMarcadorTipoInteressadoEnum.LOTACAO_OU_PESSOA,
CpMarcadorTipoTextoEnum.OPCIONAL, false, false),
//
GERAL_AGENDADA_XOR(6, CpMarcadorFinalidadeGrupoEnum.GERAL, "Geral Agendada Mutuamente Exclusiva",
"Marcador, mutuamente exclusivo, que pode ser definido por qualquer pessoa e estará visível, a partir de uma data definida, para quem receber com o documento. Apenas um marcador desse tipo pode ser definido para um mesmo documento",
GERAL_LIMITE_XOR(6, CpMarcadorFinalidadeGrupoEnum.GERAL, "Geral Com Data Limite e Mutuamente Exclusiva",
"Marcador, mutuamente exclusivo, que pode ser definido por qualquer pessoa e estará visível, com data limite, para quem receber com o documento. Apenas um marcador desse tipo pode ser definido para um mesmo documento",
CpTipoMarcadorEnum.TIPO_MARCADOR_GERAL, CpMarcadorTipoAplicacaoEnum.TODAS_AS_VIAS_OU_ULTIMO_VOLUME,
CpMarcadorTipoDataEnum.OBRIGATORIA, CpMarcadorTipoDataEnum.DESATIVADA, CpMarcadorTipoExibicaoEnum.IMEDIATA,
CpMarcadorTipoDataEnum.DESATIVADA, CpMarcadorTipoDataEnum.OBRIGATORIA, CpMarcadorTipoExibicaoEnum.IMEDIATA,
CpMarcadorTipoInteressadoEnum.ATENDENTE, CpMarcadorTipoTextoEnum.OPCIONAL, true, false),
//
LOCAL(100, CpMarcadorFinalidadeGrupoEnum.LOCAL, "Local",
Expand Down Expand Up @@ -189,9 +191,12 @@ public boolean isXor() {
}

public static List<CpMarcadorFinalidadeEnum> disponiveis(boolean geral, boolean lotacao) {
List<String> listaFinalidadesLotaValidas = Arrays.asList(Prop.get("marcadores.lota.finalidades").split(","));
return Arrays.asList(values()).stream()
.filter(f -> (geral && f.getIdTpMarcador() == CpTipoMarcadorEnum.TIPO_MARCADOR_GERAL)
|| (lotacao && f.getIdTpMarcador() == CpTipoMarcadorEnum.TIPO_MARCADOR_LOTACAO))
|| (lotacao && f.getIdTpMarcador() == CpTipoMarcadorEnum.TIPO_MARCADOR_LOTACAO
&& (listaFinalidadesLotaValidas.contains(f.toString())
|| listaFinalidadesLotaValidas.get(0).equals(""))))
.collect(Collectors.toList());
}

Expand Down
30 changes: 29 additions & 1 deletion siga-cp/src/main/java/br/gov/jfrj/siga/dp/dao/CpDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
import javax.persistence.criteria.Join;
import javax.persistence.criteria.JoinType;
import javax.persistence.criteria.Order;
import javax.persistence.criteria.ParameterExpression;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;

Expand Down Expand Up @@ -2761,8 +2762,11 @@ public List<CpMarcador> listarCpMarcadoresGerais(Boolean ativos) {
Predicate predicateAnd = criteriaBuilder.and(predicateNotEqualMarcadorSistema, predicateIsNullLotacao);
if (ativos == null || ativos) {
Predicate predicateNullHisDtFim = criteriaBuilder.isNull(cpMarcadorRoot.get("hisDtFim"));
Predicate predicateNullHisDtIni = criteriaBuilder.isNull(cpMarcadorRoot.get("hisDtIni"));
Predicate predicateHisDtIniLeToday = criteriaBuilder.lessThan(cpMarcadorRoot.<Date>get("hisDtIni"), criteriaBuilder.currentDate());
criteriaQuery.where(criteriaBuilder
.and(predicateAnd, predicateNullHisDtFim));
.and(predicateAnd, predicateNullHisDtFim,
criteriaBuilder.or(predicateNullHisDtIni, predicateHisDtIniLeToday)));
} else {
criteriaQuery.where(predicateAnd);
}
Expand All @@ -2771,6 +2775,10 @@ public List<CpMarcador> listarCpMarcadoresGerais(Boolean ativos) {
}

public List<CpMarcador> listarCpMarcadoresPorLotacao(DpLotacao lotacao, Boolean ativos) {
return listarCpMarcadoresPorLotacao(lotacao, ativos, false);
}

public List<CpMarcador> listarCpMarcadoresPorLotacao(DpLotacao lotacao, Boolean ativos, Boolean futuras) {
CriteriaBuilder criteriaBuilder = em().getCriteriaBuilder();
CriteriaQuery<CpMarcador> criteriaQuery = criteriaBuilder.createQuery(CpMarcador.class);
Root<CpMarcador> cpMarcadorRoot = criteriaQuery.from(CpMarcador.class);
Expand All @@ -2786,10 +2794,21 @@ public List<CpMarcador> listarCpMarcadoresPorLotacao(DpLotacao lotacao, Boolean
predicateEqualLotacao);
}

if (futuras != null && !futuras) {
predicateAnd = criteriaBuilder.and(predicateAnd,
criaPredicateDataFutura(criteriaBuilder, cpMarcadorRoot));
}
criteriaQuery.where(predicateAnd);
criteriaQuery.orderBy(criteriaBuilder.asc(cpMarcadorRoot.get("descrMarcador")));
return em().createQuery(criteriaQuery).getResultList().stream().filter(mar -> mar.getIdFinalidade().getIdTpMarcador() == CpTipoMarcadorEnum.TIPO_MARCADOR_LOTACAO).collect(Collectors.toList());
}

private Predicate criaPredicateDataFutura(CriteriaBuilder criteriaBuilder, Root<CpMarcador> cpMarcadorRoot) {
// Cria predicate para mostrar os marcadores a serem ativados futuramente (com data de inicio futura)
Predicate predicateNullHisDtIni = criteriaBuilder.isNull(cpMarcadorRoot.get("hisDtIni"));
Predicate predicateHisDtIniLeToday = criteriaBuilder.lessThan(cpMarcadorRoot.<Date>get("hisDtIni"), criteriaBuilder.currentDate());
return criteriaBuilder.or(predicateNullHisDtIni, predicateHisDtIniLeToday);
}

public CpMarcador obterPastaPadraoDaLotacao(DpLotacao lotacao) {
for (CpMarcador m : listarCpMarcadoresPorLotacao(lotacao, false))
Expand All @@ -2799,6 +2818,10 @@ public CpMarcador obterPastaPadraoDaLotacao(DpLotacao lotacao) {
}

public List<CpMarcador> listarCpMarcadoresPorLotacaoEGeral (DpLotacao lotacao, Boolean ativos) {
return listarCpMarcadoresPorLotacaoEGeral (lotacao, ativos, false);

}
public List<CpMarcador> listarCpMarcadoresPorLotacaoEGeral (DpLotacao lotacao, Boolean ativos, Boolean futuras) {
CriteriaBuilder criteriaBuilder = em().getCriteriaBuilder();
CriteriaQuery<CpMarcador> criteriaQuery = criteriaBuilder.createQuery(CpMarcador.class);
Root<CpMarcador> cpMarcadorRoot = criteriaQuery.from(CpMarcador.class);
Expand All @@ -2819,6 +2842,11 @@ public List<CpMarcador> listarCpMarcadoresPorLotacaoEGeral (DpLotacao lotacao, B
} else {
predicateAnd = predicateGeralOuLotacaoEspecificaENaoSistema;
}

if (futuras != null && !futuras) {
predicateAnd = criteriaBuilder.and(predicateAnd,
criaPredicateDataFutura(criteriaBuilder, cpMarcadorRoot));
}

criteriaQuery.where(predicateAnd);

Expand Down
8 changes: 6 additions & 2 deletions siga-ex/src/main/java/br/gov/jfrj/siga/ex/bl/Mesa2.java
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ public static class Marca implements ISwaggerModel {
public Date termino;
public String ref1;
public String ref2;
public String ref1DDMMYYYY;
public String ref2DDMMYYYY;
public Boolean daPessoa;
public Boolean deOutraPessoa;
public Boolean daLotacao;
Expand Down Expand Up @@ -236,8 +238,8 @@ private static List<MesaItem> listarReferencias(TipoDePainelEnum tipo,
t.icone = tag.marcador.getIdIcone().getCodigoFontAwesome();
t.cor = tag.marcador.getIdCor().getDescricao();
}
t.titulo = Data
.calcularTempoRelativo(tag.marca.getDtIniMarca());
t.titulo = Data.formatDDMMYY(tag.marca.getDtIniMarca()) + " ("
+ Data.calcularTempoRelativo(tag.marca.getDtIniMarca()) + ")";

if (tag.marca.getDpPessoaIni() != null) {
t.pessoa = tag.marca.getDpPessoaIni().getIdInicial().toString();
Expand All @@ -251,8 +253,10 @@ private static List<MesaItem> listarReferencias(TipoDePainelEnum tipo,
t.termino = tag.marca.getDtFimMarca();
if (tag.dtRef1 != null)
t.ref1 = Data.calcularTempoRelativoEmDias(tag.dtRef1);
t.ref1DDMMYYYY = Data.formatDDMMYY(tag.dtRef1);
if (tag.dtRef2 != null)
t.ref2 = Data.calcularTempoRelativoEmDias(tag.dtRef2);
t.ref2DDMMYYYY = Data.formatDDMMYY(tag.dtRef2);
if(tag.marca.getCpMarcador().isDemandaJudicial()) {
t.nome += " até " + tag.marca.getExMobil().getDoc().getMobilGeral()
.getExMovimentacaoSet().stream() //
Expand Down
8 changes: 6 additions & 2 deletions siga-le/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,14 @@ hs_err_pid*
/target/

# eclipse project
.project
.classpath
.tern-project
.settings
!.settings
!org.eclipse.wst.validation.prefs
.settings/org.eclipse.core.resources.prefs
.settings/org.eclipse.jdt.core.prefs
.settings/org.eclipse.wst.common.*
.settings/org.eclipse.wst.common.*

#compiled frontend
/src/main/webapp/index.html
Expand Down
10 changes: 10 additions & 0 deletions siga-le/.settings/org.eclipse.wst.validation.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
DELEGATES_PREFERENCE=delegateValidatorList
USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator;
USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator;
USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.701.v201707142105
eclipse.preferences.version=1
override=true
suspend=false
vals/org.eclipse.wst.jsdt.core.JsValidator/global=FF01
vals/org.eclipse.wst.json.core.json/global=FF03
vf.version=3
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,9 @@ public void lista() throws Exception {
List<CpMarcador> listMar = null;
try {
assertAcesso(ACESSO_CAD_MARCADOR_GERAL);
listMar = dao.listarCpMarcadoresPorLotacaoEGeral(getLotaTitular(), true);
listMar = dao.listarCpMarcadoresPorLotacaoEGeral(getLotaTitular(), true, true);
} catch (AplicacaoException e) {
listMar = dao.listarCpMarcadoresPorLotacao(getLotaTitular(), true);
listMar = dao.listarCpMarcadoresPorLotacao(getLotaTitular(), true, true);
}

result.include("listaMarcadores", listMar);
Expand Down Expand Up @@ -166,7 +166,8 @@ public void edita(final Long id) {
@Transacional
@Post("/app/marcador/gravar")
public void marcadorGravar(Long id, final String sigla, final String descricao, final String descrDetalhada,
final CpMarcadorCorEnum idCor, final CpMarcadorIconeEnum idIcone, final CpMarcadorGrupoEnum idGrupo, final CpMarcadorFinalidadeEnum idFinalidade)
final CpMarcadorCorEnum idCor, final CpMarcadorIconeEnum idIcone, final CpMarcadorGrupoEnum idGrupo,
final CpMarcadorFinalidadeEnum idFinalidade, final String dataAtivacao)
throws Exception {

assertAcesso(ACESSO_CAD_MARCADOR_LOTA);
Expand All @@ -181,7 +182,7 @@ public void marcadorGravar(Long id, final String sigla, final String descricao,
}

Cp.getInstance().getBL().gravarMarcador(id, getCadastrante(), getLotaTitular(),
getIdentidadeCadastrante(), descricao, descrDetalhada, idCor, idIcone, idGrupo, idFinalidade);
getIdentidadeCadastrante(), descricao, descrDetalhada, idCor, idIcone, idGrupo, idFinalidade, dataAtivacao);

result.redirectTo(this).lista();
}
Expand Down
32 changes: 26 additions & 6 deletions siga/src/main/webapp/WEB-INF/page/cpMarcador/edita.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,17 @@
buffer="64kb"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://localhost/jeetags" prefix="siga"%>
<%@ taglib uri="http://localhost/libstag" prefix="f"%>
<link rel="stylesheet" href="/siga/javascript/select2/select2.css" type="text/css" media="screen, projection" />
<link rel="stylesheet" href="/siga/javascript/select2/select2-bootstrap.css" type="text/css" media="screen, projection" />
<link rel="stylesheet"
href="/siga/css/selectpicker/bootstrap-select.min.css" type="text/css"
media="screen, projection" />

<siga:pagina titulo="Editar Marcador">
<!-- main content -->
<c:set var="grupoDefault" scope="session" value="${f:resource('/siga.marcadores.grupo.default')}" />
<c:set var="exibeDtAtivacao" scope="session" value="${f:resource('/siga.marcadores.exibe.dataativacao')}" />
<div class="container-fluid">
<div class="card bg-light mb-3">
<div class="card-header">
Expand Down Expand Up @@ -75,14 +80,16 @@
</div>
</div>
</div>
<div class="col col-12 col-md-6 col-lg-3">
<div class="col col-12 col-md-6 col-lg-3 ${not empty grupoDefault ? 'd-none' : '' }">
<div class="form-group" id="grupo">
<label for="idGrupo">Grupo</label> <select
class="form-control" id="idGrupo" name="idGrupo"
value="${idGrupo}">
<c:forEach items="${listaGrupos}" var="item">
<option value="${item.name()}"
${(item eq marcador.idGrupo) or (empty marcador and item eq 'OUTROS') ? 'selected' : ''}>
<option value="${item.name()}"
${(not empty grupoDefault and item.name() eq grupoDefault)
or (empty grupoDefault and ((item eq marcador.idGrupo)
or (empty marcador and item eq 'OUTROS'))) ? 'selected' : ''}>
${item.nome}</option>
</c:forEach>
</select>
Expand All @@ -98,17 +105,27 @@
<div class="col col-12">
<div class="form-group" id="finalidade">
<label for="idFinalidade">Finalidade do Marcador</label> <select
class="form-control" id="idFinalidade" name="idFinalidade"
class="form-control siga-select2" id="idFinalidade" name="idFinalidade"
value="${idFinalidade}">
<c:forEach items="${listaFinalidade}" var="item">
<option value="${item.name()}"
<option class="small" value="${item.name()}"
${item eq marcador.idFinalidade ? 'selected' : ''}>
${item.nome} - ${item.descricao}</option>
<div></div><h4><b>${item.nome}</b> </h4><p><small> - ${item.descricao}</small></p></div></option>
</c:forEach>
</select>
</div>
</div>
</div>
<div class="form-group row ${exibeDtAtivacao? '' : 'd-none'}">
<div class="col-6 col-md-3">
<label for="dataAtivacao">Data de Ativação</label> <input
name="dataAtivacao" id="dataAtivacao" class="form-control campoData"
onblur="javascript:verifica_data(this,0);" autocomplete="off" />
<small>Opcional. Data em que o marcador deve aparecer na lista de marcadores do usuário.
Se não informado, aparece imediatamente.</small>
</div>
</div>

<div class="form-group">
<input type="submit" type="button"
class="btn btn-primary btn-salvar" value="OK"> <a
Expand All @@ -121,6 +138,9 @@
</siga:pagina>
<script type="text/javascript"
src="/siga/javascript/selectpicker/bootstrap-select.min.js"></script>
<script type="text/javascript" src="/siga/javascript/select2/select2.min.js"></script>
<script type="text/javascript" src="/siga/javascript/select2/i18n/pt-BR.js"></script>
<script type="text/javascript" src="/siga/javascript/siga.select2.js"></script>
<script>
function mudaCorAmostra(cor) {
$("#idCorAmostra").css("color", cor);
Expand Down
Loading

0 comments on commit 91431e8

Please sign in to comment.