From 4c1c715bfab4bb04ea12e073c310a6b184e7dbb0 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 30 Mar 2026 10:47:58 +0800 Subject: [PATCH] feat: allow department leaders to grab tasks --- .../main/java/com/designhub/service/TaskItemService.java | 7 +------ .../src/main/java/com/designhub/service/TaskService.java | 7 +------ frontend/src/views/TaskHall.vue | 7 +------ 3 files changed, 3 insertions(+), 18 deletions(-) diff --git a/backend/src/main/java/com/designhub/service/TaskItemService.java b/backend/src/main/java/com/designhub/service/TaskItemService.java index 9d5db30..932e6eb 100644 --- a/backend/src/main/java/com/designhub/service/TaskItemService.java +++ b/backend/src/main/java/com/designhub/service/TaskItemService.java @@ -553,12 +553,7 @@ public class TaskItemService { throw new BusinessException(ResultCode.FORBIDDEN, "只有接单部门成员可以接收任务"); } - // 检查3:部门负责人不能抢单 - if (department.getLeaderId() != null && department.getLeaderId().equals(userId)) { - throw new BusinessException(ResultCode.FORBIDDEN, "部门负责人不能接单,请分配给设计师"); - } - - // 检查4:如果子任务已指定接单部门,则仅允许该部门(含子部门)成员接单 + // 检查3:如果子任务已指定接单部门,则仅允许该部门(含子部门)成员接单 if (item.getReceiverDeptId() != null && !isDeptMatchedOrInherited(user.getDeptId(), item.getReceiverDeptId())) { throw new BusinessException(ResultCode.FORBIDDEN, "该任务仅允许指定接单部门成员接单"); diff --git a/backend/src/main/java/com/designhub/service/TaskService.java b/backend/src/main/java/com/designhub/service/TaskService.java index 2b29647..f0ecf68 100644 --- a/backend/src/main/java/com/designhub/service/TaskService.java +++ b/backend/src/main/java/com/designhub/service/TaskService.java @@ -2349,12 +2349,7 @@ public class TaskService { throw new BusinessException(ResultCode.FORBIDDEN, "只有接单部门成员可以接收任务"); } - // 检查3:部门负责人不能抢单 - if (department.getLeaderId() != null && department.getLeaderId().equals(userId)) { - throw new BusinessException(ResultCode.FORBIDDEN, "部门负责人不能接单,请分配给设计师"); - } - - // 检查4:验证部门是否允许接该需求类型 + // 检查3:验证部门是否允许接该需求类型 if (task.getDemandTypeId() != null) { validateAllowedDemandTypes(department, task.getDemandTypeId()); } diff --git a/frontend/src/views/TaskHall.vue b/frontend/src/views/TaskHall.vue index 3fd5587..be5ddb2 100644 --- a/frontend/src/views/TaskHall.vue +++ b/frontend/src/views/TaskHall.vue @@ -6141,12 +6141,7 @@ const canGrabTask = (task: TaskOrSubTask) => { return { canGrab: false, reason: '需求部门成员不能接单' } } - // 检查3:部门负责人不能抢单(如果是切换到其他部门视角则允许) - if (currentDeptView.value === undefined && (userInfo.isDepartmentLeader === 1 || userInfo.isDepartmentLeader === true)) { - return { canGrab: false, reason: '部门负责人不能接单' } - } - - // 检查4:验证部门是否允许接该需求类型(如果任务有需求类型限制) + // 检查3:验证部门是否允许接该需求类型(如果任务有需求类型限制) const taskTypeId = task.isSubTask ? task.taskTypeId : (task as any).taskTypeId if (taskTypeId) { // 从配置store中获取任务类型详情