参考文章:
flowable审批,在下个节点没审批前,如何撤回审批。
Flowable 快速入门教程:任务驳回与回退
flowable实战(五)flowable驳回/退回上一步/退回到
一、背景
公司项目是统一在公司自己的框架下实现的,然后现在在做的项目使用了flowable工作流。
昨儿忽然提了一个需求:在中心签领之前,企业可以撤回任务。比如企业上报了自己的信息,中心端需要签领后审核,但忽然企业发现自己上报的信息有些问题,这时可以点击【撤回】按钮,将该条上报信息撤回。(串行普通节点的回退)。
其中部分代码详细实现不可以粘贴出来,就主要记录一下大概思路~~
自己瞎实现,还请各位大佬可以指正错误~~~呜呜呜呜呜呜呜。
二、思路
1、获取当前任务节点
2、判断是否被签领
3、若被签领,则提示不能撤回。
4、若未被签领,则执行退回任务。
//核心
runtimeService.createChangeActivityStateBuilder()
.processInstanceId(proInstanceId)
.moveActivityIdsToSingleActivityId(curTaskKeys, targetTaskKey)
.changeState();
5、自动签领任务。
6、返回要跳转的路径
三、代码
1、flowableEngineAPI.quash()实现!!
/**
* 撤回任务
*/
public DataObject quash(String piid, String taskid, String taskkey) throws AppException{
//存最终结果
DataObject result = DataObject.getInstance();
//判空
this.isEmpty(piid, "流程实例id不可为空");
//获取当前任务信息
Task task = taskService.createTaskQuery().taskId(taskid).singleResult();
//判断该任务是否被签领
String assignee = task.getAssignee();
if (null != assignee){
result.put("statu","0");
result.put("msg","任务已被签领,无法撤回!"

本文介绍了如何在Flowable工作流中,当任务还未被中心签领时,实现撤销审批的功能。通过获取任务实例、检查签领状态并进行活动状态更改,同时涉及自动签领和后续页面跳转。然而,提到的问题在于撤回操作可能导致的脏数据清理问题。
最低0.47元/天 解锁文章
4917

被折叠的 条评论
为什么被折叠?



