* @param codTpfa
* @return
* @throws ECARException
*/
public TipoFuncAcompTpfa buscarMaiorHierarquia(Long codIett, Long codTpfa) throws ECARException {
TipoFuncAcompTpfa tpfaSuperior = null;
List listaEstruturas = new ArrayList();
Set setTPFAPA = new HashSet();
try{
String select = "from TipoFuncAcompTpfaPermiteAlterar as tipo " +
" where tipo.comp_id.cod_inferior_tpfapa.codTpfa= :cod " +
" and tipo.permiteAlterarParecer= :permite";
Query q = this.session.createQuery(select);
q.setLong("cod", codTpfa);
q.setString("permite", "S");
setTPFAPA.addAll(q.list());
} catch(Exception e){
e.printStackTrace();
}
for (Object object : setTPFAPA) {
TipoFuncAcompTpfaPermiteAlterar tipo = (TipoFuncAcompTpfaPermiteAlterar) object;
listaEstruturas.add(tipo.getComp_id().getCod_superior_tpfapa());
}
if(listaEstruturas.size() == 1){
tpfaSuperior = ((TipoFuncAcompTpfa)listaEstruturas.get(0)).getTipoFuncAcompTpfa();
} else if(listaEstruturas.size() > 1){
for (Object object : listaEstruturas) {
TipoFuncAcompTpfa tpfa = (TipoFuncAcompTpfa) object;
if(tpfa.getTipoFuncAcompTpfa()==null){
tpfaSuperior = tpfa;
break;
}
}