Просмотр исходного кода

update 优化 支持前端返回节点扩展数据(按钮权限 抄送人 扩展变量)

疯狂的狮子Li 10 месяцев назад
Родитель
Сommit
ee02f46dfd

+ 16 - 0
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowTaskVo.java

@@ -5,12 +5,14 @@ import org.dromara.common.translation.annotation.Translation;
 import org.dromara.common.translation.constant.TransConstant;
 import org.dromara.warm.flow.core.entity.User;
 import org.dromara.workflow.common.constant.FlowConstant;
+import org.dromara.workflow.domain.bo.FlowCopyBo;
 
 import java.io.Serial;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 任务视图
@@ -185,6 +187,20 @@ public class FlowTaskVo implements Serializable {
      */
     private List<ButtonPermissionVo> buttonList;
 
+    /**
+     * 抄送对象 ID 集合
+     * <p>
+     * 根据扩展属性中 CopySettingEnum 类型的数据生成,存储需要抄送的对象 ID
+     */
+    private List<FlowCopyBo> copyList;
+
+    /**
+     * 自定义参数 Map
+     * <p>
+     * 根据扩展属性中 VariablesEnum 类型的数据生成,存储 key=value 格式的自定义参数
+     */
+    private Map<String, String> varList;
+
     //业务扩展信息开始
     /**
      * 业务编码

+ 13 - 0
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java

@@ -601,6 +601,19 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
         NodeExtVo nodeExtVo = flwNodeExtService.parseNodeExt(flowNode.getExt());
         //设置按钮权限
         flowTaskVo.setButtonList(nodeExtVo.getButtonPermissions());
+        if (CollUtil.isNotEmpty(nodeExtVo.getCopySettings())) {
+            List<FlowCopyBo> list = StreamUtils.toList(nodeExtVo.getCopySettings(), x -> {
+                FlowCopyBo bo = new FlowCopyBo();
+                Long id = Convert.toLong(x);
+                bo.setUserId(id);
+                bo.setUserName(userService.selectUserNameById(id));
+                return bo;
+            });
+            flowTaskVo.setCopyList(list);
+        } else {
+            flowTaskVo.setCopyList(new ArrayList<>());
+        }
+        flowTaskVo.setVarList(nodeExtVo.getVariables());
         flowTaskVo.setNodeRatio(flowNode.getNodeRatio());
         flowTaskVo.setApplyNode(flowNode.getNodeCode().equals(flwCommonService.applyNodeCode(task.getDefinitionId())));
         return flowTaskVo;