Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
Рекурсивно получите все тестовые примеры дочерних узлов:
/**
* Получите идентификаторы детей, включая себя
* @param id родительский узел
* @param TaxBureauList Список организационных подразделений
* @return
*/
@Override
public String getChildIds(String id, List<Map<String, Object>> TaxBureauList) {
StringBuilder childIds = new StringBuilder();
childIds.append(id + ",");
this.getChildIds(id, childIds, TaxBureauList);
return childIds.toString().substring(0, childIds.length()-1);
}
private void getChildIds(String id, StringBuilder childIds, List<Map<String, Object>> TaxBureauList) {
for (Map<String, Object> bureau : TaxBureauList) {
//фильтрродительский узел — пустые данные
if (StringUtils.isEmpty(MapUtils.getString(bureau,"parentId",""))){
continue;
}
// Определите, есть ли дочерние узлы
if (id.equals(MapUtils.getString(bureau,"parentId"))) {
childIds.append(bureau.get("id").toString()+",");
// Рекурсивно перейти на следующий уровень
getChildIds(bureau.get("id").toString(), childIds, TaxBureauList);
}
}
return;
}
Рекурсивно получите все тестовые примеры родительского узла:
@Override
public List<String> queryParentIds(String id, List<TaxCompany> taxCompanyList) {
//Рекурсивно получаем родительские идентификаторы, исключая себя
List<String> parentIds = new ArrayList<>();
this.getParentTaxCompanyIds(taxCompanyList, id, parentIds);
return parentIds;
}
/**
* Рекурсивно получить родительские идентификаторы
* @param taxCompanyList
* @param id
* @param taxCompanyIds
*/
private void getParentTaxCompanyIds(List<TaxCompany> taxCompanyList, String id, List<String> parentIds) {
for (TaxCompany taxCompany : taxCompanyList) {
if (StringUtils.isEmpty(taxCompany.getcParentid())) {
continue;
}
//Определяем, есть ли родительский узел
if (id.equals(taxCompany.getcCompanyid())) {
taxCompanyIds.add(taxCompany.getcParentid());
getParentTaxCompanyIds(taxCompanyList, taxCompany.getcParentid(), parentIds);
}
}
}
Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Этот сайт предоставляет только услуги по хранению информации, не имеет никаких прав собственности и не принимает на себя соответствующие юридические обязательства. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.
Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/192329.html Исходная ссылка: https://javaforall.cn