diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskAssigneeService.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskAssigneeService.java index 462a2b58e..3f0535a6e 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskAssigneeService.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskAssigneeService.java @@ -11,15 +11,6 @@ import java.util.List; */ public interface IFlwTaskAssigneeService { - /** - * 根据存储标识符(storageId)解析分配类型和ID,并获取对应的用户列表 - * 支持单个标识(例如 "user:123" 或 "456"),格式非法将返回空列表 - * - * @param storageId 包含分配类型和ID的字符串 - * @return 匹配的用户列表,格式非法返回空列表 - */ - List fetchUsersByStorageId(String storageId); - /** * 批量解析多个存储标识符(storageIds),按类型分类并合并查询用户列表 * 输入格式支持多个以逗号分隔的标识(如 "user:123,role:456,789") diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java index 1a9e1275d..7af0a8d58 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java @@ -81,7 +81,7 @@ public class FlwCommonServiceImpl implements IFlwCommonService { List entryValue = entry.getValue(); String processedBys = StreamUtils.join(entryValue, User::getProcessedBy); // 根据 processedBy 前缀判断处理人类型,分别获取用户列表 - List users = taskAssigneeService.fetchUsersByStorageId(processedBys); + List users = taskAssigneeService.fetchUsersByStorageIds(processedBys); // 转换为 FlowUser 并添加到结果集合 if (CollUtil.isNotEmpty(users)) { users.forEach(dto -> { diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java index 207945664..03dcf2d0a 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java @@ -8,7 +8,6 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.common.core.enums.FormatsType; -import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.system.api.RemoteDeptService; @@ -171,22 +170,6 @@ public class FlwTaskAssigneeServiceImpl implements IFlwTaskAssigneeService, Hand .setCreateTime(assignee -> DateUtils.parseDateToStr(FormatsType.YYYY_MM_DD_HH_MM_SS, assignee.getCreateTime())); } - /** - * 根据存储标识符(storageId)解析分配类型和ID,并获取对应的用户列表 - * 支持单个标识(例如 "user:123" 或 "456"),格式非法将返回空列表 - * - * @param storageId 包含分配类型和ID的字符串 - * @return 匹配的用户列表,格式非法返回空列表 - */ - @Override - public List fetchUsersByStorageId(String storageId) { - Pair parsed = this.parseStorageId(storageId); - if (parsed == null) { - return Collections.emptyList(); - } - return this.getUsersByType(parsed.getKey(), Collections.singletonList(parsed.getValue())); - } - /** * 批量解析多个存储标识符(storageIds),按类型分类并合并查询用户列表 * 输入格式支持多个以逗号分隔的标识(如 "user:123,role:456,789") @@ -197,8 +180,11 @@ public class FlwTaskAssigneeServiceImpl implements IFlwTaskAssigneeService, Hand */ @Override public List fetchUsersByStorageIds(String storageIds) { + if (StringUtils.isEmpty(storageIds)) { + return List.of(); + } Map> typeIdMap = new EnumMap<>(TaskAssigneeEnum.class); - for (String storageId : storageIds.split(StrUtil.COMMA)) { + for (String storageId : storageIds.split(StringUtils.SEPARATOR)) { Pair parsed = this.parseStorageId(storageId); if (parsed != null) { typeIdMap.computeIfAbsent(parsed.getKey(), k -> new ArrayList<>()).add(parsed.getValue()); diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java index 26fe3e78b..e22cdfd14 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java @@ -603,7 +603,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService { for (FlowNode flowNode : nextFlowNodes) { buildNextTaskList.stream().filter(t -> t.getNodeCode().equals(flowNode.getNodeCode())).findFirst().ifPresent(t -> { if (CollUtil.isNotEmpty(t.getPermissionList())) { - List users = flwTaskAssigneeService.fetchUsersByStorageId(String.join(StringUtils.SEPARATOR, t.getPermissionList())); + List users = flwTaskAssigneeService.fetchUsersByStorageIds(String.join(StringUtils.SEPARATOR, t.getPermissionList())); if (CollUtil.isNotEmpty(users)) { flowNode.setPermissionFlag(StreamUtils.join(users, e -> String.valueOf(e.getUserId()))); }