feat: add versioned form and process routing
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# 表单版本与流程选择
|
||||
|
||||
## 发布模型
|
||||
|
||||
表单定义以 `tenant + formKey + version` 唯一标识,状态为 `DRAFT`、`PUBLISHED` 或 `RETIRED`。同一租户同一表单只能有一个已发布版本。
|
||||
|
||||
流程绑定将以下条件映射到 Flowable Process Definition Key:
|
||||
|
||||
- 业务类型
|
||||
- 表单 Key 和版本
|
||||
- 可选业务枚举,例如请假类型
|
||||
- 可选最小时长和最大时长
|
||||
- 优先级
|
||||
- ACTIVE / INACTIVE 状态
|
||||
|
||||
## 运行时选择
|
||||
|
||||
Flutter 只能提交业务表单数据,不能提交流程定义 ID。Kotlin 后端按当前租户和权威业务数据查询绑定:
|
||||
|
||||
1. 只选择 ACTIVE 绑定。
|
||||
2. 业务类型必须精确匹配。
|
||||
3. 枚举和时长条件必须满足。
|
||||
4. 优先级高的规则优先。
|
||||
5. 精确枚举或范围规则优先于通配规则。
|
||||
6. 无匹配绑定时拒绝提交,不启动默认或任意流程。
|
||||
|
||||
流程启动后保存实际 `processDefinitionId`,运行中实例不会因之后修改绑定而切换版本。
|
||||
|
||||
## 安全边界
|
||||
|
||||
- 只有 OA 管理员拥有 `PROCESS_CONFIGURATION_MANAGE_TENANT`。
|
||||
- 新表单版本先进入草稿,发布前执行 Schema 结构校验。
|
||||
- 绑定只能引用数据库中存在的表单版本和 Flowable 已部署流程 Key。
|
||||
- 创建、发布、启停均写入审计。
|
||||
@@ -55,6 +55,7 @@
|
||||
- [x] 流程定义、版本和运行实例只读管理
|
||||
- [x] Flutter 管理工具入口与权限驱动展示
|
||||
- [x] 业务与推送运行指标仪表板
|
||||
- [x] 表单版本发布、业务流程绑定与服务端路由选择
|
||||
|
||||
## Definition of Done
|
||||
|
||||
|
||||
Reference in New Issue
Block a user