2. 许可工作流基础:工作流定义、BPMN2.0标准、许可节点类型

在数字工地管理平台中,许可工作流是控制高风险作业(动火、受限空间、吊装等)的核心引擎。它确保每一项作业在获得授权前,必须经过规定的检查、审批和会签环节。本节将系统讲解工作流的基本定义、BPMN2.0国际标准,以及许可流程中常见的三种节点类型。

2.1 工作流定义与核心要素

工作流(Workflow)是对业务流程中任务、数据、角色与规则之间关系的计算机化表示。在数字工地场景下,一个典型的“动火作业许可”工作流包含以下核心要素:

要素 说明 工地示例
任务节点 流程中需要人工或系统执行的操作单元 “安全员现场检查”、“项目经理审批”
流转条件 决定任务执行顺序或分支的规则 “气体检测合格 → 进入审批”、“检测不合格 → 退回整改”
参与者 执行任务的用户、角色或系统服务 “安全员”、“项目经理”、“气体监测系统”
数据对象 流程中传递的表单、文件或状态信息 “动火作业申请单”、“气体检测报告”
事件 触发流程启动或中断的信号 “作业申请提交”、“定时器超时”、“任务驳回”
关键认知: 工作流引擎的核心价值在于将“人找事”转变为“事找人”。巡检人员提交申请后,系统自动将任务推送给下一节点负责人,并记录全链路操作日志,为后续审计和优化提供数据基础。

2.2 BPMN2.0标准与许可流程建模

BPMN2.0(Business Process Model and Notation 2.0)是国际通用的业务流程建模标准,它提供了一套统一的图形符号,使得业务人员、开发人员和运维人员能够使用同一种语言描述流程。在许可工作流中,BPMN2.0的核心元素包括:

  • 事件(Event): 用圆圈表示,分为开始事件、中间事件和结束事件。例如,“提交作业申请”是开始事件,“许可到期”是中间定时器事件。
  • 活动(Activity): 用圆角矩形表示,代表需要执行的任务。例如,“安全交底”(用户任务)、“自动发送通知”(服务任务)。
  • 网关(Gateway): 用菱形表示,控制流程的分支与合并。例如,“条件分支网关”根据检测结果决定走向。
  • 顺序流(Sequence Flow): 用带箭头的实线表示,连接各元素,定义执行顺序。

下图展示了一个简化的“动火作业许可”BPMN2.0流程模型,帮助理解各元素如何协同工作:

BPMN2.0 动火作业许可流程模型(简化) 开始 提交作业 申请 条件 安全员 现场检查 项目经理 审批 结束 流程说明 • 开始事件:提交申请 • 条件网关:检测是否合格 • 合格→安全员检查;不合格→审批
实践建议: 在数字工地项目中,建议使用BPMN2.0标准工具(如Camunda Modeler、Activiti Designer)绘制许可流程。标准化的模型可以直接导入工作流引擎执行,减少从设计到开发的转换误差。

2.3 许可节点类型详解

在许可工作流中,节点类型决定了任务的执行逻辑和流转方式。以下是三种最核心的节点类型:

2.3.1 审批节点(Approval Task)

审批节点是最常见的用户任务类型。指定审批人收到任务后,可以选择“通过”、“驳回”或“转办”。在数字工地中,审批节点通常与电子签名、现场照片上传等功能结合,确保审批的严肃性和可追溯性。

  • 单人审批: 任意一位审批人操作即完成节点。
  • 多人顺序审批: 按预设顺序依次审批,前一人通过后下一人才能看到任务。
  • 超时自动处理: 超过设定时间未审批,系统自动触发提醒或按预设规则(如自动通过/驳回)处理。

2.3.2 会签节点(Countersign Task)

会签节点要求多个指定角色或人员全部完成审批,流程才能继续。这在涉及多方安全责任的许可中尤为重要,例如“受限空间作业”需要安全员、监护人和作业负责人三方共同确认。

会签模式 规则 工地应用场景
全部通过 所有会签人必须选择“通过” 高危作业许可(动火、吊装)
比例通过 超过设定比例(如80%)通过即可 一般作业许可(临时用电)
一票否决 任意一人选择“驳回”即终止流程 安全条件不满足时的紧急叫停

2.3.3 条件分支节点(Conditional Gateway)

条件分支节点根据流程数据或外部输入,动态决定后续路径。在许可流程中,条件分支常用于:

  • 检测结果判断: 气体浓度是否超标、防护措施是否到位。
  • 作业等级划分: 根据作业风险等级(一级/二级/三级)自动路由到不同的审批链。
  • 时间条件触发: 许可即将到期时,自动触发延期申请或关闭流程。

下图展示了条件分支节点在许可流程中的典型应用逻辑:

条件分支节点逻辑示例 气体检测数据 条件 检测合格 → 进入审批 检测不合格 → 退回整改 是 否 条件表达式示例 ${gasDetectResult == '合格'} ${gasDetectResult == '不合格'}
常见陷阱: 条件分支的表达式必须与流程数据模型严格对应。例如,如果气体检测结果字段名为 gasDetectResult,则条件表达式应写为 ${gasDetectResult == '合格'},而不是 ${result == 'pass'}。字段名不一致会导致流程路由错误,甚至卡死。

2.4 节点类型对比与选型建议

在实际的许可工作流设计中,需要根据作业风险等级和业务规则选择合适的节点类型。下表总结了三种节点的核心差异:

维度 审批节点 会签节点 条件分支节点
核心目的 单一角色决策 多方共同确认 动态路径选择
参与者数量 1人(或顺序多人) ≥2人(并行或顺序) 无参与者,由系统判断
流转规则 单人通过/驳回 全部通过/比例通过/一票否决 基于表达式结果路由
典型工地场景 项目经理审批动火作业 安全员+监护人+作业负责人三方会签 根据气体检测结果决定是否进入审批
调试关注点 审批人分配、超时策略 会签完成率、投票逻辑 条件表达式正确性、数据源
选型建议: 对于高风险作业(如一级动火、受限空间),优先使用会签节点确保多方安全责任落实;对于中低风险作业,使用审批节点提高效率;当流程需要根据实时数据(如传感器检测值)动态调整时,必须引入条件分支节点。三种节点可以组合使用,构建出符合工地实际管理要求的复杂许可流程。