1. 程式人生 > 實用技巧 >SpringBoot-2-1-6-整合activiti7-1-0-M4

SpringBoot-2-1-6-整合activiti7-1-0-M4

pom.xml

 <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.activiti.dependencies</groupId>
                <artifactId>activiti-dependencies</artifactId>
                <version>7.1.0.M4</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>



    <dependencies>

        <!-- activiti -->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring-boot-starter</artifactId>
        </dependency>
        <!-- Activiti生成流程圖 -->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-image-generator</artifactId>
        </dependency>
        <!--<dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-engine</artifactId>
        </dependency>-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
 </dependencies>

啟動類上加上配置,不使用security

@SpringBootApplication(exclude = {
        org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class,
        org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration.class
})

安裝idea外掛

建立流程圖 bpmn

在resources/processes 下

測試類

package com.meeno.inner.oa;


import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Maps;
import com.meeno.inner.oa.extend.operaterecord.enums.OperateRecordTypeEnum;
import com.meeno.inner.oa.extend.project.workreport.service.WorkReportService;
import lombok.extern.java.Log;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.assertj.core.util.Lists;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@RunWith(SpringRunner.class)
@SpringBootTest
@Log
public class OaApplicationTests {
  

    @Autowired
    private RuntimeService runtimeService;
    @Autowired
    private TaskService taskService;

    @Test
    public void startProcesses(){
        //開啟流程
        ProcessInstance leave = this.runtimeService.startProcessInstanceByKey("leave");
        // 查詢當前任務
        Task currentTask = taskService.createTaskQuery().processInstanceId(leave.getId()).singleResult();
        //宣告任務
        taskService.claim(currentTask.getId(), "wzq");
//        taskService.setAssignee();
        // 完成任務
        //攜帶的引數
        Map<String,Object> params = Maps.newHashMap();
        params.put("name","吳志奇好帥!");
        taskService.complete(currentTask.getId(), params);
        System.out.println("1");
    }

    @Test
    public void findProcessesList(){
        //        / 多此一舉 taskList中包含了以下內容(使用者的任務中包含了所在使用者組的任務)
//        Group group = identityService.createGroupQuery().groupMember(userName).singleResult();
//        List<Task> list = taskService.createTaskQuery().taskCandidateGroup(group.getId()).list();
//        taskList.addAll(list);
        /*List<Task> taskList = taskService.createTaskQuery().taskCandidateUser(userName)
                .orderByTaskCreateTime().desc().list();*/
        List<Task> taskList = taskService.createTaskQuery().taskAssignee("wzq")
                .orderByTaskCreateTime().desc().list();
        for (Task task : taskList) {
            String assignee =  task.getAssignee();
            String instanceId = task.getProcessInstanceId();
            ProcessInstance instance = runtimeService.createProcessInstanceQuery().processInstanceId(instanceId).singleResult();
            String name = this.runtimeService.getVariable(instance.getId(), "name", String.class);
            System.out.println(name);
        }
        System.out.println("findProcessesList");

    }


/*    public void passAudit(String taskId,){

        taskService.claim(taskId, userName);
        taskService.complete(taskId, vars);
    }*/



}

問題1:VERSION_ 找不到

去資料庫中act_re_deployment建立兩個欄位

VERSION_ int
PROJECT_RELEASE_VERSION_ varchar

問題2:bpmn中午亂碼問題

新增配置 重啟idea

-Dfile.encoding=UTF-8

問題3:idea外掛建立的bpmn啟動報錯

把這個

xmlns=""

刪除儲存 在啟動專案就可以了