Spring boot 工作流 activiti小节
程序员文章站
2022-03-16 08:54:49
...
1 pom.xml
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>6.0.0</version>
</dependency>
2 插件
actiBPM
3 配置文件
#Spring配置
spring:
activiti:
#设置为不校验
check-process-definitions: false
#false:false为默认值,设置为该值后,Activiti在启动时,会对比数据库表中保存的版本,如果版本不匹配时,将在启动时抛出异常。
#true:设置为该值后,Activiti会对数据库中所有的表进行更新,如果表不存在,则Activiti会自动创建。
#create-drop:Activiti启动时,会执行数据库表的创建操作,在Activiti关闭时,执行数据库表的删除操作。
#drop-create:Activiti启动时,执行数据库表的删除操作在Activiti关闭时,会执行数据库表的创建操作。
database-schema-update: true
#保存历史数据级别设置为full*别,便于历史数据的追溯
#none:不保存任何的历史数据,因此,在流程执行过程中,这是最高效的。
#activity:级别高于none,保存流程实例与流程行为,其他数据不保存。
#audit:除activity级别会保存的数据外,还会保存全部的流程任务及其属性。audit为history的默认值。
#full:保存历史数据的*别,除了会保存audit级别的数据外,还会保存其他全部流程相关的细节数据,包括一些流程参数等。
history-level: full
4 bpmn文件创建
StartEvent
EndEvent
UserTask
ServiceTask
MailTask
ParallelGateway 并行
ExclusiveGateway 互斥
InclusiveGateway 包容
Assignee 办理人
CandidateUser
CandidateGroup
Claim 领取
5 部署 启动 结束 加入business
@Controller
@RequestMapping("api/test")
public class SzlTestController extends BaseController {
@Autowired
TaskService taskService;
@Autowired
RuntimeService runtimeService;
@Autowired
TestService testService;
@Autowired
RepositoryService repositoryService;
@RequestMapping("/getTasks")
@ResponseBody
public AjaxResult getTasks(String userId,int day) {
List<Task> resultTask = taskService.createTaskQuery().processDefinitionKey("firstProcess").taskCandidateOrAssigned(userId).list();
for (Task task:resultTask){
//2 通过任务对象获取流程实例
ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult();
//3 通过流程实例获取“业务键”
String businessKey = pi.getBusinessKey();
System.out.println("业务key:"+businessKey);
if ("小明".equals(userId)){
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("day", day);
taskService.complete(task.getId(),variables);
}else {
//完成该任务
taskService.complete(task.getId());
}
}
return success(0,resultTask);
}
@RequestMapping("/start")
@ResponseBody
public AjaxResult start() {
String businessKey = "businessKey";//加入业务key
ProcessInstance pi = runtimeService.startProcessInstanceByKey("firstProcess", businessKey);
System.out.println("流程启动成功,流程id:"+pi.getId());
return success();
}
@RequestMapping("/deploy")
@ResponseBody
public AjaxResult deploy() {
//部署流程
repositoryService.createDeployment().addClasspathResource("processes/firstProcess.bpmn").deploy();
return success();
}
}
上一篇: C++内联函数
下一篇: python之邮件发送简易篇
推荐阅读
-
在 Spring Boot 项目中使用 activiti
-
Activiti6.0 spring5 工作流引擎 java SSM流程审批 项目框架
-
spring cloud springboot 框架源码 activiti工作流 前后分离 集成代码生成器
-
Spring Boot 2.1 +mybatisPlus3.1.2+activiti6整合
-
Spring Boot + Thymeleaf + Activiti 快速开发平台项目附源码
-
Java Activiti6.0 spring5 SSM 工作流引擎 审批流程 java项目框架
-
spring boot集成flowable工作流 带源码
-
Activiti6.0 java spring5 SSM 工作流引擎 审批流程 项目框架
-
java Activiti6.0 后台 框架 spring5 SSM 工作流引擎 审批流程
-
spring cloud 框架源码 activiti工作流 vue.js html 跨域 前后分离 springboot