Files
TARE-Learn/slidev/pages/day4/m3-status-transition.md
smart 67837df8d0 docs: 更新TRA编程培训课程材料、课件与AI技能交付包
- 新增全套考试卷、评估卷、参考答案与考试培训包模板
- 修正slidev培训课件:调整模块标题、链路图缩放,替换工单示例为通用业务对象
- 修正课堂红线表述为证据红线,将小组作业调整为个人作业要求
- 新增权限、状态流转、审计日志、看板指标四类可复用业务规则块
- 整理AI工程技能交付包,迁移旧资产至客户专属交付包并统一术语
- 新增考试输出模板与TRAE使用记录文档
2026-08-08 11:00:36 +08:00

4.1 KiB

模块 3:工单状态流转规则实现

工单状态不能靠临时 if else。必须先设计状态机,再实现接口和校验。

created
已创建
→
processing
处理中
→
pending_verify
待验证
→
closed
已关闭
pending_verify → rejected → processing

状态流转表

当前状态 动作 目标状态 允许角色 前置条件 失败提示
created 指派 processing 管理员/负责人 必须选择指派人 请选择指派人
processing 提交验证 pending_verify 研发/负责人 必须填写处理说明 请填写处理说明
pending_verify 关闭 closed 测试/负责人 验证通过 当前工单不可关闭
pending_verify 驳回 rejected 测试/负责人 必须填写驳回原因 请填写驳回原因
rejected 重新处理 processing 研发/负责人 必须填写处理说明 请填写重新处理说明

非法流转清单

当前状态 尝试动作 系统响应 验收
closed 重新处理 返回非法状态流转 状态不变
created 关闭 返回非法状态流转 页面提示原因
processing 驳回 返回非法状态流转 状态不变
pending_verify 驳回但无原因 返回参数错误 提示填写原因
任意状态 无权限流转 返回权限拒绝 不完成操作

状态流转接口契约

POST /workOrder/assign
字段:id、assignee、remark

POST /workOrder/transition
字段:id、action、targetStatus、remark、version

验收:
合法流转成功;非法流转失败;状态不被错误修改;审计日志可查。

可直接复制到 rules:状态流转

## 复杂业务状态必须先建模
- 级别:硬约束
- 适用场景:工单指派、处理、验证、驳回、关闭、重开。
- 必须:先产出状态流转表,列出当前状态、动作、目标状态、允许角色、前置条件、后置动作和验收方式。
- 禁止:直接在代码中堆状态判断而没有状态表。
- 验收方式:每个状态动作都有合法路径和非法路径验证。

## 非法状态流转必须拒绝且状态不变
- 必须:集中校验非法流转;失败时返回明确错误,业务状态不变,不写成功审计。
- 禁止:仅靠前端禁用按钮防止非法流转。
- 验收方式:构造非法状态动作,接口失败且数据库状态不变。