只保留末级的字段,父级全部清空
ArrayList<CostSubjectsSettingEntity> arrayListw = new ArrayList<>();
list.stream().filter(item -> item.getParentId().equals("0")).map(menu -> {
List<CostSubjectsSettingEntity> children = getChildrenclearallocationMethod(menu, list);
arrayListw.add(menu);
arrayListw.addAll(children);
return menu;
}).collect(Collectors.toList());
private List<CostSubjectsSettingEntity> getChildrenclearallocationMethod(CostSubjectsSettingEntity root, List<CostSubjectsSettingEntity> all) {
ArrayList<CostSubjectsSettingEntity> engineeringLedgerNodeListsall = new ArrayList<>();
List<CostSubjectsSettingEntity> children = all.stream().filter(xs ->
xs.getParentId().equals(root.getId())
).collect(Collectors.toList());
if (children.size() > 0) {
root.setAllocationMethod("");
}
for (int i = 0; i < children.size(); i++) {
CostSubjectsSettingEntity treeVO = children.get(i);
List<CostSubjectsSettingEntity> engineeringLedgerNodeLists = getChildrenclearallocationMethod(treeVO, all);
engineeringLedgerNodeListsall.addAll(engineeringLedgerNodeLists);
}
engineeringLedgerNodeListsall.addAll(children);
return engineeringLedgerNodeListsall;
}