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

相关推荐
考虑考虑16 分钟前
Springboot3.5.x结构化日志新属性
spring boot·后端·spring
涡能增压发动积17 分钟前
一起来学 Langgraph [第三节]
后端
sky_ph30 分钟前
JAVA-GC浅析(二)G1(Garbage First)回收器
java·后端
涡能增压发动积36 分钟前
一起来学 Langgraph [第二节]
后端
hello早上好1 小时前
Spring不同类型的ApplicationContext的创建方式
java·后端·架构
roman_日积跬步-终至千里1 小时前
【Go语言基础【20】】Go的包与工程
开发语言·后端·golang
00后程序员2 小时前
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
后端
HyggeBest2 小时前
Mysql的数据存储结构
后端·架构
TobyMint3 小时前
golang 实现雪花算法
后端
G探险者3 小时前
【案例解析】一次 TIME_WAIT 导致 TPS 断崖式下降的排查与优化
后端