activiti 候选人:(候选组)流程设计:

候选人:可以设置多个执行,但是真正执行的只有1个,只要有人签收之后,其他人的代签收任务将会没有这些任务:即只要有人签收任务,其他人的任务就直接被删除(隐式的删除)

流程设计



人事部审批节点候选人:zzz,xxx

部署流程后:流程定义ID:候选人:1:85004

查询节点执行人(包括候选人和候选组):act_hi_identitylink

启动流程: 

    public voidstartprocessByKey(String key){

        Stringapplyuser ="zyq";

        identityService.setAuthenticatedUserId(applyuser);

扫描二维码关注公众号,回复: 15543086 查看本文章

        Map<String,Object>variables = new HashMap();//设置流程变量

        variables.put("applyUserId","qwer");

        variables.put("applyTitle","test_请假申请流程");

        variables.put("applyTime","7");

        variables.put("applyCtreateTime",new Date());

        variables.put("applyReason","休假");

        //设置候选人:上级领导审批

        Listlist =new ArrayList();

        list.add("zzz");

        list.add("xxx");

        variables.put("managerIds",list);

        ProcessInstanceprocessInstance = runtimeService.startProcessInstanceByKey(key,variables);

   

    Tasktask = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();

    System.out.println(task.getAssignee());

       

    }

这时流程表中:

正在运行的变量:


正在运行的任务:(历史表中也一样)


查询候选人任务:taskCandidateUser/taskCandidateOrAssigned

   List<Task> list = taskService.createTaskQuery().taskCandidateUser(assignee).

                orderByTaskCreateTime().desc().list();//查询所拥有的候选任务

List<Task> list =taskService.createTaskQuery().taskCandidateOrAssigned(assignee)

                .orderByTaskCreateTime().desc().list();//查询所拥有的个人&候选任务

办理候选任务

首先要领取任务:

taskService.claim(taskId, assignee);

taskService.complete(taskId,variables);

例如:xxx 签收办理了

    public void mytaskClaimAComplete(String taskId,String assignee){

        taskService.claim(taskId, assignee);

        Map<String,Object>variables = new HashMap();//设置流程变量

        variables.put("managerCheckResult", "同意");

        variables.put("managerCheckreason","可用年休假");

        variables.put("managerTime",new Date());

        taskService.complete(taskId,variables);

        }

历史任务表:

上级领导审批人:assingee: xxx

在人事部审批节点也是要先签收后办理;

已办理任务查询没有什么特殊的,按常规查询即可


猜你喜欢

转载自blog.csdn.net/qi95719/article/details/66474820#comments_19868047
今日推荐