Commit 56ee39eeb2f5abed920a34dac782fd2204f006ab

Authored by rogerio.costa
1 parent b89d7cdd
Exists in master

Assinar documento digital

cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/ProcessoDaoHibernate.java
1 1 package br.com.centralit.api.dao.impl;
2 2  
  3 +import java.util.ArrayList;
3 4 import java.util.Calendar;
4 5 import java.util.Collection;
  6 +import java.util.List;
5 7  
6 8 import javax.persistence.FetchType;
7 9  
... ... @@ -17,12 +19,14 @@ import org.springframework.security.core.context.SecurityContextHolder;
17 19 import org.springframework.stereotype.Repository;
18 20  
19 21 import br.com.centralit.api.dao.ProcessoDao;
  22 +import br.com.centralit.api.model.CredencialProcesso;
20 23 import br.com.centralit.api.model.Processo;
21 24 import br.com.centralit.api.model.SigiloPrivilegio;
22 25 import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
23 26 import br.com.centralit.framework.dao.arquitetura.SearchSeven;
24 27 import br.com.centralit.framework.model.Dominio;
25 28 import br.com.centralit.framework.model.Usuario;
  29 +import br.com.centralit.framework.model.arquitetura.PersistentObject;
26 30 import br.com.centralit.framework.util.UtilObjeto;
27 31  
28 32 import com.googlecode.genericdao.search.Filter;
... ... @@ -63,6 +67,7 @@ import com.googlecode.genericdao.search.SearchResult;
63 67 *
64 68 */
65 69 @Repository("processoDao")
  70 +@SuppressWarnings("unchecked")
66 71 public class ProcessoDaoHibernate extends CitGenericDAOImpl implements ProcessoDao {
67 72  
68 73 /**
... ... @@ -198,10 +203,45 @@ public class ProcessoDaoHibernate extends CitGenericDAOImpl implements ProcessoD
198 203 */
199 204 public <RT> SearchResult<RT> searchAndCountPorSigilo(ISearch search) {
200 205  
201   - Long idUsuario = ( (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal() ).getId();
202   -
203 206 Criteria criteria = this.newCriteria();
204 207  
  208 + DetachedCriteria detachedPrivilegio = getDetachedPorPermissaoEmSigilo();
  209 +
  210 + // Joins
  211 + criteria.createAlias("documentos", "documentos", JoinType.LEFT_OUTER_JOIN);
  212 +
  213 + criteria.createAlias("documentos.status", "statusDocumento", JoinType.LEFT_OUTER_JOIN);
  214 + // Filtros
  215 + criteria.add(Restrictions.or(Restrictions.eq("statusDocumento.codigo", 0L), Restrictions.isNull("validado"), Restrictions.eq("validado", false)));
  216 +
  217 + criteria.add(Restrictions.or(Subqueries.propertyIn("sigilo.id", detachedPrivilegio), Subqueries.propertyIn("documentos.sigilo.id", detachedPrivilegio)));
  218 +
  219 + criteria.setProjection(Projections.distinct(Projections.property("id")));
  220 +
  221 + search.getFilters().add(Filter.in("id", criteria.list()));
  222 +
  223 + return super.searchAndCount(search);
  224 + }
  225 +
  226 + /**
  227 + * <p>
  228 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  229 + * </p>
  230 + *
  231 + * <p>
  232 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  233 + * </p>
  234 + *
  235 + * Método responsável por filtrar o sigilo que o usuario logado tem permissão através do(s) grupo(s) que o mesmo pertence
  236 + *
  237 + * @author rogerio.costa
  238 + *
  239 + * @return DetachedCriteria/ ids dos sigilos
  240 + */
  241 + private DetachedCriteria getDetachedPorPermissaoEmSigilo() {
  242 +
  243 + Long idUsuario = ( (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal() ).getId();
  244 +
205 245 DetachedCriteria detachedCriteriaPrivilegio = DetachedCriteria.forClass(SigiloPrivilegio.class);
206 246  
207 247 detachedCriteriaPrivilegio.setProjection(Projections.property("sigilo.id"));
... ... @@ -218,19 +258,7 @@ public class ProcessoDaoHibernate extends CitGenericDAOImpl implements ProcessoD
218 258  
219 259 detachedCriteriaPrivilegio.add(Restrictions.eq("grupoUsuario.usuario.id", idUsuario));
220 260  
221   - criteria.add(Subqueries.propertyIn("sigilo.id", detachedCriteriaPrivilegio));
222   -
223   - criteria.createAlias("documentos", "documentos", JoinType.LEFT_OUTER_JOIN);
224   -
225   - criteria.createAlias("documentos.status", "statusDocumento", JoinType.LEFT_OUTER_JOIN);
226   -
227   - criteria.add(Restrictions.or(Restrictions.eq("statusDocumento.codigo", 0L), Restrictions.isNull("validado"), Restrictions.eq("validado", false)));
228   -
229   - criteria.setProjection(Projections.distinct(Projections.property("id")));
230   -
231   - search.getFilters().add(Filter.in("id", criteria.list()));
232   -
233   - return super.searchAndCount(search);
  261 + return detachedCriteriaPrivilegio;
234 262 }
235 263  
236 264 @Override
... ... @@ -248,17 +276,17 @@ public class ProcessoDaoHibernate extends CitGenericDAOImpl implements ProcessoD
248 276  
249 277 return UtilObjeto.isReferencia(criteria.uniqueResult());
250 278 }
251   -
252   - public Collection<Processo> autoCompleteProcessoByNupAndStatus(String nup, Dominio dominio){
253   -
  279 +
  280 + public Collection<Processo> autoCompleteProcessoByNupAndStatus(String nup, Dominio dominio) {
  281 +
254 282 Search search = new SearchSeven(this.persistentClass);
255 283  
256 284 search.addFilterOr(Filter.ilike("nup", "%" + nup + "%"), Filter.ilike("nup", "%" + nup + "%"));
257   -
  285 +
258 286 search.addFilterEqual("status.id", dominio.getId());
259   -
  287 +
260 288 search.addSortDesc("id");
261   -
  289 +
262 290 search.setMaxResults(10);
263 291  
264 292 return this.search(search);
... ... @@ -271,17 +299,138 @@ public class ProcessoDaoHibernate extends CitGenericDAOImpl implements ProcessoD
271 299 Search search = new SearchSeven(this.persistentClass);
272 300  
273 301 search.addFilterOr(Filter.ilike("nup", "%" + nup + "%"), Filter.ilike("nup", "%" + nup + "%"));
274   -
  302 +
275 303 search.getFilters().add(Filter.notEqual("status.codigo", 1L));
276   -
  304 +
277 305 search.getFilters().add(Filter.notEqual("status.codigo", 5L));
278   -
  306 +
279 307 search.getFilters().add(Filter.notEqual("status.codigo", 3L));
280   -
  308 +
281 309 search.addSortDesc("id");
282   -
  310 +
283 311 search.setMaxResults(10);
284 312  
285 313 return this.search(search);
286 314 }
  315 +
  316 + @Override
  317 + public List<PersistentObject> findAutoComplete(String chave, String valor) {
  318 +
  319 + Criteria criteriaProcesso = this.newCriteria(Processo.class);
  320 +
  321 + this.filterProcessoPermissaoUsuario(criteriaProcesso);
  322 +
  323 + criteriaProcesso.add(Restrictions.ilike(chave, "%" + valor + "%"));
  324 +
  325 + return criteriaProcesso.list();
  326 + }
  327 +
  328 + /**
  329 + * <p>
  330 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  331 + * </p>
  332 + *
  333 + * <p>
  334 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  335 + * </p>
  336 + *
  337 + * Método responsável por realizar os filtros em que o usuario logado tem permissão.
  338 + *
  339 + * @author rogerio.costa
  340 + *
  341 + * @param criteriaProcesso
  342 + */
  343 + private void filterProcessoPermissaoUsuario(Criteria criteriaProcesso) {
  344 +
  345 + Usuario usuario = ( (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal() );
  346 +
  347 + // Verifica se o usuario está lotado na unidade
  348 + if (UtilObjeto.isReferencia(usuario.getUnidade())) {
  349 +
  350 + // Filtro de permissões herdadas através de grupos
  351 + DetachedCriteria detachedCriteriaPrivilegio = findSigiloUsuarioContemPermissaoAtravesDosGrupos(usuario);
  352 +
  353 + // Filtro da credencial do processo
  354 + DetachedCriteria detachedCredencialProcesso = findProcessoSigilosoPorCredencial(usuario);
  355 +
  356 + criteriaProcesso.add(Restrictions.eq("unidade.id", usuario.getUnidade().getId()));
  357 +
  358 + criteriaProcesso.add(Restrictions.or(Subqueries.propertyIn("sigilo.id", detachedCriteriaPrivilegio), Subqueries.propertyIn("id", detachedCredencialProcesso), Restrictions.or(Restrictions.eq("autor.id", usuario.getId()), Restrictions.isNull("sigilo"))));
  359 +
  360 + criteriaProcesso.add(Restrictions.isNotNull("idProcessInstance"));
  361 +
  362 + }
  363 + }
  364 +
  365 + /**
  366 + * <p>
  367 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  368 + * </p>
  369 + *
  370 + * <p>
  371 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  372 + * </p>
  373 + *
  374 + * Método responsável por retornar um detachedCriteria com os ids dos sigilos que o usuário tem permissão. O mesmo é consultado através dos grupos que o usuário pertence.
  375 + *
  376 + * @author rogerio.costa
  377 + *
  378 + * @param usuario
  379 + * @return DetachedCriteria/Sigilo.id
  380 + */
  381 + private DetachedCriteria findSigiloUsuarioContemPermissaoAtravesDosGrupos(Usuario usuario) {
  382 +
  383 + DetachedCriteria detachedCriteriaPrivilegio = DetachedCriteria.forClass(SigiloPrivilegio.class);
  384 +
  385 + detachedCriteriaPrivilegio.setProjection(Projections.property("sigilo.id"));
  386 +
  387 + detachedCriteriaPrivilegio.createAlias("privilegio", "privilegio");
  388 +
  389 + detachedCriteriaPrivilegio.createAlias("privilegio.grupoPrivilegios", "grupoPrivilegio");
  390 +
  391 + detachedCriteriaPrivilegio.add(Restrictions.isNull("grupoPrivilegio.dataInativo"));
  392 +
  393 + detachedCriteriaPrivilegio.createCriteria("grupoPrivilegio.grupo").createAlias("grupoUsuarios", "grupoUsuario");
  394 +
  395 + detachedCriteriaPrivilegio.add(Restrictions.isNull("grupoUsuario.dataInativo"));
  396 +
  397 + detachedCriteriaPrivilegio.add(Restrictions.eq("grupoUsuario.usuario.id", usuario.getId()));
  398 +
  399 + return detachedCriteriaPrivilegio;
  400 + }
  401 +
  402 + /**
  403 + * <p>
  404 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  405 + * </p>
  406 + *
  407 + * <p>
  408 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  409 + * </p>
  410 + *
  411 + * Método responsável por retornar os ids dos processo sigilosos que o usuário tem permissão, adicionado diretamente para o usuário e grupo que o mesmo está vinculado.
  412 + *
  413 + * @author rogerio.costa
  414 + *
  415 + * @param usuario
  416 + * @return DetachedCriteria/ Processo.id
  417 + */
  418 + private DetachedCriteria findProcessoSigilosoPorCredencial(Usuario usuario) {
  419 +
  420 + DetachedCriteria detachedCredencialProcesso = DetachedCriteria.forClass(CredencialProcesso.class);
  421 +
  422 + detachedCredencialProcesso.setProjection(Projections.property("processo.id"));
  423 +
  424 + detachedCredencialProcesso.createAlias("grupo", "grupo", JoinType.LEFT_OUTER_JOIN);
  425 +
  426 + detachedCredencialProcesso.createAlias("grupo.grupoUsuarios", "grupoUsuario", JoinType.LEFT_OUTER_JOIN);
  427 +
  428 + detachedCredencialProcesso.add(Restrictions.isNull("grupoUsuario.dataInativo"));
  429 +
  430 + detachedCredencialProcesso.add(Restrictions.or(Restrictions.eq("grupoUsuario.usuario.id", usuario.getId()), Restrictions.eq("usuario.id", usuario.getId())));
  431 +
  432 + detachedCredencialProcesso.add(Restrictions.isNull("dataInativo"));
  433 +
  434 + return detachedCredencialProcesso;
  435 + }
287 436 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/UnidadeProcessoDaoHibernate.java
... ... @@ -93,7 +93,7 @@ public class UnidadeProcessoDaoHibernate extends CitGenericDAOImpl implements Un
93 93 return this.search(searchSeven);
94 94  
95 95 }
96   -
  96 +
97 97 /**
98 98 *
99 99 * <p>
... ... @@ -203,7 +203,7 @@ public class UnidadeProcessoDaoHibernate extends CitGenericDAOImpl implements Un
203 203 searchSeven.addFilterEqual("processo.id", idProcesso);
204 204  
205 205 searchSeven.addFilterEqual("unidade.id", idUnidade);
206   -
  206 +
207 207 searchSeven.setMaxResults(1);
208 208  
209 209 return this.searchUnique(searchSeven);
... ... @@ -222,34 +222,38 @@ public class UnidadeProcessoDaoHibernate extends CitGenericDAOImpl implements Un
222 222 @Override
223 223 public <RT> SearchResult<RT> searchAndCountPorUnidade(ISearch search, Usuario usuario, Long idStatus) {
224 224  
225   - // Filtro de permissões herdadas através de grupos
226   - DetachedCriteria detachedCriteriaPrivilegio = findSigiloUsuarioContemPermissaoAtravesDosGrupos(usuario);
  225 + // Verifica se o usuario está lotado na unidade
  226 + if (UtilObjeto.isReferencia(usuario.getUnidade())) {
227 227  
228   - // Filtro da credencial do processo
229   - DetachedCriteria detachedCredencialProcesso = findProcessoSigilosoPorCredencial(usuario);
  228 + // Filtro de permissões herdadas através de grupos
  229 + DetachedCriteria detachedCriteriaPrivilegio = findSigiloUsuarioContemPermissaoAtravesDosGrupos(usuario);
230 230  
231   - // Filtro da unidade, para processos públicos e restritos.
232   - search.getFilters().add(Filter.or(Filter.not(Filter.equal("processo.status.id", idStatus)), Filter.isEmpty("processo.status.id")));
233   -
234   - search.getFilters().add(Filter.notEqual("processo.status.codigo", 5L));
  231 + // Filtro da credencial do processo
  232 + DetachedCriteria detachedCredencialProcesso = findProcessoSigilosoPorCredencial(usuario);
235 233  
236   - // Verifica se o usuario está lotado na unidade
237   - if (UtilObjeto.isReferencia(usuario.getUnidade())) {
  234 + // Filtro da unidade, para processos públicos e restritos.
  235 + search.getFilters().add(Filter.or(Filter.not(Filter.equal("processo.status.id", idStatus)), Filter.isEmpty("processo.status.id")));
  236 +
  237 + search.getFilters().add(Filter.notEqual("processo.status.codigo", 5L));
238 238  
239 239 search.getFilters().add(Filter.equal("unidade.id", usuario.getUnidade().getId()));
240   - }
241 240  
242   - Criteria criteriaProcessoSigiloso = this.newCriteria(Processo.class);
  241 + search.getFilters().add(Filter.or(Filter.equal("concluido", false), Filter.isNull("concluido")));
243 242  
244   - criteriaProcessoSigiloso.setProjection(Projections.property("id"));
  243 + Criteria criteriaProcessoSigiloso = this.newCriteria(Processo.class);
245 244  
246   - criteriaProcessoSigiloso.add(Restrictions.or(Subqueries.propertyIn("sigilo.id", detachedCriteriaPrivilegio), Subqueries.propertyIn("id", detachedCredencialProcesso)));
  245 + criteriaProcessoSigiloso.setProjection(Projections.property("id"));
247 246  
248   - search.getFilters().add(Filter.isNotNull("processo.idProcessInstance"));
  247 + criteriaProcessoSigiloso.add(Restrictions.or(Subqueries.propertyIn("sigilo.id", detachedCriteriaPrivilegio), Subqueries.propertyIn("id", detachedCredencialProcesso)));
249 248  
250   - search.getFilters().add(Filter.or(Filter.equal("processo.autor.id", usuario.getId()), Filter.isNull("processo.sigilo"), Filter.in("processo.id", criteriaProcessoSigiloso.list())));
  249 + search.getFilters().add(Filter.isNotNull("processo.idProcessInstance"));
251 250  
252   - return super.searchAndCount(search);
  251 + search.getFilters().add(Filter.or(Filter.equal("processo.autor.id", usuario.getId()), Filter.isNull("processo.sigilo"), Filter.in("processo.id", criteriaProcessoSigiloso.list())));
  252 +
  253 + return super.searchAndCount(search);
  254 + }
  255 +
  256 + return new SearchResult<RT>();
253 257 }
254 258  
255 259 /**
... ... @@ -323,38 +327,37 @@ public class UnidadeProcessoDaoHibernate extends CitGenericDAOImpl implements Un
323 327  
324 328 return detachedCriteriaPrivilegio;
325 329 }
326   -
  330 +
327 331 /**
328 332 *
329 333 */
330 334 public Collection<UnidadeProcesso> findByPorIdProcessoEmExecucao(Long idProcesso) {
331   -
  335 +
332 336 SearchSeven searchSeven = new SearchSeven();
333 337  
334 338 searchSeven.addFilterEqual("processo.id", idProcesso);
335   -
  339 +
336 340 searchSeven.addFilterOr(Filter.equal("concluido", false), Filter.isNull("concluido"));
337 341  
338 342 return this.search(searchSeven);
339   -
  343 +
340 344 }
341 345  
342 346 public UnidadeProcesso obterPorUnidadeEProcessoEmExecucao(Long idProcesso, Long idUnidade) {
343   -
  347 +
344 348 SearchSeven searchSeven = new SearchSeven();
345 349  
346 350 searchSeven.addFilterEqual("processo.id", idProcesso);
347 351  
348 352 searchSeven.addFilterEqual("unidade.id", idUnidade);
349   -
350   - searchSeven.addFilterOr( Filter.isNull("concluido"));
  353 +
  354 + searchSeven.addFilterOr(Filter.isNull("concluido"));
351 355  
352 356 searchSeven.setMaxResults(1);
353 357  
354 358 return this.searchUnique(searchSeven);
355 359 }
356 360  
357   -
358 361 /**
359 362 * <p>
360 363 * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
... ... @@ -384,6 +387,5 @@ public class UnidadeProcessoDaoHibernate extends CitGenericDAOImpl implements Un
384 387  
385 388 return UtilObjeto.isReferencia(criteria.uniqueResult());
386 389  
387   -
388 390 }
389 391 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/DocumentoGedServiceImpl.java
... ... @@ -334,7 +334,7 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl&lt;DocumentoGed, Lo
334 334 }
335 335 }
336 336  
337   - if (UtilObjeto.isReferencia(entity.getProcesso().getSigilo())) {
  337 + if (UtilObjeto.isReferencia(entity.getProcesso().getSigilo()) && UtilObjeto.isReferencia(entity.getSigilo())) {
338 338 if (entity.getProcesso().getSigilo().getTipoSigilo().getCodigo() == 1L) {
339 339 if (entity.getSigilo().getTipoSigilo().getCodigo() == 0L) {
340 340 throw new BusinessException(DocumentoGedServiceImpl.VALIDAR_NIVEL_ACESSO, CodigoErro.REGRA_NEGOCIO.getValue());
... ... @@ -344,6 +344,8 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl&lt;DocumentoGed, Lo
344 344 throw new BusinessException(DocumentoGedServiceImpl.VALIDAR_NIVEL_ACESSO, CodigoErro.REGRA_NEGOCIO.getValue());
345 345 }
346 346 }
  347 + }else{
  348 + throw new BusinessException(DocumentoGedServiceImpl.VALIDAR_NIVEL_ACESSO, CodigoErro.REGRA_NEGOCIO.getValue());
347 349 }
348 350 }
349 351  
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/InicializarEcmServiceImpl.java
... ... @@ -240,10 +240,10 @@ public class InicializarEcmServiceImpl extends UtilStartup {
240 240 menuPesquisaProcesso.setIncludes(filesPesquisaProcesso);
241 241 this.menuService.mergeIfNotExist(menuPesquisaProcesso);
242 242  
243   - Pagina pgProcessoFinalizado = new Pagina("Processo Arquivado", "/cit-ecm-web/html/processoFinalizado/processoFinalizadoList.html");
  243 + Pagina pgProcessoFinalizado = new Pagina("Processos Arquivados", "/cit-ecm-web/html/processoFinalizado/processoFinalizadoList.html");
244 244 pgProcessoFinalizado = this.paginaService.saveIfNotExist(pgProcessoFinalizado);
245 245  
246   - Menu menuProcessoFinalizado = new Menu("Processo Arquivado", pgProcessoFinalizado, menuProcesso, 2, 4, null, null, null, null, modulo, "PROCESSO_FINALIZADO");
  246 + Menu menuProcessoFinalizado = new Menu("Processos Arquivados", pgProcessoFinalizado, menuProcesso, 2, 4, null, null, null, null, modulo, "PROCESSO_FINALIZADO");
247 247 menuProcessoFinalizado.setIncludes(this.gerarArquivosMenu(menuProcessoFinalizado, this.CIT_ECM_WEB_ANGULAR, "ProcessoFinalizado", false, true, false));
248 248 this.menuService.mergeIfNotExist(menuProcessoFinalizado);
249 249  
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/ProcessoServiceImpl.java
... ... @@ -19,9 +19,6 @@ import org.springframework.beans.factory.annotation.Qualifier;
19 19 import org.springframework.stereotype.Service;
20 20 import org.springframework.validation.Validator;
21 21  
22   -import com.googlecode.genericdao.search.ISearch;
23   -import com.googlecode.genericdao.search.SearchResult;
24   -
25 22 import br.com.centralit.api.dao.ProcessoDao;
26 23 import br.com.centralit.api.model.DocumentoGed;
27 24 import br.com.centralit.api.model.EstruturaOrganizacionalECM;
... ...
cit-ecm-web/src/main/java/br/com/centralit/controller/ProcessoController.java
... ... @@ -11,7 +11,6 @@ import org.springframework.web.bind.annotation.RequestParam;
11 11 import org.springframework.web.bind.annotation.ResponseBody;
12 12  
13 13 import br.com.centralit.api.framework.json.ViewsEcm;
14   -import br.com.centralit.api.model.PlanoClassificacao;
15 14 import br.com.centralit.api.model.Processo;
16 15 import br.com.centralit.api.service.ProcessoService;
17 16 import br.com.centralit.api.service.UsuarioService;
... ...
cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java
... ... @@ -138,7 +138,7 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
138 138 list.add(new AcaoHistoricoAlteracaoProcesso("ENVIAR_PROCESSO", "Enviar Processo", "O processo foi enviado para a <<unidade>>."));
139 139 list.add(new AcaoHistoricoAlteracaoProcesso("JUSTIFICATIVA_ACAO_PROCESSO", "Justificativa", "<<acao>> , protocolo <<protocolo>>. Justificativa: <<justificativa>>."));
140 140 list.add(new AcaoHistoricoAlteracaoProcesso("ACAO_PROCESSO", "Ação", "<<acao>> , protocolo <<protocolo>>."));
141   - list.add(new AcaoHistoricoAlteracaoProcesso("VALIDAR_PROCESSO", "Validar Processo", "O processo <<protocolo>> foi validado e seus documentos."));
  141 + list.add(new AcaoHistoricoAlteracaoProcesso("VALIDAR_PROCESSO", "Validar Processo", "O processo <<protocolo>> e seus documentos foram validados de acordo com seu nível de acesso."));
142 142 list.add(new AcaoHistoricoAlteracaoProcesso("ATRIBUICAO_PROCESSO", "Atribuição de processo", "O processo <<protocolo>> foi atribuido para <<usuario>>."));
143 143 list.add(new AcaoHistoricoAlteracaoProcesso("ASSINAR_DOCUMENTO", "Assinatura de documento", "O documento <<tipo_documento>> <<numero_documento>> foi assinado por <<usuario>>."));
144 144 list.add(new AcaoHistoricoAlteracaoProcesso("ATUALIZAR_ANDAMENTO_PROCESSO", "Atualização de Andamento do Processo", "Situação do processo alterada para <<situacao>>."));
... ... @@ -298,7 +298,7 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
298 298 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.NOVOPROCESSO", " Novo Processo", dominio, modulo));
299 299 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.TIPOPROTOCOLO", "Tipo de Protocolo", dominio, modulo));
300 300 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.TOTAL_ITENS_HISTORICO", "Total de históricos", dominio, modulo));
301   - internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.VERSAO_ATUAL", "Versão Atual", dominio, modulo));
  301 + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.VERSAO_ATUAL", "Versão atual", dominio, modulo));
302 302 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.VERSAO_DOCUMENTO", "Versões do documento", dominio, modulo));
303 303 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.VERSAO_INTERMEDIARIA", "Versão Intermediária", dominio, modulo));
304 304 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.VERSOESDODOCUMENTO", "Versões do Documento", dominio, modulo));
... ... @@ -378,7 +378,7 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
378 378 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.OBJETO", "Objeto", dominio, modulo));
379 379 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ATRIBUIDOA", "Atribuído a", dominio, modulo));
380 380 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.UNIDADE_GERADORA", "Unidade gestora", dominio, modulo));
381   - internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.PRAZO_TEMPORALIDADE", "Unidade gestora", dominio, modulo));
  381 + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.PRAZO_TEMPORALIDADE", "Prazo temporalidade", dominio, modulo));
382 382 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.CLASSIFICACAO_ARQUIVISTICA", "Classificação Arquivística (Assunto)", dominio, modulo));
383 383 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.CRIADO_EM", "Criado em", dominio, modulo));
384 384 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.DATA_CONCLUSAO", "Data conclusão", dominio, modulo));
... ... @@ -414,7 +414,7 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
414 414 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.CAPTURAR", "Capturar", dominio, modulo));
415 415 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.HISTORICO_DE_ATRIBUICAO", "Histórico de atribuição", dominio, modulo));
416 416 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.DATA_ATRIBUICAO", "Data da atribuição", dominio, modulo));
417   - internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ATRIBUIDO_NOME", "Atribuído", dominio, modulo));
  417 + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ATRIBUIDO_NOME", "Atribuído a", dominio, modulo));
418 418 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ATRIBUIDO_POR", "Atribuído por", dominio, modulo));
419 419 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.REMOVIDO_POR", "Removido por", dominio, modulo));
420 420 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.DATA_REMOCAO", "Data remoção", dominio, modulo));
... ... @@ -556,7 +556,6 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
556 556 internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.PROCESSO_SEM_DOCUMENTO_ENVIO_UNIDADE", "Para enviar o processo é necessário incluir documento ao mesmo", dominio, modulo));
557 557 internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.UNIDADE_SEM_GRUPO_PADRAO", "Não é possível enviar o processo para unidade selecionada. Motivo: Grupo padrão não contém usuário(s)!", dominio, modulo));
558 558 internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.CONFIRMA_CONCLUIR_UNIDADE", "Concluir processo nesta unidade?", dominio, modulo));
559   - internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.PROCESSO_ENVIADO_SUCESSO", "Processo enviado com sucesso!", dominio, modulo));
560 559 internacionalizacaoList.add(new Internacionalizacao("ECM.MSG_HISTORICO_ECM.VALIDAR_PROCESSO", "Validar Processo", dominio, modulo));
561 560 internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.EXISTE_PROCESSO_ABERTO", "Existe um processo aberto, deseja fechá-lo?", dominio, modulo));
562 561 internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.ATRIBUICAO_PRIMEIRO_ACESSO", "Esté processo foi atribuido para você", dominio, modulo));
... ...
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/ClassificarDocumentoProcessoListController.js
... ... @@ -17,7 +17,7 @@ citApp.controller(&#39;ClassificarDocumentoProcessoListController&#39;, [&#39;$scope&#39;, &#39;Proc
17 17 fields: ['id', 'nup', 'sigiloOriginal.tipoSigilo.descricao', 'sigilo.tipoSigilo.descricao', 'prazoSigilo'],
18 18 filters : [{type : 'string', field : 'nup' },
19 19 {type : 'string', field : 'sigiloOriginal.tipoSigilo.descricao' } ,
20   - {type : 'string', field : 'sigilo.tipoSigilo.descricao', comparison : 'nn'},
  20 + {type : 'string', field : 'sigilo.tipoSigilo.descricao'},
21 21 {type : 'date', field : 'prazoSigilo' }]
22 22 };
23 23  
... ...
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/ProcessoFinalizadoListController.js
... ... @@ -14,7 +14,7 @@ citApp.controller(&#39;ProcessoFinalizadoListController&#39;, [&#39;$scope&#39;, &#39;ProcessoReposi
14 14 $scope.filterCriteria = {
15 15 start : 1,
16 16 dir : 'asc',
17   - sort : 'id',
  17 + sort : 'dataConclusao',
18 18 limit : 10,
19 19 fields: ['nup', 'tipoProcesso.nome', 'assunto.nome', 'nivelAcesso.nivelAcesso.descricao', 'dataCriacao', 'dataConclusao', 'temporalidade.dataFimTemporalidade', 'temporalidade.tipoDestinacao.descricao'],
20 20 filters : [{type : 'string', field : 'nup' },
... ...