Преглед изворни кода

!690 新增通过前端显示流程图方式和新增办理人转换接口
* feat 新增通过前端显示流程图方式

晓华 пре 1 година
родитељ
комит
a002a4e7a1

+ 1 - 1
pom.xml

@@ -49,7 +49,7 @@
         <!-- 面向运行时的D-ORM依赖 -->
         <anyline.version>8.7.2-20250101</anyline.version>
         <!-- 工作流配置 -->
-        <warm-flow.version>1.7.2</warm-flow.version>
+        <warm-flow.version>1.7.3-m1</warm-flow.version>
 
         <!-- 插件版本 -->
         <maven-jar-plugin.version>3.2.2</maven-jar-plugin.version>

+ 16 - 3
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/WorkflowPermissionHandler.java

@@ -1,12 +1,13 @@
 package org.dromara.workflow.handler;
 
+import cn.hutool.core.collection.CollUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.warm.flow.core.dto.FlowParams;
 import org.dromara.warm.flow.core.handler.PermissionHandler;
-import org.dromara.warm.flow.core.service.impl.TaskServiceImpl;
 import org.dromara.workflow.common.ConditionalOnEnable;
+import org.dromara.workflow.service.IFlwCommonService;
 import org.springframework.stereotype.Component;
 
 import java.util.Collections;
@@ -23,9 +24,11 @@ import java.util.List;
 @Slf4j
 public class WorkflowPermissionHandler implements PermissionHandler {
 
+    private final IFlwCommonService flwCommonService;
+
     /**
-     * 审批前获取当前办理人,办理时会校验的该权限集合
-     * 后续在{@link TaskServiceImpl#checkAuth(Task, FlowParams)} 中调用
+     * 办理人权限标识,比如用户,角色,部门等,用于校验是否有权限办理任务
+     * 后续在{@link FlowParams#getPermissionFlag}  中获取
      * 返回当前用户权限集合
      */
     @Override
@@ -43,4 +46,14 @@ public class WorkflowPermissionHandler implements PermissionHandler {
         return LoginHelper.getUserIdStr();
     }
 
+    /**
+     * 转换办理人,比如设计器中预设了能办理的人,如果其中包含角色或者部门id等,可以通过此接口进行转换成用户id
+     */
+    @Override
+    public List<String> convertPermissions(List<String> permissions) {
+        if (CollUtil.isNotEmpty(permissions)) {
+            permissions = flwCommonService.buildUser(permissions);
+        }
+        return permissions;
+    }
 }

+ 0 - 7
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java

@@ -92,13 +92,6 @@ public class WorkflowGlobalListener implements GlobalListener {
                 String userIds = variable.get(flowTask.getNodeCode()).toString();
                 flowTask.setPermissionList(List.of(userIds.split(StringUtils.SEPARATOR)));
                 variable.remove(flowTask.getNodeCode());
-            } else {
-                // 否则把所有的角色或者部门转成对应的用户
-                List<String> permissionList = flowTask.getPermissionList();
-                if (CollUtil.isNotEmpty(permissionList)) {
-                    List<String> newUserList = flwCommonService.buildUser(permissionList);
-                    flowTask.setPermissionList(newUserList);
-                }
             }
             // 如果是申请节点,则把启动人添加到办理人
             if (flowTask.getNodeCode().equals(applyNodeCode)) {

+ 1 - 3
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java

@@ -316,9 +316,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
         if (CollUtil.isNotEmpty(flowHisTasks)) {
             list.addAll(BeanUtil.copyToList(flowHisTasks, FlowHisTaskVo.class));
         }
-        String flowChart = chartService.chartIns(instanceId);
-        DefChart defChart = chartService.chartInsObj(instanceId);
-        return Map.of("list", list, "image", flowChart,"defChart",defChart);
+        return Map.of("list", list);
     }
 
     /**