diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/dao/TarjaAssinaturaDao.java b/cit-ecm-api/src/main/java/br/com/centralit/api/dao/TarjaAssinaturaDao.java index 1ec5cde..d33f365 100644 --- a/cit-ecm-api/src/main/java/br/com/centralit/api/dao/TarjaAssinaturaDao.java +++ b/cit-ecm-api/src/main/java/br/com/centralit/api/dao/TarjaAssinaturaDao.java @@ -1,6 +1,8 @@ package br.com.centralit.api.dao; +import br.com.centralit.api.model.TarjaAssinatura; import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; +import br.com.centralit.framework.model.Dominio; /** @@ -16,4 +18,13 @@ import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; * @author ciro.junior (ciro.junior@centralit.com.br) * */ -public interface TarjaAssinaturaDao extends CitGenericDAO {} +public interface TarjaAssinaturaDao extends CitGenericDAO { + + /** + * Método responsável por obter tarja assinatura interna + * @author rogerio.cassimiro + * @param dominio + * @return {@link TarjaAssinatura} + */ + TarjaAssinatura getTarjaAssinaturaInterna(Dominio dominio); +} diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/dao/TarjaAssinaturaDaoHibernate.java b/cit-ecm-api/src/main/java/br/com/centralit/api/dao/TarjaAssinaturaDaoHibernate.java index da88891..7880382 100644 --- a/cit-ecm-api/src/main/java/br/com/centralit/api/dao/TarjaAssinaturaDaoHibernate.java +++ b/cit-ecm-api/src/main/java/br/com/centralit/api/dao/TarjaAssinaturaDaoHibernate.java @@ -4,6 +4,8 @@ import org.springframework.stereotype.Repository; import br.com.centralit.api.model.TarjaAssinatura; import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl; +import br.com.centralit.framework.dao.arquitetura.SearchSeven; +import br.com.centralit.framework.model.Dominio; /** *

@@ -25,4 +27,16 @@ public class TarjaAssinaturaDaoHibernate extends CitGenericDAOImpl implements Ta super(TarjaAssinatura.class); } + /** + * Método responsável por obter tarja assinatura interna + * @author rogerio.cassimiro + * @param dominio + * @return {@link TarjaAssinatura} + */ + @Override + public TarjaAssinatura getTarjaAssinaturaInterna(Dominio dominio){ + SearchSeven searchSeven = new SearchSeven(Boolean.TRUE); + searchSeven.addFilterEqual("tipoAssinatura.id", dominio.getId()); + return searchUnique(searchSeven); + } } 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 edb7aa7..4420918 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 @@ -1,11 +1,13 @@ package br.com.centralit.api.model; +import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToOne; +import javax.persistence.OneToOne; import javax.persistence.Transient; import br.com.centralit.api.framework.json.ViewsEcm; @@ -79,9 +81,24 @@ public class Assinatura extends PersistentObjectAudit { @JsonView({ Views.DocumentoGedEdit.class, ViewsEcm.DocumentoGedEdit.class }) private Funcao funcao; + /** Atributo idTask. */ @Transient private Long idTask; + /** Atributo password. */ + @Transient + private String password; + + /** Atributo conteudoTarja. */ + @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER) + @JsonView({ Views.DocumentoGedEdit.class }) + private ConteudoTarja conteudoTarja; + + /** Atributo pessoa. */ + @JsonView({ Views.DocumentoGedEdit.class, ViewsEcm.DocumentoGedEdit.class }) + @ManyToOne(fetch = FetchType.LAZY) + private Pessoa pessoa; + /** * Retorna o valor do atributo id * @@ -202,4 +219,64 @@ public class Assinatura extends PersistentObjectAudit { this.idTask = idTask; } + /** + * Retorna o valor do atributo conteudoTarja + * + * @return ConteudoTarja + */ + public ConteudoTarja getConteudoTarja() { + + return conteudoTarja; + } + + /** + * Define o valor do atributo conteudoTarja. + * + * @param conteudoTarja + */ + public void setConteudoTarja(ConteudoTarja conteudoTarja) { + + this.conteudoTarja = conteudoTarja; + } + + /** + * Retorna o valor do atributo password + * + * @return String + */ + public String getPassword() { + + return password; + } + + /** + * Define o valor do atributo password. + * + * @param password + */ + public void setPassword(String password) { + + this.password = password; + } + + /** + * Retorna o valor do atributo pessoa + * + * @return Pessoa + */ + public Pessoa getPessoa() { + + return pessoa; + } + + /** + * Define o valor do atributo pessoa. + * + * @param pessoa + */ + public void setPessoa(Pessoa pessoa) { + + this.pessoa = pessoa; + } + } diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/model/ConteudoTarja.java b/cit-ecm-api/src/main/java/br/com/centralit/api/model/ConteudoTarja.java new file mode 100644 index 0000000..4cac3a3 --- /dev/null +++ b/cit-ecm-api/src/main/java/br/com/centralit/api/model/ConteudoTarja.java @@ -0,0 +1,108 @@ +package br.com.centralit.api.model; + +import javax.persistence.Basic; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Lob; +import javax.persistence.Transient; + +import org.hibernate.annotations.Type; + +import br.com.centralit.framework.json.Views; + +import com.fasterxml.jackson.annotation.JsonView; + +/** + *

+ * Title: + *

+ *

+ * Description: + *

+ * + * @since 27/04/2016 - 08:22:01 + * @author rogerio.cassimiro + * + */ +@Entity +public class ConteudoTarja { + + /** Atributo id. */ + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @JsonView({ Views.GenericView.class }) + private Long id; + + @JsonView({ Views.DocumentoGedEdit.class }) + @Transient + private String conteudo; + + @Lob + @Basic(fetch = FetchType.LAZY) + @Type(type = "org.hibernate.type.BinaryType") + private byte[] conteudoCriptografado; + + /** + * Retorna o valor do atributo id + * + * @return Long + */ + public Long getId() { + + return id; + } + + /** + * Define o valor do atributo id. + * + * @param id + */ + public void setId(Long id) { + + this.id = id; + } + + /** + * Retorna o valor do atributo conteudo + * + * @return String + */ + public String getConteudo() { + + return conteudo; + } + + /** + * Define o valor do atributo conteudo. + * + * @param conteudo + */ + public void setConteudo(String conteudo) { + + this.conteudo = conteudo; + } + + /** + * Retorna o valor do atributo conteudoCriptografado + * + * @return byte[] + */ + public byte[] getConteudoCriptografado() { + + return conteudoCriptografado; + } + + /** + * Define o valor do atributo conteudoCriptografado. + * + * @param conteudoCriptografado + */ + public void setConteudoCriptografado(byte[] conteudoCriptografado) { + + this.conteudoCriptografado = conteudoCriptografado; + } + +} 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 fe42102..b316613 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 @@ -244,6 +244,14 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable { @JsonView({ Views.DocumentoGedEdit.class, ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class }) private Collection assinaturas; + @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER) + @JsonView({ Views.DocumentoGedEdit.class }) + private ConteudoTarja conteudoTarja; + + @Transient + @JsonView({ Views.ProcessoEdit.class, Views.DocumentoGedEdit.class }) + private String tresAssinaturas; + /** * @return the novaVersao */ @@ -1022,4 +1030,44 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable { this.assinaturas = assinaturas; } + /** + * Retorna o valor do atributo conteudoTarja + * + * @return ConteudoTarja + */ + public ConteudoTarja getConteudoTarja() { + + return conteudoTarja; + } + + /** + * Define o valor do atributo conteudoTarja. + * + * @param conteudoTarja + */ + public void setConteudoTarja(ConteudoTarja conteudoTarja) { + + this.conteudoTarja = conteudoTarja; + } + + /** + * Retorna o valor do atributo tresAssinaturas + * + * @return String + */ + public String getTresAssinaturas() { + + return tresAssinaturas; + } + + /** + * Define o valor do atributo tresAssinaturas. + * + * @param tresAssinaturas + */ + public void setTresAssinaturas(String tresAssinaturas) { + + this.tresAssinaturas = tresAssinaturas; + } + } diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/model/TarjaAssinatura.java b/cit-ecm-api/src/main/java/br/com/centralit/api/model/TarjaAssinatura.java index 1d2267f..2b7d079 100644 --- a/cit-ecm-api/src/main/java/br/com/centralit/api/model/TarjaAssinatura.java +++ b/cit-ecm-api/src/main/java/br/com/centralit/api/model/TarjaAssinatura.java @@ -43,6 +43,13 @@ public class TarjaAssinatura extends PersistentObjectAudit{ @OneToOne @JsonView({ ViewsEcm.TarjaAssinaturaEditview.class }) private AnexoImagem anexoImagem; + + public static String LOGO = "@logo@"; + public static String NOME_ASSINANTE = "@nome_assinante@"; + public static String FUNCAO_ASSINANTE = " @funcao_assinante@"; + public static String DATA_ASSINATURA = " @data_assinatura@"; + public static String HORA_ASSINATURA = "@hora_assinatura@"; + public static String CODIGO_ASSINATURA = "@codigo_assinatura@"; public Long getId() { 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 25e62a3..3bf69f1 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 @@ -78,4 +78,10 @@ public interface DocumentoGedService extends GenericService */ Collection atualizarSigiloDocumentos(Collection listaDocumentos); + /** + * Método responsável por montar as três primeiras assinaturas por documento para apresentação no tooltip da tela de execução de tarefa + * @author rogerio.cassimiro + * @param documentos + */ + void montarTresAssinantesPorDocumento(Collection documentos); } diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/service/TarjaAssinaturaService.java b/cit-ecm-api/src/main/java/br/com/centralit/api/service/TarjaAssinaturaService.java index 21f7a63..b65afc3 100644 --- a/cit-ecm-api/src/main/java/br/com/centralit/api/service/TarjaAssinaturaService.java +++ b/cit-ecm-api/src/main/java/br/com/centralit/api/service/TarjaAssinaturaService.java @@ -2,6 +2,7 @@ package br.com.centralit.api.service; import org.springframework.web.multipart.MultipartFile; +import br.com.centralit.api.model.Assinatura; import br.com.centralit.api.model.TarjaAssinatura; import br.com.centralit.framework.service.arquitetura.GenericService; @@ -54,4 +55,18 @@ public interface TarjaAssinaturaService extends GenericService impl documentoGed.setConteudo(this.gedFileService.doOcr(anexo)); - this.solrService.addDocumento(documentoGed); +// this.solrService.addDocumento(documentoGed); anexo.setDocumentoGed(documentoGed); diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/AssinaturaServiceImpl.java b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/AssinaturaServiceImpl.java index 33afc77..a4ee2fa 100644 --- a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/AssinaturaServiceImpl.java +++ b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/AssinaturaServiceImpl.java @@ -1,6 +1,7 @@ package br.com.centralit.api.service.impl; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; @@ -11,10 +12,16 @@ import br.com.centralit.api.service.DocumentoGedService; import br.com.centralit.api.service.DominioService; import br.com.centralit.api.service.FuncaoService; import br.com.centralit.api.service.HistoricoAlteracaoProcessoService; +import br.com.centralit.api.service.PessoaService; +import br.com.centralit.api.service.TarjaAssinaturaService; import br.com.centralit.api.service.UsuarioService; +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.Usuario; import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; +import br.com.centralit.framework.util.UtilObjeto; +import br.com.centralit.framework.util.UtilString; /** @@ -44,9 +51,18 @@ public class AssinaturaServiceImpl extends GenericServiceImpl private FuncaoService funcaoService; @Autowired + private PessoaService pessoaService; + + @Autowired private HistoricoAlteracaoProcessoService historicoAlteracaoProcessoService; @Autowired + private TarjaAssinaturaService tarjaAssinaturaService; + + @Value("${metodo.autenticacao.ldap}") + private String ldap; + + @Autowired public AssinaturaServiceImpl( AssinaturaDao assinaturaDao) { this.dao = assinaturaDao; } @@ -56,14 +72,48 @@ public class AssinaturaServiceImpl extends GenericServiceImpl */ @Override public Assinatura saveAssinaturaInterna(Assinatura assinatura) { + Usuario usuario = (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + this.validarSenha(assinatura.getPassword(), usuario); assinatura.setDocumentoGed(this.documentoGedService.getReference(assinatura.getDocumentoGed().getId())); - assinatura.setUsuario((Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal()); + assinatura.setUsuario(usuario); + assinatura.setPessoa(this.pessoaService.getReference(assinatura.getPessoa().getId())); assinatura.setTipoAssinatura(dominioService.findByChaveAndCodigo(Dominio.TIPO_ASSINATURA, Dominio.TIPO_ASSINATURA_INTERNA)); assinatura.setFuncao(funcaoService.getReference(assinatura.getFuncao().getId())); historicoAlteracaoProcessoService.gerarHistoricoAssinatura(assinatura); + salvarTarjaAssinaturaPorTipoDocumento(assinatura); return super.save(assinatura); } + + private void salvarTarjaAssinaturaPorTipoDocumento(Assinatura assinatura) { + //OnLine + if(assinatura.getDocumentoGed().getFormaCriacao().getCodigo() == 1){ + //TODO ON LINE + }else { + this.tarjaAssinaturaService.gerarAssinaturaInternaUsuario(assinatura); + } + } + + /** + * Método responsável por validar senha para assinar o documento + * @author rogerio.cassimiro + * @param password + * @param usuario + */ + private void validarSenha(String password, Usuario usuario) { + + if(!UtilString.isNullOrEmpty(ldap) && ldap.equals("false")) { + if(UtilString.isNullOrEmpty(password)) + throw new BusinessException("ECM.VALIDACAO.SENHA_ASSINATURA", CodigoErro.REGRA_NEGOCIO.getValue(), ""); + + if(!UtilObjeto.isReferencia(this.usuarioService.loadUserByUsernamePasswordMobile(usuario.getUsername(), password))) + throw new BusinessException("ECM.VALIDACAO.SENHA_ASSINATURA_INVALIDA", CodigoErro.REGRA_NEGOCIO.getValue(), ""); + + } else { + //TODO LDAP validação + } + } + /** * Método responsável por validar se o usuário já teve assinatura anterior para o documento informado * @author rogerio.cassimiro 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..c2e77e7 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 @@ -22,6 +22,7 @@ import org.springframework.web.multipart.MultipartFile; import br.com.centralit.api.dao.DocumentoGedDao; import br.com.centralit.api.model.AnexoGed; +import br.com.centralit.api.model.Assinatura; import br.com.centralit.api.model.DocumentoGed; import br.com.centralit.api.model.InteressadoDocumento; import br.com.centralit.api.model.Processo; @@ -230,7 +231,7 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl documentos) { + + if(!UtilColecao.isVazio(documentos)){ + for (DocumentoGed documentoGed : documentos) { + if(!UtilColecao.isVazio(documentoGed.getAssinaturas())){ + int maxAssinatura = 0; + StringBuilder tresAssinaturas = new StringBuilder(); + for (Assinatura assinatura : documentoGed.getAssinaturas()) { + if(++maxAssinatura < 4) + tresAssinaturas.append(UtilObjeto.isReferencia(assinatura.getPessoa()) ? assinatura.getPessoa().getNome() : "").append(" - ").append(assinatura.getFuncao().getNome()).append(". "); + else { + tresAssinaturas.append("..."); + break; + } + } + documentoGed.setTresAssinaturas(tresAssinaturas.toString()); + } + } + } + } } diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/HistoricoAlteracaoProcessoServiceImpl.java b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/HistoricoAlteracaoProcessoServiceImpl.java index af45e84..bcfef5f 100644 --- a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/HistoricoAlteracaoProcessoServiceImpl.java +++ b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/HistoricoAlteracaoProcessoServiceImpl.java @@ -213,7 +213,7 @@ public class HistoricoAlteracaoProcessoServiceImpl extends GenericServiceImpl impl if (!UtilObjeto.isReferencia(processo.getSigilo())) { - this.solrService.addProcesso(processo); +// this.solrService.addProcesso(processo); } } catch (final Exception e) { @@ -709,6 +708,8 @@ public class ProcessoServiceImpl extends GenericServiceImpl impl Processo processo = super.getReference(id); processo.setDocumentos(this.documentoGedService.findByIdProcessoUltimaVersao(id)); + + this.documentoGedService.montarTresAssinantesPorDocumento(processo.getDocumentos()); return processo; } diff --git a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/TarjaAssinaturaServiceImpl.java b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/TarjaAssinaturaServiceImpl.java index 98db3b2..160dfea 100644 --- a/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/TarjaAssinaturaServiceImpl.java +++ b/cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/TarjaAssinaturaServiceImpl.java @@ -9,12 +9,17 @@ import org.springframework.stereotype.Service; import org.springframework.validation.Validator; import org.springframework.web.multipart.MultipartFile; +import com.ibm.icu.util.Calendar; + import br.com.centralit.api.dao.TarjaAssinaturaDao; +import br.com.centralit.api.model.Assinatura; import br.com.centralit.api.model.TarjaAssinatura; import br.com.centralit.api.service.AnexoImagemService; +import br.com.centralit.api.service.DominioService; import br.com.centralit.api.service.OrganizacaoService; import br.com.centralit.api.service.TarjaAssinaturaService; import br.com.centralit.framework.model.AnexoImagem; +import br.com.centralit.framework.model.Dominio; import br.com.centralit.framework.model.Organizacao; import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; @@ -43,6 +48,9 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl { return ViewsEcm.DocumentoGedList.class; } + + @RequestMapping(value = "/{id}", method = RequestMethod.GET) + @ResponseBody + public ResponseBodyWrapper getObject(@PathVariable("id") Long id) { + ResultResponseVH resultResponseVH = new ResultResponseVH(genericService.getReference(id)); + List list = new ArrayList(); + list.add(resultResponseVH.getPayload()); + this.documentoGedService.montarTresAssinantesPorDocumento(list); + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(resultResponseVH, this.getEditView()); + return responseBody; + } } diff --git a/cit-ecm-web/src/main/java/br/com/centralit/controller/TarjaAssinaturaController.java b/cit-ecm-web/src/main/java/br/com/centralit/controller/TarjaAssinaturaController.java index e8779c5..2dc1255 100644 --- a/cit-ecm-web/src/main/java/br/com/centralit/controller/TarjaAssinaturaController.java +++ b/cit-ecm-web/src/main/java/br/com/centralit/controller/TarjaAssinaturaController.java @@ -16,6 +16,7 @@ import br.com.centralit.api.model.TarjaAssinatura; import br.com.centralit.api.service.TarjaAssinaturaService; import br.com.centralit.framework.controller.GenericController; import br.com.centralit.framework.json.ResponseBodyWrapper; +import br.com.centralit.framework.view.ResultResponseVH; @Controller @RequestMapping("/rest/tarjaAssinatura") @@ -61,5 +62,13 @@ public class TarjaAssinaturaController extends GenericController resultResponseVH = new ResultResponseVH(tarjaAssinaturaService.getTarjaAssinaturaInterna()); + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(resultResponseVH, this.getEditView()); + return responseBody; + } } 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..f46ddf7 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 @@ -489,8 +489,8 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen 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)); - internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.SENHA_ASSINATURA", "Informe sua senha para assinar!", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ECM.VALIDACAO.SENHA_ASSINATURA_INVALIDA", "Senha do usuário inválida!", dominio, modulo)); } /** diff --git a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/AssinarDocumentoController.js b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/AssinarDocumentoController.js index d82963b..0fc80e1 100644 --- a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/AssinarDocumentoController.js +++ b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/AssinarDocumentoController.js @@ -1,8 +1,8 @@ 'use strict'; -citApp.controller('AssinarDocumentoController', [ '$scope', '$translate', 'GerenciarProcessoRepository', 'DocumentoGedRepository', 'HistoricoAlteracaoProcessoRepository', 'PessoaRepository', '$q', 'AssinaturaRepository', - function AssinarDocumentoController($scope, $translate, GerenciarProcessoRepository, DocumentoGedRepository, HistoricoAlteracaoProcessoRepository, PessoaRepository, $q, AssinaturaRepository) { +citApp.controller('AssinarDocumentoController', [ '$scope', '$translate', 'GerenciarProcessoRepository', 'DocumentoGedRepository', 'HistoricoAlteracaoProcessoRepository', '$q', 'AssinaturaRepository', 'TarjaAssinaturaRepository', '$timeout', + function AssinarDocumentoController($scope, $translate, GerenciarProcessoRepository, DocumentoGedRepository, HistoricoAlteracaoProcessoRepository, $q, AssinaturaRepository, TarjaAssinaturaRepository, $timeout) { /* * Abre panel assinar documento @@ -26,7 +26,7 @@ citApp.controller('AssinarDocumentoController', [ '$scope', '$translate', 'Geren _exibirNenhumaAssinatura(); _validarAssinaturaPorUsuario(documento.id).then(function(exibirIncluirAssinatura){ $scope.exibirIncluirAssinatura = !(exibirIncluirAssinatura == true); - //_obterPermissaoAssinaturaDocumentoExterno(); + $scope.exibirDocJaAssinado = !$scope.exibirIncluirAssinatura; }); }); } @@ -38,7 +38,7 @@ citApp.controller('AssinarDocumentoController', [ '$scope', '$translate', 'Geren _validarAssinaturaPorUsuario(documento.id).then(function(exibirIncluirAssinatura){ $scope.exibirIncluirAssinatura = !(exibirIncluirAssinatura == true); $scope.exibirDocJaAssinado = !$scope.exibirIncluirAssinatura; - //_obterPermissaoAssinaturaDocumentoExterno(); + _getTarjaAssinaturaInterna(); }); }); }; @@ -75,21 +75,47 @@ citApp.controller('AssinarDocumentoController', [ '$scope', '$translate', 'Geren } AssinaturaRepository.saveAssinaturaInterna(_getAssinatura()).then(function(result){ - if($scope.documentoSelecionado.assinaturas) - $scope.documentoSelecionado.assinaturas.push(result.originalElement); - $scope.autenticacao = null; - $scope.exibirIncluirAssinatura = false; - $scope.nenhumaAssinatura = false; - $scope.documentosSelecionados.forEach(function(doc){ - if(doc.id == $scope.documentoSelecionado.id) - doc.assinaturas = $scope.documentoSelecionado.assinaturas; - }); + _atualizarDocumentoSelecionadoAposAssinar(result.originalElement); + _resetAssinar(); + _atualizarDocDoProcessoAposAssinar(); $scope.showAlert("success", $translate.instant('ECM.ASSINADO_SUCESSO')); }); }; function _getAssinatura(){ - return {documentoGed : { id : $scope.documentoSelecionado.id }, funcao : {id : _getFuncaoChecked()}, idTask : $scope.$parent.task.id }; + return { + documentoGed : { id : $scope.documentoSelecionado.id }, + funcao : {id : _getFuncaoChecked()}, + idTask : $scope.$parent.task.id, + password : $scope.autenticacao, + pessoa : { id : $scope.pessoa.id}, + conteudoTarja : { id : $scope.tarjaAssinatura.id}}; + }; + + function _atualizarDocumentoSelecionadoAposAssinar(assinatura){ + if($scope.documentoSelecionado.assinaturas) + $scope.documentoSelecionado.assinaturas.push(assinatura); + $scope.documentosSelecionados.forEach(function(doc){ + if(doc.id == $scope.documentoSelecionado.id) + doc.assinaturas = $scope.documentoSelecionado.assinaturas; + }); + }; + + function _resetAssinar() { + $scope.autenticacao = null; + $scope.exibirIncluirAssinatura = false; + $scope.nenhumaAssinatura = false; + }; + + function _atualizarDocDoProcessoAposAssinar() { + DocumentoGedRepository.get($scope.documentoSelecionado.id).then(function(result){ + $scope.processo.documentos.forEach(function(doc){ + if(doc.id == result.originalElement.id) { + doc.assinaturas = result.originalElement.assinaturas; + doc.tresAssinaturas = result.originalElement.tresAssinaturas; + } + }); + }); }; function _getFuncaoChecked(){ @@ -124,4 +150,36 @@ citApp.controller('AssinarDocumentoController', [ '$scope', '$translate', 'Geren }); }; + $scope.visualizarAssinatura = function(docSelecionado, assinatura){ + var valorOriginal = assinatura.isVisualizarAssinatura; + if(valorOriginal) + assinatura.isVisualizarAssinatura = false; + else + DocumentoGedRepository.get(docSelecionado.id).then(function(result){ + $scope.doc = result.originalElement; + $scope.documentosSelecionados.forEach(function(doc){ + doc.assinaturas.forEach(function(ass){ + ass.isVisualizarAssinatura = false; + }); + if(doc.id == docSelecionado.id) + doc.assinaturas.forEach(function(ass){ + if(ass.id != assinatura.id) + ass.isVisualizarAssinatura = false; + else + ass.isVisualizarAssinatura = valorOriginal != true; + }); + }); + + $scope.visualizarAssinaturaOnLine = $scope.doc.formaCriacao.codigo == 1; + }); + }; + + function _getTarjaAssinaturaInterna(){ + $scope.tarjaAssinatura = null; + TarjaAssinaturaRepository.getTarjaAssinaturaInterna().then(function(result){ + $timeout(function(){ + $scope.tarjaAssinatura = result.originalElement; + }); + }); + }; }] ); \ No newline at end of file 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 4d65417..6179af1 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 @@ -69,10 +69,13 @@ citApp.controller('GerenciarProcessoListUnidadeController', ['$scope', 'workflow }; $scope.obterTransclude = function() { + $scope.setLoadingGet(true); _getProcesso(); if($scope.modelSelecionado){ _getFilterCriteriaTarefa(); _fetchBusinessProcess(); + } else { + $scope.setLoading(true); } }; @@ -114,8 +117,10 @@ citApp.controller('GerenciarProcessoListUnidadeController', ['$scope', 'workflow $scope.assignments = result.originalElement.objects; if($scope.assignments.length > 0) _recuperarPermissoes($scope.assignments[0].id); - else + else { $scope.modelSelecionado.$expandido = !$scope.modelSelecionado.$expandido; + $scope.setLoading(false); + } }); }; @@ -126,6 +131,7 @@ citApp.controller('GerenciarProcessoListUnidadeController', ['$scope', 'workflow $scope.btnAction = !(!$scope.workItem.execute && !$scope.workItem.suspend && !$scope.workItem.delegate && !$scope.workItem.restart && !$scope.workItem.visualize); $scope.modelSelecionado.$expandido = !$scope.modelSelecionado.$expandido; $scope.modelSelecionado.workItem = $scope.workItem; + $scope.setLoading(false); }); }; diff --git a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/TarjaAssinaturaRepository.js b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/TarjaAssinaturaRepository.js index a230b97..0ee0db9 100644 --- a/cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/TarjaAssinaturaRepository.js +++ b/cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/TarjaAssinaturaRepository.js @@ -11,6 +11,11 @@ citApp.factory('TarjaAssinaturaRepository', ['RestangularEcm', 'AbstractReposito this.removeImagem = function(tarjaAssinatura) { return restangularEcm.all(this.route + "/removeImagem").post(tarjaAssinatura).then(); }; + + this.getTarjaAssinaturaInterna = function() { + return this.restangular.one(this.route + "/getTarjaAssinaturaInterna").get(); + }; + } AbstractRepository.extend(TarjaAssinaturaRepository); 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 d0de2a0..aceee17 100644 --- a/cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturaEdit.html +++ b/cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturaEdit.html @@ -28,6 +28,9 @@
+
+
+
@@ -37,4 +40,10 @@ +
+ +
+
+
+
\ No newline at end of file diff --git a/cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturaView.html b/cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturaView.html index e5f9904..23acee5 100644 --- a/cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturaView.html +++ b/cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturaView.html @@ -2,11 +2,11 @@

- ECM.LABEL.ASSINATURA_DO_DOCUMENTO : {{documentoSelecionado.numero}} + ECM.LABEL.ASSINATURA_DO_DOCUMENTO : {{documentoSelecionado.tipoDocumento.nome}} - {{documentoSelecionado.numero}} ECM.LABEL.VERSAO_ATUAL : {{documentoSelecionado.versaoDocumento | limitTo:3}}
- ECM.LABEL.ASSINATURAS_DOCUMENTO : {{documentoSelecionado.numero}} + ECM.LABEL.ASSINATURAS_DOCUMENTO : {{documentoSelecionado.tipoDocumento.nome}} - {{documentoSelecionado.numero}} ECM.LABEL.VERSAO_ATUAL : {{documentoSelecionado.versaoDocumento | limitTo:3}}

@@ -29,14 +29,6 @@
-
-
- -
-
-
diff --git a/cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturas.html b/cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturas.html index 737aa20..23266d2 100644 --- a/cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturas.html +++ b/cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturas.html @@ -9,10 +9,11 @@ LABEL.UNIDADE ECM.LABEL.TIPO_ASSINATURA ECM.LABEL.DATA_DA_ASSINATURA + - + {{docSelecionado.versaoDocumento}} @@ -31,11 +32,25 @@ {{assinatura.dataCriacao | date : 'dd/MM/yyyy HH:mm:ss'}} + + + + + + + +
+ doc anexo +
+ - + ECM.LABEL.DOCUMENTO_SEM_ASSINATURA 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 d80777d..7cfedc7 100644 --- a/cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeDocumentosProcesso.html +++ b/cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeDocumentosProcesso.html @@ -17,13 +17,15 @@
{{documento.assuntoComplementar}}
- {{documento.sigilo.tipoSigilo.descricao}} {{documento.sigilo.tipoSigilo.descricao}} {{documento.sigilo.tipoSigilo.descricao}} - {{documento.nivelAcesso.nivelAcesso.descricao}} {{documento.nivelAcesso.nivelAcesso.descricao}} Anexado Assinado Habilitado Ciência Cancelado - + {{documento.sigilo.tipoSigilo.descricao}} + {{documento.sigilo.tipoSigilo.descricao}} + {{documento.sigilo.tipoSigilo.descricao}} + {{documento.nivelAcesso.nivelAcesso.descricao}} + {{documento.nivelAcesso.nivelAcesso.descricao}} Anexado + Assinado + Habilitado Ciência + Cancelado
@@ -35,7 +37,7 @@