最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot2?使用activiti6?idea插件的過程詳解

 更新時(shí)間:2022年03月29日 09:50:58   作者:qwer78  
這篇文章主要介紹了springboot2?使用activiti6?idea插件,本文通過截圖實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

Activiti BPMN visualizer插件

import com.alibaba.fastjson.JSON;
import com.schinta.util.DateTimeUtil;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.*;
import org.activiti.engine.history.*;
import org.activiti.engine.impl.identity.Authentication;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Comment;
import org.activiti.engine.task.Task;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.util.CollectionUtils;
import java.util.*;
//spring boot2 集成activiti6 一系列異常文檔  https://www.jianshu.com/p/77fa5f932f4f
@Slf4j
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class WebApplicationTests {
    @Autowired
    private ProcessEngine processEngine;
    private RepositoryService repositoryService;
    private RuntimeService runtimeService;
    private TaskService taskService;
    private HistoryService historyService;
    @Test
    public void deployProcess() {
        //部署模板
        Deployment deploy = repositoryService.createDeployment()
                .addClasspathResource("processes/wh.bpmn20.xml")
                .deploy();
        System.out.println(deploy.getId());
    }
    public void start() {
        String instanceKey = "wh";
        log.info("開啟請(qǐng)假流程...");
        Map<String, Object> map = new HashMap<>();
        //在wh.bpmn中,填寫請(qǐng)假單的任務(wù)辦理人為動(dòng)態(tài)傳入的userId,此處模擬一個(gè)id
        map.put("user1", 1);
        map.put("user2", 2);
        Authentication.setAuthenticatedUserId("1");
        ProcessInstance instance = runtimeService.startProcessInstanceByKey(instanceKey, map);
        log.info("啟動(dòng)流程實(shí)例成功:{}", instance);
        log.info("流程實(shí)例ID:{}", instance.getId());
        log.info("流程定義ID:{}", instance.getProcessDefinitionId());
    public void taskQuery() {
        //查詢自己發(fā)起的全部的審批
        //List<HistoricProcessInstance> historicProcessInstanceList = historyService.createHistoricProcessInstanceQuery().startedBy(userId).list();
        //根據(jù)流程定義的key,負(fù)責(zé)人assignee來實(shí)現(xiàn)  當(dāng)前用戶的 待辦任務(wù)列表查詢
        List<Task> list = taskService.createTaskQuery()
                .processDefinitionKey(instanceKey)
                .taskAssignee("2")
                .list();
        if (list != null && list.size() > 0) {
            for (Task task : list) {
                System.out.println("任務(wù)ID:" + task.getId());
                System.out.println("任務(wù)名稱:" + task.getName());
                System.out.println("任務(wù)的創(chuàng)建時(shí)間:" + task.getCreateTime());
                System.out.println("任務(wù)的辦理人:" + task.getAssignee());
                System.out.println("流程實(shí)例ID:" + task.getProcessInstanceId());
                System.out.println("執(zhí)行對(duì)象ID:" + task.getExecutionId());
                System.out.println("流程定義ID:" + task.getProcessDefinitionId());
                System.out.println("getOwner:" + task.getOwner());
                System.out.println("getCategory:" + task.getCategory());
                System.out.println("getDescription:" + task.getDescription());
                System.out.println("getFormKey:" + task.getFormKey());
                Map<String, Object> map = task.getProcessVariables();
                for (Map.Entry<String, Object> m : map.entrySet()) {
                    System.out.println("key:" + m.getKey() + " value:" + m.getValue());
                }
                for (Map.Entry<String, Object> m : task.getTaskLocalVariables().entrySet()) {
            }
        }
    /**
     * 審批
     */
    public void employeeApply() {
        String instanceId = "130001"; //  執(zhí)行流程實(shí)例id
        Task task = taskService.createTaskQuery().processInstanceId(instanceId).singleResult();
        //是否同意 0 同意, 1 駁回
        map.put("status", "0");
        taskService.addComment(task.getId(), instanceId, "測(cè)試評(píng)論34");
        taskService.complete(task.getId(), map);
        log.info("流程推動(dòng)到下環(huán)節(jié)");
     * 實(shí)例詳情
    public void queryHistoryTask() {
        List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery() // 創(chuàng)建歷史活動(dòng)實(shí)例查詢
                .processInstanceId(instanceId) // 執(zhí)行流程實(shí)例id
                .orderByTaskCreateTime()
                .asc()
        for (HistoricTaskInstance hai : list) {
            System.out.println("===================");
            System.out.println("活動(dòng)ID:" + hai.getId());
            System.out.println("流程實(shí)例ID:" + hai.getProcessInstanceId());
            System.out.println("活動(dòng)名稱:" + hai.getName());
            System.out.println("辦理人:" + hai.getAssignee());
            System.out.println("開始時(shí)間:" + hai.getStartTime());
            System.out.println("結(jié)束時(shí)間:" + hai.getEndTime());
            List<Comment> comments = taskService.getTaskComments(hai.getId());
            System.out.println("評(píng)論內(nèi)容:" + JSON.toJSONString(comments));
}

到此這篇關(guān)于springboot2 使用activiti6 idea插件的文章就介紹到這了,更多相關(guān)springboot2 activiti6 idea插件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java單機(jī)環(huán)境實(shí)現(xiàn)定時(shí)任務(wù)技術(shù)

    Java單機(jī)環(huán)境實(shí)現(xiàn)定時(shí)任務(wù)技術(shù)

    這篇文章主要介紹了Java單機(jī)環(huán)境實(shí)現(xiàn)定時(shí)任務(wù)技術(shù),文章內(nèi)容介紹詳細(xì),具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-04-04
  • 最詳細(xì)的文件上傳下載實(shí)例詳解(推薦)

    最詳細(xì)的文件上傳下載實(shí)例詳解(推薦)

    在Web應(yīng)用系統(tǒng)開發(fā)中,文件上傳和下載功能是非常常用的功能,今天來講一下JavaWeb中的文件上傳和下載功能的實(shí)現(xiàn)。非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看下吧
    2016-07-07
  • Java中ArrayList的常見用法示例小結(jié)

    Java中ArrayList的常見用法示例小結(jié)

    本文介紹了Java的ArrayList,它是一個(gè)動(dòng)態(tài)數(shù)組,可以自動(dòng)調(diào)整大小,支持添加、刪除、獲取元素等操作,同時(shí),還討論了如何存儲(chǔ)基本數(shù)據(jù)類型以及在多線程環(huán)境下的使用注意事項(xiàng),感興趣的朋友一起看看吧
    2025-02-02
  • Java Enum的簡(jiǎn)單使用

    Java Enum的簡(jiǎn)單使用

    這篇文章主要為大家詳細(xì)介紹了Java Enum的簡(jiǎn)單使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Spring更簡(jiǎn)單的存儲(chǔ)方式與獲取方式詳解

    Spring更簡(jiǎn)單的存儲(chǔ)方式與獲取方式詳解

    Spring是一個(gè)輕量級(jí)的IoC和AOP容器框架,是為Java應(yīng)用程序提供基礎(chǔ)性服務(wù)的一套框架,目的是用于簡(jiǎn)化企業(yè)應(yīng)用程序的開發(fā),它使得開發(fā)者只需要關(guān)心業(yè)務(wù)需求,下面這篇文章主要給大家介紹了關(guān)于Spring更簡(jiǎn)單的存儲(chǔ)方式與獲取方式的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • 基于SpringBoot實(shí)現(xiàn)IP黑白名單的詳細(xì)步驟

    基于SpringBoot實(shí)現(xiàn)IP黑白名單的詳細(xì)步驟

    IP黑白名單是網(wǎng)絡(luò)安全管理中常見的策略工具,用于控制網(wǎng)絡(luò)訪問權(quán)限,根據(jù)業(yè)務(wù)場(chǎng)景的不同,其應(yīng)用范圍廣泛,比如比較容易被盜刷的短信接口、文件接口,都需要添加IP黑白名單加以限制,所以本文給大家介紹了基于SpringBoot實(shí)現(xiàn)IP黑白名單的詳細(xì)步驟,需要的朋友可以參考下
    2024-01-01
  • 一篇文章帶你了解spring事務(wù)失效的多種場(chǎng)景

    一篇文章帶你了解spring事務(wù)失效的多種場(chǎng)景

    在日常編碼過程中常常涉及到事務(wù),在前兩天看到一篇文章提到了Spring事務(wù),那么在此總結(jié)下在Spring環(huán)境下事務(wù)失效的幾種原因.
    2021-09-09
  • 實(shí)例分析Java泛型

    實(shí)例分析Java泛型

    本篇文章通過代碼實(shí)例給大家講述了Java泛型的相關(guān)知識(shí)點(diǎn)以及相關(guān)的代碼分析,對(duì)此有興趣的朋友學(xué)習(xí)下。
    2018-02-02
  • Java垃圾回收機(jī)制算法詳解

    Java垃圾回收機(jī)制算法詳解

    這篇文章主要介紹了Java垃圾回收機(jī)制算法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • SpringBoot配置Https訪問的詳細(xì)步驟

    SpringBoot配置Https訪問的詳細(xì)步驟

    HTTP(Hypertext transfer protocal)是一種詳細(xì)規(guī)定了瀏覽器和萬維網(wǎng)服務(wù)器之間相互通信的規(guī)則,通過因特網(wǎng)傳送萬維網(wǎng)文檔的數(shù)據(jù)傳送協(xié)議,這篇文章主要介紹了SpringBoot配置Https訪問的詳細(xì)步驟,需要的朋友可以參考下
    2024-02-02

最新評(píng)論

滨州市| 深州市| 洮南市| 台安县| 天长市| 松江区| 临朐县| 永安市| 新和县| 南宁市| 阿拉善右旗| 饶阳县| 抚松县| 阿巴嘎旗| 哈密市| 海晏县| 乌拉特前旗| 黄山市| 太仆寺旗| 饶平县| 西贡区| 保定市| 大新县| 铜梁县| 凌源市| 尚义县| 南投市| 民乐县| 白水县| 土默特右旗| 襄樊市| 博白县| 武定县| 岑巩县| 柘荣县| 梁河县| 册亨县| 玛纳斯县| 竹北市| 康定县| 渝北区|