springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)

1.源码地址:https://github.com/heidaodageshiwo/springbootactivity

 

方式一 直接流程图配置中写死,

直接在流程图中 Main config Assignee 中写死具体分配的任务执行人;

 

 

 

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第1张图片

 

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第2张图片

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第3张图片

 

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第4张图片

 

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第5张图片

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第6张图片

 

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第7张图片

 

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第8张图片

 

查看张三任务:

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第9张图片

 

完成任务:

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第10张图片

没有数据了:

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第11张图片

 @Autowired
    RepositoryService repositoryService;
    @Autowired
    RuntimeService runtimeService;
    @Autowired
    TaskService taskService;


//    Activiti之个人任务分配

    @RequestMapping("/Assignee_deploy")
    public String deploy(){
        Deployment deployment=repositoryService.createDeployment()
                .addClasspathResource("StudentLeaveProcess/StudentLeaveProcess5/gerenrenwu1.bpmn") // 加载资源文件
                .name("学生请假流程6") // 流程名称
                .deploy();
        System.out.println("流程部署ID:"+deployment.getId());
        System.out.println("流程部署Name:"+deployment.getName());
        return "Assignee_deploy";
    }


    @RequestMapping("/Assignee_start")
    public String start() {
        Map variables=new HashMap();
        variables.put("userId", "张三");
        ProcessInstance processInstance=runtimeService.
                startProcessInstanceByKey("gerenrenwu1",variables);
        System.out.println("流程实例ID:"+processInstance.getId());
        System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId());
        return "Assignee_start";
    }


    /**
     * 查看任务
     */
    @RequestMapping("/Assignee_findTask")
    public String findTask(){
        List taskList=taskService // 任务相关Service
                .createTaskQuery() // 创建任务查询
                .taskAssignee("张三") // 指定某个人
                .list();
        for(Task task:taskList){
            System.out.println("任务ID:"+task.getId());
            System.out.println("任务名称:"+task.getName());
            System.out.println("任务创建时间:"+task.getCreateTime());
            System.out.println("任务委派人:"+task.getAssignee());
            System.out.println("流程实例ID:"+task.getProcessInstanceId());
        }
        return "Assignee_findTask";

    }


    /**
     * 完成任务
     */
    @RequestMapping("/Assignee_completeTask")
    public String completeTask(){
        taskService // 任务相关Service
                .complete("92511");
        return "Assignee_completeTask";

    }

 

 

方式二 使用流程变量

 

我们设置流程变量  Assignee  ${userid}

 

我们在启动流程的时候设置流程变量即可;

 

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第12张图片

 

 

部署:

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第13张图片

启动设置变量:

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第14张图片

查看任务:

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第15张图片

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第16张图片

 

完成任务:

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第17张图片

 

 

@Autowired
    RepositoryService repositoryService;
    @Autowired
    RuntimeService runtimeService;
    @Autowired
    TaskService taskService;


//    Activiti之个人任务分配

    @RequestMapping("/Assignee_deploy12")
    public String deploy(){
        Deployment deployment=repositoryService.createDeployment()
                .addClasspathResource("StudentLeaveProcess/StudentLeaveProcess5/gererenwu2.bpmn") // 加载资源文件
                .name("学生请假流程6") // 流程名称
                .deploy();
        System.out.println("流程部署ID:"+deployment.getId());
        System.out.println("流程部署Name:"+deployment.getName());
        return "Assignee_deploy12";
    }


    @RequestMapping("/Assignee_start12")
    public String start() {
        Map variables=new HashMap();
        variables.put("userid", "张三");
        ProcessInstance processInstance=runtimeService.
                startProcessInstanceByKey("gererenwu2",variables);
        System.out.println("流程实例ID:"+processInstance.getId());
        System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId());
        return "Assignee_start12";
    }


    /**
     * 查看任务
     */
    @RequestMapping("/Assignee_findTask12")
    public String findTask(){
        List taskList=taskService // 任务相关Service
                .createTaskQuery() // 创建任务查询
                .taskAssignee("张三") // 指定某个人
                .list();
        for(Task task:taskList){
            System.out.println("任务ID:"+task.getId());
            System.out.println("任务名称:"+task.getName());
            System.out.println("任务创建时间:"+task.getCreateTime());
            System.out.println("任务委派人:"+task.getAssignee());
            System.out.println("流程实例ID:"+task.getProcessInstanceId());
        }
        return "Assignee_findTask12";

    }


    /**
     * 完成任务
     */
    @RequestMapping("/Assignee_completeTask12")
    public String completeTask(){
        taskService // 任务相关Service
                .complete("100007");
        return "Assignee_completeTask12";

    }

 

方式三 TaskListener监听实现

 

 

我们定义一个监听类 MyTaskListener 实现 TaskListener接口:
 

package com.zhangqiang.activity.StudentLeaveProcess.StudentLeaveProcess5;

import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;

public class MyTaskListener  implements TaskListener {
    /**
     *
     */
    private static final long serialVersionUID = 1L;

    @Override
    public void notify(DelegateTask delegateTask) {
        // TODO Auto-generated method stub
        delegateTask.setAssignee("李四"); // 指定办理人
    }

}

 

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第18张图片

这边指定下 定义的类

 

 

 

 

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第19张图片

 

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第20张图片

 

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第21张图片

 

springboot整合activity6_Activiti之个人任务分配(无废话版)--------------------------------------------(十四)_第22张图片

然后走完流程即可。

 

 

 

 

 

 

 

你可能感兴趣的:(activity,springboot)