• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Springboot集成activity过程图解

springboot 搞代码 4年前 (2022-01-05) 47次浏览 已收录 0个评论

这篇文章主要介绍了Springboot集成activity过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1.第一步添加bpmn文件得插件,不然没法查看和编辑bpmn文件,添加插件的方法各自百度即可,很简单

2.安装好bpmn插件后开始新建bpmn文件,也就是画流程图

一般是在代码中进行指定流程审批人的,我这里只做入门案例

3.添加pom依赖

这里包含了在线设计流程图的相关依赖,在下一篇会写出来,项目中一般都是在前端在线设计;所以直接放上去也没事

   4.0.0 org.springframework.bootspring-boot-starter-parent2.2.0.RELEASE<!-- lookup parent from repository -->comspringboot_activiti0.0.1-SNAPSHOTspringboot_activitiDemo project for Spring Boot 2.2.0.RELEASEUTF-8UTF-81.86.0.0  org.activitiactiviti-engine${activiti.version} org.activitiactiviti-spring${activiti.version}  org.codehaus.jacksonjackson-core-asl org.slf4jslf4j-log4j12 spring-contextorg.springframework spring-jdbcorg.springframework spring-txorg.springframework spring-ormorg.springframework spring-beansorg.springframework mybatisorg.mybatis activationjavax.activation org.activitiactiviti-spring-boot-starter-basic${activiti.version}<!-- Activiti 流程图 --> org.activitiactiviti-common-rest${activiti.version}<!-- Activiti 在线设计 --> org.activitiactiviti-modeler5.22.0  spring-beansorg.springframework spring-contextorg.springframework spring-coreorg.springframework spring-txorg.springframework spring-weborg.springframework spring-security-configorg.springframework.security spring-security-coreorg.springframework.security spring-security-cryptoorg.springframework.security spring-security-weborg.springframework.security spring-webmvcorg.springframework activationjavax.activation commons-iocommons-io org.springframework.bootspring-boot-autoconfigure${springboot.version} org.springframework.bootspring-boot-starter-tomcat org.springframework.bootspring-boot-starter-testtest org.springframework.bootspring-boot-starter-thymeleaf org.springframework.bootspring-boot-starter-web commons-iocommons-io2.3 com.fasterxml.jackson.corejackson-core2.10.0 org.springframework.bootspring-boot-starter-data-jpa mysqlmysql-connector-javaruntime org.junit.jupiterjunit-jupiter-apiRELEASEcompile   org.springframework.bootspring-boot-maven-plugin org.apache.tomcat.maventomcat7-maven-plugin 8081/activity 4000

4.yml文件

这里采用的数据库还是mysql

这里有个需要注意的地方,springboot2.2中的driver-class-name值变了,不是以前的那个了,不然会报错

spring:
datasource:
url: jdbc:mysql://localhost:3307/t2?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true&serverTimezone=UTC
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
activiti:
# 自动部署验证设置:true-开启(默认)、false-关闭
check-process-definitions: false
#自动部署文件路径后缀
# process-definition-location-prefix: classpath:/processes/
# process-definition-location-suffixes:
# – **.bpmn
# – **.bpmn20.xml
server:
port: 8082

5.配置已经好了,下面开始写代码了,只是初步写了一些新建流程,正常提交流程,直接结束流程,以及查询待办的案例,细节还需要各自自己去调试学习

controller

 package com.springboot_activiti.controller; import com.springboot_activiti.service.ActivityConsumerService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/activiti") public class ActivitiController { @Autowired private ActivityConsumerService activityConsumerService; /** * 注册流程 * @return */ @RequestMapping("/createDeployment") public Boolean createDeployment(){ return activityConsumerService.createDeployment(); } /** * 启动流程 * @return */ @RequestMapping("/startActivityDemo") public Boolean startActivityDemo(){ return activityConsumerService.startActivityDemo("test01"); } /** * 获取待办 * @return */ @RequestMapping("/getTaskList") public boolean getTaskList(){ return activityConsumerService.getTaskList(); } /** * 提交 * @param taskId * @return */ @RequestMapping("/complete") public boolean complete(String taskId){ return activityConsumerService.complete(taskId); } /** * 根据流程id直接结束流程 * @paramru * @return */ @RequestMapping("/deleteProcessInstance") public boolean deleteProcessInstance(String runId){ return activityConsumerService.deleteProcessInstance(runId); } }

service

 package com.springboot_activiti.service; public interface ActivityConsumerService { boolean createDeployment(); boolean startActivityDemo(String key); boolean getTaskList(); boolean complete(String taskId); boolean deleteProcessInstance(String runId); }

实现类

 package com.springboot_activiti.service; import org.activiti.engine.RepositoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.repository.DeploymentBuilder; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service("activityService") public class ActivityConsumerServiceImpl implements ActivityConsumerService { @Autowired private RuntimeService runtimeSe<div style="color:transparent">来源gaodai.ma#com搞##代!^码@网</div>rvice; @Autowired private TaskService taskService; @Autowired private RepositoryService repositoryService; /** * 注册一个流程 * @return */ @Override public boolean createDeployment() { DeploymentBuilder builder=repositoryService.createDeployment(); builder.addClasspathResource("test01.bpmn"); builder.deploy(); return true; } /** * 查询待办 * @return */ public boolean getTaskList(){ //获取待办的一些信息,这里可以传入需要查询的用户, //我这里查询的所有待办 List tasks = taskService.createTaskQuery().list(); for (Task t:tasks) { System.out.println(t.getCreateTime()); System.out.println(t.getId()); System.out.println(t.getName()); System.out.println(t.getProcessInstanceId()); System.out.println(t.getTaskDefinitionKey()); System.out.println(t.getParentTaskId()); } return true; } /** * 根据流程key开启一个流程 * @param key * @return */ @Override public boolean startActivityDemo(String key) { ProcessInstance test01 = runtimeService.startProcessInstanceByKey(key); String id = test01.getId(); System.out.println("流程id="+id); /* */ /*  String assignee = "abc";*/ return true; } /** * 根据任务id提交任务 * @param taskId * @return */ @Override public boolean complete(String taskId){ taskService.complete(taskId); return true; } /** * 根据流程id直接结束流程 * @param runId * @return */ @Override public boolean deleteProcessInstance(String runId){ runtimeService.deleteProcessInstance(runId,"结束"); return true; } }

启动类,这里存在一个在线视图设计的验证处理,

 package com.springboot_activiti; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; @ComponentScan("com") @SpringBootApplication @EnableAutoConfiguration(exclude = { org.activiti.spring.boot.SecurityAutoConfiguration.class }) public class SpringbootActivitiApplication { public static void main(String[] args) { SpringApplication.run(SpringbootActivitiApplication.class, args); } }

所有的代码已经写好了

备注说明:

项目启动会新建28张表,各自代表的含义自行百度把

因为我的数据都是直接在流程图bpmn文件里面写好的,实际中肯定是在代码里面指定的

首先访问注册流程

启动流程(会返回一个流程id)

查看待办就可以获取相关的信息了

正常提交任务,会审批到下一节点(查看待办可以得到任务id)

直接结束流程(非正常结束,启动流程的id传入即可)

请求案例

查询待办

启动流程

以上就是Springboot集成activity过程图解的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Springboot集成activity过程图解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址