fix: 一级需求部门负责人可查看子部门成员发起的任务

- 后端: 对于primary_demand类型部门负责人,返回managedDepartments时包含子部门
- 前端: 支持primary_demand类型部门的任务查询
This commit is contained in:
Your Name 2026-01-30 14:25:27 +08:00
parent 8c590d4099
commit 754b885e29
2 changed files with 24 additions and 5 deletions

View File

@ -1175,7 +1175,25 @@ public class UserService {
.eq(Department::getStatus, 1)
.eq(Department::getDeleted, 0)
);
managedDepartments = leadingDepts.stream()
// 🔥 对于一级需求部门(primary_demand),还需要获取其子部门
List<Department> allDepts = new ArrayList<>(leadingDepts);
for (Department dept : leadingDepts) {
if ("primary_demand".equals(dept.getDeptType())) {
// 获取该一级需求部门的所有子部门
List<Department> childDepts = departmentMapper.selectList(
new LambdaQueryWrapper<Department>()
.eq(Department::getParentId, dept.getId())
.eq(Department::getStatus, 1)
.eq(Department::getDeleted, 0)
);
allDepts.addAll(childDepts);
log.info("一级需求部门 {} 的子部门: {}", dept.getDeptName(),
childDepts.stream().map(Department::getDeptName).collect(Collectors.toList()));
}
}
managedDepartments = allDepts.stream()
.map(dept -> UserInfoVO.ManagedDepartmentVO.builder()
.deptId(dept.getId())
.deptName(dept.getDeptName())

View File

@ -4734,16 +4734,17 @@ const loadInProgressTasks = async (newFilters?: any) => {
console.log('需求部门负责人 - userDeptId:', userDeptId.value, 'userDeptType:', userDeptType.value)
console.log('需求部门负责人 - userInfo.managedDepartments:', userInfo.managedDepartments)
// 添加用户自己的部门(如果是需求部门)
if (userDeptId.value && userDeptType.value === 'demand') {
// 添加用户自己的部门(如果是需求部门或一级需求部门)
if (userDeptId.value && (userDeptType.value === 'demand' || userDeptType.value === 'primary_demand')) {
demandDeptIds.push(userDeptId.value)
}
// 添加用户管理的所有需求部门
// 添加用户管理的所有需求部门(包括普通需求部门和一级需求部门下的子部门)
if (userInfo.managedDepartments && Array.isArray(userInfo.managedDepartments)) {
userInfo.managedDepartments.forEach((dept: any) => {
console.log('检查管理的部门:', dept.deptId, dept.deptName, 'deptType:', dept.deptType)
if (dept.deptType === 'demand' && !demandDeptIds.includes(dept.deptId)) {
// 🔥 支持 demand 和 primary_demand 类型的部门
if ((dept.deptType === 'demand' || dept.deptType === 'primary_demand') && !demandDeptIds.includes(dept.deptId)) {
demandDeptIds.push(dept.deptId)
}
})