diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java index 3946af164..ce845dc45 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java @@ -214,6 +214,9 @@ public class FlwNodeExtServiceImpl implements NodeExtService, IFlwNodeExtService // 解析 JSON 为 Dict 列表 List nodeExtMap = JsonUtils.parseArrayMap(ext); + if (ObjectUtil.isEmpty(nodeExtMap)) { + return nodeExtVo; + } for (Dict nodeExt : nodeExtMap) { String code = nodeExt.getStr("code"); 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 fe73642d1..6703ebdc1 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 @@ -600,14 +600,22 @@ public class FlwTaskServiceImpl implements IFlwTaskService { } NodeExtVo nodeExtVo = flwNodeExtService.parseNodeExt(flowNode.getExt(), instance.getVariableMap()); //设置按钮权限 - flowTaskVo.setButtonList(nodeExtVo.getButtonPermissions()); + if (CollUtil.isNotEmpty(nodeExtVo.getButtonPermissions())) { + flowTaskVo.setButtonList(nodeExtVo.getButtonPermissions()); + } else { + flowTaskVo.setButtonList(new ArrayList<>()); + } if (CollUtil.isNotEmpty(nodeExtVo.getCopySettings())) { List list = StreamUtils.toList(nodeExtVo.getCopySettings(), x -> new FlowCopyVo(Convert.toLong(x))); flowTaskVo.setCopyList(list); } else { flowTaskVo.setCopyList(new ArrayList<>()); } - flowTaskVo.setVarList(nodeExtVo.getVariables()); + if (CollUtil.isNotEmpty(nodeExtVo.getVariables())) { + flowTaskVo.setVarList(nodeExtVo.getVariables()); + } else { + flowTaskVo.setVarList(new HashMap<>()); + } flowTaskVo.setNodeRatio(flowNode.getNodeRatio()); flowTaskVo.setApplyNode(flowNode.getNodeCode().equals(flwCommonService.applyNodeCode(task.getDefinitionId()))); return flowTaskVo;