jeecgflow实现审批驳回,并且用户重新发起流程功能

背景

JeecgFlow实现OA审批的场景中, 驳回是一个常用的业务场景, 比如用户提交的资料不符合审批规范。

此时就需要用户重新进行整理,并重新提交数据,发起流程。

需求说明

假设,以三国的场景为例, 作为打工人的关羽需要提交一份出战申请,先军师进行审核,后主公进行审核。

a1.png
以此场景,我们模拟一下军师驳回,关羽重新提交申请的场景。

模拟演示

  • 关羽提交数据发起流程

a2.png

  • 诸葛亮登陆系统,找到待办任务,将任务进行驳回

a3.png

  • 关羽登陆系统,将会看到自己的发起的流程回到请假申请节点,并且出现重新提交的按钮操作。

a5.png

  • 关羽点击重新提交按钮, 进入页面修改数据进行重新提交。

a6.png

  • 诸葛亮登陆系统,将会看到重新提交的数据, 并且进行同意的操作

a7.png

  • 关羽登陆系统,此时就可以看到流程流转到主公节点进行审批啦

a8.png

核心代码

//主要判断当前流程实例与当前用户的任务是否存在,然后完成任务即可
Task task = taskService.createTaskQuery().processInstanceId(reStartReq.getProcessInstanceId()).taskAssignee(reStartReq.getStartUser()).singleResult();
if (task != null) {
    Map<String, Object> params = new HashMap<>(12);
    params.put("numValue", reStartReq.getNumValue());
    params.put("textValue", reStartReq.getTextValue());
    taskService.complete(task.getId(), params);
}

更多关于工作流的信息,请访问www.jeecgflow.com

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个带审批驳回的 BPMN 流程图的 XML 文件示例: ```xml <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:activiti="http://activiti.org/bpmn" targetNamespace="http://www.activiti.org/test"> <process id="process_with_approval" name="Process with Approval" isExecutable="true"> <startEvent id="startEvent1" name="Start"></startEvent> <userTask id="userTask1" name="User Task"></userTask> <exclusiveGateway id="exclusiveGateway1" name="Exclusive Gateway"></exclusiveGateway> <userTask id="userTask2" name="Approval Task"></userTask> <endEvent id="endEvent1" name="End"></endEvent> <sequenceFlow id="flow1" sourceRef="startEvent1" targetRef="userTask1"></sequenceFlow> <sequenceFlow id="flow2" sourceRef="userTask1" targetRef="exclusiveGateway1"></sequenceFlow> <sequenceFlow id="flow3" sourceRef="exclusiveGateway1" targetRef="userTask2"> <conditionExpression xsi:type="tFormalExpression"><![CDATA[${approved}]]></conditionExpression> </sequenceFlow> <sequenceFlow id="flow4" sourceRef="exclusiveGateway1" targetRef="endEvent1"> <conditionExpression xsi:type="tFormalExpression"><![CDATA[${!approved}]]></conditionExpression> </sequenceFlow> </process> </definitions> ``` 在这个 XML 文件中,我们定义了一个名为 `Process with Approval` 的流程,其中包含了开始事件 `startEvent1`、用户任务 `userTask1`、排他网关 `exclusiveGateway1`、审批任务 `userTask2` 和结束事件 `endEvent1`。流程的基本流程和前面提到的一样。 在流程的定义中,我们使用了条件表达式来判断流程的走向。如果条件表达式 `${approved}` 的值为 true(即审批人同意),则流程从排他网关 `exclusiveGateway1` 进入审批任务 `userTask2`;如果条件表达式 `${!approved}` 的值为 true(即审批驳回),则流程从排他网关 `exclusiveGateway1` 进入结束事件 `endEvent1`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值