Commit c4b7f8cadc99386855c20943d9854deacabcffeb

Authored by ROGERIO CASSIMIRO DE SOUZA
1 parent d58408e4
Exists in master

redmine #4583 geracao conteudo do doc online com assinaturas e imagens; visualiz…

…acoes de assinaturas em doc online; tooltip das 3 primeiras assinaturas
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/DocumentoGedServiceImpl.java
@@ -1034,10 +1034,10 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl<DocumentoGed, Lo @@ -1034,10 +1034,10 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl<DocumentoGed, Lo
1034 for (DocumentoGed documentoGed : documentos) { 1034 for (DocumentoGed documentoGed : documentos) {
1035 if(!UtilColecao.isVazio(documentoGed.getAssinaturas())){ 1035 if(!UtilColecao.isVazio(documentoGed.getAssinaturas())){
1036 int maxAssinatura = 0; 1036 int maxAssinatura = 0;
1037 - StringBuilder tresAssinaturas = new StringBuilder(); 1037 + StringBuilder tresAssinaturas = new StringBuilder("Assinador por: ");
1038 for (Assinatura assinatura : documentoGed.getAssinaturas()) { 1038 for (Assinatura assinatura : documentoGed.getAssinaturas()) {
1039 if(++maxAssinatura < 4) 1039 if(++maxAssinatura < 4)
1040 - tresAssinaturas.append(UtilObjeto.isReferencia(assinatura.getPessoa()) ? assinatura.getPessoa().getNome() : "").append(" - ").append(assinatura.getFuncao().getNome()).append(". "); 1040 + tresAssinaturas.append(UtilObjeto.isReferencia(assinatura.getPessoa()) ? assinatura.getPessoa().getNome() : "").append(" / ").append(assinatura.getFuncao().getNome()).append(". ");
1041 else { 1041 else {
1042 tresAssinaturas.append("..."); 1042 tresAssinaturas.append("...");
1043 break; 1043 break;
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/TarjaAssinaturaServiceImpl.java
@@ -22,6 +22,7 @@ import br.com.centralit.api.service.AnexoImagemService; @@ -22,6 +22,7 @@ import br.com.centralit.api.service.AnexoImagemService;
22 import br.com.centralit.api.service.DominioService; 22 import br.com.centralit.api.service.DominioService;
23 import br.com.centralit.api.service.OrganizacaoService; 23 import br.com.centralit.api.service.OrganizacaoService;
24 import br.com.centralit.api.service.TarjaAssinaturaService; 24 import br.com.centralit.api.service.TarjaAssinaturaService;
  25 +import br.com.centralit.api.util.UtilBase64;
25 import br.com.centralit.framework.model.AnexoImagem; 26 import br.com.centralit.framework.model.AnexoImagem;
26 import br.com.centralit.framework.model.Dominio; 27 import br.com.centralit.framework.model.Dominio;
27 import br.com.centralit.framework.model.Organizacao; 28 import br.com.centralit.framework.model.Organizacao;
@@ -156,13 +157,13 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl&lt;TarjaAssinatu @@ -156,13 +157,13 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl&lt;TarjaAssinatu
156 * 157 *
157 * @author rogerio.cassimiro 158 * @author rogerio.cassimiro
158 * @param assinatura 159 * @param assinatura
159 - * @param conteudo 160 + * @param conteudoAssinatura
160 * @return {@link String} 161 * @return {@link String}
161 */ 162 */
162 - private String getConteudoTarja(Assinatura assinatura, String conteudo) { 163 + private String getConteudoTarja(Assinatura assinatura, String conteudoAssinatura) {
163 164
164 - conteudo = conteudo.replaceAll(TarjaAssinatura.NOME_ASSINANTE, assinatura.getPessoa().getNome()).replaceAll(TarjaAssinatura.FUNCAO_ASSINANTE, assinatura.getFuncao().getNome()).replaceAll(TarjaAssinatura.DATA_ASSINATURA, UtilDate.getDataSemHorasString(Calendar.getInstance().getTime())).replaceAll(TarjaAssinatura.HORA_ASSINATURA, UtilDate.getHoraAtualHHMMSS()).replaceAll(TarjaAssinatura.CODIGO_ASSINATURA, "TODO ASSINATURA");  
165 - return conteudo; 165 + conteudoAssinatura = conteudoAssinatura.replaceAll(TarjaAssinatura.NOME_ASSINANTE, assinatura.getPessoa().getNome()).replaceAll(TarjaAssinatura.FUNCAO_ASSINANTE, assinatura.getFuncao().getNome()).replaceAll(TarjaAssinatura.DATA_ASSINATURA, UtilDate.getDataSemHorasString(Calendar.getInstance().getTime())).replaceAll(TarjaAssinatura.HORA_ASSINATURA, UtilDate.getHoraAtualHHMMSS());
  166 + return conteudoAssinatura;
166 } 167 }
167 168
168 /** 169 /**
@@ -171,13 +172,13 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl&lt;TarjaAssinatu @@ -171,13 +172,13 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl&lt;TarjaAssinatu
171 * @author rogerio.cassimiro 172 * @author rogerio.cassimiro
172 * @param assinatura 173 * @param assinatura
173 * @param tarjaAssinatura 174 * @param tarjaAssinatura
174 - * @param conteudo 175 + * @param conteudoAssinatura
175 * @throws DocumentException 176 * @throws DocumentException
176 * @throws IOException 177 * @throws IOException
177 */ 178 */
178 - private void gerarAssinaturaDocAnexo(Assinatura assinatura, AnexoImagem anexoImagem, String conteudo) {  
179 -  
180 - assinatura.getConteudoTarja().setConteudoCriptografado(this.encrypted(conteudo)); 179 + private void gerarAssinaturaDocAnexo(Assinatura assinatura, AnexoImagem anexoImagem, String conteudoAssinatura) {
  180 +
  181 + assinatura.getConteudoTarja().setConteudoCriptografado(this.encrypted(conteudoAssinatura));
181 assinatura.getConteudoTarja().setAnexoImagem(anexoImagem); 182 assinatura.getConteudoTarja().setAnexoImagem(anexoImagem);
182 } 183 }
183 184
@@ -187,23 +188,43 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl&lt;TarjaAssinatu @@ -187,23 +188,43 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl&lt;TarjaAssinatu
187 * @author rogerio.cassimiro 188 * @author rogerio.cassimiro
188 * @param assinatura 189 * @param assinatura
189 * @param tarjaAssinatura 190 * @param tarjaAssinatura
190 - * @param conteudo 191 + * @param conteudoAssinatura
191 */ 192 */
192 - private void gerarAssinaturaDocOnline(Assinatura assinatura, AnexoImagem anexoImagem, String conteudo) {  
193 -  
194 - String conteudoOriginalDocOnLine = new String(); 193 + private void gerarAssinaturaDocOnline(Assinatura assinatura, AnexoImagem anexoImagem, String conteudoAssinatura) {
195 194
  195 + StringBuilder conteudoOriginalDocOnLine = new StringBuilder();
  196 +
196 if (UtilObjeto.isReferencia(assinatura.getDocumentoGed().getConteudoTarja())) { 197 if (UtilObjeto.isReferencia(assinatura.getDocumentoGed().getConteudoTarja())) {
197 - conteudoOriginalDocOnLine = decrypted(assinatura.getDocumentoGed().getConteudoTarja().getConteudoCriptografado()); 198 + conteudoOriginalDocOnLine.append(decrypted(assinatura.getDocumentoGed().getConteudoTarja().getConteudoCriptografado()));
198 } else { 199 } else {
199 assinatura.getDocumentoGed().setConteudoTarja(new ConteudoTarja()); 200 assinatura.getDocumentoGed().setConteudoTarja(new ConteudoTarja());
200 - conteudoOriginalDocOnLine = decrypted(assinatura.getDocumentoGed().getConteudoCriptografado()); 201 + conteudoOriginalDocOnLine.append(decrypted(assinatura.getDocumentoGed().getConteudoCriptografado()));
201 } 202 }
202 203
203 - conteudoOriginalDocOnLine = conteudoOriginalDocOnLine.concat("<br/>");  
204 - conteudoOriginalDocOnLine = conteudoOriginalDocOnLine.concat(conteudo);  
205 -  
206 - assinatura.getDocumentoGed().getConteudoTarja().setConteudoCriptografado(this.encrypted(conteudoOriginalDocOnLine)); 204 + conteudoOriginalDocOnLine.append(gerarHTMLBase64(assinatura, conteudoAssinatura));
  205 + assinatura.getDocumentoGed().getConteudoTarja().setConteudoCriptografado(this.encrypted(conteudoOriginalDocOnLine.toString()));
  206 + }
  207 +
  208 + private String gerarHTMLBase64(Assinatura assinatura, String conteudoAssinatura){
  209 +
  210 + StringBuilder htmlAssinatura = new StringBuilder("<div class='row' style='margin-top: 5px;'> ");
  211 + if(UtilObjeto.isReferencia(assinatura.getConteudoTarja().getAnexoImagem()) && UtilObjeto.isReferencia(assinatura.getConteudoTarja().getAnexoImagem().getAnexo())) {
  212 + htmlAssinatura.append("<div class='col-sm-3'>");
  213 + htmlAssinatura.append("<img src='data:image/png;base64, ");
  214 + htmlAssinatura.append(UtilBase64.byteToBase64(assinatura.getConteudoTarja().getAnexoImagem().getAnexo()));
  215 + htmlAssinatura.append("' height='60' width='60' />");
  216 + htmlAssinatura.append(" </div>");
  217 + htmlAssinatura.append(" <div class='col-sm-9'>");
  218 + htmlAssinatura.append(conteudoAssinatura);
  219 + htmlAssinatura.append(" </div>");
  220 + } else {
  221 + htmlAssinatura.append(" <div class='col-sm-12'>");
  222 + htmlAssinatura.append(conteudoAssinatura);
  223 + htmlAssinatura.append(" </div>");
  224 + }
  225 +
  226 + htmlAssinatura.append(" </div>");
  227 + return htmlAssinatura.toString();
207 } 228 }
208 229
209 /** 230 /**
cit-ecm-api/src/main/java/br/com/centralit/api/util/UtilBase64.java 0 → 100644
@@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
  1 +package br.com.centralit.api.util;
  2 +
  3 +import org.apache.commons.codec.binary.Base64;
  4 +
  5 +/**
  6 + * <p>
  7 + * <b>Title: UtilBase64</b>
  8 + * </p>
  9 + * <p>
  10 + * <b>Description: </b>
  11 + * </p>
  12 + *
  13 + * @since 29/04/2016 - 14:30:14
  14 + * @author rogerio.cassimiro
  15 + *
  16 + */
  17 +@SuppressWarnings({"static-access", "unused"})
  18 +public class UtilBase64 {
  19 +
  20 + public static byte[] base64ToByte(String data) throws Exception {
  21 +
  22 + Base64 base64 = new Base64();
  23 + return Base64.decodeBase64(data);
  24 + }
  25 +
  26 + public static String byteToBase64(byte[] data) {
  27 +
  28 + Base64 base64 = new Base64();
  29 + return base64.encodeBase64String(data);
  30 + }
  31 +
  32 +}
0 \ No newline at end of file 33 \ No newline at end of file
cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java
@@ -454,7 +454,8 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen @@ -454,7 +454,8 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
454 internacionalizacaoList.add(new Internacionalizacao("ECM.ASSINADO_SUCESSO", "Documento assinado com sucesso!", dominio, modulo)); 454 internacionalizacaoList.add(new Internacionalizacao("ECM.ASSINADO_SUCESSO", "Documento assinado com sucesso!", dominio, modulo));
455 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ASSINATURA_DO_DOCUMENTO", "Assinatura do Documento", dominio, modulo)); 455 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ASSINATURA_DO_DOCUMENTO", "Assinatura do Documento", dominio, modulo));
456 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.DOCUMENTO_SEM_ASSINATURA", "Documento sem assinaturas!", dominio, modulo)); 456 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.DOCUMENTO_SEM_ASSINATURA", "Documento sem assinaturas!", dominio, modulo));
457 - 457 + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.VISUALIZAR_ASSINATURAS", "Visualizar Assinaturas", dominio, modulo));
  458 +
458 } 459 }
459 460
460 /** 461 /**
cit-ecm-web/src/main/webapp/assets/css/gerenciarProcesso.css
@@ -212,9 +212,8 @@ background-color: #f2f2f2; @@ -212,9 +212,8 @@ background-color: #f2f2f2;
212 background-color: rgba(245, 245, 245, 0.61); 212 background-color: rgba(245, 245, 245, 0.61);
213 } 213 }
214 214
215 - .versoes { 215 +.versoes {
216 font-size : x-small; 216 font-size : x-small;
217 font-weight : bold; 217 font-weight : bold;
218 text-align : right !important; 218 text-align : right !important;
219 -}  
220 - 219 +}
221 \ No newline at end of file 220 \ No newline at end of file
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/AssinarDocumentoController.js
@@ -10,6 +10,7 @@ citApp.controller(&#39;AssinarDocumentoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;Geren @@ -10,6 +10,7 @@ citApp.controller(&#39;AssinarDocumentoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;Geren
10 $scope.abrirAssinarDocumento = function(documento) { 10 $scope.abrirAssinarDocumento = function(documento) {
11 $scope.documentoSelecionado = null; 11 $scope.documentoSelecionado = null;
12 $scope.exibirDocJaAssinado = false; 12 $scope.exibirDocJaAssinado = false;
  13 + $scope.autenticacao = null;
13 DocumentoGedRepository.get(documento.id).then(function(result) { 14 DocumentoGedRepository.get(documento.id).then(function(result) {
14 $scope.documentoSelecionado = result.originalElement; 15 $scope.documentoSelecionado = result.originalElement;
15 if(documento.formaCriacao.codigo === 1){ 16 if(documento.formaCriacao.codigo === 1){
cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturaView.html
@@ -32,4 +32,5 @@ @@ -32,4 +32,5 @@
32 </div> 32 </div>
33 </div> 33 </div>
34 </div> 34 </div>
  35 +
35 </div> 36 </div>
36 \ No newline at end of file 37 \ No newline at end of file
cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeDocumentosProcesso.html
@@ -43,7 +43,7 @@ @@ -43,7 +43,7 @@
43 <li ng-if='!documento.cancelado'><a href="#void" ng-click="visualizarVersoes(documento);"> <translate>ECM.LABEL.VERSOESDODOCUMENTO</translate></a></li> 43 <li ng-if='!documento.cancelado'><a href="#void" ng-click="visualizarVersoes(documento);"> <translate>ECM.LABEL.VERSOESDODOCUMENTO</translate></a></li>
44 <li ><a ng-if='documento.cancelado'href="#void" ng-click="getCancelamentoDocumento(documento);"> <translate>ECM.LABEL.JUSTIFICATIVA_CANCELAMENTO</translate></a></li> 44 <li ><a ng-if='documento.cancelado'href="#void" ng-click="getCancelamentoDocumento(documento);"> <translate>ECM.LABEL.JUSTIFICATIVA_CANCELAMENTO</translate></a></li>
45 <li ><a href="#void" ng-click="abrirAssinarDocumento(documento)"> <translate>ECM.LABEL.ASSINARDOCUMENTO</translate></a></li> 45 <li ><a href="#void" ng-click="abrirAssinarDocumento(documento)"> <translate>ECM.LABEL.ASSINARDOCUMENTO</translate></a></li>
46 - <li ><a href="#void" ng-click="visualizarAssinaturasDocumento(documento)"> <translate>ECM.LABEL.ASSINATURAS_DOCUMENTO</translate></a></li> 46 + <li ><a href="#void" ng-click="visualizarAssinaturasDocumento(documento)"> <translate>ECM.LABEL.VISUALIZAR_ASSINATURAS</translate></a></li>
47 </ul> 47 </ul>
48 48
49 </div> 49 </div>