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