public Department findParentNode(Department department){ if (org.springframework.util.StringUtils.isEmpty(department.getParentDepId())) { return department; } String parentDepId = department.getParentDepId(); Department dept = OrgUtil.getDeptById(parentDepId); findParentNode(dept); }
时间: 2024-04-16 07:24:25 浏览: 102
Extjs常用方法总结.docx
你的代码几乎正确,但需要添加一个返回语句来返回递归调用的结果。这样才能确保当找到上级部门时,能够将最终结果返回给调用者。以下是修改后的代码:
```java
public Department findParentNode(Department department) {
if (org.springframework.util.StringUtils.isEmpty(department.getParentDepId())) {
return department;
}
String parentDepId = department.getParentDepId();
Department dept = OrgUtil.getDeptById(parentDepId);
return findParentNode(dept); // 添加返回语句返回递归调用结果
}
```
在这个代码中,我们首先判断当前部门的 `parentDepId` 是否为空,如果为空,则说明该部门是最顶级部门,直接返回。如果不为空,则获取上级部门的 `parentDepId`,并通过 `OrgUtil.getDeptById()` 方法获取对应的部门对象。然后,我们通过递归调用 `findParentNode()` 方法,并将上级部门对象作为参数传入。最后,通过添加返回语句将递归调用的结果返回给调用者。
请注意,在实际使用中,你需要根据自己的业务逻辑进行相应的调整和判断。
阅读全文