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

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

 

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

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

 

 

 

 

 

 

 

 

 

查看张三任务:

 

完成任务:

没有数据了:

 @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<String,Object> variables=new HashMap<String,Object>();
        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<Task> 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}

 

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

 

 

 

部署:

启动设置变量:

查看任务:

 

完成任务:

 

 

@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<String,Object> variables=new HashMap<String,Object>();
        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<Task> 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("李四"); // 指定办理人
    }

}

 

这边指定下 定义的类

 

 

 

 

 

 

 

然后走完流程即可。

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值