1 package ecar.dao;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.Comparator;
6 import java.util.Date;
7 import java.util.HashSet;
8 import java.util.Iterator;
9 import java.util.List;
10 import java.util.Set;
11
12 import javax.servlet.http.HttpServletRequest;
13
14 import org.hibernate.HibernateException;
15 import org.hibernate.Transaction;
16
17 import comum.database.Dao;
18 import comum.util.Data;
19 import comum.util.Pagina;
20 import comum.util.Util;
21
22 import ecar.exception.ECARException;
23 import ecar.pojo.AreaAre;
24 import ecar.pojo.EstrutTpFuncAcmpEtttfa;
25 import ecar.pojo.EstruturaEtt;
26 import ecar.pojo.IettIndResulRevIettrr;
27 import ecar.pojo.IettUsutpfuacrevIettutfar;
28 import ecar.pojo.ItemEstrtIndResulIettr;
29 import ecar.pojo.ItemEstruturarevisaoIettrev;
30 import ecar.pojo.OrgaoOrg;
31 import ecar.pojo.PaiFilho;
32 import ecar.pojo.PeriodicidadePrdc;
33 import ecar.pojo.SubAreaSare;
34 import ecar.pojo.TipoFuncAcompTpfa;
35 import ecar.pojo.UnidadeOrcamentariaUO;
36 import ecar.pojo.UsuarioUsu;
37 import ecar.util.Dominios;
38
39
40
41
42
43
44
45 public class ItemEstruturarevisaoIettrevDAO extends Dao {
46
47 public ItemEstruturarevisaoIettrevDAO(HttpServletRequest request) {
48 super();
49 this.request = request;
50 }
51
52
53
54
55
56
57
58 public void excluir(String[] codigosParaExcluir) throws ECARException {
59 Transaction tx = null;
60
61 try {
62 ArrayList objetos = new ArrayList();
63
64 super.inicializarLogBean();
65
66 tx = session.beginTransaction();
67
68 for (int i = 0; i < codigosParaExcluir.length; i++) {
69 ItemEstruturarevisaoIettrev itemEstruturaRev = (ItemEstruturarevisaoIettrev) this.buscar(ItemEstruturarevisaoIettrev.class, Integer.valueOf(codigosParaExcluir[i]));
70 session.delete(itemEstruturaRev);
71 objetos.add(itemEstruturaRev);
72 }
73
74 tx.commit();
75
76 if (super.logBean != null) {
77 super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
78 super.logBean.setOperacao("EXC");
79 Iterator itObj = objetos.iterator();
80
81 while (itObj.hasNext()) {
82 super.logBean.setObj(itObj.next());
83 super.loggerAuditoria.info(logBean.toString());
84 }
85 }
86 } catch (HibernateException e) {
87 if (tx != null)
88 try {
89 tx.rollback();
90 } catch (HibernateException r) {
91 this.logger.error(r);
92 throw new ECARException("erro.hibernateException");
93 }
94 this.logger.error(e);
95 throw new ECARException("erro.hibernateException");
96 }
97 }
98
99
100
101
102
103
104
105 public List getAscendentes(ItemEstruturarevisaoIettrev itemEstrutura) {
106 List retorno = new ArrayList();
107 while (itemEstrutura.getItemEstruturarevisaoIettrev() != null) {
108 itemEstrutura = itemEstrutura.getItemEstruturarevisaoIettrev();
109 retorno.add(itemEstrutura);
110 }
111 Collections.reverse(retorno);
112 return retorno;
113 }
114
115
116
117
118
119
120
121 public List getDescendentes(ItemEstruturarevisaoIettrev itemEstrutura, boolean efetuarRefreshItemEstrutura) throws ECARException {
122 List retorno = new ArrayList();
123
124 if (efetuarRefreshItemEstrutura) {
125
126
127
128
129
130 try {
131 this.session.refresh(itemEstrutura);
132 } catch (HibernateException e) {
133 this.logger.error(e);
134 throw new ECARException(e);
135 }
136 }
137
138 if (itemEstrutura.getItemEstruturarevisaoIettrevs() != null) {
139
140 Iterator it = itemEstrutura.getItemEstruturarevisaoIettrevs().iterator();
141 while (it.hasNext()) {
142 ItemEstruturarevisaoIettrev itemEstruturaFilho = (ItemEstruturarevisaoIettrev) it.next();
143
144 if (!retorno.contains(itemEstruturaFilho))
145 retorno.add(itemEstruturaFilho);
146 retorno.addAll(this.getDescendentes(itemEstruturaFilho, efetuarRefreshItemEstrutura));
147 }
148 }
149 return retorno;
150 }
151
152
153
154
155
156
157
158 public void setItemEstruturaRevisao(HttpServletRequest request, ItemEstruturarevisaoIettrev itemEstruturaRev) throws ECARException {
159
160 if (!"".equals(Pagina.getParamStr(request, "codIettrevPai")))
161 itemEstruturaRev.setItemEstruturarevisaoIettrev((ItemEstruturarevisaoIettrev) this.buscar(ItemEstruturarevisaoIettrev.class, Long.valueOf(Pagina.getParamStr(request, "codIettrevPai"))));
162
163 if (!"".equals(Pagina.getParamStr(request, "codIettrev")))
164 itemEstruturaRev.setCodIettrev(Long.valueOf(Pagina.getParamStr(request, "codIettrev")));
165 if (!"".equals(Pagina.getParamStr(request, "codEtt")))
166 itemEstruturaRev.setEstruturaEttrev((EstruturaEtt) new EstruturaDao(request).buscar(EstruturaEtt.class, Long.valueOf(Pagina.getParamStr(request, "codEtt"))));
167
168 itemEstruturaRev.setSiglaIettrev(Pagina.getParamStr(request, "siglaIettrev"));
169
170 itemEstruturaRev.setNomeIettrev(Pagina.getParamStr(request, "nomeIettrev"));
171 itemEstruturaRev.setDescricaoIettrev(Pagina.getParamStr(request, "descricaoIettrev"));
172 itemEstruturaRev.setOrigemIettrev(Pagina.getParamStr(request, "origemIettrev"));
173 itemEstruturaRev.setIndMonitoramentoIettrev(Pagina.getParamStr(request, "indMonitoramentoIettrev"));
174 itemEstruturaRev.setIndBloqPlanejamentoIettrev(Pagina.getParamStr(request, "indBloqPlanejamentoIettrev"));
175 itemEstruturaRev.setObjetivoGeralIettrev(Pagina.getParamStr(request, "objetivoGeralIettrev"));
176 itemEstruturaRev.setObjetivoEspecificoIettrev(Pagina.getParamStr(request, "objetivoEspecificoIettrev"));
177 itemEstruturaRev.setBeneficiosIettrev(Pagina.getParamStr(request, "beneficiosIettrev"));
178 itemEstruturaRev.setJustificativaIettrev(Pagina.getParamStr(request, "justificativaIettrev"));
179 itemEstruturaRev.setSituacaoIettrev(Pagina.getParamStr(request, "situacaoIettrev"));
180
181
182 itemEstruturaRev.setNivelIettrev(Integer.valueOf(getNivel(itemEstruturaRev)));
183
184 if (!"".equals(Pagina.getParamStr(request, "dataInicioIettrev")))
185 itemEstruturaRev.setDataInicioIettrev(Pagina.getParamDataBanco(request, "dataInicioIettrev"));
186 else
187 itemEstruturaRev.setDataInicioIettrev(null);
188
189 if (!"".equals(Pagina.getParamStr(request, "dataTerminoIettrev")))
190 itemEstruturaRev.setDataTerminoIettrev(Pagina.getParamDataBanco(request, "dataTerminoIettrev"));
191 else
192 itemEstruturaRev.setDataTerminoIettrev(null);
193
194 if (!"".equals(Pagina.getParamStr(request, "areaArerev")))
195 itemEstruturaRev.setAreaArerev((AreaAre) new AreaDao(request).buscar(AreaAre.class, Long.valueOf(Pagina.getParamStr(request, "areaArerev"))));
196 else
197 itemEstruturaRev.setAreaArerev(null);
198
199 if (!"".equals(Pagina.getParamStr(request, "subAreaSarerev")))
200 itemEstruturaRev.setSubAreaSarerev((SubAreaSare) new SubAreaDao(request).buscar(SubAreaSare.class, Long.valueOf(Pagina.getParamStr(request, "subAreaSarerev"))));
201 else
202 itemEstruturaRev.setSubAreaSarerev(null);
203
204 if (!"".equals(Pagina.getParamStr(request, "unidadeOrcamentariaUorev")))
205 itemEstruturaRev.setUnidadeOrcamentariaUorev((UnidadeOrcamentariaUO) new UnidadeOrcamentariaDao(request).buscar(UnidadeOrcamentariaUO.class, Long.valueOf(Pagina.getParamStr(request, "unidadeOrcamentariaUorev"))));
206 else
207 itemEstruturaRev.setUnidadeOrcamentariaUorev(null);
208
209 if (!"".equals(Pagina.getParamStr(request, "orgaoOrgByCodOrgaoResponsavel1Iettrev")))
210 itemEstruturaRev.setOrgaoOrgByCodOrgaoResponsavel1Iettrev((OrgaoOrg) new OrgaoDao(request).buscar(OrgaoOrg.class, Long.valueOf(Pagina.getParamStr(request, "orgaoOrgByCodOrgaoResponsavel1Iettrev"))));
211 else
212 itemEstruturaRev.setOrgaoOrgByCodOrgaoResponsavel1Iettrev(null);
213
214 if (!"".equals(Pagina.getParamStr(request, "orgaoOrgByCodOrgaoResponsavel2Iettrev")))
215 itemEstruturaRev.setOrgaoOrgByCodOrgaoResponsavel2Iettrev((OrgaoOrg) new OrgaoDao(request).buscar(OrgaoOrg.class, Long.valueOf(Pagina.getParamStr(request, "orgaoOrgByCodOrgaoResponsavel2Iettrev"))));
216 else
217 itemEstruturaRev.setOrgaoOrgByCodOrgaoResponsavel2Iettrev(null);
218
219 if (!"".equals(Pagina.getParamStr(request, "periodicidadePrdcrev")))
220 itemEstruturaRev.setPeriodicidadePrdcrev((PeriodicidadePrdc) new PeriodicidadeDao(request).buscar(PeriodicidadePrdc.class, Long.valueOf(Pagina.getParamStr(request, "periodicidadePrdcrev"))));
221 else
222 itemEstruturaRev.setPeriodicidadePrdcrev(null);
223
224 itemEstruturaRev.setIndCriticaIettrev(Pagina.getParamStr(request, "indCriticaIettrev"));
225 if (!"".equals(Pagina.getParamStr(request, "valPrevistoFuturoIettrev")))
226 itemEstruturaRev.setValPrevistoFuturoIettrev(Double.valueOf(Util.formataNumero(Pagina.getParamStr(request, "valPrevistoFuturoIettrev"))));
227 else
228 itemEstruturaRev.setValPrevistoFuturoIettrev(null);
229
230 if (!"".equals(Pagina.getParamStr(request, "dataR1rev")))
231 itemEstruturaRev.setDataR1rev(Pagina.getParamDataBanco(request, "dataR1rev"));
232 else
233 itemEstruturaRev.setDataR1rev(null);
234
235 if (!"".equals(Pagina.getParamStr(request, "dataR2rev")))
236 itemEstruturaRev.setDataR2rev(Pagina.getParamDataBanco(request, "dataR2rev"));
237 else
238 itemEstruturaRev.setDataR2rev(null);
239
240 if (!"".equals(Pagina.getParamStr(request, "dataR3rev")))
241 itemEstruturaRev.setDataR3rev(Pagina.getParamDataBanco(request, "dataR3rev"));
242 else
243 itemEstruturaRev.setDataR3rev(null);
244
245 if (!"".equals(Pagina.getParamStr(request, "dataR4rev")))
246 itemEstruturaRev.setDataR4rev(Pagina.getParamDataBanco(request, "dataR4rev"));
247 else
248 itemEstruturaRev.setDataR4rev(null);
249
250 if (!"".equals(Pagina.getParamStr(request, "dataR5rev")))
251 itemEstruturaRev.setDataR5rev(Pagina.getParamDataBanco(request, "dataR5rev"));
252 else
253 itemEstruturaRev.setDataR5rev(Pagina.getParamDataBanco(request, "dataR5rev"));
254
255 itemEstruturaRev.setDescricaoR1rev(Pagina.getParamStr(request, "descricaoR1rev"));
256 itemEstruturaRev.setDescricaoR2rev(Pagina.getParamStr(request, "descricaoR2rev"));
257 itemEstruturaRev.setDescricaoR3rev(Pagina.getParamStr(request, "descricaoR3rev"));
258 itemEstruturaRev.setDescricaoR4rev(Pagina.getParamStr(request, "descricaoR4rev"));
259 itemEstruturaRev.setDescricaoR5rev(Pagina.getParamStr(request, "descricaoR5rev"));
260
261 setFuncoesAcompanhamentoItemEstrutura(request, itemEstruturaRev);
262 }
263
264
265
266
267
268
269
270
271 private int getNivel(ItemEstruturarevisaoIettrev itemEstruturaRev) throws ECARException {
272 int nivel = 1;
273
274 while (itemEstruturaRev.getItemEstruturarevisaoIettrev() != null) {
275 itemEstruturaRev = itemEstruturaRev.getItemEstruturarevisaoIettrev();
276 nivel++;
277
278 }
279
280 return nivel;
281 }
282
283
284
285
286
287
288
289
290 public void setFuncoesAcompanhamentoItemEstrutura(HttpServletRequest request, ItemEstruturarevisaoIettrev itemEstruturaRev) throws ECARException {
291
292 itemEstruturaRev.setIettUsutpfuacrevIettutfars(new HashSet());
293
294 EstruturaEtt estrutura = itemEstruturaRev.getEstruturaEttrev();
295
296 Set funcoesAcomp = estrutura.getEstrutTpFuncAcmpEtttfas();
297
298 if (funcoesAcomp != null) {
299 Iterator it = funcoesAcomp.iterator();
300 while (it.hasNext()) {
301 EstrutTpFuncAcmpEtttfa funcao = (EstrutTpFuncAcmpEtttfa) it.next();
302 if (!"".equals(Pagina.getParamStr(request, "Fun" + funcao.getTipoFuncAcompTpfa().getCodTpfa() + "rev"))) {
303 IettUsutpfuacrevIettutfar funcaoItemEstruturaRev = new IettUsutpfuacrevIettutfar();
304 funcaoItemEstruturaRev.setItemEstruturarevisaoIettrev(itemEstruturaRev);
305 funcaoItemEstruturaRev.setTipoFuncAcompTpfa(funcao.getTipoFuncAcompTpfa());
306 funcaoItemEstruturaRev.setUsuarioUsu((UsuarioUsu) this.buscar(UsuarioUsu.class, Long.valueOf(Pagina.getParamStr(request, "Fun" + funcao.getTipoFuncAcompTpfa().getCodTpfa() + "rev"))));
307 itemEstruturaRev.getIettUsutpfuacrevIettutfars().add(funcaoItemEstruturaRev);
308 }
309 }
310 }
311 }
312
313
314
315
316
317
318
319
320
321 public String getValorAtributoItemEstrutura(ItemEstruturarevisaoIettrev itemEstrutura, String nomeAtributo, String fkAtributo) throws ECARException {
322
323 Object retorno = Util.invocaGet(itemEstrutura, nomeAtributo + "rev");
324 if (retorno != null) {
325 if (fkAtributo != null) {
326 retorno = Util.invocaGet(retorno, fkAtributo);
327 if (retorno != null)
328 return retorno.toString();
329 else
330 return "";
331 }
332 else {
333 if (retorno.getClass().equals(Date.class) || retorno.getClass().equals(Date.class))
334 retorno = Data.parseDate((Date) retorno);
335 return retorno.toString();
336 }
337 }
338 else
339 return "";
340 }
341
342
343
344
345
346
347
348
349
350 public UsuarioUsu getValorFunAcompItemEstrutura(ItemEstruturarevisaoIettrev itemEstrutura, TipoFuncAcompTpfa funAcomp) throws ECARException {
351 IettUsutpfuacrevIettutfar ieUsuTf = new IettUsutpfuacrevIettutfar();
352 ieUsuTf.setItemEstruturarevisaoIettrev(itemEstrutura);
353 ieUsuTf.setTipoFuncAcompTpfa(funAcomp);
354 try {
355 List result = this.pesquisar(ieUsuTf, null);
356 if (result != null) {
357 Iterator it = result.iterator();
358 if (it.hasNext())
359 return ((IettUsutpfuacrevIettutfar) it.next()).getUsuarioUsu();
360 else
361 return null;
362 }
363 else {
364 return null;
365 }
366 } catch (ECARException e) {
367 this.logger.error(e);
368 return null;
369 }
370
371 }
372
373
374
375
376
377
378
379
380 public void salvar(ItemEstruturarevisaoIettrev itemEstrutura) throws ECARException {
381 Transaction tx = null;
382
383 try {
384 ArrayList objetos = new ArrayList();
385
386 super.inicializarLogBean();
387
388 tx = session.beginTransaction();
389
390 itemEstrutura.setDataInclusaoIettrev(Data.getDataAtual());
391 List filhos = new ArrayList();
392 if ((itemEstrutura.getIettUsutpfuacrevIettutfars() != null) && (itemEstrutura.getIettUsutpfuacrevIettutfars().size() > 0))
393 filhos.addAll(itemEstrutura.getIettUsutpfuacrevIettutfars());
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423 session.save(itemEstrutura);
424 objetos.add(itemEstrutura);
425
426 Iterator it = filhos.iterator();
427 while (it.hasNext()) {
428 PaiFilho object = (PaiFilho) it.next();
429 object.atribuirPKPai();
430
431 session.save(object);
432 objetos.add(object);
433 }
434
435
436
437
438 tx.commit();
439
440 if (super.logBean != null) {
441 super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
442 super.logBean.setOperacao("INC");
443 Iterator itObj = objetos.iterator();
444
445 while (itObj.hasNext()) {
446 super.logBean.setObj(itObj.next());
447 super.loggerAuditoria.info(logBean.toString());
448 }
449 }
450 } catch (HibernateException e) {
451 if (tx != null)
452 try {
453 tx.rollback();
454 } catch (HibernateException r) {
455 this.logger.error(r);
456 throw new ECARException("erro.hibernateException");
457 }
458 this.logger.error(e);
459 throw new ECARException("erro.hibernateException");
460 }
461 }
462
463
464
465
466
467
468 public List ordenaSetByCompare(Set colecao) throws ECARException {
469 List retorno = new ArrayList();
470 if (colecao != null) {
471 retorno = new ArrayList(colecao);
472
473 Collections.sort(retorno, new Comparator() {
474
475 public int compare(Object arg1, Object arg2) {
476 IettIndResulRevIettrr iettirr1 = (IettIndResulRevIettrr) arg1;
477 IettIndResulRevIettrr iettirr2 = (IettIndResulRevIettrr) arg2;
478
479 ItemEstrtIndResulIettr indRev1 = iettirr1.getItemEstrtIndResulIettr();
480 ItemEstrtIndResulIettr indRev2 = iettirr2.getItemEstrtIndResulIettr();
481
482 if (indRev1 != null && indRev2 != null) {
483 return indRev1.getNomeIettir().compareToIgnoreCase(indRev2.getNomeIettir());
484 }
485 else if (indRev1 != null && indRev2 == null) {
486 return 1;
487 }
488 else if (indRev1 == null && indRev2 != null) {
489 return -1;
490 }
491 else {
492 return 0;
493 }
494 }
495 });
496 }
497 else {
498 retorno = new ArrayList();
499 }
500
501 return retorno;
502 }
503 }