Camunda大杂烩(二:开启与流转)

大杂烩(一)

开启流程

 在获取到当前部署的拓扑版本后,可以拿到对应的key值,当然,画图的时候可以自己定义对应的值,此处开启流程就要用到对应的key:Process_0ow880b,执行以下方法后,可以获取到当前启动流程的id,这个id后续可能会用到:

复制代码
    /**
     * 开始一个流程
     *
     * @param processDefinitionKey 流程key
     * @return 流程内容
     */
    @PostMapping(value = "/start")
    @ApiOperation("开始一个流程")
    public String start(String processDefinitionKey) {
        return camundaService.startProcess(processDefinitionKey).getId();
    }
复制代码

我们登录Camunda的后台可以发现,一个流程已经进行到了“用户提交节点”(这是由于“开启流程”节点并非人工节点,我也并没在后面设置跳转条件与参数,因此startProcess后,流程跑到了第一个需要处理的节点上):

流程视角(Cockpit),此处可以看到最新的流程Id=57bccb26-d197-11ec-b3a1-a4b1c191e7b9:

 

 任务视角(Task),此处可以发现该task Id = 57bcf23a-d197-11ec-b3a1-a4b1c191e7b9:

 

 

 

任务处理

上面我们可以通过后台直接看到启动的流程和任务id,但是实际项目中,可以通过一些查询手段获取当前用户或某些条件下的任务,此处flowId就是上面的流程Id=57bccb26-d197-11ec-b3a1-a4b1c191e7b9:

复制代码
    /**
     * 根据流程号获取任务列表
     *
     * @param flowId 流程号
     * @return 任务列表
     */
    public List<Task> getTaskListByFlowId(String flowId) {
        return taskService.createTaskQuery().processInstanceId(flowId).list();
    }
复制代码

结果如图:

 获取到taskId后,通过以下方法,传入taskId及跳转需要的参数,将流程流转下去:

复制代码
    /**
     * 下一步操作
     *
     * @param taskCompleteRequestDTO 请求
     * @return 是否成功
     */
    @PostMapping(value = "/next")
    @ApiOperation("下一步")
    public Boolean next(@RequestBody TaskCompleteRequestDTO taskCompleteRequestDTO) {
        return camundaService.taskComplete(taskCompleteRequestDTO.getTaskId(), taskCompleteRequestDTO.getMap());
    }
复制代码

通过一开始画的图可以发现,走到“三级领导审批”节点需要branch==3,且三级领导处需要待审批人字段approver,因此map中传入对应参数及值即可:

 

 传参类似,放进map就行了:

 

 

 

 提交后可以看到,一个流程流转到了“三级领导审批节点”,后续的流程也类似:

 

posted @   糖醋小灰  阅读(1369)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示