feat:update 3 4

This commit is contained in:
smart
2026-07-02 10:04:32 +08:00
parent 604e7e68d7
commit 2fd8fc1f66
224 changed files with 12369 additions and 9 deletions
@@ -0,0 +1,16 @@
# 工单 RBAC 权限矩阵
| 功能点 | 管理员 | 工单负责人 | 研发处理人 | 测试验证人 | 只读观察者 | 权限字符建议 | 备注 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 查看列表 | 允许 | 条件允许 | 条件允许 | 条件允许 | 条件允许 | work:order:list | 按数据范围 |
| 查看详情 | 允许 | 条件允许 | 条件允许 | 条件允许 | 条件允许 | work:order:query | 仅可见范围 |
| 新建工单 | 允许 | 允许 | 允许 | 允许 | 拒绝 | work:order:add | |
| 编辑工单 | 允许 | 条件允许 | 条件允许 | 拒绝 | 拒绝 | work:order:edit | 状态限制 |
| 指派负责人 | 允许 | 条件允许 | 拒绝 | 拒绝 | 拒绝 | work:order:assign | |
| 状态流转 | 允许 | 条件允许 | 条件允许 | 条件允许 | 拒绝 | work:order:transition | 按状态 |
| 关闭工单 | 允许 | 条件允许 | 拒绝 | 条件允许 | 拒绝 | work:order:close | 测试验证后 |
| 删除工单 | 允许 | 拒绝 | 拒绝 | 拒绝 | 拒绝 | work:order:delete | 高危操作 |
| 查看审计日志 | 允许 | 条件允许 | 条件允许 | 条件允许 | 拒绝 | work:order:audit | |
| 查看看板 | 允许 | 允许 | 条件允许 | 条件允许 | 条件允许 | work:order:dashboard | 按数据范围 |
| 导出数据 | 允许 | 条件允许 | 拒绝 | 拒绝 | 拒绝 | work:order:export | |
@@ -0,0 +1,25 @@
# RBAC 权限矩阵生成 Prompt
```text
请基于 JeecgBoot 工单模块设计 RBAC 权限矩阵。
输入材料:
- 工单模块需求:<粘贴需求>
- 角色列表:管理员、工单负责人、研发处理人、测试验证人、只读观察者
- 功能点:查看列表、查看详情、新建、编辑、指派、状态流转、关闭、删除、查看审计、查看看板、导出
- 项目依据:<粘贴权限、路由、菜单相关路径>
输出要求:
1. 先列事实依据:JeecgBoot 权限、菜单、动态路由相关路径。
2. 输出 RBAC 权限矩阵:角色 x 功能点,允许、拒绝、条件允许。
3. 输出权限字符建议,必须标注为建议。
4. 输出页面级、按钮级、接口级、数据范围四层控制。
5. 输出不确定点:哪些权限必须业务方确认。
6. 输出验收方式:如何证明权限确实生效。
约束:
- 不要直接改代码。
- 不要把前端按钮隐藏当作安全边界。
- 所有结论必须区分事实、推断、建议。
```
@@ -0,0 +1,40 @@
# 工单审计日志 SOP
## 记录原则
所有会改变工单关键业务状态、负责人、可见性或结论的动作都必须记录审计日志。
## 审计字段
| 字段 | 含义 | 示例 |
| --- | --- | --- |
| ticket_id | 工单 ID | WO-001 |
| actor_id | 操作人 ID | 1001 |
| actor_name | 操作人名称 | zhangsan |
| action | 操作类型 | ASSIGN |
| field_name | 变更字段 | assignee |
| old_value | 旧值 | lisi |
| new_value | 新值 | wangwu |
| source | 来源 | web |
| request_id | 请求 ID | req-001 |
| created_at | 操作时间 | 2026-07-01 10:00:00 |
## 必须记录的动作
| 动作 | 写入时机 | oldValue | newValue | 验收 |
| --- | --- | --- | --- | --- |
| 创建工单 | 创建成功后 | 空 | 工单摘要 | 审计列表可见 |
| 编辑字段 | 保存成功后 | 修改前字段 | 修改后字段 | 字段前后值正确 |
| 指派负责人 | 指派成功后 | 原负责人 | 新负责人 | 审计记录负责人变化 |
| 状态流转 | 状态变更成功后 | 原状态 | 新状态 | 审计记录状态变化 |
| 评论新增 | 评论保存后 | 空 | 评论摘要 | 审计记录评论动作 |
| 关闭工单 | 关闭成功后 | 原状态 | 已关闭 | 审计记录关闭时间 |
## 验收方式
1. 执行关键操作后能在审计列表查询到记录。
2. oldValue/newValue 和实际变更一致。
3. 敏感字段已脱敏。
4. 操作失败不写成功审计。
5. 多步写入失败时审计和业务数据保持一致。
@@ -0,0 +1,13 @@
# 审计日志检查清单
| 检查项 | 通过标准 | 结果 |
| --- | --- | --- |
| 创建记录 | 创建工单后能查询审计记录 | |
| 字段变更 | 编辑关键字段记录 oldValue/newValue | |
| 指派记录 | 指派负责人记录原负责人和新负责人 | |
| 状态记录 | 状态流转记录原状态和新状态 | |
| 操作人 | actor_id 和 actor_name 可追溯 | |
| 来源 | source 或 request_id 可追溯 | |
| 脱敏 | 敏感字段不明文进入审计 | |
| 失败处理 | 操作失败不写成功审计 | |
@@ -0,0 +1,13 @@
# 异常态检查清单
| 异常态 | 必须验证 | 结果 |
| --- | --- | --- |
| 空列表 | 页面显示空状态,不报错 | |
| 详情不存在 | 提示工单不存在,页面不崩溃 | |
| 权限不足 | 前端提示或隐藏,后端拒绝 | |
| 非法状态 | 返回非法流转,状态不变 | |
| 重复提交 | 只成功一次,只写一条有效审计 | |
| 参数缺失 | 返回参数错误,业务数据不变 | |
| 并发修改 | 拒绝覆盖或提示刷新 | |
| 看板无数据 | 图表显示空态,不显示假数据 | |
@@ -0,0 +1,13 @@
# 工单异常态清单
| 场景 | 触发条件 | 前端表现 | 后端响应 | 验收 |
| --- | --- | --- | --- | --- |
| 权限不足 | 无权限操作 | 按钮不可见或提示无权限 | 403 或业务拒绝 | 不完成操作 |
| 工单不存在 | 传入错误 ID | 显示不存在 | 404 或业务错误 | 页面不崩溃 |
| 非法状态流转 | closed -> processing | 提示非法流转 | 状态不变 | 数据状态不变 |
| 重复提交 | 连续点击提交 | 按钮 loading/禁用 | 只处理一次 | 只生成一条有效审计 |
| 参数缺失 | 驳回缺少原因 | 表单校验提示 | 参数错误 | 不改变状态 |
| 并发修改 | 数据版本过期 | 提示刷新 | 拒绝覆盖 | 旧数据不覆盖新数据 |
| 看板无数据 | 无匹配记录 | 空状态 | 返回空集合 | 页面不报错 |
| 审计日志为空 | 无审计记录 | 空状态 | 返回空集合 | 页面不报错 |
@@ -0,0 +1,24 @@
# 异常态补齐 Prompt
```text
请基于 JeecgBoot 工单模块,列出状态流转、指派、删除、查询详情、审计日志、看板相关的异常态和防御性逻辑。
输出表格:
场景 | 触发条件 | 前端表现 | 后端响应 | 用户提示 | 测试点 | 验收
必须覆盖:
- 权限不足
- 工单不存在
- 非法状态流转
- 重复提交
- 参数缺失
- 并发修改
- 看板无数据
- 审计日志为空
约束:
- 先列异常态,不要直接改代码。
- 给出每个异常态的验收步骤。
- 标注事实、推断、建议和不确定点。
```
@@ -0,0 +1,12 @@
# 权限上线前检查清单
| 检查项 | 通过标准 | 结果 |
| --- | --- | --- |
| 菜单权限 | 工单菜单只对授权角色可见 | |
| 按钮权限 | 新增、编辑、删除、指派、状态按钮按权限显示 | |
| 接口权限 | 无权限账号直接请求敏感接口失败 | |
| 数据权限 | 普通用户只能看到授权范围内工单 | |
| 权限字符 | 前端按钮、菜单配置、后端接口命名一致 | |
| 审计 | 权限敏感操作成功后有审计记录 | |
| 反例验证 | 无权限账号不能绕过前端执行删除/指派 | |
@@ -0,0 +1,12 @@
# 工单权限控制方案
| 操作 | 前端入口 | 权限字符 | 后端接口 | 后端校验 | 数据权限 | 验收 |
| --- | --- | --- | --- | --- | --- | --- |
| 新增工单 | 新增按钮 | work:order:add | /workOrder/add | 权限注解 | 无 | 无权限账号看不到按钮且直接请求失败 |
| 编辑工单 | 编辑按钮 | work:order:edit | /workOrder/edit | 权限注解 + 状态校验 | 负责人/创建人范围 | 越权账号返回 403 或业务拒绝 |
| 指派负责人 | 指派按钮 | work:order:assign | /workOrder/assign | 权限注解 | 管理员/负责人范围 | 普通研发无法指派他人 |
| 状态流转 | 状态按钮 | work:order:transition | /workOrder/transition | 权限注解 + 状态机校验 | 相关工单范围 | 非法流转失败 |
| 删除工单 | 删除按钮 | work:order:delete | /workOrder/delete | 权限注解 | 管理员范围 | 非管理员返回 403 |
| 查看审计 | 审计页签 | work:order:audit | /workOrder/audit/list | 权限注解 | 相关工单范围 | 无权限不可见且接口拒绝 |
| 看板 | 看板菜单 | work:order:dashboard | /workOrder/dashboard | 权限注解 | 数据范围过滤 | 不同角色数据范围不同 |
@@ -0,0 +1,24 @@
# 权限控制方案生成 Prompt
```text
请基于工单模块 RBAC 权限矩阵,生成 JeecgBoot 权限控制方案。
输入材料:
- RBAC 权限矩阵:<粘贴>
- 接口契约表:<粘贴>
- 当前项目权限相关路径:<粘贴>
- 当前 rules:<粘贴>
输出要求:
1. 权限控制方案表,列为:操作、前端入口、权限字符、后端接口、后端校验、数据权限、验收。
2. 影响范围:前端页面、API 文件、后端 Controller、Service、菜单配置、数据权限。
3. 缺失风险:按钮隐藏、接口未校验、数据范围不清、权限字符不一致。
4. 无权限访问验收步骤。
5. 不确定点和需要人工确认的权限边界。
约束:
- 不要直接改代码。
- 后端接口权限必须单独说明。
- 每个敏感操作必须有验收方式。
```
@@ -0,0 +1,12 @@
# 状态流转检查清单
| 检查项 | 通过标准 | 结果 |
| --- | --- | --- |
| 状态枚举 | 所有状态有统一枚举或字典 | |
| 合法流转 | 状态流转表中的合法路径可执行 | |
| 非法流转 | 非法路径被拒绝且状态不变 | |
| 角色限制 | 不同角色只能执行被授权动作 | |
| 前置条件 | 驳回原因、关闭条件、负责人等校验完整 | |
| 审计日志 | 每次成功流转写审计 | |
| 重复提交 | 重复点击不会产生重复有效流转 | |
@@ -0,0 +1,22 @@
# 工单状态流转表
| 当前状态 | 动作 | 目标状态 | 允许角色 | 前置条件 | 后置动作 | 验收 |
| --- | --- | --- | --- | --- | --- | --- |
| 新建 | 指派 | 新建 | 管理员/负责人 | 工单未关闭 | 写审计日志 | 指派人变化且状态不变 |
| 新建 | 开始处理 | 处理中 | 研发处理人/负责人 | 已指派处理人 | 写审计日志 | 状态变为处理中 |
| 处理中 | 提交验证 | 待验证 | 研发处理人/负责人 | 处理说明不为空 | 写审计日志 | 状态变为待验证 |
| 待验证 | 验证通过 | 已关闭 | 测试验证人/负责人 | 验证结果通过 | 写审计日志和关闭时间 | 状态变为已关闭 |
| 待验证 | 验证驳回 | 已驳回 | 测试验证人/负责人 | 驳回原因不为空 | 写审计日志 | 状态变为已驳回 |
| 已驳回 | 重新处理 | 处理中 | 研发处理人/负责人 | 驳回原因已读 | 写审计日志 | 状态变为处理中 |
| 已关闭 | 重新打开 | 新建 | 管理员 | 重开原因不为空 | 写审计日志 | 状态变为新建 |
## 非法流转清单
| 当前状态 | 尝试动作 | 问题 | 系统响应 | 验收 |
| --- | --- | --- | --- | --- |
| 已关闭 | 开始处理 | 关闭后不能直接处理 | 返回非法流转 | 状态不变 |
| 新建 | 验证通过 | 未处理不能验证 | 返回非法流转 | 状态不变 |
| 待验证 | 提交验证 | 重复提交验证 | 返回非法流转 | 只保留原状态 |
| 处理中 | 验证通过 | 未进入待验证 | 返回非法流转 | 状态不变 |
| 已驳回 | 关闭 | 驳回后不能直接关闭 | 返回非法流转 | 状态不变 |
@@ -0,0 +1,34 @@
# 状态流转设计 Prompt
```text
请为 JeecgBoot 工单模块设计状态流转规则。
状态候选:
- 新建
- 处理中
- 待验证
- 已关闭
- 已驳回
动作候选:
- 指派
- 开始处理
- 提交验证
- 验证通过
- 验证驳回
- 关闭
- 重新打开
输出要求:
1. 状态流转表:当前状态、动作、目标状态、允许角色、前置条件、后置动作、验收。
2. 非法流转清单:当前状态、尝试动作、问题、系统响应、验收。
3. 接口设计建议。
4. 测试点清单。
5. 不确定点。
约束:
- 先出状态表,不要直接写 if else。
- 已关闭、越权、缺少说明、重复提交必须覆盖。
- 每条规则必须有验收方式。
```
@@ -0,0 +1,13 @@
# 看板指标口径检查清单
| 检查项 | 通过标准 | 结果 |
| --- | --- | --- |
| 指标含义 | 每个指标有业务解释 | |
| 计算口径 | 每个指标有公式或筛选条件 | |
| 时间范围 | 明确按创建时间、关闭时间还是更新时间统计 | |
| 数据范围 | 不同角色的数据范围清楚 | |
| 空数据 | 空数据展示为 0 或空态,不误导 | |
| 分组一致性 | 分组总和能和总数对齐 | |
| 权限 | 无看板权限不能访问接口 | |
| 验收证据 | 至少有一组样例数据手工校验 | |
@@ -0,0 +1,13 @@
# 工单看板指标字典
| 指标 | 含义 | 口径 | 数据来源 | 展示方式 | 权限 | 验收 |
| --- | --- | --- | --- | --- | --- | --- |
| 工单总数 | 当前筛选范围内工单数量 | count(ticket_id) | 工单表 | 指标卡 | 看板权限 | 与列表同条件数量一致 |
| 未关闭工单数 | 状态不是已关闭的数量 | status != closed | 工单表 | 指标卡 | 看板权限 | 过滤状态验证 |
| 平均关闭周期 | 从创建到关闭平均耗时 | avg(close_time - create_time) | 工单表 | 指标卡/趋势 | 看板权限 | 抽样计算一致 |
| 按优先级分布 | 高中低优先级数量 | group by priority | 工单表/字典 | 饼图/柱状图 | 看板权限 | 分组总和等于总数 |
| 按类型分布 | 缺陷/需求/支持数量 | group by type | 工单表/字典 | 柱状图 | 看板权限 | 分组总和等于总数 |
| 缺陷趋势 | 按日期统计缺陷工单 | type=bug group by date | 工单表 | 折线图 | 看板权限 | 日期范围正确 |
| 逾期工单数 | 超过 SLA 未关闭数量 | due_time < now and status != closed | 工单表 | 指标卡 | 看板权限 | SLA 口径明确 |
| 人员处理负载 | 按负责人统计未关闭数量 | group by assignee | 工单表 | 排行榜 | 管理员/负责人 | 数据范围正确 |
@@ -0,0 +1,28 @@
# 看板指标设计 Prompt
```text
请为 JeecgBoot 工单模块设计研发效能看板指标。
指标方向:
- 工单总数
- 未关闭工单数
- 平均关闭周期
- 按优先级分布
- 按类型分布
- 缺陷趋势
- 逾期工单数
- 人员处理负载
输出要求:
1. 指标字典:指标名、含义、口径、维度、过滤条件、数据来源、展示方式、权限。
2. 看板统计接口契约建议。
3. 空态、错误态、无权限态。
4. 验收方式。
5. 不确定点。
约束:
- 每个指标必须可计算。
- 不要只写页面 UI。
- 指标口径不清必须写入不确定点。
```
@@ -0,0 +1,27 @@
# 看板接口验收 Prompt
```text
请为 JeecgBoot 工单看板统计接口生成验收记录。
输入材料:
- 看板指标字典:<粘贴>
- 看板接口契约:<粘贴>
- 权限矩阵:<粘贴>
输出表格:
验收项 | 账号/条件 | 请求参数 | 预期 | 实际 | 证据 | 结论
必须覆盖:
- 有数据
- 空数据
- 无权限
- 过滤条件
- 指标口径
- 时间范围
- 数据范围
约束:
- 不要只说“接口正常”。
- 每个指标至少有一个验收动作。
```
@@ -0,0 +1,12 @@
# 看板接口验收清单
| 验收项 | 请求条件 | 通过标准 | 结果 |
| --- | --- | --- | --- |
| 默认查询 | 管理员默认条件 | 返回完整指标 | |
| 时间过滤 | 指定 start/end | 只统计时间范围内数据 | |
| 类型过滤 | 指定工单类型 | 只统计对应类型 | |
| 空数据 | 无匹配条件 | 返回 0 或空集合 | |
| 无权限 | 未授权账号 | 返回 403 或业务拒绝 | |
| 数据范围 | 普通角色 | 只返回授权范围 | |
| 指标一致性 | 固定样例数据 | 与手工计算一致 | |
@@ -0,0 +1,11 @@
# 工单看板接口验收记录
| 验收项 | 账号/条件 | 请求参数 | 预期 | 实际 | 证据 | 结论 |
| --- | --- | --- | --- | --- | --- | --- |
| 工单总数 | 管理员 | 默认筛选 | 返回总数 | | | |
| 空数据 | 管理员 + 无匹配条件 | 不存在的日期范围 | 返回空集合或 0 | | | |
| 无权限 | 只读外角色 | 默认筛选 | 返回 403 或业务拒绝 | | | |
| 时间过滤 | 管理员 | start/end | 只统计范围内数据 | | | |
| 数据范围 | 普通研发 | 默认筛选 | 只返回本人相关数据 | | | |
| 指标口径 | 管理员 | 固定样例数据 | 与手工计算一致 | | | |