diff --git a/backend/src/main/java/com/designhub/service/UserService.java b/backend/src/main/java/com/designhub/service/UserService.java index 459fe24..b17ef5b 100644 --- a/backend/src/main/java/com/designhub/service/UserService.java +++ b/backend/src/main/java/com/designhub/service/UserService.java @@ -1175,7 +1175,25 @@ public class UserService { .eq(Department::getStatus, 1) .eq(Department::getDeleted, 0) ); - managedDepartments = leadingDepts.stream() + + // 🔥 对于一级需求部门(primary_demand),还需要获取其子部门 + List allDepts = new ArrayList<>(leadingDepts); + for (Department dept : leadingDepts) { + if ("primary_demand".equals(dept.getDeptType())) { + // 获取该一级需求部门的所有子部门 + List childDepts = departmentMapper.selectList( + new LambdaQueryWrapper() + .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()) diff --git a/frontend/src/views/TaskHall.vue b/frontend/src/views/TaskHall.vue index a8fc97d..82f823c 100644 --- a/frontend/src/views/TaskHall.vue +++ b/frontend/src/views/TaskHall.vue @@ -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) } })