camunda是最新流程
我们看一下camunda 有哪些功能
如何创建一个camunda项目的方式
创建camunda项目的方式
导入依赖信息
注意信息:
jdk 23+以上
springboot 3.0.0 版本以上
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- camunda-->
<dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter</artifactId>
<version>${java.camunda}</version>
</dependency>
<dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
<version>${java.camunda}</version>
</dependency>
<dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
<version>${java.camunda}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.32</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>6.3.0</version>
</dependency>
<!-- 工具类框架-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!-- 参数验证框架-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
</dependencies>
版本信息
<java.camunda>7.23.0</java.camunda>
yml配置信息
spring:
datasource:
url: jdbc:mysql://mysql3.sqlpub.com:3308/jk2j5f?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
username: xxxx
password: xxx
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.zaxxer.hikari.HikariDataSource
hikari:
# 默认等待
connection-timeout: 2000
# 最大连接数
maximum-pool-size: 30
# 等待时间
idle-timeout: 30000
# camunda登录信息配置
camunda.bpm:
admin-user:
id: admin #用户名
password: 123456 #密码
firstName: yu
filter:
create: All tasks
server:
port: 9001
项目启动出现如下表的方式
就是启动成功了
访问页面信息
使用yml的密码进行方位
admin
123456
创建流程图
下载这个camunda model 软件
流程图
详细解释每个流程图的方式
开始任务每个camunda必须有一个开始任务
用户任务,我们进行手动干预流程的
我们指定审批人
网管相当于if判断的方式
如果传入pass通过的方式
其他的就是另外一个分支上
开始写代码
启动流程代码
@PostMapping("/start/process")
public String startProcess(@RequestParam(name = "key",defaultValue = "key") String key,
@RequestParam(name = "user",defaultValue = "user") String user,
@RequestParam(name = "reason",defaultValue = "我听听") String reason)
{
Map<String,Object> map = new HashMap<>();
map.put("user",user);
map.put("name","天天");
map.put("reason",reason);
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(key,map);
return processInstance.getId();
}
参数说明:
key是流程的信息
user是指定审批人
reason是需要发起审批的原音
执行任务
/**
* 完成任务
* @return
*/
@GetMapping("/complete/approve")
public String completeApprove(
@RequestParam(name = "taskId") String taskId ,
@RequestParam(name = "approve",required = false) String approve,
@RequestParam(name = "note",required = false) String note,
@RequestParam(name = "variables") String variables,
@RequestParam(name = "teacher") String teacher
){
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
if (task == null) {
return "任务不存在";
}
Map<String,Object> variablesMap = new HashMap<>();
variablesMap.put("name",variables);
variablesMap.put("pass","true");
variablesMap.put("teacher",teacher);
//完成任务
taskService.complete(taskId,variablesMap);
return "成功";
}
参数说明:
taskId 任务id
variables 变量信息
pass 网管通过
teacher 指定审批人
camunda接口说明
@Autowired
private RuntimeService runtimeService;
我们启动一个流程开始的方式
@Autowired
private TaskService taskService;
查询任务和审批任务使用最多的
总结一下
camunda 使用手册比较少
但是需要自己研究camunda 如何使用的方式
如果只是现在简单功能,可以通过增删改查的方式进行修改