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 04d4c6cb4..af7f71bb7 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 @@ -228,6 +228,14 @@ public class FlwTaskAssigneeServiceImpl implements IFlwTaskAssigneeService, Hand * @return Pair(TaskAssigneeEnum, Long),如果格式非法返回 null */ private Pair parseStorageId(String storageId) { + if (StringUtils.isBlank(storageId)) { + return null; + } + // 跳过以 $ 或 # 开头的字符串 + if (StringUtils.startsWith(storageId, "$") || StringUtils.startsWith(storageId, "#")) { + log.info("跳过 storageId 解析,检测到内置变量表达式:{}", storageId); + return null; + } try { String[] parts = storageId.split(StrUtil.COLON, 2); if (parts.length < 2) {