1
2
3
4 package ecar.dao;
5
6 import java.util.ArrayList;
7 import java.util.Collections;
8 import java.util.Comparator;
9 import java.util.HashSet;
10 import java.util.Iterator;
11 import java.util.List;
12 import java.util.Set;
13
14 import javax.print.PrintException;
15 import javax.servlet.http.HttpServletRequest;
16
17 import org.apache.log4j.Logger;
18 import org.hibernate.HibernateException;
19 import org.hibernate.Transaction;
20
21 import comum.database.Dao;
22 import comum.util.Data;
23 import comum.util.Pagina;
24
25 import ecar.exception.ECARException;
26 import ecar.login.SegurancaECAR;
27 import ecar.permissao.ValidaPermissao;
28 import ecar.pojo.AcompReferenciaAref;
29 import ecar.pojo.EstAtribTipoAcompEata;
30 import ecar.pojo.EstruturaEtt;
31 import ecar.pojo.OrgaoOrg;
32 import ecar.pojo.SisAtributoSatb;
33 import ecar.pojo.SituacaoSit;
34 import ecar.pojo.TipoAcompFuncAcompPK;
35 import ecar.pojo.TipoAcompFuncAcompTafc;
36 import ecar.pojo.TipoAcompanhamentoTa;
37 import ecar.pojo.TipoFuncAcompTpfa;
38 import ecar.util.Dominios;
39
40
41
42
43 public class TipoAcompanhamentoDao extends Dao {
44
45 public TipoAcompanhamentoDao() {
46 super();
47 }
48
49
50
51
52 public TipoAcompanhamentoDao(HttpServletRequest request) {
53 super();
54 this.request = request;
55 }
56
57
58
59
60
61
62
63 public List getTipoAcompanhamentoAtivosBySeqApresentacao() throws ECARException {
64 List retorno = new ArrayList();
65
66 TipoAcompanhamentoTa ta = new TipoAcompanhamentoTa();
67
68 ta.setIndAtivoTa("S");
69
70 retorno = this.pesquisar(ta, new String[] { "seqApresentacaoTa", "asc" });
71
72 return retorno;
73
74 }
75
76
77
78
79
80
81
82
83
84 public void setTipoAcompanhamento(HttpServletRequest request, TipoAcompanhamentoTa tipoAcomp, boolean usarGetParamStr) throws NumberFormatException, ECARException {
85
86 if (usarGetParamStr) {
87 tipoAcomp.setDescricaoTa(Pagina.getParamStr(request, "descricaoTa").trim());
88
89
90
91 if (!Pagina.getParamStr(request, "indMonitoramentoTa").trim().equals("")) {
92 tipoAcomp.setIndMonitoramentoTa(Pagina.getParamStr(request, "indMonitoramentoTa").trim());
93 }
94 else {
95 tipoAcomp.setIndMonitoramentoTa(Pagina.NAO);
96 }
97 if (!Pagina.getParamStr(request, "indNaoMonitoramentoTa").trim().equals("")) {
98 tipoAcomp.setIndNaoMonitoramentoTa(Pagina.getParamStr(request, "indNaoMonitoramentoTa").trim());
99 }
100 else {
101 tipoAcomp.setIndNaoMonitoramentoTa(Pagina.NAO);
102 }
103 if (!Pagina.getParamStr(request, "indSepararOrgaoTa").trim().equals("")) {
104 tipoAcomp.setIndSepararOrgaoTa(Pagina.getParamStr(request, "indSepararOrgaoTa").trim());
105 }
106 else {
107 tipoAcomp.setIndSepararOrgaoTa(Pagina.NAO);
108 }
109 if (!Pagina.getParamStr(request, "indAtivoTa").trim().equals("")) {
110 tipoAcomp.setIndAtivoTa(Pagina.getParamStr(request, "indAtivoTa").trim());
111 }
112 else {
113 tipoAcomp.setIndAtivoTa(Pagina.NAO);
114 }
115 if (!Pagina.getParamStr(request, "indLiberarAcompTa").trim().equals("")) {
116 tipoAcomp.setIndLiberarAcompTa(Pagina.getParamStr(request, "indLiberarAcompTa").trim());
117 }
118 else {
119 tipoAcomp.setIndLiberarAcompTa(Pagina.NAO);
120 }
121 }
122 else {
123 tipoAcomp.setDescricaoTa(Pagina.getParam(request, "descricaoTa"));
124 tipoAcomp.setIndMonitoramentoTa(Pagina.getParam(request, "indMonitoramentoTa"));
125 tipoAcomp.setIndNaoMonitoramentoTa(Pagina.getParam(request, "indNaoMonitoramentoTa"));
126 tipoAcomp.setIndSepararOrgaoTa(Pagina.getParam(request, "indSepararOrgaoTa"));
127 tipoAcomp.setIndAtivoTa(Pagina.getParam(request, "indAtivoTa"));
128 tipoAcomp.setIndLiberarAcompTa(Pagina.getParam(request, "indLiberarAcompTa"));
129 }
130
131 if (Pagina.getParam(request, "seqApresentacaoTa") != null)
132 tipoAcomp.setSeqApresentacaoTa(Long.valueOf(Pagina.getParamLong(request, "seqApresentacaoTa")));
133 else
134 tipoAcomp.setSeqApresentacaoTa(null);
135
136 if (Pagina.getParam(request, "estruturaEtt") != null) {
137 EstruturaEtt menorEtt = (EstruturaEtt) new EstruturaDao(request).buscar(EstruturaEtt.class, Long.valueOf(Pagina.getParamStr(request, "estruturaEtt")));
138 tipoAcomp.setEstruturaEtt(menorEtt);
139 }
140 else
141 tipoAcomp.setEstruturaEtt(null);
142
143 if (Pagina.getParam(request, "estruturaEttAcomp") != null) {
144 EstruturaEtt estruturaEttAcomp = (EstruturaEtt) new EstruturaDao(request).buscar(EstruturaEtt.class, Long.valueOf(Pagina.getParamStr(request, "estruturaEttAcomp")));
145 tipoAcomp.setEstruturaNivelGeracaoTa(estruturaEttAcomp);
146 }
147 else
148 tipoAcomp.setEstruturaNivelGeracaoTa(null);
149
150 setSituacaoSits(tipoAcomp, request);
151
152 setNiveisPlanejamento(tipoAcomp, request);
153 }
154
155
156
157
158
159
160
161
162
163 public void setNiveisPlanejamento(TipoAcompanhamentoTa tipoAcomp, HttpServletRequest request) throws NumberFormatException, ECARException {
164 String[] niveis = request.getParameterValues("nivel");
165 tipoAcomp.setSisAtributoSatbs(new HashSet());
166 List lista = new ArrayList();
167
168 if (niveis != null) {
169 for (int i = 0; i < niveis.length; i++) {
170 SisAtributoSatb nivel = (SisAtributoSatb) this.buscar(SisAtributoSatb.class, Long.valueOf(niveis[i]));
171 lista.add(nivel);
172 }
173 }
174
175 tipoAcomp.getSisAtributoSatbs().addAll(lista);
176 }
177
178
179
180
181
182
183
184
185
186 public void setSituacaoSits(TipoAcompanhamentoTa tipoAcomp, HttpServletRequest request) throws NumberFormatException, ECARException {
187 String[] situacoes = request.getParameterValues("situacao");
188 tipoAcomp.setSituacaoSits(new HashSet());
189 List lista = new ArrayList();
190
191 if (situacoes != null) {
192 for (int i = 0; i < situacoes.length; i++) {
193 SituacaoSit situacaoSit = (SituacaoSit) this.buscar(SituacaoSit.class, Long.valueOf(situacoes[i]));
194 lista.add(situacaoSit);
195 }
196 }
197 tipoAcomp.getSituacaoSits().addAll(lista);
198 }
199
200
201
202
203
204
205
206
207
208
209 public void setTpFuncAcompanhamento(TipoAcompanhamentoTa tipoAcomp, HttpServletRequest request) throws NumberFormatException, ECARException {
210 TipoFuncAcompDao tipoFuncAcompDao = new TipoFuncAcompDao(request);
211 List lFuncAcomp = tipoFuncAcompDao.getTipoFuncAcompEmitePosicao();
212 List lista = new ArrayList();
213 tipoAcomp.setTipoAcompFuncAcompTafcs(new HashSet());
214
215 for (Iterator itFuncAcomp = lFuncAcomp.iterator(); itFuncAcomp.hasNext();) {
216
217 TipoFuncAcompTpfa funcao = (TipoFuncAcompTpfa) itFuncAcomp.next();
218
219
220
221
222
223 if ("OBR".equals(Pagina.getParamStr(request, "indObrigatorioOpcional" + funcao.getCodTpfa())) || "OPC".equals(Pagina.getParamStr(request, "indObrigatorioOpcional" + funcao.getCodTpfa()))) {
224
225 TipoAcompFuncAcompPK chave = new TipoAcompFuncAcompPK();
226 chave.setCodTpfa(funcao.getCodTpfa());
227 TipoAcompFuncAcompTafc tafc = new TipoAcompFuncAcompTafc();
228 tafc.setComp_id(chave);
229
230
231
232
233
234
235
236
237
238
239 if ("OBR".equals(Pagina.getParamStr(request, "indObrigatorioOpcional" + funcao.getCodTpfa()))) {
240 tafc.setIndObrigatorio("S");
241 }
242 else {
243 tafc.setIndObrigatorio("N");
244 }
245 if ("OPC".equals(Pagina.getParamStr(request, "indObrigatorioOpcional" + funcao.getCodTpfa()))) {
246 tafc.setIndOpcional("S");
247 }
248 else {
249 tafc.setIndOpcional("N");
250 }
251 if (!"".equals(Pagina.getParamStr(request, "indRegistroPosicao" + funcao.getCodTpfa()))) {
252 tafc.setIndRegistroPosicaoTafc(Pagina.getParamStr(request, "indRegistroPosicao" + funcao.getCodTpfa()));
253
254 }
255 else {
256 tafc.setIndRegistroPosicaoTafc(null);
257 }
258
259 lista.add(tafc);
260 }
261 }
262
263 tipoAcomp.getTipoAcompFuncAcompTafcs().addAll(lista);
264 }
265
266
267
268
269
270
271
272
273
274
275 public List getTpFuncAcompanhamento(TipoAcompanhamentoTa tipoAcomp, HttpServletRequest request) throws NumberFormatException, ECARException {
276 TipoFuncAcompDao tipoFuncAcompDao = new TipoFuncAcompDao(request);
277 List lFuncAcomp = tipoFuncAcompDao.getTipoFuncAcompEmitePosicao();
278 List lista = new ArrayList();
279
280 for (Iterator itFuncAcomp = lFuncAcomp.iterator(); itFuncAcomp.hasNext();) {
281 TipoFuncAcompTpfa funcao = (TipoFuncAcompTpfa) itFuncAcomp.next();
282
283
284
285
286
287
288 TipoAcompFuncAcompPK chave = new TipoAcompFuncAcompPK();
289 chave.setCodTpfa(funcao.getCodTpfa());
290 TipoAcompFuncAcompTafc tafc = new TipoAcompFuncAcompTafc();
291 tafc.setComp_id(chave);
292
293 if ("OBR".equals(Pagina.getParamStr(request, "indObrigatorioOpcional" + funcao.getCodTpfa()))) {
294 tafc.setIndObrigatorio("S");
295 }
296 else {
297 tafc.setIndObrigatorio("N");
298 }
299 if ("OPC".equals(Pagina.getParamStr(request, "indObrigatorioOpcional" + funcao.getCodTpfa()))) {
300 tafc.setIndOpcional("S");
301 }
302 else {
303 tafc.setIndOpcional("N");
304 }
305
306 if ("OBR".equals(Pagina.getParamStr(request, "indObrigatorioOpcional" + funcao.getCodTpfa())) || "OPC".equals(Pagina.getParamStr(request, "indObrigatorioOpcional" + funcao.getCodTpfa()))) {
307
308 if (!"".equals(Pagina.getParamStr(request, "indRegistroPosicao" + funcao.getCodTpfa()))) {
309 tafc.setIndRegistroPosicaoTafc(Pagina.getParamStr(request, "indRegistroPosicao" + funcao.getCodTpfa()));
310
311 }
312 else {
313 tafc.setIndRegistroPosicaoTafc(null);
314 }
315 }
316 lista.add(tafc);
317 }
318
319 return lista;
320 }
321
322
323
324
325
326
327
328
329 public List getNiveisPlanejamento(HttpServletRequest request) throws NumberFormatException, ECARException {
330 String[] niveis = request.getParameterValues("nivel");
331 List lista = new ArrayList();
332
333 for (int i = 0; i < niveis.length; i++) {
334 SisAtributoSatb nivel = (SisAtributoSatb) this.buscar(SisAtributoSatb.class, Long.valueOf(niveis[i]));
335 lista.add(nivel);
336 }
337
338 return lista;
339 }
340
341
342
343
344
345
346 public void excluir(TipoAcompanhamentoTa tipoAcomp) throws ECARException {
347 Transaction tx = null;
348
349 try {
350 boolean excluir = true;
351
352 if (contarLong(tipoAcomp.getAcompReferenciaArefs()) > 0) {
353 excluir = false;
354 AcompReferenciaAref ocorrencia = (AcompReferenciaAref) new ArrayList(tipoAcomp.getAcompReferenciaArefs()).get(0);
355 throw new ECARException("tipoAcompanhamento.exclusao.erro.existeAref", null, new String[] { ocorrencia.getNomeAref() });
356 }
357
358 if (contarLong(tipoAcomp.getEstAtribTipoAcompEatas()) > 0) {
359 excluir = false;
360 EstAtribTipoAcompEata estAtribTipoAcompEata = (EstAtribTipoAcompEata) new ArrayList(tipoAcomp.getEstAtribTipoAcompEatas()).get(0);
361 throw new ECARException("tipoAcompanhamento.exclusao.erro.existeEata", null, new String[] {});
362 }
363
364 if (excluir) {
365 ArrayList objetos = new ArrayList();
366 super.inicializarLogBean();
367
368 tx = session.beginTransaction();
369
370 for (Iterator itEXC = tipoAcomp.getTipoAcompFuncAcompTafcs().iterator(); itEXC.hasNext();) {
371 TipoAcompFuncAcompTafc tafc = (TipoAcompFuncAcompTafc) itEXC.next();
372 session.delete(tafc);
373 objetos.add(tafc);
374 }
375
376
377
378
379
380
381
382
383
384 session.delete(tipoAcomp);
385 objetos.add(tipoAcomp);
386
387 tx.commit();
388
389 if (super.logBean != null) {
390 super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
391 super.logBean.setOperacao("EXC");
392
393 for (Iterator itObj = objetos.iterator(); itObj.hasNext();) {
394 super.logBean.setObj(itObj.next());
395 super.loggerAuditoria.info(logBean.toString());
396 }
397 }
398 }
399 } catch (HibernateException he) {
400 if (tx != null)
401 try {
402 tx.rollback();
403 } catch (HibernateException r) {
404 this.logger.error(r);
405 throw new ECARException("erro.hibernateException");
406 }
407 this.logger.error(he);
408 throw new ECARException("erro.hibernateException");
409 }
410 }
411
412
413
414
415
416
417
418 public List getTipoFuncaoAcompanhamento(TipoAcompanhamentoTa ta) throws ECARException {
419 List retorno = new ArrayList();
420
421 if (ta.getTipoAcompFuncAcompTafcs() != null) {
422
423 for (Iterator it = ta.getTipoAcompFuncAcompTafcs().iterator(); it.hasNext();) {
424 TipoAcompFuncAcompTafc tafc = (TipoAcompFuncAcompTafc) it.next();
425 retorno.add(tafc.getTipoFuncAcompTpfa());
426 }
427 }
428
429 return retorno;
430 }
431
432
433
434
435
436
437
438 public void salvar(TipoAcompanhamentoTa tipoAcomp, List listaTafc) throws ECARException {
439 Transaction tx = null;
440 try {
441 ArrayList objetos = new ArrayList();
442 super.inicializarLogBean();
443
444 tx = session.beginTransaction();
445
446 session.save(tipoAcomp);
447 objetos.add(tipoAcomp);
448
449 for (Iterator it = listaTafc.iterator(); it.hasNext();) {
450 TipoAcompFuncAcompTafc tafc = (TipoAcompFuncAcompTafc) it.next();
451 tafc.getComp_id().setCodTa(tipoAcomp.getCodTa());
452 session.save(tafc);
453 objetos.add(tafc);
454 }
455
456 tx.commit();
457
458 if (super.logBean != null) {
459 super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
460 super.logBean.setOperacao("INC");
461
462 for (Iterator itObj = objetos.iterator(); itObj.hasNext();) {
463 super.logBean.setObj(itObj.next());
464 super.loggerAuditoria.info(logBean.toString());
465 }
466 }
467 } catch (HibernateException he) {
468 if (tx != null)
469 try {
470 tx.rollback();
471 } catch (HibernateException r) {
472 this.logger.error(r);
473 throw new ECARException("erro.hibernateException");
474 }
475 this.logger.error(he);
476 throw new ECARException("erro.hibernateException");
477 }
478 }
479
480
481
482
483
484
485
486 public void alterar(TipoAcompanhamentoTa tipoAcomp, List listaTafc) throws ECARException {
487 Transaction tx = null;
488 try {
489 ArrayList objetos = new ArrayList();
490 super.inicializarLogBean();
491
492 tx = session.beginTransaction();
493
494 session.update(tipoAcomp);
495 objetos.add(tipoAcomp);
496
497 for (Iterator itEXC = tipoAcomp.getTipoAcompFuncAcompTafcs().iterator(); itEXC.hasNext();) {
498 TipoAcompFuncAcompTafc tafc = (TipoAcompFuncAcompTafc) itEXC.next();
499 session.delete(tafc);
500 objetos.add(tafc);
501 }
502
503 for (Iterator itTafc = listaTafc.iterator(); itTafc.hasNext();) {
504 TipoAcompFuncAcompTafc tafc = (TipoAcompFuncAcompTafc) itTafc.next();
505 tafc.getComp_id().setCodTa(tipoAcomp.getCodTa());
506 session.save(tafc);
507 objetos.add(tafc);
508 }
509
510 tx.commit();
511
512 if (super.logBean != null) {
513 super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
514 super.logBean.setOperacao("INC_ALT_EXC");
515
516 for (Iterator itObj = objetos.iterator(); itObj.hasNext();) {
517 super.logBean.setObj(itObj.next());
518 super.loggerAuditoria.info(logBean.toString());
519 }
520 }
521 } catch (HibernateException he) {
522 if (tx != null)
523 try {
524 tx.rollback();
525 } catch (HibernateException r) {
526 this.logger.error(r);
527 throw new ECARException("erro.hibernateException");
528 }
529 this.logger.error(he);
530 throw new ECARException("erro.hibernateException");
531 }
532 }
533
534
535
536
537
538
539
540 public List pesquisar(TipoAcompanhamentoTa tipoAcomp) throws ECARException {
541 Set setResultadoParcial = new HashSet();
542 Set setResultadoFinal = new HashSet();
543 Set setResultadoSituacao = new HashSet();
544
545
546 List pesquisa = super.pesquisar(tipoAcomp, null);
547
548
549
550
551
552
553
554 if (tipoAcomp != null && tipoAcomp.getSisAtributoSatbs() != null && tipoAcomp.getSisAtributoSatbs().size() > 0) {
555
556 for (Iterator itPes = pesquisa.iterator(); itPes.hasNext();) {
557 TipoAcompanhamentoTa tipoAcompPes = (TipoAcompanhamentoTa) itPes.next();
558
559 for (Iterator itSisAt = tipoAcomp.getSisAtributoSatbs().iterator(); itSisAt.hasNext();) {
560 SisAtributoSatb sisAt = (SisAtributoSatb) itSisAt.next();
561 if (tipoAcompPes.getSisAtributoSatbs().contains(sisAt)) {
562 setResultadoParcial.add(tipoAcompPes);
563 }
564 }
565 }
566 }
567 else {
568
569 setResultadoParcial.addAll(pesquisa);
570 }
571
572
573 if (tipoAcomp.getSituacaoSits() != null && tipoAcomp.getSituacaoSits().size() > 0) {
574
575 for (Iterator itPes = setResultadoParcial.iterator(); itPes.hasNext();) {
576 TipoAcompanhamentoTa tipoAcompPes = (TipoAcompanhamentoTa) itPes.next();
577
578 for (Iterator itSit = tipoAcomp.getSituacaoSits().iterator(); itSit.hasNext();) {
579 SituacaoSit situacaoSit = (SituacaoSit) itSit.next();
580 if (tipoAcompPes.getSituacaoSits().contains(situacaoSit)) {
581 setResultadoSituacao.add(tipoAcompPes);
582 }
583 }
584 }
585 setResultadoParcial = setResultadoSituacao;
586 }
587
588
589 if (tipoAcomp.getTipoAcompFuncAcompTafcs() != null && tipoAcomp.getTipoAcompFuncAcompTafcs().size() > 0) {
590
591 for (Iterator itRes = setResultadoParcial.iterator(); itRes.hasNext();) {
592 TipoAcompanhamentoTa tipoAcompRes = (TipoAcompanhamentoTa) itRes.next();
593
594 if (tipoAcompRes.getTipoAcompFuncAcompTafcs().size() > 0) {
595
596 for (Iterator itTaFuncRes = tipoAcompRes.getTipoAcompFuncAcompTafcs().iterator(); itTaFuncRes.hasNext();) {
597 TipoAcompFuncAcompTafc taFuncaoRes = (TipoAcompFuncAcompTafc) itTaFuncRes.next();
598
599 for (Iterator itTaFuncPesq = tipoAcomp.getTipoAcompFuncAcompTafcs().iterator(); itTaFuncPesq.hasNext();) {
600 TipoAcompFuncAcompTafc taFuncaoPes = (TipoAcompFuncAcompTafc) itTaFuncPesq.next();
601
602
603 if (taFuncaoRes.getTipoFuncAcompTpfa().getCodTpfa().equals(taFuncaoPes.getComp_id().getCodTpfa()) && taFuncaoRes.getIndObrigatorio().equals(taFuncaoPes.getIndObrigatorio()) && taFuncaoRes.getIndOpcional().equals(taFuncaoPes.getIndOpcional())) {
604 setResultadoFinal.add(tipoAcompRes);
605 }
606 }
607 }
608 }
609 }
610 }
611 else {
612 setResultadoFinal.addAll(setResultadoParcial);
613 }
614
615 List resultado = new ArrayList();
616 resultado.addAll(setResultadoFinal);
617
618
619 Collections.sort(resultado, new Comparator() {
620 public int compare(Object o1, Object o2) {
621 return ((TipoAcompanhamentoTa) o1).getCodTa().compareTo(((TipoAcompanhamentoTa) o2).getCodTa());
622 }
623 });
624
625 return resultado;
626 }
627
628
629
630
631
632
633
634
635 public List getTipoAcompanhamentoAtivosComAcompanhamentoBySeqApresentacao() throws ECARException {
636 try {
637 return this.getSession().
638 createQuery("select distinct ta from TipoAcompanhamentoTa ta " + "join ta.acompReferenciaArefs " + "where ta.indAtivoTa = :ativo " + "order by ta.seqApresentacaoTa")
639 .setString("ativo", Dominios.ATIVO)
640 .list();
641
642 }catch (Exception e) {
643 this.logger.error(e);
644 throw new ECARException(e);
645 }
646 }
647
648
649
650
651
652
653
654 public List getTipoAcompanhamentoAtivosByDescricao() throws ECARException {
655
656 TipoAcompanhamentoTa ta = new TipoAcompanhamentoTa();
657
658 ta.setIndAtivoTa(Dominios.ATIVO);
659
660 return this.pesquisar(ta, new String[] { "descricaoTa", "asc" });
661 }
662
663
664
665
666
667
668
669 public List getTipoAcompanhamentoComAcesso(SegurancaECAR seguranca) throws ECARException {
670 try {
671 return this.getSession()
672 .createQuery("select distinct ta " + "from TipoAcompanhamentoTa ta " + "join ta.tipoAcompGrpAcessos taa " + "where taa.acessoInclusao = :inclusao " + "and ta.indAtivoTa = :ativo " + "and taa.sisAtributoSatb in (:gruposUsuario) " + "order by ta.descricaoTa")
673 .setString("inclusao", Dominios.COM_ACESSO_INCLUSAO)
674 .setString("ativo", Dominios.ATIVO)
675 .setParameterList("gruposUsuario", seguranca.getGruposAcesso())
676 .list();
677
678 } catch (HibernateException e) {
679 this.logger.error(e);
680 throw new ECARException(e);
681 }
682 }
683
684 public List getOrgaosAcessoUsuario(SegurancaECAR seguranca) throws ECARException {
685 ValidaPermissao validaPermissao = new ValidaPermissao();
686
687 List secretarias = new ArrayList();
688
689 if (validaPermissao.permissaoAcessoSecretariasUsuario(seguranca.getGruposAcesso(), Dominios.SEPARAR_ORGAO_TODOS))
690 secretarias.addAll(new OrgaoDao(null).listar(OrgaoOrg.class, new String[] { "siglaOrg", "asc" }));
691
692 else if (validaPermissao.permissaoAcessoSecretariasUsuario(seguranca.getGruposAcesso(), Dominios.SEPARAR_ORGAO_USUARIO)) {
693 secretarias.addAll(seguranca.getUsuario().getOrgaoOrgs());
694 }
695 else if (validaPermissao.permissaoAcessoSecretariasUsuario(seguranca.getGruposAcesso(), Dominios.SEPARAR_ORGAO_RESPONSABILIDADE)) {
696
697 List<Long> listaCods = new ArrayList<Long>();
698 for (Iterator it = seguranca.getGruposAcesso().iterator(); it.hasNext();) {
699 SisAtributoSatb satb = (SisAtributoSatb) it.next();
700 listaCods.add(satb.getCodSatb());
701 }
702
703 return this.getSession()
704 .createQuery("select orgao " + "from OrgaoOrg orgao " + "join orgao.itemEstruturaIettsByCodOrgaoResponsavel1Iett iett " + "join iett.itemEstrutUsuarioIettusesByCodIett iettus " + "where iettus.usuarioUsu.codUsu in (:lista) " + "and orgao.indAtivoOrg = :ativoOrg " + "and iett.indAtivoIett = :ativoIett " + "and iettus.indLeituraParecerIettus = :leituraIettus " + "order by orgao.siglaOrg ")
705 .setParameterList("lista", listaCods)
706 .setString("ativoOrg", Dominios.ATIVO)
707 .setString("ativoIett", Dominios.ATIVO)
708 .setString("indLeituraParecerIettus", Dominios.COM_ACESSO_LEITURA)
709 .list();
710 }
711
712 return secretarias;
713 }
714
715
716
717
718
719
720
721
722
723
724
725 public boolean existeAbaConfiguradaTipoAcompanhamento(TipoAcompanhamentoTa ta, Set gruposUsuario) throws ECARException {
726
727 boolean existe = true;
728 List listAbasComAcesso = null;
729
730 AbaDao abaDao = new AbaDao(this.request);
731
732
733 if (ta != null && gruposUsuario != null)
734 listAbasComAcesso = abaDao.getListaAbasComAcesso(ta, gruposUsuario);
735
736
737
738 if (listAbasComAcesso != null && listAbasComAcesso.size() < 1)
739 existe = false;
740
741 return existe;
742 }
743
744 }