工作流实例

本文档展示了如何使用爬虫组件来分析请假审核流程。首先获取任务服务对象,然后根据流程实例ID获取当前活动任务并完成请假申请。接着,获取下一步节点的任务,并输出相关信息。虽然未提供参考资料,但代码中涉及到了流程引擎、任务查询、执行服务等关键概念。

Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.

目录

在这里插入图片描述

概述

请假审核

需求:

设计思路

在这里插入图片描述

实现思路分析

1.code

  @Test
    public void queryTask(){
        //获取任务服务对象
        TaskService taskService = processEngine.getTaskService();
        RepositoryService repositoryService = processEngine.getRepositoryService();



        //根据流程实例 ID 获取当前活动任务
        Task  task = taskService.createTaskQuery().processInstanceId(pi.getId()).active().singleResult();
        String taskId = task.getId();
        System.out.println("任务ID"+taskId);


        //启动流程
        //完成请假申请任务
        Map<String, Object> variables = new HashMap<String, Object>();
        variables.put("appUser", "1");
        taskService.complete(taskId, variables);





        //根据接受人获取该用户的任务
      /*  List<Task> tasks = taskService.createTaskQuery()
                .taskAssignee("001508")
                .list();
        for (Task task : tasks) {
            System.out.println("ID:"+task.getId()+",姓名:"+task.getName()+",接收人:"+task.getAssignee()+",开始时间:"+task.getCreateTime());
        }
*/
        RuntimeService runtimeService=processEngine.getRuntimeService();
//获取下一步节点的任务
        ProcessDefinitionEntity def = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService).getDeployedProcessDefinition(task.getProcessDefinitionId());
        List<ActivityImpl> activitiList = def.getActivities(); // rs是指RepositoryService的实例
        String excId = task.getExecutionId();


        ExecutionEntity execution = (ExecutionEntity) runtimeService.createExecutionQuery().executionId(excId).singleResult();
        String activitiId = execution.getActivityId();

        Task  task2 = taskService.createTaskQuery().processInstanceId(pi.getId()).active().singleResult();
        Map<String, Object> variables2 = new HashMap<String, Object>();
        variables2.put("appUser", "1");
        taskService.complete(task2.getId(), variables2);




//        for(ActivityImpl activityImpl:activitiList){
//            String id = activityImpl.getId();
//            if(activitiId.equals(id)){
//                System.out.println("当前任务:"+activityImpl.getId() ); //输出某个节点的某种属性
//
//
//                List<PvmTransition> outTransitions = activityImpl.getOutgoingTransitions();//获取从某个节点出来的所有线路
//                for(PvmTransition tr:outTransitions){
//                    PvmActivity ac = tr.getDestination(); //获取线路的终点节点
//                    System.out.println("下一步任务任务:"+ac.getProperty("name"));
//
//                }
//                break;
//            }
//        }



    }



参考资料和推荐阅读

  1. 暂无

欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!~

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迅捷的软件产品制作专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值