(十七)Activitivi5之组任务分配
一、需求分析
- 我们在实际业务开发过程中,某一个审批任务节点可以分配一个角色(或者叫做组),然后属于这个角色的任何一个用户都可以去完成这个任务节点的审批
二、案例
2.1 方式一:直接流程图配置中写死
- 如下图,此时有两个用户
- 如下图,此时有两个组(角色)
- 用户和组(角色)关联关系表
- 在流程图中配置
- 最后部署、启动流程后,如下查询候选人 依然要用 taskCandidateUser,由于张三李四都是“管理员”组(角色),所以都可以完成该任务
/*** 查看任务*/@Testpublic void find_task() {List<Task> taskList=processEngine.getTaskService().createTaskQuery().taskCandidateUser("张三").list();for(Task task:taskList){System.out.println("任务ID:"+task.getId()); System.out.println("任务名称:"+task.getName());System.out.println("任务创建时间:"+task.getCreateTime());System.out.println("任务委派人:"+task.getAssignee());System.out.println("流程实例ID:"+task.getProcessInstanceId());}}
2.2 方式二:使用流程变量
- 启动流程的设置具体的值
/*** 启动流程实例*/@Testpublic void start(){Map<String,Object> variables=new HashMap<String,Object>();variables.put("groupId", "管理员);ProcessInstance pi=processEngine.getRuntimeService() // 运行时Service.startProcessInstanceByKey("groupProcess2",variables); // 流程定义表的KEY字段值System.out.println("流程实例ID:"+pi.getId());System.out.println("流程定义ID:"+pi.getProcessDefinitionId()); }
2.2 方式三:使用taskListener监听器
- 在监听器中添加组(角色)
package com.shyroke.activiti.listenter;import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener;public class MyTaskListener implements TaskListener {public void notify(DelegateTask delegateTask) {delegateTask.addCandidateGroup("管理员");}}
- 如下,所有“管理员”组的用户都可以完成这个任务
/*** 查看任务*/@Testpublic void find_task() {List<Task> taskList=processEngine.getTaskService().createTaskQuery().taskCandidateUser("李四").list();for(Task task:taskList){System.out.println("任务ID:"+task.getId()); System.out.println("任务名称:"+task.getName());System.out.println("任务创建时间:"+task.getCreateTime());System.out.println("任务委派人:"+task.getAssignee());System.out.println("流程实例ID:"+task.getProcessInstanceId());}}
转载于:https://www.cnblogs.com/shyroke/p/8005616.html
(十七)Activitivi5之组任务分配相关推荐
- 智能车调试总结——十七届编队组国一、十六届双车组国二(附代码)
目录 简介 本文以第十六届双车组(直立)软件调试为主,第十七届部分主要讲通讯与控距 一.第十六届双车组: 1.机械结构搭建(以直立为例) 1.1 车模布局 1.2陀螺仪安装 2.软件控制部分 2.1姿 ...
- 线性代数学习笔记——第四十七讲——向量组的秩与最大无关组的概念
1. 向量组的秩与最大无关组的引例 2. 向量组的秩与最大无关组的定义 3. 最大无关组一般不唯一,秩是唯一的 4. 若向量组线性无关,则最大无关组是其自身,其秩即向量个数
- 计算机专业相关的组名和口号,课堂小组霸气组名和口号大全
课堂小组霸气组名和口号大全 晴天小组:心田阳光普照快乐随时驾到.下面是的为你们整理的内容,希望你们能够喜欢 课堂小组霸气组名和口号大全 1.可爱苹果组红苹果,我们的脸!鲜花的园,我们的组! 2.卓越小 ...
- 第十八届全国大学生智能汽车竞赛 智能视觉组比赛细则
第十八届全国大学生智能汽车竞赛 智能视觉组比赛细则 智能车竞赛 目 录 Contents 背景介绍 智能视觉组描述 视觉组比赛细则 比赛场地 比赛任务 车模技术要求 第十八届智能视觉组竞赛细则巨大漏洞 ...
- 7、任务分配-任务分派其他人
任务分配-任务分派其他人 1.个人任务分配 2.组任务分配 2.1.多个候选人处理任务 2.2.多候选人任务使用场景,任务分派 2.3.候选组分配-用的较多 1.个人任务分配 2.组任务分配 根据角色 ...
- 多无人机(UAV)协同任务分配
一.协同任务规划的功能与结构 多无人机协同任务规划即是根据一组特定条件的约束,以实现某个准则函数的最优或次优为目标,将某项作战任务分解成一些子任务并分配给多无人机系统中的各个无人机分别去完成的过程. ...
- Activity:工作流引擎
Table of Contents 一.简介 二.数据库 1 Activiti数据库支持 2 表结构操作 1 资源库流程规则表 2 运行时数据库表 3 历史数据库表 4 组织机构表 5 通用数据表 6 ...
- Activiti入门文档
Activiti-相关API 本文介绍与Activiti工作流具体操作相关的API. 第一部分 几个Service相关的API 1.流程定义API--RepostoryService API acti ...
- 视频教程-OmniPlan项目管理就该这样学-研发管理
OmniPlan项目管理就该这样学 Adobe平面设计与影视剪辑专家讲师.微软Office办公软件专家讲师.资深IT图书作者/策划人/出版人.深度/终身学习研究与实践者.Python全栈工程师/Web ...
最新文章
- python1000个常用代码-比较了1000多个Python开源项目,精选出这34个
- 数据结构与算法 -- 算法
- 数据库存取BLOB类型音乐文件的过程及常见错误
- 重磅官宣:Nacos2.0发布,性能提升10倍
- 2015广州计算机网络试题及答案,2015广州大学计算机网络试卷-B卷及答案.doc
- MySQL基本配置命令总结
- 观察者模式(发布--订阅模式)
- 洛谷1551 亲戚
- LoadRunner报错vuser_init.c(18): Error: nca_connect_server: cannot communicate
- BouncyCastle使用
- 8 Flask mega-tutorial 第8章 关注 Followers
- Mediapipe+OpenCV与Unity引擎实现动作捕捉
- graphpad图片怎么导出矢量图_Graphpad Prism 8如何绘制生存曲线
- android拷机工具,Android 3DMark大更新:无敌拷机神器
- android 调用系统输入法,Android 1.6中文输入法调用
- 藏书馆APP产品分析报告
- 关于一款开源远程控制软件(gh0st)的源码分析(一)
- 直积、直和与张量积简介
- RDD -- Transformation算子分析
- 边带娃边赚钱,昨日共计165.52
热门文章
- 数据持久化mysql_Nacos数据持久化到MySQL
- python出现Unresolved import:库名,已解决
- python 利器_python利器之切片
- php 实现一致性哈希,PHP一致性哈希实现。。
- mysql 查找多组数据结构_MySql主要索引数据结构
- 2018专转本计算机百度云资源,2018年江苏专转本计算机真题版
- python 生成器原理_python生成器
- VB 判断当前是否连接网络API实现
- 耐人深思的总结,牛牛牛
- 北大朱占星:顶级会议疯狂投稿下的AI现状 | 专栏