首页 > 其他分享 >bpmn给userTask分配用户

bpmn给userTask分配用户

时间:2022-11-06 00:34:11浏览次数:45  
标签:case flowService String delegateTask bpmn 流程 用户 userTask break

项目中整合bpmn.js做流程设计器,如果流程设计器是专业人员使用,哪ok,没问题;如果客户要求也能使用流程设计器做一些常用流程,这里就会有问题,如图

这里是角色编码,对于客户而言不可能知道表中部门经理的编码是多少,那么这样的话流程设计器就无用,如何解决?我的解决方案如下

1.设计一张表,类似:

key:流程id,act_id是活动id..

2.页面可以对这个表做操作

3.给userTask配置一个create类型的任务监听器:

/**
 * 用户任务配审核人
 *
 * @author dengry
 */
@Component
public class UserAssignListerner implements TaskListener {
    private final FlowService flowService;

    public UserAssignListerner(FlowService flowService) {
        this.flowService = flowService;
    }

    @Override
    public void notify(DelegateTask delegateTask) {
        String actId = delegateTask.getTaskDefinitionKey();
        String processDefinitionId = delegateTask.getProcessDefinitionId();
        String key = processDefinitionId.split(":")[0];

        UserAssignment userAssignment = flowService.getUserAssignmentByKeyAndActId(key, actId);
        String type = userAssignment.getType();
        String val = userAssignment.getVal();

        switch (type) {
            case "Candidate groups":
                String[] groups = val.split(",");
                for (String group : groups) {
                    delegateTask.addCandidateGroup(group);
                }
                break;
            case "Candidate users":
                String[] users = val.split(",");
                for (String user : users) {
                    delegateTask.addCandidateUser(user);
                }
                break;
            case "Assignee":
                String applyUserId = (String) delegateTask.getVariable("applyUserId");
                delegateTask.setAssignee(applyUserId);
                break;
        }
    }
}

从而完美解决,可以访问    http://82.157.68.9/   操作方法见 https://www.bilibili.com/video/BV1184y1q7g9

标签:case,flowService,String,delegateTask,bpmn,流程,用户,userTask,break
From: https://www.cnblogs.com/oasis-deng/p/16861780.html

相关文章

  • SAP ABAP Netweaver 里的用户会话概念
    ASABAP的应用层可以分布在多个应用服务器上。如果一个ASABAP有多个应用程序服务器,它们通常在不同的计算机上实例化。然而,一个或多个ASABAP的多个应用程序服务器......
  • ZYNQ & AXI总线 & PS与PL内部通信(用户自定义IP)
      ZYNQ、AXI协议、PS与PL内部通信 三种AXI总线分别为:AXI4:(Forhigh-performancememory-mappedrequirements.)主要面向高性能地址映射通信的需求,是面向地址映射的接......
  • MySQL高级1【安装-目录-用户和权限-架构-存储引擎】尚硅谷康师傅
    【第01章Linux下MySQL的安装与使用】1.安装前说明安装并启动好两台虚拟机:CentOS7掌握克隆虚拟机的操作mac地址主机名ip地址UUID安装有Xshell和Xftp......
  • Jenkins用户管理
    用户注册和权限管理介绍。1.用户注册进入【系统管理】-【全局安全配置】,进行配置:1.1安全域选择【Jenkins专有用户数据库】,勾选【允许用户注册】,随后【保存......
  • 极智开发 | 多用户共用一张昇腾卡开发教程
     大家好,我是极智视界,本文介绍一下多用户共用一张昇腾卡开发教程。 昇腾计算应该是国产化里的首选了,但是用昇腾卡计算的坑也是很多的。比如这里:多用户不能共用一张卡、......
  • [postgresql]用户管理
    前言PostgreSQL使用角色的概念管理数据库访问权限。角色是一系列相关权限的集合。为了管理方便,通常把一系列相关的数据库权限赋给一个角色,如果哪个用户需要这些权限,就把角......
  • 零售商贩mysql表设计:收货地址表 用户表(关联起来)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录​​sql​​sql收货地址表:CREATETABLE`user_address`(`id`int(11)NOTNULLAUTO_INCREMENT,......
  • 1.3 简单用户交互
    1.3基础用户交互/*例1.3-1:基础用户交互示例*/importjava.util.Scanner; //引入javaScanner工具类publicclassScannerExample{publicstaticvoidmai......
  • 房产管理系统之不同用户角色的登录
    进度一------实现不同用户角色可以登录到不同的界面通过jsp页面输入相应的角色,然后到servlet里面进行数据的接收,由于本茨是需要判断一个字符串,所以使用switch进行判断会比......
  • SQL SERVER 中 sys.dm_tran_locks 消息 297,级别 16,状态 1,第 6 行 用户没有执行此操
     SQLSERVER中 sys.dm_tran_locks 消息297,级别16,状态1,第6行用户没有执行此操作的权限。--1.查询数据库阻塞与死锁的进程清单(可分析清单详情,看看死锁id对应的......