一、bpmn文件部署
@Auroward
RepositoryService rep;
rep. createDeployment ( ) . addInputStream ( filename, is) . deploy ( ) ;
act_re_deployment: 流程定义部署表,每部署一次就增加一条记录
act_re_procdef :流程定义表,部署每个新的流程定义都会在这张表中增加一条记录
act_ge_bytearray :流程资源表,流程部署的 bpmn文件和png图片会保存在该表中
二、发起一个流程
@Autowired
IdentityService identityservice;
@Auroward
RuntimeService runtimeservice;
identityservice. setAuthenticatedUserId ( “业务key- 连接业务数据和流程数据,一般使用表的主键”) ;
ProcessInstance instance= runtimeservice. startProcessInstanceByKey ( "业务流程key" , “业务key”, “变量”) ;
act_hi_actinst 流程实例执行历史
act_hi_identitylink 流程的参与用户的历史信息
act_hi_procinst 流程实例历史信息
act_hi_taskinst 流程任务历史信息
act_ru_execution 流程执行信息
act_ru_identitylink 流程的参与用户信息
act_ru_task 任务信息
三、查找任务
@Autowired
TaskService taskservice;
@Auroward
RuntimeService runtimeservice;
List < Task > tasks= taskservice. createTaskQuery ( ) . taskAssignee ( “指定用户“) . taskName ( "指定名称" ) . listPage ( “第几页”, “每页几条
Task task = taskservice. createTaskQuery ( ) . taskId ( “任务id”) . singleResult ( ) ;
ProcessInstance process = runservice. createProcessInstanceQuery ( ) . processInstanceId ( task. getProcessInstanceId ( ) ) . singleResult ( ) ;
四、提交/完成任务
@Autowired
TaskService taskservice;
taskservice. claim ( "要声明的任务" , “用户,不可为空“) ;
taskservice. complete ( "要声明的任务" , “变量”) ;
五、流程定义的查询
@Autowired
RepositoryService rep;
List < ProcessDefinition > list = rep. createProcessDefinitionQuery ( ) . listPage ( “第几页”, “每页几条”)
for ( ProcessDefinition processDefinition : list) {
System . out. println ( "流程定义的ID:" + processDefinition. getId ( ) ) ;
System . out. println ( "流程定义的name:" + processDefinition. getName ( ) ) ;
System . out. println ( "流程定义的key:" + processDefinition. getKey ( ) ) ;
System . out. println ( "流程定义的version:" + processDefinition. getVersion ( ) ) ;
System . out. println ( "流程部署的id:" + processDefinition. getDeploymentId ( ) ) ;
}
六、流程的删除
@Autowired
RepositoryService rep;
rep. deleteDeployment ( “流程标识”, true ) ;
七、流程历史信息查看
@Autowired
HistoryService histiryservice;
HistoricProcessInstanceQuery his = histiryservice. createHistoricProcessInstanceQuery ( )
HistoricProcessInstanceQuery process = his. processDefinitionId ( "" ) ;
HistoricProcessInstanceQuery process = his. processDefinitionKey ( "" ) ;
process = process. startedBy ( "用户标识" ) ;
process = process. finished ( ) ;
List < HistoricProcessInstance > info = process. listPage ( firstrow, rowCount) ;
八、指派任务
@Autowired
TaskService taskservice;
taskService. setAssignee ( task. getId ( ) , "jack" ) ;
taskService. deleteCandidateUser ( task. getId ( ) , "tom" ) ;
taskService. addCandidateUser ( task. getId ( ) , "jack" ) ;
九、委派任务
@Autowired
TaskService taskservice;
taskService. delegateTask ( task. getId ( ) , "rose" ) ;
taskService. resolveTask ( task. getId ( ) ) ;
十、放回任务
@Autowired
TaskService taskservice;
taskService. setAssignee ( task. getId ( ) , null ) ;
taskService. unclaim ( task. getId ( ) ) ;
十一、回退任务
1. 找到任务
2. 找到当前实例历史执行记录
3. 拿到上一步任务节点
4. 记录当前节点的流转方向
5. 清除当前节点的流转方向
6. 将当前节点指向回退的节点
7. 完成当前节点任务
8. 查询此任务,将回退节点的执行人重新赋值到该节点
9. 恢复当前节点的流转方向
十二、终止任务
流程基本与回退任务一致,只是把回退节点换成结束节点即可