jeecgflow请假案例之撤回任务

概念说明

任务撤回是指发起人或办理人在办理任务后,允许他在的下一个用户任务的办理人在办理任务前将任务撤回。如申请人发起流程发现提交材料有误,但此时 流程已经流转到下一个用户任务,这种情况如果通过沟通将浪费很多时间。这时就可以使用任务撤回来操作。

在线体验,立即前往 JeecgFlow

设计流程图

点击节点右侧,选择小扳手,将节点设置为用户任务(userTask)节点,按照下面红色方框设置节点属。

设置申请节点的指定人员,以及申请表单的字段信息(可以根据自己业务进行调整)

设置初审人员信息,以及审批字段信息

设置终审人员信息,以及审批字段信息

XML内容

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:activiti="http://activiti.org/bpmn" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn">
  <bpmn:process id="Process_leave" name="请假案例(修订版)" isExecutable="true">
    <bpmn:startEvent id="StartEvent_1" activiti:initiator="admin">
      <bpmn:outgoing>Flow_1isadqh</bpmn:outgoing>
    </bpmn:startEvent>
    <bpmn:sequenceFlow id="Flow_1isadqh" sourceRef="StartEvent_1" targetRef="Activity_0oioul4" />
    <bpmn:userTask id="Activity_0oioul4" name="请假申请" activiti:assignee="${general}">
      <bpmn:extensionElements>
        <activiti:formData>
          <activiti:formField id="days" label="天数" type="long" defaultValue="1" />
          <activiti:formField id="resson" label="理由" type="string" defaultValue="a" />
          <activiti:formField id="type" label="类型" type="string" />
        </activiti:formData>
        <activiti:formData>
          <activiti:formField id="textValue" label="文本" type="string" />
          <activiti:formField id="numValue" label="数字" type="long" defaultValue="0" />
        </activiti:formData>
      </bpmn:extensionElements>
      <bpmn:incoming>Flow_1isadqh</bpmn:incoming>
      <bpmn:outgoing>Flow_1w29ubj</bpmn:outgoing>
    </bpmn:userTask>
    <bpmn:sequenceFlow id="Flow_1w29ubj" sourceRef="Activity_0oioul4" targetRef="Activity_0q76mxf" />
    <bpmn:userTask id="Activity_0q76mxf" name="军师审批" activiti:assignee="${guide}">
      <bpmn:extensionElements>
        <activiti:formData>
          <activiti:formField id="comment" label="文本" type="string" />
        </activiti:formData>
        <activiti:formData>
          <activiti:formField id="comment" label="文本" type="string" />
          <activiti:formField id="imageUrl" label="图片" type="string" />
        </activiti:formData>
      </bpmn:extensionElements>
      <bpmn:incoming>Flow_1w29ubj</bpmn:incoming>
      <bpmn:outgoing>Flow_1tyk4tf</bpmn:outgoing>
    </bpmn:userTask>
    <bpmn:sequenceFlow id="Flow_1tyk4tf" sourceRef="Activity_0q76mxf" targetRef="Activity_14xwipa" />
    <bpmn:userTask id="Activity_14xwipa" name="主公审批" activiti:assignee="${leader}">
      <bpmn:extensionElements>
        <activiti:formData>
          <activiti:formField id="comment" label="文本" type="string" />
        </activiti:formData>
        <activiti:formData>
          <activiti:formField id="comment" label="文本" type="string" />
          <activiti:formField id="imageUrl" label="图片" type="string" />
        </activiti:formData>
      </bpmn:extensionElements>
      <bpmn:incoming>Flow_1tyk4tf</bpmn:incoming>
      <bpmn:outgoing>Flow_0yfazy1</bpmn:outgoing>
    </bpmn:userTask>
    <bpmn:endEvent id="Event_0md911b">
      <bpmn:incoming>Flow_0yfazy1</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:sequenceFlow id="Flow_0yfazy1" sourceRef="Activity_14xwipa" targetRef="Event_0md911b" />
    <bpmn:textAnnotation id="TextAnnotation_0a3g94e">
      <bpmn:text>诸葛亮账号来审批</bpmn:text>
    </bpmn:textAnnotation>
    <bpmn:association id="Association_0ophocq" sourceRef="Activity_0q76mxf" targetRef="TextAnnotation_0a3g94e" />
    <bpmn:textAnnotation id="TextAnnotation_1uo4krp">
      <bpmn:text>刘备账号来审批</bpmn:text>
    </bpmn:textAnnotation>
    <bpmn:association id="Association_11aixgw" sourceRef="Activity_14xwipa" targetRef="TextAnnotation_1uo4krp" />
  </bpmn:process>
  
</bpmn:definitions>

演示步骤

使用将军的角色登陆JeecgFlow的Activiti演示站,如关羽,张飞

发起流程,填写相应的表单参数

此时流程预览可以看到当前流转到军师审批节点

此时,用户可以进行撤回操作

点击撤回之后,预览流程运行情况如图,表示流程回到了发起节点,用户可以重新提交信息。
该撤回的技术方案,是通过自定义Cmd方式实现

更多精彩,请访问JeecgFlow

相关推荐
Victor3563 分钟前
MongoDB(72)如何创建用户和角色?
后端
Victor3566 分钟前
MongoDB(71)如何启用MongoDB身份验证?
后端
想打游戏的程序猿12 分钟前
工具与协议层——Agent 如何连接世界
后端·ai编程
希望永不加班26 分钟前
SpringBoot 过滤器(Filter)与请求链路梳理
java·spring boot·后端·spring
0xDevNull33 分钟前
Java实现Redis延迟队列:从原理到高可用架构
java·开发语言·后端
糖炒栗子032634 分钟前
Go 语言环境搭建与版本管理指南 (2026)
开发语言·后端·golang
恼书:-(空寄42 分钟前
Spring 事务失效的 8 大场景 + 原因 + 解决方案
java·后端·spring
我是若尘1 小时前
我的需求代码被主干 revert 了,接下来我该怎么操作?
前端·后端·代码规范
dweizhao1 小时前
这份AI报告,把美股干崩了
后端
JOEH602 小时前
Java 后端开发中的内存泄漏问题:90% 开发者都会踩的 5 个坑
后端