update 优化 使用前端显示流程图方式和新增办理人转换接口

This commit is contained in:
疯狂的狮子Li
2025-05-27 17:19:54 +08:00
parent 90b508eaf3
commit 92afe12288
4 changed files with 18 additions and 15 deletions

View File

@@ -55,7 +55,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>
<!-- mq配置 -->
<rocketmq.version>2.3.0</rocketmq.version>

View File

@@ -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;
}
}

View File

@@ -94,13 +94,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)) {

View File

@@ -20,7 +20,6 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.dromara.warm.flow.core.constant.ExceptionCons;
import org.dromara.warm.flow.core.dto.DefChart;
import org.dromara.warm.flow.core.dto.FlowParams;
import org.dromara.warm.flow.core.entity.Definition;
import org.dromara.warm.flow.core.entity.Instance;
@@ -316,9 +315,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);
}
/**