Files
shanxia2.0/openspec/changes/zkxw-engineering-standards/specs/workflow-conventions/spec.md
T
2026-05-30 14:03:11 +08:00

2.7 KiB

ADDED Requirements

Requirement: 工作流由后端 Python 实现

山峡化工的工作流引擎 SHALL 使用 Python 在后端实现为独立、可配置的审批/流程子系统,目标能力对标简易低代码流程(与《shanxia2.0需求 V0.3》§2.1.11 一致)。

Scenario: 技术栈检查

  • WHEN 引入流程执行、待办存储或节点调度代码
  • THEN 实现 SHALL 位于后端 Python 工程内,而非由前端独占承担流程状态机

Requirement: 图形化流程配置

系统 SHALL 支持以图形化方式配置流程,包含节点与连线;节点类型 SHALL 至少覆盖:开始、结束、审批人、条件分支(支持多分支)等(与需求 §2.1.11 列举一致,允许实现阶段扩展更多类型但不得破坏已发布定义)。

Scenario: 配置新流程

  • WHEN 管理员在「流程配置管理」中保存一条流程
  • THEN 持久化模型 SHALL 能还原节点、连线及版本信息以供运行时解释执行

Requirement: 流程变量

引擎 SHALL 支持系统内置流程变量(如申请人部门 id)与发起时注入的动态变量;条件分支 SHALL 能读取这些变量进行判断(与需求 §2.1.11)。

Scenario: 金额分支

  • WHEN 流程变量包含金额字段且条件配置为多个区间
  • THEN 运行时 SHALL 根据变量值选择对应分支出线

Requirement: 审批人解析策略

审批人节点 SHALL 支持:指定单个/多个用户、指定单个/多个角色、以及基于 SQL 结合流程变量解析审批人集合;同一节点 SHALL 支持配置「一人通过即通过」或「全部通过才通过」(与需求 §2.1.11)。

Scenario: SQL 模式解析主管

  • WHEN 节点配置为 SQL 模式且流程变量包含申请人部门 id
  • THEN 引擎 SHALL 在受控数据源上执行预定义查询逻辑并解析出审批人列表(具体 SQL 安全策略由专项设计补充)

Requirement: 流程版本

每条流程定义 SHALL 具备版本号;由旧版本发起的实例 SHALL 继续按发起时所绑定版本执行;新版本 SHALL 仅影响新发起的实例(与需求 §2.1.11)。

Scenario: 升级流程定义

  • WHEN 发布流程新版本
  • THEN 运行中旧实例 SHALL 不自动迁移到新版本节点布局,除非专项迁移工具与规范另有说明

Requirement: 办理中心

系统 SHALL 提供「待办中心」与「已办中心」,供业务用户在配置好的流程上处理任务(与需求 §2.1.11「流程办理中心」)。

Scenario: 审批人登录

  • WHEN 审批人登录门户
  • THEN 其 SHALL 能在待办中心看到待处理任务,处理后任务 SHALL 出现在已办中心且流程实例状态正确推进