System.out.println("TempAtualizacaoARFDao.duplicarEstruturas() - Buscando estruturas...");
List listaEstruturas = estruturaDao.listar(EstruturaEtt.class, new String[]{"seqApresentacaoEtt","asc"});
if(listaEstruturas != null && !listaEstruturas.isEmpty()){
Iterator it = listaEstruturas.iterator();
while(it.hasNext()){
EstruturaEtt ett = (EstruturaEtt) it.next();
//Clonando a estrutura
EstruturaEtt novaEtt = (EstruturaEtt) BeanUtils.cloneBean(ett);
//EstruturaEtt novaEtt = new EstruturaEtt();
//Setando os dados para incluir...
novaEtt.setCodEtt(null);
String nome = ett.getNomeEtt() + " 2";
if(nome.length() > 30)
nome = nome.substring(0, 28) + "2";
novaEtt.setNomeEtt(nome);
String sigla = ett.getSiglaEtt() + " 2";
if(sigla.length() > 10)
sigla = sigla.substring(0, 8) + "2";
novaEtt.setSiglaEtt(sigla);
novaEtt.setEstruturaEtt(null);
novaEtt.setEstruturaEtts(null);
novaEtt.setItemEstruturaIetts(null);
novaEtt.setItemEstruturarevisaoIettrevs(null);
novaEtt.setEstruturaSituacaoEtts(null);
novaEtt.setTipoAcompanhamentoTas(null);
/*
List situacoes = new ArrayList(ett.getEstruturaSituacaoEtts());
novaEtt.setEstruturaSituacaoEtts(null);
*/
List estrutTpFuncAcmpEtttfa = new ArrayList(ett.getEstrutTpFuncAcmpEtttfas());
novaEtt.setEstrutTpFuncAcmpEtttfas(null);
List estruturaAcessoEttas = new ArrayList(ett.getEstruturaAcessoEttas());
novaEtt.setEstruturaAcessoEttas(null);
List estruturaAtributoEttats = new ArrayList(ett.getEstruturaAtributoEttats());
novaEtt.setEstruturaAtributoEttats(null);
List estruturaFuncaoEttfs = new ArrayList(ett.getEstruturaFuncaoEttfs());
novaEtt.setEstruturaFuncaoEttfs(null);
//Salvando a estrutura para obter o novo codEtt
session.save(novaEtt);
// Percorrendo objetos sets da estrutura para modificar para a nova estrutura
/*if(situacoes != null && !situacoes.isEmpty()){
Iterator itSituacoes = situacoes.iterator();
while(itSituacoes.hasNext()){
SituacaoSit sit = (SituacaoSit) itSituacoes.next();
SituacaoSit novaSit = (SituacaoSit) BeanUtils.cloneBean(sit);
//novaEtttfa.getComp_id().setCodEtt(novaEtt.getCodEtt());
//novaEtttfa.setEstruturaEtt(novaEtt);
novaSit.getEstruturaSituacaoEtts().add(novaEtt);
session.save(novaSit);
}
}*/
if(estrutTpFuncAcmpEtttfa != null && !estrutTpFuncAcmpEtttfa.isEmpty()){
Iterator itEstrutTpFuncAcmpEtttfa = estrutTpFuncAcmpEtttfa.iterator();
while(itEstrutTpFuncAcmpEtttfa.hasNext()){
EstrutTpFuncAcmpEtttfa etttfa = (EstrutTpFuncAcmpEtttfa) itEstrutTpFuncAcmpEtttfa.next();
EstrutTpFuncAcmpEtttfa novaEtttfa = (EstrutTpFuncAcmpEtttfa) BeanUtils.cloneBean(etttfa);
novaEtttfa.getComp_id().setCodEtt(novaEtt.getCodEtt());
novaEtttfa.setEstruturaEtt(novaEtt);
session.save(novaEtttfa);
}
}
if(estruturaAtributoEttats != null && !estruturaAtributoEttats.isEmpty()){
Iterator itEstruturaAtributosEttats = estruturaAtributoEttats.iterator();
while(itEstruturaAtributosEttats.hasNext()){
EstruturaAtributoEttat ettat = (EstruturaAtributoEttat) itEstruturaAtributosEttats.next();
EstruturaAtributoEttat novaEttat = (EstruturaAtributoEttat) BeanUtils.cloneBean(ettat);
novaEttat.getComp_id().setCodEtt(novaEtt.getCodEtt());
novaEttat.setEstruturaEtt(novaEtt);
novaEttat.setEstAtribTipoAcompEatas(null);
session.save(novaEttat);
if(ettat != null && ettat.getEstAtribTipoAcompEatas() != null && !ettat.getEstAtribTipoAcompEatas().isEmpty()) {
List eatas = new ArrayList(ettat.getEstAtribTipoAcompEatas());
if(eatas != null && !eatas.isEmpty()){
Iterator itEatas = eatas.iterator();
while(itEatas.hasNext()){
EstAtribTipoAcompEata eata = (EstAtribTipoAcompEata) itEatas.next();
EstAtribTipoAcompEata novaEata = (EstAtribTipoAcompEata) BeanUtils.cloneBean(eata);
novaEata.setEstruturaAtributoEttat(novaEttat);
session.save(novaEata);
}
}
}
}
}
if(estruturaFuncaoEttfs != null && !estruturaFuncaoEttfs.isEmpty()){
Iterator itEstruturaFuncaoEttfs = estruturaFuncaoEttfs.iterator();
while(itEstruturaFuncaoEttfs.hasNext()){
EstruturaFuncaoEttf ettf = (EstruturaFuncaoEttf) itEstruturaFuncaoEttfs.next();
EstruturaFuncaoEttf novaEttf = (EstruturaFuncaoEttf) BeanUtils.cloneBean(ettf);
novaEttf.getComp_id().setCodEtt(novaEtt.getCodEtt());
novaEttf.setEstruturaEtt(novaEtt);
session.save(novaEttf);
}
}
if(estruturaAcessoEttas != null && !estruturaAcessoEttas.isEmpty()){
Iterator itEstruturaAcessoEttas = estruturaAcessoEttas.iterator();
while(itEstruturaAcessoEttas.hasNext()){
EstruturaAcessoEtta etta = (EstruturaAcessoEtta) itEstruturaAcessoEttas.next();
EstruturaAcessoEtta novoEtta = (EstruturaAcessoEtta) BeanUtils.cloneBean(etta);
novoEtta.getComp_id().setCodEtt(novaEtt.getCodEtt());
novoEtta.setEstruturaEtt(novaEtt);
session.save(novoEtta);
}
}