日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Springboot集成activity過程圖解

瀏覽:90日期:2023-05-19 17:44:11

1.第一步添加bpmn文件得插件,不然沒法查看和編輯bpmn文件,添加插件的方法各自百度即可,很簡單

Springboot集成activity過程圖解

2.安裝好bpmn插件后開始新建bpmn文件,也就是畫流程圖

Springboot集成activity過程圖解

Springboot集成activity過程圖解

一般是在代碼中進行指定流程審批人的,我這里只做入門案例

3.添加pom依賴

這里包含了在線設計流程圖的相關依賴,在下一篇會寫出來,項目中一般都是在前端在線設計;所以直接放上去也沒事

<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.0.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com</groupId> <artifactId>springboot_activiti</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springboot_activiti</name> <description>Demo project for Spring Boot</description> <properties> <springboot.version>2.2.0.RELEASE</springboot.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <activiti.version>6.0.0</activiti.version> </properties> <dependencies> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-engine</artifactId> <version>${activiti.version}</version> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring</artifactId> <version>${activiti.version}</version> <exclusions><exclusion> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId></exclusion><exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId></exclusion><exclusion> <artifactId>spring-context</artifactId> <groupId>org.springframework</groupId></exclusion><exclusion> <artifactId>spring-jdbc</artifactId> <groupId>org.springframework</groupId></exclusion><exclusion> <artifactId>spring-tx</artifactId> <groupId>org.springframework</groupId></exclusion><exclusion> <artifactId>spring-orm</artifactId> <groupId>org.springframework</groupId></exclusion><exclusion> <artifactId>spring-beans</artifactId> <groupId>org.springframework</groupId></exclusion><exclusion> <artifactId>mybatis</artifactId> <groupId>org.mybatis</groupId></exclusion><exclusion> <artifactId>activation</artifactId> <groupId>javax.activation</groupId></exclusion> </exclusions> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter-basic</artifactId> <version>${activiti.version}</version> </dependency> <!-- Activiti 流程圖 --> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-common-rest</artifactId> <version>${activiti.version}</version> </dependency> <!-- Activiti 在線設計 --> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-modeler</artifactId> <version>5.22.0</version> <exclusions><exclusion> <artifactId>spring-beans</artifactId> <groupId>org.springframework</groupId></exclusion><exclusion> <artifactId>spring-context</artifactId> <groupId>org.springframework</groupId></exclusion><exclusion> <artifactId>spring-core</artifactId> <groupId>org.springframework</groupId></exclusion><exclusion> <artifactId>spring-tx</artifactId> <groupId>org.springframework</groupId></exclusion><exclusion> <artifactId>spring-web</artifactId> <groupId>org.springframework</groupId></exclusion><exclusion> <artifactId>spring-security-config</artifactId> <groupId>org.springframework.security</groupId></exclusion><exclusion> <artifactId>spring-security-core</artifactId> <groupId>org.springframework.security</groupId></exclusion><exclusion> <artifactId>spring-security-crypto</artifactId> <groupId>org.springframework.security</groupId></exclusion><exclusion> <artifactId>spring-security-web</artifactId> <groupId>org.springframework.security</groupId></exclusion><exclusion> <artifactId>spring-webmvc</artifactId> <groupId>org.springframework</groupId></exclusion><exclusion> <artifactId>activation</artifactId> <groupId>javax.activation</groupId></exclusion><exclusion> <artifactId>commons-io</artifactId> <groupId>commons-io</groupId></exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-autoconfigure</artifactId> <version>${springboot.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.10.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>RELEASE</version> <scope>compile</scope> </dependency> </dependencies> <build> <plugins> <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><configuration> <port>8081</port> <path>/activity</path> <systemProperties> <com.sun.management.jmxremote.port>4000</com.sun.management.jmxremote.port> </systemProperties></configuration> </plugin> </plugins> </build></project>

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=UTCusername: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driveractiviti:# 自動部署驗證設置:true-開啟(默認)、false-關閉check-process-definitions: false#自動部署文件路徑后綴# process-definition-location-prefix: classpath:/processes/# process-definition-location-suffixes:# - **.bpmn# - **.bpmn20.xmlserver: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 runtimeService; @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<Task> 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過程圖解

Springboot集成activity過程圖解

啟動流程

Springboot集成activity過程圖解

Springboot集成activity過程圖解

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲精选91| 久久黄色影视| 国产福利亚洲| 久久女人天堂| 色综合狠狠操| 国产精品巨作av| 欧美日本久久| 国产精品一区2区3区| 国产精品99久久免费观看| 欧美极品中文字幕| 日韩欧美精品| 综合五月婷婷| 高清一区二区三区av| 婷婷成人在线| 久久先锋影音| 久久国产尿小便嘘嘘| 福利片在线一区二区| 日韩激情一区| 免费久久99精品国产| 国产精品中文字幕制服诱惑| 国产麻豆一区二区三区 | 久久亚洲美女| 日本a级不卡| 久久一区亚洲| 爽爽淫人综合网网站| 美女毛片一区二区三区四区最新中文字幕亚洲| 国产一区二区三区日韩精品| 午夜精品婷婷| 欧美精品不卡| 丝瓜av网站精品一区二区| 精品一区二区三区在线观看视频| 激情欧美日韩一区| 日韩高清在线一区| 九九色在线视频| 欧美自拍一区| 亚洲激情中文| 97在线精品| 国产日韩一区二区三区在线播放| 欧美三级精品| 久久亚洲精品中文字幕| 亚洲精品无播放器在线播放| 亚洲黄色免费看| 国产日韩亚洲欧美精品| 亚洲一区欧美激情| 激情自拍一区| 亚洲不卡系列| 裤袜国产欧美精品一区| 亚洲免费观看高清完整版在线观| 国产一区国产二区国产三区| 中文字幕一区二区三区四区久久| 91精品国产调教在线观看| 高清日韩欧美| 在线看片福利| 久久黄色影院| 久久裸体视频| 欧美日韩国产免费观看| 日韩毛片视频| 日韩毛片视频| 亚洲二区视频| 亚洲精品一区二区妖精| 成人av动漫在线观看| 亚洲国产专区| 99精品美女| 亚洲国产专区| 国产农村妇女精品一区二区| 欧美在线网站| 亚洲九九精品| 亚洲aⅴ网站| 欧美片第1页综合| 麻豆91在线播放| 日韩制服丝袜先锋影音| 里番精品3d一二三区| 免费在线播放第一区高清av| 亚洲毛片网站| 日韩综合小视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩在线a电影| 日韩欧美中文字幕电影| 国产精品一在线观看| 欧美一区久久久| 99国产精品久久久久久久成人热 | 亚洲精品动态| 你懂的国产精品永久在线| 久久婷婷丁香| 日韩极品在线观看| xxxxx性欧美特大| 亚洲三级网站| 欧美一区二区三区激情视频 | 高清一区二区三区av| 成人在线网站| 国产亚洲一卡2卡3卡4卡新区| 成人亚洲欧美| 欧美日韩一区二区三区在线电影| 国产成人77亚洲精品www| 美女网站久久| 欧美三级精品| 国产日韩亚洲欧美精品| 一本色道精品久久一区二区三区| 欧美激情亚洲| 亚洲精一区二区三区| 欧洲亚洲一区二区三区| 国产乱子精品一区二区在线观看| 亚洲一本视频| 中文字幕人成乱码在线观看| 亚洲欧美日韩一区在线观看| 精品免费av| 7m精品国产导航在线| 另类av一区二区| 欧美中文一区二区| 日韩国产激情| 日本不卡视频在线| 国内自拍视频一区二区三区| 午夜精品福利影院| 国产精品社区| 99在线|亚洲一区二区| av中文资源在线资源免费观看| 日本视频一区二区| 综合激情五月婷婷| 不卡一区综合视频| 日产精品一区| 国产黄大片在线观看| 97精品国产福利一区二区三区| 国产色噜噜噜91在线精品| 日本亚州欧洲精品不卡| 亚洲欧美久久| 亚洲调教视频在线观看| 久久裸体视频| 久久亚洲国产| 99久久亚洲精品蜜臀| 久久精品高清| 亚洲精华国产欧美| 综合色就爱涩涩涩综合婷婷| 亚洲精品黄色| 欧美片网站免费| 国产精品视频一区二区三区四蜜臂 | 日韩在线一区二区| 日韩久久一区| 国产精品日本一区二区不卡视频| 清纯唯美亚洲综合一区| 国产精品久久久久久模特| 久久久久久久久成人| 久久婷婷av| 亚洲免费资源| 国产精品国码视频| 日韩欧美2区| 亚洲午夜久久| 麻豆一区在线| 欧美成人高清| 日韩中文字幕一区二区三区| 欧美在线看片| 视频福利一区| 亚洲精品成人一区| 福利一区和二区| 一本一本久久| 国产乱子精品一区二区在线观看 | 精品国产亚洲日本| 国产毛片一区| 久久精品国产精品亚洲毛片| 在线日韩中文| 国产精品久久久久久久久久妞妞| 日韩欧美一区二区三区在线视频| 一区在线免费观看| 麻豆一区二区三区| 久久福利精品| 三级在线看中文字幕完整版| 久久xxxx精品视频| 韩国精品主播一区二区在线观看 | 老牛国产精品一区的观看方式| 国产精品久久久久久妇女| 欧美日韩激情| 国产一区丝袜| 日韩国产在线不卡视频| 1024精品一区二区三区| 国产精品福利在线观看播放| 亚洲一区观看| 麻豆成人av在线| 国产精品亚洲欧美一级在线| 亚洲自拍另类| 在线看片不卡| 亚洲一级二级| 国产精品成人一区二区不卡| 蜜桃久久久久| 青青草伊人久久| 日韩精品乱码av一区二区| 99在线观看免费视频精品观看| 麻豆国产一区| 国产福利一区二区三区在线播放| 日韩成人在线看| 天堂精品久久久久| 1000部精品久久久久久久久| 国内精品伊人| 精品国产麻豆| 国产+成+人+亚洲欧洲在线| 四虎国产精品免费观看| sm久久捆绑调教精品一区| 日本黄色精品| 在线日韩欧美| 天堂av在线一区| 婷婷精品久久久久久久久久不卡| 日韩精品欧美精品|