From 8e0e28ccc4917bd0f2fc905c7238677afea60220 Mon Sep 17 00:00:00 2001 From: hongqiwei <1143662660@qq.com> Date: Thu, 8 Oct 2026 14:07:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=81=E7=A8=8B=E5=8F=91=E9=80=81oa=E5=BE=85?= =?UTF-8?q?=E5=8A=9E=E8=BF=87=E6=BB=A4=E6=8E=89superadmin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SchoolOaTodoServiceImpl.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/main/java/com/budwk/app/flow/service/impl/SchoolOaTodoServiceImpl.java b/src/main/java/com/budwk/app/flow/service/impl/SchoolOaTodoServiceImpl.java index 7d5a261..86afe8d 100644 --- a/src/main/java/com/budwk/app/flow/service/impl/SchoolOaTodoServiceImpl.java +++ b/src/main/java/com/budwk/app/flow/service/impl/SchoolOaTodoServiceImpl.java @@ -87,6 +87,9 @@ public class SchoolOaTodoServiceImpl implements SchoolOaTodoService { String receiveTime = formatTime(processTask.getCreatedAt()); for (ProcessTaskActor actor : actors) { + if (skipSuperAdmin(actor, "创建待办", processTask.getId())) { + continue; + } sendCreateTodo(processTask, instance, creator, actor, flowTypeName, title, creatorTime, receiveTime, pcUrl, appUrl); } } @@ -110,6 +113,9 @@ public class SchoolOaTodoServiceImpl implements SchoolOaTodoService { } for (ProcessTaskActor actor : actors) { + if (skipSuperAdmin(actor, "完成待办", processTask.getId())) { + continue; + } sendCompleteTodo(processTask, actor); } } @@ -137,6 +143,9 @@ public class SchoolOaTodoServiceImpl implements SchoolOaTodoService { } for (ProcessTaskActor actor : actors) { + if (skipSuperAdmin(actor, "删除待办", processTask.getId())) { + continue; + } sendDeleteTodo(processTask, actor); } } @@ -195,6 +204,9 @@ public class SchoolOaTodoServiceImpl implements SchoolOaTodoService { String receiveTime = formatTime(task.getCreatedAt()); for (ProcessTaskActor actor : actors) { + if (skipSuperAdmin(actor, "修改完结待办", task.getId())) { + continue; + } sendUpdateFinishedTodo(task, instance, creator, actor, flowTypeName, title, creatorTime, receiveTime, pcUrl, appUrl); } return; @@ -418,6 +430,22 @@ public class SchoolOaTodoServiceImpl implements SchoolOaTodoService { return value; } + /** + * 超级管理员只在本系统参与审核,学校 OA 中没有对应账号,不能向其同步待办。 + * + * @param actor 本系统流程任务参与人,使用用户 ID 或登录账号识别超级管理员 + * @param action 当前学校 OA 同步动作,用于记录跳过原因 + * @param taskId 当前流程任务 ID,用于定位日志 + * @return true 表示跳过该参与人的学校 OA 请求;false 表示继续正常同步 + */ + private boolean skipSuperAdmin(ProcessTaskActor actor, String action, Long taskId) { + if (FlowConst.ADMIN_ID.equals(actor.getActorId()) || "superadmin".equalsIgnoreCase(actor.getActorAccount())) { + log.info("超级管理员无学校OA账号,跳过{},taskId={},actorId={}", action, taskId, actor.getActorId()); + return true; + } + return false; + } + /** * 判断学校 OA 同步开关是否开启。 * 参数 action 表示当前待执行的 OA 动作;taskId、processInstanceId 用于日志定位业务来源;