package com.activiti;
import org.activiti.engine.*;
import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.history.HistoricVariableInstance;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.io.InputStream;
import java.util.*;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoActivitiSpringBootApplicationTests {
//RepositoryService 流程仓库Service,用于管理流程仓库,例如部署、删除、读取流程资源
//IdentityService 身份Service,用于管理和查询用户、组之间的关系
//RuntimeService 运行时Service,可以也拿过来处理所有正在运行状态的流程实例、任务等
//TaskService 任务Service,用于管理和查询任务,例如签收、办理、指派等
//FormService 表单Service,用于读取流程、任务相关的表单数据
//HistoryService 历史Service,用于查询所有历史数据,例如流程实例、任务、活动、变量、附件
//ManagementService 引擎管理Service,和具体业务无关,主要可以查询引擎配置、数据库、作业等
//1.创建核心引擎对象
@Autowired
private ProcessEngine processEngine;
//单个
//private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//多个
//private Map<String,ProcessEngine> processEngines = ProcessEngines.getProcessEngines();
@Autowired
private RepositoryService repositoryService;
@Autowired
private RuntimeService runtimeService;
@Autowired
private TaskService taskService;
//引擎数量
@Test
public void getEngineSize(){
Map<String,ProcessEngine> engines = ProcessEngines.getProcessEngines();
System.out.println(engines.size());
}
//******************************(demo1)helloWorld start*******************************//
/**
* 2 部署流程定义
*/
@Test
public void deploymentProcessDefinition() {
Deployment deployment = repositoryService// 与流程定义和部署对象相关的service
.createDeployment()// 创建一个部署对象
.name("helloworld入门程序")// 添加部署的名称
.addClasspathResource("processes/helloworld.bpmn")// classpath的资源中加载,一次只能加载一个文件
.addClasspathResource("processes/helloworld.png")// classpath的资源中加载,一次只能加载一个文件
.deploy();// 完成部署
System.out.println("部署ID:" + deployment.getId());
System.out.println("部署名称:" + deployment.getName());
}
/**
* 3.启动流程实例
*/
@Test
public void startProcessInstance() {
// 流程定义的key
String processDefinitionKey = "myProcess";
ProcessInstance pi = runtimeService// 于正在执行的流程实例和执行对象相关的Service
.startProcessInstanceByKey(processDefinitionKey);// 使用流程定义的key启动流程实例,key对应hellworld.bpmn文件中id的属性值,使用key值启动,默认是按照最新版本的流程定义启动
System.out.println("流程实例ID:" + pi.getId());// 流程实例ID 101
System.out.println("流程定义ID:" + pi.getProcessDefinitionId()); // 流程定义ID HelloWorld:1:4
}
/**
* 4 查询当前人的个人任务
*/
@Test
public void findMyPersonTask() {
String assignee = "张三";//被指定(代理)人、角色、权限
List<Task> list = taskService// 与正在执行的认为管理相关的Service
.createTaskQuery()// 创建任务查询对象
.taskAssignee(assignee)// 指定个人认为查询,指定办理人
.list();
if (list != null && list.size() > 0) {
for (Task task:list) {
System.out.println("任务ID:"+task.getId());//12504
System.out.println("任务名称:"+task.getName());
System.out.println("任务的创建时间:"+task);
System.out.println("任务的办理人:"+task.getAssignee());
System.out.println("流程实例ID:"+task.getProcessInstanceId());
System.out.println("执行对象ID:"+task.getExecutionId());
System.out.println("流程定义ID:"+task.getProcessDefinitionId());
System.out.println("#################################");
}
}
}
/**
* 5.完成我的任务(同时触发下一级任务)
*/
@Test
public void completeMyPersonTask(){
//任务Id
String taskId="2504";
//与正在执行的任务管理相关的Service
taskService.complete(taskId);
System.out.println("完成任务:任务ID:"+taskId);
}
//******************************(demo1)helloWorld end*******************************//
//******************************流程定义的CRUD start*******************************//
/**
* 查询所有的流程定义
*/
@Test
public void findProcessDefinition() {
List<ProcessDefinition> list = processEngine.getRepositoryService()// 与流程定义和部署对象先相关的service
.createProcessDefinitionQuery()// 创建一个流程定义的查询
/** 指定查询条件,where条件 */
// .deploymentId(deploymentId) //使用部署对象ID查询
// .processDefinitionId(processDefinitionId)//使用流程定义ID查询
// .processDefinitionNameLike(processDefinitionNameLike)//使用流程定义的名称模糊查询
/* 排序 */
.orderByProcessDefinitionVersion().asc()
// .orderByProcessDefinitionVersion().desc()
/* 返回的结果集 */
.list();// 返回一个集合列表,封装流程定义
// .singleResult();//返回惟一结果集
// .count();//返回结果集数量
// .listPage(firstResult, maxResults);//分页查询
if (list != null && list.size() > 0) {
for (ProcessDefinition pd : list) {
System.out.println("流程定义ID:" + pd.getId());// 流程定义的key+版本+随机生成数
System.out.println("流程定义的名称:" + pd.getName());// 对应helloworld.bpmn文件中的name属性值
System.out.println("流程定义的key:" + pd.getKey());// 对应helloworld.bpmn文件中的id属性值
System.out.println("流程定义的版本:" + pd.getVersion());// 当流程定义的key值相同的相同下,版本升级,默认1
System.out.println("资源名称bpmn文件:" + pd.getResourceName());
System.out.println("资源名称png文件:" + pd.getDiagramResourceName());
System.out.println("部署对象ID:" + pd.getDeploymentId());
System.out.println("#########################################################");
}
}
}
/**
* 附加功能,查询最新版本的流程定义
*/
@Test
public void findLastVersionProcessDefinition() {
List<ProcessDefinition> list = processEngine.getRepositoryService()
.createProcessDefinitionQuery()
.orderByProcessDefinitionVersion().asc() // 使用流程定义的版本升序排列
.list();
/**
* Map<String,ProcessDefinition> map集合的key:流程定义的key map集合的value:流程定义的对象
* map集合的特点:当map集合key值相同的情况下,后一次的值将替换前一次的值
*/
Map<String, ProcessDefinition> map = new LinkedHashMap<String, ProcessDefinition>();
if (list != null && list.size() > 0) {
for (ProcessDefinition pd : list) {
map.put(pd.getKey(), pd);
}
}
List<ProcessDefinition> pdList = new ArrayList<ProcessDefinition>(
map.values());
if (pdList != null && pdList.size() > 0) {
for (ProcessDefinition pd : pdList) {
System.out.println("流程定义ID:" + pd.getId());// 流程定义的key+版本+随机生成数
System.out.println("流程定义的名称:" + pd.getName());// 对应helloworld.bpmn文件中的name属性值
System.out.println("流程�
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
spring-boot-activiti集成 (120个子文件)
helloworld.bpmn 3KB
helloworld.bpmn 3KB
processVariables.bpmn 3KB
processVariables.bpmn 3KB
DemoActivitiSpringBootApplicationTests.class 14KB
Person.class 1KB
DemoActivitiSpringBootApplication.class 750B
mvnw.cmd 5KB
.gitignore 249B
demo-activiti-spring-boot.iml 11KB
maven-wrapper.jar 46KB
DemoActivitiSpringBootApplicationTests.java 21KB
Person.java 870B
DemoActivitiSpringBootApplication.java 336B
mvnw 6KB
helloworld.png 11KB
helloworld.png 11KB
processVariables.png 9KB
processVariables.png 9KB
maven-wrapper.properties 110B
workspace.xml 49KB
pom.xml 2KB
Maven__org_springframework_boot_spring_boot_test_autoconfigure_1_5_6_RELEASE.xml 787B
Maven__org_springframework_boot_spring_boot_starter_thymeleaf_1_5_6_RELEASE.xml 780B
Maven__org_springframework_boot_spring_boot_starter_data_jpa_1_5_6_RELEASE.xml 773B
Maven__org_springframework_boot_spring_boot_starter_logging_1_5_6_RELEASE.xml 766B
Maven__org_springframework_boot_spring_boot_starter_tomcat_1_5_6_RELEASE.xml 759B
Maven__org_springframework_boot_spring_boot_autoconfigure_1_5_6_RELEASE.xml 752B
Maven__org_hibernate_common_hibernate_commons_annotations_5_0_1_Final.xml 750B
Maven__org_springframework_boot_spring_boot_starter_test_1_5_6_RELEASE.xml 745B
Maven__org_springframework_boot_spring_boot_starter_jdbc_1_5_6_RELEASE.xml 745B
Maven__org_hibernate_javax_persistence_hibernate_jpa_2_1_api_1_0_0_Final.xml 738B
Maven__org_springframework_boot_spring_boot_starter_web_1_5_6_RELEASE.xml 738B
Maven__org_springframework_boot_spring_boot_starter_aop_1_5_6_RELEASE.xml 738B
Maven__org_activiti_activiti_spring_boot_starter_basic_5_21_0.xml 718B
Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml 718B
Maven__org_springframework_data_spring_data_commons_1_13_6_RELEASE.xml 717B
Maven__org_springframework_boot_spring_boot_starter_1_5_6_RELEASE.xml 710B
Maven__org_springframework_boot_spring_boot_test_1_5_6_RELEASE.xml 689B
Maven__org_springframework_data_spring_data_jpa_1_11_6_RELEASE.xml 689B
Maven__org_hibernate_hibernate_entitymanager_5_0_12_Final.xml 687B
Maven__nz_net_ultraq_thymeleaf_thymeleaf_layout_dialect_1_4_0.xml 685B
Maven__org_springframework_spring_expression_4_3_10_RELEASE.xml 683B
Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_16.xml 678B
Maven__org_activiti_activiti_process_validation_5_21_0.xml 669B
Maven__com_fasterxml_jackson_core_jackson_annotations_2_8_0.xml 662B
Maven__org_springframework_spring_aspects_4_3_10_RELEASE.xml 662B
Maven__org_springframework_spring_context_4_3_10_RELEASE.xml 662B
compiler.xml 662B
Maven__org_springframework_spring_webmvc_4_3_10_RELEASE.xml 655B
Maven__org_springframework_boot_spring_boot_1_5_6_RELEASE.xml 654B
Maven__org_thymeleaf_thymeleaf_spring4_2_1_5_RELEASE.xml 652B
Maven__org_hibernate_hibernate_validator_5_3_5_Final.xml 652B
Maven__org_activiti_activiti_image_generator_5_21_0.xml 648B
Maven__org_springframework_spring_beans_4_3_10_RELEASE.xml 648B
Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_16.xml 643B
Maven__org_activiti_activiti_bpmn_converter_5_21_0.xml 641B
Maven__org_springframework_spring_core_4_3_10_RELEASE.xml 641B
Maven__com_fasterxml_jackson_core_jackson_databind_2_8_9.xml 641B
Maven__org_springframework_spring_test_4_3_10_RELEASE.xml 641B
Maven__org_springframework_spring_jdbc_4_3_10_RELEASE.xml 641B
Maven__org_springframework_spring_orm_4_3_10_RELEASE.xml 634B
Maven__org_springframework_spring_aop_4_3_10_RELEASE.xml 634B
Maven__org_springframework_spring_web_4_3_10_RELEASE.xml 634B
Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_16.xml 629B
Maven__javax_validation_validation_api_1_1_0_Final.xml 629B
Maven__org_springframework_spring_tx_4_3_10_RELEASE.xml 627B
Maven__javax_transaction_javax_transaction_api_1_2.xml 626B
Maven__org_jboss_logging_jboss_logging_3_3_1_Final.xml 626B
Maven__org_hibernate_hibernate_core_5_0_12_Final.xml 624B
Maven__org_activiti_activiti_bpmn_model_5_21_0.xml 613B
Maven__com_fasterxml_jackson_core_jackson_core_2_8_9.xml 613B
Maven__org_postgresql_postgresql_9_4_1212_jre7.xml 607B
Maven__org_unbescape_unbescape_1_1_0_RELEASE.xml 596B
Maven__org_thymeleaf_thymeleaf_2_1_5_RELEASE.xml 596B
Maven__ch_qos_logback_logback_classic_1_1_11.xml 593B
Maven__org_apache_commons_commons_lang3_3_3_2.xml 588B
Maven__org_activiti_activiti_spring_5_21_0.xml 585B
Maven__org_activiti_activiti_engine_5_21_0.xml 585B
Maven__org_slf4j_log4j_over_slf4j_1_7_25.xml 580B
Maven__org_apache_tomcat_tomcat_juli_8_5_16.xml 577B
Maven__org_apache_tomcat_tomcat_jdbc_8_5_16.xml 577B
Maven__org_apache_commons_commons_email_1_4.xml 574B
Maven__ch_qos_logback_logback_core_1_1_11.xml 572B
Maven__org_hamcrest_hamcrest_library_1_3.xml 571B
Maven__org_javassist_javassist_3_21_0_GA.xml 568B
Maven__org_aspectj_aspectjweaver_1_8_10.xml 567B
Maven__org_mockito_mockito_core_1_10_19.xml 567B
Maven__org_slf4j_jcl_over_slf4j_1_7_25.xml 566B
Maven__com_jayway_jsonpath_json_path_2_2_0.xml 564B
Maven__net_minidev_accessors_smart_1_1.xml 560B
Maven__javax_activation_activation_1_1_1.xml 559B
Maven__org_skyscreamer_jsonassert_1_4_0.xml 555B
Maven__org_assertj_assertj_core_2_6_0.xml 553B
Maven__org_slf4j_jul_to_slf4j_1_7_25.xml 552B
Maven__org_hamcrest_hamcrest_core_1_3.xml 550B
Maven__org_codehaus_groovy_groovy_2_4_12.xml 550B
Maven__org_projectlombok_lombok_1_16_18.xml 549B
Maven__org_jboss_jandex_2_0_0_Final.xml 545B
Maven__com_sun_mail_javax_mail_1_5_6.xml 543B
共 120 条
- 1
- 2
资源评论
- 码非码2018-01-27这个太简单了 没什么东西,可借鉴的东西太少了
- 宇轩~~2018-08-13可以借鉴一下
weifubin
- 粉丝: 5
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功