亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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("開啟請假流程...");
        Map<String, Object> map = new HashMap<>();
        //在wh.bpmn中,填寫請假單的任務(wù)辦理人為動態(tài)傳入的userId,此處模擬一個id
        map.put("user1", 1);
        map.put("user2", 2);
        Authentication.setAuthenticatedUserId("1");
        ProcessInstance instance = runtimeService.startProcessInstanceByKey(instanceKey, map);
        log.info("啟動流程實例成功:{}", instance);
        log.info("流程實例ID:{}", instance.getId());
        log.info("流程定義ID:{}", instance.getProcessDefinitionId());
    public void taskQuery() {
        //查詢自己發(fā)起的全部的審批
        //List<HistoricProcessInstance> historicProcessInstanceList = historyService.createHistoricProcessInstanceQuery().startedBy(userId).list();
        //根據(jù)流程定義的key,負責人assignee來實現(xiàn)  當前用戶的 待辦任務(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)建時間:" + task.getCreateTime());
                System.out.println("任務(wù)的辦理人:" + task.getAssignee());
                System.out.println("流程實例ID:" + task.getProcessInstanceId());
                System.out.println("執(zhí)行對象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í)行流程實例id
        Task task = taskService.createTaskQuery().processInstanceId(instanceId).singleResult();
        //是否同意 0 同意, 1 駁回
        map.put("status", "0");
        taskService.addComment(task.getId(), instanceId, "測試評論34");
        taskService.complete(task.getId(), map);
        log.info("流程推動到下環(huán)節(jié)");
     * 實例詳情
    public void queryHistoryTask() {
        List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery() // 創(chuàng)建歷史活動實例查詢
                .processInstanceId(instanceId) // 執(zhí)行流程實例id
                .orderByTaskCreateTime()
                .asc()
        for (HistoricTaskInstance hai : list) {
            System.out.println("===================");
            System.out.println("活動ID:" + hai.getId());
            System.out.println("流程實例ID:" + hai.getProcessInstanceId());
            System.out.println("活動名稱:" + hai.getName());
            System.out.println("辦理人:" + hai.getAssignee());
            System.out.println("開始時間:" + hai.getStartTime());
            System.out.println("結(jié)束時間:" + hai.getEndTime());
            List<Comment> comments = taskService.getTaskComments(hai.getId());
            System.out.println("評論內(nèi)容:" + JSON.toJSONString(comments));
}

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

相關(guān)文章

  • Java Spring注解之@Async的基本用法和示例

    Java Spring注解之@Async的基本用法和示例

    Spring為任務(wù)調(diào)度與異步方法執(zhí)行提供了注解支持,通過在方法上設(shè)置@Async注解,可使得方法被異步調(diào)用,下面這篇文章主要給大家介紹了關(guān)于Java Spring注解之@Async的基本用法和示例,需要的朋友可以參考下
    2022-03-03
  • Java設(shè)計模式之創(chuàng)建者模式詳解

    Java設(shè)計模式之創(chuàng)建者模式詳解

    這篇文章主要介紹了Java設(shè)計模式之創(chuàng)建者模式詳解,創(chuàng)建者模式,顧名思義,就是提供友好的創(chuàng)建對象的方式?,對象都是?new?出來的,但是在一些情況下,這種方式不是很友好,首先,它不夠直觀,需要的朋友可以參考下
    2023-08-08
  • java?Comparable和Comparator的區(qū)別及作用面試精講

    java?Comparable和Comparator的區(qū)別及作用面試精講

    這篇文章主要為大家介紹了java?Comparable和Comparator的區(qū)別及作用面試精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • Spring Boot集成MinIO對象存儲服務(wù)器操作步驟

    Spring Boot集成MinIO對象存儲服務(wù)器操作步驟

    通過Spring Boot集成MinIO,你可以在應(yīng)用中方便地進行文件的存儲和管理,本文給大家分享Spring Boot集成MinIO對象存儲服務(wù)器詳細操作步驟,感興趣的朋友一起看看吧
    2024-01-01
  • 2個java希爾排序示例

    2個java希爾排序示例

    java希爾排序示例,希爾排序是插入排序的一種類型,也可以用一個形象的叫法縮小增量法,需要的朋友可以參考下
    2014-05-05
  • SpringMVC 攔截器不攔截靜態(tài)資源的三種處理方式方法

    SpringMVC 攔截器不攔截靜態(tài)資源的三種處理方式方法

    本篇文章主要介紹了SpringMVC 攔截器不攔截靜態(tài)資源的三種處理方式方法,詳細的介紹了三種方法,有興趣的可以了解一下。
    2017-01-01
  • 淺談Java變量賦值運算符及相關(guān)實例

    淺談Java變量賦值運算符及相關(guān)實例

    這篇文章主要介紹了Java賦值運算符的一些知識,需要的朋友可以參考下。
    2017-09-09
  • Java動態(tài)腳本Groovy

    Java動態(tài)腳本Groovy

    本文介紹了Java動態(tài)腳本Groovy,Groovy是用于Java虛擬機的一種敏捷的動態(tài)語言,它是一種成熟的面向?qū)ο缶幊陶Z言,既可以用于面向?qū)ο缶幊?,又可以用作純粹的腳本語言。使用該種語言不必編寫過多的代碼,同時又具有閉包和動態(tài)語言中的其他特性,需要的朋友可以參考一下
    2021-12-12
  • Java中Parser的用法

    Java中Parser的用法

    這篇文章主要介紹了Java?Parser使用指南,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • Flutter ListView 上拉加載更多下拉刷新功能實現(xiàn)方法

    Flutter ListView 上拉加載更多下拉刷新功能實現(xiàn)方法

    這篇文章主要介紹了Flutter ListView 上拉加載更多下拉刷新功能實現(xiàn)方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07

最新評論