From f7bb31433d9f5e4afbf0681dc771ac5fc6c84980 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 4 Jan 2026 10:32:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=AE=A1=E7=90=86=E5=91=98=E8=B7=B3?= =?UTF-8?q?=E8=BF=87=E7=A7=AF=E5=88=86=E6=A3=80=E6=9F=A5=EF=BC=8C=E6=89=80?= =?UTF-8?q?=E6=9C=89=E9=83=A8=E9=97=A8=E5=BC=80=E6=94=BE=E7=A7=AF=E5=88=86?= =?UTF-8?q?=E6=B1=A0=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/designhub/service/TaskService.java | 17 +++++++++++++---- frontend/src/views/Settings.vue | 7 +++---- 2 files changed, 16 insertions(+), 8 deletions(-) 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 @@