View Javadoc

1   package ecar.dao;
2   
3   import java.io.BufferedReader;
4   import java.io.FileReader;
5   import java.math.BigDecimal;
6   import java.util.ArrayList;
7   import java.util.HashSet;
8   import java.util.Iterator;
9   import java.util.List;
10  
11  import javax.servlet.http.HttpServletRequest;
12  
13  import org.hibernate.HibernateException;
14  import org.hibernate.Query;
15  import org.hibernate.Transaction;
16  
17  import comum.database.Dao;
18  import comum.util.Data;
19  
20  import ecar.exception.ECARException;
21  import ecar.login.SegurancaECAR;
22  import ecar.permissao.ControlePermissao;
23  import ecar.pojo.EstruturaEtt;
24  import ecar.pojo.ItemEstrutLocalIettl;
25  import ecar.pojo.ItemEstrutUsuarioIettus;
26  import ecar.pojo.ItemEstruturaIett;
27  import ecar.pojo.LocalItemLit;
28  import ecar.pojo.OrgaoOrg;
29  import ecar.pojo.PaiFilho;
30  import ecar.pojo.PeriodicidadePrdc;
31  import ecar.pojo.SisAtributoSatb;
32  import ecar.pojo.SituacaoSit;
33  import ecar.pojo.SubAreaSare;
34  import ecar.pojo.UsuarioUsu;
35  
36  /**
37   * DAO temporária para carga/atualizacao em ItemEstruturaIetts - E-CAR DF
38   * @author cristiano
39   */
40  public class TempCargaEcarDFIettsBDDao extends Dao {
41    public TempCargaEcarDFIettsBDDao(HttpServletRequest request) {
42      super();
43      this.request = request;
44    }
45  
46    public void efetuarCargaItens() throws ECARException {
47      Transaction tx = null;
48  
49      try {
50        super.inicializarLogBean();
51  
52        tx = session.beginTransaction();
53  
54        // Buscando a estrutura Empreendimentos
55        // EstruturaEtt estrutura = (EstruturaEtt) new
56        // EstruturaDao(request).buscar(EstruturaEtt.class, Long.valueOf(3));
57        // Buscando a estrutura SUB-Empreendimentos
58        EstruturaEtt estrutura = (EstruturaEtt) new EstruturaDao(request).buscar(EstruturaEtt.class, Long.valueOf(6));
59  
60        BufferedReader in = new BufferedReader(new FileReader("/workspace/importacao/impsubemp.txt"));
61        String linha = "";
62        while ((linha = in.readLine()) != null) {
63  
64          String[] campos = linha.split(";");
65          System.out.println(linha);
66          /*
67           * 0 T2015_DSC_EMPREENDIMENTO 1 T2015_COD_EMPREENDIMENTO_SPI 2
68           * T2015_DAT_DATA_CONCLUSAO_EMPREENDIMENTO 3 T2016_IND_PRIORITARIA (ind
69           * Monitorada ) 4 T2016_VAL_EMPREENDIMENTO_TOTAL (valor total no item) 5
70           * COD_IMPORTACAO 6 T2016_NUM_OCORRENCIA_UF 7 T2016_IDN_EMPREENDIMENTO
71           * (Sigla) 8 T2016_TXT_EMPREENDIEMNTO 9 cod_local1 (códigos para tabela
72           * Item Local com código do local) 10 cod_local2 11 cod_local3 12
73           * cod_local4 13 cod_local5 14 cod_orgao (código tabela Orgão) 15
74           * cod_situa (código tabela de situação) 16 cod_bol_(Ind é critico ) 17
75           * cod_sis_atr (Nível Planejamento) 18 Cod_iett (Item Estrutura PAI) 19
76           * Código Sub_Tipo (Código tabela Sub_Area) (NOVO)
77           */
78  
79          String nomeItem = campos[0].trim();
80          String descricaoR3 = campos[1].trim();
81          String dataTermino = campos[2].trim();
82          String indMonitoramento = campos[3].trim();
83          String valorPrevisto = campos[4].trim();
84          String descricaoR2 = campos[5].trim();
85          String descricaoR1 = campos[6].trim();
86          String siglaItem = campos[7].trim();
87          String descricaoR4 = campos[8].trim();
88          String local1 = campos[9].trim();
89          String local2 = campos[10].trim();
90          String local3 = campos[11].trim();
91          String local4 = campos[12].trim();
92          String local5 = campos[13].trim();
93          String orgao = campos[14].trim();
94          String situacao = campos[15].trim();
95          String indCritica = campos[16].trim();
96          String nivelPlanejamento = campos[17].trim();
97          String codItemPai = campos[18].trim();
98          String codSubArea = campos[19].trim();
99          // String codSubArea = "";
100 
101         String sqlBuscaPai = "select pai from ItemEstruturaIett pai where pai.codIett = :codIettPai";
102 
103         Query q = this.session.createQuery(sqlBuscaPai);
104         q.setString("codIettPai", codItemPai);
105 
106         q.setMaxResults(1);
107         ItemEstruturaIett iettPai = (ItemEstruturaIett) q.uniqueResult();
108         if (iettPai == null)
109           throw new ECARException("IettPai Nulo");
110 
111         ItemEstruturaIett iett = new ItemEstruturaIett();
112 
113         iett.setIndAtivoIett("S");
114         iett.setIndBloqPlanejamentoIett("N");
115 
116         if ("1".equals(indCritica)) {
117           indCritica = "S";
118         }
119         else {
120           indCritica = "N";
121         }
122         iett.setIndCriticaIett(indCritica);
123 
124         if ("1".equals(indMonitoramento)) {
125           indMonitoramento = "S";
126         }
127         else {
128           indMonitoramento = "N";
129         }
130         iett.setIndMonitoramentoIett(indMonitoramento);
131 
132         iett.setDataInclusaoIett(Data.getDataAtual());
133         iett.setDataInicioIett(Data.parseDate("01/01/2007"));
134         if (!"".equals(dataTermino.trim())) {
135           dataTermino = dataTermino.substring(0, 10);
136           iett.setDataTerminoIett(Data.parseDate(dataTermino));
137         }
138 
139         iett.setNivelIett(Integer.valueOf(3));
140 
141         SubAreaSare subArea = null;
142         if (!codSubArea.equals("")) {
143 
144           String sqlBuscaSubArea = "select subarea from SubAreaSare subarea where subarea.codSare = :codSubArea";
145           q = this.session.createQuery(sqlBuscaSubArea);
146           q.setString("codSubArea", codSubArea);
147 
148           q.setMaxResults(1);
149           subArea = (SubAreaSare) q.uniqueResult();
150         }
151         if (subArea != null) {
152           System.out.println("CodSubArea: " + subArea.getCodSare());
153         }
154         else {
155           System.out.println("CodSubArea: NULO");
156         }
157         iett.setSubAreaSare(subArea);
158 
159         iett.setItemEstruturaIett(iettPai);
160         iett.setSiglaIett(siglaItem);
161         iett.setNomeIett(nomeItem);
162         iett.setDescricaoR3(descricaoR3);
163         if (!"".equals(valorPrevisto)) {
164           valorPrevisto = valorPrevisto.replace(',', '.');
165           iett.setValPrevistoFuturoIett(new BigDecimal(valorPrevisto));
166         }
167         iett.setDescricaoR2(descricaoR2);
168         iett.setDescricaoR1(descricaoR1);
169         iett.setDescricaoR4(descricaoR4);
170         OrgaoOrg orgaoOrg = null;
171         String sql;
172         if (!orgao.equals("")) {
173           sql = "select orgao from OrgaoOrg orgao where orgao.codOrg = :codOrg";
174           q = this.session.createQuery(sql);
175           System.out.println("orgao: " + orgao);
176           q.setLong("codOrg", Long.valueOf(orgao).longValue());
177           q.setMaxResults(1);
178 
179           orgaoOrg = (OrgaoOrg) q.uniqueResult();
180           if (orgao == null)
181             throw new ECARException("Orgao Nulo");
182           iett.setOrgaoOrgByCodOrgaoResponsavel1Iett(orgaoOrg);
183         }
184 
185         sql = "select sit from SituacaoSit sit where sit.codSit = :codSit";
186         q = this.session.createQuery(sql);
187         q.setLong("codSit", Long.valueOf(situacao).longValue());
188         q.setMaxResults(1);
189 
190         SituacaoSit situacaoSit = (SituacaoSit) q.uniqueResult();
191         if (situacaoSit == null)
192           throw new ECARException("Situacao Nulo");
193         iett.setSituacaoSit(situacaoSit);
194 
195         iett.setEstruturaEtt(estrutura);
196         iett.setPeriodicidadePrdc((PeriodicidadePrdc) super.buscar(PeriodicidadePrdc.class, Long.valueOf("1")));
197 
198         iett.setItemEstruturaNivelIettns(new HashSet());
199         iett.getItemEstruturaNivelIettns().add((SisAtributoSatb) super.buscar(SisAtributoSatb.class, Long.valueOf(nivelPlanejamento)));
200 
201         iett.setUsuarioUsuByCodUsuIncIett(((SegurancaECAR) request.getSession().getAttribute("seguranca")).getUsuario());
202 
203         iett.setDataInclusaoIett(Data.getDataAtual());
204         List filhos = new ArrayList();
205         if (iett.getItemEstUsutpfuacIettutfas() != null)
206           filhos.addAll(iett.getItemEstUsutpfuacIettutfas());
207 
208         // locais do item
209         iett.setItemEstrutLocalIettls(new HashSet());
210         if (!"".equals(local1.trim())) {
211           LocalItemLit lit = (LocalItemLit) super.buscar(LocalItemLit.class, Long.valueOf(local1));
212           ItemEstrutLocalIettl iettl = new ItemEstrutLocalIettl();
213           iettl.setDataInclusaoIettl(Data.getDataAtual());
214           iettl.setIndExclusaoPosHistorico(Boolean.FALSE);
215           iettl.setItemEstruturaIett(iett);
216           iettl.setLocalItemLit(lit);
217           iettl.setUsuarioUsuManutencao(((SegurancaECAR) request.getSession().getAttribute("seguranca")).getUsuario());
218           iett.getItemEstrutLocalIettls().add(iettl);
219         }
220         if (!"".equals(local2.trim())) {
221           LocalItemLit lit = (LocalItemLit) super.buscar(LocalItemLit.class, Long.valueOf(local2));
222           ItemEstrutLocalIettl iettl = new ItemEstrutLocalIettl();
223           iettl.setDataInclusaoIettl(Data.getDataAtual());
224           iettl.setIndExclusaoPosHistorico(Boolean.FALSE);
225           iettl.setItemEstruturaIett(iett);
226           iettl.setLocalItemLit(lit);
227           iettl.setUsuarioUsuManutencao(((SegurancaECAR) request.getSession().getAttribute("seguranca")).getUsuario());
228           iett.getItemEstrutLocalIettls().add(iettl);
229         }
230         if (!"".equals(local3.trim())) {
231           LocalItemLit lit = (LocalItemLit) super.buscar(LocalItemLit.class, Long.valueOf(local3));
232           ItemEstrutLocalIettl iettl = new ItemEstrutLocalIettl();
233           iettl.setDataInclusaoIettl(Data.getDataAtual());
234           iettl.setIndExclusaoPosHistorico(Boolean.FALSE);
235           iettl.setItemEstruturaIett(iett);
236           iettl.setLocalItemLit(lit);
237           iettl.setUsuarioUsuManutencao(((SegurancaECAR) request.getSession().getAttribute("seguranca")).getUsuario());
238           iett.getItemEstrutLocalIettls().add(iettl);
239         }
240         if (!"".equals(local4.trim())) {
241           LocalItemLit lit = (LocalItemLit) super.buscar(LocalItemLit.class, Long.valueOf(local4));
242           ItemEstrutLocalIettl iettl = new ItemEstrutLocalIettl();
243           iettl.setDataInclusaoIettl(Data.getDataAtual());
244           iettl.setIndExclusaoPosHistorico(Boolean.FALSE);
245           iettl.setItemEstruturaIett(iett);
246           iettl.setLocalItemLit(lit);
247           iettl.setUsuarioUsuManutencao(((SegurancaECAR) request.getSession().getAttribute("seguranca")).getUsuario());
248           iett.getItemEstrutLocalIettls().add(iettl);
249         }
250         if (!"".equals(local5.trim())) {
251           LocalItemLit lit = (LocalItemLit) super.buscar(LocalItemLit.class, Long.valueOf(local5));
252           ItemEstrutLocalIettl iettl = new ItemEstrutLocalIettl();
253           iettl.setDataInclusaoIettl(Data.getDataAtual());
254           iettl.setIndExclusaoPosHistorico(Boolean.FALSE);
255           iettl.setItemEstruturaIett(iett);
256           iettl.setLocalItemLit(lit);
257           iettl.setUsuarioUsuManutencao(((SegurancaECAR) request.getSession().getAttribute("seguranca")).getUsuario());
258           iett.getItemEstrutLocalIettls().add(iettl);
259         }
260 
261         if (iett.getItemEstrutLocalIettls() != null)
262           filhos.addAll(iett.getItemEstrutLocalIettls());
263 
264         session.save(iett);
265 
266         //
267         // controlar as permissoes passando o item e a lista das funcoes de
268         // acompanhamento velhas (vai ser uma lista vazia)
269         //
270         new ControlePermissao().atualizarPermissoesItemEstrutura(iett, null, session, true, request);
271 
272         // gravar permissão para o usuário que criou o item
273         ItemEstrutUsuarioIettus itemEstrutUsuario = new ItemEstrutUsuarioIettus();
274 
275         itemEstrutUsuario.setItemEstruturaIett(iett);
276         itemEstrutUsuario.setItemEstruturaIettOrigem(iett);
277         itemEstrutUsuario.setCodTpPermIettus(ControlePermissao.PERMISSAO_USUARIO);
278         itemEstrutUsuario.setUsuarioUsu(((SegurancaECAR) request.getSession().getAttribute("seguranca")).getUsuario());
279 
280         itemEstrutUsuario.setIndLeituraIettus("S");
281         itemEstrutUsuario.setIndEdicaoIettus("S");
282         itemEstrutUsuario.setIndExcluirIettus("S");
283 
284         itemEstrutUsuario.setIndAtivMonitIettus("N");
285         itemEstrutUsuario.setIndDesatMonitIettus("N");
286         itemEstrutUsuario.setIndBloqPlanIettus("N");
287         itemEstrutUsuario.setIndDesblPlanIettus("N");
288         itemEstrutUsuario.setIndInfAndamentoIettus("N");
289         itemEstrutUsuario.setIndEmitePosIettus("N");
290         itemEstrutUsuario.setIndProxNivelIettus("N");
291 
292         itemEstrutUsuario.setDataInclusaoIettus(Data.getDataAtual());
293 
294         Iterator it = filhos.iterator();
295         while (it.hasNext()) {
296           PaiFilho object = (PaiFilho) it.next();
297           object.atribuirPKPai();
298           // salva os filhos
299           session.save(object);
300         }
301 
302         session.save(itemEstrutUsuario);
303       }
304       // Integer i = Integer.parseInt("asdças-asd");
305       tx.commit();
306     } catch (Exception e) {
307       e.printStackTrace();
308       if (tx != null)
309         try {
310           tx.rollback();
311         } catch (HibernateException r) {
312           this.logger.error(r);
313           throw new ECARException("erro.hibernateException");
314         }
315       this.logger.error(e);
316       throw new ECARException("erro.hibernateException");
317     }
318   }
319 
320   /**
321    * Método somente usado em efetuarCargaItens() para retornar o usuário de um
322    * determinado órgão, seguindo planilha anexada no mantis 11861.
323    * @author aleixo
324    * @since 11/07/2007
325    * @param orgao
326    * @return
327    * @throws ECARException
328    */
329   private UsuarioUsu getUsuarioGPSByOrgao(OrgaoOrg orgao) throws ECARException {
330 
331     final long COD_ORG_SEPL = 1; /* Mirian Pappi Gomes - 325 */
332     final long COD_ORG_PGE = 5; /* Maristela Pioli - 155 */
333     final long COD_ORG_SEAP = 6; /* Luciane do Rocio Walesko Fantin - 136 */
334     final long COD_ORG_SEAB = 7; /* Teodoro Kostin Neto - 133 */
335     final long COD_ORG_SETI = 8; /* Sérgio Luiz Covalski - 149 */
336     final long COD_ORG_SECS = 9; /* Luis Carlos Fracaro - 157 */
337     final long COD_ORG_SEEC = 10; /* Matias Marino da Silva - 340 */
338     final long COD_ORG_SEDU = 11; /* Reynaldo Aquino de Paula - 158 */
339     final long COD_ORG_SEED = 12; /* Carlos Roberto Sottomaior Valiente - 139 */
340     final long COD_ORG_SEFA = 13; /* Roseli Naufal Schnekemberg - 141 */
341     final long COD_ORG_SEIM = 14; /* Eliziany Sutil de Oliveira Guimarães - 334 */
342     final long COD_ORG_SEJU = 15; /* Sílvio Carlos Nass - 143 */
343     final long COD_ORG_SEMA = 16; /* Walter Osternack Junior - 160 */
344     final long COD_ORG_SEOP = 17; /* Emir Carlos Grassani - 144 */
345     final long COD_ORG_SESA = 19; /* Sueli de Sá Riechi - 145 */
346     final long COD_ORG_SESP = 20; /* Maria Helena Paes - 147 */
347     final long COD_ORG_SETP = 21; /* Helena Oliveira Borges Saldanha - 151 */
348     final long COD_ORG_SETR = 22; /* Rejane Karam - 153 */
349     final long COD_ORG_SETU = 23; /* Elaine Ligiero Ferreira - 162 */
350     final long COD_ORG_CPE = 79; /* Maria Cristina da Silva Magalhães - 131 */
351 
352     Long chave = null;
353 
354     if (orgao != null) {
355       if (orgao.getCodOrg().longValue() == COD_ORG_SEPL)
356         chave = Long.valueOf(325);
357       if (orgao.getCodOrg().longValue() == COD_ORG_PGE)
358         chave = Long.valueOf(155);
359       if (orgao.getCodOrg().longValue() == COD_ORG_SEAP)
360         chave = Long.valueOf(136);
361       if (orgao.getCodOrg().longValue() == COD_ORG_SEAB)
362         chave = Long.valueOf(133);
363       if (orgao.getCodOrg().longValue() == COD_ORG_SETI)
364         chave = Long.valueOf(149);
365       if (orgao.getCodOrg().longValue() == COD_ORG_SECS)
366         chave = Long.valueOf(157);
367       if (orgao.getCodOrg().longValue() == COD_ORG_SEEC)
368         chave = Long.valueOf(340);
369       if (orgao.getCodOrg().longValue() == COD_ORG_SEDU)
370         chave = Long.valueOf(158);
371       if (orgao.getCodOrg().longValue() == COD_ORG_SEED)
372         chave = Long.valueOf(139);
373       if (orgao.getCodOrg().longValue() == COD_ORG_SEFA)
374         chave = Long.valueOf(141);
375       if (orgao.getCodOrg().longValue() == COD_ORG_SEIM)
376         chave = Long.valueOf(334);
377       if (orgao.getCodOrg().longValue() == COD_ORG_SEJU)
378         chave = Long.valueOf(143);
379       if (orgao.getCodOrg().longValue() == COD_ORG_SEMA)
380         chave = Long.valueOf(160);
381       if (orgao.getCodOrg().longValue() == COD_ORG_SEOP)
382         chave = Long.valueOf(144);
383       if (orgao.getCodOrg().longValue() == COD_ORG_SESA)
384         chave = Long.valueOf(145);
385       if (orgao.getCodOrg().longValue() == COD_ORG_SESP)
386         chave = Long.valueOf(147);
387       if (orgao.getCodOrg().longValue() == COD_ORG_SETP)
388         chave = Long.valueOf(151);
389       if (orgao.getCodOrg().longValue() == COD_ORG_SETR)
390         chave = Long.valueOf(153);
391       if (orgao.getCodOrg().longValue() == COD_ORG_SETU)
392         chave = Long.valueOf(162);
393       if (orgao.getCodOrg().longValue() == COD_ORG_CPE)
394         chave = Long.valueOf(131);
395 
396       if (chave != null) {
397         return (UsuarioUsu) new UsuarioDao(request).buscar(UsuarioUsu.class, chave);
398       }
399     }
400 
401     return null;
402   }
403 
404 }