From ad86a75b4ad131aaf43078d3e2fafc2a5240b540 Mon Sep 17 00:00:00 2001
From: rogerio.costa
Date: Fri, 29 Apr 2016 10:15:31 -0300
Subject: [PATCH] #268 Pesquisar Documentos e Processos
---
cit-ecm-api/src/main/java/br/com/centralit/api/dao/UnidadeProcessoDao.java | 19 +++++++++++++++++++
cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/UnidadeProcessoDaoHibernate.java | 31 +++++++++++++++++++++++++++++++
cit-ecm-api/src/main/java/br/com/centralit/api/model/AnexoGed.java | 2 +-
cit-ecm-api/src/main/java/br/com/centralit/api/model/DocumentoGed.java | 24 ++++++++++++------------
cit-ecm-api/src/main/java/br/com/centralit/api/model/HipoteseLegal.java | 3 ++-
cit-ecm-api/src/main/java/br/com/centralit/api/model/InteressadoProcesso.java | 2 +-
cit-ecm-api/src/main/java/br/com/centralit/api/model/NivelAcessoTipoDocumento.java | 2 +-
cit-ecm-api/src/main/java/br/com/centralit/api/model/NivelAcessoTipoProcesso.java | 2 +-
cit-ecm-api/src/main/java/br/com/centralit/api/model/PlanoClassificacao.java | 6 ++++--
cit-ecm-api/src/main/java/br/com/centralit/api/model/Processo.java | 25 +++++++++++++------------
cit-ecm-api/src/main/java/br/com/centralit/api/model/TipoDocumento.java | 2 +-
cit-ecm-api/src/main/java/br/com/centralit/api/model/TipoProcesso.java | 4 ++--
cit-ecm-api/src/main/java/br/com/centralit/api/model/UnidadeProcesso.java | 4 ++--
cit-ecm-api/src/main/java/br/com/centralit/api/security/CustomWebSecurityExpresssionRoot.java | 22 ++++++++++++++++++++++
cit-ecm-api/src/main/java/br/com/centralit/api/service/CredencialProcessoService.java | 36 ++++++++++++++++++++++++++++++++++++
cit-ecm-api/src/main/java/br/com/centralit/api/service/ProcessoService.java | 19 +++++++++++++++++++
cit-ecm-api/src/main/java/br/com/centralit/api/service/UnidadeProcessoService.java | 19 +++++++++++++++++++
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/CredencialProcessoServiceImpl.java | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/ProcessoServiceImpl.java | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/SolrServiceImpl.java | 7 +++++--
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/UnidadeProcessoServiceImpl.java | 28 ++++++++++++++++++++++++++++
cit-ecm-api/src/main/resources/scripts/v1.0.0-alpha9/01-cit-ecm-1.0.0-ALFA-3-postgres.sql | 7 ++++++-
cit-ecm-web/src/main/java/br/com/centralit/controller/CredencialProcessoController.java | 13 ++++++++++++-
cit-ecm-web/src/main/java/br/com/centralit/controller/ProcessoController.java | 13 +++++++++++--
cit-ecm-web/src/main/java/br/com/centralit/controller/UnidadeProcessoController.java | 37 +++++++++++++++++++++++++++++++------
cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java | 2 ++
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoController.js | 31 +++++++++++++++++++++++++++----
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/SolrSearchController.js | 176 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------
cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/CredencialProcessoRepository.js | 8 ++++++--
cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/ProcessoRepository.js | 5 +++++
cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/UnidadeProcessoRepository.js | 5 +++++
cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeInformacaoProcesso.html | 8 +++++++-
cit-ecm-web/src/main/webapp/html/pesquisa/pesquisa.html | 30 ++++++++++++++++++++++--------
33 files changed, 644 insertions(+), 78 deletions(-)
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/dao/UnidadeProcessoDao.java b/cit-ecm-api/src/main/java/br/com/centralit/api/dao/UnidadeProcessoDao.java
index 2760975..d2e4a32 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/dao/UnidadeProcessoDao.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/dao/UnidadeProcessoDao.java
@@ -149,4 +149,23 @@ public interface UnidadeProcessoDao extends CitGenericDAO {
*/
Boolean isProcessoEnviado(Long idProcesso);
+ /**
+ *
+ * Iniciativa(s): NUMERO_INICIATIVA
+ *
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
+ * Método responsável por verificar se o processo pertence a unidade
+ *
+ * @author rogerio.costa
+ *
+ * @param idProcesso
+ * @param idUnidade
+ * @return boolean
+ */
+ boolean isProcessoNaUnidadeUsuarioLogado(Long idProcesso, Long idUnidade);
+
}
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/UnidadeProcessoDaoHibernate.java b/cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/UnidadeProcessoDaoHibernate.java
index e702058..7f1fb68 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/UnidadeProcessoDaoHibernate.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/UnidadeProcessoDaoHibernate.java
@@ -321,4 +321,35 @@ public class UnidadeProcessoDaoHibernate extends CitGenericDAOImpl implements Un
return detachedCriteriaPrivilegio;
}
+
+ /**
+ *
+ * Iniciativa(s): NUMERO_INICIATIVA
+ *
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
+ * Método responsável por verificar se o processo pertence a unidade
+ *
+ * @author rogerio.costa
+ *
+ * @param idProcesso
+ * @param idUnidade
+ * @return boolean
+ */
+ public boolean isProcessoNaUnidadeUsuarioLogado(Long idProcesso, Long idUnidade) {
+
+ Criteria criteria = this.newCriteria();
+
+ criteria.setProjection(Projections.id());
+ criteria.add(Restrictions.eq("processo.id", idProcesso));
+ criteria.add(Restrictions.eq("unidade.id", idUnidade));
+ criteria.add(Restrictions.isNull("dataInativo"));
+ criteria.setMaxResults(1);
+
+ return UtilObjeto.isReferencia(criteria.uniqueResult());
+
+ }
}
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/model/AnexoGed.java b/cit-ecm-api/src/main/java/br/com/centralit/api/model/AnexoGed.java
index e4ab535..f3e42d1 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/model/AnexoGed.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/model/AnexoGed.java
@@ -94,7 +94,7 @@ public class AnexoGed extends PersistentObjectUnidade implements DocumentoGedInt
/** Atributo dominioTipoAnexo. */
@ManyToOne(fetch = FetchType.EAGER, optional = true)
- @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class })
+ @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, Views.processoVHview.class})
private Dominio dominioTipoAnexo;
/** Atributo MultipartFile. */
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/model/DocumentoGed.java b/cit-ecm-api/src/main/java/br/com/centralit/api/model/DocumentoGed.java
index 156eb81..eaf3308 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/model/DocumentoGed.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/model/DocumentoGed.java
@@ -79,11 +79,11 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable {
private Long id;
/** Atributo assuntoComplementar. */
- @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, ViewsEcm.ClassificacaoDocumentoGedView.class })
+ @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, ViewsEcm.ClassificacaoDocumentoGedView.class, Views.processoVHview.class})
private String assuntoComplementar;
/** Atributo numero. */
- @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, ViewsEcm.ClassificacaoDocumentoGedView.class })
+ @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, ViewsEcm.ClassificacaoDocumentoGedView.class, Views.processoVHview.class})
private String numero;
/** Atributo idRaiz. */
@@ -95,23 +95,23 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable {
private Boolean novaVersao;
/** Atributo versaoDocumento. */
- @JsonView({ Views.DocumentoGedEdit.class, Views.ProcessoEdit.class })
+ @JsonView({ Views.DocumentoGedEdit.class, Views.ProcessoEdit.class, Views.processoVHview.class})
private Double versaoDocumento;
/** Atributo cancelado. */
- @JsonView({ Views.ProcessoEdit.class })
+ @JsonView({ Views.ProcessoEdit.class, Views.processoVHview.class})
private Boolean cancelado;
@JsonView({ Views.DocumentoGedEdit.class })
private String localizacao;
/** Atributo conteudo. */
- @JsonView({ ViewsEcm.DocumentoGedEdit.class })
+ @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.processoVHview.class})
@Transient
private String conteudo;
/** Atributo tipoAssunto. */
- @JsonView({ Views.DocumentoGedEdit.class })
+ @JsonView({ Views.DocumentoGedEdit.class, Views.processoVHview.class })
private String tipoAssunto;
/** Atributo conteudoCriptografado. */
@@ -121,7 +121,7 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable {
private byte[] conteudoCriptografado;
/** Atributo icon. */
- @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, ViewsEcm.ClassificacaoDocumentoGedView.class })
+ @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, ViewsEcm.ClassificacaoDocumentoGedView.class, Views.processoVHview.class})
private String icon;
@Temporal(TemporalType.TIMESTAMP)
@@ -143,7 +143,7 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable {
/** Atributo formaCriacao. */
@ManyToOne(fetch = FetchType.LAZY)
- @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class })
+ @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, Views.processoVHview.class})
private Dominio formaCriacao;
/** Atributo status. */
@@ -177,12 +177,12 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable {
/** Atributo tipoDocumento. */
@ManyToOne(fetch = FetchType.LAZY)
- @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class })
+ @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, Views.processoVHview.class})
private TipoDocumento tipoDocumento;
/** Atributo nivelAcesso. */
@ManyToOne(fetch = FetchType.EAGER)
- @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, ViewsEcm.ClassificacaoDocumentoGedView.class })
+ @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, ViewsEcm.ClassificacaoDocumentoGedView.class, Views.processoVHview.class })
private NivelAcessoTipoDocumento nivelAcesso;
@ManyToOne(fetch = FetchType.EAGER)
@@ -191,7 +191,7 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable {
/** Atributo sigilo. */
@ManyToOne(fetch = FetchType.LAZY)
- @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, ViewsEcm.ClassificacaoDocumentoGedView.class })
+ @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, ViewsEcm.ClassificacaoDocumentoGedView.class, Views.processoVHview.class})
private Sigilo sigilo;
@ManyToOne(fetch = FetchType.LAZY)
@@ -220,7 +220,7 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable {
/** Atributo anexo. */
@OneToOne(mappedBy = "documentoGed", fetch = FetchType.EAGER)
- @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, ViewsEcm.ClassificacaoDocumentoGedView.class })
+ @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, ViewsEcm.ClassificacaoDocumentoGedView.class, Views.processoVHview.class})
private AnexoGed anexo;
/** Atributo versaoAnterior. */
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/model/HipoteseLegal.java b/cit-ecm-api/src/main/java/br/com/centralit/api/model/HipoteseLegal.java
index ac9743a..95cd3e0 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/model/HipoteseLegal.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/model/HipoteseLegal.java
@@ -69,7 +69,8 @@ public class HipoteseLegal extends PersistentObjectAudit {
private String descricao;
/** Atributo nome. */
- @JsonView({ ViewsEcm.HipoteseLegalList.class, ViewsEcm.TipoProcessoList.class, ViewsEcm.TipoDocumentoEdit.class, ViewsEcm.NivelAcessoTipoDocumentoEdit.class, ViewsEcm.DocumentoGedEdit.class, ViewsEcm.ProcessoEdit.class, ViewsEcm.NivelAcessoTipoProcessoEdit.class })
+ @JsonView({ ViewsEcm.HipoteseLegalList.class, ViewsEcm.TipoProcessoList.class, ViewsEcm.TipoDocumentoEdit.class, ViewsEcm.NivelAcessoTipoDocumentoEdit.class, ViewsEcm.DocumentoGedEdit.class, ViewsEcm.ProcessoEdit.class, ViewsEcm.NivelAcessoTipoProcessoEdit.class,
+ Views.processoVHview.class})
private String nome;
/** Atributo fundamentacaoLegal. */
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/model/InteressadoProcesso.java b/cit-ecm-api/src/main/java/br/com/centralit/api/model/InteressadoProcesso.java
index 1c237da..1b67a03 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/model/InteressadoProcesso.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/model/InteressadoProcesso.java
@@ -63,7 +63,7 @@ public class InteressadoProcesso extends PersistentObjectAudit {
/** Atributo interessado. */
@ManyToOne(fetch = FetchType.LAZY)
- @JsonView({ ViewsEcm.ProcessoEdit.class })
+ @JsonView({ ViewsEcm.ProcessoEdit.class, Views.processoVHview.class})
private Pessoa interessado;
/**
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/model/NivelAcessoTipoDocumento.java b/cit-ecm-api/src/main/java/br/com/centralit/api/model/NivelAcessoTipoDocumento.java
index 723c264..0b4b30d 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/model/NivelAcessoTipoDocumento.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/model/NivelAcessoTipoDocumento.java
@@ -64,7 +64,7 @@ public class NivelAcessoTipoDocumento extends PersistentObjectAudit {
/** Atributo tipoAcesso. */
@ManyToOne(fetch = FetchType.LAZY)
- @JsonView({ ViewsEcm.TipoDocumentoEdit.class, ViewsEcm.NivelAcessoTipoDocumentoEdit.class, ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class })
+ @JsonView({ ViewsEcm.TipoDocumentoEdit.class, ViewsEcm.NivelAcessoTipoDocumentoEdit.class, ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, Views.processoVHview.class })
private Dominio nivelAcesso;
/** Atributo tipoDocumento. */
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/model/NivelAcessoTipoProcesso.java b/cit-ecm-api/src/main/java/br/com/centralit/api/model/NivelAcessoTipoProcesso.java
index f21d772..e1c67e4 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/model/NivelAcessoTipoProcesso.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/model/NivelAcessoTipoProcesso.java
@@ -72,7 +72,7 @@ public class NivelAcessoTipoProcesso extends PersistentObjectAudit {
/** Atributo tipoAcesso. */
@ManyToOne(fetch = FetchType.LAZY)
- @JsonView({ ViewsEcm.TipoProcessoEdit.class, ViewsEcm.NivelAcessoTipoProcessoEdit.class, Views.ProcessoList.class, Views.UnidadeProcessoListView.class })
+ @JsonView({ ViewsEcm.TipoProcessoEdit.class, ViewsEcm.NivelAcessoTipoProcessoEdit.class, Views.ProcessoList.class, Views.UnidadeProcessoListView.class, Views.processoVHview.class})
private Dominio nivelAcesso;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "nivelAcessoTipoProcesso", cascade = CascadeType.ALL)
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/model/PlanoClassificacao.java b/cit-ecm-api/src/main/java/br/com/centralit/api/model/PlanoClassificacao.java
index 435af69..356ef10 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/model/PlanoClassificacao.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/model/PlanoClassificacao.java
@@ -77,7 +77,8 @@ public class PlanoClassificacao extends PersistentObjectAuditOrganizacao impleme
private String codigo;
/** Atributo nome. */
- @JsonView({ ViewsEcm.PlanoClassificacaoListView.class, ViewsEcm.PlanoClassificacaoParent.class, ViewsEcm.PlanoClassificacaoAutocompleteRecursive.class, ViewsEcm.PlanoCLassificacaoAutoComplete.class, ViewsEcm.TipoDocumentoEdit.class, ViewsEcm.PlanoCLassificacaoAutoComplete.class, ViewsEcm.TipoProcessoEdit.class, ViewsEcm.DocumentoGedEdit.class, ViewsEcm.ProcessoEdit.class })
+ @JsonView({ ViewsEcm.PlanoClassificacaoListView.class, ViewsEcm.PlanoClassificacaoParent.class, ViewsEcm.PlanoClassificacaoAutocompleteRecursive.class, ViewsEcm.PlanoCLassificacaoAutoComplete.class, ViewsEcm.TipoDocumentoEdit.class, ViewsEcm.PlanoCLassificacaoAutoComplete.class, ViewsEcm.TipoProcessoEdit.class, ViewsEcm.DocumentoGedEdit.class, ViewsEcm.ProcessoEdit.class,
+ Views.processoVHview.class})
private String nome;
/** Atributo observacao. */
@@ -100,7 +101,8 @@ public class PlanoClassificacao extends PersistentObjectAuditOrganizacao impleme
private Boolean permitirUsarComoClassificacao;
@Transient
- @JsonView({ ViewsEcm.PlanoCLassificacaoAutoComplete.class, ViewsEcm.TipoDocumentoEdit.class, ViewsEcm.TipoProcessoEdit.class, Views.ProcessoList.class, Views.DocumentoGedEdit.class, ViewsEcm.TipoDocumentoPlanoClassificacaoAutoCompleteView.class, Views.UnidadeProcessoListView.class })
+ @JsonView({ ViewsEcm.PlanoCLassificacaoAutoComplete.class, ViewsEcm.TipoDocumentoEdit.class, ViewsEcm.TipoProcessoEdit.class, Views.ProcessoList.class, Views.DocumentoGedEdit.class, ViewsEcm.TipoDocumentoPlanoClassificacaoAutoCompleteView.class, Views.UnidadeProcessoListView.class,
+ Views.processoVHview.class})
private String assunto;
/** Atributo tipoDestinacao. */
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/model/Processo.java b/cit-ecm-api/src/main/java/br/com/centralit/api/model/Processo.java
index 097feed..42643aa 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/model/Processo.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/model/Processo.java
@@ -80,11 +80,11 @@ public class Processo extends PersistentObjectUnidade {
/** Atributo id. */
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
- @JsonView({ Views.GenericView.class, Views.UnidadeProcessoListView.class })
+ @JsonView({ Views.GenericView.class })
private Long id;
/** Atributo assuntoComplementar. */
- @JsonView({ Views.ProcessoList.class, Views.UnidadeProcessoListView.class })
+ @JsonView({ Views.ProcessoList.class, Views.UnidadeProcessoListView.class, Views.processoVHview.class })
private String assuntoComplementar;
/** Atributo dataReferencia. */
@@ -101,7 +101,7 @@ public class Processo extends PersistentObjectUnidade {
private Calendar dataConclusao;
/** Atributo nup. */
- @JsonView({ Views.ProcessoList.class, Views.ProcessoRelacionadoList.class, Views.AnexarProcesso.class, Views.ProcessoAutoCompleteView.class, Views.UnidadeProcessoListView.class })
+ @JsonView({ Views.ProcessoList.class, Views.ProcessoRelacionadoList.class, Views.AnexarProcesso.class, Views.ProcessoAutoCompleteView.class, Views.UnidadeProcessoListView.class, Views.processoVHview.class })
private String nup;
/** Atributo nome. */
@@ -112,14 +112,14 @@ public class Processo extends PersistentObjectUnidade {
private Long idTask;
/** Atributo observacaoGeral. */
- @JsonView({ Views.ProcessoEdit.class })
+ @JsonView({ Views.ProcessoEdit.class, Views.processoVHview.class })
private String observacaoGeral;
@JsonView({ Views.ProcessoEdit.class })
private String tipoAssunto;
/** Atributo idProcessInstance. */
- @JsonView({ Views.ProcessoList.class, Views.UnidadeProcessoListView.class })
+ @JsonView({ Views.ProcessoList.class, Views.UnidadeProcessoListView.class, Views.processoVHview.class })
private Long idProcessInstance;
/** Atributo aprovado. */
@@ -140,7 +140,7 @@ public class Processo extends PersistentObjectUnidade {
/** Atributo status. */
@ManyToOne(fetch = FetchType.LAZY)
- @JsonView({ Views.ProcessoEdit.class, Views.UnidadeProcessoListView.class })
+ @JsonView({ Views.ProcessoEdit.class, Views.UnidadeProcessoListView.class, Views.processoVHview.class })
private Dominio status;
/** Atributo tramitarDocumento. */
@@ -149,18 +149,18 @@ public class Processo extends PersistentObjectUnidade {
private TramitarDocumento tramitarDocumento;
/** Atributo tipoProcesso. */
- @JsonView({ Views.ProcessoList.class, Views.ProcessoRelacionadoList.class, Views.AnexarProcesso.class, Views.UnidadeProcessoListView.class })
+ @JsonView({ Views.ProcessoList.class, Views.ProcessoRelacionadoList.class, Views.AnexarProcesso.class, Views.UnidadeProcessoListView.class, Views.processoVHview.class })
@ManyToOne(fetch = FetchType.LAZY)
private TipoProcesso tipoProcesso;
/** Atributo assunto. */
@ManyToOne(fetch = FetchType.LAZY)
- @JsonView({ Views.ProcessoList.class, Views.UnidadeProcessoListView.class })
+ @JsonView({ Views.ProcessoList.class, Views.UnidadeProcessoListView.class, Views.processoVHview.class })
private PlanoClassificacao assunto;
/** Atributo nivelAcesso. */
@ManyToOne(fetch = FetchType.LAZY)
- @JsonView({ Views.ProcessoList.class, Views.UnidadeProcessoListView.class })
+ @JsonView({ Views.ProcessoList.class, Views.UnidadeProcessoListView.class, Views.processoVHview.class })
private NivelAcessoTipoProcesso nivelAcesso;
@ManyToOne(fetch = FetchType.LAZY)
@@ -174,7 +174,7 @@ public class Processo extends PersistentObjectUnidade {
/** Atributo hipoteseLegal. */
@ManyToOne(fetch = FetchType.LAZY)
- @JsonView({ Views.ProcessoEdit.class })
+ @JsonView({ Views.ProcessoEdit.class, Views.processoVHview.class })
private HipoteseLegal hipoteseLegal;
/** Atributo cienciaProcesso. */
@@ -199,12 +199,12 @@ public class Processo extends PersistentObjectUnidade {
/** Atributo Interessados. */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "processo", cascade = CascadeType.ALL, orphanRemoval = true)
- @JsonView({ Views.ProcessoEdit.class })
+ @JsonView({ Views.ProcessoEdit.class, Views.processoVHview.class })
private Collection interessados;
/** Atributo documentos. */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "processo", cascade = CascadeType.ALL)
- @JsonView({ Views.ProcessoEdit.class })
+ @JsonView({ Views.ProcessoEdit.class, Views.processoVHview.class})
private Collection documentos;
/** Atributo relacionados. */
@@ -226,6 +226,7 @@ public class Processo extends PersistentObjectUnidade {
private Collection credenciais;
/** Atributo unidadesProcesso. */
+ @JsonView({ Views.processoVHview.class })
@OneToMany(fetch = FetchType.LAZY, mappedBy = "processo", cascade = CascadeType.ALL)
private Collection unidadesProcesso;
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/model/TipoDocumento.java b/cit-ecm-api/src/main/java/br/com/centralit/api/model/TipoDocumento.java
index 2f228c8..3e90764 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/model/TipoDocumento.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/model/TipoDocumento.java
@@ -67,7 +67,7 @@ public class TipoDocumento extends PersistentObjectAudit {
private String descricao;
/** Atributo nome. */
- @JsonView({ ViewsEcm.TipoDocumentoList.class, ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class })
+ @JsonView({ ViewsEcm.TipoDocumentoList.class, ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, Views.processoVHview.class })
private String nome;
/** Atributo formaCriacao. */
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/model/TipoProcesso.java b/cit-ecm-api/src/main/java/br/com/centralit/api/model/TipoProcesso.java
index 1a02942..1de8902 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/model/TipoProcesso.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/model/TipoProcesso.java
@@ -63,11 +63,11 @@ public class TipoProcesso extends PersistentObjectUnidade {
private Long id;
/** Atributo descricao. */
- @JsonView({ ViewsEcm.TipoProcessoList.class, Views.UnidadeProcessoListView.class })
+ @JsonView({ ViewsEcm.TipoProcessoList.class, Views.UnidadeProcessoListView.class})
private String descricao;
/** Atributo nome. */
- @JsonView({ ViewsEcm.TipoProcessoList.class, Views.ProcessoList.class, Views.ProcessoRelacionadoList.class })
+ @JsonView({ ViewsEcm.TipoProcessoList.class, Views.ProcessoList.class, Views.ProcessoRelacionadoList.class, Views.processoVHview.class})
private String nome;
/** Atributo nome. */
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/model/UnidadeProcesso.java b/cit-ecm-api/src/main/java/br/com/centralit/api/model/UnidadeProcesso.java
index 568c355..84a6f38 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/model/UnidadeProcesso.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/model/UnidadeProcesso.java
@@ -77,12 +77,12 @@ public class UnidadeProcesso extends PersistentObjectAudit {
/** Atributo grupo. */
@ManyToOne(fetch = FetchType.LAZY)
- @JsonView({ Views.EnviarProcessoView.class})
+ @JsonView({ Views.EnviarProcessoView.class, Views.processoVHview.class})
private Unidade unidade;
/** Atributo usuarioResponsavel. */
@ManyToOne(fetch = FetchType.LAZY)
- @JsonView({ Views.EnviarProcessoView.class, Views.UnidadeProcessoListView.class })
+ @JsonView({ Views.EnviarProcessoView.class, Views.UnidadeProcessoListView.class, Views.processoVHview.class})
private Usuario usuarioResponsavel;
/**
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/security/CustomWebSecurityExpresssionRoot.java b/cit-ecm-api/src/main/java/br/com/centralit/api/security/CustomWebSecurityExpresssionRoot.java
index eafd839..a32ac74 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/security/CustomWebSecurityExpresssionRoot.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/security/CustomWebSecurityExpresssionRoot.java
@@ -100,5 +100,27 @@ public class CustomWebSecurityExpresssionRoot extends WebSecurityExpressionRoot
return this.credencialProcessoService.permiteRenunciar(idProcesso);
}
+
+ /**
+ *
+ * Iniciativa(s): NUMERO_INICIATIVA
+ *
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
+ * Método responsável por verificar se o usuario tem permissão para executar o processo
+ *
+ * @author rogerio.costa
+ *
+ * @return boolean
+ */
+ public boolean permiteExecutar() {
+
+ Long idProcesso = (Long) this.request.getSession().getAttribute("idProcesso");
+
+ return this.credencialProcessoService.permiteExecutar(idProcesso);
+ }
}
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/service/CredencialProcessoService.java b/cit-ecm-api/src/main/java/br/com/centralit/api/service/CredencialProcessoService.java
index 03a13ed..68fdcd7 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/service/CredencialProcessoService.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/service/CredencialProcessoService.java
@@ -221,4 +221,40 @@ public interface CredencialProcessoService extends GenericService findGrupoPorSigilo(Sigilo sigilo);
+ /**
+ *
+ * Iniciativa(s): NUMERO_INICIATIVA
+ *
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
+ * Método responsável por validar acesso para o processo
+ *
+ * @author rogerio.costa
+ *
+ * @param idProcessInstance
+ */
+ void validarAcessoPesquisa(Long idProcessInstance);
+
+ /**
+ *
+ * Iniciativa(s): NUMERO_INICIATIVA
+ *
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
+ * Método responsável por verificar se o usuario tem permissão para executar o processo
+ *
+ * @author rogerio.costa
+ *
+ * @param idProcesso
+ *
+ * @return Boolean
+ */
+ Boolean permiteExecutar(Long idProcesso);
+
}
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/service/ProcessoService.java b/cit-ecm-api/src/main/java/br/com/centralit/api/service/ProcessoService.java
index 9c866f5..884bcec 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/service/ProcessoService.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/service/ProcessoService.java
@@ -2,6 +2,7 @@ package br.com.centralit.api.service;
import br.com.centralit.api.model.PlanoClassificacao;
import br.com.centralit.api.model.Processo;
+import br.com.centralit.api.viewHelper.ProcessoVH;
import br.com.centralit.framework.service.arquitetura.GenericService;
import com.googlecode.genericdao.search.ISearch;
@@ -222,4 +223,22 @@ public interface ProcessoService extends GenericService {
*/
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
+ * Método responsável por verificar se o processo pertence a unidade
+ *
+ * @author rogerio.costa
+ *
+ * @param idProcesso
+ * @param idUnidade
+ * @return boolean
+ */
+ boolean isProcessoNaUnidadeUsuarioLogado(Long idProcesso);
+
}
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/CredencialProcessoServiceImpl.java b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/CredencialProcessoServiceImpl.java
index 6a5ec7e..ce2e13c 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/CredencialProcessoServiceImpl.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/CredencialProcessoServiceImpl.java
@@ -5,6 +5,8 @@ import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
+import javax.servlet.http.HttpServletRequest;
+
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -19,6 +21,7 @@ import br.com.centralit.api.service.GrupoService;
import br.com.centralit.api.service.HistoricoCredencialProcessoService;
import br.com.centralit.api.service.ProcessoService;
import br.com.centralit.api.service.SigiloService;
+import br.com.centralit.api.service.UnidadeProcessoService;
import br.com.centralit.api.service.UsuarioService;
import br.com.centralit.api.viewHelper.GrupoUsuarioVH;
import br.com.centralit.api.viewHelper.HerancaSistemaVH;
@@ -89,6 +92,14 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl
+ * Iniciativa(s): NUMERO_INICIATIVA
+ *
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
+ * Método responsável por verificar se o usuario tem permissão para executar o processo
+ *
+ * @author rogerio.costa
+ *
+ * @param idProcesso
+ *
+ * @return Boolean
+ */
+ public Boolean permiteExecutar(Long idProcesso) {
+
+ Processo processo = this.processoService.find(idProcesso);
+
+ if (processo.getNivelAcesso().getNivelAcesso().getCodigo().equals(2L)) {
+
+ return Boolean.TRUE;
+
+ }
+
+ return this.unidadeProcessoService.isProcessoNaUnidadeUsuarioLogado(idProcesso);
+
+ }
+
}
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/ProcessoServiceImpl.java b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/ProcessoServiceImpl.java
index db230b3..4e313ff 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/ProcessoServiceImpl.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/ProcessoServiceImpl.java
@@ -42,6 +42,7 @@ import br.com.centralit.api.service.SolrService;
import br.com.centralit.api.service.TemporalidadeService;
import br.com.centralit.api.service.UnidadeProcessoService;
import br.com.centralit.api.service.UnidadeService;
+import br.com.centralit.api.viewHelper.ProcessoVH;
import br.com.centralit.framework.esi.enumerated.VariableTypeEnum;
import br.com.centralit.framework.esi.environment.EnvironmentOutput;
import br.com.centralit.framework.esi.environment.EnvironmentVariable;
@@ -95,6 +96,8 @@ import com.googlecode.genericdao.search.SearchResult;
@Service("processoService")
public class ProcessoServiceImpl extends GenericServiceImpl implements ProcessoService {
+ private static final String ECM_VALIDACAO_PERMISSAO_OPERACAO = "ECM.VALIDACAO.PERMISSAO_OPERACAO";
+
/** Cosntante VALIDAR_OUTRAS_UNIDADES. */
private static final String VALIDAR_OUTRAS_UNIDADES = "ECM.VALIDACAO.VALIDAR_ALTERACAO_NIVEL_ACESSO_OUTRAS_UNIDADES";
@@ -176,12 +179,13 @@ public class ProcessoServiceImpl extends GenericServiceImpl impl
this.gerarNUP(processo);
}
- this.saveSolr(processo);
-
// Verifica se o processo é sigiloso, verdadeiro sejá estarta o businessProcess, falso envia uma notificação para os grupos responsáeis.
if (!UtilObjeto.isReferencia(processo.getSigilo())) {
this.startBusinessProcess(processo);
+
+ this.saveSolr(processo);
+
} else {
this.enviarNotificacaoProcessoSigiloso(processo);
@@ -275,10 +279,7 @@ public class ProcessoServiceImpl extends GenericServiceImpl impl
try {
- if (!UtilObjeto.isReferencia(processo.getSigilo())) {
-
- this.solrService.addProcesso(processo);
- }
+ this.solrService.addProcesso(processo);
} catch (final Exception e) {
@@ -697,6 +698,72 @@ public class ProcessoServiceImpl extends GenericServiceImpl impl
* Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
*
*
+ * Método responsável por obter o processo.
+ *
+ * @author rogerio.costa
+ *
+ * @param id
+ * @return
+ */
+ public ProcessoVH getProcessoView(Long id) {
+
+ Processo processo = super.getReference(id);
+
+ this.verificarPermissaoAcessoProcesso(id, processo);
+
+ processo.setDocumentos(this.documentoGedService.findByIdProcessoUltimaVersao(id));
+
+ ProcessoVH processoVH = new ProcessoVH();
+
+ processoVH.setProcesso(processo);
+
+ return processoVH;
+ }
+
+ /**
+ *
+ * Iniciativa(s): NUMERO_INICIATIVA
+ *
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
+ * Método responsável por verificar se o usuario contem permissão para acessar o processo
+ *
+ * @author rogerio.costa
+ *
+ * @param id
+ * @param processo
+ */
+ private void verificarPermissaoAcessoProcesso(Long id, Processo processo) {
+
+ if (processo.getNivelAcesso().getNivelAcesso().getCodigo().equals(0L)) {
+
+ if (!this.credencialProcessoService.contemPermissaoProcesso(id)) {
+
+ throw new BusinessException(ECM_VALIDACAO_PERMISSAO_OPERACAO, CodigoErro.REGRA_NEGOCIO.getValue());
+ }
+
+ } else if (processo.getNivelAcesso().getNivelAcesso().getCodigo().equals(1L)) {
+
+ if (!this.unidadeProcessoService.isProcessoNaUnidadeUsuarioLogado(id)) {
+
+ throw new BusinessException(ECM_VALIDACAO_PERMISSAO_OPERACAO, CodigoErro.REGRA_NEGOCIO.getValue());
+
+ }
+ }
+ }
+
+ /**
+ *
+ * Iniciativa(s): NUMERO_INICIATIVA
+ *
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
* Método responsável por iniciar o gerenciamento do processo
*
* @author rogerio.costa
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/SolrServiceImpl.java b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/SolrServiceImpl.java
index b6f12cf..ed3b9d3 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/SolrServiceImpl.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/SolrServiceImpl.java
@@ -78,7 +78,7 @@ public class SolrServiceImpl implements SolrService {
// Add some example docs
SolrInputDocument processoDoc = new SolrInputDocument();
- processoDoc.setField("id", "proc_" + processo.getId());
+ processoDoc.setField("id", processo.getId());
processoDoc.setField("nup", processo.getNup());
processoDoc.setField("objeto", "Processo");
processoDoc.setField("tipoProcesso", processo.getTipoProcesso().getNome());
@@ -93,6 +93,7 @@ public class SolrServiceImpl implements SolrService {
processoDoc.setField("situacao", "");
processoDoc.setField("nivelAcesso", processo.getNivelAcesso().getNivelAcesso().getDescricao());
processoDoc.setField("formatoDocumento", "");
+ processoDoc.setField("idProcessInstance", processo.getIdProcessInstance().toString());
solrClient.add(processoDoc);
@@ -117,7 +118,7 @@ public class SolrServiceImpl implements SolrService {
sb.append("doc_").append(documentoGed.getIdRaiz() != null ? documentoGed.getIdRaiz() : documentoGed.getId());
- documentoDoc.setField("id", "doc_" + sb.toString());
+ documentoDoc.setField("id", sb.toString());
documentoDoc.setField("nup", documentoGed.getNumero());
documentoDoc.setField("objeto", "Documento");
documentoDoc.setField("tipoDocumento", documentoGed.getTipoDocumento().getNome());
@@ -131,6 +132,8 @@ public class SolrServiceImpl implements SolrService {
documentoDoc.setField("situacao", "");
documentoDoc.setField("nivelAcesso", documentoGed.getNivelAcesso().getNivelAcesso().getDescricao());
documentoDoc.setField("formatoDocumento", documentoGed.getFormaCriacao().getDescricao());
+ documentoDoc.setField("idProcessInstance", documentoGed.getProcesso().getIdProcessInstance().toString());
+ documentoDoc.setField("idProcesso", documentoGed.getProcesso().getId().toString());
// verifica se o nivel de acesso é restrito
if (!documentoGed.getNivelAcesso().getNivelAcesso().getCodigo().equals(1L)) {
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/UnidadeProcessoServiceImpl.java b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/UnidadeProcessoServiceImpl.java
index e9b6ab6..a03edfb 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/UnidadeProcessoServiceImpl.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/UnidadeProcessoServiceImpl.java
@@ -364,4 +364,32 @@ public class UnidadeProcessoServiceImpl extends GenericServiceImpl
+ * Iniciativa(s): NUMERO_INICIATIVA
+ *
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
+ * Método responsável por verificar se o processo pertence a unidade
+ *
+ * @author rogerio.costa
+ *
+ * @param idProcesso
+ * @param idUnidade
+ * @return boolean
+ */
+ public boolean isProcessoNaUnidadeUsuarioLogado(Long idProcesso) {
+
+ if (UtilObjeto.isReferencia(this.getUsuario().getUnidade())) {
+
+ return this.unidadeProcessoDao.isProcessoNaUnidadeUsuarioLogado(idProcesso, this.getUsuario().getUnidade().getId());
+ }
+
+ return Boolean.FALSE;
+
+ }
+
}
diff --git a/cit-ecm-api/src/main/resources/scripts/v1.0.0-alpha9/01-cit-ecm-1.0.0-ALFA-3-postgres.sql b/cit-ecm-api/src/main/resources/scripts/v1.0.0-alpha9/01-cit-ecm-1.0.0-ALFA-3-postgres.sql
index 8f8fc67..24d821f 100644
--- a/cit-ecm-api/src/main/resources/scripts/v1.0.0-alpha9/01-cit-ecm-1.0.0-ALFA-3-postgres.sql
+++ b/cit-ecm-api/src/main/resources/scripts/v1.0.0-alpha9/01-cit-ecm-1.0.0-ALFA-3-postgres.sql
@@ -36,4 +36,9 @@ INSERT INTO tarjaassinatura(id, databloqueio, datainativo, datacriacao, dataedic
VALUES (NEXTVAL('hibernate_sequence'), LOCALTIMESTAMP, NULL, LOCALTIMESTAMP, LOCALTIMESTAMP, 0, '', '', null, (select id from seguranca_usuario where username = 'admin'), null, null, (select id from dominio where chave = 'tipoAssinatura' and codigo = 1));
INSERT INTO tarjaassinatura(id, databloqueio, datainativo, datacriacao, dataedicao, version, conteudo, descricao, inativador_id, autor_id, editor_id, anexoimagem_id, tipoassinatura_id)
VALUES (NEXTVAL('hibernate_sequence'), LOCALTIMESTAMP, NULL, LOCALTIMESTAMP, LOCALTIMESTAMP, 0, '', '', null, (select id from seguranca_usuario where username = 'admin'), null, null, (select id from dominio where chave = 'tipoAssinatura' and codigo = 2));
--- CIRO - 18/04/2016 - FIM
\ No newline at end of file
+
+update dominio set chave='estadoDocumentoGed' where chave = 'statusDocumentoGed';
+-- CIRO - 18/04/2016 - FIM
+
+
+
diff --git a/cit-ecm-web/src/main/java/br/com/centralit/controller/CredencialProcessoController.java b/cit-ecm-web/src/main/java/br/com/centralit/controller/CredencialProcessoController.java
index 7d81b67..5b0ad38 100644
--- a/cit-ecm-web/src/main/java/br/com/centralit/controller/CredencialProcessoController.java
+++ b/cit-ecm-web/src/main/java/br/com/centralit/controller/CredencialProcessoController.java
@@ -11,7 +11,6 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
-import br.com.centralit.api.framework.json.ViewsEcm;
import br.com.centralit.api.model.CredencialProcesso;
import br.com.centralit.api.service.CredencialProcessoService;
import br.com.centralit.api.viewHelper.GrupoUsuarioVH;
@@ -167,6 +166,18 @@ public class CredencialProcessoController extends GenericController getEditView() {
diff --git a/cit-ecm-web/src/main/java/br/com/centralit/controller/ProcessoController.java b/cit-ecm-web/src/main/java/br/com/centralit/controller/ProcessoController.java
index 1810353..f71f103 100644
--- a/cit-ecm-web/src/main/java/br/com/centralit/controller/ProcessoController.java
+++ b/cit-ecm-web/src/main/java/br/com/centralit/controller/ProcessoController.java
@@ -122,6 +122,15 @@ public class ProcessoController extends GenericController {
return responseBody;
}
+ @RequestMapping(method = RequestMethod.GET, value = "/getProcessoVH")
+ @ResponseBody
+ public ResponseBodyWrapper getProcessoVH(@RequestParam(value = "idProcesso") Long idProcesso) {
+
+ ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.processoService.getProcessoView(idProcesso), Views.processoVHview.class);
+
+ return responseBody;
+ }
+
/**
*
* Iniciativa(s): NUMERO_INICIATIVA
@@ -159,9 +168,9 @@ public class ProcessoController extends GenericController {
search.setResultMode(Search.RESULT_MAP);
SearchResult searchResult = null;
-
+
String nomeGrid = UtilString.isNullOrEmpty(searchParams.getNome()) ? "" : searchParams.getNome();
-
+
switch (nomeGrid) {
case Processo.GRID_CLASSIFICACAO_PROCESSO_DOCUMENTO:
searchResult = this.processoService.searchAndCountPorSigilo(search);
diff --git a/cit-ecm-web/src/main/java/br/com/centralit/controller/UnidadeProcessoController.java b/cit-ecm-web/src/main/java/br/com/centralit/controller/UnidadeProcessoController.java
index 070aee4..cd65a94 100644
--- a/cit-ecm-web/src/main/java/br/com/centralit/controller/UnidadeProcessoController.java
+++ b/cit-ecm-web/src/main/java/br/com/centralit/controller/UnidadeProcessoController.java
@@ -58,7 +58,7 @@ import br.com.centralit.framework.view.ResultResponseVH;
* @author rogerio.costa
*
*/
-@SuppressWarnings({"unchecked", "rawtypes"})
+@SuppressWarnings({ "unchecked", "rawtypes" })
@Controller
@RequestMapping("/rest/unidadeProcesso")
public class UnidadeProcessoController extends GenericController {
@@ -127,6 +127,32 @@ public class UnidadeProcessoController extends GenericController
+ * Iniciativa(s): NUMERO_INICIATIVA
+ *
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
+ * Método responsável por
+ *
+ * @author rogerio.costa
+ *
+ * @param idProcesso
+ * @param idUnidade
+ * @return
+ */
+ @RequestMapping(value = "/isProcessoNaUnidadeUsuarioLogado", method = RequestMethod.GET, produces = "application/json")
+ @ResponseBody
+ public ResponseBodyWrapper isProcessoNaUnidadeUsuarioLogado(@RequestParam(value = "idProcesso") Long idProcesso) {
+
+ ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.unidadeProcessoService.isProcessoNaUnidadeUsuarioLogado(idProcesso), Views.GenericView.class);
+
+ return responseBody;
+ }
+
@RequestMapping(value = "/getPage", method = RequestMethod.POST)
@ResponseBody
public ResponseBodyWrapper findGrid(@RequestBody SearchParams searchParams) {
@@ -138,13 +164,13 @@ public class UnidadeProcessoController extends GenericController getEditView() {
diff --git a/cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java b/cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java
index e4b8d2c..6505ce4 100644
--- a/cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java
+++ b/cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java
@@ -454,6 +454,7 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
internacionalizacaoList.add(new Internacionalizacao("ECM.ASSINADO_SUCESSO", "Documento assinado com sucesso!", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ASSINATURA_DO_DOCUMENTO", "Assinatura do Documento", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.DOCUMENTO_SEM_ASSINATURA", "Documento sem assinaturas!", dominio, modulo));
+
}
@@ -573,5 +574,6 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.USUARIO_SEM_PESSOA", "Usuário não está presente no Cadastro de Pessoa!", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.DOCUMENTO_SEM_ASSINATURAS", "Esta versão do Documento não possui assinaturas!", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.DOCUMENTO_JA_ASSINADO", "Documento já foi assinado por este usuário!", dominio, modulo));
+ internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.INFORMACAO_RESTRITA", "Informação restrita", dominio, modulo));
}
}
diff --git a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoController.js b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoController.js
index 1cc601a..aa88579 100644
--- a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoController.js
+++ b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoController.js
@@ -615,7 +615,7 @@ citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$tim
$scope.siglas = [];
// CARREGA O PROCESSO VINCULADO A TAREFA
- $timeout( function () {
+ $timeout(function() {
ProcessoRepository.getProcessoGerenciamento($scope.idProcesso).then( function ( result ) {
$scope.processo = result.originalElement;
@@ -638,10 +638,10 @@ citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$tim
$scope.setLoading( false );
- } );
+ });
- }, 400 );
- } );
+ }, 400);
+ });
};
// FIM EXECUTAR BPE
@@ -689,6 +689,29 @@ citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$tim
};
+ //Obter o processoVH
+ $scope.getProcessoVH = function (idProcesso) {
+
+ $scope.setLoadingGet(true);
+
+ ProcessoRepository.getProcessoVH(idProcesso).then(function(result) {
+ //Processo do scopo do gerenciamento
+ $scope.processoVH = result.originalElement;
+
+ $scope.processo = $scope.processoVH.processo;
+ $scope.idProcesso = $scope.processo.id;
+
+ $scope.fecharPagina();
+
+ $scope.apresentarCabecalho = true;
+
+ $scope.widgetExemploIsCollapsed = false;
+
+ $scope.setLoading(false);
+ });
+
+ };
+
$scope.atualizarAtribuicaoProcesso = function (idProcesso){
ProcessoRepository.verificarAtribuicaoProcessoPrimeiroAcesso(idProcesso).then( function ( result ) {
diff --git a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/SolrSearchController.js b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/SolrSearchController.js
index 9be00e0..e762b9e 100644
--- a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/SolrSearchController.js
+++ b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/SolrSearchController.js
@@ -26,11 +26,13 @@
* @param Utils
*/
-citApp.controller('SolrSearchController', ['$scope','$attrs','$location','$route','$routeParams','$window','$timeout','SolrSearchService','Utils', "$compile", 'DominioRepository', '$filter',
- function SolrSearchController($scope, $attrs, $location, $route, $routeParams, $window, $timeout, SolrSearchService, Utils, $compile, DominioRepository, $filter) {
+citApp.controller('SolrSearchController', ['$scope','$attrs','$location','$route','$routeParams','$window','$timeout','SolrSearchService','Utils', "$compile", 'DominioRepository', '$filter', "workflowFilterCriteriaService",
+ "BusinessProcessRepository", "appService", "$rootScope", "$translate", 'UnidadeProcessoRepository', 'CredencialProcessoRepository',
+ function SolrSearchController($scope, $attrs, $location, $route, $routeParams, $window, $timeout, SolrSearchService, Utils, $compile, DominioRepository, $filter, workflowFilterCriteriaService, BusinessProcessRepository,
+ appService, $rootScope, $translate, UnidadeProcessoRepository, CredencialProcessoRepository) {
$scope.searchHintsField = 'tipoProcesso,tipoDocumento,objeto,assunto,autor,atribuidoA,destinatario,unidadeGeradora,situacao,nivelAcesso,dataCriacao';
-
+
// instructional message to aid the user in constructing a query
$scope.messages = [
"Enter one or more search terms. Press Enter to search.",
@@ -123,7 +125,7 @@ citApp.controller('SolrSearchController', ['$scope','$attrs','$location','$route
$scope.handleSetPage = function() {
$scope.timeout = $timeout(function () {
- var query = SolrSearchService.createQuery("https://172.20.0.74:8983/solr/jcg");
+ var query = SolrSearchService.createQuery("https://localhost:8983/solr/jcg");
query.setOption("rows", "10");
query.setOption("facet", "true");
query.setOption("facet.limit", $scope.maxHints);
@@ -187,6 +189,8 @@ citApp.controller('SolrSearchController', ['$scope','$attrs','$location','$route
results.docs[i].conteudo = results.docs[i].conteudo + item;
});
+ }else{
+ results.docs[i].conteudo = "";
}
}
@@ -330,7 +334,7 @@ citApp.controller('SolrSearchController', ['$scope','$attrs','$location','$route
if ($scope.userQuery && $scope.userQuery.length >= $scope.minSearchLength) {
if ($scope.timeout) $timeout.cancel($scope.timeout);
$scope.timeout = $timeout(function () {
- var query = SolrSearchService.createQuery("https://172.20.0.74:8983/solr/jcg");
+ var query = SolrSearchService.createQuery("https://localhost:8983/solr/jcg");
query.setOption("rows", "10");
query.setOption("facet", "true");
query.setOption("facet.limit", $scope.maxHints);
@@ -409,7 +413,7 @@ citApp.controller('SolrSearchController', ['$scope','$attrs','$location','$route
$scope.userQuery = "*:*";
}
$scope.timeout = $timeout(function () {
- var query = SolrSearchService.createQuery("https://172.20.0.74:8983/solr/jcg");
+ var query = SolrSearchService.createQuery("https://localhost:8983/solr/jcg");
query.setOption("rows", "10");
query.setOption("facet", "true");
query.setOption("facet.limit", $scope.maxHints);
@@ -440,7 +444,7 @@ citApp.controller('SolrSearchController', ['$scope','$attrs','$location','$route
valueFilter = "*:*";
}
$scope.timeout = $timeout(function () {
- var query = SolrSearchService.createQuery("https://172.20.0.74:8983/solr/jcg");
+ var query = SolrSearchService.createQuery("https://localhost:8983/solr/jcg");
query.setOption("rows", "10");
query.setOption("facet", "true");
query.setOption("facet.limit", $scope.maxHints);
@@ -600,8 +604,162 @@ citApp.controller('SolrSearchController', ['$scope','$attrs','$location','$route
$scope.parameterDatePesquisa = $.grep($scope.filtroDateList, function(e){ return e.codigo == 0; })[0].originalElement;
});
-
-
+
+ $scope.obterTransclude = function(doc) {
+
+ doc.$show = !doc.$show;
+ $scope.documents.forEach(function(item){
+ if(item.id != doc.id){
+ item.$expandido = false;
+ item.$show = false;
+ }
+ });
+
+ $scope.docSelecionado = doc;
+ if(doc.$show){
+ _getFilterCriteriaTarefa();
+ _fetchBusinessProcess(doc);
+ }else{
+ doc.$expandido = false;
+ doc.$show = false;
+ };
+ };
+
+ function _getFilterCriteriaTarefa(){
+ var filterService = workflowFilterCriteriaService.getDefaultFilterCriteria();
+ $scope.filterCriteriaBusinessProcess = {
+ start : 1,
+ sort : 'workItem.processInstance.id',
+ limit : 10,
+ deadline : 1,
+ processDeadline : 1,
+ timeManagementStatus : "",
+ fields : [ 'workItem.id', 'workItem.processInstance.id'],
+ filters : [{type: 'numeric', field: 'workItem.processInstance.id', value : $scope.docSelecionado.idProcessInstance}
+ , {type: 'string', field: 'workItem.flowElement.name'}
+ , {type: 'string', field: 'workItem.processInstance.businessProcess.description'}
+ , {type: 'string', field: 'workItem.processInstance.flowStatus.name'}]
+ };
+ $scope.filterCriteriaBusinessProcess.username = filterService.username;
+ $scope.filterCriteriaBusinessProcess.groups = filterService.groups;
+ }
+
+ function _fetchBusinessProcess(doc) {
+ $scope.assignments = [];
+ $scope.btnAction = false;
+ $scope.workItem = null;
+ $scope.setLoadingGet(true);
+ BusinessProcessRepository.tasksByParam($scope.filterCriteriaBusinessProcess).then(function(result) {
+ $scope.assignments = result.originalElement.objects;
+
+ if($scope.docSelecionado.idProcessInstance){
+ CredencialProcessoRepository.validarAcessoPesquisa($scope.docSelecionado.idProcessInstance).then(function(result) {
+
+ $scope.urlInclude= '/cit-ecm-web/html/pesquisa/tarefasProcesso.jsp?i=' + $scope.docSelecionado.id;
+ doc.$expandido = !doc.$expandido;
+ });
+
+ }
+ if($scope.assignments.length > 0){
+ _recuperarPermissoes($scope.assignments[0].id, doc);
+ };
+ $scope.setLoadingGet(false);
+ });
+ };
+
+ function _recuperarPermissoes(idAssignment, doc){
+ BusinessProcessRepository.getPermissions({id: idAssignment}).then(function(result) {
+ $scope.workItem = result.originalElement;
+ vincularWorkItemAssignments();
+ $scope.btnAction = !(!$scope.workItem.execute && !$scope.workItem.suspend && !$scope.workItem.delegate && !$scope.workItem.restart && !$scope.workItem.visualize);
+ $scope.docSelecionado.workItem = $scope.workItem;
+ $scope.setLoadingGet(false);
+ });
+ };
+
+ function vincularWorkItemAssignments(){
+ $scope.assignments.forEach(function(assignment){
+ assignment.workItem = $scope.workItem;
+ assignment.checked = false;
+ });
+ if($scope.assignments.length > 0){
+ $scope.assignments[0].checked = true;
+ }
+ };
+
+ $scope.executarTarefa = function(){
+ _getAssignmentSelected();
+ if($scope.workItem){
+ var pagina = '/cit-esi-web/assets/js/angular/custom/directive/html/userTask.html';
+ if ($scope.workItem.flowElement.userInterface && $scope.workItem.flowElement.userInterface.executeCustomPage) {
+ pagina = $scope.workItem.flowElement.userInterface.URLCustomPage;
+ _abrirPaginaTarefa(pagina);
+ }else if ($scope.workItem.flowElement.userInterface && $scope.workItem.flowElement.userInterface.resource && $scope.workItem.flowElement.userInterface.resourceName) {
+ FormBuilderRepository.getByName($scope.workItem.flowElement.userInterface.resourceName).then(function(result) {
+ pagina = '/cit-esi-web/forms/'+result.originalElement.path+'/'+result.originalElement.resource.name+"_task.html";
+ _abrirPaginaTarefa(pagina);
+ });
+ }else{
+ _abrirPaginaTarefa(pagina);
+ }
+ }
+ };
+
+ function _abrirPaginaTarefa(pagina){
+ if (appService.existsWorkspace(pagina)) {
+ $scope.showAlert('warning', $translate.instant('ESI.MSG.JA_EXISTE_TELA_TAREFA'));
+ return ;
+ }
+ $scope.processInstance = $scope.docSelecionado.workItem.processInstance;
+ $scope.processInstance.collapsed = true;
+ $scope.processInstance.collapsedError = true;
+ $rootScope.task = $scope.workItem;
+ $rootScope.processInstance = $scope.processInstance;
+ $rootScope.controllerScope = $scope;
+
+ var nome = $scope.task.flowElement.description;
+ if (!nome || nome == '')
+ nome = $scope.workItem.flowElement.name;
+
+ $scope.addNewWorkspace($translate.instant('ESI.PERMISSAO.EXECUTAR')+" "+$translate.instant('ESI.TAREFA').toLowerCase()+" '"+nome+"'", pagina, true, 'mod-red-dark', $scope.workItem);
+ };
+
+ function _getAssignmentSelected() {
+ for(var pos = 0; pos < $scope.assignments.length; pos++){
+ if($scope.assignments[pos].checked){
+ $scope.docSelecionado.workItem = $scope.assignments[pos];
+ break;
+ }
+ }
+ };
+
+ //Abre a tela de visualização de processo e documentos
+ $scope.abreVisualizar = function(){
+
+ var pagina = '/cit-ecm-web/html/processoVisualizacao/processoView.html';
+
+ var paginaGerenciamento = '/cit-ecm-web/html/gerenciarProcesso/gerenciarProcesso.html';
+
+ if (appService.existsWorkspace(paginaGerenciamento)) {
+ $scope.$openModalConfirm({message:$translate.instant('ECM.MSG.EXISTE_PROCESSO_ABERTO'), callback: function(){
+ $scope.$modalConfirmInstance.dismiss('cancel');
+ $scope.setLoading(true);
+ $scope.openWorkspaceIfNotOpen($translate.instant('ECM.LABEL.PROCESSO'), pagina, 'mod-orange');
+ $timeout(function() {
+ angular.element('#visualizarGerenciarProcesso').scope().getProcessoVH($scope.docSelecionado.objeto === 'Processo'? $scope.docSelecionado.id : $scope.docSelecionado.idProcesso);
+
+ }, 100);
+ $scope.setLoading(false);
+ }});
+ }else{
+ $scope.openWorkspaceIfNotOpen($translate.instant('ECM.LABEL.PROCESSO'), pagina, 'mod-orange');
+ $timeout(function() {
+ angular.element('#visualizarGerenciarProcesso').scope().getProcessoVH($scope.docSelecionado.objeto === 'Processo'? $scope.docSelecionado.id : $scope.docSelecionado.idProcesso);
+
+ }, 100);
+ };
+ };
+
$scope.init();
}]);
diff --git a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/CredencialProcessoRepository.js b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/CredencialProcessoRepository.js
index daf3594..348de1b 100644
--- a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/CredencialProcessoRepository.js
+++ b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/CredencialProcessoRepository.js
@@ -21,8 +21,12 @@ citApp.factory('CredencialProcessoRepository', ['RestangularEcm', 'AbstractRepos
return restangularEcm.one(this.route).getList("findByIdProcesso", {idProcesso : idProcesso}).then();
};
- this.renunciar = function (idProcesso) {
- return restangularEcm.one(this.route + "/renunciar", idProcesso).remove();
+ this.findByIdProcesso = function(idProcesso) {
+ return restangularEcm.one(this.route).getList("findByIdProcesso", {idProcesso : idProcesso}).then();
+ };
+
+ this.validarAcessoPesquisa = function (idProcessInstance) {
+ return restangularEcm.all(this.route + '/validarAcessoPesquisa').post(idProcessInstance);
};
}
diff --git a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/ProcessoRepository.js b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/ProcessoRepository.js
index 3a266e3..a204a46 100644
--- a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/ProcessoRepository.js
+++ b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/ProcessoRepository.js
@@ -32,6 +32,11 @@ citApp.factory('ProcessoRepository', ['RestangularEcm', 'AbstractRepository', fu
};
+ this.getProcessoVH = function (idProcesso){
+ return restangularEcm.one(this.route + '/getProcessoVH').get({"idProcesso": idProcesso});
+
+ };
+
this.verificarAtribuicaoProcessoPrimeiroAcesso = function (idProcesso){
return restangularEcm.one(this.route + '/verificarAtribuicaoProcessoPrimeiroAcesso').get({"idProcesso": idProcesso});
diff --git a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/UnidadeProcessoRepository.js b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/UnidadeProcessoRepository.js
index 3e08bb1..b5f45ae 100644
--- a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/UnidadeProcessoRepository.js
+++ b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/UnidadeProcessoRepository.js
@@ -18,6 +18,11 @@ citApp.factory('UnidadeProcessoRepository', ['RestangularEcm', 'AbstractReposito
};
+ this.isProcessoNaUnidadeUsuarioLogado = function(idProcesso) {
+ return restangularEcm.one(this.route + "/isProcessoNaUnidadeUsuarioLogado").get({"idProcesso" : idProcesso});
+
+ };
+
}
AbstractRepository.extend(UnidadeProcessoRepository);
diff --git a/cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeInformacaoProcesso.html b/cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeInformacaoProcesso.html
index 2390fcf..793c69c 100644
--- a/cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeInformacaoProcesso.html
+++ b/cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeInformacaoProcesso.html
@@ -142,12 +142,18 @@
-
+
- {{processoUnidade.unidade.sigla}} - {{processoUnidade.usuarioResponsavel.username}}
+
+
+ - {{processoUnidade.unidade.sigla}} - {{processoUnidade.usuarioResponsavel.username}}
+
+
+
diff --git a/cit-ecm-web/src/main/webapp/html/pesquisa/pesquisa.html b/cit-ecm-web/src/main/webapp/html/pesquisa/pesquisa.html
index 540e511..940b147 100644
--- a/cit-ecm-web/src/main/webapp/html/pesquisa/pesquisa.html
+++ b/cit-ecm-web/src/main/webapp/html/pesquisa/pesquisa.html
@@ -22,8 +22,7 @@
-
+
{{doc.assuntoComplementar}}
+
+