feat(slidev): update 3 4

This commit is contained in:
smart
2026-07-03 00:26:47 +08:00
parent 2fd8fc1f66
commit 6baa4cd10e
47 changed files with 1185 additions and 382 deletions
@@ -2,7 +2,6 @@
| Review 编号 | 问题 | 是否成立 | 修改文件 | 修改说明 | 验证结果 | 资产沉淀 |
| --- | --- | --- | --- | --- | --- | --- |
| R01 | 删除接口缺少后端权限校验 | 是 | WorkOrderController | 增加权限校验 | 无权限请求被拒绝 | 权限检查清单 |
| R02 | closed 可重新处理 | 是 | WorkOrderService | 补非法流转校验 | closed -> processing 失败 | 状态流转检查清单 |
| R01 | 敏感操作接口缺少后端权限校验 | 是 | `<Controller/API handler>` | 增加权限校验和数据范围校验 | 无权限请求被拒绝 | 权限检查清单 |
| R02 | 终态记录可被直接改回处理中 | 是 | `<Service/Domain logic>` | 补非法流转校验 | terminal -> processing 失败 | 状态流转检查清单 |
| R03 | 看板关闭周期口径不清 | 是 | 指标字典/看板接口 | 明确 create_time 到 close_time | 指标说明已更新 | 看板指标口径清单 |
@@ -2,31 +2,30 @@
## 场景
工单指派负责人成功,但没有记录审计日志。
业务记录分配处理人成功,但没有记录审计日志。
## 问题表现
| 操作 | 结果 |
| --- | --- |
| 张三将工单指派给李四 | 工单负责人变更成功 |
| 查询审计日志 | 没有负责人变更记录 |
| 张三将记录分配给李四 | 处理人变更成功 |
| 查询审计日志 | 没有处理人变更记录 |
## 风险
无法追溯负责人变化,出现延误或争议时无法定位责任。
无法追溯处理人变化,出现延误或争议时无法定位责任。
## 修复要求
1. 指派成功后写审计日志。
2. 记录原负责人、新负责人、操作人、时间、来源。
3. 指派失败不写成功审计。
1. 分配成功后写审计日志。
2. 记录原处理人、新处理人、操作人、时间、来源。
3. 分配失败不写成功审计。
4. 多步写入需要事务一致性。
## 验收
| 操作 | 预期 |
| --- | --- |
| 指派成功 | 审计列表出现 ASSIGN 记录 |
| 指派失败 | 不出现成功审计 |
| 查询详情 | 审计记录可在工单详情查看 |
| 分配成功 | 审计列表出现 ASSIGN 或同等业务动作记录 |
| 分配失败 | 不出现成功审计 |
| 查询详情 | 审计记录可在详情页查看 |
@@ -2,19 +2,19 @@
## 场景
工单删除按钮在前端按权限隐藏,但后端删除接口没有权限校验。
敏感删除或作废按钮在前端按权限隐藏,但后端接口没有权限校验。
## 问题代码表现
| 层级 | 表现 |
| --- | --- |
| 前端 | 普通研发账号看不到删除按钮 |
| 后端 | 直接请求 `/workOrder/delete` 仍可删除 |
| 前端 | 普通业务账号看不到删除按钮 |
| 后端 | 直接请求删除或作废接口仍可成功 |
| 审计 | 删除记录可能缺失 |
## 风险
攻击者或误操作用户可以绕过前端直接调用接口删除工单。
攻击者或误操作用户可以绕过前端直接调用接口删除或作废业务数据。
## 修复要求
@@ -27,7 +27,6 @@
| 账号 | 操作 | 预期 |
| --- | --- | --- |
| 管理员 | 删除允许删除的工单 | 成功并写审计 |
| 普通研发 | 直接请求删除接口 | 失败 |
| 只读用户 | 前端访问删除按钮 | 不可见 |
| 管理员或授权角色 | 删除允许删除的数据 | 成功并写审计 |
| 普通业务角色 | 直接请求删除接口 | 失败 |
| 只读角色 | 前端访问删除按钮 | 不可见 |
@@ -2,22 +2,22 @@
## 场景
看板展示“平均关闭周期”,但没有说明从哪个时间到哪个时间。
看板展示“平均完成周期”,但没有说明从哪个时间到哪个时间。
## 问题表现
| 指标 | 当前说明 |
| --- | --- |
| 平均关闭周期 | 最近工单平均处理时间 |
| 平均完成周期 | 最近记录平均处理时间 |
## 风险
不同人理解不同:可能是创建到关闭,也可能是开始处理到关闭,导致管理判断失真。
不同人理解不同:可能是创建到完成,也可能是开始处理到完成,导致管理判断失真。
## 修复要求
1. 明确定义为 `close_time - create_time` 或其他确定口径。
2. 明确是否排除未关闭工单。
1. 明确定义为 `completed_at - created_at`、`closed_at - created_at` 或其他确定口径。
2. 明确是否排除未完成记录。
3. 明确时间范围过滤字段。
4. 用样例数据手工校验。
@@ -25,7 +25,6 @@
| 样例 | 预期 |
| --- | --- |
| 工单 A 创建 1 日、关闭 3 日 | 周期 2 天 |
| 未关闭工单 | 不计入平均关闭周期 |
| 记录 A 创建 1 日、完成 3 日 | 周期 2 天 |
| 未完成记录 | 不计入平均完成周期 |
| 过滤 7 月 | 只统计 7 月范围内符合口径的数据 |
@@ -2,7 +2,7 @@
## 场景
已关闭工单可以直接被改回处理中。
已完成或已关闭的业务记录可以直接被改回处理中。
## 问题表现
@@ -12,12 +12,12 @@
## 风险
已关闭工单被重新打开但没有重开原因、没有审计、没有负责人确认,导致统计和责任链失真。
终态记录被重新打开但没有重开原因、没有审计、没有负责人确认,导致统计和责任链失真。
## 修复要求
1. Service 层集中校验状态流转。
2. 已关闭工单只能通过“重新打开”动作变为新建。
2. 已完成或已关闭记录只能通过“重新打开”动作回到指定状态。
3. 重新打开必须填写原因。
4. 所有成功流转写审计日志。
@@ -28,4 +28,3 @@
| closed -> processing | 失败,状态不变 |
| closed -> reopen -> new | 成功,必须有原因 |
| 重开成功 | 审计记录 oldValue=closed, newValue=new |