From 5a0e19223383ff06c91bf18bcace11930356342d Mon Sep 17 00:00:00 2001 From: ROGERIO CASSIMIRO DE SOUZA Date: Fri, 22 Apr 2016 19:25:08 -0300 Subject: [PATCH] redmine #4583 assinatura interna com visualizacoes --- cit-ecm-api/src/main/java/br/com/centralit/api/model/Assinatura.java | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------- cit-ecm-api/src/main/java/br/com/centralit/api/model/Assunto.java | 1 - cit-ecm-api/src/main/java/br/com/centralit/api/model/DocumentoGed.java | 24 ++++++++++++++++++++++++ cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/InicializarEcmServiceImpl.java | 1 + cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java | 4 +++- cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoController.js | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------- cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoListUnidadeController.js | 4 +++- cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturaEdit.html | 100 ++++++++++++++++++++++++++++++++++++---------------------------------------------------------------- cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeAcaoProcesso.html | 2 +- cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeDocumentosProcesso.html | 2 +- 10 files changed, 208 insertions(+), 88 deletions(-) diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/model/Assinatura.java b/cit-ecm-api/src/main/java/br/com/centralit/api/model/Assinatura.java index 8de58f2..7c3d513 100644 --- a/cit-ecm-api/src/main/java/br/com/centralit/api/model/Assinatura.java +++ b/cit-ecm-api/src/main/java/br/com/centralit/api/model/Assinatura.java @@ -8,6 +8,7 @@ import javax.persistence.Id; import javax.persistence.ManyToOne; import br.com.centralit.framework.json.Views; +import br.com.centralit.framework.model.Dominio; import br.com.centralit.framework.model.Usuario; import br.com.centralit.framework.model.arquitetura.PersistentObjectAudit; @@ -58,12 +59,23 @@ public class Assinatura extends PersistentObjectAudit { private Long id; /** Atributo usuario. */ + @JsonView({ Views.DocumentoGedEdit.class }) @ManyToOne(fetch = FetchType.LAZY) private Usuario usuario; - /** Atributo documento. */ + /** Atributo documentoGed. */ @ManyToOne(fetch = FetchType.LAZY) - private Documento documento; + private DocumentoGed documentoGed; + + /** Atributo tipoAssinatura. */ + @JsonView({ Views.DocumentoGedEdit.class }) + @ManyToOne(fetch = FetchType.LAZY) + private Dominio tipoAssinatura; + + /** Atributo funcao. */ + @ManyToOne(fetch = FetchType.LAZY) + @JsonView({ Views.DocumentoGedEdit.class }) + private Funcao funcao; /** * Retorna o valor do atributo id @@ -106,23 +118,63 @@ public class Assinatura extends PersistentObjectAudit { } /** - * Retorna o valor do atributo documento + * Retorna o valor do atributo documentoGed + * + * @return DocumentoGed + */ + public DocumentoGed getDocumentoGed() { + + return documentoGed; + } + + /** + * Define o valor do atributo documentoGed. + * + * @param documentoGed + */ + public void setDocumentoGed(DocumentoGed documentoGed) { + + this.documentoGed = documentoGed; + } + + /** + * Retorna o valor do atributo tipoAssinatura + * + * @return Dominio + */ + public Dominio getTipoAssinatura() { + + return tipoAssinatura; + } + + /** + * Define o valor do atributo tipoAssinatura. + * + * @param tipoAssinatura + */ + public void setTipoAssinatura(Dominio tipoAssinatura) { + + this.tipoAssinatura = tipoAssinatura; + } + + /** + * Retorna o valor do atributo funcao * - * @return Documento + * @return Funcao */ - public Documento getDocumento() { + public Funcao getFuncao() { - return documento; + return funcao; } /** - * Define o valor do atributo documento. + * Define o valor do atributo funcao. * - * @param documento + * @param funcao */ - public void setDocumento(Documento documento) { + public void setFuncao(Funcao funcao) { - this.documento = documento; + this.funcao = funcao; } } diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/model/Assunto.java b/cit-ecm-api/src/main/java/br/com/centralit/api/model/Assunto.java index d66fb85..462b6c1 100644 --- a/cit-ecm-api/src/main/java/br/com/centralit/api/model/Assunto.java +++ b/cit-ecm-api/src/main/java/br/com/centralit/api/model/Assunto.java @@ -1,6 +1,5 @@ package br.com.centralit.api.model; -import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; 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 000fdc3..150adf1 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 @@ -235,6 +235,10 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable { @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class }) private Collection interessados; + @OneToMany(fetch = FetchType.LAZY, mappedBy = "documentoGed", cascade = CascadeType.ALL, orphanRemoval = true) + @JsonView({ Views.DocumentoGedEdit.class }) + private Collection assinaturas; + /** * @return the novaVersao */ @@ -973,4 +977,24 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable { this.tipoSuporteDocumento = tipoSuporteDocumento; } + /** + * Retorna o valor do atributo assinaturas + * + * @return Collection + */ + public Collection getAssinaturas() { + + return assinaturas; + } + + /** + * Define o valor do atributo assinaturas. + * + * @param assinaturas + */ + public void setAssinaturas(Collection assinaturas) { + + this.assinaturas = assinaturas; + } + } 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 e54e6d4..dd08ee9 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 @@ -141,6 +141,7 @@ public class InicializarEcmServiceImpl extends UtilStartup { filesProcesso.add(new MenuFile("/cit-ecm-web/assets/js/angular/custom/repository/EstruturaOrganizacionalECMRepository.js", this.dominioJS, menuCadastroProcesso)); filesProcesso.add(new MenuFile("/cit-ecm-web/assets/js/angular/custom/repository/ConfiguracaoUsuarioUnidadeRepository.min.js", this.dominioJS, menuCadastroProcesso)); + filesProcesso.add(new MenuFile("/cit-ecm-web/assets/js/angular/custom/repository/AssinaturaRepository.js", this.dominioJS, menuCadastroProcesso)); filesProcesso.add(new MenuFile("/cit-ecm-web/assets/js/angular/custom/repository/DocumentoGedRepository.js", this.dominioJS, menuCadastroProcesso)); filesProcesso.add(new MenuFile("/cit-ecm-web/assets/js/angular/custom/repository/DocumentoGedRepository.min.js", this.dominioJS, menuCadastroProcesso)); filesProcesso.add(new MenuFile("/cit-ecm-web/assets/js/angular/custom/controller/GerenciarProcessoController.js", this.dominioJS, menuCadastroProcesso)); 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 b39deeb..c513c05 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 @@ -415,6 +415,8 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.CERTIFICADO_DIGITAL", "Certificado Digital", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ASSINATURA_DOCUMENTO", "Assinatura de Documento", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ASSINAR", "Assinar", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.DATA_DA_ASSINATURA", "Data da assinatura", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ECM.ASSINADO_SUCESSO", "Documento assinado com sucesso!", dominio, modulo)); } @@ -448,7 +450,7 @@ 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.SENHA_ASSINATURA", "Informe sua senha para assinar!", 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 1221fdd..0acaaed 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 @@ -1,8 +1,8 @@ 'use strict'; -citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$timeout','GerenciarProcessoRepository', 'ProcessoRepository', 'RuntimeManagerRepository','$rootScope', 'DocumentoGedRepository', 'HistoricoAlteracaoProcessoRepository','UnidadeRepository','UnidadeProcessoRepository','CredencialProcessoRepository', 'PessoaRepository', - function GerenciarProcessoController($scope, $translate, $timeout, GerenciarProcessoRepository, ProcessoRepository, RuntimeManagerRepository,$rootScope, DocumentoGedRepository, HistoricoAlteracaoProcessoRepository,UnidadeRepository, UnidadeProcessoRepository,CredencialProcessoRepository, PessoaRepository) { +citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$timeout','GerenciarProcessoRepository', 'ProcessoRepository', 'RuntimeManagerRepository','$rootScope', 'DocumentoGedRepository', 'HistoricoAlteracaoProcessoRepository','UnidadeRepository','UnidadeProcessoRepository','CredencialProcessoRepository', 'PessoaRepository', '$q', 'AssinaturaRepository', + function GerenciarProcessoController($scope, $translate, $timeout, GerenciarProcessoRepository, ProcessoRepository, RuntimeManagerRepository,$rootScope, DocumentoGedRepository, HistoricoAlteracaoProcessoRepository,UnidadeRepository, UnidadeProcessoRepository,CredencialProcessoRepository, PessoaRepository, $q, AssinaturaRepository) { $scope.processo = {}; $scope.iconAnexo = {}; @@ -30,7 +30,7 @@ citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$tim $scope.isGerenciarCredencialProcesso = false; $scope.isClassificarProcessoDocumento = false; $scope.isAtribuirProcesso = false; - $scope.isAssinarDocumento = false; + $scope.exibirAssinarDocAnexo = false; }; // CRIAR RELACIONAMENTO DE PROCESSO @@ -701,16 +701,43 @@ citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$tim $scope.abrirAssinarDocumento = function(documento) { $scope.fecharPagina(); $scope.numeroDocumento = documento.numero ? documento.numero : ''; - $scope.isAssinarDocumento = false; - _obterPermissaoAssinaturaDocumento(); + $scope.exibirAssinarDocAnexo = false; + $scope.documentoSelecionado = null; + if(documento.formaCriacao.codigo === 1){ + //TODO ABRIR DOCUMENTO ONLINE + } else if(documento.formaCriacao.codigo === 2){ + _obterAssinaturasDocumento(documento.id).then(function(documentoSelecionado){ + $scope.documentoSelecionado = documentoSelecionado; + _validarAssinaturaPorUsuario(documento.id).then(function(exibirIncluirAssinatura){ + $scope.exibirIncluirAssinatura = !(exibirIncluirAssinatura == true); + _obterPermissaoAssinaturaDocumentoExterno(); + }); + }); + } }; - function _obterPermissaoAssinaturaDocumento(){ + function _validarAssinaturaPorUsuario(idDocumento){ + var deferred = $q.defer(); + AssinaturaRepository.validarAssinaturaPorUsuario(idDocumento).then(function(result){ + deferred.resolve(result); + }); + return deferred.promise; + } + + function _obterAssinaturasDocumento(idDocumento) { + var deferred = $q.defer(); + DocumentoGedRepository.get(idDocumento).then(function(result){ + deferred.resolve(result.originalElement); + }); + return deferred.promise; + } + + function _obterPermissaoAssinaturaDocumentoExterno(){ $scope.pessoa = {}; PessoaRepository.getPermissaoAssinaturaDocumento().then(function(result){ - $scope.isAssinarDocumento = result.originalElement.isAssinarDocumento; + $scope.exibirAssinarDocAnexo = result.originalElement.exibirAssinarDocAnexo; $scope.pessoa = result.originalElement; - if(!$scope.isAssinarDocumento) { + if(!$scope.exibirAssinarDocAnexo) { $scope.showAlert("error", $translate.instant('ECM.MSG.ERRO_PERMISSAO_ASSINAR')); return; } @@ -737,7 +764,7 @@ citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$tim } function _getFuncao(parceiro, isServidor) { - var funcao = {nome : '', isServidor : isServidor}; + var funcao = {id : parceiro.funcao.id, nome : '', isServidor : isServidor}; if(parceiro.cargo) funcao.nome = funcao.nome.concat(parceiro.cargo).concat(' / ').concat(parceiro.funcao.nome); else @@ -745,4 +772,45 @@ citApp.controller('GerenciarProcessoController', [ '$scope', '$translate', '$tim return funcao; } + $scope.assinar = function() { + if(!$scope.autenticacao){ + $scope.showAlert("error", $translate.instant('ECM.VALIDACAO.SENHA_ASSINATURA')); + return; + } + + AssinaturaRepository.saveAssinaturaInterna(_getAssinatura()).then(function(result){ + if($scope.documentoSelecionado.assinaturas) + $scope.documentoSelecionado.assinaturas.push(result.originalElement); + $scope.autenticacao = null; + $scope.exibirIncluirAssinatura = false; + $scope.showAlert("success", $translate.instant('ECM.ASSINADO_SUCESSO')); + }); + }; + + function _getAssinatura(){ + return {documentoGed : { id : $scope.documentoSelecionado.id }, funcao : {id : _getFuncaoChecked()} }; + }; + + function _getFuncaoChecked(){ + for(var pos = 0; pos < $scope.funcoes.length; pos++){ + if($scope.funcoes[pos].isServidor) + return $scope.funcoes[pos].id; + } + }; + + /* + * Abre panel visualizar assinaturas + */ + $scope.visualizarAssinaturasDocumento = function(documento){ + $scope.fecharPagina(); + $scope.numeroDocumento = documento.numero ? documento.numero : ''; + $scope.exibirAssinarDocAnexo = false; + $scope.documentoSelecionado = null; + $scope.exibirIncluirAssinatura = false; + _obterAssinaturasDocumento(documento.id).then(function(documentoSelecionado){ + $scope.documentoSelecionado = documentoSelecionado; + $scope.exibirAssinarDocAnexo = true; + }); + }; + }] ); diff --git a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoListUnidadeController.js b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoListUnidadeController.js index ed2d344..8da7332 100644 --- a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoListUnidadeController.js +++ b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoListUnidadeController.js @@ -134,7 +134,9 @@ citApp.controller('GerenciarProcessoListUnidadeController', ['$scope', 'workflow assignment.workItem = $scope.workItem; assignment.checked = false; }); - $scope.assignments[0].checked = true; + if($scope.assignments.length > 0){ + $scope.assignments[0].checked = true; + } }; $scope.selectAssignment = function(assignmentSelect) { diff --git a/cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturaEdit.html b/cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturaEdit.html index ea3d792..d0de2a0 100644 --- a/cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturaEdit.html +++ b/cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturaEdit.html @@ -1,68 +1,40 @@ -
-
-

- ECM.LABEL.ASSINATURA_DOCUMENTO : {{numeroDocumento}} -

-
- - - -
+
+
+
-
-
-
-
-
- -
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
- -
-
- -
-
- - -
-
- -
-
- -
-
+
+
+
+ +
+
+
+
+
+ +
+
+
-
-
+
+
+ +
+
+
+ + + + + + + + +
\ No newline at end of file diff --git a/cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeAcaoProcesso.html b/cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeAcaoProcesso.html index 9640fcb..1e84487 100644 --- a/cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeAcaoProcesso.html +++ b/cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeAcaoProcesso.html @@ -26,7 +26,7 @@
-
+
diff --git a/cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeDocumentosProcesso.html b/cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeDocumentosProcesso.html index 4a52ccd..a5160cc 100644 --- a/cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeDocumentosProcesso.html +++ b/cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeDocumentosProcesso.html @@ -40,7 +40,7 @@
  • ECM.LABEL.VERSOESDODOCUMENTO
  • ECM.LABEL.JUSTIFICATIVA_CANCELAMENTO
  • ECM.LABEL.ASSINARDOCUMENTO
  • -
  • ECM.LABEL.ASSINATURAS_DOCUMENTO
  • +
  • ECM.LABEL.ASSINATURAS_DOCUMENTO
  • -- libgit2 0.21.2