método recursivo para recuperação de bens de um departamento e subdepartamentos

2 respostas
G

Senhores,
Venho pedir ajuda pois estou implementando esses métodos para que eu possa recuperar a partir da cunsulta de unidades(Departamentos) os bens de um determinado departamento inclusive os bens dos subdepartamentos, ou seja caso eu escolha um departamento, devo varrer os bens do próprio e os bens dos departamentos que pertençam ao departamento superior. Estou tendo problema ao fazer o addAll(col), a variável unids está declarada globalmente.

public Collection getBensDaUnidadeESubUnidades(GerenteDePatrimonio gp,String idUniMae){

System.out.println("idUniMae: "+idUniMae);

getBensDaUnidadeESubUnidadesRec(gp,idUniMae);

return unids;

}
private void getBensDaUnidadeESubUnidadesRec(GerenteDePatrimonio gp,String idUniMae) {
    try {
        Iterator uniInf = gp.pesquisaUnidadesPorSuperior(idUniMae);
        Collection col=null;
        System.out.println("************************col: "+col+"*******************");
        System.out.println("************************uniInf: "+uniInf+"*******************");
        System.out.println("Antes do if");
        System.out.println("uniInf.hasNext()"+uniInf.hasNext());
        if(uniInf!=null && uniInf.hasNext()){
            System.out.println("Entrou: if(uniInf!=null && uniInf.hasNext()");
            while(uniInf.hasNext()){
                trlg.patrimonio.Unidade   uni = (trlg.patrimonio.Unidade)uniInf.next();
                System.out.println("**********************uni: "+uni+"***********************");
                col=gp.getBensDaLocalizacao(uni,true);
                System.out.println("************************col: "+col+"*******************");
                System.out.println("Antes do unids.addAll(col)");
                [b]unids.addAll(col);[/b]
                System.out.println(unids);
                getBensDaUnidadeESubUnidades(gp,uni.getId());
            }
        }else{
            System.out.println("Entrou no else");
            trlg.patrimonio.Unidade uni = (trlg.patrimonio.Unidade)uniInf;
            System.out.println("************Passou de uni*************");
            [b]col=gp.getBensDaLocalizacao(uni,true);[/b]
            unids.addAll(col);
        }
    }catch (Exception ex) {
        System.out.println("Caiu na exceção do: getBensDaUnidadeESubUnidadesRec(GerenteDePatrimonio gp,String idUniMae)");
        ex.printStackTrace();
    }
}

2 Respostas

G

midianet:
se vc usar oracle consegue fazer isso via sql

Pois é rapaz, eu já fiz esse trabalho aí para montar um menu em árvore com métodos parecidos, meu problema aí é que eu consulto os bens de um departamento aí a medida que vou baixando o nível hierárquico, eu vou acumulando esses bens para mostrar em uma consulta de bens por departamento. por exemplo:

departamento de Recursos Humanos/
Demissão
Admissão
Quando eu consultar Recursos Humanos
devo retornar todos os bens tanto de recursos humanos quanto de seus subdepartamentos

Já citei anteriormente onde estou tendo problemas!!!
Caso seja sintaxe e alguém puder me ajudar, se for erro de lógica, imagino que eu mesmo terei que me virar por aqui.

midianet

se vc usar oracle consegue fazer isso via sql

Criado 11 de janeiro de 2008
Ultima resposta 11 de jan. de 2008
Respostas 2
Participantes 2