Skip to content

Commit

Permalink
Merge branch 'develop' into release_github
Browse files Browse the repository at this point in the history
  • Loading branch information
gigami committed Mar 16, 2021
2 parents 54a9ee9 + 06f87c1 commit 4bfb8b5
Show file tree
Hide file tree
Showing 32 changed files with 423 additions and 75 deletions.
17 changes: 16 additions & 1 deletion siga-base/src/main/java/br/gov/jfrj/siga/base/util/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.Arrays;
import java.util.Map;
import java.util.Optional;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;

import br.gov.jfrj.siga.base.Texto;
Expand Down Expand Up @@ -55,5 +58,17 @@ public static String getBaseUrl(HttpServletRequest request) {
return scheme + serverName + serverPort + contextPath;
}


/*
* Devolve o valor do cookie com o nome correspondente
*/
public static String getCookieValue(HttpServletRequest request, String name) {
final Cookie[] cookies = request.getCookies();
if(cookies == null) return null;
return Arrays.stream(cookies)
.filter(e -> name.equals(e.getName()))
.findAny()
.map(Cookie::getValue)
.orElse(null);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
CREATE TABLE `cp_contrato` (
`ID_ORGAO_USU` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`DT_CONTRATO` datetime DEFAULT NULL,
PRIMARY KEY (`ID_ORGAO_USU`),
KEY `cp_contrato_pk` (`ID_ORGAO_USU`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/* Permissões para botão de exportar dados para CSV */

-- Cadastro de Pessoa
INSERT INTO corporativo.cp_servico ( SIGLA_SERVICO, DESC_SERVICO, ID_SERVICO_PAI, ID_TP_SERVICO)
SELECT 'SIGA-GI-CAD_PESSOA-EXP_DADOS', 'Exportar Dados', max(id_servico) , '2'
FROM corporativo.cp_servico
WHERE SIGLA_SERVICO = 'SIGA-GI-CAD_PESSOA' ;

-- Cadastro de Cargo
INSERT INTO corporativo.cp_servico (SIGLA_SERVICO, DESC_SERVICO, ID_SERVICO_PAI, ID_TP_SERVICO)
SELECT 'SIGA-GI-CAD_CARGO-EXP_DADOS', 'Exportar Dados', max(id_servico), '2'
FROM corporativo.cp_servico
WHERE SIGLA_SERVICO = 'SIGA-GI-CAD_CARGO';

-- Cadastro de Função de Confiança
INSERT INTO corporativo.cp_servico ( SIGLA_SERVICO, DESC_SERVICO, ID_SERVICO_PAI, ID_TP_SERVICO)
SELECT 'SIGA-GI-CAD_FUNCAO-EXP_DADOS', 'Exportar Dados', max(id_servico) , '2'
FROM corporativo.cp_servico
WHERE SIGLA_SERVICO = 'SIGA-GI-CAD_FUNCAO';

-- Cadastro de Lotação
INSERT INTO corporativo.cp_servico ( SIGLA_SERVICO, DESC_SERVICO, ID_SERVICO_PAI, ID_TP_SERVICO)
SELECT 'SIGA-GI-CAD_LOTACAO-EXP_DADOS', 'Exportar Dados', max(id_servico) , '2'
FROM corporativo.cp_servico
WHERE SIGLA_SERVICO = 'SIGA-GI-CAD_LOTACAO';
34 changes: 30 additions & 4 deletions siga-ex/src/main/java/br/gov/jfrj/siga/ex/ExDocumento.java
Original file line number Diff line number Diff line change
Expand Up @@ -1974,7 +1974,6 @@ public String getAssinantesCompleto() {

if(Prop.isGovSP() && assinantesPorSenha != null && !"".equals(assinantesPorSenha)) {
Set<ExMovimentacao> listaAssinantesSenha1 = new TreeSet<ExMovimentacao>();
Set<ExMovimentacao> listaAssinantesSenha2 = new TreeSet<ExMovimentacao>();
Set<ExMovimentacao> listaAssinantesPor = new TreeSet<ExMovimentacao>();

listaAssinantesPor.addAll(getAssinaturasPorComSenha());
Expand All @@ -1984,14 +1983,15 @@ public String getAssinantesCompleto() {
for (ExMovimentacao por : listaAssinantesPor) {
porAss = por.getDescrMov() != null ? por.getDescrMov().substring(por.getDescrMov().lastIndexOf(":"), por.getDescrMov().length()) : "";
for (ExMovimentacao ass : listaAssinantesSenha1) {
if(ass.getCadastrante().getId().equals(ass.getSubscritor().getId()) || (ass.getDescrMov() != null && ass.getDescrMov().indexOf(porAss) == -1)) {
listaAssinantesSenha2.add(ass);
if(!ass.getCadastrante().getId().equals(ass.getSubscritor().getId()) && (ass.getDescrMov() != null && ass.getDescrMov().indexOf(porAss) != -1)) {
listaAssinantesSenha1.remove(ass);
break;
}
}
}

assinantesSenha = Documento
.getAssinantesString(listaAssinantesSenha2,getDtDoc());
.getAssinantesString(listaAssinantesSenha1,getDtDoc());
}

if (assinantesToken.length() > 0)
Expand Down Expand Up @@ -2915,5 +2915,31 @@ public Long getIdDocPrincipal() {
return this.idDocPrincipal;
}

/**
* Verifica se o documento contém um determinado mobil
*/
public boolean contemMobil(ExMobil mob) {
for (ExMobil m : getExMobilSet()) {
if (m.equals(mob))
return true;
}
return false;
}

/**
* Retorna se o móbil possui acompanhamento de protocolo gerado.
*
* @return
*/
public boolean temAcompanhamentoDeProtocolo() {
boolean b = false;
for (ExMovimentacao movRef : getExMovimentacaoSet()) {
if (!movRef.isCancelada()
&& movRef.getExTipoMovimentacao().getId() == ExTipoMovimentacao.TIPO_MOVIMENTACAO_GERAR_PROTOCOLO)
b = true;
}
return b;
}


}
8 changes: 6 additions & 2 deletions siga-ex/src/main/java/br/gov/jfrj/siga/ex/ExMovimentacao.java
Original file line number Diff line number Diff line change
Expand Up @@ -427,8 +427,12 @@ public static Integer tpMovDesempatePosicao(Long idTpMov) {
public int compareTo(final ExMovimentacao mov) {
try {
int i = 0;
if (getDtIniMov() != null)
i = getDtIniMov().compareTo(mov.getDtIniMov());
if (this.getDtTimestamp() != null) {
i = this.getDtTimestamp().compareTo(mov.getDtTimestamp());
} else if(this.getDtIniMov() != null) {
i = this.getDtIniMov().compareTo(mov.getDtIniMov());
}

if (i != 0)
return i;

Expand Down
7 changes: 1 addition & 6 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 @@ -415,18 +415,13 @@ public List<ExMovimentacao> consultarMovimentoIncluindoJuntadaPorMobils(List<ExM
Expression<Long> mobilRef = root.get("exMobilRef");
Join<ExMovimentacao, ExTipoMovimentacao> joinTipoMovimentacao = root.join("exTipoMovimentacao");

predicateMobilIgnorandoMovimentacaoDeJuntada = builder.and(mobil.in(mobils),
builder.notEqual(joinTipoMovimentacao.get("idTpMov"), ExTipoMovimentacao.TIPO_MOVIMENTACAO_JUNTADA),
builder.notEqual(joinTipoMovimentacao.get("idTpMov"), ExTipoMovimentacao.TIPO_MOVIMENTACAO_CANCELAMENTO_JUNTADA),
builder.notEqual(joinTipoMovimentacao.get("idTpMov"), ExTipoMovimentacao.TIPO_MOVIMENTACAO_CANCELAMENTO_DE_MOVIMENTACAO));

predicateMobilRefComoMovimentacaoDeJuntadaEDesentranhamento = builder.and(mobilRef.in(mobils),
builder.or(builder.equal(root.get("exTipoMovimentacao"), ExTipoMovimentacao.TIPO_MOVIMENTACAO_JUNTADA),
builder.equal(root.get("exTipoMovimentacao"), ExTipoMovimentacao.TIPO_MOVIMENTACAO_CANCELAMENTO_JUNTADA)),
builder.isNull(root.get("exMovimentacaoCanceladora"))
);

predicate = builder.or(predicateMobilIgnorandoMovimentacaoDeJuntada, predicateMobilRefComoMovimentacaoDeJuntadaEDesentranhamento);
predicate = builder.or(mobil.in(mobils), predicateMobilRefComoMovimentacaoDeJuntadaEDesentranhamento);

query.where(predicate)
.orderBy(builder.desc(root.get("dtTimestamp")));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ ${meta}

<c:set var="collapse_Expanded" scope="request" value="collapsible expanded" />

<c:set var="siga_version" scope="request" value="10.0.4.0" />
<c:set var="siga_version" scope="request" value="10.0.5.0" />

<c:choose>
<c:when test="${siga_cliente == 'GOVSP'}">
Expand Down
2 changes: 1 addition & 1 deletion siga-wf/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<dependency>
<groupId>com.crivano</groupId>
<artifactId>jflow</artifactId>
<version>1.0.6</version>
<version>1.0.7</version>
</dependency>

<dependency>
Expand Down
17 changes: 14 additions & 3 deletions siga-wf/src/main/java/br/gov/jfrj/siga/wf/dao/WfDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@
import br.gov.jfrj.siga.wf.model.WfVariavel;
import br.gov.jfrj.siga.wf.util.SiglaUtils;
import br.gov.jfrj.siga.wf.util.SiglaUtils.SiglaDecodificada;
import br.gov.jfrj.siga.wf.util.WfDefinicaoDeProcedimentoDaoFiltro;
import br.gov.jfrj.siga.wf.util.WfProcedimentoDaoFiltro;
import br.gov.jfrj.siga.wf.util.WfTarefa;

/**
Expand Down Expand Up @@ -270,7 +272,15 @@ public List<WfProcedimento> consultarProcedimentosParaEstatisticasPorPrincipalIn
return result;
}

public <T> T consultarPorSigla(String sigla, Class<T> clazz) {
public WfDefinicaoDeProcedimento consultarPorSigla(WfDefinicaoDeProcedimentoDaoFiltro flt) {
return consultarPorSigla(flt.getSigla(), WfDefinicaoDeProcedimento.class, flt.ouDefault);
}

public WfProcedimento consultarPorSigla(WfProcedimentoDaoFiltro flt) {
return consultarPorSigla(flt.getSigla(), WfProcedimento.class, flt.ouDefault);
}

public <T> T consultarPorSigla(String sigla, Class<T> clazz, CpOrgaoUsuario ouDefault) {
String acronimo = null;
if (clazz.isAssignableFrom(WfProcedimento.class)) {
acronimo = "WF";
Expand All @@ -279,7 +289,7 @@ public <T> T consultarPorSigla(String sigla, Class<T> clazz) {
} else {
throw new RuntimeException("Não é permitido consultar por sigla registros da classe " + clazz.getName());
}
SiglaDecodificada d = SiglaUtils.parse(sigla, acronimo, null);
SiglaDecodificada d = SiglaUtils.parse(sigla, acronimo, ouDefault);
Integer ano = d.ano;
Integer numero = d.numero;
CpOrgaoUsuario orgaoUsuario = d.orgaoUsuario;
Expand All @@ -288,7 +298,8 @@ public <T> T consultarPorSigla(String sigla, Class<T> clazz) {
CriteriaQuery<T> q = criteriaBuilder.createQuery(clazz);
Root<T> c = q.from(clazz);
Join<T, CpOrgaoUsuario> joinOrgao = c.join("orgaoUsuario", JoinType.INNER);
if (clazz.isAssignableFrom(Historico.class))
// if (clazz.isAssignableFrom(Historico.class))
if (Historico.class.isAssignableFrom(clazz))
q.where(cb().equal(c.get("numero"), numero), cb().equal(c.get("ano"), ano),
cb().equal(c.get("hisAtivo"), 1), cb().equal(joinOrgao.get("idOrgaoUsu"), orgaoUsuario.getId()));
else
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
import org.hibernate.annotations.BatchSize;

import com.crivano.jflow.model.ProcessInstance;
import com.crivano.jflow.model.TaskDefinition;
import com.crivano.jflow.model.enm.ProcessInstanceStatus;

import br.gov.jfrj.siga.Service;
Expand All @@ -47,6 +46,7 @@
import br.gov.jfrj.siga.ex.service.ExService;
import br.gov.jfrj.siga.model.ActiveRecord;
import br.gov.jfrj.siga.model.Objeto;
import br.gov.jfrj.siga.model.Selecionavel;
import br.gov.jfrj.siga.parser.PessoaLotacaoParser;
import br.gov.jfrj.siga.sinc.lib.Desconsiderar;
import br.gov.jfrj.siga.wf.dao.WfDao;
Expand All @@ -64,7 +64,7 @@
@BatchSize(size = 500)
@Table(name = "sigawf.wf_procedimento")
public class WfProcedimento extends Objeto
implements ProcessInstance<WfDefinicaoDeProcedimento, WfDefinicaoDeTarefa, WfResp> {
implements ProcessInstance<WfDefinicaoDeProcedimento, WfDefinicaoDeTarefa, WfResp>, Selecionavel {
public static ActiveRecord<WfProcedimento> AR = new ActiveRecord<>(WfProcedimento.class);

@Id
Expand Down Expand Up @@ -750,4 +750,10 @@ public String getEvent() {
return getEventoNome();
}

@Override
public String getDescricao() {
return getDefinicaoDeProcedimento().getDescricao()
+ (getDefinicaoDeTarefaCorrente() != null ? " - " + getDefinicaoDeTarefaCorrente().getNome() : "");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,12 @@ public static SiglaDecodificada parse(String sigla, String tipo, CpOrgaoUsuario
d.id = Long.parseLong(m2.group(1));
return d;
} else if (m1.find()) {
d.ano = Integer.parseInt(m1.group(3));
if (m1.group(3) != null)
d.ano = Integer.parseInt(m1.group(3));
if (m1.group(4) != null)
d.numero = Integer.parseInt(m1.group(4));
d.orgaoUsuario = mapAcronimo.get(m1.group(1));
if (m1.group(1) != null)
d.orgaoUsuario = mapAcronimo.get(m1.group(1));
if (d.orgaoUsuario == null && ouDefault != null)
d.orgaoUsuario = ouDefault;
if (d.ano == null)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package br.gov.jfrj.siga.wf.util;

import br.gov.jfrj.siga.dp.CpOrgaoUsuario;
import br.gov.jfrj.siga.model.dao.DaoFiltroSelecionavel;

public class WfDefinicaoDeProcedimentoDaoFiltro extends DaoFiltroSelecionavel {
public CpOrgaoUsuario ouDefault = null;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package br.gov.jfrj.siga.wf.util;

import br.gov.jfrj.siga.dp.CpOrgaoUsuario;
import br.gov.jfrj.siga.model.dao.DaoFiltroSelecionavel;

public class WfProcedimentoDaoFiltro extends DaoFiltroSelecionavel {
public CpOrgaoUsuario ouDefault = null;
}
1 change: 1 addition & 0 deletions siga/src/main/java/br/gov/jfrj/siga/api/v1/PessoasGet.java
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ private Pessoa pessoaToResultadoPesquisa(DpPessoa p) {
Cargo cargo = new Cargo();
FuncaoConfianca funcao = new FuncaoConfianca();
// Pessoa
pessoa.idPessoaIni = p.getIdInicial().toString();
pessoa.sigla = p.getSiglaCompleta();
pessoa.nome = p.getNomePessoa();
pessoa.isExternaPessoa = p.isUsuarioExterno();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ private Pessoa pessoaToResultadoPesquisa(DpPessoa p) {
Cargo cargo = new Cargo();
FuncaoConfianca funcao = new FuncaoConfianca();
// Pessoa
pessoa.idPessoaIni = p.getIdInicial().toString();
pessoa.sigla = p.getSiglaCompleta();
pessoa.nome = p.getNomePessoa();
pessoa.isExternaPessoa = p.isUsuarioExterno();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ private GenericoSelecao buscarGenericoPorSigla(String sigla, DpPessoa pes, DpLot
}

final Pattern p1 = Pattern.compile("^(?<orgao>" + acronimos.toString()
+ ")?-?(?:(?<especie>[A-Za-z]{3})|(?<modulo>SR|TMPSR|GC|TMPGC|TP))-?([0-9][0-9A-Za-z\\.\\-\\/]*)$");
+ ")?-?(?:(?<especie>[A-Za-z]{3})|(?<modulo>SR|TMPSR|GC|TMPGC|DP|WF|TP))-?([0-9][0-9A-Za-z\\.\\-\\/]*)$");
final Matcher m1 = p1.matcher(sigla);

final GenericoSelecao sel = new GenericoSelecao();
Expand Down Expand Up @@ -190,6 +190,12 @@ private GenericoSelecao buscarGenericoPorSigla(String sigla, DpPessoa pes, DpLot
case "TMPGC":
lurls.add(urlBase + "/sigagc/public/app/selecionar?sigla=" + sigla + incluirMatricula);
break;
case "DP": // Diagramas
lurls.add(urlBase + "/sigawf/public/app/diagrama/selecionar?sigla=" + sigla + incluirMatricula);
break;
case "WF": // Procedimentos
lurls.add(urlBase + "/sigawf/public/app/procedimento/selecionar?sigla=" + sigla + incluirMatricula);
break;
case "TP": // Transportes
lurls.add(urlBase + "/sigatp" + "/app/documento/selecionar?sigla=" + sigla + incluirMatricula
+ ";/sigatp/app/documento/exibir?sigla=");
Expand Down
2 changes: 1 addition & 1 deletion siga/src/main/webapp/META-INF/VERSION.MF
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Siga-Versao: 10.0.4.0
Siga-Versao: 10.0.5.0
6 changes: 5 additions & 1 deletion siga/src/main/webapp/css/style_siga.css
Original file line number Diff line number Diff line change
Expand Up @@ -404,4 +404,8 @@ article p em {
position: absolute;
display: none;
color: #DDD;
}
}

.div-width-min0 {
min-width: 0px !important;
}
6 changes: 5 additions & 1 deletion siga/src/main/webapp/css/style_siga_govsp.css
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,8 @@

p.gt-table-action-list a.link-tag {
margin-top: 0.4em;
}
}

.div-width-min0 {
min-width: 0px !important;
}
Original file line number Diff line number Diff line change
Expand Up @@ -1123,6 +1123,12 @@ public void juntar(final String sigla) {
result.include("doc", doc);
result.include("subscritorSel", new DpPessoaSelecao());
result.include("documentoRefSel", documentoRefSel);
if (doc.temAcompanhamentoDeProtocolo()) {
result.include("msgCabecClass", "alert-warning");
result.include("mensagemCabec", "Este documento possui acompanhamento do protocolo, portanto "
+ "o histórico do documento juntado também será visível no acompanhamento do protocolo.");
}

}

@Transacional
Expand Down
Loading

0 comments on commit 4bfb8b5

Please sign in to comment.