Skip to content

流程管理 PRD

文档信息

项目内容
产品名称PMForge - 流程管理
文档版本v2.0
创建日期2026-09-19
最后更新2026-09-24
文档状态评审中
优先级P0

一、功能概述

1.1 功能定位

如果把工作流系统比作一座城市的交通网络,那么"流程设计"是道路规划图,"我的流程"是每辆车的导航,而流程管理就是交通指挥中心——管理员坐在大屏前,看到哪条路堵了就去疏通,哪辆车抛锚了就去拖走,哪个路口效率低就去优化信号灯。

流程管理模块是 PMForge 工作流系统的运营管理核心,面向管理员提供五大能力:

能力一句话说明类比
流程定义管理管理已经发布上线的流程模板管理"哪些路可以通车"
流程实例管理管理每一条正在跑的具体流程管理"路上跑的车"
流程监控统计和分析流程运行数据"交通大数据大屏"
流程任务管理全局视角干预异常任务"交警现场指挥"
流程监听配置配置自动化规则,减少人工干预"设置自动红绿灯"

核心设计原则:这个模块是"管理视角"——管理员不需要亲自审批任何流程,但需要有能力干预任何流程。就像交通指挥官不需要自己开车,但需要能叫停任何一辆车。

1.2 目标用户

用户类型使用频率核心诉求典型操作
系统管理员每天使用确保工作流系统稳定运行,快速发现和处理异常查看监控大屏、处理告警、配置监听器
流程管理员高频使用管理流程实例全生命周期,干预异常任务终止阻塞流程、转办超时任务、分析效率
IT 运维人员日常使用配置自动化规则,排查流程技术问题创建超时监听器、查看事件日志、排查脚本
部门主管偶尔使用了解部门审批效率,发现瓶颈查看部门统计报表、导出效率分析

1.3 业务价值

  • 全局流程管控:管理员可以查看和干预所有流程实例,确保业务流程不阻塞、不卡壳——就像交通指挥中心可以远程控制红绿灯
  • 异常快速响应:支持强制转办、委派、加签、减签等操作,快速处理"卡住"的流程——审批人离职了?一键转给新人
  • 流程效率优化:通过统计分析和耗时排行,发现"哪个节点最慢""哪个人审批最久",用数据驱动流程优化
  • 自动化能力增强:通过监听器配置,实现"超时自动提醒""超时自动转交上级"等规则,减少人工盯盘
  • 数据驱动决策:提供流程运行报表,为管理层优化组织架构和审批流程提供依据

1.4 功能范围

功能模块功能描述优先级所属端
流程定义管理管理已发布的流程定义,查看定义详情,挂起/激活P0后台管理
流程实例管理管理所有流程实例的全生命周期(终止/取消/挂起/恢复/删除)P0后台管理
流程监控流程统计分析、耗时分析、效率报表、告警面板P1后台管理
流程任务管理全局任务视图,支持强制转办/委派/加签/减签/催办P0后台管理
流程监听配置配置各类流程监听器和事件订阅,实现自动化处理P1后台管理

二、用户场景

2.1 用户角色

角色名称角色标识权限范围典型操作
流程超级管理员flow_super_admin全流程管理权限终止/取消/强制转办任何流程
流程管理员flow_admin管辖范围内的流程管理查看/干预管辖范围内的流程
流程监控员flow_monitor只读监控权限查看流程统计和监控数据
部门审批负责人dept_approve_leader部门流程管理查看和干预本部门的流程任务

2.2 使用场景

场景 1:流程管理员小王处理阻塞流程

场景描述:某采购审批流程因为审批人离职,导致流程阻塞超过一周,供应商催款电话不断。

用户故事:作为流程管理员,小王收到系统告警"采购审批流程阻塞超过 7 天",需要紧急处理以确保业务不受影响。

操作步骤

  1. 小王登录后台管理系统,进入"流程管理 > 流程监控"
  2. 在监控大屏的"告警面板"中看到红色告警:"采购审批流程"有 1 条超时实例
  3. 点击告警信息,进入流程实例详情页面
  4. 查看流程图——当前阻塞在"财务经理审批"节点(蓝色闪烁高亮)
  5. 查看审批时间线,确认该任务已分配给已离职员工"张某某"
  6. 点击该任务节点,选择"强制转办"操作
  7. 在弹出的对话框中选择新的审批人(财务部新经理"李某某")
  8. 填写转办原因"原审批人已离职,转交新经理处理"
  9. 点击"确认转办"按钮
  10. 系统记录操作日志,任务重新分配给新审批人

预期结果

  • ① 阻塞的流程恢复运行,新审批人李某某在待办列表中看到该任务
  • ② 原处理人张某某收到通知"该任务已转办"
  • ③ 操作日志中记录了完整的转办信息(操作人:小王,原因:原审批人已离职)
  • ④ 发起人收到通知"您的采购审批已转交新审批人处理"

场景 2:流程管理员小王批量处理月末超时任务

场景描述:月末结算期间,大量报销审批任务超时未处理,堆积了 30 多条。

用户故事:作为流程管理员,小王月底发现大量报销审批任务超时,需要快速识别并批量处理这些超时任务。

操作步骤

  1. 进入"流程管理 > 任务管理"
  2. 设置筛选条件:任务状态="待处理",超时状态="已超时"
  3. 系统显示所有超时任务列表,按超时时长降序排列
  4. 查看超时任务详情:任务名称、当前审批人、超时时长、所属流程
  5. 对于需要批量转办的任务,勾选多个任务(最多 50 条)
  6. 点击"批量转办"按钮
  7. 选择目标审批人,填写转办原因"月末集中处理超时任务"
  8. 确认批量转办操作
  9. 系统逐一执行转办操作,并发送通知给新审批人

预期结果

  • ① 超时任务被批量转办给新的审批人
  • ② 每个新审批人在待办列表中看到转入的任务
  • ③ 操作日志记录了批量转办的完整信息
  • ④ 监控面板的"超时任务数"指标下降

场景 3:部门主管老张分析季度审批效率

场景描述:部门主管老张需要在季度会议上汇报本部门的审批效率情况。

用户故事:作为部门主管,老张需要了解本季度部门内各审批流程的平均处理时长,找出效率低下的流程环节,以便优化审批流程。

操作步骤

  1. 进入"流程管理 > 流程监控"
  2. 选择"效率分析"标签页
  3. 设置筛选条件:时间范围="本季度",部门="本部门"
  4. 系统展示统计数据:
    • 流程发起总数 156 条、已完成 120 条、进行中 30 条、已终止 6 条
    • 平均处理时长 18.5 小时、最长处理时长 168 小时
    • 各节点平均耗时排行——发现"部门经理审批"节点平均耗时 12 小时
    • 超时率 8.3%
  5. 点击"部门经理审批"节点查看详细分析
  6. 导出统计报表为 Excel 文件

预期结果

  • ① 获得部门流程效率分析报告
  • ② 识别出耗时最长的审批节点:"部门经理审批"平均 12 小时
  • ③ 发现超时率最高的流程:"采购审批"超时率 15%
  • ④ 导出 Excel 报表可直接用于季度会议汇报

场景 4:IT 运维小刘配置超时自动提醒

场景描述:公司要求所有审批任务超时 24 小时自动提醒,超时 48 小时自动转交上级。

用户故事:作为 IT 运维人员,小刘需要为所有审批类任务配置超时监听器,实现自动化超时处理。

操作步骤

  1. 进入"流程管理 > 监听配置"
  2. 点击"创建监听器"按钮
  3. 填写监听器基本信息:
    • 监听器名称:"审批超时提醒"
    • 监听器标识:"approval_timeout_remind"
    • 监听器类型:"任务监听器"
  4. 配置监听范围:
    • 适用范围:"所有流程定义"
    • 节点类型:"用户任务"
  5. 配置触发事件:"任务超时"
  6. 配置触发条件:超时阈值 24 小时
  7. 配置执行动作:
    • 动作 1:发送站内消息 + 短信给审批人
    • 动作 2:超时 48 小时后自动转交上级
  8. 配置消息模板:
    • 标题:"【流程提醒】您有一条待审批任务即将超时"
    • 内容:包含流程名称、发起人、任务创建时间等变量
  9. 设置监听器优先级为 100(默认)
  10. 点击"保存并启用"按钮

预期结果

  • ① 所有审批任务超时 24 小时后,审批人自动收到提醒通知
  • ② 超时 48 小时后,任务自动转交给审批人的上级
  • ③ 事件日志中记录每次触发的详细信息
  • ④ 监听器统计显示累计触发次数

场景 5:管理员紧急挂起问题流程

场景描述:发现某报销流程存在配置错误,已经发起的 20 条实例都在走错误的审批链路。

用户故事:作为流程管理员,我需要紧急挂起这个有问题的流程定义,防止更多实例继续走错误链路,同时处理已经发起的实例。

操作步骤

  1. 进入"流程管理 > 流程定义"
  2. 找到"差旅报销流程",点击"挂起"按钮
  3. 系统弹出确认对话框,询问"是否同时挂起运行中的实例?"
  4. 选择"是,同时挂起运行中的实例"
  5. 确认后,流程定义状态变为"挂起"
  6. 新的发起请求被拒绝,提示"该流程已暂停,请联系管理员"
  7. 进入"流程实例"页面,逐一检查运行中的 20 条实例
  8. 对需要重新提交的实例执行"终止"操作,备注"流程配置错误,请重新发起"

预期结果

  • ① 流程定义挂起后,不能再发起新的实例
  • ② 运行中的实例全部暂停流转
  • ③ 发起人收到通知"您发起的差旅报销流程已暂停"
  • ④ 管理员修正配置后重新激活流程

2.3 验收标准汇总

编号验收项通过标准
AC-01流程定义挂起/激活挂起后不能发起新实例;激活后恢复正常
AC-02流程实例终止终止后状态变为"已终止",发起人收到通知,操作日志有记录
AC-03强制转办转办后新审批人收到待办,原处理人收到通知,日志有记录
AC-04批量转办支持最多 50 条批量转办,每条都记录日志
AC-05监控数据准确性统计数据与实际数据偏差 ≤ 5 分钟
AC-06超时监听触发超时后自动发送通知,延迟 ≤ 1 分钟
AC-07自动转交超时达到阈值后自动转交上级,日志有记录
AC-08流程图高亮已完成节点绿色、当前节点蓝色闪烁、未完成灰色
AC-09数据保留策略已完成实例 1 年后归档,已终止实例 6 个月后归档
AC-10报表导出Excel 导出格式正确,数据完整

三、功能需求

3.1 流程定义管理(后台管理端)

功能描述

管理所有已部署的流程定义,提供流程定义列表查看、详情查看(流程图 + 节点信息)、挂起/激活、删除、版本对比等功能。

名词解释:流程定义就是"已经发布上线的流程模板"。流程设计模块产出的是"设计图纸"(流程模型),发布之后就变成了"施工标准"(流程定义)。用户发起的每一个流程实例,都是按照某个版本的流程定义来执行的。

页面布局

流程定义列表

流程定义详情页流程定义详情

操作流程

查看流程定义列表

  1. 进入"流程管理 > 流程定义"页面
  2. 系统展示所有流程定义列表,支持以下筛选条件:
    • 按流程名称关键字搜索
    • 按流程分类筛选
    • 按流程状态筛选(激活/挂起)
    • 按部署时间范围筛选
  3. 列表展示字段:流程名称、流程标识、分类、版本号、状态、关联实例数(运行中/总数)、部署时间、部署人
  4. 支持操作:查看详情、挂起/激活、删除

查看流程定义详情

  1. 在流程定义列表点击"查看详情"
  2. 系统打开流程定义详情页面,包含以下区域:
    • 基本信息:流程名称、标识、版本、分类、描述、部署时间
    • 流程图:渲染完整的 BPMN 流程图
      • 鼠标悬停节点显示节点名称和类型
      • 点击节点在右侧面板查看节点配置详情
      • 节点信息包括:节点名称、节点类型、审批人配置、条件表达式、表单配置等
    • 版本信息:显示该流程定义的所有版本列表
    • 关联实例统计:运行中实例数、已完成实例数、已终止实例数

挂起/激活流程定义

  1. 在流程定义列表找到目标流程
  2. 点击"挂起"按钮:
    • 系统弹出确认对话框
    • 选择是否同时挂起该流程的运行中实例
    • 确认后流程定义状态变为"挂起"
    • 挂起后该流程不能再发起新的实例
    • 运行中的实例可以选择是否继续执行
  3. 点击"激活"按钮:
    • 系统弹出确认对话框
    • 选择是否同时激活已挂起的实例
    • 确认后流程定义状态恢复为"激活"

删除流程定义

  1. 在流程定义列表点击"删除"按钮
  2. 系统校验:
    • 是否有运行中的流程实例(有则不允许删除)
    • 是否有已挂起但未结束的流程实例
  3. 校验通过:弹出确认对话框,输入流程标识确认删除
  4. 校验失败:提示不能删除的原因

版本对比

  1. 在流程定义详情页,点击"版本对比"
  2. 选择两个要对比的版本
  3. 系统展示版本差异:
    • 流程节点的增删改情况
    • 节点配置的变更情况
    • 以高亮方式标记:新增(绿色)、删除(红色)、修改(黄色)

业务规则

  1. 流程定义状态规则

    • 激活状态:可以发起新实例,运行中实例正常流转
    • 挂起状态:不能发起新实例,运行中实例默认暂停流转
    • 挂起流程定义时可以选择是否级联挂起实例
    • 为什么这样设计:有些场景下流程定义需要暂停(比如发现配置错误),但运行中的实例可能已经走到最后一步,强制全部暂停会影响业务,所以给管理员选择权
  2. 删除规则

    • 有运行中实例的流程定义不能删除
    • 删除采用逻辑删除方式,数据保留但标记为已删除
    • 删除前必须输入流程标识二次确认(防止误操作)
    • 删除操作记录到操作日志
  3. 版本规则

    • 每个流程标识可以有多个版本
    • 同一时间只有一个"最新版本"用于发起新实例
    • 运行中的实例使用发起时的版本继续执行(不会因为新版本发布而中断)
    • 新版本部署不影响旧版本实例的运行
    • 为什么这样设计:就像软件升级不影响已经打开的文档一样,流程升级不影响已经在跑的流程实例

接口列表

接口名称请求方式接口路径功能说明
分页查询流程定义列表GET/api/bpm/definition/page分页查询流程定义列表
获取流程定义详情GET/api/bpm/definition/获取流程定义详细信息
获取流程图 XMLGET/api/bpm/definition/{id}/xml获取流程定义 BPMN XML
获取流程图图片GET/api/bpm/definition/{id}/image获取流程定义渲染图片
获取流程定义节点列表GET/api/bpm/definition/{id}/nodes获取流程定义所有节点信息
挂起流程定义POST/api/bpm/definition/{id}/suspend挂起流程定义
激活流程定义POST/api/bpm/definition/{id}/activate激活流程定义
删除流程定义DELETE/api/bpm/definition/删除流程定义
获取版本列表GET/api/bpm/definition/{processKey}/versions获取流程定义版本列表
版本对比POST/api/bpm/definition/compare对比两个版本差异

3.2 流程实例管理(后台管理端)

功能描述

管理所有流程实例的全生命周期,提供实例列表查看、详情查看(流程图高亮 + 审批时间线)、终止、取消、挂起、恢复、删除、搜索筛选等功能。

名词解释:流程实例就是"一条正在跑的具体流程"。比如张三发起了一条请假申请,这条申请就是一个流程实例。管理员在这里可以看到全公司所有正在跑的流程。

流程实例状态机

流程实例状态机

页面布局

流程实例列表

流程实例详情页(核心页面)流程实例详情

操作流程

查看流程实例列表

  1. 进入"流程管理 > 流程实例"页面
  2. 系统展示所有流程实例列表,支持以下筛选条件:
    • 按流程名称筛选
    • 按流程分类筛选
    • 按流程状态筛选(运行中/已完成/已挂起/已终止/已取消)
    • 按发起人筛选
    • 按发起时间范围筛选
    • 按流程实例编号搜索
    • 按当前节点名称筛选
  3. 列表展示字段:实例编号、流程名称、发起人、发起时间、当前节点、当前审批人、流程状态、耗时
  4. 支持操作:查看详情、终止、取消、挂起、恢复、删除

查看流程实例详情

  1. 在流程实例列表点击"查看详情"
  2. 系统打开流程实例详情页面,包含以下区域:
    • 基本信息区域:实例编号、流程名称、流程版本、发起人、发起时间、结束时间、流程状态、总耗时、关联业务信息
    • 流程图区域(核心功能):
      • 已完成节点:绿色高亮 + 勾选标记
      • 当前节点:蓝色高亮 + 闪烁动画
      • 未完成节点:灰色
      • 已完成连线:绿色加粗
      • 当前连线:蓝色动画
      • 鼠标悬停节点显示:节点名称、处理人、处理时间、耗时
    • 审批时间线:以时间线形式展示每个审批步骤(节点名称、处理人、处理时间、处理动作、审批意见、耗时)
    • 表单数据区域:展示流程表单的完整数据,支持查看每个节点修改的表单数据变更
    • 操作日志区域:记录流程实例的所有操作日志

终止流程实例

  1. 在流程实例列表或详情页点击"终止"按钮
  2. 系统弹出终止确认对话框
  3. 选择终止原因(预设选项 + 自定义输入)
  4. 填写终止备注说明
  5. 点击"确认终止"
  6. 系统执行终止操作:流程状态变为"已终止",当前任务被取消,发送终止通知给发起人,记录操作日志

取消流程实例

  1. 取消操作与终止类似,但语义不同:取消是发起人主动撤回,终止是管理员强制结束
  2. 系统弹出取消确认对话框,填写取消原因
  3. 确认后流程状态变为"已取消"

挂起/恢复流程实例

  1. 挂起操作:在流程实例列表点击"挂起"按钮,确认后流程实例暂停流转,流程状态变为"已挂起"
  2. 恢复操作:在已挂起的实例上点击"恢复"按钮,确认后流程实例恢复流转,流程状态恢复为"运行中"

删除流程实例

  1. 只有"已终止"、"已取消"、"已完成"状态的实例才能删除
  2. 弹出确认对话框,输入实例编号确认删除
  3. 确认后逻辑删除流程实例数据

高级搜索

  1. 列表支持多条件组合筛选
  2. 支持高级搜索:
    • 按表单字段值搜索(如:报销金额 > 10000)
    • 按审批人搜索
    • 按当前停留节点搜索
    • 按流程耗时范围搜索
  3. 支持保存搜索条件为"常用筛选"

业务规则

  1. 终止规则

    • 管理员可以终止任何运行中/已挂起的流程
    • 终止后不可恢复(这是刻意的——终止是一个"严肃"的操作,不应该被轻易撤销)
    • 终止时必须填写原因
    • 终止操作通知发起人
    • 终止操作记录到操作日志
  2. 删除规则

    • 只有已结束(已完成/已终止/已取消)的实例才能删除
    • 删除采用逻辑删除
    • 运行中的实例不能删除,需先终止
  3. 数据保留规则

    • 已完成实例默认保留 1 年
    • 已终止/已取消实例默认保留 6 个月
    • 超过保留期的实例自动归档到历史库
    • 归档后的实例只能查看,不能操作
    • 为什么这样设计:流程数据占用存储空间,但又有审计需求。通过分层保留策略,既保证近期数据快速访问,又满足长期审计要求

接口列表

接口名称请求方式接口路径功能说明
分页查询流程实例列表GET/api/bpm/instance/page分页查询流程实例列表
获取流程实例详情GET/api/bpm/instance/获取流程实例详细信息
获取流程图(高亮)GET/api/bpm/instance/{id}/diagram获取带高亮的流程图
获取审批时间线GET/api/bpm/instance/{id}/timeline获取审批时间线数据
获取流程操作日志GET/api/bpm/instance/{id}/logs获取操作日志列表
获取表单数据GET/api/bpm/instance/{id}/form-data获取流程表单数据
终止流程实例POST/api/bpm/instance/{id}/terminate终止流程实例
取消流程实例POST/api/bpm/instance/{id}/cancel取消流程实例
挂起流程实例POST/api/bpm/instance/{id}/suspend挂起流程实例
恢复流程实例POST/api/bpm/instance/{id}/resume恢复流程实例
删除流程实例DELETE/api/bpm/instance/删除流程实例
批量终止流程实例POST/api/bpm/instance/batch/terminate批量终止流程实例
高级搜索流程实例POST/api/bpm/instance/search高级组合条件搜索
保存搜索条件POST/api/bpm/instance/search/preset保存常用搜索条件
获取实例变量GET/api/bpm/instance/{id}/variables获取流程实例变量数据

3.3 流程监控(后台管理端)

功能描述

提供流程运行状态的统计分析和可视化展示,相当于工作流系统的"大数据大屏"。包括流程统计概览、耗时分析、节点耗时排行、处理效率等报表数据,帮助管理员了解系统运行状况和发现流程瓶颈。

页面布局

流程监控看板

操作流程

查看流程统计概览

  1. 进入"流程管理 > 流程监控"页面
  2. 默认展示统计概览面板:
    • 核心指标卡片:今日新发起流程数(对比昨日增减)、运行中流程总数、今日完成流程数、平均处理时长(小时)、超时率(百分比)
    • 趋势图表:近 30 天流程发起/完成趋势折线图、按流程分类统计饼图、按部门统计柱状图
    • 告警面板:超时流程列表、异常流程列表、堆积任务排行

耗时分析

  1. 在监控页面切换到"耗时分析"标签页
  2. 设置筛选条件:时间范围、流程分类、部门
  3. 系统展示以下分析数据:
    • 各流程平均处理时长排行(柱状图)
    • 各节点类型平均处理时长对比
    • 处理时长分布图(直方图,展示不同耗时区间的流程数量)
    • 最长处理时长 TOP10 流程实例列表
  4. 支持导出分析数据为 Excel

节点耗时排行

  1. 在耗时分析页面切换到"节点排行"子标签
  2. 系统展示各节点的平均耗时排行:节点名称、所属流程、平均耗时、最大耗时、最小耗时
  3. 支持按流程筛选,查看特定流程的各节点耗时
  4. 支持按处理人筛选,查看特定人员的各节点处理效率

处理效率分析

  1. 在监控页面切换到"效率分析"标签页
  2. 设置筛选条件:时间范围、部门、人员
  3. 系统展示以下效率数据:
    • 审批人处理效率排行:平均处理时长、处理任务总数、超时率,按部门分组统计
    • 流程通过率统计:一次通过率(无驳回)、驳回率排行(按流程和节点)
    • 流程处理时段分析:按小时/星期统计任务处理量(发现处理高峰和低谷)

业务规则

  1. 统计规则

    • 统计数据实时更新(延迟不超过 5 分钟)
    • 统计数据排除已删除和已归档的流程实例
    • 耗时计算排除挂起时间(挂起期间不算"处理时间")
    • 效率统计只统计已完成的流程实例
  2. 告警规则

    • 流程超时阈值:可配置,默认 48 小时
    • 节点超时阈值:由流程设计时配置
    • 告警级别:一般(超时 1 倍)、重要(超时 2 倍)、紧急(超时 3 倍)
    • 告警通知:通过站内消息通知流程管理员
  3. 数据报表规则

    • 支持按日、周、月、季度、年维度统计
    • 数据导出格式:Excel(.xlsx)
    • 报表数据缓存周期:10 分钟(避免频繁查询影响性能)

接口列表

接口名称请求方式接口路径功能说明
获取统计概览数据GET/api/bpm/monitor/overview获取流程统计概览数据
获取趋势数据GET/api/bpm/monitor/trend获取流程趋势分析数据
获取分类统计GET/api/bpm/monitor/category-stats获取按分类统计数据
获取部门统计GET/api/bpm/monitor/dept-stats获取按部门统计数据
获取耗时分析数据GET/api/bpm/monitor/duration-analysis获取耗时分析数据
获取节点耗时排行GET/api/bpm/monitor/node-duration-rank获取节点耗时排行
获取审批人效率排行GET/api/bpm/monitor/approver-efficiency获取审批人处理效率排行
获取超时流程列表GET/api/bpm/monitor/timeout-list获取超时流程实例列表
获取驳回率统计GET/api/bpm/monitor/reject-stats获取流程驳回率统计
获取处理时段分析GET/api/bpm/monitor/time-slot-analysis获取按时段处理量分析
导出统计报表GET/api/bpm/monitor/export导出统计报表为 Excel
获取告警列表GET/api/bpm/monitor/alerts获取流程告警列表

3.4 流程任务管理 - 管理视角(后台管理端)

功能描述

提供全局视角的流程任务管理,管理员可以查看所有待办任务,对异常任务进行干预操作。

与"我的流程"模块的区别:在"我的流程"模块中,审批人只能处理分配给自己的任务;而在"任务管理"模块中,管理员可以看到全公司的所有任务,并且可以强制干预(转办、加签、减签等)。就像普通员工只能看自己的快递,而快递站站长可以看所有快递并重新分配。

页面布局

任务管理列表

操作流程

查看全局任务列表

  1. 进入"流程管理 > 任务管理"页面
  2. 系统展示所有流程任务列表,支持以下筛选条件:
    • 按任务状态筛选(待处理/已完成/已驳回/已转办/已取消)
    • 按所属流程筛选
    • 按当前处理人筛选
    • 按创建时间范围筛选
    • 按超时状态筛选(正常/即将超时/已超时)
    • 按任务名称搜索
  3. 列表展示字段:任务名称、所属流程、实例编号、发起人、发起时间、当前处理人、任务创建时间、任务状态、超时状态
  4. 支持操作:查看详情、转办、委派、加签、减签

强制转办任务

  1. 在任务列表点击某条任务的"转办"按钮
  2. 系统弹出转办对话框:显示当前任务信息和处理人、选择新的处理人、填写转办原因(必填)
  3. 点击"确认转办"
  4. 系统执行转办操作:任务处理人变更、发送通知给新旧处理人、记录操作日志

委派任务

  1. 在任务列表点击"委派"按钮
  2. 系统弹出委派对话框:选择委派目标人、选择委派方式
    • 临时委派:处理完后任务回到原处理人确认(像"代班"——同事帮你值班,但值班结束后还是你的岗位)
    • 永久委派:任务永久转给目标人(效果等同于转办)
  3. 确认委派操作,发送通知给相关人员

加签

  1. 在任务列表点击"加签"按钮
  2. 系统弹出加签对话框:
    • 选择加签类型:
      • 前加签:在当前任务之前插入新的审批节点(像"加一个前置审核")
      • 后加签:在当前任务之后插入新的审批节点(像"加一个后续复核")
    • 选择加签人员(可多选)
    • 配置加签方式:或签/会签/依次审批
    • 填写加签说明
  3. 确认加签操作,发送通知给加签人员

减签

  1. 在任务列表点击"减签"按钮(仅在会签场景下可用)
  2. 系统弹出减签对话框:显示当前节点所有待处理任务,勾选需要减签的任务,填写减签原因
  3. 确认减签操作:取消选中的任务、重新计算会签完成条件、发送通知给被减签人员

超时处理

  1. 在任务列表设置筛选条件为"已超时"
  2. 查看所有超时任务列表,系统显示超时信息:超时时长、超时级别
  3. 对超时任务可以执行的操作:催办、转办、自动处理
  4. 支持批量催办:勾选多个超时任务,一键发送催办通知

业务规则

  1. 转办规则

    • 管理员可以转办任何待处理任务
    • 转办必须填写原因
    • 转办后原处理人不再参与该任务
    • 支持批量转办(最多一次 50 条)
    • 转办操作记录完整操作日志
  2. 委派规则

    • 临时委派:处理完成后需原处理人确认(像"请示汇报"——代班人处理完后需要原负责人确认)
    • 永久委派:等同于转办
    • 委派操作需要记录委派关系链
  3. 加签规则

    • 前加签:插入到当前任务之前,当前任务暂停,先由加签人员审批
    • 后加签:插入到当前任务之后,当前任务完成后再由加签人员审批
    • 加签人员不能与当前处理人重复
    • 加签操作不可撤销(加签后需要走完加签流程)
    • 为什么这样设计:加签是"增加审批环节"的严肃操作,如果允许随意撤销会导致流程状态混乱
  4. 减签规则

    • 只能减少会签任务中的待处理任务
    • 不能减少已经开始处理的会签任务
    • 减签后需要重新计算会签完成条件
  5. 催办规则

    • 催办通知方式:站内消息 + 短信(可配置)
    • 同一任务催办间隔不少于 4 小时(防止频繁打扰审批人)
    • 催办记录计入操作日志

接口列表

接口名称请求方式接口路径功能说明
分页查询全局任务列表GET/api/bpm/task/page分页查询全局流程任务
获取任务详情GET/api/bpm/task/获取任务详细信息
强制转办任务POST/api/bpm/task/{id}/transfer强制转办任务给其他人员
委派任务POST/api/bpm/task/{id}/delegate委派任务给其他人员
加签POST/api/bpm/task/{id}/add-sign加签操作(前加签/后加签)
减签POST/api/bpm/task/{id}/reduce-sign减签操作
催办任务POST/api/bpm/task/{id}/urge发送催办通知
批量转办POST/api/bpm/task/batch/transfer批量转办任务
批量催办POST/api/bpm/task/batch/urge批量催办任务
获取超时任务列表GET/api/bpm/task/timeout-list获取超时任务列表
获取任务操作日志GET/api/bpm/task/{id}/logs获取任务操作日志
获取待处理任务统计GET/api/bpm/task/stats获取待处理任务统计数据

3.5 流程监听配置(后台管理端)

功能描述

提供流程事件监听器的配置管理,通过配置化方式实现流程自动化处理,减少硬编码开发。

名词解释:监听器就像"自动化规则"——你可以设置"当某个事件发生时,自动执行某个动作"。比如"当任务超时 24 小时,自动发送提醒"。这样管理员就不需要人工盯着每个流程,系统会自动处理常见异常。

监听器工作原理

监听器工作原理

页面布局

监听器列表

创建监听器表单创建监听器表单

操作流程

创建监听器

  1. 进入"流程管理 > 监听配置"页面
  2. 点击"创建监听器"按钮
  3. 填写监听器基本信息:名称、标识(唯一)、类型、描述
  4. 配置监听范围:适用流程(所有/指定流程/指定分类)、排除流程、适用节点类型
  5. 配置触发事件:流程级事件(启动/结束/删除)、任务级事件(创建/分配/完成/超时)、执行级事件(开始/结束/转移)
  6. 配置触发条件(可选):条件表达式
  7. 配置执行动作:通知/自动审批/自动转交/HTTP回调/脚本/变量更新
  8. 配置执行顺序(优先级)和执行超时时间
  9. 点击"保存并启用"按钮

管理监听器列表

  1. 在监听配置页面展示所有监听器列表
  2. 支持按类型、状态、名称筛选
  3. 支持操作:编辑、删除、启用、禁用、调整优先级、复制

事件订阅日志

  1. 在监听配置页面切换到"事件日志"标签
  2. 查看所有监听器的触发日志
  3. 支持按监听器、事件类型、时间范围筛选
  4. 日志内容:触发时间、事件类型、流程信息、执行结果、执行耗时

业务规则

  1. 监听器类型说明

    • 全局监听器:监听所有流程的特定事件(像"全市通用的交通规则")
    • 执行监听器:监听流程执行路径上的事件(像"在某个路口安装的摄像头")
    • 任务监听器:监听用户任务的生命周期事件(像"专门监控审批任务的传感器")
    • 事件监听器:监听自定义事件的发布(像"自定义的报警器")
  2. 事件触发规则

    • 事件触发为同步执行,阻塞流程执行直到监听器执行完成
    • 监听器执行超时时间:默认 10 秒,超时后跳过并记录告警
    • 监听器执行异常:根据配置的异常策略处理(跳过/中断/重试)
    • 同一事件多个监听器按优先级顺序执行(数值越小越先执行)
  3. 安全规则

    • Groovy 脚本执行在安全沙箱中,限制系统 API 访问
    • HTTP 回调只允许访问配置白名单中的域名(防止 SSRF 攻击)
    • 监听器配置变更需要管理员权限
    • 所有监听器执行记录完整日志

接口列表

接口名称请求方式接口路径功能说明
分页查询监听器列表GET/api/bpm/listener/page分页查询流程监听器列表
获取监听器详情GET/api/bpm/listener/获取监听器详细信息
创建监听器POST/api/bpm/listener/create创建流程监听器
更新监听器PUT/api/bpm/listener/update更新监听器配置
删除监听器DELETE/api/bpm/listener/删除流程监听器
启用监听器POST/api/bpm/listener/{id}/enable启用流程监听器
禁用监听器POST/api/bpm/listener/{id}/disable禁用流程监听器
复制监听器POST/api/bpm/listener/{id}/copy复制流程监听器
调整优先级PUT/api/bpm/listener/{id}/priority调整监听器执行优先级
查询事件日志GET/api/bpm/listener/event-log查询监听器触发日志
获取事件类型列表GET/api/bpm/listener/event-types获取所有可监听的事件类型
获取动作类型列表GET/api/bpm/listener/action-types获取所有可用的动作类型
测试监听器POST/api/bpm/listener/{id}/test测试监听器配置是否正确

四、非功能需求

4.1 性能需求

指标项指标要求说明
实例列表查询≤ 1 秒分页查询流程实例列表的响应时间
任务列表查询≤ 1 秒分页查询全局任务列表的响应时间
流程图渲染≤ 2 秒包含高亮的流程图渲染完成时间
时间线加载≤ 1 秒审批时间线数据加载完成时间
监控数据查询≤ 3 秒统计概览数据的查询响应时间
监听器执行≤ 10 秒单个监听器的执行超时时间
并发实例数≥ 1000系统同时运行的流程实例数量
并发任务数≥ 5000系统同时存在的待办任务数量
历史数据查询≤ 5 秒查询归档历史数据的响应时间
批量操作≤ 30 秒批量转办/催办等操作的处理时间

4.2 安全需求

安全项安全要求实现方式
权限控制管理操作需要对应权限RBAC 权限模型,细粒度权限标识控制
数据安全流程数据不能越权访问数据权限隔离,部门级/角色级权限控制
操作审计所有管理操作需要审计操作日志记录,包含操作人、时间、内容、IP
敏感操作保护终止/删除等需要二次确认二次输入确认 + 权限校验
脚本安全Groovy 脚本在安全环境执行沙箱执行,限制系统 API 访问
回调安全HTTP 回调防止 SSRF域名白名单校验,内网地址过滤
数据传输敏感数据传输加密表单数据加密存储,日志脱敏

4.3 兼容性需求

兼容项兼容要求说明
浏览器兼容Chrome 80+、Firefox 75+、Edge 80+管理端支持主流现代浏览器
数据兼容Flowable 6.8.0 引擎数据格式完全兼容 Flowable 原生数据格式
数据库兼容MySQL 5.7+、PostgreSQL 12+支持主流关系型数据库
接口兼容RESTful API 标准所有接口遵循 RESTful 设计规范
导出格式Excel (.xlsx)报表导出支持标准 Excel 格式

五、数据设计

5.1 核心数据表

本模块涉及 5 个核心数据表:

表名用途类比
bpm_process_definition_ext流程定义扩展信息"道路信息卡"——记录每条路的基本信息
bpm_process_instance流程实例运行状态"车辆行驶记录"——每趟行程的详细信息
bpm_task流程任务状态和处理信息"路口通行任务"——每个路口的通行情况
bpm_task_assign任务分配和转办历史"代驾记录"——谁替谁开过这段路
bpm_process_listener流程监听器配置"自动红绿灯规则"——什么条件下自动执行什么操作

5.2 表结构定义

bpm_process_definition_ext 表(流程定义扩展表)

流程定义的核心数据来自 Flowable 引擎的 ACT_RE_PROCDEF 表,本表是系统扩展的管理信息。

字段名称字段类型长度是否必填默认值说明
idBIGINT20自增主键 ID
definition_idVARCHAR64-Flowable 流程定义 ID
process_keyVARCHAR100-流程标识
process_nameVARCHAR100-流程名称
category_idBIGINT20NULL所属分类 ID
versionINT111版本号
deployment_idVARCHAR64-部署 ID
model_idBIGINT20-关联模型 ID
suspension_stateINT11状态(1-激活/2-挂起)
instance_countINT110关联实例总数
running_instance_countINT110运行中实例数
deploy_timeDATETIME--部署时间
deploy_byBIGINT20-部署人 ID
created_timeDATETIME-CURRENT_TIMESTAMP创建时间
deletedTINYINT10删除标记

索引设计

  • idx_process_key:process_key(按流程标识查询)
  • idx_model_id:model_id(按模型查询关联定义)
  • idx_category:category_id(按分类查询)

bpm_process_instance 表(流程实例表)

字段名称字段类型长度是否必填默认值说明
idBIGINT20自增主键 ID
instance_idVARCHAR64-Flowable 流程实例 ID
instance_noVARCHAR32-实例编号(唯一)
process_keyVARCHAR100-流程标识
process_nameVARCHAR100-流程名称
process_versionINT11-流程版本号
definition_idVARCHAR64-流程定义 ID
model_idBIGINT20-关联模型 ID
category_idBIGINT20NULL所属分类 ID
titleVARCHAR200NULL流程标题
initiator_idBIGINT20-发起人 ID
initiator_nameVARCHAR50-发起人姓名
initiator_dept_idBIGINT20NULL发起人部门 ID
initiator_dept_nameVARCHAR100NULL发起人部门名称
statusTINYINT11状态(1-运行中/2-已完成/3-已挂起/4-已终止/5-已取消)
current_node_idVARCHAR64NULL当前节点 ID
current_node_nameVARCHAR100NULL当前节点名称
current_assignee_idsVARCHAR500NULL当前审批人 ID(多个逗号分隔)
form_dataLONGTEXT-NULL表单数据 JSON
business_keyVARCHAR200NULL业务关联 Key
business_typeVARCHAR100NULL业务类型
start_timeDATETIME--发起时间
end_timeDATETIME-NULL结束时间
durationBIGINT20NULL总耗时(毫秒)
terminate_reasonVARCHAR500NULL终止/取消原因
created_timeDATETIME-CURRENT_TIMESTAMP创建时间
updated_timeDATETIME-CURRENT_TIMESTAMP更新时间
deletedTINYINT10删除标记

索引设计

  • uk_instance_no:instance_no(唯一索引,按编号查询)
  • idx_initiator:initiator_id(按发起人查询)
  • idx_process_key:process_key + status(按流程和状态查询)
  • idx_status:status + created_time(按状态和时间排序)
  • idx_category:category_id(按分类统计)

bpm_task 表(流程任务表)

字段名称字段类型长度是否必填默认值说明
idBIGINT20自增主键 ID
task_idVARCHAR64-Flowable 任务 ID
task_nameVARCHAR200-任务名称
task_definition_keyVARCHAR100-任务定义标识
instance_idVARCHAR64-所属流程实例 ID
instance_noVARCHAR32-实例编号
process_keyVARCHAR100-流程标识
process_nameVARCHAR100-流程名称
node_idVARCHAR64-所属节点 ID
node_nameVARCHAR100-所属节点名称
node_typeVARCHAR20-节点类型(userTask 等)
assignee_idBIGINT20NULL处理人 ID
assignee_nameVARCHAR50NULL处理人姓名
candidate_idsVARCHAR1000NULL候选处理人 ID(逗号分隔)
candidate_group_idsVARCHAR500NULL候选角色/部门 ID(逗号分隔)
statusTINYINT11状态(1-待处理/2-已完成/3-已驳回/4-已转办/5-已取消)
priorityINT1150优先级(0-100,数值越大越优先)
approval_resultTINYINT1NULL审批结果(1-通过/2-驳回/3-转办/4-委派)
approval_opinionVARCHAR1000NULL审批意见
form_dataLONGTEXT-NULL任务表单数据 JSON
create_timeDATETIME--任务创建时间
claim_timeDATETIME-NULL签收时间
complete_timeDATETIME-NULL完成时间
durationBIGINT20NULL处理耗时(毫秒)
due_timeDATETIME-NULL超时时间
timeout_statusTINYINT10超时状态(0-正常/1-即将超时/2-已超时)
urge_countINT110催办次数
last_urge_timeDATETIME-NULL最后催办时间
created_timeDATETIME-CURRENT_TIMESTAMP记录创建时间
updated_timeDATETIME-CURRENT_TIMESTAMP记录更新时间
deletedTINYINT10删除标记

索引设计

  • idx_task_id:task_id(按 Flowable 任务 ID 查询)
  • idx_instance:instance_id(按实例查询关联任务)
  • idx_assignee:assignee_id + status(按处理人和状态查询)
  • idx_timeout:timeout_status + due_time(超时任务查询)

bpm_task_assign 表(任务分配表)

字段名称字段类型长度是否必填默认值说明
idBIGINT20自增主键 ID
task_idBIGINT20-关联任务 ID
task_flowable_idVARCHAR64-Flowable 任务 ID
assignee_idBIGINT20-分配人 ID
assignee_nameVARCHAR50-分配人姓名
assign_typeTINYINT1-分配类型(1-指定/2-候选/3-角色/4-部门)
assign_sourceVARCHAR50NULL分配来源(规则/手动/转办/委派)
statusTINYINT11状态(1-待处理/2-已处理/3-已取消)
original_assignee_idBIGINT20NULL原处理人 ID(转办/委派时有值)
transfer_reasonVARCHAR500NULL转办/委派原因
operate_typeVARCHAR20NULL操作类型(transfer/delegate/addSign/reduceSign)
operate_byBIGINT20NULL操作人 ID
operate_timeDATETIME-NULL操作时间
created_timeDATETIME-CURRENT_TIMESTAMP创建时间

索引设计

  • idx_task:task_id(按任务查询分配记录)
  • idx_assignee:assignee_id(按人员查询分配记录)

bpm_process_listener 表(流程监听器表)

字段名称字段类型长度是否必填默认值说明
idBIGINT20自增主键 ID
listener_keyVARCHAR100-监听器标识(唯一)
listener_nameVARCHAR100-监听器名称
listener_typeTINYINT1-类型(1-全局/2-执行/3-任务/4-事件)
descriptionVARCHAR500NULL监听器描述
scope_typeTINYINT11范围类型(1-所有/2-指定流程/3-指定分类)
scope_valuesVARCHAR1000NULL范围值(流程 ID 或分类 ID,逗号分隔)
exclude_valuesVARCHAR1000NULL排除值(排除的流程 ID)
node_typesVARCHAR200NULL适用节点类型(逗号分隔)
event_typeVARCHAR50-触发事件类型
event_conditionVARCHAR500NULL触发条件表达式
action_typeTINYINT1-动作类型(1-通知/2-自动审批/3-转交/4-回调/5-脚本/6-变量更新)
action_configLONGTEXT--动作配置 JSON
priorityINT11100执行优先级(数值越小越先执行)
error_strategyTINYINT11异常策略(1-跳过/2-中断/3-重试)
timeoutINT1110执行超时时间(秒)
retry_countINT110重试次数
statusTINYINT11状态(0-禁用/1-启用)
trigger_countBIGINT200累计触发次数
last_trigger_timeDATETIME-NULL最后触发时间
created_byBIGINT20-创建人 ID
created_timeDATETIME-CURRENT_TIMESTAMP创建时间
updated_byBIGINT20-更新人 ID
updated_timeDATETIME-CURRENT_TIMESTAMP更新时间
deletedTINYINT10删除标记

索引设计

  • uk_listener_key:listener_key(唯一索引)
  • idx_event_type:event_type + status(按事件类型查询启用的监听器)
  • idx_scope:scope_type(按范围类型查询)

5.3 数据字典

字段说明
instance.status1运行中
instance.status2已完成
instance.status3已挂起
instance.status4已终止
instance.status5已取消
task.status1待处理
task.status2已完成
task.status3已驳回
task.status4已转办
task.status5已取消
task.approval_result1通过
task.approval_result2驳回
task.approval_result3转办
task.approval_result4委派
definition.suspension_state1激活
definition.suspension_state2挂起
listener.listener_type1全局监听器
listener.listener_type2执行监听器
listener.listener_type3任务监听器
listener.listener_type4事件监听器
listener.action_type1发送通知
listener.action_type2自动审批
listener.action_type3自动转交
listener.action_type4HTTP 回调
listener.action_type5执行脚本
listener.action_type6更新变量
listener.error_strategy1跳过继续
listener.error_strategy2中断流程
listener.error_strategy3重试执行

5.4 action_config JSON 结构

监听器的动作配置采用 JSON 格式,根据 action_type 不同使用不同的配置段:

json
{
  "notify": {
    "channels": ["站内消息", "短信", "邮件"],
    "templateId": "tpl_timeout_remind",
    "receivers": ["assignee", "initiator", "admin"],
    "title": "【流程提醒】您有一条任务即将超时",
    "content": "流程名称:${processName},发起人:${initiatorName},请尽快处理"
  },
  "autoApprove": {
    "result": "approve",
    "opinion": "系统自动审批(超时)"
  },
  "autoTransfer": {
    "targetType": "role",
    "targetValue": "DEPT_LEADER",
    "reason": "审批超时,自动转交上级"
  },
  "httpCallback": {
    "url": "https://api.example.com/workflow/callback",
    "method": "POST",
    "headers": {"Authorization": "Bearer xxx"},
    "body": "{\"instanceId\": \"${instanceId}\", \"action\": \"timeout\"}"
  },
  "script": {
    "language": "groovy",
    "content": "def task = execution.getVariable('task'); ..."
  }
}

变量占位符说明

  • ${processName}:流程名称
  • ${initiatorName}:发起人姓名
  • ${instanceId}:流程实例 ID
  • ${taskName}:任务名称
  • ${assignee}:当前审批人
  • ${duration}:已耗时时长

六、跨模块联动

6.1 联动关系总览

本模块是工作流系统的"管理中枢",与多个模块存在紧密的数据和业务联动:

联动模块联动方式数据流向联动说明
流程设计(03-01)数据依赖03-01 → 本模块流程设计发布后生成本模块管理的流程定义
我的流程(03-03)视角互补双向03-03 是用户视角(看自己的),本模块是管理员视角(看所有的)
待办管理(03-04)功能互补双向03-04 侧重审批操作,本模块侧重管理干预
用户管理(01-01)数据依赖01-01 → 本模块流程发起人、审批人、转办目标人的信息来自用户管理
部门管理(01-02)数据依赖01-02 → 本模块部门统计数据、部门负责人(自动转交目标)来自部门管理
角色管理(01-03)数据依赖01-03 → 本模块监听器自动转交可按角色指定目标人
通知模块事件触发本模块 → 通知模块终止/转办/催办等操作触发通知发送
日志审计(01-08)数据输出本模块 → 01-08所有管理操作记录到操作日志
租户管理(01-07)数据隔离01-07 → 本模块多租户场景下流程数据按租户隔离
数据字典(01-06)数据依赖01-06 → 本模块流程分类、终止原因等使用字典数据

6.2 关键联动流程

流程发布 → 流程定义管理流程发布时序图

管理员终止流程 → 通知发起人终止流程通知时序图

6.3 数据一致性要求

一致性场景要求实现方式
流程定义挂起挂起后前端立即不能发起新实例状态变更同步到 Flowable 引擎
流程实例终止终止后任务状态同步更新为"已取消"事务保证实例和任务状态一致
任务转办转办后新处理人立即看到待办同步更新 bpm_task 和 bpm_task_assign
监控数据统计数据与实际数据偏差不超过 5 分钟Redis 缓存 + 定时刷新
监听器触发监听器执行结果影响任务状态事务保证监听器动作和状态变更一致

七、附录

7.1 名词解释

名词英文通俗解释
流程定义Process Definition已经发布上线的"流程模板",就像已经审批通过的"施工图纸"
流程实例Process Instance一条正在跑的具体流程,就像公路上跑的一辆车
流程任务Process Task流程走到某个节点时生成的待办事项,就像到达某个路口时的通行任务
挂起Suspend暂停流程运行,就像"临时封路"——路还在,但暂时不能通行
激活Activate恢复被挂起的流程,就像"解封道路"——恢复正常通行
终止Terminate强制结束流程,就像"取消这趟行程"——车直接回库,不再继续
转办Transfer把任务交给别人处理,就像"把快递转交给同事签收"
委派Delegate临时让别人代处理,分"临时委派"(代完还给你)和"永久委派"(直接给出去)
加签Add Sign在流程中增加额外审批人,就像"加一道审核关卡"
减签Reduce Sign在会签中减少审批人,就像"取消某个审核关卡"
催办Urge向审批人发送催促通知,就像"催快递小哥赶紧送货"
监听器Listener自动化规则——"当XX事件发生时,自动执行XX动作"
执行监听器Execution Listener监听流程执行路径上的事件,像"路口摄像头"
任务监听器Task Listener监听审批任务的生命周期事件,像"快递站传感器"
流程变量Process Variable流程运行过程中的数据,像"车辆载的货物信息"
超时状态Timeout Status任务是否超过了规定的处理时间,分"正常""即将超时""已超时"三级

7.2 权限标识

权限标识权限名称说明
bpm:definition:query查询流程定义查看流程定义列表和详情
bpm:definition:manage管理流程定义挂起/激活/删除流程定义
bpm:instance:query查询流程实例查看流程实例列表和详情
bpm:instance:terminate终止流程实例强制终止流程实例
bpm:instance:cancel取消流程实例取消流程实例
bpm:instance:suspend挂起流程实例挂起/恢复流程实例
bpm:instance:delete删除流程实例删除已结束的流程实例
bpm:task:query查询流程任务查看全局任务列表
bpm:task:transfer转办任务强制转办流程任务
bpm:task:delegate委派任务委派流程任务
bpm:task:add-sign加签加签操作
bpm:task:reduce-sign减签减签操作
bpm:task:urge催办催办任务处理人
bpm:monitor:query查询流程监控查看流程监控数据
bpm:monitor:export导出监控报表导出统计分析报表
bpm:listener:create创建监听器创建流程监听器
bpm:listener:update编辑监听器编辑监听器配置
bpm:listener:delete删除监听器删除流程监听器
bpm:listener:query查询监听器查看监听器列表和日志

7.3 错误码定义

错误码错误信息处理建议
BPM_DEF_001流程定义不存在检查流程定义 ID 是否正确
BPM_DEF_002流程定义有运行中实例,不能删除先终止所有运行中实例
BPM_DEF_003流程定义已经是目标状态无需重复操作
BPM_INS_001流程实例不存在检查实例 ID 是否正确
BPM_INS_002运行中的实例不能删除先终止实例再删除
BPM_INS_003已结束的实例不能终止只有运行中/已挂起的实例可以终止
BPM_INS_004终止原因不能为空填写终止原因
BPM_TASK_001任务不存在或已完成检查任务 ID 和状态
BPM_TASK_002转办目标人不能为空选择新的处理人
BPM_TASK_003转办原因不能为空填写转办原因
BPM_TASK_004批量操作超过上限(50条)减少选择的任务数量
BPM_TASK_005催办间隔不足 4 小时等待间隔时间后再催办
BPM_LIS_001监听器标识已存在更换唯一的监听器标识
BPM_LIS_002监听器执行超时检查动作配置或增加超时时间
BPM_LIS_003脚本执行异常检查 Groovy 脚本语法

7.4 接口汇总

本模块共涉及 57 个接口,分布在 5 个子模块中:

子模块接口数量接口前缀
流程定义管理10/api/bpm/definition/
流程实例管理15/api/bpm/instance/
流程监控12/api/bpm/monitor/
流程任务管理12/api/bpm/task/
流程监听配置13/api/bpm/listener/

八、修订记录

版本日期修订人修订内容
v1.02026-09-24PMForge 产品团队初稿创建
v2.02026-09-19PMForge 产品团队增强业务场景(命名用户)、验收标准、ASCII 页面原型、状态机图、监听器工作原理图、跨模块联动章节、名词解释(含通俗类比)、错误码定义

文档结束