diff --git a/backend/src/main/java/com/designhub/service/TaskService.java b/backend/src/main/java/com/designhub/service/TaskService.java index 2292872..ebcade7 100644 --- a/backend/src/main/java/com/designhub/service/TaskService.java +++ b/backend/src/main/java/com/designhub/service/TaskService.java @@ -139,8 +139,9 @@ public class TaskService { } } - // 检查部门积分是否充足 - if (task.getPublisherDeptId() != null && task.getScore() != null) { + // 检查部门积分是否充足(管理员跳过积分检查) + boolean isAdminPublisher = task.getPublisherId() != null && isAdminUser(task.getPublisherId()); + if (!isAdminPublisher && task.getPublisherDeptId() != null && task.getScore() != null) { if (!teamScorePoolService.checkBalance(task.getPublisherDeptId(), task.getScore())) { throw new BusinessException(ResultCode.INSUFFICIENT_SCORE, "部门积分余额不足"); } @@ -151,6 +152,10 @@ public class TaskService { } } + if (isAdminPublisher) { + log.info("管理员发布任务,跳过积分检查: publisherId={}", task.getPublisherId()); + } + // 生成任务编号 task.setTaskNo(generateTaskNo()); @@ -248,8 +253,8 @@ public class TaskService { totalHours += itemHours; } - // 检查部门积分是否充足 - if (user.getDeptId() != null) { + // 检查部门积分是否充足(管理员跳过积分检查) + if (!isAdmin && user.getDeptId() != null) { if (!teamScorePoolService.checkBalance(user.getDeptId(), totalScore)) { throw new BusinessException(ResultCode.INSUFFICIENT_SCORE, "部门积分余额不足"); } @@ -258,6 +263,10 @@ public class TaskService { throw new BusinessException(ResultCode.SCORE_LIMIT_EXCEEDED, "超过本周期积分消耗限制"); } } + + if (isAdmin) { + log.info("管理员创建流水线任务,跳过积分检查: publisherId={}", publisherId); + } // 创建主任务 Task task = new Task(); diff --git a/frontend/src/views/Settings.vue b/frontend/src/views/Settings.vue index 63f4fbb..f11f511 100644 --- a/frontend/src/views/Settings.vue +++ b/frontend/src/views/Settings.vue @@ -467,7 +467,7 @@