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

相关推荐
AskHarries8 分钟前
maven父子工程多模块如何管理统一的版本号?
java·spring boot·后端·maven
Flying_Fish_roe40 分钟前
springcloud-GateWay
后端·spring·spring cloud
问道飞鱼2 小时前
springboot后端开发-常见注解及其用途
java·spring boot·后端
愿尽3 小时前
JavaWeb【day14】--(SpingBoot原理)
java·spring boot·后端
计算机学姐3 小时前
基于python+django+vue的农业管理系统
开发语言·vue.js·后端·python·django·pip·web3.py
惜.己3 小时前
基于Spring搭建SpringMvc框架
java·开发语言·后端·spring·tomcat·mvc·idea
箬敏伊儿3 小时前
springboot项目中 前端浏览器访问时遇到跨域请求问题CORS怎么解决?has been blocked by CORS policy
java·前端·spring boot·后端·spring
蔚一5 小时前
Java设计模式—面向对象设计原则(一) ----->开闭原则OCP(完整详解,附有代码+案例)
java·后端·设计模式·intellij-idea·开闭原则
爱吃香蕉的猴哥5 小时前
Spring AOP
java·后端·spring
蒙娜丽宁5 小时前
Go语言结构体和元组全面解析
开发语言·后端·golang·go