springboot与flowable(8):候选人

06-15 1067阅读

一、流程绘制和部署

        创建流程图

springboot与flowable(8):候选人

        绘制如下流程图

springboot与flowable(8):候选人

        给人事审批添加候选人

springboot与flowable(8):候选人

        给经理审批添加两个候选人

springboot与flowable(8):候选人

        保存导出流程图

springboot与flowable(8):候选人

        部署流程定义

 @Test
    void contextLoads() {
        DeploymentBuilder deployment = repositoryService.createDeployment();
        deployment.addClasspathResource("process01/HolidayDemo1.bpmn20.xml");
        deployment.name("候选人案例");
        Deployment deploy = deployment.deploy();
        System.out.println("deploy.getId() = " + deploy.getId());
    }

springboot与flowable(8):候选人

二、拾取操作

        发起流程

    /**
     * 发起流程
     */
    @Test
    public void startProcess() {
        String id = "HolidayDemo1:1:93caf684-2af9-11ef-910c-644ed7087863";
        // 给人事审批候选人进行赋值
        Map variables = new HashMap();
        variables.put("candidate1", "zhangsan");
        variables.put("candidate2", "lisi");
        variables.put("candidate3", "wangwu");
        // 根据流程定义ID启动流程
        ProcessInstance processInstance = runtimeService.startProcessInstanceById(id, variables);
    }

        查看act_ru_task表发现assignee字段中审批人是空的。

springboot与flowable(8):候选人

        根据候选人查询待办信息,并将候选人变更为审批人,进行审批。

    /**
     * 根据用户查询待办信息
     */
    @Test
    public void findFlow() {
        List list = taskService.createTaskQuery().taskCandidateUser("zhangsan").list();
        // 根据id进行审批
        for (Task task : list) {
            // 把zhangsan由候选人变更为审批人
            taskService.claim(task.getId(), "zhangsan");
            completeTask(task.getId());
        }
    }
    /**
     * 根据Id审批任务
     */
    public void completeTask(String taskId) {
        // 定义经理审批候选人
        Map variables = new HashMap();
        variables.put("candidate4", "youwangzi1");
        variables.put("candidate5", "youwangzi2");
        taskService.complete(taskId, variables);
    }

springboot与flowable(8):候选人

        查看运行时用户关系信息表。

springboot与flowable(8):候选人

三、归还与指派

        归还操作:审批人 -> 候选人

    /**
     * 根据用户查询待办信息
     */
    @Test
    public void findFlow() {
        List list = taskService.createTaskQuery().taskCandidateUser("zhangsan").list();
        // 根据id进行审批
        for (Task task : list) {
            // 把zhangsan由候选人变更为审批人
            taskService.claim(task.getId(), "zhangsan");
            // 可以通过unclaim()方法将审批人归还回候选人。
            taskService.unclaim(task.getId());
            // completeTask(task.getId());
        }
    }

        指派新的审批人

    /**
     * 根据用户查询待办信息
     */
    @Test
    public void findFlow() {
        List list = taskService.createTaskQuery().taskCandidateUser("zhangsan").list();
        // 根据id进行审批
        for (Task task : list) {
            // 将当前任务指派给youwangzi用户进行审批
            task.setAssignee("youwangzi");
        }
    }
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]