From e6a6d14cc9b533c2b75890203b1ea3dbcf47fef6 Mon Sep 17 00:00:00 2001
From: rogerio.costa
Date: Tue, 26 Apr 2016 14:48:14 -0300
Subject: [PATCH] #3216 - Classificar a Informação de Documentos e Processos
---
cit-ecm-api/src/main/java/br/com/centralit/api/model/DocumentoGed.java | 2 +-
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/DocumentoGedServiceImpl.java | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/ClassificarDocumentoProcessoController.js | 13 ++++++++-----
cit-ecm-web/src/main/webapp/html/classificarProcessoDocumento/classificarProcessoDocumento.html | 28 ++++++++++++----------------
4 files changed, 102 insertions(+), 39 deletions(-)
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 7eb0e05..37957b6 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
@@ -66,7 +66,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
*
*/
@Entity
-@JsonIgnoreProperties({ "$checked" })
+@JsonIgnoreProperties({ "$checked", "nivelAcessoList" })
public class DocumentoGed extends PersistentObjectUnidade implements Cloneable {
/** Atributo serialVersionUID. */
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 09fb11c..004ab16 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
@@ -26,9 +26,11 @@ import br.com.centralit.api.model.DocumentoGed;
import br.com.centralit.api.model.InteressadoDocumento;
import br.com.centralit.api.model.Processo;
import br.com.centralit.api.service.AnexoGedService;
+import br.com.centralit.api.service.CredencialProcessoService;
import br.com.centralit.api.service.DocumentoGedService;
import br.com.centralit.api.service.DominioService;
import br.com.centralit.api.service.NivelAcessoTipoDocumentoService;
+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;
@@ -38,6 +40,9 @@ 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;
+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.service.arquitetura.GedFileService;
import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
import br.com.centralit.framework.util.UtilColecao;
@@ -124,6 +129,14 @@ public class DocumentoGedServiceImpl extends GenericServiceImplRegra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO
*
*
- * Método responsável por
+ * Método responsável por validar o nivel de acesso do documento
*
* @author andre.silva
*
@@ -302,28 +316,31 @@ public class DocumentoGedServiceImpl extends GenericServiceImplRegra(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 documento sigiloso
+ *
+ * @author rogerio.costa
+ *
+ * @param DocumentoGed
+ */
+ private void enviarNotificacaoDocumentoSigiloso(DocumentoGed documentoGed) {
+
+ StringBuilder sb = new StringBuilder();
+
+ sb.append("O documento ").append(documentoGed.getNumero()).append(" foi criado como ").append(documentoGed.getSigilo().getTipoSigilo().getDescricao());
+
+ Dominio tipoNotificacao = this.dominioService.findByChaveAndCodigo("tipoNotificacao", 4L);
+
+ Dominio tipoPrioridade = this.dominioService.findByChaveAndCodigo("tipoPrioridade", 2L);
+
+ Notificacao notificacao = new Notificacao("Documento sigiloso", sb.toString(), tipoNotificacao, tipoPrioridade, null, null, null);
+
+ Collection grupos = this.credencialProcessoService.findGrupoPorSigilo(documentoGed.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 obter através do id do PlanoClassificacao
*
* @author rogerio.costa
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 42c7a79..7f07e51 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
@@ -34,7 +34,6 @@ citApp.controller('ClassificarDocumentoProcessoController', ['$scope', 'Processo
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) {
@@ -121,12 +120,12 @@ citApp.controller('ClassificarDocumentoProcessoController', ['$scope', 'Processo
});
};
- $scope.limparSigilo = function(documento){
+ $scope.limparSigilo = function(object){
$timeout(function(){
- if(documento.nivelAcesso.nivelAcesso.codigo != 0){
+ if(object.nivelAcesso && object.nivelAcesso.nivelAcesso.codigo != 0){
- documento.sigilo = null;
+ object.sigilo = null;
}
});
@@ -134,8 +133,12 @@ citApp.controller('ClassificarDocumentoProcessoController', ['$scope', 'Processo
$scope.findPorIdTipoProcesso = function(idTipoProcesso){
+ $scope.nivelAcessoList = [];
+
NivelAcessoTipoProcessoRepository.findPorIdTipoProcesso(idTipoProcesso).then(function(result) {
- $scope.nivelAcessoList = result;
+
+ $scope.nivelAcessoList = result;
+
});
};
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 f5093b1..3718af7 100644
--- a/cit-ecm-web/src/main/webapp/html/classificarProcessoDocumento/classificarProcessoDocumento.html
+++ b/cit-ecm-web/src/main/webapp/html/classificarProcessoDocumento/classificarProcessoDocumento.html
@@ -60,24 +60,20 @@
+ ng-custom-options="nivelAcessoTipoProcesso.originalElement as nivelAcessoTipoProcesso.nivelAcesso.descricao for nivelAcessoTipoProcesso"
+ ng-list="nivelAcessoList" ng-custom-change="limparSigilo(processoValidacao)" track-by="track by nivelAcessoTipoProcesso.id"/>
-
- ECM.LABEL.SIGILO *
-
-
-
+
+
+
-
+
@@ -102,7 +98,7 @@
ECM.LABEL.NUM_DOCUMENTO
ECM.LABEL.TIPODOCUMENTO
- ECM.LABEL.NIVEL_PROPOSTO
+ ECM.LABEL.NIVEL_PROPOSTO
ECM.LABEL.NIVEL_REVISADO
@@ -114,13 +110,13 @@
--
libgit2 0.21.2