Activiti 开发案例之动态指派任务

流程图

以上是一个请假的流程图,以下为流程任务节点描述:
- 员工发起请假流程
- 部门经理审批
- 同意则进入人事审批
- 拒绝则调整申请或者直接结束流程
- 人事审批通过则进入销假环节
- 人事审批拒绝则调整申请或者直接结束流程
- 员工销假结束流程
任务分配
员工发起申请
ProcessInstance process = runtimeService.startProcessInstanceByKey("leave",businessKey, variables);
Task task = taskService.createTaskQuery().processInstanceId(process.getId()).active().singleResult();
//此时,不要应删除掉流程图中赋值的角色,否则会重复
taskService.addCandidateGroup(task.getId(),"部门经理");
部门经理审批
通过逻辑:
Map<String,Object> variables=new HashMap<String,Object>();
variables.put("approve", "true");
Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).active().singleResult();
//一定要认领任务之后,重新获取当前任务,然后分配角色。
taskService.claim(taskId, userId);
taskService.complete(taskId, variables);
task = taskService.createTaskQuery().processInstanceId(process.getId()).active().singleResult();
//此时,不要应删除掉流程图中赋值的角色,否则会重复
taskService.addCandidateGroup(task.getId(),"人事");
拒绝逻辑:
Map<String,Object> variables=new HashMap<String,Object>();
variables.put("approve", "false");
Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).active().singleResult();
//一定要认领任务之后,重新获取当前任务,然后分配角色。
taskService.claim(taskId, userId);
taskService.complete(taskId, variables);
task = taskService.createTaskQuery().processInstanceId(process.getId()).active().singleResult();
//applyId为申请人ID
taskService.addCandidateUser(task.getId(),applyId);
待办任务
API 查询
TaskQuery taskQuery = taskService.createTaskQuery();
List<Task> list = taskQuery.taskCandidateOrAssigned(userId)
使用API的话,需要做视图映射,Activiti开发案例之创建用户表视图实现关联查询
SQL 查询
-- 多个用户或者角色可以用 IN
select distinct RES.* from ACT_RU_TASK RES
left join ACT_RU_IDENTITYLINK I on I.TASK_ID_ = RES.ID_
WHERE SUSPENSION_STATE_ = '1'
AND ( RES.ASSIGNEE_ ='99' or (RES.ASSIGNEE_ is null
AND ( I.USER_ID_ = '99' or I.GROUP_ID_ = '部门经理' )))
Activiti 开发案例之动态指派任务的更多相关文章
- Activiti开发案例之activiti-app工作流导出图片
前言 自从 Activiti 和 JBPM4 分家以后,Activiti 目前已经发展到了版本7,本着稳定性原则我们最终选择了6,之前还有一个版本5. 问题 在开发使用的过程中发现 Activiti ...
- Activiti开发案例之activiti-app更换数据源
前言 由于Activiti 默认使用的数据库是H2数据库,重启服务后相关数据会丢失.为了永久保存,所以要配置关系型数据库,这里我们选择 SqlServer ,有钱任性. 环境 Activiti6,Sq ...
- Activiti开发案例之代码生成工作流图片
图例 环境 软件 版本 SpringBoot 1.5.10 activiti-spring-boot-starter-basic 6.0 生成代码 以下是简化代码: /** * 查看实例流程图,根据流 ...
- 【推荐】使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享
使用Jquery+EasyUI 进行框架项目开发案例讲解之一 员工管理源码分享 在开始讲解之前,我们先来看一下什么是Jquery EasyUI?jQuery EasyUI是一组基于jQuery的U ...
- 使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享
使用Jquery+EasyUI 进行框架项目开发案例解说之中的一个 员工管理源代码分享 在開始解说之前,我们先来看一下什么是Jquery EasyUI?jQuery EasyUI是一组基于jQuery ...
- 使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享
使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享 使用Jquery+EasyUI 进行框架项目开发案例讲解之一 员工管理源码分享 在开始讲解之前,我们先来看一下什 ...
- 大数据技术之_09_Flume学习_Flume概述+Flume快速入门+Flume企业开发案例+Flume监控之Ganglia+Flume高级之自定义MySQLSource+Flume企业真实面试题(重点)
第1章 Flume概述1.1 Flume定义1.2 Flume组成架构1.2.1 Agent1.2.2 Source1.2.3 Channel1.2.4 Sink1.2.5 Event1.3 Flum ...
- FocusBI: SSIS 开发案例(原创)
关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. <商业智能教程>pdf下载地址 链接:https://pan.baidu.com/ ...
- 《实战突击:PHP项目开发案例整合(第2版)(含DVD光盘1张)》
<实战突击:PHP项目开发案例整合(第2版)(含DVD光盘1张)> 基本信息 作者: 徐康明 辛洪郁 出版社:电子工业出版社 ISBN:9787121221378 上架时间:2014 ...
随机推荐
- HTTP 学习笔记02
请求行 格式:请求方式 资源路径 HTTP版本号 HTTP1.1 还需要 [host] 例:GET /test.html HTTP/1.0 GET /test.html HTTP/ ...
- [转]iis部署php项目
阅读目录 1.启动iis服务器 2.打开iis 3.创建网站 4.php设置 ①添加默认文档 ②处理程序映射 1.安装urlrewrite 2.使用URL重写 今天跟着学习了如何在IIS下部署php项 ...
- Linux权限_用户_和用户组
Linux中用户UID就判断操作系统中用户的身份. Centos7.x: 0:超级管理员 1-999:系统用户(包含Linux中自带服务) 1000以上 普通用户 Centos6.x : Root ...
- 西门子 S7-300 PLC 从入门到精通的100个经典问题
1:使用CPU 315F和ET 200S时应如何避免出现“通讯故障”消息? 使用CPU S7 315F, ET 200S以及故障安全DI/DO模块,那么您将调用OB35 的故障安全程序.而且,您已 ...
- 站在巨人的肩膀上看Servlet——原来如此(更适合初学者认识Servlet)
前言: 有段时间没更新博客了,这段时间因为要准备考试,考完试后又忙了一阵别的事,一直没能静下心来写博客.大学考试真是越来越恶心了,各种心酸,那酸爽,够味.不过还好,马上就要大三了,听大三学长学姐说大三 ...
- 常见Code Review过程中发现的问题-续
上一篇列举了一些比较常见的Code Review问题列表,文末有链接,可追溯查看.本篇为上篇的姊妹篇,继续列举一些上篇遗漏的或不易发现的问题清单,希望能整体性把一些常见的问题表述出来. 测试数据不具有 ...
- 自定义ApplicationContextInitializer接口实现
简介 ApplicationContextInitializer是Spring框架提供的接口, 该接口的主要功能就是在接口ConfigurableApplicationContext刷新之前,允许用户 ...
- MyBatis:choose标签的用法
<!-- 4.2 choose用法 需求: 在已有的sys_user表中,除了主键id外,我们认为user_name也是唯一的, 所有的用户名都不可以重复.现在进行如下查询:当参数id有值的时候 ...
- 【基本数据结构】并查集-C++
并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中.这一类问题近几年来反复出 ...
- Excel催化剂开源第36波-图片Exif信息提取,速度超快,信息超全
Excel催化剂在文件处理方面,功能做到极致,但其实很大功劳都是引用一些开源社区的轮子库,不敢独占好处,此篇给大家分享下抓取图片的Exif信息的好用的轮子. 此篇对应的Excel催化剂功能实现:第83 ...