流程发送oa待办过滤掉superadmin

This commit is contained in:
2026-10-08 14:07:18 +08:00
parent 811e35750e
commit 8e0e28ccc4
@@ -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 用于日志定位业务来源;