从架构视角看节点级审批模块:意见与立场写到哪里、如何与分支条件衔接、签批与附件如何留痕,以及多端复用时前后端需要共享哪些配置契约。
审核组件(代码实体:节点审核配置实体 / 运行描述:审核附件对象,前端:WorkCheck.vue)是流程节点上内置的审批意见采集、展示与留痕模块。
它解决的问题不是「多一个文本框」,而是:
问题 | 组件给出的答案 |
|---|---|
意见写在哪里? | 写入流程轨迹表 ND{FlowNo}Track(ActionType=WorkCheck),与发送/退回等操作同模型 |
谁、何时、持何立场? | 轨迹记录操作人、时间、意见正文、FWCView 立场、签名图 |
历史怎么看? | 按节点配置聚合展示(表格 / 轨迹 / 时间轴) |
如何驱动分支? | 立场、会签通过率可直接作为方向条件(ConnDataFrom.WorkCheck / 会签通过率) |
与节点表单的职责边界:
节点表单 → 业务内容(金额、事由、明细……)
审核组件 → 审批行为(意见、立场、签批、审核附件、历史追溯)二者在待办页同页嵌入,配置绑定在 WF_Node 的 FWC 系列字段上(主键 NodeID,一对一)。
编号 | 需求项 | 字段 / 枚举 | 说明 | 优先级 |
|---|---|---|---|---|
R-01 | 组件启停与只读 | FWCSta:禁用 / 启用 / 只读 | 禁用不出现审核区;启用可填;只读仅看历史 | 必须 |
R-02 | 显示标签 | FWCLab | 审核区域标题,可改为「批示」「审阅意见」等 | 必须 |
R-03 | 组件形态 | FWCType:审核 / 日志 / 周报 / 月报 | 同一套存储与 UI 机制服务不同「按节点记录」场景 | 必须 |
R-04 | 展示工作模式 | FWCShowModel:审核组件 / 轨迹 / 轨迹时间轴 | 前端映射 normalMode / trackMode / trackTimeMode | 必须 |
R-05 | 时序 | FWCTimeModel:倒序 / 正序 | 控制历史意见排列方向 | 必须 |
R-06 | 默认意见 | FWCDefInfo | 意见框预填或空意见时兜底 | 必须 |
R-07 | 空意见填充策略 | FWCIsFullInfo | 未填写时是否按默认意见自动填充 | 应该 |
R-08 | 操作名词 | FWCOpLabel | 「审核 / 审阅 / 批示」等写入轨迹的操作名 | 应该 |
R-09 | 节点意见显示名 | FWCNodeName | 轨迹上该节点块的名称;空则用节点名 | 应该 |
R-10 | 意见保存规则 | FWCVer:一人一意见 / 保留历史 | 覆盖写入 vs 追加历史,影响审计粒度 | 必须 |
R-11 | 审核立场 | FWCView | 如「同意,不同意,酌情处理」;写入轨迹并可作方向条件 | 必须 |
R-12 | 签名方式 | SigantureEnabel:0~5 | 不签名 / 图片 / 写字板 / 电子签 / 盖章 / 签+章 | 必须 |
R-13 | 审核时间可改 | IsChangeFWCTime | 允许修改落款时间(代录、补录) | 应该 |
R-14 | 时间显示粒度 | TimeShowRole | 仅日期 / 日期时间 | 应该 |
R-15 | 签批字段回写 | CheckField | 关联表单签批控件(UIContralType=14),意见图回写业务字段 | 应该 |
R-16 | 审核附件 | FWCAth | 启用多附件时自动创建 ND{NodeID}_审核附件对象 | 应该 |
R-17 | 组件高度 | FWC_H | 0 表示 100% | 可选 |
R-18 | 审批格式字段 | FWCFields | 结构化扩展维度(与轨迹 Tag 联动) | 可选 |
编号 | 需求项 | 字段 | 说明 | 优先级 |
|---|---|---|---|---|
R-19 | 历史列表开关 | FWCListEnable | 否:仅意见框;是:展示历史 | 必须 |
R-20 | 轨迹图开关 | FWCTrackEnable | 是否显示轨迹图 | 应该 |
R-21 | 全步骤展示 | FWCIsShowAllStep | 轨迹表是否列出全部步骤 | 应该 |
R-22 | 未审核轨迹 | FWCIsShowTruck | 是否展示尚未审核人员/节点 | 应该 |
R-23 | 退回信息规则 | FWCIsShowReturnMsg | 不显示 / 退回相关节点 / 全部 | 必须 |
R-24 | 协作意见可见性 | FWCMsgShow | 都显示 / 仅显示自己的意见(盲审) | 必须 |
R-25 | 协作人排序 | FWCOrderModel | 按审批时间 / 按接受人列表(职级) | 必须 |
编号 | 需求项 | 实现锚点 | 说明 | 优先级 |
|---|---|---|---|---|
R-30 | 意见必填校验 | WorkNode.FormCheck | 节点 FWCSta=Enable 时,发送前校验 Track 中是否有非空审核意见 | 必须 |
R-31 | 意见写入轨迹 | Dev2Interface.Node_WriteWorkCheck | 写入/更新 ActionType.WorkCheck;含意见、立场、写字板图、时间 | 必须 |
R-32 | 抢办/共享模式去重 | 同上 | 抢办/共享时先删同节点他人意见再写,保证一节点一条有效记录 | 必须 |
R-33 | 会签名义标注 | 同上 | 会签中非主持人写入时,节点名追加「(会签)」 | 应该 |
R-34 | 立场驱动分支 | Cond + ConnDataFrom.WorkCheck | 方向条件匹配 @FWCView=立场值 | 必须 |
R-35 | 会签通过率分支 | ConnDataFrom.会签通过率 | 按 HuiQianAgreeRate 与阈值比较决定走向 | 必须 |
R-36 | 常用短语 | 前端 WorkCheckParse + 配置开关 | 快捷填入常用意见;支持维护短语 | 应该 |
R-37 | 审核标准查看 | 前端「审核标准」 | 展示节点审核标准说明(HTML) | 可选 |
R-38 | 批量审核意见 | BatchWorkCheckModel | 待办列表批量填写意见后发送/退回 | 应该 |
R-39 | 表单分组嵌入 | GroupField + GroupCtrlType.FWC | 启用时插入「审核组件」分组;禁用时删除 | 必须 |
R-40 | PC/移动同源 | WF / CCMobile / Toolkit | 共用后端契约与配置实体,多端渲染 | 必须 |
编号 | 需求项 | 存储位置 | 说明 |
|---|---|---|---|
R-50 | 意见正文 | Track.Msg | 审核文字 |
R-51 | 审核立场 | Track 参数 / FWCView | 驱动条件与界面回显 |
R-52 | 手写签名图 | Track.WriteDB | 写字板 / 电子签相关二进制或 Base64 |
R-53 | 审核附件 | 附件存储表,FK=ND{NodeID}_审核附件对象 | 随审附件 |
R-54 | 节点配置 | WF_Node FWC 字段族 | 设计态持久化,不另起配置表 |
R-55 | 子线程轨迹 | WorkCheck 按 WorkID/FID 联合查询 | 分合流场景下主子实例意见可聚合 |
FWCSta=0 禁用 → 不渲染审核区;保存配置时删除 FWC 分组
FWCSta=1 启用 → 当前可办理人可编辑意见;发送前可强制校验
FWCSta=2 只读 → 仅展示历史,不可写入模式 | 前端组件 | 适用场景 |
|---|---|---|
审核组件(表格逐条) | WorkCheckParse | 传统「按节点一条意见块」 |
轨迹模式 | WorkCheckParseTrack | 偏流程轨迹阅读 |
轨迹时间轴 | WorkCheckParseTrackTime | 时间线叙事,适合长流程 |
值 | 方式 | 运行时表现(摘自前端/后端) |
|---|---|---|
0 | 不签名 | 显示姓名文本 |
1 | 图片签名 | 加载人员签名图片 |
2 | 写字板 | 手写板弹窗,图写入 Track.WriteDB |
3 | 电子签名 | 对接第三方接口(预留位) |
4 | 电子盖章 | 对接第三方接口(预留位) |
5 | 电子签名+盖章 | 对接第三方接口(预留位) |
配置示例:FWCView = 同意,不同意,酌情处理
处理人选择「不同意」后,轨迹带 @FWCView=不同意;流向条件 ConnDataFrom.WorkCheck 据此成立与否。
会签场景另有通过率条件:计算 HuiQianAgreeRate,用大于/大于等于/小于/小于等于与阈值比较。
FWCIsShowReturnMsg 控制退回信息在审核区的可见范围。 本节说明「为什么这类组件构成差异化能力」,依据可核验的产品化程度,不做无法证实的市场断言。
国内审批待办的高频路径是:
打开待办 → 阅读业务表单 → 填写/选择审批意见(及立场)→ 签名或附件 → 发送或退回BPMN 标准引擎提供任务与变量,但**「节点级审核区 + 轨迹一体 + 立场驱分支 + 会签可见性」**通常需要项目二次拼装。该平台把该交互抽象为节点一等配置(节点审核配置实体),与自研引擎轨迹模型绑定。
维度 | 用普通表单字段实现 | 用审核组件实现(本仓库现状) |
|---|---|---|
数据归属 | 散落业务表/节点表 | Track 统一审计源 |
历史展示 | 字段随节点膨胀 | 按轨迹聚合,三种版式 |
分支驱动 | 表达式绑业务字段 | FWCView / 通过率原生条件类型 |
会签盲审、职级排序 | 定制开发 | FWCMsgShow / FWCOrderModel 配置 |
签名与审核附件 | 每项目对接 | 节点属性统一枚举 |
多端 | PC/移动各写一遍风险高 | 共用配置与 Handler 契约 |
要素 | 为何难短期补齐 | 代码/配置锚点 |
|---|---|---|
节点级一等组件 | 配置与 WF_Node、表单分组、运行态 UI、Handler 全链路打通 | 节点审核配置实体、GroupCtrlType.FWC、审核初始化入口 |
轨迹一体存储 | 意见与发送/退回/会签同属 Track 模型,报表与审计同源 | ActionType.WorkCheck、Node_WriteWorkCheck |
立场即条件 | 条件引擎内建 WorkCheck / 会签通过率 数据源 | Cond.cs、CondWorkCheckSelected、CondBy会签通过率 |
协作语义产品化 | 盲审、职级排序、未审展示、退回信息规则来自真实项目沉淀 | FWCMsgShow、FWCOrderModel、FWCIsShowTruck、FWCIsShowReturnMsg |
签批与表单回写 | 签批控件类型 + 节点 CheckField + 批量审核模型联动 | CheckField、UIContralType=14、BatchWorkCheckModel |
Entity+EnMap 自描述 | 设计器直接生成配置页,前后端契约一致(.NET / Vue3 / 可对照该引擎) | 节点审核配置实体.EnMap、节点审核配置实体.ts |
客观边界:
SigantureEnabel 3~5)依赖第三方对接,产品提供枚举与挂点,具体合规能力取决于集成实现。 角色 | 可落地效果 |
|---|---|
业务用户 | 待办页一次完成:看表、写意见、选立场、签名/附件、看历史 |
实施配置 | 节点属性勾选即可,多数场景无需为「审批区」单独开发页面 |
应用系统嵌入 | 中间件模式下业务系统只关心业务表单;审批语义由引擎组件承接 |
审计与合规 | 意见、立场、时间、签批图、附件可从轨迹统一追溯 |
设计态 运行态
───────── ─────────
WF_Node ◄── 节点审核配置实体 审核初始化入口 / Node_WriteWorkCheck
│ (EnMap 配置) │
│ ▼
└── FWC* 字段 ──────────► WorkCheck.vue
├─ WorkCheckParse
├─ WorkCheckParseTrack
└─ WorkCheckParseTrackTime
│
▼
ND{FlowNo}Track
(Msg / FWCView / WriteDB)
│
┌──────────────────┼──────────────────┐
▼ ▼ ▼
方向条件 Cond 发送前意见校验 历史/审计/报表验收项 | 通过标准 |
|---|---|
启停 | FWCSta=禁用 时待办无审核区;启用后可编辑 |
必填 | 启用且未写意见时发送被拦截并提示 |
历史 | 多节点处理后,三种展示模式均可看到历史意见 |
立场分支 | 配置「同意→节点A / 不同意→节点B」,选择后发送走向正确 |
盲审 | FWCMsgShow=仅自己 时看不到他人意见 |
附件 | 启用多附件后可上传下载,且附件挂在 审核附件对象 对象上 |
写字板 | 签名方式=写字板时,保存后轨迹可回显签名图 |
批量 | 批处理列表可统一填写意见并发送 |
审核组件是该平台自研引擎在节点上产品化的审批语义层:把「意见采集、立场表达、签批留痕、历史追溯、协作可见性、条件驱动」从项目定制收束为可配置能力,并与轨迹表、方向条件、会签通过率同一链路衔接——这是其在中国式审批场景中区别于「仅提供任务+变量」的工作流底座的关键能力面之一。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。