流程图的会签、或签、转审、加签、一票否决实现

本文介绍了工作流中的加签和一票否决权功能。加签过程中,通过taskService.delegateTask方法将任务转移,并通过resolveTask方法让被加签人完成任务。一票否决权的实现依赖于流程变量和工作流内置变量,如nrOfInstances、nrOfCompletedInstances和nrOfActiveInstances,结合自定义流程变量pass,通过表达式判断是否达到一票否决条件。

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

参考了流程图的会签、或签、转审、加签这篇博客,针对这篇博客做一些补充,记录一下。

1.加签

加签的代码如下:

/**
     * @Description: 加签
     * @param taskId 任务id
     * @param userId 加签到谁
     * @return: com.ruoyi.common.core.domain.AjaxResult
     * @Author: 小邪123
     * @Date: 2022/5/13 11:05
     */
    @GetMapping("/addSign/{taskId}/{userId}")
    @ApiOperation("加签")
    public AjaxResult addSign(@PathVariable String taskId, @PathVariable String userId){
        taskService.delegateTask(taskId,userId);
        return AjaxResult.success("加签成功,加签到"+userId);
    }

例如加签到了“张三”名下,当张三完成任务时,调用的必须是resolveTask方法,而不是complete方法。
代码如下:

taskService.resolveTask(taskId);

至于怎么去区分,可以从任务表中关注OWENR、ASSIGNEE、DELEGATION字段,当我们加签后,OWENR字段存储的就是我们的加签发起人,ASSIGNEE就是被加签人,DELEGATION记录的就是被加签人的操作状态,若是被加签人还未做处理,那么就会显示Pending状态,这个时候的任务只能通过resolveTask方法去完成任务,完成任务后,任务才会回到加签的发起人那儿。

2.一票否决权

工作流中自带了三个变量,供给我们使用:
nrOfInstances:总实例数,Collection中的数量。
nrOfCompletedInstances:已经完成的实例数。
nrOfActiveInstances:还没有完成的实例数。

会签一票否决表达式

${(pass == 'no')||(nrOfCompletedInstances/nrOfInstances==1)}

这里的pass指的是我们自定义的流程变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值