若依审批流-委派

在审批流中,委派​ 是一种常见的操作,指的是当前审批人将本应由自己处理的任务,临时交给他人代为处理,但最终决策权和责任仍归属于原审批人。

点击若依工作流进行在线体验

工作原理

审批流中的"委派"通常具备以下几个关键特点:

  • 临时性与可逆性:委派通常是一种临时性的安排。例如,当正式审批人休假、出差或因其他原因暂时无法处理任务时,会进行委派。一旦原审批人恢复工作,委派关系可能就会结束。
  • 责任主体不变 :尽管任务被交给他人处理,但最终的责任仍然由原审批人(即委派人)承担。被委派人的操作通常被视为替原审批人提供参考意见或初步处理。
  • 流程的可回溯性:在流程记录中,委派操作、被委派人的处理意见以及流程如何返回至原审批人,这些信息通常都会被记录下来,确保流程的透明和可追溯 。

需求

假设现在有一个请假流程, 用户提交申请数据, 审批人将任务委派给另一个跟进,被委派人给出自己的意见后,任务继续流转到审批人。(类似虚线任务)

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:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn">
  <bpmn:process id="Process_9729" name="请假流程" isExecutable="true">
    <bpmn:startEvent id="Event_0ucy4xc">
      <bpmn:outgoing>Flow_1fgnagb</bpmn:outgoing>
    </bpmn:startEvent>
    <bpmn:sequenceFlow id="Flow_1fgnagb" sourceRef="Event_0ucy4xc" targetRef="Activity_04kx462" />
    <bpmn:userTask id="Activity_04kx462" name="请假申请" camunda:assignee="${startUser}">
      <bpmn:extensionElements>
        <camunda:formData>
          <camunda:formField id="type" label="请假类型" type="string" />
          <camunda:formField id="reason" label="请假理由" type="string" />
          <camunda:formField id="days" label="请假天数" type="long" defaultValue="" />
        </camunda:formData>
      </bpmn:extensionElements>
      <bpmn:incoming>Flow_1fgnagb</bpmn:incoming>
      <bpmn:outgoing>Flow_0nrxozi</bpmn:outgoing>
    </bpmn:userTask>
    <bpmn:sequenceFlow id="Flow_0nrxozi" sourceRef="Activity_04kx462" targetRef="Activity_0qetwmj" />
    <bpmn:userTask id="Activity_0qetwmj" name="直属领导审批" camunda:assignee="${candidate}">
      <bpmn:extensionElements>
        <camunda:formData>
          <camunda:formField id="userComment" label="评论" type="string" />
        </camunda:formData>
      </bpmn:extensionElements>
      <bpmn:incoming>Flow_0nrxozi</bpmn:incoming>
      <bpmn:outgoing>Flow_0bpj5l6</bpmn:outgoing>
    </bpmn:userTask>
    <bpmn:sequenceFlow id="Flow_0bpj5l6" sourceRef="Activity_0qetwmj" targetRef="Gateway_07216c1" />
    <bpmn:exclusiveGateway id="Gateway_07216c1">
      <bpmn:incoming>Flow_0bpj5l6</bpmn:incoming>
      <bpmn:outgoing>Flow_0uf4uhb</bpmn:outgoing>
      <bpmn:outgoing>Flow_1jmp8ly</bpmn:outgoing>
    </bpmn:exclusiveGateway>
    <bpmn:endEvent id="Event_0lhm65y">
      <bpmn:incoming>Flow_0uf4uhb</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:sequenceFlow id="Flow_0uf4uhb" name="审批通过" sourceRef="Gateway_07216c1" targetRef="Event_0lhm65y">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${approved == true}</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:endEvent id="Event_0xmax1y">
      <bpmn:incoming>Flow_1jmp8ly</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:sequenceFlow id="Flow_1jmp8ly" name="审批拒绝" sourceRef="Gateway_07216c1" targetRef="Event_0xmax1y">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${approved==false}</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
  </bpmn:process>

</bpmn:definitions>

演示效果

使用若依(ry)账号登陆系统,发起一个请假申请, 备注,测试委派, 注意,我同样选择了ry这个账户做审批人

使用若依(ry)账号登陆系统,在待办任务,通过委派操作,将任务先转交给admin

使用管理员(admin)账号登陆系统, 在待办任务菜单中, 会看到一个带有审查操作的记录, 点击它给出意见。

使用若依(ry)账号登陆系统,在待办任务菜单, 将会看到任务重新回到自己清单中, 也看到了admin的意见。

使用若依(ry)账号登陆系统,在待办任务中,执行通过,拒绝等操作, 时间线看到了最终效果。

若依工作流

相关推荐
wuyikeer2 小时前
Spring Framework 中文官方文档
java·后端·spring
Victor3562 小时前
MongoDB(61)如何避免大文档带来的性能问题?
后端
Victor3562 小时前
MongoDB(62)如何避免锁定问题?
后端
wuyikeer3 小时前
Spring BOOT 启动参数
java·spring boot·后端
子木HAPPY阳VIP3 小时前
Ubuntu 22.04 VMware 设置固定IP配置
人工智能·后端·目标检测·机器学习·目标跟踪
人间打气筒(Ada)4 小时前
如何基于 Go-kit 开发 Web 应用:从接口层到业务层再到数据层
开发语言·后端·golang
开心就好20254 小时前
使用Wireshark进行TCP数据包抓包分析:三次握手与四次挥手详解
后端·ios
用户4419395054874 小时前
OpenClaw服务器部署保姆级教程
后端
zdl6864 小时前
springboot集成onlyoffice(部署+开发)
java·spring boot·后端
Soofjan4 小时前
sync.Mutex讲解
后端