Commit 452a829f8093eb0218ac802503afbdf77095b772

Authored by andre.silva
1 parent dc81a567
Exists in master

tarefa redmine 3216

cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/DocumentoGedDaoHibernate.java
@@ -7,15 +7,17 @@ import org.hibernate.Criteria; @@ -7,15 +7,17 @@ import org.hibernate.Criteria;
7 import org.hibernate.Session; 7 import org.hibernate.Session;
8 import org.hibernate.criterion.Projections; 8 import org.hibernate.criterion.Projections;
9 import org.hibernate.criterion.Restrictions; 9 import org.hibernate.criterion.Restrictions;
  10 +import org.springframework.security.core.context.SecurityContextHolder;
10 import org.springframework.stereotype.Repository; 11 import org.springframework.stereotype.Repository;
11 12
12 import br.com.centralit.api.dao.DocumentoGedDao; 13 import br.com.centralit.api.dao.DocumentoGedDao;
13 import br.com.centralit.api.model.DocumentoGed; 14 import br.com.centralit.api.model.DocumentoGed;
  15 +import br.com.centralit.api.model.SigiloPrivilegio;
14 import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl; 16 import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
15 import br.com.centralit.framework.dao.arquitetura.SearchSeven; 17 import br.com.centralit.framework.dao.arquitetura.SearchSeven;
  18 +import br.com.centralit.framework.model.Usuario;
16 19
17 import com.googlecode.genericdao.search.Filter; 20 import com.googlecode.genericdao.search.Filter;
18 -import com.googlecode.genericdao.search.Search;  
19 import com.googlecode.genericdao.search.Sort; 21 import com.googlecode.genericdao.search.Sort;
20 22
21 @Repository("documentoGedDao") 23 @Repository("documentoGedDao")
@@ -49,16 +51,6 @@ public class DocumentoGedDaoHibernate extends CitGenericDAOImpl implements Docum @@ -49,16 +51,6 @@ public class DocumentoGedDaoHibernate extends CitGenericDAOImpl implements Docum
49 } 51 }
50 52
51 @Override 53 @Override
52 - public Collection<DocumentoGed> findByProcessoSigilo(Long idProcesso) {  
53 -  
54 - Search searchSeven = new Search();  
55 -  
56 - searchSeven.addFilterEqual("processo.id", idProcesso);  
57 - searchSeven.addFilterNotEmpty("processo.sigilo");  
58 - return this.search(searchSeven);  
59 - }  
60 -  
61 - @Override  
62 public Collection<DocumentoGed> findByIdDocumentoTodasVersoes(Long id) { 54 public Collection<DocumentoGed> findByIdDocumentoTodasVersoes(Long id) {
63 55
64 SearchSeven searchSeven = new SearchSeven(); 56 SearchSeven searchSeven = new SearchSeven();
@@ -193,4 +185,35 @@ public class DocumentoGedDaoHibernate extends CitGenericDAOImpl implements Docum @@ -193,4 +185,35 @@ public class DocumentoGedDaoHibernate extends CitGenericDAOImpl implements Docum
193 return (Long) criteria.uniqueResult() > 0; 185 return (Long) criteria.uniqueResult() > 0;
194 186
195 } 187 }
  188 +
  189 + @SuppressWarnings("unchecked")
  190 + @Override
  191 + public Collection<DocumentoGed> findByProcessoSigilo(Long idProcesso) {
  192 +
  193 + Long idUsuario = ( (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal() ).getId();
  194 +
  195 + Criteria criteriaPrivilegio = this.newCriteria(SigiloPrivilegio.class);
  196 +
  197 + criteriaPrivilegio.setProjection(Projections.property("sigilo.id"));
  198 +
  199 + criteriaPrivilegio.createAlias("privilegio", "privilegio");
  200 +
  201 + criteriaPrivilegio.createAlias("privilegio.grupoPrivilegios", "grupoPrivilegio");
  202 +
  203 + criteriaPrivilegio.add(Restrictions.isNull("grupoPrivilegio.dataInativo"));
  204 +
  205 + criteriaPrivilegio.createCriteria("grupoPrivilegio.grupo").createAlias("grupoUsuarios", "grupoUsuario");
  206 +
  207 + criteriaPrivilegio.add(Restrictions.eq("grupoUsuario.usuario.id", idUsuario));
  208 +
  209 + Session session = (Session) this.em().getDelegate();
  210 +
  211 + Criteria criteria = session.createCriteria(persistentClass);
  212 +
  213 + criteria.add(Restrictions.eq("processo.id", idProcesso));
  214 + criteria.add(Restrictions.in("sigilo.id", criteriaPrivilegio.list()));
  215 +
  216 + return criteria.list();
  217 + }
  218 +
196 } 219 }
cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/ProcessoDaoHibernate.java
@@ -7,12 +7,19 @@ import org.hibernate.Criteria; @@ -7,12 +7,19 @@ import org.hibernate.Criteria;
7 import org.hibernate.Session; 7 import org.hibernate.Session;
8 import org.hibernate.criterion.Projections; 8 import org.hibernate.criterion.Projections;
9 import org.hibernate.criterion.Restrictions; 9 import org.hibernate.criterion.Restrictions;
  10 +import org.springframework.security.core.context.SecurityContextHolder;
10 import org.springframework.stereotype.Repository; 11 import org.springframework.stereotype.Repository;
11 12
12 import br.com.centralit.api.dao.ProcessoDao; 13 import br.com.centralit.api.dao.ProcessoDao;
13 import br.com.centralit.api.model.Processo; 14 import br.com.centralit.api.model.Processo;
  15 +import br.com.centralit.api.model.SigiloPrivilegio;
14 import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl; 16 import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
15 import br.com.centralit.framework.dao.arquitetura.SearchSeven; 17 import br.com.centralit.framework.dao.arquitetura.SearchSeven;
  18 +import br.com.centralit.framework.model.Usuario;
  19 +
  20 +import com.googlecode.genericdao.search.Filter;
  21 +import com.googlecode.genericdao.search.ISearch;
  22 +import com.googlecode.genericdao.search.SearchResult;
16 23
17 /** 24 /**
18 * <p> 25 * <p>
@@ -169,4 +176,32 @@ public class ProcessoDaoHibernate extends CitGenericDAOImpl implements ProcessoD @@ -169,4 +176,32 @@ public class ProcessoDaoHibernate extends CitGenericDAOImpl implements ProcessoD
169 return searchUnique(search); 176 return searchUnique(search);
170 } 177 }
171 178
  179 + @Override
  180 + public <RT> SearchResult<RT> searchAndCount(ISearch search) {
  181 +
  182 + Long idUsuario = ((Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getId();
  183 +
  184 + Criteria criteriaPrivilegio = this.newCriteria(SigiloPrivilegio.class);
  185 +
  186 + criteriaPrivilegio.setProjection(Projections.property("sigilo.id"));
  187 +
  188 + criteriaPrivilegio.createAlias("privilegio", "privilegio");
  189 +
  190 + criteriaPrivilegio.createAlias("privilegio.grupoPrivilegios", "grupoPrivilegio");
  191 +
  192 + criteriaPrivilegio.add(Restrictions.isNull("grupoPrivilegio.dataInativo"));
  193 +
  194 + criteriaPrivilegio.createCriteria("grupoPrivilegio.grupo").createAlias("grupoUsuarios", "grupoUsuario");
  195 +
  196 + criteriaPrivilegio.add(Restrictions.eq("grupoUsuario.usuario.id", idUsuario));
  197 +
  198 +
  199 + search.getFilters().add(Filter.in("sigilo.id", criteriaPrivilegio.list()));
  200 +
  201 +
  202 +
  203 +
  204 + return super.searchAndCount(search);
  205 + }
  206 +
172 } 207 }
cit-ecm-api/src/main/java/br/com/centralit/api/framework/json/ViewsEcm.java
@@ -98,5 +98,7 @@ public class ViewsEcm extends Views { @@ -98,5 +98,7 @@ public class ViewsEcm extends Views {
98 98
99 public static class TipoDocumentoPlanoClassificacaoAutoCompleteView extends Views.GenericView{}; 99 public static class TipoDocumentoPlanoClassificacaoAutoCompleteView extends Views.GenericView{};
100 100
  101 + public static class ClassificacaoDocumentoGedView extends Views.GenericView{};
  102 +
101 103
102 } 104 }
cit-ecm-api/src/main/java/br/com/centralit/api/model/DocumentoGed.java
@@ -79,11 +79,11 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable { @@ -79,11 +79,11 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable {
79 private Long id; 79 private Long id;
80 80
81 /** Atributo assuntoComplementar. */ 81 /** Atributo assuntoComplementar. */
82 - @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class }) 82 + @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, ViewsEcm.ClassificacaoDocumentoGedView.class })
83 private String assuntoComplementar; 83 private String assuntoComplementar;
84 84
85 /** Atributo numero. */ 85 /** Atributo numero. */
86 - @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class }) 86 + @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, ViewsEcm.ClassificacaoDocumentoGedView.class })
87 private String numero; 87 private String numero;
88 88
89 /** Atributo idRaiz. */ 89 /** Atributo idRaiz. */
@@ -121,7 +121,7 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable { @@ -121,7 +121,7 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable {
121 private byte[] conteudoCriptografado; 121 private byte[] conteudoCriptografado;
122 122
123 /** Atributo icon. */ 123 /** Atributo icon. */
124 - @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class }) 124 + @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, ViewsEcm.ClassificacaoDocumentoGedView.class })
125 private String icon; 125 private String icon;
126 126
127 @Temporal(TemporalType.TIMESTAMP) 127 @Temporal(TemporalType.TIMESTAMP)
@@ -167,20 +167,20 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable { @@ -167,20 +167,20 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable {
167 167
168 /** Atributo nivelAcesso. */ 168 /** Atributo nivelAcesso. */
169 @ManyToOne(fetch = FetchType.EAGER) 169 @ManyToOne(fetch = FetchType.EAGER)
170 - @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class }) 170 + @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class, ViewsEcm.ClassificacaoDocumentoGedView.class})
171 private NivelAcessoTipoDocumento nivelAcesso; 171 private NivelAcessoTipoDocumento nivelAcesso;
172 172
173 @ManyToOne(fetch = FetchType.EAGER) 173 @ManyToOne(fetch = FetchType.EAGER)
174 - @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class }) 174 + @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class , ViewsEcm.ClassificacaoDocumentoGedView.class})
175 private NivelAcessoTipoDocumento nivelAcessoOriginal; 175 private NivelAcessoTipoDocumento nivelAcessoOriginal;
176 176
177 /** Atributo sigilo. */ 177 /** Atributo sigilo. */
178 @ManyToOne(fetch = FetchType.LAZY) 178 @ManyToOne(fetch = FetchType.LAZY)
179 - @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class }) 179 + @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class , ViewsEcm.ClassificacaoDocumentoGedView.class})
180 private Sigilo sigilo; 180 private Sigilo sigilo;
181 181
182 @ManyToOne(fetch = FetchType.LAZY) 182 @ManyToOne(fetch = FetchType.LAZY)
183 - @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class }) 183 + @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class , ViewsEcm.ClassificacaoDocumentoGedView.class})
184 private Sigilo sigiloOriginal; 184 private Sigilo sigiloOriginal;
185 185
186 /** Atributo planoClassificacao. */ 186 /** Atributo planoClassificacao. */
@@ -205,7 +205,7 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable { @@ -205,7 +205,7 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable {
205 205
206 /** Atributo anexo. */ 206 /** Atributo anexo. */
207 @OneToOne(mappedBy = "documentoGed", fetch = FetchType.EAGER) 207 @OneToOne(mappedBy = "documentoGed", fetch = FetchType.EAGER)
208 - @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class }) 208 + @JsonView({ ViewsEcm.DocumentoGedEdit.class, Views.ProcessoEdit.class ,ViewsEcm.ClassificacaoDocumentoGedView.class})
209 private AnexoGed anexo; 209 private AnexoGed anexo;
210 210
211 /** Atributo versaoAnterior. */ 211 /** Atributo versaoAnterior. */
@@ -228,7 +228,7 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable { @@ -228,7 +228,7 @@ public class DocumentoGed extends PersistentObjectUnidade implements Cloneable {
228 private Calendar prazoSigilo; 228 private Calendar prazoSigilo;
229 229
230 /** Atributo aprovado. */ 230 /** Atributo aprovado. */
231 - @JsonView({ ViewsEcm.DocumentoGedList.class }) 231 + @JsonView({ ViewsEcm.DocumentoGedEdit.class })
232 private Boolean aprovado; 232 private Boolean aprovado;
233 233
234 234
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/DocumentoGedServiceImpl.java
@@ -177,7 +177,7 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl&lt;DocumentoGed, Lo @@ -177,7 +177,7 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl&lt;DocumentoGed, Lo
177 } 177 }
178 178
179 179
180 - this.saveSolr(entity); 180 +// this.saveSolr(entity);
181 181
182 182
183 this.verificaTemporalidadeProcesso(entity); 183 this.verificaTemporalidadeProcesso(entity);
@@ -778,15 +778,15 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl&lt;DocumentoGed, Lo @@ -778,15 +778,15 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl&lt;DocumentoGed, Lo
778 if (!UtilColecao.isVazio(listaDocumentos)) { 778 if (!UtilColecao.isVazio(listaDocumentos)) {
779 for (DocumentoGed documento : listaDocumentos) { 779 for (DocumentoGed documento : listaDocumentos) {
780 DocumentoGed entity = (DocumentoGed) this.documentoGedDao.getReference(documento.getId()); 780 DocumentoGed entity = (DocumentoGed) this.documentoGedDao.getReference(documento.getId());
781 - if (documento.getNivelAcesso() == null) { 781 + if (documento.getSigilo() == null) {
782 entity.setAprovado(Boolean.TRUE); 782 entity.setAprovado(Boolean.TRUE);
  783 + }else{
  784 + entity.setSigiloOriginal(documento.getSigilo());
  785 + entity.setNivelAcessoOriginal(documento.getNivelAcesso());
  786 + entity.setSigilo(documento.getSigilo());
  787 + entity.setNivelAcesso(documento.getNivelAcesso());
783 } 788 }
784 -  
785 789
786 - entity.setSigiloOriginal(documento.getSigilo());  
787 - entity.setNivelAcessoOriginal(documento.getNivelAcesso());  
788 - entity.setSigilo(documento.getSigilo());  
789 - entity.setNivelAcesso(documento.getNivelAcesso());  
790 super.merge(entity); 790 super.merge(entity);
791 } 791 }
792 792
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/ProcessoServiceImpl.java
@@ -160,7 +160,7 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl @@ -160,7 +160,7 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
160 160
161 try { 161 try {
162 162
163 - this.solrService.addProcesso(processo); 163 +// this.solrService.addProcesso(processo);
164 } catch (final Exception e) { 164 } catch (final Exception e) {
165 165
166 e.printStackTrace(); 166 e.printStackTrace();
cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java
@@ -310,6 +310,7 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen @@ -310,6 +310,7 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
310 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.FUNDAMENTACAO_LEGAL", "Fundamentação legal", dominio, modulo)); 310 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.FUNDAMENTACAO_LEGAL", "Fundamentação legal", dominio, modulo));
311 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.NIVEL_ACESSO", "Nível Acesso", dominio, modulo)); 311 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.NIVEL_ACESSO", "Nível Acesso", dominio, modulo));
312 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.NIVEL_SIGILO", "Nível de sigilo", dominio, modulo)); 312 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.NIVEL_SIGILO", "Nível de sigilo", dominio, modulo));
  313 + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.NIVEL_SIGILO_ORIGINAL", "Nível de sigilo original", dominio, modulo));
313 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.PLANO_CLASSIFICACAO_SUPERIOR", "Elemento superior", dominio, modulo)); 314 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.PLANO_CLASSIFICACAO_SUPERIOR", "Elemento superior", dominio, modulo));
314 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.SUGESTOES_ASSUNTO", "Sugestões de assunto", dominio, modulo)); 315 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.SUGESTOES_ASSUNTO", "Sugestões de assunto", dominio, modulo));
315 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.TIPODOCUMENTO", "Tipo Documento", dominio, modulo)); 316 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.TIPODOCUMENTO", "Tipo Documento", dominio, modulo));
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/ClassificarDocumentoProcessoController.js
@@ -13,6 +13,8 @@ citApp.controller(&#39;ClassificarDocumentoProcessoController&#39;, [&#39;$scope&#39;, &#39;Processo @@ -13,6 +13,8 @@ citApp.controller(&#39;ClassificarDocumentoProcessoController&#39;, [&#39;$scope&#39;, &#39;Processo
13 $scope.idPainelItem = 0; 13 $scope.idPainelItem = 0;
14 14
15 $scope.tabAtual = 0; 15 $scope.tabAtual = 0;
  16 +
  17 + $scope.aprovado = null;
16 18
17 $scope.tabs = [ {active: true} 19 $scope.tabs = [ {active: true}
18 ,{active: false} 20 ,{active: false}
@@ -98,22 +100,42 @@ citApp.controller(&#39;ClassificarDocumentoProcessoController&#39;, [&#39;$scope&#39;, &#39;Processo @@ -98,22 +100,42 @@ citApp.controller(&#39;ClassificarDocumentoProcessoController&#39;, [&#39;$scope&#39;, &#39;Processo
98 }); 100 });
99 }; 101 };
100 102
101 - 103 + $scope.removerAtributos = function(){
  104 + angular.forEach($scope.processo.documentos, function (item) {
  105 + delete item.autorUserName;
  106 + delete item.unidadeNome;
  107 + delete item.documentoVersao;
  108 + delete item.originalElement;
  109 + angular.forEach(item.nivelAcesso.sigilos, function (item) {
  110 + delete item.tipoSigiloDescricao;
  111 + });
  112 +
  113 + angular.forEach(item.nivelAcessoOriginal.sigilos, function (item) {
  114 + delete item.tipoSigiloDescricao;
  115 + });
  116 +
  117 + });
  118 +
  119 + };
102 // SALVA O Processo 120 // SALVA O Processo
103 $scope.saveOrUpdate = function(){ 121 $scope.saveOrUpdate = function(){
104 122
105 $scope.classificarDocumentoProcessoForm.$submitted = true; 123 $scope.classificarDocumentoProcessoForm.$submitted = true;
106 -  
107 //verifica se o formulario está valido para salvar 124 //verifica se o formulario está valido para salvar
108 if($scope.classificarDocumentoProcessoForm.$valid){ 125 if($scope.classificarDocumentoProcessoForm.$valid){
109 126
110 $scope.setLoadingSalva(true); 127 $scope.setLoadingSalva(true);
111 -  
112 - 128 +
  129 + $scope.removerAtributos();
  130 +
  131 + $scope.processo.aprovado = $scope.aprovado;
113 ProcessoRepository.atualizarSigiloProcesso($scope.processo).then(function(result) { 132 ProcessoRepository.atualizarSigiloProcesso($scope.processo).then(function(result) {
114 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_SALVO')); 133 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_SALVO'));
  134 + $scope.historicoAlteracao(result.originalElement);
115 ProcessoRepository.get($scope.processo.id).then(function(result){ 135 ProcessoRepository.get($scope.processo.id).then(function(result){
116 - $scope.processo = result; 136 + $scope.processo = result.originalElement;
  137 + $scope.aprovado = result.originalElement.aprovado;
  138 + $scope.carregarListaDocumentos($scope.processo.id);
117 }); 139 });
118 $scope.classificarDocumentoProcessoForm.$submitted = false; 140 $scope.classificarDocumentoProcessoForm.$submitted = false;
119 $scope.atualizaProcesso(); 141 $scope.atualizaProcesso();
@@ -140,19 +162,10 @@ citApp.controller(&#39;ClassificarDocumentoProcessoController&#39;, [&#39;$scope&#39;, &#39;Processo @@ -140,19 +162,10 @@ citApp.controller(&#39;ClassificarDocumentoProcessoController&#39;, [&#39;$scope&#39;, &#39;Processo
140 HistoricoAlteracaoProcessoRepository.saveParams(historicoAlteracaoProcesso).then(function(result){ }); 162 HistoricoAlteracaoProcessoRepository.saveParams(historicoAlteracaoProcesso).then(function(result){ });
141 }; 163 };
142 164
143 -  
144 -/* $scope.historicoAlteracao = function (documentos){  
145 -  
146 - angular.forEach(documentos, function(item, key) {  
147 -  
148 - var documento = item.documentoGed;  
149 -  
150 - $scope.AddHistoricoAlteracao(documento);  
151 -  
152 - });  
153 - };*/  
154 -  
155 - 165 + //Fechar widget
  166 + $scope.closeWidget = function() {
  167 + angular.element("#searchGerenciarProcesso").scope().closeWidget();
  168 + };
156 169
157 $scope.initializeNivelAcessoDocumento = function(){ 170 $scope.initializeNivelAcessoDocumento = function(){
158 $scope.nivelAcessoTipoDocumentoList = []; 171 $scope.nivelAcessoTipoDocumentoList = [];
@@ -168,13 +181,35 @@ citApp.controller(&#39;ClassificarDocumentoProcessoController&#39;, [&#39;$scope&#39;, &#39;Processo @@ -168,13 +181,35 @@ citApp.controller(&#39;ClassificarDocumentoProcessoController&#39;, [&#39;$scope&#39;, &#39;Processo
168 $scope.sigilos = result; 181 $scope.sigilos = result;
169 }); 182 });
170 }; 183 };
  184 +
  185 + $scope.iniciar = function(processo){
  186 +
  187 + ProcessoRepository.get(processo.id).then(function(result) {
  188 + $scope.processo = result.originalElement;
  189 + $scope.aprovado = result.originalElement.aprovado;
  190 + $scope.carregarListaDocumentos(processo.id);
  191 + });
  192 +
  193 + $scope.findNivelPorIdProcesso(processo.tipoProcesso.id);
  194 +
  195 + };
  196 +
  197 + $scope.carregarListaDocumentos = function(idProcesso){
  198 + $scope.processo.documentos = [];
  199 + DocumentoGedRepository.findByProcessoSigilo(idProcesso).then(function(result) {
  200 + angular.forEach(result, function(item) {
  201 +
  202 + var documento = item.originalElement;
  203 + $scope.processo.documentos.push(documento);
  204 +
  205 + });
  206 + });
  207 + } ;
171 208
172 209
173 - $scope.constroiRelacionamentoTipoProcesso = function(tipoProcesso){ 210 + $scope.findNivelPorIdProcesso = function(idTipoProcesso){
174 211
175 - $scope.nivelAcessoList = [];  
176 -  
177 - NivelAcessoTipoProcessoRepository.findPorIdTipoProcesso(tipoProcesso.id).then(function(result) { 212 + NivelAcessoTipoProcessoRepository.findPorIdTipoProcesso(idTipoProcesso).then(function(result) {
178 $scope.nivelAcessoList = result; 213 $scope.nivelAcessoList = result;
179 }); 214 });
180 }; 215 };
@@ -186,6 +221,7 @@ citApp.controller(&#39;ClassificarDocumentoProcessoController&#39;, [&#39;$scope&#39;, &#39;Processo @@ -186,6 +221,7 @@ citApp.controller(&#39;ClassificarDocumentoProcessoController&#39;, [&#39;$scope&#39;, &#39;Processo
186 221
187 ProcessoRepository.get(processo.id).then(function(result) { 222 ProcessoRepository.get(processo.id).then(function(result) {
188 $scope.processo = result.originalElement; 223 $scope.processo = result.originalElement;
  224 + $scope.aprovado = result.originalElement.aprovado;
189 $scope.setLoading(false); 225 $scope.setLoading(false);
190 $scope.constroiRelacionamentoTipoProcesso($scope.processo.tipoProcesso); 226 $scope.constroiRelacionamentoTipoProcesso($scope.processo.tipoProcesso);
191 227
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoController.js
@@ -598,12 +598,27 @@ citApp.controller(&#39;GerenciarProcessoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;$tim @@ -598,12 +598,27 @@ citApp.controller(&#39;GerenciarProcessoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;$tim
598 $scope.getProcesso = function ( processo ) { 598 $scope.getProcesso = function ( processo ) {
599 599
600 $scope.setLoadingGet( true ); 600 $scope.setLoadingGet( true );
601 -  
602 - $scope.isHistoricoProcesso = true;  
603 -  
604 - $scope.processo = processo;  
605 - $scope.idProcesso = $scope.processo.id;  
606 - 601 +
  602 + ProcessoRepository.get(processo.id).then(function(result) {
  603 + $scope.processo = result.originalElement;
  604 +
  605 +
  606 + DocumentoGedRepository.findByProcessoSigilo(processo.id).then(function(result) {
  607 + $scope.processo.documentos = result;
  608 + });
  609 +
  610 + $scope.setLoading(false);
  611 + });
  612 +
  613 + $timeout( function () {
  614 + angular.element( "#classificarDocumento" ).scope().iniciar(processo);
  615 + } );
  616 +
  617 +
  618 + $scope.isHistoricoProcesso = false;
  619 + $scope.isClassificarProcessoDocumento = true;
  620 + $scope.apresentarCabecalho = true;
  621 + $scope.idProcesso = processo.id;
607 $scope.setLoading( false ); 622 $scope.setLoading( false );
608 623
609 }; 624 };
cit-ecm-web/src/main/webapp/html/classificarProcessoDocumento/classificarProcessoDocumento.html
@@ -39,7 +39,7 @@ @@ -39,7 +39,7 @@
39 </div> 39 </div>
40 40
41 <div class="col-md-6"> 41 <div class="col-md-6">
42 - <span class="text-bold" ><translate>ECM.LABEL.NIVEL_SIGILO</translate></span>&nbsp;&nbsp; 42 + <span class="text-bold" ><translate>ECM.LABEL.NIVEL_SIGILO_ORIGINAL</translate></span>&nbsp;&nbsp;
43 <span>{{processo.sigiloOriginal.tipoSigilo.descricao}}</span> 43 <span>{{processo.sigiloOriginal.tipoSigilo.descricao}}</span>
44 </div> 44 </div>
45 45
@@ -48,8 +48,23 @@ @@ -48,8 +48,23 @@
48 <!-- </div> --> 48 <!-- </div> -->
49 49
50 <br></br> 50 <br></br>
  51 +
  52 + <div ng-show='processo.aprovado'>
  53 + <div class="row">
  54 + <div class="col-md-6">
  55 + <span class="text-bold"><translate>ECM.LABEL.NIVEL_ACESSO</translate></span>&nbsp;&nbsp;
  56 + <span>{{processo.nivelAcesso.nivelAcesso.descricao}}</span>
  57 + </div>
  58 +
  59 + <div class="col-md-6">
  60 + <span class="text-bold" ><translate>ECM.LABEL.NIVEL_SIGILO</translate></span>&nbsp;&nbsp;
  61 + <span>{{processo.sigilo.tipoSigilo.descricao}}</span>
  62 + </div>
  63 +
  64 + </div>
  65 + </div>
51 66
52 - <div class="row" ng-show='processo.tipoProcesso.id'> 67 + <div class="row" ng-show='!processo.aprovado'>
53 <div class="col-md-6"> 68 <div class="col-md-6">
54 <label-select ng-id="processo.nivelAcesso" ng-label="ECM.LABEL.NIVEL_ACESSO" ng-model="processo.nivelAcesso" 69 <label-select ng-id="processo.nivelAcesso" ng-label="ECM.LABEL.NIVEL_ACESSO" ng-model="processo.nivelAcesso"
55 form="classificarDocumentoclassificarDocumentoProcessoForm" ng-obrigatorio="true" 70 form="classificarDocumentoclassificarDocumentoProcessoForm" ng-obrigatorio="true"
@@ -74,9 +89,9 @@ @@ -74,9 +89,9 @@
74 </div> 89 </div>
75 </div> 90 </div>
76 91
77 - <div class="col-md-6">  
78 - <label-input-checkbox ng-model="processo.aprovado" ng-label="ECM.LABEL.APROVAR"></label-input-checkbox>  
79 - </div> 92 + <div class="col-md-6">
  93 + <label-input-checkbox ng-model="aprovado" ng-label="ECM.LABEL.APROVAR"></label-input-checkbox>
  94 + </div>
80 95
81 </div> 96 </div>
82 </fieldset> 97 </fieldset>
@@ -109,7 +124,8 @@ @@ -109,7 +124,8 @@
109 <tr ng-repeat="documento in processo.documentos"> 124 <tr ng-repeat="documento in processo.documentos">
110 <td class="text-center">{{processo.nup}}</td> 125 <td class="text-center">{{processo.nup}}</td>
111 <td class="text-center">{{processo.id}}</td> 126 <td class="text-center">{{processo.id}}</td>
112 - <td> 127 + <td class="text-center" ng-show="documento.aprovado">{{documento.nivelAcesso.nivelAcesso.descricao}}</td>
  128 + <td ng-show="!documento.aprovado">
113 <div class="row"> 129 <div class="row">
114 <div class="col-md-6"> 130 <div class="col-md-6">
115 <label-select ng-id="documento.nivelAcesso" ng-model="documento.nivelAcesso" form="classificarDocumentoProcessoForm" 131 <label-select ng-id="documento.nivelAcesso" ng-model="documento.nivelAcesso" form="classificarDocumentoProcessoForm"
cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeCabecalhoGerenciarProcesso.jsp
@@ -65,7 +65,7 @@ @@ -65,7 +65,7 @@
65 <sec:authorize access="permiteRenunciar()"> 65 <sec:authorize access="permiteRenunciar()">
66 <li><a href="javascript: return false;" ng-click='exibirDialogConfirmacaoRemoverCredencial()'><i class="fa fa-user-times">&nbsp </i> <translate>ECM.LABEL.RENUNCIAR_CREDENCIAL</translate> </a></li> 66 <li><a href="javascript: return false;" ng-click='exibirDialogConfirmacaoRemoverCredencial()'><i class="fa fa-user-times">&nbsp </i> <translate>ECM.LABEL.RENUNCIAR_CREDENCIAL</translate> </a></li>
67 </sec:authorize> 67 </sec:authorize>
68 -<!-- <li><a href="#void" ng-click='classificarDocumentoProceso();'><i class="fa fa fa-eye">&nbsp </i> <translate>ECM.LABEL.VALIDAR_NIVEL_ACESSO</translate> </a></li> --> 68 + <!-- <li><a href="#void" ng-click='classificarDocumentoProceso();'><i class="fa fa fa-eye">&nbsp </i> <translate>ECM.LABEL.VALIDAR_NIVEL_ACESSO</translate> </a></li> -->
69 69
70 </ul> 70 </ul>
71 </div> 71 </div>