1 package ecar.dao;
2
3 import java.io.BufferedReader;
4 import java.io.FileOutputStream;
5 import java.io.FileReader;
6 import java.math.BigDecimal;
7 import java.util.ArrayList;
8 import java.util.Collections;
9 import java.util.Comparator;
10 import java.util.Date;
11 import java.util.HashSet;
12 import java.util.Iterator;
13 import java.util.List;
14 import java.util.Set;
15
16 import javax.servlet.http.HttpServletRequest;
17
18 import org.hibernate.HibernateException;
19 import org.hibernate.Query;
20 import org.hibernate.Session;
21 import org.hibernate.Transaction;
22
23 import comum.database.Dao;
24 import comum.util.Data;
25 import comum.util.Util;
26
27 import ecar.bean.CargaFinalidadesPPA;
28 import ecar.bean.CargaProdutosPPA;
29 import ecar.exception.ECARException;
30 import ecar.login.SegurancaECAR;
31 import ecar.permissao.ControlePermissao;
32 import ecar.pojo.AreaAre;
33 import ecar.pojo.EfIettFonteTotEfieft;
34 import ecar.pojo.EfIettFonteTotEfieftPK;
35 import ecar.pojo.EfItemEstPrevisaoEfiep;
36 import ecar.pojo.EfItemEstPrevisaoEfiepPK;
37 import ecar.pojo.EspecieEsp;
38 import ecar.pojo.EstruturaEtt;
39 import ecar.pojo.ExercicioExe;
40 import ecar.pojo.FonteFon;
41 import ecar.pojo.FonteRecursoFonr;
42 import ecar.pojo.ItemEstUsutpfuacIettutfa;
43 import ecar.pojo.ItemEstrtIndResulIettr;
44 import ecar.pojo.ItemEstrtIndResulLocalIettirl;
45 import ecar.pojo.ItemEstrutFisicoIettf;
46 import ecar.pojo.ItemEstrutFisicoIettfPK;
47 import ecar.pojo.ItemEstrutLocalIettl;
48 import ecar.pojo.ItemEstrutLocalIettlPK;
49 import ecar.pojo.ItemEstrutUsuarioIettus;
50 import ecar.pojo.ItemEstruturaIett;
51 import ecar.pojo.ItemEstruturaSisAtributoIettSatb;
52 import ecar.pojo.LocalItemLit;
53 import ecar.pojo.OrgaoOrg;
54 import ecar.pojo.OrgaoPeriodoExercicioOrgPerExe;
55 import ecar.pojo.OrgaoPeriodoExercicioOrgPerExePK;
56 import ecar.pojo.PaiFilho;
57 import ecar.pojo.PeriodoExercicioPerExe;
58 import ecar.pojo.PoderPeriodoExercicioPodPerExe;
59 import ecar.pojo.PoderPeriodoExercicioPodPerExePK;
60 import ecar.pojo.PoderPod;
61 import ecar.pojo.RecursoRec;
62 import ecar.pojo.SisAtributoSatb;
63 import ecar.pojo.SubAreaSare;
64 import ecar.pojo.TipoFuncAcompTpfa;
65 import ecar.pojo.UnidadeOrcamentariaPeriodoExercicioUoPerExe;
66 import ecar.pojo.UnidadeOrcamentariaPeriodoExercicioUoPerExePK;
67 import ecar.pojo.UnidadeOrcamentariaUO;
68 import ecar.pojo.UsuarioUsu;
69 import ecar.util.Dominios;
70
71
72
73
74
75 public class TempCargaIettsBDDao extends Dao {
76
77
78
79 public TempCargaIettsBDDao(HttpServletRequest request) {
80 super();
81 this.request = request;
82 }
83
84 private static final int STRING = 1;
85 private static int LONG = 2;
86
87
88
89
90
91
92 private void lancarErro(String mensagem) throws ECARException {
93 System.out.println("[ERRO NA ATUALIZACAO] - " + mensagem);
94 throw new ECARException(mensagem);
95 }
96
97
98
99
100
101 private void msg(String mensagem) {
102 System.out.println(mensagem);
103 }
104
105
106
107
108
109
110
111
112
113
114
115
116
117 private Object selectObjeto(String objeto, String campoDeCondicao, int tipoCampo, Object valorCampo, Session s) throws ECARException {
118 Query q;
119 StringBuilder select;
120 Object o;
121
122 select = new StringBuilder();
123 select.append("select o from " + objeto + " o where o." + campoDeCondicao + " = :valor");
124 if (s != null)
125 q = s.createQuery(select.toString());
126 else
127 q = this.session.createQuery(select.toString());
128
129 if (tipoCampo == STRING) {
130 q.setString("valor", (String) valorCampo);
131 }
132 if (tipoCampo == LONG) {
133 q.setLong("valor", ((Long) valorCampo).longValue());
134 }
135 q.setMaxResults(1);
136 o = q.uniqueResult();
137 if (o == null) {
138 System.out.println("++++++++ ERRO: " + objeto + " é Nulo para valor " + valorCampo.toString());
139 throw new ECARException(objeto + " is null");
140 }
141
142 return o;
143 }
144
145
146
147
148
149
150
151 public void efetuarCargaItens() throws ECARException {
152
153
154
155 EstruturaEtt estrutura = (EstruturaEtt) new EstruturaDao(request).buscar(EstruturaEtt.class, Long.valueOf(20));
156
157 Transaction tx = null;
158
159 try {
160 ArrayList objetos = new ArrayList();
161
162 super.inicializarLogBean();
163
164 tx = session.beginTransaction();
165
166 BufferedReader in = new BufferedReader(new FileReader("/home/aleixo/cop/dados.csv"));
167 String linha = "";
168 while ((linha = in.readLine()) != null) {
169
170 String[] campos = linha.split(";");
171 System.out.println(linha);
172
173
174 String siglaPrograma = campos[0].trim();
175 String siglaAcao = campos[1].trim();
176
177
178
179 String nomeAcao = Util.todasPrimeirasLetrasToUpperCase(campos[2]);
180 String codIdentOrg = campos[3].trim();
181 String codIdentUo = campos[4].trim();
182 String codIdentFunc = campos[5].trim();
183 String codIdentSubFunc = campos[6].trim();
184
185 String sqlBuscaPai = "select pai from ItemEstruturaIett pai where siglaIett = :sigla and pai.estruturaEtt.codEtt = :codEttPai";
186
187 Query q = this.session.createQuery(sqlBuscaPai);
188 q.setString("sigla", siglaPrograma);
189 q.setLong("codEttPai", 22);
190 q.setMaxResults(1);
191 ItemEstruturaIett iettPai = (ItemEstruturaIett) q.uniqueResult();
192 if (iettPai == null)
193 throw new ECARException("IettPai Nulo");
194
195 System.out.println(iettPai);
196 System.out.println("Item do Programa: " + siglaPrograma + " - " + iettPai.getNomeIett() + " - " + iettPai.getEstruturaEtt().getNomeEtt() + " - " + iettPai.getItemEstruturaIett().getNomeIett() + " - " + iettPai.getItemEstruturaIett().getEstruturaEtt().getNomeEtt());
197 System.out.println("Nome: " + siglaAcao + " - " + nomeAcao);
198 System.out.println("Org/Uo/Func/SubFunc: " + codIdentOrg + "/" + codIdentUo + "/" + codIdentFunc + "/" + codIdentSubFunc);
199
200 ItemEstruturaIett iett = new ItemEstruturaIett();
201
202 iett.setIndAtivoIett("S");
203 iett.setIndBloqPlanejamentoIett("N");
204 iett.setIndCriticaIett("N");
205 iett.setIndMonitoramentoIett("N");
206 iett.setDataInclusaoIett(Data.getDataAtual());
207 iett.setDataUltManutencaoIett(Data.getDataAtual());
208 iett.setDataInicioIett(Data.parseDate("01/01/2008"));
209 iett.setDataTerminoIett(Data.parseDate("31/12/2011"));
210 iett.setNivelIett(Integer.valueOf(3));
211
212 iett.setItemEstruturaIett(iettPai);
213 iett.setSiglaIett(siglaAcao);
214 iett.setNomeIett(nomeAcao);
215
216 iett.setEstruturaEtt(estrutura);
217
218
219 String sql = "select unidade from UnidadeOrcamentariaUO unidade where " + " unidade.codigoIdentUo = :codIdentUo" + " and unidade.orgaoOrg.codigoIdentOrg = :codIdentOrg";
220 q = this.session.createQuery(sql);
221 q.setLong("codIdentUo", Long.valueOf(codIdentUo).longValue());
222 q.setLong("codIdentOrg", Long.valueOf(codIdentOrg).longValue());
223 q.setMaxResults(1);
224
225 UnidadeOrcamentariaUO unidade = (UnidadeOrcamentariaUO) q.uniqueResult();
226 if (unidade == null)
227 throw new ECARException("Unidade Nulo");
228 iett.setUnidadeOrcamentariaUO(unidade);
229
230
231 sql = "select orgao from OrgaoOrg orgao where orgao.codigoIdentOrg = :codIdentOrg";
232 q = this.session.createQuery(sql);
233 q.setLong("codIdentOrg", Long.valueOf(codIdentOrg).longValue());
234 q.setMaxResults(1);
235
236 OrgaoOrg orgao = (OrgaoOrg) q.uniqueResult();
237 if (orgao == null)
238 throw new ECARException("Orgao Nulo");
239 iett.setOrgaoOrgByCodOrgaoResponsavel1Iett(orgao);
240
241
242 TipoFuncAcompTpfa funcaoGPS = (TipoFuncAcompTpfa) new TipoFuncAcompDao(request).buscar(TipoFuncAcompTpfa.class, Long.valueOf(3));
243
244
245
246
247
248
249 UsuarioUsu user = this.getUsuarioGPSByOrgao(orgao);
250
251 if (user != null) {
252 ItemEstUsutpfuacIettutfa funcaoItemEstrutura = new ItemEstUsutpfuacIettutfa();
253 funcaoItemEstrutura.setItemEstruturaIett(iett);
254 funcaoItemEstrutura.setTipoFuncAcompTpfa(funcaoGPS);
255 funcaoItemEstrutura.setUsuarioUsu(user);
256 iett.setItemEstUsutpfuacIettutfas(new HashSet());
257 iett.getItemEstUsutpfuacIettutfas().add(funcaoItemEstrutura);
258
259 System.out.println(orgao);
260 System.out.println(funcaoItemEstrutura.getUsuarioUsu());
261 }
262
263
264 sql = "select funcao from AreaAre funcao where funcao.codigoIdentAre = :codIdentFunc";
265 q = this.session.createQuery(sql);
266 q.setLong("codIdentFunc", Long.valueOf(codIdentFunc).longValue());
267 q.setMaxResults(1);
268
269 AreaAre funcao = (AreaAre) q.uniqueResult();
270 if (funcao == null)
271 throw new ECARException("Funcao Nulo");
272 iett.setAreaAre(funcao);
273
274
275 sql = "select subfuncao from SubAreaSare subfuncao where subfuncao.codigoIdentSare = :codIdentSubFunc";
276 q = this.session.createQuery(sql);
277 q.setLong("codIdentSubFunc", Long.valueOf(codIdentSubFunc).longValue());
278 q.setMaxResults(1);
279
280 SubAreaSare subFuncao = (SubAreaSare) q.uniqueResult();
281 if (subFuncao == null)
282 throw new ECARException("subFuncao Nulo");
283 iett.setSubAreaSare(subFuncao);
284
285
286
287
288
289 iett.setDataInclusaoIett(Data.getDataAtual());
290 List filhos = new ArrayList();
291 if (iett.getItemEstUsutpfuacIettutfas() != null)
292 filhos.addAll(iett.getItemEstUsutpfuacIettutfas());
293
294 session.save(iett);
295 objetos.add(iett);
296
297
298
299
300
301 new ControlePermissao().atualizarPermissoesItemEstrutura(iett, null, session, true, request);
302
303
304 ItemEstrutUsuarioIettus itemEstrutUsuario = new ItemEstrutUsuarioIettus();
305
306 itemEstrutUsuario.setItemEstruturaIett(iett);
307 itemEstrutUsuario.setItemEstruturaIettOrigem(iett);
308 itemEstrutUsuario.setCodTpPermIettus(ControlePermissao.PERMISSAO_USUARIO);
309 itemEstrutUsuario.setUsuarioUsu(((SegurancaECAR) request.getSession().getAttribute("seguranca")).getUsuario());
310
311 itemEstrutUsuario.setIndLeituraIettus("S");
312 itemEstrutUsuario.setIndEdicaoIettus("S");
313 itemEstrutUsuario.setIndExcluirIettus("S");
314
315 itemEstrutUsuario.setIndAtivMonitIettus("N");
316 itemEstrutUsuario.setIndDesatMonitIettus("N");
317 itemEstrutUsuario.setIndBloqPlanIettus("N");
318 itemEstrutUsuario.setIndDesblPlanIettus("N");
319 itemEstrutUsuario.setIndInfAndamentoIettus("N");
320 itemEstrutUsuario.setIndEmitePosIettus("N");
321 itemEstrutUsuario.setIndProxNivelIettus("N");
322
323 itemEstrutUsuario.setDataInclusaoIettus(Data.getDataAtual());
324
325 Iterator it = filhos.iterator();
326 while (it.hasNext()) {
327 PaiFilho object = (PaiFilho) it.next();
328 object.atribuirPKPai();
329
330 session.save(object);
331 objetos.add(object);
332 }
333
334 session.save(itemEstrutUsuario);
335 objetos.add(itemEstrutUsuario);
336 }
337
338 tx.commit();
339
340 if (super.logBean != null) {
341 super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
342 super.logBean.setOperacao("INC");
343 Iterator itObj = objetos.iterator();
344
345 while (itObj.hasNext()) {
346 super.logBean.setObj(itObj.next());
347 super.loggerAuditoria.info(logBean.toString());
348 }
349 }
350
351 } catch (Exception e) {
352 e.printStackTrace();
353 if (tx != null)
354 try {
355 tx.rollback();
356 } catch (HibernateException r) {
357 this.logger.error(r);
358 throw new ECARException("erro.hibernateException");
359 }
360 this.logger.error(e);
361 throw new ECARException("erro.hibernateException");
362 }
363 }
364
365
366
367
368
369
370
371
372
373
374 private UsuarioUsu getUsuarioGPSByOrgao(OrgaoOrg orgao) throws ECARException {
375
376 final long COD_ORG_SEPL = 1;
377 final long COD_ORG_PGE = 5;
378 final long COD_ORG_SEAP = 6;
379 final long COD_ORG_SEAB = 7;
380 final long COD_ORG_SETI = 8;
381 final long COD_ORG_SECS = 9;
382 final long COD_ORG_SEEC = 10;
383 final long COD_ORG_SEDU = 11;
384 final long COD_ORG_SEED = 12;
385 final long COD_ORG_SEFA = 13;
386 final long COD_ORG_SEIM = 14;
387 final long COD_ORG_SEJU = 15;
388 final long COD_ORG_SEMA = 16;
389 final long COD_ORG_SEOP = 17;
390 final long COD_ORG_SESA = 19;
391 final long COD_ORG_SESP = 20;
392 final long COD_ORG_SETP = 21;
393 final long COD_ORG_SETR = 22;
394 final long COD_ORG_SETU = 23;
395 final long COD_ORG_CPE = 79;
396
397 Long chave = null;
398
399 if (orgao != null) {
400 if (orgao.getCodOrg().longValue() == COD_ORG_SEPL)
401 chave = Long.valueOf(325);
402 if (orgao.getCodOrg().longValue() == COD_ORG_PGE)
403 chave = Long.valueOf(155);
404 if (orgao.getCodOrg().longValue() == COD_ORG_SEAP)
405 chave = Long.valueOf(136);
406 if (orgao.getCodOrg().longValue() == COD_ORG_SEAB)
407 chave = Long.valueOf(133);
408 if (orgao.getCodOrg().longValue() == COD_ORG_SETI)
409 chave = Long.valueOf(149);
410 if (orgao.getCodOrg().longValue() == COD_ORG_SECS)
411 chave = Long.valueOf(157);
412 if (orgao.getCodOrg().longValue() == COD_ORG_SEEC)
413 chave = Long.valueOf(340);
414 if (orgao.getCodOrg().longValue() == COD_ORG_SEDU)
415 chave = Long.valueOf(158);
416 if (orgao.getCodOrg().longValue() == COD_ORG_SEED)
417 chave = Long.valueOf(139);
418 if (orgao.getCodOrg().longValue() == COD_ORG_SEFA)
419 chave = Long.valueOf(141);
420 if (orgao.getCodOrg().longValue() == COD_ORG_SEIM)
421 chave = Long.valueOf(334);
422 if (orgao.getCodOrg().longValue() == COD_ORG_SEJU)
423 chave = Long.valueOf(143);
424 if (orgao.getCodOrg().longValue() == COD_ORG_SEMA)
425 chave = Long.valueOf(160);
426 if (orgao.getCodOrg().longValue() == COD_ORG_SEOP)
427 chave = Long.valueOf(144);
428 if (orgao.getCodOrg().longValue() == COD_ORG_SESA)
429 chave = Long.valueOf(145);
430 if (orgao.getCodOrg().longValue() == COD_ORG_SESP)
431 chave = Long.valueOf(147);
432 if (orgao.getCodOrg().longValue() == COD_ORG_SETP)
433 chave = Long.valueOf(151);
434 if (orgao.getCodOrg().longValue() == COD_ORG_SETR)
435 chave = Long.valueOf(153);
436 if (orgao.getCodOrg().longValue() == COD_ORG_SETU)
437 chave = Long.valueOf(162);
438 if (orgao.getCodOrg().longValue() == COD_ORG_CPE)
439 chave = Long.valueOf(131);
440
441 if (chave != null) {
442 return (UsuarioUsu) new UsuarioDao(request).buscar(UsuarioUsu.class, chave);
443 }
444 }
445
446 return null;
447 }
448
449
450
451
452
453
454
455
456
457
458 public void efetuarCargaPeriodoExercicios() throws ECARException {
459 Dao dao = new Dao();
460 PeriodoExercicioDao perExeDao = new PeriodoExercicioDao(request);
461 PeriodoExercicioPerExe perExe = (PeriodoExercicioPerExe) perExeDao.buscar(PeriodoExercicioPerExe.class, Long.valueOf(2));
462
463
464
465
466 PoderDao poderDao = new PoderDao(request);
467 List<PoderPod> poderes = poderDao.listar(PoderPod.class, null);
468 for (PoderPod poder : poderes) {
469 PoderPeriodoExercicioPodPerExePK compId = new PoderPeriodoExercicioPodPerExePK();
470 compId.setCodPerExe(perExe.getCodPerExe());
471 compId.setCodPod(poder.getCodPod());
472
473 PoderPeriodoExercicioPodPerExe podPerExe = new PoderPeriodoExercicioPodPerExe();
474 podPerExe.setCompId(compId);
475 podPerExe.setIndAtivoPodPerExe("S");
476 podPerExe.setPoderPod(poder);
477 podPerExe.setPeriodoExercicioPerExe(perExe);
478
479 dao.salvar(podPerExe);
480 }
481
482 OrgaoDao orgaoDao = new OrgaoDao(request);
483 List<OrgaoOrg> orgaos = orgaoDao.listar(OrgaoOrg.class, null);
484 for (OrgaoOrg orgao : orgaos) {
485 OrgaoPeriodoExercicioOrgPerExePK compId = new OrgaoPeriodoExercicioOrgPerExePK();
486 compId.setCodPerExe(perExe.getCodPerExe());
487 compId.setCodOrg(orgao.getCodOrg());
488
489 OrgaoPeriodoExercicioOrgPerExe orgPerExe = new OrgaoPeriodoExercicioOrgPerExe();
490 orgPerExe.setCompId(compId);
491 orgPerExe.setIndAtivoOrgPerExe("S");
492 orgPerExe.setOrgaoOrg(orgao);
493 orgPerExe.setPeriodoExercicioPerExe(perExe);
494
495 dao.salvar(orgPerExe);
496 }
497
498 UnidadeOrcamentariaDao uoDao = new UnidadeOrcamentariaDao(request);
499 List<UnidadeOrcamentariaUO> uos = uoDao.listar(UnidadeOrcamentariaUO.class, null);
500 for (UnidadeOrcamentariaUO unidade : uos) {
501 UnidadeOrcamentariaPeriodoExercicioUoPerExePK compId = new UnidadeOrcamentariaPeriodoExercicioUoPerExePK();
502 compId.setCodPerExe(perExe.getCodPerExe());
503 compId.setCodUo(unidade.getCodUo());
504
505 UnidadeOrcamentariaPeriodoExercicioUoPerExe uoPerExe = new UnidadeOrcamentariaPeriodoExercicioUoPerExe();
506 uoPerExe.setCompId(compId);
507 uoPerExe.setIndAtivoUoPerExe("S");
508 uoPerExe.setPeriodoExercicioPerExe(perExe);
509 uoPerExe.setUnidadeOrcamentariaUO(unidade);
510
511 dao.salvar(uoPerExe);
512 }
513 }
514
515
516
517
518
519
520
521
522
523
524
525 public void setTipoAcoesPPA20082011() throws ECARException {
526
527 UsuarioUsu usuarioLogado = ((SegurancaECAR) request.getSession().getAttribute("seguranca")).getUsuario();
528
529 SisAtributoDao sisDao = new SisAtributoDao(request);
530
531 SisAtributoSatb projeto = (SisAtributoSatb) sisDao.buscar(SisAtributoSatb.class, Long.valueOf(46));
532 SisAtributoSatb atividade = (SisAtributoSatb) sisDao.buscar(SisAtributoSatb.class, Long.valueOf(47));
533 SisAtributoSatb operacaoEspecial = (SisAtributoSatb) sisDao.buscar(SisAtributoSatb.class, Long.valueOf(48));
534
535 Transaction tx = null;
536
537 try {
538 tx = session.beginTransaction();
539
540 StringBuilder s = new StringBuilder();
541 s.append("select iett from ItemEstruturaIett iett where iett.estruturaEtt.codEtt = 20");
542 s.append(" and iett.siglaIett like '1%' ");
543
544 Query q = this.session.createQuery(s.toString());
545
546 List<ItemEstruturaIett> acoesProjeto = q.list();
547 for (ItemEstruturaIett iett : acoesProjeto) {
548
549 ItemEstruturaSisAtributoIettSatb atbLivre = new ItemEstruturaSisAtributoIettSatb();
550 atbLivre.setItemEstruturaIett(iett);
551 atbLivre.setSisAtributoSatb(projeto);
552 atbLivre.setDataUltManutencaoIettSatb(Data.getDataAtual());
553 atbLivre.setUsuarioUsu(usuarioLogado);
554 atbLivre.atribuirPKPai();
555
556 Set atbsLivres = iett.getItemEstruturaSisAtributoIettSatbs();
557
558 boolean podeInserir = true;
559 if (atbsLivres != null && !atbsLivres.isEmpty()) {
560 for (Iterator it = atbsLivres.iterator(); it.hasNext();) {
561 ItemEstruturaSisAtributoIettSatb aux = (ItemEstruturaSisAtributoIettSatb) it.next();
562
563 if (aux.getItemEstruturaIett().equals(iett) && aux.getSisAtributoSatb().equals(projeto)) {
564 podeInserir = false;
565 break;
566 }
567 }
568 }
569
570 if (podeInserir) {
571 session.save(atbLivre);
572 }
573 }
574
575 s = new StringBuilder();
576 s.append("select iett from ItemEstruturaIett iett where iett.estruturaEtt.codEtt = 20");
577 s.append(" and iett.siglaIett like '2%' ");
578
579 q = this.session.createQuery(s.toString());
580
581 List<ItemEstruturaIett> acoesAtividade = q.list();
582 for (ItemEstruturaIett iett : acoesAtividade) {
583
584 ItemEstruturaSisAtributoIettSatb atbLivre = new ItemEstruturaSisAtributoIettSatb();
585 atbLivre.setItemEstruturaIett(iett);
586 atbLivre.setSisAtributoSatb(atividade);
587 atbLivre.setDataUltManutencaoIettSatb(Data.getDataAtual());
588 atbLivre.setUsuarioUsu(usuarioLogado);
589 atbLivre.atribuirPKPai();
590
591 Set atbsLivres = iett.getItemEstruturaSisAtributoIettSatbs();
592
593 boolean podeInserir = true;
594 if (atbsLivres != null && !atbsLivres.isEmpty()) {
595 for (Iterator it = atbsLivres.iterator(); it.hasNext();) {
596 ItemEstruturaSisAtributoIettSatb aux = (ItemEstruturaSisAtributoIettSatb) it.next();
597
598 if (aux.getItemEstruturaIett().equals(iett) && aux.getSisAtributoSatb().equals(atividade)) {
599 podeInserir = false;
600 break;
601 }
602 }
603 }
604
605 if (podeInserir) {
606 session.save(atbLivre);
607 }
608 }
609
610 s = new StringBuilder();
611 s.append("select iett from ItemEstruturaIett iett where iett.estruturaEtt.codEtt = 20");
612 s.append(" and iett.siglaIett like '9%' ");
613
614 q = this.session.createQuery(s.toString());
615
616 List<ItemEstruturaIett> acoesOperEsp = q.list();
617 for (ItemEstruturaIett iett : acoesOperEsp) {
618
619 ItemEstruturaSisAtributoIettSatb atbLivre = new ItemEstruturaSisAtributoIettSatb();
620 atbLivre.setItemEstruturaIett(iett);
621 atbLivre.setSisAtributoSatb(operacaoEspecial);
622 atbLivre.setDataUltManutencaoIettSatb(Data.getDataAtual());
623 atbLivre.setUsuarioUsu(usuarioLogado);
624 atbLivre.atribuirPKPai();
625
626 Set atbsLivres = iett.getItemEstruturaSisAtributoIettSatbs();
627
628 boolean podeInserir = true;
629 if (atbsLivres != null && !atbsLivres.isEmpty()) {
630 for (Iterator it = atbsLivres.iterator(); it.hasNext();) {
631 ItemEstruturaSisAtributoIettSatb aux = (ItemEstruturaSisAtributoIettSatb) it.next();
632
633 if (aux.getItemEstruturaIett().equals(iett) && aux.getSisAtributoSatb().equals(operacaoEspecial)) {
634 podeInserir = false;
635 break;
636 }
637 }
638 }
639
640 if (podeInserir) {
641 session.save(atbLivre);
642 }
643 }
644
645 tx.commit();
646 } catch (Exception e) {
647 e.printStackTrace();
648 if (tx != null)
649 try {
650 tx.rollback();
651 } catch (HibernateException r) {
652 this.logger.error(r);
653 throw new ECARException("erro.hibernateException");
654 }
655 this.logger.error(e);
656 throw new ECARException("erro.hibernateException");
657 }
658 }
659
660
661
662
663
664
665
666
667 public void efetuarCargaValoresCOP() throws ECARException {
668
669 final String CORRENTE = "C";
670 final String CAPITAL = "K";
671 final String TESOURO = "T";
672 final String OUTRAS_FONTES = "O";
673
674 ItemEstruturaDao itemDao = new ItemEstruturaDao(request);
675
676 Transaction tx = null;
677
678 try {
679
680 EstruturaEtt estrutura = (EstruturaEtt) new EstruturaDao(request).buscar(EstruturaEtt.class, Long.valueOf(20));
681 List<EfIettFonteTotEfieft> fontesTotEfieft = new ArrayList<EfIettFonteTotEfieft>();
682
683 Query q = this.session.createQuery("from FonteRecursoFonr");
684 List<FonteRecursoFonr> fontesRecurso = (List<FonteRecursoFonr>) q.list();
685
686 tx = session.beginTransaction();
687
688
689
690
691
692
693
694 BufferedReader in = new BufferedReader(new FileReader("/home/aleixo/cop/valoresOK.csv"));
695
696
697 String linha = "";
698 System.out.println("+++++++++++++++ [Início do Processo]++++++++++++++++");
699 while ((linha = in.readLine()) != null) {
700 String[] campos = linha.split(";");
701
702
703 String codProjAtiv = campos[0].trim();
704 String anoExe = campos[1].trim();
705 String indCapCor = campos[2].trim();
706 String codEsp = campos[3].trim();
707 String tipoFonte = campos[4].trim();
708 String codFonte = campos[5].trim();
709 String valor = campos[6].trim();
710
711 Long codFonr = null;
712 if (CORRENTE.equals(indCapCor))
713 codFonr = new Long(1);
714 else if (CAPITAL.equals(indCapCor))
715 codFonr = new Long(2);
716 else {
717 System.out.println("++++++++ ERRO: Indicador inválido para FonteRecursoFonr: " + indCapCor);
718 throw new ECARException("IndCapCor inválido");
719 }
720
721 Long codTipoFon = null;
722 if (TESOURO.equals(tipoFonte))
723 codTipoFon = new Long(3);
724 else if (OUTRAS_FONTES.equals(tipoFonte))
725 codTipoFon = new Long(4);
726 else {
727 System.out.println("++++++++ ERRO: TipoFonte inválido para RecursoRec: " + tipoFonte);
728 throw new ECARException("tipoFonte inválido");
729 }
730
731 ItemEstruturaIett projAtiv = itemDao.getIettBySigla(codProjAtiv, estrutura);
732 if (projAtiv == null) {
733 System.out.println("++++++++ ERRO: ItemEstruturaIett é Nulo para valor " + codProjAtiv);
734 throw new ECARException("ItemEstruturaIett is null");
735 }
736
737 ExercicioExe exercicio = (ExercicioExe) this.selectObjeto("ExercicioExe", "descricaoExe", STRING, anoExe, null);
738 FonteRecursoFonr fonr = (FonteRecursoFonr) this.selectObjeto("FonteRecursoFonr", "codFonr", LONG, codFonr, null);
739 EspecieEsp esp = (EspecieEsp) this.selectObjeto("EspecieEsp", "codEsp", LONG, Long.valueOf(codEsp), null);
740 RecursoRec rec = (RecursoRec) this.selectObjeto("RecursoRec", "codRec", LONG, codTipoFon, null);
741 FonteFon fon = (FonteFon) this.selectObjeto("FonteFon", "codigoIdentFon", LONG, Long.valueOf(codFonte), null);
742 BigDecimal valorAprovado = new BigDecimal(valor).setScale(0);
743
744
745
746 ItemEstruturaFonteRecursoDao dao = new ItemEstruturaFonteRecursoDao(request);
747
748
749
750 List fontesRecursos = dao.getFontesRecursosByExercicio(projAtiv, new ExercicioExe());
751
752 if ((fontesRecursos.size() == 0) && (!projAtiv.getSiglaIett().substring(0, 1).equals("0"))) {
753
754
755 for (Iterator<FonteRecursoFonr> itFontes = fontesRecurso.iterator(); itFontes.hasNext();) {
756
757 FonteRecursoFonr fonte = itFontes.next();
758
759 EfIettFonteTotEfieft efTotEfieft = new EfIettFonteTotEfieft();
760
761 EfIettFonteTotEfieftPK efTotEfieftPK = new EfIettFonteTotEfieftPK();
762 efTotEfieftPK.setCodFonr(fonte.getCodFonr());
763 efTotEfieftPK.setCodIett(projAtiv.getCodIett());
764
765 efTotEfieft.setComp_id(efTotEfieftPK);
766 efTotEfieft.setDataInclusaoEfieft(new Date());
767 efTotEfieft.setIndAtivoEfieft("S");
768 efTotEfieft.setItemEstruturaIett(projAtiv);
769 efTotEfieft.setFonteRecursoFonr(fonte);
770
771
772
773 if (!fontesTotEfieft.contains(efTotEfieft))
774 fontesTotEfieft.add(efTotEfieft);
775 }
776
777 }
778
779 EfItemEstPrevisaoEfiepPK compId = new EfItemEstPrevisaoEfiepPK();
780 compId.setCodExe(exercicio.getCodExe());
781 compId.setCodFonr(fonr.getCodFonr());
782 compId.setCodIett(projAtiv.getCodIett());
783 compId.setCodRec(rec.getCodRec());
784
785
786
787 EfItemEstPrevisaoEfiep efiep = new EfItemEstPrevisaoEfiep();
788 efiep.setComp_id(compId);
789 efiep.setDataInclusaoEfiep(Data.getDataAtual());
790 efiep.setEspecieEsp(esp);
791 efiep.setExercicioExe(exercicio);
792 efiep.setFonteRecursoFonr(fonr);
793 efiep.setIndAtivoEfiep("S");
794 efiep.setItemEstruturaIett(projAtiv);
795 efiep.setRecursoRec(rec);
796 efiep.setFonteFon(fon);
797 efiep.setValorAprovadoEfiep(valorAprovado);
798
799 System.out.println("--> " + projAtiv.getNomeIett());
800 session.save(efiep);
801 }
802
803
804 for (EfIettFonteTotEfieft obj : fontesTotEfieft) {
805 session.save(obj);
806 }
807
808 tx.commit();
809 System.out.println("+++++++++++++++ [Fim do Processo]++++++++++++++++");
810 } catch (Exception e) {
811 e.printStackTrace();
812 if (tx != null)
813 try {
814 tx.rollback();
815 } catch (HibernateException r) {
816 this.logger.error(r);
817 throw new ECARException("erro.hibernateException");
818 }
819 this.logger.error(e);
820 throw new ECARException("erro.hibernateException");
821 }
822 }
823
824
825
826
827
828
829 public void efetuarCargaFinalidadesCOP() throws ECARException {
830
831 ItemEstruturaDao itemDao = new ItemEstruturaDao(request);
832
833 Transaction tx = null;
834
835 try {
836
837 EstruturaEtt estrutura = (EstruturaEtt) new EstruturaDao(request).buscar(EstruturaEtt.class, Long.valueOf(20));
838
839 System.out.println("+++++++++++++++ [Início do Processo]++++++++++++++++");
840 tx = session.beginTransaction();
841
842 System.out.println("+++++++++++++++ [Lendo arquivo...]++++++++++++++++");
843 BufferedReader in = new BufferedReader(new FileReader("/home/aleixo/cop/FinalidadePat2008-teste.txt"));
844 String linha = "";
845
846 List<String> linhas = new ArrayList<String>();
847
848 String finalidade = "";
849 while ((linha = in.readLine()) != null) {
850 linha = linha.trim();
851
852 if ("".equals(linha)) {
853 continue;
854 }
855
856
857 if (linha.charAt(0) == '1' || linha.charAt(0) == '2' || linha.charAt(0) == '9') {
858
859 linhas.add(finalidade.trim());
860 finalidade = "";
861 }
862 finalidade += linha + " ";
863 }
864
865 System.out.println("+++++++++++++++ [Identificando \"Sigla\" e \"Finalidade\"...]++++++++++++++++");
866 List<CargaFinalidadesPPA> finalidades = new ArrayList<CargaFinalidadesPPA>();
867 for (String l : linhas) {
868
869 if (!"".equals(l)) {
870 String sigla = l.substring(0, 4);
871 String fin = l.substring(5, l.length());
872
873 CargaFinalidadesPPA cfPPA = new CargaFinalidadesPPA();
874 cfPPA.setSigla(sigla);
875 cfPPA.setFinalidade(fin);
876
877 finalidades.add(cfPPA);
878 }
879 }
880
881 System.out.println("+++++++++++++++ [Alterando ações...]++++++++++++++++");
882 for (CargaFinalidadesPPA cfPPA : finalidades) {
883 ItemEstruturaIett acao = itemDao.getIettBySigla(cfPPA.getSigla(), estrutura);
884
885 if (acao == null) {
886 System.out.println("++++++++ ERRO: ItemEstruturaIett é Nulo para valor " + cfPPA.getSigla());
887 throw new ECARException("ItemEstruturaIett is null");
888 }
889
890 acao.setObjetivoGeralIett(cfPPA.getFinalidade());
891 session.update(acao);
892 }
893
894 System.out.println("+++++++++++++++ [COMMIT]++++++++++++++++");
895 tx.commit();
896 System.out.println("+++++++++++++++ [Fim do Processo]++++++++++++++++");
897 } catch (Exception e) {
898 e.printStackTrace();
899 if (tx != null)
900 try {
901 System.out.println("+++++++++++++++ [ROLLBACK]++++++++++++++++");
902 tx.rollback();
903 } catch (HibernateException r) {
904 this.logger.error(r);
905 throw new ECARException("erro.hibernateException");
906 }
907 this.logger.error(e);
908 throw new ECARException("erro.hibernateException");
909 }
910 }
911
912
913
914
915
916
917
918
919 public void efetuarCargaProdutosCOP() throws ECARException {
920
921
922 EstruturaEtt estruturaProdutos = (EstruturaEtt) new EstruturaDao(request).buscar(EstruturaEtt.class, Long.valueOf(21));
923
924 Transaction tx = null;
925
926 try {
927
928 UsuarioUsu usuarioLogado = ((SegurancaECAR) request.getSession().getAttribute("seguranca")).getUsuario();
929
930 ArrayList objetos = new ArrayList();
931
932 super.inicializarLogBean();
933
934 msg("++++++++++++++++ [ Processo Iniciado ] ++++++++++++++++++++");
935 tx = session.beginTransaction();
936
937 List<CargaProdutosPPA> itensArquivo = new ArrayList<CargaProdutosPPA>();
938 List<String> itens = new ArrayList<String>();
939
940 msg("++++++++++++++++ [ Lendo Arquivo ] ++++++++++++++++++++");
941 BufferedReader in = new BufferedReader(new FileReader("/home/aleixo/cop/dadosProdutosOK.csv"));
942
943
944 String linha = "";
945
946 msg("++++++++++++++++ [ Adicionando itens do arquivo na lista itensArquivos] ++++++++++++++++++++");
947 while ((linha = in.readLine()) != null) {
948
949
950
951
952
953
954 String[] campos = linha.split(";");
955
956 String anoExe = campos[0].trim();
957 String siglaAcao = campos[1].trim();
958 String siglaProduto = campos[2].trim();
959 String indObra = campos[3].trim();
960 String nomeIndicador = campos[4].trim();
961 String nomeProduto = campos[5].trim();
962 String unidadeIndicador = campos[6].trim();
963 String valorPrevisto = campos[7].trim();
964 String codRegiao = campos[8].trim();
965
966 String codMunicipio = "";
967 if (campos.length == 10)
968 codMunicipio = campos[9].trim();
969
970 CargaProdutosPPA itemArquivo = new CargaProdutosPPA();
971 itemArquivo.setAnoExe(anoExe);
972 itemArquivo.setCodMunicipio(codMunicipio);
973 itemArquivo.setCodRegiao(codRegiao);
974 itemArquivo.setIndObra(indObra);
975 itemArquivo.setNomeIndicador(Util.removeEspacosDuplicados(nomeIndicador));
976 itemArquivo.setNomeProduto(Util.removeEspacosDuplicados(nomeProduto));
977 itemArquivo.setSiglaAcao(siglaAcao);
978 itemArquivo.setSiglaProduto(siglaProduto);
979 itemArquivo.setUnidadeIndicador(unidadeIndicador);
980 itemArquivo.setValorPrevisto(valorPrevisto);
981
982 itensArquivo.add(itemArquivo);
983 }
984
985 msg("++++++++++++++++ [ Ordenando itensArquivo pela siglaAcao e siglaProduto ] ++++++++++++++++++++");
986
987 Collections.sort(itensArquivo, new Comparator() {
988
989 public int compare(Object o1, Object o2) {
990 CargaProdutosPPA c1 = (CargaProdutosPPA) o1;
991 CargaProdutosPPA c2 = (CargaProdutosPPA) o2;
992
993 String s1 = c1.getSiglaAcao();
994 String s2 = c2.getSiglaAcao();
995
996 return s1.compareTo(s2);
997 }
998
999 });
1000
1001 List<CargaProdutosPPA> itensSalvos = new ArrayList<CargaProdutosPPA>();
1002 List<CargaProdutosPPA> itensIgnorados = new ArrayList<CargaProdutosPPA>();
1003
1004 msg("++++++++++++++++ [ Percorrendo itensArquivo para inserção de itens ] ++++++++++++++++++++");
1005
1006 String siglaAcaoAux = "";
1007 int siglaProdAux = 1;
1008
1009 for (CargaProdutosPPA itemArquivo : itensArquivo) {
1010
1011
1012
1013
1014
1015 StringBuilder select = new StringBuilder();
1016 select.append("select local from LocalItemLit local");
1017 select.append(" where local.codPlanejamentoLit = :codLocal");
1018 select.append(" and local.localGrupoLgp.codLgp = 11");
1019
1020 Query q = this.session.createQuery(select.toString());
1021 q.setString("codLocal", itemArquivo.getCodRegiao());
1022
1023 q.setMaxResults(1);
1024
1025 Object o = q.uniqueResult();
1026 if (o == null) {
1027 lancarErro("Erro ao pesquisar abrangencia: Local invalido para Regiao: " + itemArquivo.getCodRegiao());
1028 }
1029 LocalItemLit localAbrangencia = (LocalItemLit) o;
1030
1031 if ("".equals(itemArquivo.getValorPrevisto())) {
1032 lancarErro("Valor inválido: [" + itemArquivo.getValorPrevisto() + "]");
1033 }
1034
1035 ItemEstruturaIett iett = null;
1036
1037
1038 String chave = itemArquivo.getSiglaAcao() + "_" + itemArquivo.getIndObra() + "_" + itemArquivo.getNomeProduto();
1039
1040 if (!itens.contains(chave)) {
1041 itensSalvos.add(itemArquivo);
1042 itens.add(chave);
1043
1044 if (!siglaAcaoAux.equals(itemArquivo.getSiglaAcao())) {
1045 siglaAcaoAux = itemArquivo.getSiglaAcao();
1046 siglaProdAux = 1;
1047 }
1048
1049
1050
1051
1052 String sqlBuscaPai = "select pai from ItemEstruturaIett pai where siglaIett = :sigla and pai.estruturaEtt.codEtt = :codEttPai";
1053 q = this.session.createQuery(sqlBuscaPai);
1054 q.setString("sigla", itemArquivo.getSiglaAcao());
1055 q.setLong("codEttPai", 20);
1056 q.setMaxResults(1);
1057 ItemEstruturaIett iettPai = (ItemEstruturaIett) q.uniqueResult();
1058 if (iettPai == null)
1059 lancarErro("Item Pai é Nulo para sigla " + itemArquivo.getSiglaAcao());
1060
1061
1062 iett = new ItemEstruturaIett();
1063
1064 iett.setIndAtivoIett("S");
1065 iett.setIndBloqPlanejamentoIett("N");
1066 iett.setIndCriticaIett("N");
1067 iett.setIndMonitoramentoIett("N");
1068 iett.setUsuarioUsuByCodUsuIncIett(usuarioLogado);
1069 iett.setDataInclusaoIett(Data.getDataAtual());
1070 iett.setDataUltManutencaoIett(Data.getDataAtual());
1071 iett.setDataInicioIett(Data.parseDate("01/01/2008"));
1072 iett.setDataTerminoIett(Data.parseDate("31/12/2011"));
1073 iett.setNivelIett(Integer.valueOf(4));
1074
1075 iett.setItemEstruturaIett(iettPai);
1076
1077 iett.setSiglaIett(String.valueOf(siglaProdAux));
1078 iett.setNomeIett(itemArquivo.getNomeProduto());
1079
1080 iett.setEstruturaEtt(estruturaProdutos);
1081
1082
1083 UnidadeOrcamentariaUO unidade = iettPai.getUnidadeOrcamentariaUO();
1084 if (unidade == null)
1085 lancarErro("Unidade Orçamentária do Item Pai é Nulo");
1086 iett.setUnidadeOrcamentariaUO(unidade);
1087
1088
1089 OrgaoOrg orgao = iettPai.getOrgaoOrgByCodOrgaoResponsavel1Iett();
1090 if (orgao == null)
1091 lancarErro("Orgao do Item Pai é Nulo");
1092
1093 iett.setOrgaoOrgByCodOrgaoResponsavel1Iett(orgao);
1094
1095
1096
1097
1098
1099 session.save(iett);
1100 objetos.add(iett);
1101 msg("Salvando Item --> " + itemArquivo.getSiglaAcao() + " - " + itemArquivo.getSiglaProduto() + " - " + itemArquivo.getNomeProduto());
1102
1103 siglaProdAux++;
1104
1105
1106 Long codIndObra = (Dominios.SIM.equals(itemArquivo.getIndObra()) ? Long.valueOf(51) : Long.valueOf(52));
1107 SisAtributoSatb obra = (SisAtributoSatb) buscar(SisAtributoSatb.class, codIndObra);
1108
1109 ItemEstruturaSisAtributoIettSatb atbLivreObra = new ItemEstruturaSisAtributoIettSatb();
1110 atbLivreObra.setItemEstruturaIett(iett);
1111 atbLivreObra.setSisAtributoSatb(obra);
1112 atbLivreObra.setDataUltManutencaoIettSatb(Data.getDataAtual());
1113 atbLivreObra.setUsuarioUsu(usuarioLogado);
1114 atbLivreObra.atribuirPKPai();
1115
1116 session.save(atbLivreObra);
1117 objetos.add(atbLivreObra);
1118
1119
1120 ItemEstrutLocalIettl abrangencia = new ItemEstrutLocalIettl();
1121 ItemEstrutLocalIettlPK abrgCompId = new ItemEstrutLocalIettlPK();
1122
1123 abrgCompId.setCodIett(iett.getCodIett());
1124 abrgCompId.setCodLit(localAbrangencia.getCodLit());
1125
1126 abrangencia.setComp_id(abrgCompId);
1127 abrangencia.setDataInclusaoIettl(Data.getDataAtual());
1128 abrangencia.setItemEstruturaIett(iett);
1129 abrangencia.setLocalItemLit(localAbrangencia);
1130 abrangencia.setUsuarioUsuManutencao(usuarioLogado);
1131 session.save(abrangencia);
1132 objetos.add(abrangencia);
1133
1134
1135
1136
1137
1138 new ControlePermissao().atualizarPermissoesItemEstrutura(iett, null, session, true, request);
1139
1140
1141 ItemEstrutUsuarioIettus itemEstrutUsuario = new ItemEstrutUsuarioIettus();
1142
1143 itemEstrutUsuario.setItemEstruturaIett(iett);
1144 itemEstrutUsuario.setItemEstruturaIettOrigem(iett);
1145 itemEstrutUsuario.setCodTpPermIettus(ControlePermissao.PERMISSAO_USUARIO);
1146 itemEstrutUsuario.setUsuarioUsu(usuarioLogado);
1147
1148 itemEstrutUsuario.setIndLeituraIettus("S");
1149 itemEstrutUsuario.setIndEdicaoIettus("S");
1150 itemEstrutUsuario.setIndExcluirIettus("S");
1151
1152 itemEstrutUsuario.setIndAtivMonitIettus("N");
1153 itemEstrutUsuario.setIndDesatMonitIettus("N");
1154 itemEstrutUsuario.setIndBloqPlanIettus("N");
1155 itemEstrutUsuario.setIndDesblPlanIettus("N");
1156 itemEstrutUsuario.setIndInfAndamentoIettus("N");
1157 itemEstrutUsuario.setIndEmitePosIettus("N");
1158 itemEstrutUsuario.setIndProxNivelIettus("N");
1159
1160 itemEstrutUsuario.setDataInclusaoIettus(Data.getDataAtual());
1161
1162 session.save(itemEstrutUsuario);
1163 objetos.add(itemEstrutUsuario);
1164 }
1165 else {
1166 itensIgnorados.add(itemArquivo);
1167 }
1168 }
1169
1170 msg("++++++++++++++++ [ Realizando Commit ] ++++++++++++++++++++");
1171 tx.commit();
1172
1173
1174 if (super.logBean != null) {
1175 super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
1176 super.logBean.setOperacao("INC");
1177 Iterator itObj = objetos.iterator();
1178
1179 while (itObj.hasNext()) {
1180 super.logBean.setObj(itObj.next());
1181 super.loggerAuditoria.info(logBean.toString());
1182 }
1183 }
1184 msg("++++++++++++++++ [ Processo Finalizado Com Sucesso ] ++++++++++++++++++++");
1185
1186 } catch (Exception e) {
1187 e.printStackTrace();
1188 msg("++++++++++++++++ [ Erro no Processo. Executando RollBack ] ++++++++++++++++++++");
1189 if (tx != null)
1190 try {
1191 tx.rollback();
1192 } catch (HibernateException r) {
1193 this.logger.error(r);
1194 throw new ECARException("erro.hibernateException");
1195 }
1196 this.logger.error(e);
1197 throw new ECARException("erro.hibernateException");
1198 }
1199 }
1200
1201
1202
1203
1204
1205
1206
1207 public void efetuarCargaIndicadoresProdutosCOP() throws ECARException {
1208
1209
1210
1211
1212 EstruturaEtt estruturaProdutos = (EstruturaEtt) new EstruturaDao(request).buscar(EstruturaEtt.class, Long.valueOf(21));
1213
1214 Transaction tx = null;
1215
1216 try {
1217
1218 UsuarioUsu usuarioLogado = ((SegurancaECAR) request.getSession().getAttribute("seguranca")).getUsuario();
1219
1220 ArrayList objetos = new ArrayList();
1221
1222 super.inicializarLogBean();
1223
1224 msg("++++++++++++++++ [ Processo Iniciado ] ++++++++++++++++++++");
1225 tx = session.beginTransaction();
1226
1227 msg("++++++++++++++++ [ Lendo Arquivo ] ++++++++++++++++++++");
1228 BufferedReader in = new BufferedReader(new FileReader("/home/aleixo/cop/dadosProdutosOK.csv"));
1229
1230
1231
1232 List<String> indicadoresIncluidos = new ArrayList<String>();
1233 String linha = "";
1234 while ((linha = in.readLine()) != null) {
1235
1236
1237
1238
1239 String[] campos = linha.split(";");
1240
1241 String anoExe = campos[0].trim();
1242 String siglaAcao = campos[1].trim();
1243 String siglaProduto = campos[2].trim();
1244 String indObra = campos[3].trim();
1245 String nomeIndicador = Util.removeEspacosDuplicados(campos[4].trim());
1246 String nomeProduto = Util.removeEspacosDuplicados(campos[5].trim());
1247 String unidadeIndicador = campos[6].trim();
1248 String valorPrevisto = campos[7].trim();
1249 String codRegiao = campos[8].trim();
1250
1251 String codMunicipio = "";
1252 if (campos.length == 10)
1253 codMunicipio = campos[9].trim();
1254
1255
1256 StringBuilder select = new StringBuilder();
1257 select.append("select local from LocalItemLit local");
1258 select.append(" where local.codPlanejamentoLit = :codLocal");
1259 select.append(" and (local.localGrupoLgp.codLgp = 8 or local.localGrupoLgp.codLgp = 11)");
1260
1261 Query q = this.session.createQuery(select.toString());
1262 q.setString("codLocal", (!"".equals(codMunicipio) ? codMunicipio : codRegiao));
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278 q.setMaxResults(1);
1279
1280 Object o = q.uniqueResult();
1281 if (o == null) {
1282 if (!"".equals(codMunicipio))
1283 lancarErro("Local invalido para Municipio: " + codMunicipio);
1284 else
1285 lancarErro("Local invalido para Regiao: " + codRegiao);
1286 }
1287 LocalItemLit local = (LocalItemLit) o;
1288
1289 if ("".equals(valorPrevisto)) {
1290 lancarErro("Valor inválido: [" + valorPrevisto + "]");
1291 }
1292
1293 ItemEstruturaIett iett = null;
1294
1295
1296
1297
1298
1299 select = new StringBuilder();
1300 select.append("select item from ItemEstruturaIett item where item.nomeIett = :nome and item.estruturaEtt.codEtt = :codEtt and item.itemEstruturaIett.siglaIett = :siglaPai");
1301
1302 q = session.createQuery(select.toString());
1303 q.setString("nome", nomeProduto);
1304 q.setString("siglaPai", siglaAcao);
1305 q.setLong("codEtt", estruturaProdutos.getCodEtt().longValue());
1306
1307 List itensTemp = q.list();
1308 if (itensTemp != null && !itensTemp.isEmpty()) {
1309 iett = (ItemEstruturaIett) itensTemp.get(0);
1310 }
1311 else {
1312 lancarErro("Item Nulo para: " + nomeProduto + " para siglaPai: " + siglaAcao);
1313
1314 }
1315
1316
1317
1318
1319 String chaveIndicador = iett.getItemEstruturaIett().getSiglaIett() + "_" + "_" + iett.getNomeIett() + "_" + nomeIndicador;
1320
1321 if (!indicadoresIncluidos.contains(chaveIndicador)) {
1322
1323 indicadoresIncluidos.add(chaveIndicador);
1324
1325
1326 ItemEstrtIndResulIettr indicador = new ItemEstrtIndResulIettr();
1327 indicador.setItemEstruturaIett(iett);
1328 indicador.setNomeIettir(nomeIndicador);
1329 indicador.setUnidMedidaIettr(unidadeIndicador);
1330 indicador.setIndProjecaoIettr(Dominios.NAO);
1331 indicador.setIndAtivoIettr(Dominios.SIM);
1332 indicador.setIndPrevPorLocal(Dominios.SIM);
1333 indicador.setIndRealPorLocal(Dominios.NAO);
1334 indicador.setIndTipoQtde(Dominios.IETTR_QUANTIDADE);
1335 indicador.setUsuarioUsuManutencao(usuarioLogado);
1336 indicador.setDataUltManutencao(Data.getDataAtual());
1337
1338
1339 SisAtributoSatb metaFisicaPPA = (SisAtributoSatb) this.selectObjeto("SisAtributoSatb", "codSatb", LONG, Long.valueOf(41), session);
1340 indicador.setSisAtributoSatb(metaFisicaPPA);
1341
1342
1343
1344
1345
1346 session.save(indicador);
1347 objetos.add(indicador);
1348 }
1349 }
1350
1351 msg("++++++++++++++++ [ Realizando Commit ] ++++++++++++++++++++");
1352 tx.commit();
1353
1354
1355 if (super.logBean != null) {
1356 super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
1357 super.logBean.setOperacao("INC");
1358 Iterator itObj = objetos.iterator();
1359
1360 while (itObj.hasNext()) {
1361 super.logBean.setObj(itObj.next());
1362 super.loggerAuditoria.info(logBean.toString());
1363 }
1364 }
1365 msg("++++++++++++++++ [ Processo Finalizado Com Sucesso ] ++++++++++++++++++++");
1366
1367 } catch (Exception e) {
1368 e.printStackTrace();
1369 msg("++++++++++++++++ [ Erro no Processo. Executando RollBack ] ++++++++++++++++++++");
1370 if (tx != null)
1371 try {
1372 tx.rollback();
1373 } catch (HibernateException r) {
1374 this.logger.error(r);
1375 throw new ECARException("erro.hibernateException");
1376 }
1377 this.logger.error(e);
1378 throw new ECARException("erro.hibernateException");
1379 }
1380 }
1381
1382 public void efetuarCargaValoresIndicadoresProdutosCOP() throws ECARException {
1383
1384
1385
1386 EstruturaEtt estruturaProdutos = (EstruturaEtt) new EstruturaDao(request).buscar(EstruturaEtt.class, Long.valueOf(21));
1387
1388 Transaction tx = null;
1389
1390 try {
1391
1392
1393
1394
1395 ArrayList objetos = new ArrayList();
1396
1397 super.inicializarLogBean();
1398
1399 msg("++++++++++++++++ [ Processo Iniciado ] ++++++++++++++++++++");
1400 tx = session.beginTransaction();
1401
1402 msg("++++++++++++++++ [ Lendo Arquivo ] ++++++++++++++++++++");
1403 BufferedReader in = new BufferedReader(new FileReader("/home/aleixo/cop/dadosProdutosOK.csv"));
1404
1405 String linha = "";
1406 while ((linha = in.readLine()) != null) {
1407
1408
1409
1410
1411 String[] campos = linha.split(";");
1412
1413 String anoExe = campos[0].trim();
1414 String siglaAcao = campos[1].trim();
1415 String siglaProduto = campos[2].trim();
1416 String indObra = campos[3].trim();
1417 String nomeIndicador = Util.removeEspacosDuplicados(campos[4].trim());
1418 String nomeProduto = Util.removeEspacosDuplicados(campos[5].trim());
1419 String unidadeIndicador = campos[6].trim();
1420 String valorPrevisto = campos[7].trim();
1421 String codRegiao = campos[8].trim();
1422
1423 String codMunicipio = "";
1424 if (campos.length == 10)
1425 codMunicipio = campos[9].trim();
1426
1427 ExercicioExe exercicio = (ExercicioExe) this.selectObjeto("ExercicioExe", "descricaoExe", STRING, anoExe, session);
1428
1429
1430 StringBuilder select = new StringBuilder();
1431 select.append("select local from LocalItemLit local");
1432 select.append(" where local.codPlanejamentoLit = :codLocal");
1433 select.append(" and (local.localGrupoLgp.codLgp = 8 or local.localGrupoLgp.codLgp = 11)");
1434
1435 Query q = this.session.createQuery(select.toString());
1436 q.setString("codLocal", (!"".equals(codMunicipio) ? codMunicipio : codRegiao));
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452 q.setMaxResults(1);
1453
1454 Object o = q.uniqueResult();
1455 if (o == null) {
1456 if (!"".equals(codMunicipio))
1457 lancarErro("Local invalido para Municipio: " + codMunicipio);
1458 else
1459 lancarErro("Local invalido para Regiao: " + codRegiao);
1460 }
1461 LocalItemLit local = (LocalItemLit) o;
1462
1463 if ("".equals(valorPrevisto)) {
1464 lancarErro("Valor inválido: [" + valorPrevisto + "]");
1465 }
1466
1467 ItemEstruturaIett iett = null;
1468
1469 select = new StringBuilder();
1470 select.append("select item from ItemEstruturaIett item where item.nomeIett = :nome and item.estruturaEtt.codEtt = :codEtt and item.itemEstruturaIett.siglaIett = :siglaPai");
1471
1472 q = session.createQuery(select.toString());
1473 q.setString("nome", nomeProduto);
1474 q.setString("siglaPai", siglaAcao);
1475 q.setLong("codEtt", estruturaProdutos.getCodEtt().longValue());
1476
1477 List itensTemp = q.list();
1478 if (itensTemp != null && !itensTemp.isEmpty()) {
1479 iett = (ItemEstruturaIett) itensTemp.get(0);
1480 }
1481 else {
1482 lancarErro("Item Nulo para: " + nomeProduto + " para siglaPai: " + siglaAcao);
1483
1484 }
1485
1486
1487 select = new StringBuilder();
1488 select.append("select indicador from ItemEstrtIndResulIettr indicador");
1489 select.append(" where indicador.itemEstruturaIett.codIett = :item");
1490 select.append(" and lower(indicador.nomeIettir) = :nomeInd");
1491
1492 q = this.session.createQuery(select.toString());
1493 q.setLong("item", iett.getCodIett().longValue());
1494 q.setString("nomeInd", nomeIndicador.toLowerCase());
1495
1496 List indicadores = q.list();
1497
1498 ItemEstrtIndResulIettr indicador = null;
1499 if (indicadores != null && !indicadores.isEmpty()) {
1500
1501 indicador = (ItemEstrtIndResulIettr) indicadores.get(0);
1502 }
1503 else {
1504 lancarErro("Indicador = null para: " + nomeIndicador);
1505 }
1506
1507 ItemEstrtIndResulLocalIettirl indResulLocal = new ItemEstrtIndResulLocalIettirl();
1508 indResulLocal.setDataInclusaoIettirl(Data.getDataAtual());
1509 indResulLocal.setExercicioExe(exercicio);
1510 indResulLocal.setIndAtivoIettirl(Dominios.SIM);
1511 indResulLocal.setItemEsrtIndResulIettr(indicador);
1512 indResulLocal.setLocalItemLit(local);
1513 indResulLocal.setQtdPrevistaIettirl(Double.valueOf(valorPrevisto));
1514
1515 session.save(indResulLocal);
1516 objetos.add(indResulLocal);
1517
1518 }
1519
1520 msg("++++++++++++++++ [ Realizando Commit ] ++++++++++++++++++++");
1521 tx.commit();
1522
1523
1524 if (super.logBean != null) {
1525 super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
1526 super.logBean.setOperacao("INC");
1527 Iterator itObj = objetos.iterator();
1528
1529 while (itObj.hasNext()) {
1530 super.logBean.setObj(itObj.next());
1531 super.loggerAuditoria.info(logBean.toString());
1532 }
1533 }
1534 msg("++++++++++++++++ [ Processo Finalizado Com Sucesso ] ++++++++++++++++++++");
1535
1536 } catch (Exception e) {
1537 e.printStackTrace();
1538 msg("++++++++++++++++ [ Erro no Processo. Executando RollBack ] ++++++++++++++++++++");
1539 if (tx != null)
1540 try {
1541 tx.rollback();
1542 } catch (HibernateException r) {
1543 this.logger.error(r);
1544 throw new ECARException("erro.hibernateException");
1545 }
1546 this.logger.error(e);
1547 throw new ECARException("erro.hibernateException");
1548 }
1549 }
1550
1551 public void efetuarTotalizacaoIndicadoresProdutosCOP() throws ECARException {
1552
1553
1554
1555
1556 EstruturaEtt estruturaProdutos = (EstruturaEtt) new EstruturaDao(request).buscar(EstruturaEtt.class, Long.valueOf(21));
1557 ExercicioExe exe2008 = (ExercicioExe) buscar(ExercicioExe.class, Long.valueOf(6));
1558 ExercicioExe exe2009 = (ExercicioExe) buscar(ExercicioExe.class, Long.valueOf(7));
1559 ExercicioExe exe2010 = (ExercicioExe) buscar(ExercicioExe.class, Long.valueOf(8));
1560 ExercicioExe exe2011 = (ExercicioExe) buscar(ExercicioExe.class, Long.valueOf(9));
1561
1562 Transaction tx = null;
1563
1564 try {
1565
1566
1567
1568
1569 List<CargaProdutosPPA> itensArquivo = new ArrayList<CargaProdutosPPA>();
1570
1571 msg("++++++++++++++++ [ Processo Iniciado ] ++++++++++++++++++++");
1572 tx = session.beginTransaction();
1573
1574 msg("++++++++++++++++ [ Lendo Arquivo ] ++++++++++++++++++++");
1575 BufferedReader in = new BufferedReader(new FileReader("/home/aleixo/cop/dadosProdutosOK.csv"));
1576 String linha = "";
1577 while ((linha = in.readLine()) != null) {
1578
1579
1580
1581
1582 String[] campos = linha.split(";");
1583
1584 String anoExe = campos[0].trim();
1585 String siglaAcao = campos[1].trim();
1586 String siglaProduto = campos[2].trim();
1587 String indObra = campos[3].trim();
1588 String nomeIndicador = campos[4].trim();
1589 String nomeProduto = campos[5].trim();
1590 String unidadeIndicador = campos[6].trim();
1591 String valorPrevisto = campos[7].trim();
1592 String codRegiao = campos[8].trim();
1593
1594 String codMunicipio = "";
1595 if (campos.length == 10)
1596 codMunicipio = campos[9].trim();
1597
1598 CargaProdutosPPA itemArquivo = new CargaProdutosPPA();
1599 itemArquivo.setAnoExe(anoExe);
1600 itemArquivo.setCodMunicipio(codMunicipio);
1601 itemArquivo.setCodRegiao(codRegiao);
1602 itemArquivo.setIndObra(indObra);
1603 itemArquivo.setNomeIndicador(Util.removeEspacosDuplicados(nomeIndicador));
1604 itemArquivo.setNomeProduto(Util.removeEspacosDuplicados(nomeProduto));
1605 itemArquivo.setSiglaAcao(siglaAcao);
1606 itemArquivo.setSiglaProduto(siglaProduto);
1607 itemArquivo.setUnidadeIndicador(unidadeIndicador);
1608 itemArquivo.setValorPrevisto(valorPrevisto);
1609
1610 itensArquivo.add(itemArquivo);
1611 }
1612
1613 Set itens = estruturaProdutos.getItemEstruturaIetts();
1614 if (itens != null && !itens.isEmpty()) {
1615 for (Iterator it = itens.iterator(); it.hasNext();) {
1616 ItemEstruturaIett item = (ItemEstruturaIett) it.next();
1617
1618 String chaveItem = item.getItemEstruturaIett().getSiglaIett() + "_" + "_" + item.getNomeIett();
1619
1620 List<ItemEstrtIndResulIettr> indicadores = new ArrayList<ItemEstrtIndResulIettr>(item.getItemEstrtIndResulIettrs());
1621
1622 msg("--> Percorrendo indicadores do item " + item.getNomeIett());
1623
1624 for (ItemEstrtIndResulIettr indicador : indicadores) {
1625
1626 double previsto2008 = 0;
1627 double previsto2009 = 0;
1628 double previsto2010 = 0;
1629 double previsto2011 = 0;
1630
1631 for (CargaProdutosPPA itemArq : itensArquivo) {
1632 String chaveItemArq = itemArq.getSiglaAcao() + "_" + "_" + itemArq.getNomeProduto();
1633
1634 if (chaveItem.equals(chaveItemArq)) {
1635 if (indicador.getNomeIettir().equals(itemArq.getNomeIndicador())) {
1636 if ("2008".equals(itemArq.getAnoExe())) {
1637 previsto2008 += Double.valueOf(itemArq.getValorPrevisto()).doubleValue();
1638 }
1639 if ("2009".equals(itemArq.getAnoExe())) {
1640 previsto2009 += Double.valueOf(itemArq.getValorPrevisto()).doubleValue();
1641 }
1642 if ("2010".equals(itemArq.getAnoExe())) {
1643 previsto2010 += Double.valueOf(itemArq.getValorPrevisto()).doubleValue();
1644 }
1645 if ("2011".equals(itemArq.getAnoExe())) {
1646 previsto2011 += Double.valueOf(itemArq.getValorPrevisto()).doubleValue();
1647 }
1648 }
1649 }
1650 }
1651
1652
1653
1654
1655 if (previsto2008 > 0) {
1656 msg("-------> Gravando total para 2008: " + previsto2008);
1657
1658 ItemEstrutFisicoIettfPK compId2008 = new ItemEstrutFisicoIettfPK();
1659 compId2008.setCodExe(exe2008.getCodExe());
1660 compId2008.setCodIettir(indicador.getCodIettir());
1661
1662 ItemEstrutFisicoIettf iettf2008 = new ItemEstrutFisicoIettf();
1663 iettf2008.setComp_id(compId2008);
1664 iettf2008.setDataInclusaoIettf(Data.getDataAtual());
1665 iettf2008.setExercicioExe(exe2008);
1666 iettf2008.setIndAtivoIettf(Dominios.SIM);
1667 iettf2008.setItemEstrtIndResulIettr(indicador);
1668 iettf2008.setQtdPrevistaIettf(Double.valueOf(previsto2008));
1669
1670 session.save(iettf2008);
1671 }
1672
1673
1674 if (previsto2009 > 0) {
1675 msg("-------> Gravando total para 2009: " + previsto2009);
1676
1677 ItemEstrutFisicoIettfPK compId2009 = new ItemEstrutFisicoIettfPK();
1678 compId2009.setCodExe(exe2009.getCodExe());
1679 compId2009.setCodIettir(indicador.getCodIettir());
1680
1681 ItemEstrutFisicoIettf iettf2009 = new ItemEstrutFisicoIettf();
1682 iettf2009.setComp_id(compId2009);
1683 iettf2009.setDataInclusaoIettf(Data.getDataAtual());
1684 iettf2009.setExercicioExe(exe2009);
1685 iettf2009.setIndAtivoIettf(Dominios.SIM);
1686 iettf2009.setItemEstrtIndResulIettr(indicador);
1687 iettf2009.setQtdPrevistaIettf(Double.valueOf(previsto2009));
1688
1689 session.save(iettf2009);
1690 }
1691
1692
1693 if (previsto2010 > 0) {
1694 msg("-------> Gravando total para 2010: " + previsto2010);
1695
1696 ItemEstrutFisicoIettfPK compId2010 = new ItemEstrutFisicoIettfPK();
1697 compId2010.setCodExe(exe2010.getCodExe());
1698 compId2010.setCodIettir(indicador.getCodIettir());
1699
1700 ItemEstrutFisicoIettf iettf2010 = new ItemEstrutFisicoIettf();
1701 iettf2010.setComp_id(compId2010);
1702 iettf2010.setDataInclusaoIettf(Data.getDataAtual());
1703 iettf2010.setExercicioExe(exe2010);
1704 iettf2010.setIndAtivoIettf(Dominios.SIM);
1705 iettf2010.setItemEstrtIndResulIettr(indicador);
1706 iettf2010.setQtdPrevistaIettf(Double.valueOf(previsto2010));
1707
1708 session.save(iettf2010);
1709 }
1710
1711
1712 if (previsto2011 > 0) {
1713 msg("-------> Gravando total para 2011: " + previsto2011);
1714
1715 ItemEstrutFisicoIettfPK compId2011 = new ItemEstrutFisicoIettfPK();
1716 compId2011.setCodExe(exe2011.getCodExe());
1717 compId2011.setCodIettir(indicador.getCodIettir());
1718
1719 ItemEstrutFisicoIettf iettf2011 = new ItemEstrutFisicoIettf();
1720 iettf2011.setComp_id(compId2011);
1721 iettf2011.setDataInclusaoIettf(Data.getDataAtual());
1722 iettf2011.setExercicioExe(exe2011);
1723 iettf2011.setIndAtivoIettf(Dominios.SIM);
1724 iettf2011.setItemEstrtIndResulIettr(indicador);
1725 iettf2011.setQtdPrevistaIettf(Double.valueOf(previsto2011));
1726
1727 session.save(iettf2011);
1728 }
1729 }
1730 }
1731 }
1732
1733 msg("++++++++++++++++ [ Realizando Commit ] ++++++++++++++++++++");
1734 tx.commit();
1735
1736
1737 msg("++++++++++++++++ [ Processo Finalizado Com Sucesso ] ++++++++++++++++++++");
1738
1739 } catch (Exception e) {
1740 e.printStackTrace();
1741 msg("++++++++++++++++ [ Erro no Processo. Executando RollBack ] ++++++++++++++++++++");
1742 if (tx != null)
1743 try {
1744 tx.rollback();
1745 } catch (HibernateException r) {
1746 this.logger.error(r);
1747 throw new ECARException("erro.hibernateException");
1748 }
1749 this.logger.error(e);
1750 throw new ECARException("erro.hibernateException");
1751 }
1752 }
1753
1754
1755
1756
1757
1758
1759 public List listarCargaProdutosCOP() throws ECARException {
1760
1761 try {
1762 msg("++++++++++++++++ [ Processo Iniciado ] ++++++++++++++++++++");
1763
1764 List<CargaFinalidadesPPA> itens = new ArrayList<CargaFinalidadesPPA>();
1765 List<String> listVerif = new ArrayList<String>();
1766 msg("++++++++++++++++ [ Lendo Arquivo ] ++++++++++++++++++++");
1767 BufferedReader in = new BufferedReader(new FileReader("/home/aleixo/cop/dadosProdutosOK.csv"));
1768 String linha = "";
1769 while ((linha = in.readLine()) != null) {
1770
1771
1772
1773
1774
1775
1776 String[] campos = linha.split(";");
1777
1778 String anoExe = campos[0].trim();
1779 String siglaAcao = campos[1].trim();
1780 String siglaProduto = campos[2].trim();
1781 String indObra = campos[3].trim();
1782 String nomeIndicador = campos[4].trim();
1783 String nomeProduto = campos[5].trim();
1784 String unidadeIndicador = campos[6].trim();
1785 String valorPrevisto = campos[7].trim();
1786 String codRegiao = campos[8].trim();
1787
1788 String codMunicipio = "";
1789 if (campos.length == 10)
1790 codMunicipio = campos[9].trim();
1791
1792 CargaFinalidadesPPA item = new CargaFinalidadesPPA();
1793
1794 item.setFinalidade(nomeProduto + " - " + siglaProduto + " - " + anoExe);
1795 item.setSigla(siglaAcao);
1796
1797 String chave = nomeProduto;
1798 if (!listVerif.contains(chave)) {
1799 listVerif.add(chave);
1800 itens.add(item);
1801 }
1802
1803 }
1804
1805 Collections.sort(itens, new Comparator() {
1806 public int compare(Object o1, Object o2) {
1807 CargaFinalidadesPPA c1 = (CargaFinalidadesPPA) o1;
1808 CargaFinalidadesPPA c2 = (CargaFinalidadesPPA) o2;
1809
1810 return c1.getFinalidade().compareTo(c2.getFinalidade());
1811 }
1812 });
1813
1814 Collections.sort(itens, new Comparator() {
1815 public int compare(Object o1, Object o2) {
1816 CargaFinalidadesPPA c1 = (CargaFinalidadesPPA) o1;
1817 CargaFinalidadesPPA c2 = (CargaFinalidadesPPA) o2;
1818
1819 return c1.getSigla().compareTo(c2.getSigla());
1820 }
1821 });
1822
1823 msg("++++++++++++++++ [ Início do Arquivo ] ++++++++++++++++++++");
1824
1825 FileOutputStream arquivo = new FileOutputStream("/home/aleixo/Desktop/itensRepProd_NOVO.txt");
1826
1827 for (CargaFinalidadesPPA item : itens) {
1828 String total = item.getSigla() + " - " + item.getFinalidade() + "\n";
1829 arquivo.write(total.getBytes());
1830 arquivo.flush();
1831 }
1832
1833 arquivo.close();
1834
1835 msg("++++++++++++++++ [ Fim do Arquivo ] ++++++++++++++++++++");
1836
1837 msg("++++++++++++++++ [ Processo Finalizado Com Sucesso ] ++++++++++++++++++++");
1838
1839 return itens;
1840 } catch (Exception e) {
1841 e.printStackTrace();
1842 msg("++++++++++++++++ [ Erro no Processo. Executando RollBack ] ++++++++++++++++++++");
1843 this.logger.error(e);
1844 throw new ECARException("erro.hibernateException");
1845 }
1846 }
1847
1848
1849
1850
1851
1852
1853
1854
1855 public void efetuarCargaIntegralizacaoDeCapitalDefault() throws ECARException {
1856
1857 final int COD_INT_NAO = 54;
1858
1859
1860 EstruturaEtt estrutura = (EstruturaEtt) new EstruturaDao(request).buscar(EstruturaEtt.class, Long.valueOf(20));
1861 SisAtributoSatb atbIntNao = (SisAtributoSatb) buscar(SisAtributoSatb.class, Long.valueOf(COD_INT_NAO));
1862 UsuarioUsu usuarioLogado = ((SegurancaECAR) request.getSession().getAttribute("seguranca")).getUsuario();
1863
1864 Transaction tx = null;
1865
1866 try {
1867 msg("+++++++++++++++++ [ INICIO TRANSACAO ] ++++++++++++++++++++");
1868 tx = session.beginTransaction();
1869
1870 if (estrutura.getItemEstruturaIetts() != null && !estrutura.getItemEstruturaIetts().isEmpty()) {
1871
1872 for (Iterator it = estrutura.getItemEstruturaIetts().iterator(); it.hasNext();) {
1873 ItemEstruturaIett item = (ItemEstruturaIett) it.next();
1874
1875 if (Dominios.NAO.equals(item.getEstruturaEtt().getIndEtapaNivelSuperiorEtt())) {
1876 ItemEstruturaSisAtributoIettSatb atbLivre = new ItemEstruturaSisAtributoIettSatb();
1877 atbLivre.setDataUltManutencaoIettSatb(Data.getDataAtual());
1878 atbLivre.setItemEstruturaIett(item);
1879 atbLivre.setSisAtributoSatb(atbIntNao);
1880 atbLivre.setUsuarioUsu(usuarioLogado);
1881 atbLivre.atribuirPKPai();
1882
1883 Set atbsLivres = item.getItemEstruturaSisAtributoIettSatbs();
1884
1885 boolean podeInserir = true;
1886 if (atbsLivres != null && !atbsLivres.isEmpty()) {
1887 for (Iterator it2 = atbsLivres.iterator(); it2.hasNext();) {
1888 ItemEstruturaSisAtributoIettSatb aux = (ItemEstruturaSisAtributoIettSatb) it2.next();
1889
1890 if (aux.getItemEstruturaIett().equals(item) && aux.getSisAtributoSatb().equals(atbIntNao)) {
1891 podeInserir = false;
1892 break;
1893 }
1894 }
1895 }
1896
1897 if (podeInserir) {
1898 session.save(atbLivre);
1899 msg("--> Gravando \"Não\" para item: " + item.getSiglaIett() + " - " + item.getNomeIett());
1900 }
1901 }
1902 }
1903 }
1904
1905 msg("+++++++++++++++++ [ COMMIT TRANSACAO ] ++++++++++++++++++++");
1906 tx.commit();
1907 msg("+++++++++++++++++ [ FIM TRANSACAO ] ++++++++++++++++++++");
1908
1909 } catch (Exception e) {
1910 e.printStackTrace();
1911 if (tx != null)
1912 try {
1913 msg("+++++++++++++++++ [ ROLLBACK TRANSACAO ] ++++++++++++++++++++");
1914 tx.rollback();
1915 } catch (HibernateException r) {
1916 this.logger.error(r);
1917 throw new ECARException("erro.hibernateException");
1918 }
1919 this.logger.error(e);
1920 throw new ECARException("erro.hibernateException");
1921 }
1922 }
1923 }