activiti根据人员获取到任务

文章讲述了如何通过HTML表单提交请求,由后台的Activiti引擎根据指定的人员(如zhansan)获取相应任务的过程。首先,页面发起POST请求到特定URL,携带业务主键和当前任务人信息。然后,后端接收到请求后,依据这些信息查询流程定义、流程实例和任务,如果找到未结束的流程实例,就获取该任务的详细信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

备注:本文只摘抄片段整项目源代码待全部整理完毕再提供代码下载。

(1),页面根据人员请求获取任务

			<form action="<%=childPath %>/process/getTaskByAssigneeUser" method="post">
                <input type="hidden" name="form_name" value="YYG_QING_JIA_PROCESS_KEY" />

                业务主键1:<input name="bussiness_key" type="text" value="1" /> <br />
                当前任务人:<input type="text" name="user" value="zhansan" />

                <input type="submit" value="是zhansan的任务" />
			</form>

(2),activiti引擎根据人员获取任务

    /**
     * 获取拟稿人(配置在流程设计器中代理人)
     * @param params
     * @return 2023-01-05
     */
    @RequestMapping(value = "/getTaskByAssigneeUser", method = RequestMethod.POST)
    @ResponseBody
    public Map<String, Object> getTaskByAssigneeUser(@RequestParam Map<String, Object> params, HttpServletRequest request2 ) {

        String processKey = params.get("form_name").toString();
        String bussinessKey = params.get("bussiness_key").toString();
        String user = params.get("user").toString();
        // 根据流程键字符串获取到流程定义对象
        ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionKey(processKey).latestVersion().singleResult();
        ProcessInstance processInstance = null;
        // 根据流程定义id和业务主键串获取到流程实例集
        List<ProcessInstance> processInstanceList = runtimeService.createProcessInstanceQuery().processDefinitionId(processDefinition.getId()).processInstanceBusinessKey(bussinessKey).active().list();
        for(ProcessInstance processInstanceItm : processInstanceList){
            if(!processInstanceItm.isEnded()) {
                processInstance = processInstanceItm;
                break;
            }
        }
        if(processInstance != null) {
            Task task = taskService.createTaskQuery().processInstanceId(processInstance.getProcessInstanceId()).taskAssignee(user).singleResult();
            System.out.println("获取到任务:"+ task.getName());
        } else {
            System.out.println("没有获取到任务");
        }
        return params;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值