栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot整合activiti6学习笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot整合activiti6学习笔记

引入依赖pom文件配置就先跳过了
启动时可能会遇到的问题:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [com.ruoyi.RuoYiApplication]; nested exception is java.io.FileNotFoundException: class path resource [org/springframework/security/config/annotation/authentication/configurers/GlobalAuthenticationConfigurerAdapter.class] cannot be opened because it does not exist
	at org.springframework.context.annotation.ConfigurationClassParser.processimports(ConfigurationClassParser.java:610)
	at org.springframework.context.annotation.ConfigurationClassParser.access$800(ConfigurationClassParser.java:111)
	at org.springframework.context.annotation.ConfigurationClassParser$DeferredimportSelectorGroupingHandler.lambda$processGroupimports$1(ConfigurationClassParser.java:812)
	at java.util.ArrayList.forEach(ArrayList.java:1259)
具体错误:
 class path resource [org/springframework/security/config/annotation/authentication/configurers/GlobalAuthenticationConfigurerAdapter.class] cannot be opened because it does not exist
解决方案:springboot项目引入工作流activiti启动报错
activiti内置服务:
processEngine.getRepositoryService();


processEngine.getRuntimeService();


processEngine.getTaskService();


processEngine.getIdentityService();


processEngine.getManagementService();


processEngine.getHistoryService();
参考自: activiti工作流6大service服务的简单介绍
一个连接数据库测试activiti里面的方法的demo:
public class ProcessTest {
    private ProcessEngine processEngine;
    private RuntimeService runtimeService;
    private IdentityService identityService;
    private TaskService taskService;
    private HistoryService historyService;

    @Before
    public void testProcessEngineTest(){
        ProcessEngineConfiguration processEngineConfiguration =
                ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
        processEngineConfiguration.setJdbcDriver("com.mysql.cj.jdbc.Driver");
        processEngineConfiguration.setJdbcUrl("jdbc:mysql://localhost:3308/ry-vue?useUnicode=true&characterEncoding=utf8&nullCatalogMeansCurrent=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8");
        processEngineConfiguration.setJdbcUsername("root");
        processEngineConfiguration.setJdbcPassword("root");
        processEngineConfiguration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);

        processEngine = processEngineConfiguration.buildProcessEngine();
        assertNotNull(processEngine);

        runtimeService = processEngine.getRuntimeService();
        identityService = processEngine.getIdentityService();
        taskService = processEngine.getTaskService();
        historyService = processEngine.getHistoryService();
    }
//    发起流程申请
    @Test
    public void processTest(){
        String applyUserId = "akko";
//        用来设置启动流程人员的ID,引擎会自动把用户ID保存到activiti:initiator中
        identityService.setAuthenticatedUserId(applyUserId);
        runtimeService.startProcessInstanceByKey("leave");
    }
//    获取我的待办
    @Test
    public void queryTodoTaskTest(){
//        根据当前人的ID查询
        List taskList = taskService.createTaskQuery()
                .processDefinitionKey("leave")
                .taskAssignee("akko")
                .list();
//        根据当前人未签收的任务
        List taskList1 = taskService.createTaskQuery()
                .processDefinitionKey("leave")
                .taskCandidateUser("akko")
                .list();
        List myTaskList = new ArrayList<>();
        myTaskList.addAll(taskList);
        myTaskList.addAll(taskList1);
        assertEquals(1,myTaskList.size());

    }
    //    获取我的待办
    @Test
    public void completeTaskTest(){
//        根据当前人的ID查询
        List taskList = taskService.createTaskQuery()
                .processDefinitionKey("leave")
                .taskAssignee("akko")
                .list();
//        根据当前人未签收的任务
        List taskList1 = taskService.createTaskQuery()
                .processDefinitionKey("leave")
                .taskCandidateUser("akko")
                .list();
        List myTaskList = new ArrayList<>();
        myTaskList.addAll(taskList);
        myTaskList.addAll(taskList1);
        assertEquals(1,myTaskList.size());

        Task task = myTaskList.get(0);
//        获取流程实例对象
        ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
                .processDefinitionKey("leave")
                .singleResult();
         identityService.setAuthenticatedUserId("akko");
         taskService.addComment(task.getId(),processInstance.getId(),"[同意]准许");
        Map variables = new HashMap<>();
        variables.put("deptLeaderApproved",true);
//        完成任务
        taskService.complete(task.getId(),variables);
    }
//    查询已办
    @Test
    public void taskDoneTest(){
        List historicTaskInstanceList =
                historyService.createHistoricTaskInstanceQuery()
                .processDefinitionKey("leave")
                .finished()
                .list();
        System.out.println("已办任务:"+historicTaskInstanceList.size());
        for (HistoricTaskInstance historicTaskInstance:historicTaskInstanceList){
            System.out.println("已办任务:TaskName ->" +historicTaskInstance.getName()
            + ",Assignee ->" + historicTaskInstance.getAssignee());
        }

    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/299093.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号