try{
UsuarioUsu usuarioLogado = seguranca.getUsuario();
Set gruposUsuario = seguranca.getGruposAcesso();
//Set filhos = item.getItemEstruturaIetts();
ItemEstruturaDao itemEstruturaDao = new ItemEstruturaDao(null);
List filhos = new ArrayList();
if(!imprimirEstrutura){
filhos.addAll(itemEstruturaDao.getDescendentesComPermissoesOrdenado(item, usuarioLogado, gruposUsuario));
}
else {
filhos.addAll(itemEstruturaDao.getDescendentesComPermissoesOrdenadoByEstrutura(estruturaEscolhida, codIettPai, usuarioLogado, gruposUsuario));
}
List itensTemp = new ArrayList(itemEstruturaDao.filtrarRelatorioItemEstrutura(filhos, orgaoResponsavel.getCodOrg(), listaCriteriosCom, listaCriteriosSem, listaSituacoes, "S", "N"));
filhos.clear();
//filhos.addAll(itemEstruturaDao.getArvoreItens(itensTemp, null));
filhos.addAll(itensTemp);
Iterator it;
if(!imprimirEstrutura){
//remover os itens superiores ao n�vel atual
it = filhos.iterator();
while(it.hasNext()) {
ItemEstruturaIett iett = (ItemEstruturaIett) it.next();
if(iett.getNivelIett().intValue() <= item.getNivelIett().intValue()) {
it.remove();
}
}
}
// ordenar os itens pela sigla
itensTemp = new ArrayList(filhos);
filhos.clear();
//filhos.addAll(itemEstruturaDao.getItensOrdenadosPorSiglaIett(itensTemp));
//filhos.addAll(itemEstruturaDao.getItensOrdenados(itensTemp));
List atributosListagem = new ArrayList(itemEstruturaDao.getItensOrdenados(itensTemp, null));
Iterator itAtrList = atributosListagem.iterator();
while(itAtrList.hasNext()){
AtributoEstruturaListagemItens atList = (AtributoEstruturaListagemItens) itAtrList.next();
filhos.add(atList.getItem());
}
//if(filhos != null && filhos.size() > 0){
if(atributosListagem != null && atributosListagem.size() > 0){
//it = filhos.iterator();
it = atributosListagem.iterator();
boolean primeiraPagina = true;
while(it.hasNext()){
//ItemEstruturaIett itemFilho = (ItemEstruturaIett) it.next();
AtributoEstruturaListagemItens atbList = (AtributoEstruturaListagemItens) it.next();
ItemEstruturaIett itemFilho = atbList.getItem();
if(itemFilho.getNivelIett().intValue() < 3)
continue;
String nomeNivelItem = builder.normalize(itemFilho.getEstruturaEtt().getNomeEtt()) + ": ";
String nomeItem = " ";
String itemSelecionado = "S";
String quebrarPagina = "N";
String orgaoResponsavel = "";
/*
if(itemFilho.getSiglaIett() != null && !"".equals(itemFilho.getSiglaIett()))
nomeItem += itemFilho.getSiglaIett() + " - ";
nomeItem += builder.normalize(itemFilho.getNomeIett());
*/
nomeItem = " " + ("".equals(atbList.getDescricao().trim()) ? itemFilho.getNomeIett() : atbList.getDescricao());
if (!itensMarcados.contains(itemFilho.getCodIett().toString()))
itemSelecionado = "N";
if(!primeiraPagina && itemFilho.getNivelIett().intValue() == 3){
quebrarPagina = "S";
}
primeiraPagina = false;
if(itemFilho.getNivelIett().intValue() == 3){
if(itemFilho.getOrgaoOrgByCodOrgaoResponsavel1Iett() != null)
orgaoResponsavel = itemFilho.getOrgaoOrgByCodOrgaoResponsavel1Iett().getSiglaOrg() + " - " + itemFilho.getOrgaoOrgByCodOrgaoResponsavel1Iett().getDescricaoOrg();
geraXMLHierarquia(builder, itemFilho, quebrarPagina, orgaoResponsavel);
}
builder.addNode("filho", "nomeNivel=\"" + builder.normalize(nomeNivelItem) + "\" nome=\"" + nomeItem + "\" " +
" nivel=\"" + itemFilho.getNivelIett().intValue() + "\"" +
" itemSelecionado=\"" + builder.normalize(itemSelecionado) + "\"");
builder.closeNode("filho");
this.incrementarTotalizador(itemFilho.getEstruturaEtt().getCodEtt(), nomeNivelItem);
boolean mostrarDados = false;
if("".equals(orgao) || orgao == null){ //Todos
mostrarDados = true;
}
//Para relat�rio de Revisao, pegar sempre OrgaoResponsavel2
else if (orgao != null && itemFilho.getOrgaoOrgByCodOrgaoResponsavel2Iett() != null && orgao.equals(itemFilho.getOrgaoOrgByCodOrgaoResponsavel2Iett().getCodOrg().toString())){
mostrarDados = true;
}
if (!itensMarcados.contains(itemFilho.getCodIett().toString())){
mostrarDados = false;
}
if(mostrarDados){
List revisoes = itemEstruturaDao.getItemEstruturaRevisaoIettrevOrderByData(itemFilho.getCodIett());
if(revisoes != null && revisoes.size() > 0){
Iterator itItemRevisao = revisoes.iterator();
while(itItemRevisao.hasNext()){
ItemEstruturarevisaoIettrev itemRevisao = (ItemEstruturarevisaoIettrev) itItemRevisao.next();