Commit 0707e5b8130fe6be3f1f1a27dbaa353cb1525ec9

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

redmine #4583 inclusao assinatura digital e apresentacao codigo validacao nos docs anexo e online

cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/TarjaAssinaturaServiceImpl.java
@@ -203,10 +203,19 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl<TarjaAssinatu @@ -203,10 +203,19 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl<TarjaAssinatu
203 203
204 private void gerarAssinaturaDocAnexo(Assinatura assinatura, AnexoImagem anexoImagem, String conteudoAssinatura, Long formaCriacao) { 204 private void gerarAssinaturaDocAnexo(Assinatura assinatura, AnexoImagem anexoImagem, String conteudoAssinatura, Long formaCriacao) {
205 205
206 - assinatura.getConteudoTarja().setConteudoCriptografado(this.encrypted(conteudoAssinatura));  
207 - assinatura.getConteudoTarja().setAnexoImagem(anexoImagem); 206 + if(formaCriacao == 1){
  207 + assinatura.getConteudoTarja().setConteudoCriptografado(this.encrypted(conteudoAssinatura));
  208 + assinatura.getConteudoTarja().setAnexoImagem(anexoImagem);
  209 +
  210 + } else if(formaCriacao == 2) {
  211 + try {
  212 + conteudoAssinatura = conteudoAssinatura.replaceAll(TarjaAssinatura.CODIGO_ASSINATURA, "<br /><b>".concat(this.assinaturaUtilService.gerarHash(conteudoAssinatura)).concat("</b>"));
  213 + assinatura.getConteudoTarja().setConteudoCriptografado(this.encrypted(conteudoAssinatura));
  214 + assinatura.getConteudoTarja().setAnexoImagem(anexoImagem);
  215 + } catch (Exception e) {
  216 + e.printStackTrace();
  217 + }
208 218
209 - if (formaCriacao == 2) {  
210 StringBuilder conteudoOriginalDocAnexo = new StringBuilder(); 219 StringBuilder conteudoOriginalDocAnexo = new StringBuilder();
211 if (UtilObjeto.isReferencia(assinatura.getDocumentoGed().getConteudoTarja())) { 220 if (UtilObjeto.isReferencia(assinatura.getDocumentoGed().getConteudoTarja())) {
212 conteudoOriginalDocAnexo.append(decrypted(assinatura.getDocumentoGed().getConteudoTarja().getConteudoCriptografado())); 221 conteudoOriginalDocAnexo.append(decrypted(assinatura.getDocumentoGed().getConteudoTarja().getConteudoCriptografado()));
@@ -214,6 +223,7 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl&lt;TarjaAssinatu @@ -214,6 +223,7 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl&lt;TarjaAssinatu
214 assinatura.getDocumentoGed().setConteudoTarja(new ConteudoTarja()); 223 assinatura.getDocumentoGed().setConteudoTarja(new ConteudoTarja());
215 } 224 }
216 conteudoOriginalDocAnexo.append(conteudoAssinatura); 225 conteudoOriginalDocAnexo.append(conteudoAssinatura);
  226 +
217 assinatura.getDocumentoGed().getConteudoTarja().setConteudoCriptografado(this.encrypted(conteudoOriginalDocAnexo.toString())); 227 assinatura.getDocumentoGed().getConteudoTarja().setConteudoCriptografado(this.encrypted(conteudoOriginalDocAnexo.toString()));
218 } 228 }
219 } 229 }
@@ -229,7 +239,7 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl&lt;TarjaAssinatu @@ -229,7 +239,7 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl&lt;TarjaAssinatu
229 private void gerarAssinaturaDocOnline(Assinatura assinatura, AnexoImagem anexoImagem, String conteudoAssinatura) { 239 private void gerarAssinaturaDocOnline(Assinatura assinatura, AnexoImagem anexoImagem, String conteudoAssinatura) {
230 240
231 StringBuilder conteudoOriginalDocOnLine = new StringBuilder(); 241 StringBuilder conteudoOriginalDocOnLine = new StringBuilder();
232 - 242 +
233 if (UtilObjeto.isReferencia(assinatura.getDocumentoGed().getConteudoTarja())) { 243 if (UtilObjeto.isReferencia(assinatura.getDocumentoGed().getConteudoTarja())) {
234 conteudoOriginalDocOnLine.append(decrypted(assinatura.getDocumentoGed().getConteudoTarja().getConteudoCriptografado())); 244 conteudoOriginalDocOnLine.append(decrypted(assinatura.getDocumentoGed().getConteudoTarja().getConteudoCriptografado()));
235 } else { 245 } else {
@@ -241,9 +251,9 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl&lt;TarjaAssinatu @@ -241,9 +251,9 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl&lt;TarjaAssinatu
241 // Assinar documento 251 // Assinar documento
242 assinatura.getDocumentoGed().setConteudoAssinado(this.assinaturaUtilService.geraAssinatura(conteudoOriginalDocOnLine.toString().getBytes())); 252 assinatura.getDocumentoGed().setConteudoAssinado(this.assinaturaUtilService.geraAssinatura(conteudoOriginalDocOnLine.toString().getBytes()));
243 253
244 - conteudoOriginalDocOnLine.append("<br />").append(this.assinaturaUtilService.gerarHash(conteudoOriginalDocOnLine.toString())); 254 + String conteudo = conteudoOriginalDocOnLine.toString().replaceAll(TarjaAssinatura.CODIGO_ASSINATURA, "<br /><b>".concat(this.assinaturaUtilService.gerarHash(conteudoOriginalDocOnLine.toString()).concat("</b>")));
245 255
246 - assinatura.getDocumentoGed().getConteudoTarja().setConteudoCriptografado(this.encrypted(conteudoOriginalDocOnLine.toString())); 256 + assinatura.getDocumentoGed().getConteudoTarja().setConteudoCriptografado(this.encrypted(conteudo));
247 257
248 } catch (Exception e) { 258 } catch (Exception e) {
249 e.printStackTrace(); 259 e.printStackTrace();
cit-ecm-api/src/main/resources/scripts/v1.0.0-alpha9/01-cit-ecm-1.0.0-ALFA-3-postgres.sql
1 -- CIRO - 18/04/2016 - INICIO 1 -- CIRO - 18/04/2016 - INICIO
2 2
3 ALTER TABLE anexoimagem DROP CONSTRAINT fk_jrmn20bykidk1pkxu492d4bmx; 3 ALTER TABLE anexoimagem DROP CONSTRAINT fk_jrmn20bykidk1pkxu492d4bmx;
  4 +ALTER TABLE tarjaassinatura DROP CONSTRAINT fk_9ybqh1qpbp9udjoi9y2jh6sf9;
  5 +ALTER TABLE configuracao DROP CONSTRAINT fk_jfyy1uygxmqqng72p83k88q4e;
  6 +
4 DROP TABLE anexoimagem; 7 DROP TABLE anexoimagem;
5 8
6 CREATE TABLE anexoimagem 9 CREATE TABLE anexoimagem
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/AssinarDocumentoController.js
@@ -79,7 +79,7 @@ citApp.controller(&#39;AssinarDocumentoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;Geren @@ -79,7 +79,7 @@ citApp.controller(&#39;AssinarDocumentoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;Geren
79 $scope.$openModalConfirm({ 79 $scope.$openModalConfirm({
80 message: $translate.instant("ECM.MSG.CONFIRMAR_ASSINATURA"), 80 message: $translate.instant("ECM.MSG.CONFIRMAR_ASSINATURA"),
81 callback: function () { 81 callback: function () {
82 - $scope.setLoadingRemove(true); 82 + $scope.setLoadingGet(true);
83 AssinaturaRepository.saveAssinaturaInterna(_getAssinatura()).then(function(result){ 83 AssinaturaRepository.saveAssinaturaInterna(_getAssinatura()).then(function(result){
84 _atualizarDocumentoSelecionadoAposAssinar(result.originalElement); 84 _atualizarDocumentoSelecionadoAposAssinar(result.originalElement);
85 _resetAssinar(); 85 _resetAssinar();
@@ -144,6 +144,7 @@ citApp.controller(&#39;AssinarDocumentoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;Geren @@ -144,6 +144,7 @@ citApp.controller(&#39;AssinarDocumentoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;Geren
144 $scope.documentoSelecionado = documento; 144 $scope.documentoSelecionado = documento;
145 $scope.exibirIncluirAssinatura = false; 145 $scope.exibirIncluirAssinatura = false;
146 $scope.exibirDocJaAssinado = false; 146 $scope.exibirDocJaAssinado = false;
  147 + $scope.setLoadingGet(true);
147 _obterAssinaturasDocumento(documento).then(function(documentosSelecionados){ 148 _obterAssinaturasDocumento(documento).then(function(documentosSelecionados){
148 $scope.documentosSelecionados = documentosSelecionados; 149 $scope.documentosSelecionados = documentosSelecionados;
149 $scope.documentosSelecionados.forEach(function(doc){ 150 $scope.documentosSelecionados.forEach(function(doc){
@@ -151,6 +152,7 @@ citApp.controller(&#39;AssinarDocumentoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;Geren @@ -151,6 +152,7 @@ citApp.controller(&#39;AssinarDocumentoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;Geren
151 $scope.documentoSelecionado = doc; 152 $scope.documentoSelecionado = doc;
152 }); 153 });
153 _exibirNenhumaAssinatura(); 154 _exibirNenhumaAssinatura();
  155 + $scope.setLoading(false);
154 if($scope.documentoSelecionado.assinaturas && $scope.documentoSelecionado.assinaturas.length == 0) 156 if($scope.documentoSelecionado.assinaturas && $scope.documentoSelecionado.assinaturas.length == 0)
155 $scope.showAlert("warning", $translate.instant('ECM.MSG.DOCUMENTO_SEM_ASSINATURAS')); 157 $scope.showAlert("warning", $translate.instant('ECM.MSG.DOCUMENTO_SEM_ASSINATURAS'));
156 }); 158 });
@@ -168,6 +170,7 @@ citApp.controller(&#39;AssinarDocumentoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;Geren @@ -168,6 +170,7 @@ citApp.controller(&#39;AssinarDocumentoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;Geren
168 if(valorOriginal) 170 if(valorOriginal)
169 assinatura.isVisualizarAssinatura = false; 171 assinatura.isVisualizarAssinatura = false;
170 else 172 else
  173 + $scope.setLoadingGet(true);
171 DocumentoGedRepository.get(docSelecionado.id).then(function(result){ 174 DocumentoGedRepository.get(docSelecionado.id).then(function(result){
172 $scope.doc = result.originalElement; 175 $scope.doc = result.originalElement;
173 $scope.documentosSelecionados.forEach(function(doc){ 176 $scope.documentosSelecionados.forEach(function(doc){
@@ -183,6 +186,8 @@ citApp.controller(&#39;AssinarDocumentoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;Geren @@ -183,6 +186,8 @@ citApp.controller(&#39;AssinarDocumentoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;Geren
183 idAssinaturaSelecionada = angular.copy(ass.id); 186 idAssinaturaSelecionada = angular.copy(ass.id);
184 } 187 }
185 }); 188 });
  189 +
  190 + $scope.setLoading(false);
186 }); 191 });
187 192
188 $scope.visualizarAssinaturaOnLine = $scope.doc.formaCriacao.codigo == 1; 193 $scope.visualizarAssinaturaOnLine = $scope.doc.formaCriacao.codigo == 1;
@@ -195,7 +200,7 @@ citApp.controller(&#39;AssinarDocumentoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;Geren @@ -195,7 +200,7 @@ citApp.controller(&#39;AssinarDocumentoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;Geren
195 TarjaAssinaturaRepository.getTarjaAssinaturaInterna().then(function(result){ 200 TarjaAssinaturaRepository.getTarjaAssinaturaInterna().then(function(result){
196 $timeout(function(){ 201 $timeout(function(){
197 $scope.tarjaAssinatura = result.originalElement; 202 $scope.tarjaAssinatura = result.originalElement;
198 - }); 203 + },200);
199 }); 204 });
200 }; 205 };
201 206
cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturas.html
@@ -43,10 +43,7 @@ @@ -43,10 +43,7 @@
43 <td colspan="7"> 43 <td colspan="7">
44 <iframe id="conteudoPrototipo" srcdoc="{{assinaturaSelecionada.documentoGed.conteudoTarja.conteudo}}" allowfullscreen class="iframe-assinatura" ng-if="visualizarAssinaturaOnLine"></iframe> 44 <iframe id="conteudoPrototipo" srcdoc="{{assinaturaSelecionada.documentoGed.conteudoTarja.conteudo}}" allowfullscreen class="iframe-assinatura" ng-if="visualizarAssinaturaOnLine"></iframe>
45 <div class="row" style="margin-top: 10px; margin-bottom: 10px;" ng-hide="visualizarAssinaturaOnLine"> 45 <div class="row" style="margin-top: 10px; margin-bottom: 10px;" ng-hide="visualizarAssinaturaOnLine">
46 - <div class="col-sm-2" ng-show="assinaturaSelecionada.conteudoTarja.anexoImagem.anexo">  
47 - <img ng-src="data:image/JPEG;base64,{{assinaturaSelecionada.conteudoTarja.anexoImagem.anexo}}" class="img-thumbnail" style="max-width: 80px; height: 80px;">  
48 - </div>  
49 - <div class="col-md-10"> 46 + <div class="col-md-12">
50 <iframe id="conteudoAssinado" srcdoc="{{assinaturaSelecionada.conteudoTarja.conteudo}}" allowfullscreen class="iframe-assinatura" 47 <iframe id="conteudoAssinado" srcdoc="{{assinaturaSelecionada.conteudoTarja.conteudo}}" allowfullscreen class="iframe-assinatura"
51 style="min-height: 80px !important; max-height: 120px !important;"> 48 style="min-height: 80px !important; max-height: 120px !important;">
52 </iframe> 49 </iframe>