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就行了:
提交后可以看到,一个流程流转到了“三级领导审批节点”,后续的流程也类似:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具