Commit 56ee39eeb2f5abed920a34dac782fd2204f006ab
1 parent
b89d7cdd
Exists in
master
Assinar documento digital
Showing
9 changed files
with
216 additions
and
68 deletions
Show diff stats
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<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<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('ClassificarDocumentoProcessoListController', ['$scope', '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('ProcessoFinalizadoListController', ['$scope', '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' }, | ... | ... |