博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java1234_Activiti_第6讲_一般程序员使用的函数
阅读量:6447 次
发布时间:2019-06-23

本文共 5883 字,大约阅读时间需要 19 分钟。

hot3.png

package com.java1234.activiti.flow;import static org.junit.Assert.*;import java.util.List;import org.activiti.engine.ProcessEngine;import org.activiti.engine.ProcessEngines;import org.activiti.engine.history.HistoricActivityInstance;import org.activiti.engine.history.HistoricTaskInstance;import org.activiti.engine.repository.Deployment;import org.activiti.engine.runtime.ProcessInstance;import org.activiti.engine.task.Task;import org.junit.Test;public class StudentLeaveProcess {		/**	 * 获取默认流程引擎实例,默认读取配置文件activiti.cfg.xml	 */	private ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();			/**	 * 1.部署流程定义.	 */	//@Test	public void deployWidthClassPath(){			Deployment deployment=	processEngine.getRepositoryService()// 部署相关service		.createDeployment()//创建部署对象		.addClasspathResource("diagrams/StudentLeaveProcess.bpmn")//加载资源文件		.addClasspathResource("diagrams/StudentLeaveProcess.png") //加载资源图片		.name("学生请假流程")//设置名称		.deploy();//部署						System.out.println("流程部署Id:"+deployment.getId());		System.out.println("流程部署Name:"+deployment.getName());/*流程部署Id:15001流程部署Name:学生请假流程	-------------------		## 流程部署表select * from act_re_deployment;## 流程定义表select * from act_re_procdef;## 资源文件表select * from act_ge_bytearray;		 */			}			/**	 * 2.启动流程实例	 */	@Test	public void start(){	  ProcessInstance pi=	processEngine.getRuntimeService() //运行服务		.startProcessInstanceByKey("studentLeaveProcess"); //数据库中act_re_procdef的key_字段	  	  System.out.println("流程实例ID:"+pi.getId());	  System.out.println("流程定义ID:"+pi.getProcessDefinitionId());//流程定义ID/*流程实例ID:17501 ,30001流程定义ID:studentLeaveProcess:1:15004 */	}	/**	 * 3.查询任务	 *	 */	@Test	public void findTask(){	List
taskList= processEngine.getTaskService() //任务服务实例 .createTaskQuery()//创建任务查询 .taskAssignee("王五")// 查询 张三 ,李四,后欧洲王五 .list(); for(Task task:taskList){ // act_ru_task; 字段 里面的信息 System.out.println("任务Id:"+task.getId()); System.out.println("任务Name:"+task.getName()); System.out.println("任务创建时间:"+task.getCreateTime()); System.out.println("任务委派人:"+task.getAssignee()); System.out.println("任务实例ID:"+task.getProcessInstanceId()); } /*打印结果: 任务Id:17504, 30004任务Name:学生请假申请任务创建时间:Thu Jul 28 15:24:50 CST 2016任务委派人:张三任务实例ID:17501 ,30001 */ } /** * 4.完成任务,让张三完成任务 */ @Test public void completeTask(){ processEngine.getTaskService()//任务服务器 .complete("30004"); //使用上面: 任务Id:(17504) System.out.println("任务完成!"); } /** * 5.查询李四的任务,上面有方法 *//** 查询结果!任务Id:20002 ,32502任务Name:班长审批任务创建时间:Thu Jul 28 15:37:04 CST 2016任务委派人:李四任务实例ID:17501,30001 */ /** * 6.完成任务,让李四完成任务 */ @Test public void completeTask6(){ processEngine.getTaskService()//任务服务器 .complete("32502"); //使用上面: 任务Id:(17504) System.out.println("任务完成"); } /** * 7.查询王五任务, 调用findTask, */ /**任务Id:22502任务Name:班主任审批任务创建时间:Thu Jul 28 15:44:36 CST 2016任务委派人:王五任务实例ID:17501 */ /** * 8.完成任务,让王五完成任务 */ @Test public void completeTask8(){ processEngine.getTaskService()//任务服务器 .complete("35002"); //使用上面: 任务Id:(17504) System.out.println("任务完成"); } /** * 查询流程状体(正在执行Or 已经执行结束) * act_ru_excution 的proc_inst_id字段 */ @Test public void processState(){ ProcessInstance pi= processEngine.getRuntimeService()// 获取运行时的service .createProcessInstanceQuery()//创建流程实例查询 .processInstanceId("30001")//act_ru_excution 的proc_inst_id字段 .singleResult(); if(pi!=null){ System.out.println("流程正在执行!"); }else{ System.out.println("流程已经执行结束!"); } } /** * 历史任务查询 */ @Test public void historyTaskList(){ List
list = processEngine.getHistoryService()// 历史服务器 .createHistoricTaskInstanceQuery() //历史任务,是列,查询 .processInstanceId("30001")// 流程实例查询! .finished() //查询已经完成的 .list(); for(HistoricTaskInstance hti: list){ // select * from act_hi_taskinst; System.out.println("任务Id:"+hti.getId()); System.out.println("流程实例Id:"+hti.getProcessInstanceId()); System.out.println("任务名称:"+hti.getName()); System.out.println("办理人:"+hti.getAssignee()); System.out.println("开始时间:"+hti.getStartTime()); System.out.println("结束时间:"+hti.getEndTime()); System.out.println("---------------------"); } /*任务Id:30004流程实例Id:30001任务名称:学生请假申请办理人:张三开始时间:Thu Jul 28 16:14:46 CST 2016结束时间:Thu Jul 28 16:16:29 CST 2016---------------------任务Id:32502流程实例Id:30001任务名称:班长审批办理人:李四开始时间:Thu Jul 28 16:16:29 CST 2016结束时间:Thu Jul 28 16:20:56 CST 2016---------------------任务Id:35002流程实例Id:30001任务名称:班主任审批办理人:王五开始时间:Thu Jul 28 16:20:56 CST 2016结束时间:Thu Jul 28 16:22:43 CST 2016--------------------- */ } /** * 历史活动任务查询 */ @Test public void historyActTaskList(){ List
list = processEngine.getHistoryService()// 历史服务器 .createHistoricActivityInstanceQuery() //历史任务,是列,查询 .processInstanceId("30001")// 流程实例查询! .finished() //查询已经完成的 .list(); for(HistoricActivityInstance hati: list){ // select * from act_hi_actinst; System.out.println("任务Id:"+hati.getId()); System.out.println("流程实例Id:"+hati.getProcessInstanceId()); System.out.println("活动名称:"+hati.getActivityName()); System.out.println("办理人:"+hati.getAssignee()); System.out.println("开始时间:"+hati.getStartTime()); System.out.println("结束时间:"+hati.getEndTime()); System.out.println("---------------------"); } /*任务Id:30002流程实例Id:30001活动名称:Start办理人:null开始时间:Thu Jul 28 16:14:46 CST 2016结束时间:Thu Jul 28 16:14:46 CST 2016---------------------任务Id:30003流程实例Id:30001活动名称:学生请假申请办理人:张三开始时间:Thu Jul 28 16:14:46 CST 2016结束时间:Thu Jul 28 16:16:29 CST 2016---------------------任务Id:32501流程实例Id:30001活动名称:班长审批办理人:李四开始时间:Thu Jul 28 16:16:29 CST 2016结束时间:Thu Jul 28 16:20:56 CST 2016---------------------任务Id:35001流程实例Id:30001活动名称:班主任审批办理人:王五开始时间:Thu Jul 28 16:20:56 CST 2016结束时间:Thu Jul 28 16:22:43 CST 2016---------------------任务Id:37501流程实例Id:30001活动名称:End办理人:null开始时间:Thu Jul 28 16:22:43 CST 2016结束时间:Thu Jul 28 16:22:43 CST 2016--------------------- */ }}

 

转载于:https://my.oschina.net/u/1760858/blog/720702

你可能感兴趣的文章
iOS开发代理(委托)模式详解
查看>>
微服务学习笔记二:Eureka服务注册发现
查看>>
C# 获取编码
查看>>
mysql的数据类型int、bigint、smallint 和 tinyint取值范围
查看>>
利用网易获取所有股票数据
查看>>
HDOJ5015 233 Matrix(矩阵乘法加速递推)
查看>>
三种局域网扫描工具比较
查看>>
移动铁通宽带上网设置教程
查看>>
java中判断字符串中是否有中文字符
查看>>
Python算法(含源代码下载)
查看>>
利用Windows自带的Certutil查看文件MD5
查看>>
Git处理 行结束符
查看>>
通过原生js添加div和css
查看>>
[训练日志] 7月13日
查看>>
Python 模块 和 包
查看>>
简单的导出表格和将表格下载到桌面上。
查看>>
《ArcGIS Engine+C#实例开发教程》第一讲桌面GIS应用程序框架的建立
查看>>
递归查询上一级
查看>>
JAVA - 大数类详解
查看>>
查询指定名称的文件
查看>>