久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Springboot集成activity過(guò)程圖解

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

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

Springboot集成activity過(guò)程圖解

2.安裝好bpmn插件后開(kāi)始新建bpmn文件,也就是畫(huà)流程圖

Springboot集成activity過(guò)程圖解

Springboot集成activity過(guò)程圖解

一般是在代碼中進(jìn)行指定流程審批人的,我這里只做入門(mén)案例

3.添加pom依賴

這里包含了在線設(shè)計(jì)流程圖的相關(guān)依賴,在下一篇會(huì)寫(xiě)出來(lái),項(xiàng)目中一般都是在前端在線設(shè)計(jì);所以直接放上去也沒(méi)事

<?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 在線設(shè)計(jì) --> <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文件

這里采用的數(shù)據(jù)庫(kù)還是mysql

這里有個(gè)需要注意的地方,springboot2.2中的driver-class-name值變了,不是以前的那個(gè)了,不然會(huì)報(bào)錯(cuò)

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:# 自動(dòng)部署驗(yàn)證設(shè)置:true-開(kāi)啟(默認(rèn))、false-關(guān)閉check-process-definitions: false#自動(dòng)部署文件路徑后綴# process-definition-location-prefix: classpath:/processes/# process-definition-location-suffixes:# - **.bpmn# - **.bpmn20.xmlserver:port: 8082

5.配置已經(jīng)好了,下面開(kāi)始寫(xiě)代碼了,只是初步寫(xiě)了一些新建流程,正常提交流程,直接結(jié)束流程,以及查詢待辦的案例,細(xì)節(jié)還需要各自自己去調(diào)試學(xué)習(xí)

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; /** * 注冊(cè)流程 * @return */ @RequestMapping('/createDeployment') public Boolean createDeployment(){ return activityConsumerService.createDeployment(); } /** * 啟動(dòng)流程 * @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); } /** * 根據(jù)流程id直接結(jié)束流程 * @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);}

實(shí)現(xiàn)類(lèi)

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; /** * 注冊(cè)一個(gè)流程 * @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; } /** * 根據(jù)流程key開(kāi)啟一個(gè)流程 * @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; } /** * 根據(jù)任務(wù)id提交任務(wù) * @param taskId * @return */ @Override public boolean complete(String taskId){ taskService.complete(taskId); return true; } /** * 根據(jù)流程id直接結(jié)束流程 * @param runId * @return */ @Override public boolean deleteProcessInstance(String runId){ runtimeService.deleteProcessInstance(runId,'結(jié)束'); return true; }}

啟動(dòng)類(lèi),這里存在一個(gè)在線視圖設(shè)計(jì)的驗(yàn)證處理,

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); }}

所有的代碼已經(jīng)寫(xiě)好了

備注說(shuō)明:

項(xiàng)目啟動(dòng)會(huì)新建28張表,各自代表的含義自行百度把

因?yàn)槲业臄?shù)據(jù)都是直接在流程圖bpmn文件里面寫(xiě)好的,實(shí)際中肯定是在代碼里面指定的

首先訪問(wèn)注冊(cè)流程

啟動(dòng)流程(會(huì)返回一個(gè)流程id)

查看待辦就可以獲取相關(guān)的信息了

正常提交任務(wù),會(huì)審批到下一節(jié)點(diǎn)(查看待辦可以得到任務(wù)id)

直接結(jié)束流程(非正常結(jié)束,啟動(dòng)流程的id傳入即可)

請(qǐng)求案例

查詢待辦

Springboot集成activity過(guò)程圖解

Springboot集成activity過(guò)程圖解

啟動(dòng)流程

Springboot集成activity過(guò)程圖解

Springboot集成activity過(guò)程圖解

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 进贤县| 山西省| 曲水县| 永城市| 吉木乃县| 绵竹市| 延川县| 彭阳县| 雅江县| 同仁县| 桑植县| 闸北区| 灵山县| 双辽市| 阳东县| 文水县| 长乐市| 策勒县| 太康县| 通海县| 塔城市| 洞口县| 东莞市| 吴堡县| 东乌珠穆沁旗| 千阳县| 陇西县| 土默特右旗| 康定县| 松潘县| 涟源市| 陆良县| 辉县市| 辽阳市| 新晃| 贵港市| 友谊县| 阳高县| 海丰县| 彭泽县| 丽江市|