try{
Iterator itEstruturas = listaEstruturas.iterator();
EstruturaEtt estruturaCorrente;
List itensEstruturaCorrente = new ArrayList();
List itensPais = new ArrayList();
List listEstruturasGeral = new ArrayList();
int sequencialItensPai = 1;
int sequencialItemPaiAtual = 1;
int sequencialEstrutura = 1;
Date dataInicio = Data.getDataAtual();
//gera uma lista com as estruturas filhas da estrutura selecionada
while (itEstruturas.hasNext()){
estruturaCorrente = (EstruturaEtt)itEstruturas.next();
//adiciona a estrutura � lista de exporta��o caso a mesma esteja ativa
if (estruturaCorrente.getIndAtivoEtt().equals("S")){
listEstruturasGeral.add(estruturaCorrente);
}
//Re-consultar a estrutura para resolver exce��o de LazyInitializationException
estruturaCorrente = (EstruturaEtt) estruturaDao.buscar(EstruturaEtt.class, estruturaCorrente.getCodEtt());
if (estruturaCorrente.getEstruturaEtts() != null && !estruturaCorrente.getEstruturaEtts().isEmpty()){
listEstruturasGeral.addAll(getEstruturasFilhas(estruturaCorrente));
}
}
Iterator itEstruturasGeral = listEstruturasGeral.iterator();
Date dataInicioItens = Data.getDataAtual();
Collection<ItemEstruturaIett> listaItemPrincipal = null;
Collection<ItemEstruturaIett> listItensPorEstrutura = null;
while (itEstruturasGeral.hasNext()){
int sequencialItens = 1;
sequencialItensPai=1;
estruturaCorrente = (EstruturaEtt) itEstruturasGeral.next();
// Cria um arquivo para cada estrutura
String caminhoCompleto = "";
//Cria o nome do arquivo -> <ID Sequencial>_<Nome da Estrutura Pai>_<Nome da Estrutura Utilizada>.txt
String nomeArquivo = String.valueOf(sequencialEstrutura);
if(estruturaCorrente.getEstruturaEtt()!=null) {
if(!estruturaCorrente.getEstruturaEtt().getNomeEtt().equals(""))
nomeArquivo += "_" + estruturaCorrente.getEstruturaEtt().getNomeEtt();
else
nomeArquivo += "_" + estruturaCorrente.getEstruturaEtt().getLabelEtt();
}
if(!estruturaCorrente.getNomeEtt().equals(""))
nomeArquivo += "_" + estruturaCorrente.getNomeEtt();
else
nomeArquivo += "_" + estruturaCorrente.getLabelEtt();
nomeArquivo+= ".txt";
nomeArquivo = nomeArquivo.replaceAll("/", "-");
sequencialEstrutura++;
caminhoCompleto = caminho + nomeArquivo;
String[] caminhoArquivo = {caminhoCompleto, nomeArquivo};
retorno.add(caminhoArquivo);
File diretorio = new File(caminho);
if(!diretorio.isDirectory())
diretorio.mkdirs();
FileOutputStream arquivo = new FileOutputStream(caminhoCompleto);
//Re-consultar a estrutura para resolver exce��o de LazyInitializationException
//estruturaCorrente = (EstruturaEtt) estruturaDao.buscar(EstruturaEtt.class, estruturaCorrente.getCodEtt());
System.out.println("Inicio Obter EstruturaAtributo:"+new Date());
List<ObjetoEstrutura> atributosOrdenados = estruturaDao.getAtributosEstruturaDadosGerais(estruturaCorrente);
Iterator<ObjetoEstrutura> atributosOrdenadosIt = atributosOrdenados.iterator();
System.out.println("Fim Obter EstruturaAtributo:"+new Date());
String linha = montaLinhaCabecalhoEstrutura(atributosOrdenadosIt, estruturaCorrente, relatorioTipoMonitoramento);
if (itemPrincipal != null){
//Modelo antigo
System.out.println("Inicio Obter Lista de descendentes: "+new Date());
List codPossiveisItensPais = montarListaCodigosPais(itemPrincipal);
listItensPorEstrutura = itemEstruturaDao.getItensByEstruturaOrdenadosPorItemPai(estruturaCorrente.getCodEtt(), codPossiveisItensPais);
System.out.println("Fim Obter Lista de descendentes: "+new Date());
} else {
listItensPorEstrutura = itemEstruturaDao.getItensByEstrutura(estruturaCorrente.getCodEtt());
}
if( listItensPorEstrutura != null && !listItensPorEstrutura.isEmpty() &&
atributosOrdenados != null && !atributosOrdenados.isEmpty()) {