From 63142b11d7a5d9b5f217ab4152af760079280794 Mon Sep 17 00:00:00 2001
From: rogerio.costa
Date: Tue, 26 Apr 2016 09:51:47 -0300
Subject: [PATCH] #3216 - Classificar a Informação de Documentos e Processos
---
cit-ecm-api/src/main/java/br/com/centralit/api/dao/DocumentoGedDao.java | 45 +++++++++++++++++++++++++++------------------
cit-ecm-api/src/main/java/br/com/centralit/api/dao/ProcessoDao.java | 20 +++++++++++++++++++-
cit-ecm-api/src/main/java/br/com/centralit/api/dao/UnidadeProcessoDao.java | 30 +++++++++++++++++++++++++-----
cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/DocumentoGedDaoHibernate.java | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------
cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/ProcessoDaoHibernate.java | 55 +++++++++++++++++++++++++++++++++++++++++++++----------
cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/UnidadeProcessoDaoHibernate.java | 36 ++++++++++++++++++++++++++++++++----
cit-ecm-api/src/main/java/br/com/centralit/api/model/DocumentoGed.java | 25 +++++++++++++++++++++++++
cit-ecm-api/src/main/java/br/com/centralit/api/model/Processo.java | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------
cit-ecm-api/src/main/java/br/com/centralit/api/service/CredencialProcessoService.java | 21 +++++++++++++++++++++
cit-ecm-api/src/main/java/br/com/centralit/api/service/DocumentoGedService.java | 24 +++++++++++++-----------
cit-ecm-api/src/main/java/br/com/centralit/api/service/UnidadeProcessoService.java | 22 +++++++++++++++++++++-
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/CredencialProcessoServiceImpl.java | 2 +-
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/DocumentoGedServiceImpl.java | 41 ++++++++++++++++++++++++-----------------
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/InicializarEcmServiceImpl.java | 2 +-
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/ProcessoServiceImpl.java | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/UnidadeProcessoServiceImpl.java | 33 +++++++++++++++++++++++++++++----
cit-ecm-web/src/main/java/br/com/centralit/controller/DocumentoGedController.java | 38 ++++++++++++++++++++++++++++++++++++++
cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java | 21 +++++++++++++++++----
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/ClassificarDocumentoProcessoController.js | 230 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/ClassificarDocumentoProcessoListController.js | 180 +++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/DocumentoGedController.js | 16 ++++++++--------
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoController.js | 47 +++++++++++++++++++++++++++++++++--------------
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/SolrSearchController.js | 8 ++++----
cit-ecm-web/src/main/webapp/html/classificarProcessoDocumento/classificarProcessoDocumento.html | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------
cit-ecm-web/src/main/webapp/html/classificarProcessoDocumento/classificarProcessoDocumentoList.html | 340 ++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
cit-ecm-web/src/main/webapp/html/documentoGed/metadadosDocumentoEdit.html | 8 ++++----
cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeDocumentosProcesso.html | 2 +-
cit-ecm-web/src/main/webapp/html/processo/processoEdit.html | 2 +-
28 files changed, 803 insertions(+), 885 deletions(-)
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/dao/DocumentoGedDao.java b/cit-ecm-api/src/main/java/br/com/centralit/api/dao/DocumentoGedDao.java
index 88334e5..6f6b6ea 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/dao/DocumentoGedDao.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/dao/DocumentoGedDao.java
@@ -120,34 +120,43 @@ public interface DocumentoGedDao extends CitGenericDAO {
* @return Collection
*/
Collection findPorPlanoClassificacao(Long idPlanoClassificacao);
-
+
/**
*
- * Iniciativa(s): NUMERO_INICIATIVA
- *
- * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
- *
+ *
+ * Iniciativa(s): NUMERO_INICIATIVA
+ *
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
* Método responsável por
- *
+ *
* @author andre.silva
- *
+ *
* @param idProcesso
* @return
*/
Collection findByProcessoSigilo(Long idProcesso);
/**
+ *
+ * Iniciativa(s): NUMERO_INICIATIVA
+ *
*
- * Iniciativa(s): NUMERO_INICIATIVA
- *
- * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
- *
- * Método responsável por
- *
- * @author andre.silva
- *
- * @param documentoGed
- * @return
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
+ * Método responsável por verificar se o documento é sigiloso através do id
+ *
+ * @author rogerio.costa
+ *
+ * @param id
+ *
+ * @return Sigilo
*/
- Boolean isDocumentoAbertoEmOutrasUnidades(DocumentoGed documentoGed);
+ Boolean isSigiloso(Long id);
+
}
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/dao/ProcessoDao.java b/cit-ecm-api/src/main/java/br/com/centralit/api/dao/ProcessoDao.java
index 6257da7..7f10d02 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/dao/ProcessoDao.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/dao/ProcessoDao.java
@@ -155,5 +155,23 @@ public interface ProcessoDao extends CitGenericDAO {
* @return
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
+ * Método responsável por obter grupos através do sigilo
+ *
+ * @author rogerio.costa
+ *
+ * @param sigilo
+ *
+ * @return Collection
+ */
+ Collection findGrupoPorSigilo(Sigilo sigilo);
+
}
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/service/DocumentoGedService.java b/cit-ecm-api/src/main/java/br/com/centralit/api/service/DocumentoGedService.java
index ad78d9f..25e62a3 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/service/DocumentoGedService.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/service/DocumentoGedService.java
@@ -3,9 +3,7 @@ package br.com.centralit.api.service;
import java.util.Collection;
import br.com.centralit.api.model.DocumentoGed;
-import br.com.centralit.framework.model.Dominio;
import br.com.centralit.api.model.Processo;
-import br.com.centralit.api.viewHelper.AnexarProcessoVH;
import br.com.centralit.framework.model.Dominio;
import br.com.centralit.framework.service.arquitetura.GenericService;
@@ -40,7 +38,7 @@ public interface DocumentoGedService extends GenericService
void saveIconeDocumento(DocumentoGed documentoGed, Dominio tipoAnexo);
void anexarDocumento(Processo processoDestinoAnexo, Processo processoOrigem);
-
+
Collection findByProcessoSigilo(Long idProcesso);
/**
@@ -61,19 +59,23 @@ public interface DocumentoGedService extends GenericService
* @return Collection
*/
Collection findPorPlanoClassificacao(Long idPlanoClassificacao);
-
+
/**
*
- * Iniciativa(s): NUMERO_INICIATIVA
- *
- * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
- *
+ *
+ * Iniciativa(s): NUMERO_INICIATIVA
+ *
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
* Método responsável por
- *
+ *
* @author andre.silva
- *
+ *
* @param listaDocumentos
*/
- void atualizarSigiloDocumentos(Collection listaDocumentos);
+ Collection atualizarSigiloDocumentos(Collection listaDocumentos);
}
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/service/UnidadeProcessoService.java b/cit-ecm-api/src/main/java/br/com/centralit/api/service/UnidadeProcessoService.java
index 6ea3e0d..5dc652b 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/service/UnidadeProcessoService.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/service/UnidadeProcessoService.java
@@ -174,10 +174,30 @@ public interface UnidadeProcessoService extends GenericService SearchResult
*/
SearchResult searchAndCountPorUnidade(ISearch search);
-
+
+ /**
+ *
+ * Iniciativa(s): NUMERO_INICIATIVA
+ *
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
+ * Método responsável por verificar se o processo foi enviado para outra unidade
+ *
+ * @author rogerio.costa
+ *
+ * @param idProcesso
+ *
+ * @return Boolean
+ */
+ Boolean isProcessoEnviado(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 e5d9540..6a5ec7e 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
@@ -543,7 +543,7 @@ public class CredencialProcessoServiceImpl extends GenericServiceImpl
*/
- private Collection findGrupoPorSigilo(Sigilo sigilo) {
+ public Collection findGrupoPorSigilo(Sigilo sigilo) {
Collection idPrivilegios = this.getPrivilegios(sigilo);
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/DocumentoGedServiceImpl.java b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/DocumentoGedServiceImpl.java
index 208a3c1..09fb11c 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/DocumentoGedServiceImpl.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/DocumentoGedServiceImpl.java
@@ -34,6 +34,7 @@ import br.com.centralit.api.service.ProcessoService;
import br.com.centralit.api.service.SigiloService;
import br.com.centralit.api.service.SolrService;
import br.com.centralit.api.service.TipoDocumentoService;
+import br.com.centralit.api.service.UnidadeProcessoService;
import br.com.centralit.framework.exception.BusinessException;
import br.com.centralit.framework.exception.CodigoErro;
import br.com.centralit.framework.model.Dominio;
@@ -82,7 +83,7 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl listaDocumentos) {
+ public Collection atualizarSigiloDocumentos(Collection listaDocumentos) {
+
+ Collection documentosAlterados = new LinkedList();
if (!UtilColecao.isVazio(listaDocumentos)) {
for (DocumentoGed documento : listaDocumentos) {
DocumentoGed entity = (DocumentoGed) this.documentoGedDao.getReference(documento.getId());
- if (documento.getSigilo() == null) {
- entity.setAprovado(Boolean.TRUE);
- } else {
- entity.setSigiloOriginal(documento.getSigilo());
- entity.setNivelAcessoOriginal(documento.getNivelAcesso());
- entity.setSigilo(documento.getSigilo());
- entity.setNivelAcesso(documento.getNivelAcesso());
- }
-
- super.merge(entity);
+ entity.setSigiloOriginal(documento.getSigilo());
+ entity.setNivelAcessoOriginal(documento.getNivelAcesso());
+ entity.setSigilo(documento.getSigilo());
+ entity.setNivelAcesso(documento.getNivelAcesso());
+ entity.setStatus(this.dominioService.findByChaveAndCodigo("statusDocumentoGed", 1L));
+ documentosAlterados.add(entity);
}
}
+ return documentosAlterados;
+
}
/**
diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/InicializarEcmServiceImpl.java b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/InicializarEcmServiceImpl.java
index b8794e6..555707f 100644
--- a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/InicializarEcmServiceImpl.java
+++ b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/InicializarEcmServiceImpl.java
@@ -246,7 +246,7 @@ public class InicializarEcmServiceImpl extends UtilStartup {
pgProcessoDocumentoSigiloso = this.paginaService.saveIfNotExist(pgProcessoDocumentoSigiloso);
Menu menuProcessoDocumentoSigiloso = new Menu("Processos e Documentos Sigilosos", pgProcessoDocumentoSigiloso, menuProcesso, 2, 5, null, null, null, null, modulo, "CLASSIFICAR_PROCESSO_DOCUMENTO");
- menuProcessoDocumentoSigiloso.setIncludes(this.gerarArquivosMenu(menuProcessoDocumentoSigiloso, this.CIT_ECM_WEB_ANGULAR, "ClassificarDocumentoProcesso", true, true, true));
+ menuProcessoDocumentoSigiloso.setIncludes(this.gerarArquivosMenu(menuProcessoDocumentoSigiloso, this.CIT_ECM_WEB_ANGULAR, "ClassificarDocumentoProcesso", true, true, false));
this.menuService.mergeIfNotExist(menuProcessoDocumentoSigiloso);
Pagina pgGerenciarProcessoListUnidade = new Pagina("Processos Abertos na Unidade", "/cit-ecm-web/html/gerenciarProcesso/gerenciarProcessoListUnidade.html");
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 53a8de3..599bdb7 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
@@ -34,6 +34,7 @@ import br.com.centralit.api.service.DocumentoGedService;
import br.com.centralit.api.service.DominioService;
import br.com.centralit.api.service.GrupoService;
import br.com.centralit.api.service.HistoricoAtribuicaoProcessoService;
+import br.com.centralit.api.service.NotificacaoService;
import br.com.centralit.api.service.PlanoClassificacaoService;
import br.com.centralit.api.service.ProcessoService;
import br.com.centralit.api.service.SigiloService;
@@ -46,9 +47,13 @@ import br.com.centralit.framework.esi.environment.EnvironmentOutput;
import br.com.centralit.framework.esi.environment.EnvironmentVariable;
import br.com.centralit.framework.exception.BusinessException;
import br.com.centralit.framework.exception.CodigoErro;
+import br.com.centralit.framework.model.Dominio;
import br.com.centralit.framework.model.Grupo;
+import br.com.centralit.framework.model.Notificacao;
+import br.com.centralit.framework.model.NotificacaoGrupo;
import br.com.centralit.framework.model.Unidade;
import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
+import br.com.centralit.framework.util.Util;
import br.com.centralit.framework.util.UtilColecao;
import br.com.centralit.framework.util.UtilDate;
import br.com.centralit.framework.util.UtilObjeto;
@@ -91,7 +96,8 @@ import com.googlecode.genericdao.search.SearchResult;
@Service("processoService")
public class ProcessoServiceImpl extends GenericServiceImpl implements ProcessoService {
- private static final String VALIDAR_PROCESSOS_OUTRAS_UNIDADES = "ECM.VALIDACAO.VALIDAR_PROCESSOS_OUTRAS_UNIDADES";
+ /** Cosntante VALIDAR_OUTRAS_UNIDADES. */
+ private static final String VALIDAR_OUTRAS_UNIDADES = "ECM.VALIDACAO.VALIDAR_ALTERACAO_NIVEL_ACESSO_OUTRAS_UNIDADES";
private final ProcessoDao processoDao;
@@ -141,6 +147,10 @@ public class ProcessoServiceImpl extends GenericServiceImpl impl
@Autowired
private HttpServletRequest request;
+ /** Atributo notificacaoService. */
+ @Autowired
+ private NotificacaoService notificacaoService;
+
@Autowired
public ProcessoServiceImpl( final ProcessoDao processoDao, @Qualifier("processoValidator") final Validator validator ) {
@@ -153,7 +163,6 @@ public class ProcessoServiceImpl extends GenericServiceImpl impl
public Processo save(Processo entity) {
this.validarEntidade(entity, this.validator);
-
this.validarUnidade();
this.montarEntidade(entity);
@@ -170,22 +179,76 @@ public class ProcessoServiceImpl extends GenericServiceImpl impl
this.saveSolr(processo);
- if (entity.getSigilo() == null) {
+ // 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);
+ } else {
+
+ this.enviarNotificacaoProcessoSigiloso(processo);
}
return processo;
}
/**
- * Iniciativa(s): NUMERO_INICIATIVA
- *
- * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
- *
+ *
+ * Iniciativa(s): NUMERO_INICIATIVA
+ *
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
+ * Método responsável por enviar notificação para os responsável sobre a criação do processo sigiloso
+ *
+ * @author rogerio.costa
+ *
+ * @param processo
+ */
+ private void enviarNotificacaoProcessoSigiloso(Processo processo) {
+
+ StringBuilder sb = new StringBuilder();
+
+ sb.append("O processo ").append(processo.getNup()).append(" foi criado como ").append(processo.getSigilo().getTipoSigilo().getDescricao());
+
+ Dominio tipoNotificacao = this.dominioService.findByChaveAndCodigo("tipoNotificacao", 4L);
+
+ Dominio tipoPrioridade = this.dominioService.findByChaveAndCodigo("tipoPrioridade", 2L);
+
+ Notificacao notificacao = new Notificacao("Processo sigiloso", sb.toString(), tipoNotificacao, tipoPrioridade, null, null, null);
+
+ Collection grupos = this.credencialProcessoService.findGrupoPorSigilo(processo.getSigilo());
+
+ if (!UtilColecao.isVazio(grupos)) {
+
+ notificacao.setNotificacaoGrupos(new LinkedList());
+
+ for (Grupo grupo : grupos) {
+
+ NotificacaoGrupo notificacaoGrupo = new NotificacaoGrupo(grupo, notificacao);
+
+ notificacao.getNotificacaoGrupos().add(notificacaoGrupo);
+ }
+
+ }
+
+ this.notificacaoService.save(notificacao);
+ }
+
+ /**
+ *
+ * Iniciativa(s): NUMERO_INICIATIVA
+ *
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
* Método responsável por validar a unidade vigente
- *
+ *
* @author rogerio.costa
- *
+ *
*/
private void validarUnidade() {
@@ -195,14 +258,18 @@ public class ProcessoServiceImpl extends GenericServiceImpl impl
}
/**
- * Iniciativa(s): NUMERO_INICIATIVA
- *
- * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
- *
+ *
+ * Iniciativa(s): NUMERO_INICIATIVA
+ *
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
* Método responsável por
- *
+ *
* @author rogerio.costa
- *
+ *
* @param processo
*/
private void saveSolr(Processo processo) {
@@ -242,25 +309,28 @@ public class ProcessoServiceImpl extends GenericServiceImpl impl
Processo processo = (Processo) this.processoDao.getReference(entity.getId());
- this.validarEntidade(entity, this.validator);
+ if (entity.getStatus().getCodigo() == 3L) {
- this.montarEntidade(processo);
+ this.validarEntidade(entity, this.validator);
- processo.setSigiloOriginal(processo.getSigilo());
- processo.setNivelAcessoOriginal(processo.getNivelAcesso());
+ this.montarEntidade(processo);
- processo.setSigilo(entity.getSigilo());
- processo.setNivelAcesso(entity.getNivelAcesso());
- processo.setAprovado(entity.getAprovado());
+ processo.setSigiloOriginal(processo.getSigilo());
+ processo.setNivelAcessoOriginal(processo.getNivelAcesso());
+ processo.setSigilo(entity.getSigilo());
+ processo.setNivelAcesso(entity.getNivelAcesso());
+ processo.setValidado(entity.getValidado());
+ processo.setStatus(this.dominioService.findByChaveAndCodigo("statusProcesso", 4L));
- processo = super.merge(processo);
+ if (UtilObjeto.isReferencia(processo.getValidado()) && processo.getValidado()) {
- this.documentoGedService.atualizarSigiloDocumentos(entity.getDocumentos());
-
- if (UtilObjeto.isReferencia(processo.getAprovado()) && processo.getAprovado()) {
+ this.startBusinessProcess(processo);
+ }
- this.startBusinessProcess(processo);
}
+
+ processo.setDocumentos(this.documentoGedService.atualizarSigiloDocumentos(entity.getDocumentos()));
+
return processo;
}
@@ -271,11 +341,9 @@ public class ProcessoServiceImpl extends GenericServiceImpl impl
this.montarEntidade(processo);
- try {
-// this.solrService.addProcesso(processo);
- } catch (Exception e) {
- e.printStackTrace();
- }
+ // this.saveSolr(processo);
+
+ this.validarAbertosEmOutrasUnidades(processo);
return super.merge(processo);
}
@@ -426,9 +494,18 @@ public class ProcessoServiceImpl extends GenericServiceImpl impl
}
}
+ if (UtilObjeto.isReferencia(processo.getTipoProtocolo())) {
+
+ processo.setTipoProtocolo(this.dominioService.findByChaveAndCodigo("tipoProtocoloNup", processo.getTipoProtocolo().getCodigo()));
+
+ }
+
// Verifica se o sigilo foi selecionado
if (UtilObjeto.isReferencia(processo.getSigilo()) && UtilObjeto.isReferencia(processo.getSigilo().getId())) {
processo.setSigilo(this.sigiloService.getReference(processo.getSigilo().getId()));
+ // Processo sigiloso inicia com o status Aguardando validação.
+ processo.setStatus(this.dominioService.findByChaveAndCodigo("statusProcesso", 3L));
+
this.atribuirPrazoPadraoProcesso(processo);
} else {
processo.setSigilo(null);
@@ -978,15 +1055,14 @@ public class ProcessoServiceImpl extends GenericServiceImpl impl
* @param entity
* História de usuário #3216_CA007
*/
- @SuppressWarnings("unused")
private void validarAbertosEmOutrasUnidades(Processo entity) {
- if (UtilObjeto.isReferencia(entity.getNivelAcesso().getNivelAcesso())) {
- if (entity.getNivelAcesso().getNivelAcesso().getCodigo() == 0L) {
- Collection listaUnidades = this.unidadeProcessoService.findProcesso(entity);
- if (listaUnidades != null && listaUnidades.size() > 0) {
- throw new BusinessException(ProcessoServiceImpl.VALIDAR_PROCESSOS_OUTRAS_UNIDADES, CodigoErro.REGRA_NEGOCIO.getValue());
- }
+ // verifica se o documento está passando a ser sigiloso
+ if (UtilObjeto.isReferencia(entity.getSigilo()) && !this.processoDao.isSigiloso(entity.getId())) {
+
+ if (this.unidadeProcessoService.isProcessoEnviado(entity.getId())) {
+
+ throw new BusinessException(VALIDAR_OUTRAS_UNIDADES, CodigoErro.REGRA_NEGOCIO.getValue());
}
}
}
@@ -1107,5 +1183,5 @@ public class ProcessoServiceImpl extends GenericServiceImpl impl
return this.processoDao.getProcessoByProtocolo(nup);
}
-
+
}
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 ce2603e..e9b6ab6 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
@@ -105,7 +105,7 @@ public class UnidadeProcessoServiceImpl extends GenericServiceImpl SearchResult
*/
@Override
public SearchResult searchAndCountPorUnidade(ISearch search) {
+
Dominio dominioStatusProcesso = dominioService.findByChaveAndCodigo(Dominio.TIPO_STATUS_PROCESSO_ECM, Dominio.TIPO_STATUS_PROCESSO_ECM_CONCLUIDO);
Usuario usuario = ( (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal() );
return this.unidadeProcessoDao.searchAndCountPorUnidade(search, usuario, dominioStatusProcesso.getId());
}
-
-}
\ No newline at end of file
+
+ /**
+ *
+ * Iniciativa(s): NUMERO_INICIATIVA
+ *
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
+ * Método responsável por verificar se o processo foi enviado para outra unidade
+ *
+ * @author rogerio.costa
+ *
+ * @param idProcesso
+ *
+ * @return Boolean
+ */
+ public Boolean isProcessoEnviado(Long idProcesso) {
+
+ return this.unidadeProcessoDao.isProcessoEnviado(idProcesso);
+
+ }
+
+}
diff --git a/cit-ecm-web/src/main/java/br/com/centralit/controller/DocumentoGedController.java b/cit-ecm-web/src/main/java/br/com/centralit/controller/DocumentoGedController.java
index d7982c6..fb7d5bb 100644
--- a/cit-ecm-web/src/main/java/br/com/centralit/controller/DocumentoGedController.java
+++ b/cit-ecm-web/src/main/java/br/com/centralit/controller/DocumentoGedController.java
@@ -16,12 +16,50 @@ import br.com.centralit.framework.controller.GenericController;
import br.com.centralit.framework.json.ResponseBodyWrapper;
import br.com.centralit.framework.view.ResultResponseVH;
+/**
+ *
+ *
+ *
+ *
+ *
+ * Company: Central IT - Governança Corporativa -
+ *
+ *
+ *
+ * Title:
+ *
+ *
+ *
+ * Description:
+ *
+ *
+ *
+ * Iniciativa(s): NUMERO_INICIATIVA
+ *
+ *
+ *
+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
+ *
+ *
+ * @since 25/04/2016 - 09:18:05
+ *
+ * @version 1.0.0
+ *
+ * @author rogerio.costa
+ *
+ */
@Controller
@RequestMapping("/rest/documentoGed")
public class DocumentoGedController extends GenericController {
+ /** Atributo documentoGedService. */
private DocumentoGedService documentoGedService;
+ /**
+ * Responsável pela criação de novas instâncias desta classe.
+ *
+ * @param documentoGedService
+ */
@Autowired
public DocumentoGedController( DocumentoGedService documentoGedService ) {
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 acb0734..e92eed3 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
@@ -167,9 +167,9 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
List list = new ArrayList();
- list.add(new Dominio("statusDocumentoGed", "Minuta", "MINUTA", 1L));
- list.add(new Dominio("statusDocumentoGed", "Original", "ORIGINAL", 2L));
- list.add(new Dominio("statusDocumentoGed", "Cópia", "COPIA", 3L));
+ list.add(new Dominio("estadoDocumentoGed", "Minuta", "MINUTA", 1L));
+ list.add(new Dominio("estadoDocumentoGed", "Original", "ORIGINAL", 2L));
+ list.add(new Dominio("estadoDocumentoGed", "Cópia", "COPIA", 3L));
list.add(new Dominio("tipoDestinacao", "Guardar Permanente", "GUARDAR_PERMANENTE", 1L));
list.add(new Dominio("tipoDestinacao", "Eliminação", "ELIMINAR", 2L));
@@ -203,6 +203,11 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
list.add(new Dominio("statusProcesso", "ConcluÃdo", "CONCLUIDO", 1L));
list.add(new Dominio("statusProcesso", "Em andamento", "EM_ANDAMENTO", 2L));
+ list.add(new Dominio("statusProcesso", "Aguardando Validação", "AGUARDANDO_VALIDACAO", 3L));
+ list.add(new Dominio("statusProcesso", "Validado", "VALIDADO", 4L));
+
+ list.add(new Dominio("statusDocumentoGed", "Aguardando Validação", "AGUARDANDO_VALIDACAO", 0L));
+ list.add(new Dominio("statusDocumentoGed", "Validado", "VALIDADO", 1L));
list.add(new Dominio("filtroPesquisa", "Ambos", "AMBOS", 0L));
list.add(new Dominio("filtroPesquisa", "Processo", "PROCESSO", 1L));
@@ -439,7 +444,11 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.UNIDADE_GESTORA ", "Unidade gestora", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.DATA_CRIACAO ", "Data criação", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.PLACEHOLDER_PESQUISA ", "Digite o Nup, tipo de processo, tipo de documento, conteúdo do documento, autor, assunto, destinatário...", dominio, modulo));
- internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ATE ", "Até", dominio, modulo));
+ internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ATE", "Até", dominio, modulo));
+ internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.VALIDADO", "Validado", dominio, modulo));
+ internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ESTADO", "Estado", dominio, modulo));
+ internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.VALIDAR", "Validar", dominio, modulo));
+ internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.NAO_CONTEM_DOCUMENTOS", "Não contém documentos", dominio, modulo));
}
@@ -473,6 +482,8 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.REMOCAO_COM_VINCULO", "Não é possÃvel excluir pois o mesmo encontra-se em uso por outro cadastro no sistema!", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.PERMISSAO_OPERACAO", "Você não tem permissão para executar a operação.", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.GRUPO_PADRAO_EM_OUTRA_UNIDADE", "O grupo selecionado como padrão está sendo usado como grupo padrão da unidade ", dominio, modulo));
+ internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.VALIDAR_ALTERACAO_NIVEL_ACESSO_OUTRAS_UNIDADES", "Não é possÃvel alterar o nÃvel de acesso para sigiloso, pois o processo foi enviado para outra unidade.", dominio, modulo));
+ internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.VALIDAR_NIVEL_ACESSO", "Não é possÃvel incluir documento com o nÃvel de acesso menor que o do processo.", dominio, modulo));
}
@@ -550,5 +561,7 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.TAREFA_SOBRESTADA_SUCESSO", "Tarefa sobrestada com sucesso!", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.CONFIRMA_REATIVACAO_TAREFA", "Confirma reativação da tarefa?", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.TAREFA_REATIVADA", "Tarefa reativada com sucesso", dominio, modulo));
+ internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.VALIDADO", "Validado com sucesso!", dominio, modulo));
+ internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.SELECIONE_UM_ITEM_PARA_VALIDACAO", "Selecione um item para validar.", dominio, modulo));
}
}
diff --git a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/ClassificarDocumentoProcessoController.js b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/ClassificarDocumentoProcessoController.js
index bef0b87..42c7a79 100644
--- a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/ClassificarDocumentoProcessoController.js
+++ b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/ClassificarDocumentoProcessoController.js
@@ -1,111 +1,40 @@
'use strict';
citApp.controller('ClassificarDocumentoProcessoController', ['$scope', 'ProcessoRepository', '$translate', '$timeout', 'DominioRepository', '$compile', '$injector', 'DocumentoGedRepository', 'appService', 'NivelAcessoTipoProcessoRepository', 'HipoteseLegalRepository', 'NivelAcessoTipoDocumentoRepository', 'HistoricoAlteracaoProcessoRepository', 'SigiloRepository', function ClassificarDocumentoProcessoController($scope, ProcessoRepository, $translate, $timeout, DominioRepository, $compile, $injector, DocumentoGedRepository, appService, NivelAcessoTipoProcessoRepository, HipoteseLegalRepository, NivelAcessoTipoDocumentoRepository, HistoricoAlteracaoProcessoRepository, SigiloRepository) {
- $scope.$showAdvancedFilters = false;
- $scope.totalPages = 10;
- $scope.totalItens = 0;
- $scope.limit = 10;
- $scope.processos = [];
- $scope.businessProcess = null;
- $scope.indexProcessoNegocio = null;
-
- $scope.idPainelItem = 0;
-
- $scope.tabAtual = 0;
-
- $scope.aprovado = null;
-
- $scope.tabs = [ {active: true}
- ,{active: false}
- ];
-
- $scope.showTaskTab = true;
- $scope.init = function(showTaskTab) {
- $scope.showTaskTab = showTaskTab;
- };
-
- $scope.setCurrentTab = function(tab) {
- $scope.tabAtual = tab;
- for (var i = 0; i < $scope.tabs.length; i++) {
- $scope.tabs[i].active = i == tab;
- }
- };
-
- $scope.resetForm = function() {
- angular.element("#editProcessoEcm").scope().resetForm();
- };
-
- $scope.headers = [{title : $translate.instant('ECM.LABEL.PROTOCOLO'), value : 'nup' },
- {title : $translate.instant('ECM.LABEL.NIVEL_FINAL'), value : 'nivelAcesso.nivelAcesso.descricao'} ,
- {title : $translate.instant('ECM.LABEL.PROPOSTA'), value : 'sigilo.tipoSigilo.descricao'},
- {title : $translate.instant('ECM.LABEL.PRAZO_SIGILO'), value : 'prazoSigilo', filter : 'dateBR' }];
-
- $scope.filterCriteria = {
- start : 1,
- dir : 'asc',
- sort : 'id',
- limit : 10,
- fields: ['id', 'nup', 'nivelAcesso.nivelAcesso.descricao', 'sigilo.tipoSigilo.descricao', 'nivelAcesso.nivelAcesso.descricao', 'prazoSigilo'],
- filters : [{type : 'string', field : 'nup' },
- {type : 'string', field : 'nivelAcesso.nivelAcesso.descricao' } ,
- {type : 'string', field : 'sigilo.tipoSigilo.descricao', comparison : 'nn'},
- {type : 'date', field : 'prazoSigilo' }]
- };
-
- // Will be called when filtering the grid, will reset the page number to one
- $scope.filterResult = function() {
-
- //Timeout adicionado para que os filtros de pesquisa funcionem
- $timeout(function(){
- $scope.filterCriteria.start = 1;
- $scope.fetchResult().then(function() {
- // The request fires correctly but sometimes the ui doesn't update,
- // that's a fix
- $scope.filterCriteria.start = 1;
- });
-
- });
- };
-
- // call back function that we passed to our custom directive sortBy, will be
- // called when clicking on any field to sort
- $scope.onSort = function(sortedBy, sortDir) {
- $scope.filterCriteria.dir = sortDir;
- $scope.filterCriteria.sort = sortedBy;
- $scope.filterCriteria.start = 1;
- $scope.fetchResult().then(function() {
- // The request fires correctly but sometimes the ui doesn't update,
- // that's a fix
- $scope.filterCriteria.start = 1;
- });
- };
-
-
- // RECUPERA LISTA DE TAREFAS E SETA RESULTADO NA GRID
- $scope.fetchResult = function(page) {
-
- $scope.setCurrentTab(0);
- $scope.setLoading(true);
-
- return ProcessoRepository.getListPage($scope.filterCriteria).then(function(result) {
- $scope.processos = result.originalElement.objects;
- $scope.totalPages = result.originalElement.totalPages;
- $scope.totalItens = result.originalElement.totalItens;
- $scope.setLoading(false);
- }, function() {
- $scope.totalPages = 0;
- $scope.totalItens = 0;
- $scope.setLoading(false);
- });
- };
+ //Iniciar classificação
+ $scope.iniciar = function(processo){
+
+ $scope.setLoading(true);
+
+ $scope.processoValidacao = processo;
+
+ $scope.validado = $scope.processoValidacao.validado;
+
+ $scope.contemDocumentoParaValidar = $.grep($scope.processoValidacao.documentos, function(e){ return e.status.codigo == 0; })[0] != null;
+
+ $scope.findPorIdTipoProcesso(processo.tipoProcesso.id);
+
+ if($scope.processoValidacao.documentos){
+
+ angular.forEach($scope.processoValidacao.documentos, function (item) {
+
+ $scope.findNivelAcessoTipoDocumento(item);
+
+ });
+ };
+
+ $scope.setLoading(false);
+
+ };
$scope.removerAtributos = function(){
- angular.forEach($scope.processo.documentos, function (item) {
+ angular.forEach($scope.processoValidacao.documentos, function (item) {
delete item.autorUserName;
delete item.unidadeNome;
delete item.documentoVersao;
delete item.originalElement;
+ delete item.nivelAcessoList;
if(item.nivelAcesso != undefined && item.nivelAcesso.sigilos != null){
angular.forEach(item.nivelAcesso.sigilos, function (item) {
@@ -132,22 +61,19 @@ citApp.controller('ClassificarDocumentoProcessoController', ['$scope', 'Processo
if($scope.classificarDocumentoProcessoForm.$valid){
$scope.setLoadingSalva(true);
-
$scope.removerAtributos();
-
- $scope.processo.aprovado = $scope.aprovado;
- ProcessoRepository.atualizarSigiloProcesso($scope.processo).then(function(result) {
- $scope.showAlert("success", $translate.instant('MSG.REGISTRO_SALVO'));
+ $scope.processoValidacao.validado = $scope.validado;
+ ProcessoRepository.atualizarSigiloProcesso($scope.processoValidacao).then(function(result) {
$scope.historicoAlteracao(result.originalElement);
- ProcessoRepository.get($scope.processo.id).then(function(result){
- $scope.processo = result.originalElement;
- $scope.aprovado = result.originalElement.aprovado;
- $scope.carregarListaDocumentos($scope.processo.id);
- });
$scope.classificarDocumentoProcessoForm.$submitted = false;
$scope.atualizaProcesso();
+ $scope.showAlert("success", $translate.instant('ECM.MSG.VALIDADO'));
+ $scope.setLoading(false);
+
+ $timeout(function(){
+ $scope.$parent.$parent.closeWidget();
+ });
});
- $scope.setLoading(false);
}else{
//Mensagem de erro de campos obrigatorios não preenchidos
$scope.showAlert('error', $translate.instant('MSG.MN001'), " ", false);
@@ -173,70 +99,44 @@ citApp.controller('ClassificarDocumentoProcessoController', ['$scope', 'Processo
$scope.closeWidget = function() {
angular.element("#searchGerenciarProcesso").scope().closeWidget();
};
-
- $scope.initializeNivelAcessoDocumento = function(){
- $scope.nivelAcessoTipoDocumentoList = [];
- NivelAcessoTipoDocumentoRepository.findAll().then(function(result) {
- $scope.nivelAcessoTipoDocumentoList = result;
- });
- };
-
-
- $scope.initializeSigiloDocumento = function(){
- $scope.sigiloDocumentoList = [ ];
- SigiloRepository.getList().then(function(result) {
- $scope.sigilos = result;
- });
- };
- $scope.iniciar = function(processo){
+ //Listar nivelAcessoTipoDocumento
+ $scope.findNivelAcessoTipoDocumento = function(documento){
- ProcessoRepository.get(processo.id).then(function(result) {
- $scope.processo = result.originalElement;
- $scope.aprovado = result.originalElement.aprovado;
- $scope.carregarListaDocumentos(processo.id);
- });
-
- $scope.findNivelPorIdProcesso(processo.tipoProcesso.id);
-
+ documento.nivelAcessoList = [];
+
+ return NivelAcessoTipoDocumentoRepository.findPorIdTipoDocumento(documento.tipoDocumento.id).then(function(result) {
+
+ angular.forEach(result, function (nivelAcesso) {
+ //seta o originalElement do result
+ documento.nivelAcessoList.push(nivelAcesso.originalElement);
+ //substitui o nivelAcesso do documento
+ if(documento.nivelAcesso.id === nivelAcesso.originalElement.id){
+
+ documento.nivelAcesso = nivelAcesso.originalElement;
+
+ }
+
+ });
+ });
};
- $scope.carregarListaDocumentos = function(idProcesso){
- $scope.processo.documentos = [];
- DocumentoGedRepository.findByProcessoSigilo(idProcesso).then(function(result) {
- angular.forEach(result, function(item) {
-
- var documento = item.originalElement;
- $scope.processo.documentos.push(documento);
-
- });
- });
- } ;
-
-
- $scope.findNivelPorIdProcesso = function(idTipoProcesso){
+ $scope.limparSigilo = function(documento){
+
+ $timeout(function(){
+ if(documento.nivelAcesso.nivelAcesso.codigo != 0){
+
+ documento.sigilo = null;
+
+ }
+ });
+ };
+
+ $scope.findPorIdTipoProcesso = function(idTipoProcesso){
NivelAcessoTipoProcessoRepository.findPorIdTipoProcesso(idTipoProcesso).then(function(result) {
$scope.nivelAcessoList = result;
});
};
-
- // Consulta entidade e mostra no formulario
- $scope.getProcesso = function(processo){
- $scope.setLoadingGet(true);
-
- ProcessoRepository.get(processo.id).then(function(result) {
- $scope.processo = result.originalElement;
- $scope.aprovado = result.originalElement.aprovado;
- $scope.setLoading(false);
- $scope.constroiRelacionamentoTipoProcesso($scope.processo.tipoProcesso);
-
- });
- };
-
-
- $scope.initializeNivelAcessoDocumento();
- $scope.initializeSigiloDocumento();
- $scope.fetchResult();
}]);
diff --git a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/ClassificarDocumentoProcessoListController.js b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/ClassificarDocumentoProcessoListController.js
index 5d210d6..b87679c 100644
--- a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/ClassificarDocumentoProcessoListController.js
+++ b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/ClassificarDocumentoProcessoListController.js
@@ -1,43 +1,12 @@
'use strict';
citApp.controller('ClassificarDocumentoProcessoListController', ['$scope', 'ProcessoRepository', '$translate', '$timeout', 'DominioRepository', '$compile', '$injector', 'DocumentoGedRepository', 'appService', function ClassificarDocumentoProcessoListController($scope, ProcessoRepository, $translate, $timeout, DominioRepository, $compile, $injector, DocumentoGedRepository, appService) {
- $scope.$showAdvancedFilters = false;
- $scope.totalPages = 10;
- $scope.totalItens = 0;
- $scope.limit = 10;
- $scope.processos = [];
- $scope.businessProcess = null;
- $scope.indexProcessoNegocio = null;
-
- $scope.idPainelItem = 0;
-
- $scope.tabAtual = 0;
-
- $scope.tabs = [ {active: true}
- ,{active: false}
- ];
-
- $scope.showTaskTab = true;
- $scope.init = function(showTaskTab) {
- $scope.showTaskTab = showTaskTab;
- };
-
- $scope.setCurrentTab = function(tab) {
- $scope.tabAtual = tab;
- for (var i = 0; i < $scope.tabs.length; i++) {
- $scope.tabs[i].active = i == tab;
- }
- };
-
- $scope.resetForm = function() {
- angular.element("#editProcessoEcm").scope().resetForm();
- };
-
- $scope.headers = [{title : $translate.instant('LABEL.PROTOCOLO'), value : 'nup' },
- {title : $translate.instant('LABEL.PROPOSTA'), value : 'sigiloOriginal.tipoSigilo.descricao'},
- {title : $translate.instant('LABEL.NIVEL_FINAL'), value : 'sigilo.tipoSigilo.descricao'} ,
- {title : $translate.instant('LABEL.PRAZO_SIGILO'), value : 'prazoSigilo', filter : 'dateBR' }];
+
+ $scope.headers = [{title : $translate.instant('ECM.LABEL.PROTOCOLO'), value : 'nup' },
+ {title : $translate.instant('ECM.LABEL.PROPOSTA'), value : 'sigiloOriginal.tipoSigilo.descricao'},
+ {title : $translate.instant('ECM.LABEL.NIVEL_FINAL'), value : 'sigilo.tipoSigilo.descricao'} ,
+ {title : $translate.instant('ECM.LABEL.PRAZO_SIGILO'), value : 'prazoSigilo', filter : 'dateBR' }];
$scope.filterCriteria = {
start : 1,
@@ -52,115 +21,68 @@ citApp.controller('ClassificarDocumentoProcessoListController', ['$scope', 'Proc
{type : 'date', field : 'prazoSigilo' }]
};
- // Will be called when filtering the grid, will reset the page number to one
- $scope.filterResult = function() {
-
- //Timeout adicionado para que os filtros de pesquisa funcionem
- $timeout(function(){
- $scope.filterCriteria.start = 1;
- $scope.fetchResult().then(function() {
- // The request fires correctly but sometimes the ui doesn't update,
- // that's a fix
- $scope.filterCriteria.start = 1;
- });
-
- });
- };
-
- // call back function that we passed to our custom directive sortBy, will be
- // called when clicking on any field to sort
- $scope.onSort = function(sortedBy, sortDir) {
- $scope.filterCriteria.dir = sortDir;
- $scope.filterCriteria.sort = sortedBy;
- $scope.filterCriteria.start = 1;
- $scope.fetchResult().then(function() {
- // The request fires correctly but sometimes the ui doesn't update,
- // that's a fix
- $scope.filterCriteria.start = 1;
- });
- };
-
-
- // RECUPERA LISTA DE TAREFAS E SETA RESULTADO NA GRID
- $scope.fetchResult = function(page) {
-
- $scope.setCurrentTab(0);
- $scope.setLoading(true);
-
- return ProcessoRepository.getListPage($scope.filterCriteria).then(function(result) {
- $scope.processos = result.originalElement.objects;
- $scope.totalPages = result.originalElement.totalPages;
- $scope.totalItens = result.originalElement.totalItens;
- $scope.setLoading(false);
- }, function() {
- $scope.totalPages = 0;
- $scope.totalItens = 0;
- $scope.setLoading(false);
- });
+ $scope.atualizarGrid = function() {
+ $scope.filterResult();
};
-
+
// ABRI Processo SELECIONADA
- $scope.abrirVisualizar = function(processo){
-
- var pagina = '/cit-ecm-web/html/gerenciarProcesso/gerenciarProcesso.html';
+ $scope.abreValidar = function(){
- ProcessoRepository.get(processo.id).then(function(result){
- processo = result.originalElement;
- DocumentoGedRepository.findByProcessoSigilo(processo.id).then(function(result) {
- processo.documentos = result;
- });
- });
-
- if (appService.existsWorkspace(pagina)) {
- $scope.$openModalConfirm({message:$translate.instant('ECM.MSG.EXISTE_PROCESSO_ABERTO'), callback: function(){
- $scope.$modalConfirmInstance.dismiss('cancel');
- $scope.setLoading(true);
+ if($scope.modelSelecionado && $scope.modelSelecionado.id){
+
+ var pagina = '/cit-ecm-web/html/gerenciarProcesso/gerenciarProcesso.html';
+
+ if (appService.existsWorkspace(pagina)) {
+ $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('#searchGerenciarProcesso').scope().getProcesso($scope.modelSelecionado);
+
+ }, 100);
+ $scope.setLoading(false);
+ }});
+ }else{
$scope.openWorkspaceIfNotOpen($translate.instant('ECM.LABEL.PROCESSO'), pagina, 'mod-orange');
$timeout(function() {
- angular.element('#searchGerenciarProcesso').scope().getProcesso(processo);
+ angular.element('#searchGerenciarProcesso').scope().getProcesso($scope.modelSelecionado);
}, 100);
- $scope.setLoading(false);
- }});
- }else{
- $scope.openWorkspaceIfNotOpen($translate.instant('ECM.LABEL.PROCESSO'), pagina, 'mod-orange');
- $timeout(function() {
- angular.element('#searchGerenciarProcesso').scope().getProcesso(processo);
-
- }, 100);
- }
+ }
+ }else{
+ $scope.showAlert('warning', $translate.instant('ECM.MSG.SELECIONE_UM_ITEM_PARA_VALIDACAO'));
+ }
};
//adiciona a lista de documentos ao processo
- $scope.retrieveAditionalHtml = function(processo) {
- processo.$show = !processo.$show;
- if (!processo.$show)
- return;
+ $scope.findDocumentos = function() {
- if(!processo.documentos){
- DocumentoGedRepository.findByProcessoSigilo(processo.id).then(function(result) {
- processo.documentos = result;
- $scope.showAditionalHtml(processo);
- });
- }else{
- $scope.showAditionalHtml(processo);
+ _getProcesso();
+
+ if($scope.modelSelecionado.id){
+
+ DocumentoGedRepository.findByProcessoSigilo($scope.modelSelecionado.id).then(function(result) {
+ $scope.modelSelecionado.documentos = result;
+ });
}
+ $scope.modelSelecionado.$expandido = !$scope.modelSelecionado.$expandido;
+
+
};
+
+ function _getProcesso(){
+ $scope.modelSelecionado = {};
+ for(var count = 0; count < $scope.processos.length; count++){
+ if($scope.processos[count].$show) {
+ $scope.modelSelecionado = $scope.processos[count];
+ break;
+ };
+ };
- //abre a div com os documentos
- $scope.showAditionalHtml = function(processo) {
- var id = "divHtmlAdicional_" + $scope.idPainelItem + "_" + processo.id;
-
- var el = document.getElementById(id);
- if (!el || el.innerHTML != '')
- return;
-
- var element = angular.element("#"+id);
- el.focus();
};
-
- $scope.fetchResult();
+
}]);
diff --git a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/DocumentoGedController.js b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/DocumentoGedController.js
index c9a435c..1b95284 100644
--- a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/DocumentoGedController.js
+++ b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/DocumentoGedController.js
@@ -190,7 +190,7 @@ citApp.controller('DocumentoGedController', ['$scope', 'DocumentoGedRepository',
processo : $scope.documentoGed.processo,
autor : $scope.usuarioLogado,
acaoAlteracao : "INCLUSAO_DOCUMENTO",
- idTask : $scope.task.id,
+ idTask : $scope.task ? $scope.task.id : null,
mapaAtributos : {"tipo_documento" : $scope.documentoGed.tipoDocumento.nome, "numero_documento" : $scope.documentoGed.numero}
};
HistoricoAlteracaoProcessoRepository.saveParams(historicoAlteracaoProcesso).then(function(result){
@@ -203,7 +203,7 @@ citApp.controller('DocumentoGedController', ['$scope', 'DocumentoGedRepository',
processo : $scope.documentoGed.processo,
autor : $scope.usuarioLogado,
acaoAlteracao : "CRIACAO_NOVA_VERSAO_DOCUMENTO",
- idTask : $scope.task.id,
+ idTask : $scope.task ? $scope.task.id : null,
mapaAtributos : {"tipo_documento" : $scope.documentoGed.tipoDocumento.nome, "numero_documento" : $scope.documentoGed.numero, "numero_versao" : $scope.documentoGed.versaoDocumento.toFixed(1)}
};
HistoricoAlteracaoProcessoRepository.saveParams(historicoAlteracaoProcesso).then(function(result){
@@ -241,17 +241,17 @@ citApp.controller('DocumentoGedController', ['$scope', 'DocumentoGedRepository',
$scope.mantido = false;
$scope.documentoGed.localizacao = null;
$scope.documentoGed.numero = null;
- DominioRepository.findAllDominio('statusDocumentoGed').then(function(result) {
- $scope.statusList = result;
+ DominioRepository.findAllDominio('estadoDocumentoGed').then(function(result) {
+ $scope.estadoList = result;
});
}else{
$scope.documentoGed.conteudo = {};
- if($.grep($scope.statusList, function(e){ return e.codigo === 3; })[0]){
+ if($.grep($scope.estadoList, function(e){ return e.codigo === 3; })[0]){
- $scope.statusList.splice($.grep($scope.statusList, function(e){ return e.codigo === 3; })[0].$index, 1);
+ $scope.estadoList.splice($.grep($scope.estadoList, function(e){ return e.codigo === 3; })[0].$index, 1);
}
}
@@ -323,8 +323,8 @@ citApp.controller('DocumentoGedController', ['$scope', 'DocumentoGedRepository',
});
};
- DominioRepository.findAllDominio('statusDocumentoGed').then(function(result) {
- $scope.statusList = result;
+ DominioRepository.findAllDominio('estadoDocumentoGed').then(function(result) {
+ $scope.estadoList = result;
});
//SET HIPOTESE LEGAL #INICIO
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 dd68908..a5129bd 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
@@ -13,7 +13,6 @@ citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$tim
//INICIALIZA VARIAVEIS PARA HABILITAR E FECHAR DIVS DE AÇÕES DO PROCESSO
- $scope.isHistoricoProcesso = true;
$scope.fecharPagina = function() {
$scope.isProcessoRelacionado = false;
$scope.isDocumentoEdit = false;
@@ -339,9 +338,21 @@ citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$tim
$scope.classificarDocumentoProceso = function () {
$scope.fecharPagina();
$scope.isClassificarProcessoDocumento = true;
+ var processo = {};
+ angular.copy($scope.processo, processo);
+ if($scope.processo.documentos){
+ processo.documentos = [];
+ angular.forEach($scope.processo.documentos, function(item) {
+ if(item.status.codigo == 0){
+ var documento = item;
+ processo.documentos.push(documento);
+ }
+ });
+
+ }
$timeout( function () {
- angular.element( "#classificarDocumento" ).scope().getProcesso( $scope.processo );
- } );
+ angular.element( "#classificarDocumento" ).scope().iniciar(processo);
+ });
};
// REMOVER DOCUMENTO
@@ -634,26 +645,34 @@ citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$tim
if ( $scope.task != null ) {
$scope.initialize();
}
+
+ $scope.getProcesso = function (processo) {
- $scope.getProcesso = function ( processo ) {
-
- $scope.setLoadingGet( true );
+ $scope.setLoadingGet(true);
ProcessoRepository.getProcessoGerenciamento(processo.id).then(function(result) {
- $scope.processo = result.originalElement;
-
-
+ //Processo do scopo do gerenciamento
+ $scope.processo = result.originalElement;
+ //Processo que sera avaliado
+ var processo = result.originalElement;
+ processo.documentos = [];
DocumentoGedRepository.findByProcessoSigilo(processo.id).then(function(result) {
- $scope.processo.documentos = result;
+
+ angular.forEach(result, function(item) {
+
+ var documento = item.originalElement;
+
+ processo.documentos.push(documento);
+ });
+
+ $timeout( function () {
+ angular.element( "#classificarDocumento" ).scope().iniciar(processo);
+ } );
});
$scope.setLoading(false);
});
- $timeout( function () {
- angular.element( "#classificarDocumento" ).scope().iniciar(processo);
- } );
-
$scope.isHistoricoProcesso = false;
$scope.isClassificarProcessoDocumento = true;
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 3be0df3..9be00e0 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
@@ -123,7 +123,7 @@ citApp.controller('SolrSearchController', ['$scope','$attrs','$location','$route
$scope.handleSetPage = function() {
$scope.timeout = $timeout(function () {
- var query = SolrSearchService.createQuery("https://localhost:8983/solr/jcg");
+ var query = SolrSearchService.createQuery("https://172.20.0.74:8983/solr/jcg");
query.setOption("rows", "10");
query.setOption("facet", "true");
query.setOption("facet.limit", $scope.maxHints);
@@ -330,7 +330,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://localhost:8983/solr/jcg");
+ var query = SolrSearchService.createQuery("https://172.20.0.74:8983/solr/jcg");
query.setOption("rows", "10");
query.setOption("facet", "true");
query.setOption("facet.limit", $scope.maxHints);
@@ -409,7 +409,7 @@ citApp.controller('SolrSearchController', ['$scope','$attrs','$location','$route
$scope.userQuery = "*:*";
}
$scope.timeout = $timeout(function () {
- var query = SolrSearchService.createQuery("https://localhost:8983/solr/jcg");
+ var query = SolrSearchService.createQuery("https://172.20.0.74:8983/solr/jcg");
query.setOption("rows", "10");
query.setOption("facet", "true");
query.setOption("facet.limit", $scope.maxHints);
@@ -440,7 +440,7 @@ citApp.controller('SolrSearchController', ['$scope','$attrs','$location','$route
valueFilter = "*:*";
}
$scope.timeout = $timeout(function () {
- var query = SolrSearchService.createQuery("https://localhost:8983/solr/jcg");
+ var query = SolrSearchService.createQuery("https://172.20.0.74:8983/solr/jcg");
query.setOption("rows", "10");
query.setOption("facet", "true");
query.setOption("facet.limit", $scope.maxHints);
diff --git a/cit-ecm-web/src/main/webapp/html/classificarProcessoDocumento/classificarProcessoDocumento.html b/cit-ecm-web/src/main/webapp/html/classificarProcessoDocumento/classificarProcessoDocumento.html
index d7511a1..f5093b1 100644
--- a/cit-ecm-web/src/main/webapp/html/classificarProcessoDocumento/classificarProcessoDocumento.html
+++ b/cit-ecm-web/src/main/webapp/html/classificarProcessoDocumento/classificarProcessoDocumento.html
@@ -1,5 +1,4 @@
-