31 lines
808 B
Markdown
31 lines
808 B
Markdown
# 非法状态流转反例
|
|
|
|
## 场景
|
|
|
|
已完成或已关闭的业务记录可以直接被改回处理中。
|
|
|
|
## 问题表现
|
|
|
|
| 当前状态 | 动作 | 结果 |
|
|
| --- | --- | --- |
|
|
| 已关闭 | 开始处理 | 状态变成处理中 |
|
|
|
|
## 风险
|
|
|
|
终态记录被重新打开但没有重开原因、没有审计、没有负责人确认,导致统计和责任链失真。
|
|
|
|
## 修复要求
|
|
|
|
1. Service 层集中校验状态流转。
|
|
2. 已完成或已关闭记录只能通过“重新打开”动作回到指定状态。
|
|
3. 重新打开必须填写原因。
|
|
4. 所有成功流转写审计日志。
|
|
|
|
## 验收
|
|
|
|
| 操作 | 预期 |
|
|
| --- | --- |
|
|
| closed -> processing | 失败,状态不变 |
|
|
| closed -> reopen -> new | 成功,必须有原因 |
|
|
| 重开成功 | 审计记录 oldValue=closed, newValue=new |
|