G1-G5 同步正式审批组织与移动交互规约
这个提交包含在:
+5
-1
@@ -15,6 +15,10 @@
|
||||
2. 首批主路径优先保留:`Portal`、`审批待办`、`报销`、`票据/OCR`、`请假`、`项目`、`采购/费用`、`合同/附件`。
|
||||
3. `团队状态`、`周报`、`待办`、`公告`、`人员`、`资产` 可按真实试运行需要开启;`预算`、`支付批次`、`AP 运营`、`ERP`、`AI`、完整差旅能力默认作为管理员备用或历史能力,不作为当前 MVP 首批主线。
|
||||
4. 在 `用户管理` 中按推荐预设配置:老板 / 管理员 / 主管 / 员工。
|
||||
- 正式审批组织口径:`majianyong` 配置为员工可见直属主管和 `manager`;`wangshunli` 配置为后台公司负责人 `ceo + admin`,不配置为普通 `manager`。
|
||||
- 普通员工和专用测试员工的直属主管配置为 `majianyong`;`majianyong` 的直属领导配置为 `wangshunli`。
|
||||
- `admin` 只代表系统管理权限,不代表业务审批权;需要业务审批时必须配置 `manager`、`ceo`、`finance`、`hr` 等正式业务角色。
|
||||
- 缺直属主管、主管停用、主管链断裂或审批节点解析到申请人本人时,应先修正组织或审批规则,不要用管理员账号代批。
|
||||
5. 检查功能开关:
|
||||
- 建议开启:`portal_home_v1`、企业微信入口相关开关、报销/OCR、审批待办、请假和项目基础能力。
|
||||
- 按需开启:`announcements_v1`、`presence_board_v1`、`weekly_report_v1`、`employee_lifecycle_v1`、`todo_board_v1`、`global_search_v1`。
|
||||
@@ -163,7 +167,7 @@
|
||||
3. 若启用企业微信入口,补齐:`WECOM_*` 与 `WECOM_ALLOWED_RETURN_HOSTS`。
|
||||
4. 将 `OPENAPI_DOCS_ENABLED` 保持为 `false`,不要在公网生产暴露文档入口。
|
||||
5. 定期检查审计日志中的登录失败、Refresh 来源不匹配与涉密资料查看记录。
|
||||
6. 准备独立 smoke 账号,不使用老板、管理员或真实员工账号跑自动化。
|
||||
6. 准备独立 smoke 账号,不使用老板、管理员或真实员工日常账号跑自动化;smoke 账号的角色和直属上级应按正式审批链配置。
|
||||
7. 每次正式发布前记录备份文件名、恢复负责人和上个可回滚 tag。
|
||||
|
||||
## 17. 网页自动化门禁(R28/R30)
|
||||
|
||||
@@ -42,17 +42,19 @@
|
||||
|
||||
### L-4 `leave.approve` vs `leave.manage`
|
||||
- `leave.approve`:仅表示"处理分配给自己的审批任务",不赋予查看全量的权利
|
||||
- `leave.manage`:HR/管理员运营权限,包括查看全量、人工纠偏/取消、余额与规则维护
|
||||
- `leave.manage`:HR/行政运营权限,包括查看全量、人工纠偏/取消、余额与规则维护
|
||||
- `leave.manage` 不允许静默改写历史申请内容(需留审计痕迹)
|
||||
|
||||
---
|
||||
|
||||
## 审批流 / 工作流
|
||||
|
||||
### W-1 无直接经理时的升级规则
|
||||
- 无直接经理 → 升级给 `CEO`
|
||||
- `CEO` 也不可用 → 明确报错"未配置可审批人",阻断提交
|
||||
- 不自动通过,不静默跳过
|
||||
### W-1 无直接经理时的阻断规则
|
||||
- 正式员工必须配置直属主管;缺直属主管属于组织主数据错误。
|
||||
- 缺直属主管、主管停用、主管链断裂或审批节点解析为申请人本人时,提交必须阻断并提示"未配置可审批人"或"当前审批规则未找到审批人"。
|
||||
- 只有审批规则显式配置老板/总经理或兜底审批节点,且目标不是申请人本人时,才进入 `CEO` 或其他非本人兜底审批人。
|
||||
- 不自动通过,不静默跳过,不用无条件升级 `CEO` 掩盖组织配置问题。
|
||||
- 当前正式运行口径:`majianyong` 是员工可见直属主管;`wangshunli` 是 `ceo + admin`,不配置为普通 `manager`;`admin` 不代表业务审批权。
|
||||
|
||||
### W-2 转审适用范围
|
||||
- 转审是通用审批能力,支持:报销、请假、采购、差旅
|
||||
|
||||
@@ -72,9 +72,12 @@ OA 页面应参考公司主页 `www.hyinda.com` 的视觉气质,但不能做
|
||||
|
||||
- 手机端默认隐藏 PC 侧边栏和顶栏,使用移动首页、底部导航和轻量卡片。
|
||||
- 菜单不应占用大量空间;常用入口放底部导航,更多入口放“我的”。
|
||||
- 移动底部导航固定为“首页、审批、报销、我的”;票据上传作为首页快捷入口和报销页内操作,不作为底部一级 Tab。
|
||||
- 报销详情、审批详情等深层 Push 页隐藏底部导航,使用顶部返回和上下文吸底操作,避免底部 Tab 在深层页面假选中。
|
||||
- 列表使用卡片,不直接显示桌面表格。
|
||||
- 表单字段纵向排列,按钮宽度稳定,首屏优先完成“新建/继续编辑/提交”。
|
||||
- 企业微信入口应尽量免登录;绑定失败或权限不足时显示明确下一步,而不是让用户反复登录。
|
||||
- 头像 fallback 遵循国内中文习惯:中文/CJK 姓名默认取首个可见字符,英文或拼音姓名保留两段首字母。
|
||||
|
||||
## 报销专项规则
|
||||
|
||||
|
||||
@@ -61,10 +61,17 @@
|
||||
|
||||
## 审批与通知
|
||||
|
||||
- 正式审批口径:`majianyong` 是员工可见的直属主管;`wangshunli` 是后台公司负责人,配置为 `ceo + admin`,不配置为普通 `manager`。
|
||||
- 专用员工提交的普通低/中额单据应由 `majianyong` 审批;高额、高风险或例外单据按规则进入 `wangshunli` 二审。
|
||||
- `majianyong` 本人提交的单据应由 `wangshunli` 审批。
|
||||
- `wangshunli` 本人提交的单据不得由自己审批;若触发本人审批节点,应阻断或改派给明确的非本人兜底审批人。
|
||||
- 正式审批口径:`majianyong` 是员工可见的直属主管;`wangshunli` 是后台公司负责人,配置为 `ceo + admin`,不配置为普通 `manager`;`admin` 不代表业务审批权。
|
||||
- 正式审批链验收矩阵:
|
||||
|
||||
| 验收项 | 账号角色 | 直属上级 | 提交人 | 期望审批人 | 结果 | 截图或录屏位置 |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| 普通低/中额单据 | 专用员工 | `majianyong` | 专用员工 | `majianyong` | | |
|
||||
| 高额/高风险/例外单据 | 专用员工 | `majianyong` | 专用员工 | `majianyong -> wangshunli` | | |
|
||||
| 主管本人申请 | `majianyong` / `manager` | `wangshunli` | `majianyong` | `wangshunli` | | |
|
||||
| 公司负责人本人申请 | `wangshunli` / `ceo + admin` | 按正式配置 | `wangshunli` | 阻断或非本人兜底审批人 | | |
|
||||
| 系统管理员无业务审批权 | 仅 `admin` | 按正式配置 | 任意测试单据 | 不允许仅凭 `admin` 审批 | | |
|
||||
|
||||
- 经理账号可在移动端看到审批待办。
|
||||
- 审批详情可查看申请摘要、附件、发票、审批记录。
|
||||
- 通过、驳回、退回等操作有确认和结果反馈。
|
||||
|
||||
+2
-1
@@ -39,7 +39,7 @@
|
||||
| 审批人 | 查看待办、查看发票和附件摘要、通过、驳回、退回、转审 | 只能处理分配给自己的 OA 审批任务 |
|
||||
| 财务 | 查看审批通过的报销、复核发票、处理重复例外、标记付款、导出 | 不默认拥有系统管理权限;例外动作必须审计 |
|
||||
| 财务主管 | 审核高风险或大额报销、审批重复例外、复核付款批次 | 权限应通过角色配置,不硬编码到个人 |
|
||||
| 管理员 | 维护费用类型、项目、部门、OCR 配置、权限和基础字典 | 不能绕过流程直接替员工完成正式审批 |
|
||||
| 管理员 | 维护费用类型、项目、部门、OCR 配置、权限和基础字典 | `admin` 不代表业务审批权,不能绕过流程直接替员工完成正式审批 |
|
||||
|
||||
### 2.2 入口
|
||||
|
||||
@@ -288,6 +288,7 @@
|
||||
|
||||
- 报销提交后进入 OA 统一审批中心。
|
||||
- 审批动作包括通过、驳回、退回、撤回、转审和查看历史,规则以 [需求 - 统一审批中心规约](./需求-统一审批中心规约.md) 为准。
|
||||
- 报销审批链、直属主管、老板/总经理、自审禁止、`manager`、`ceo`、`admin` 的角色口径,以统一审批中心规约为准;本规约不重复维护第二套审批事实源。
|
||||
- 企业微信消息只包含脱敏标题、报销单号、状态和 OA deeplink。
|
||||
- 消息中不得包含完整发票图片、合同正文、银行卡、身份证、敏感报价或大段说明。
|
||||
- 企业微信通知失败不阻断报销提交、审批或付款标记。
|
||||
|
||||
+43
-13
@@ -1,7 +1,7 @@
|
||||
# 需求 - 统一审批中心规约
|
||||
|
||||
**版本**:1.0
|
||||
**日期**:2026-05-09
|
||||
**版本**:1.1
|
||||
**日期**:2026-05-10
|
||||
**状态**:模块级开发规约
|
||||
**上级事实源**:[海音达OA-MVP需求规格说明书](./海音达OA-MVP需求规格说明书.md)
|
||||
|
||||
@@ -44,12 +44,12 @@
|
||||
|
||||
| 角色 | 典型用户 | 可做动作 | 权限边界 |
|
||||
| --- | --- | --- | --- |
|
||||
| 申请人 | 普通员工、主管、财务、HR | 创建草稿、提交、查看自己的单据、撤回允许撤回的单据、按退回意见修改后重提 | 只能编辑草稿、已退回、已驳回且规则允许重提的本人单据;不能审批自己的待办,除非后续明确自审例外规则 |
|
||||
| 申请人 | 普通员工、主管、财务、HR | 创建草稿、提交、查看自己的单据、撤回允许撤回的单据、按退回意见修改后重提 | 只能编辑草稿、已退回、已驳回且规则允许重提的本人单据;当前不允许审批自己的待办;未来如需自审例外,必须另拆规则并强审计 |
|
||||
| 审批人 | 主管、项目负责人、老板、被转审人 | 查看分配给自己的待办,通过、驳回、退回、转审、查看审批历史 | 只能处理当前分配给自己的任务;不能越权处理他人待办 |
|
||||
| 财务 | 财务人员、财务主管 | 处理报销复核、付款标记、财务导出、重复发票例外审批中与财务相关的动作 | 不默认拥有系统管理权限;财务例外动作必须留痕 |
|
||||
| HR/管理员 | HR、行政管理员 | 处理请假、补卡、外出、加班等行政审批或复核;维护基础人员与组织配置 | 不能绕过审批流直接改业务结果,必要修正必须审计 |
|
||||
| HR/行政 | HR、行政负责人 | 处理请假、补卡、外出、加班等行政审批或复核;维护基础人员与组织配置 | 不能绕过审批流直接改业务结果,必要修正必须审计 |
|
||||
| 老板/总经理 | 公司负责人 | 处理大额、高风险或最终节点审批,查看公司级待办和摘要 | 操作仍需写入审批历史和审计日志 |
|
||||
| 系统管理员 | 运维或系统负责人 | 配置角色、权限、企业微信入口、通知、基础字典和功能开关 | 不自动获得业务单据审批权;直接数据修复必须另有运维流程和审计 |
|
||||
| 系统管理员 | 运维或后台系统负责人 | 配置角色、权限、企业微信入口、通知、基础字典和功能开关 | `admin` 只代表系统管理权限,不自动获得业务单据审批权;直接数据修复必须另有运维流程和审计 |
|
||||
|
||||
权限判定以服务端为准,前端按钮显隐只是体验优化,不作为授权依据。
|
||||
|
||||
@@ -57,15 +57,27 @@
|
||||
|
||||
| 角色 | 可查看范围 | 可审批范围 | 附件下载 | 导出 | 例外处理 |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 申请人 | 本人发起、本人作为实际报销人、抄送给本人的单据 | 不可审批自己的待办,除非后续明确自审例外 | 草稿和本人单据附件;审批中及归档附件按业务权限展示 | 不允许批量导出 | 不允许 |
|
||||
| 申请人 | 本人发起、本人作为实际报销人、抄送给本人的单据 | 当前不可审批自己的待办;未来如需自审例外,必须另拆规则并强审计 | 草稿和本人单据附件;审批中及归档附件按业务权限展示 | 不允许批量导出 | 不允许 |
|
||||
| 审批人 | 分配给自己的待办、已办和自己审批链上的单据 | 当前分配给自己的任务 | 可查看审批所需附件,下载动作需留痕 | 不允许财务级导出 | 可转审,不可财务例外 |
|
||||
| 财务 | 报销、费用、付款、发票相关单据和财务导出范围 | 财务复核节点、重复发票例外节点、付款相关节点 | 可查看和下载财务复核所需附件,敏感附件下载留痕 | 可按权限导出财务台账 | 可处理重复发票、付款修正等财务例外 |
|
||||
| HR/管理员 | 人员、部门、请假、补卡、外出、加班等行政范围 | HR/行政复核节点 | 可查看行政审批所需附件 | 可导出行政审批统计,不能导出财务明细 | 可处理审批人停用、规则缺失等管理例外 |
|
||||
| HR/行政 | 人员、部门、请假、补卡、外出、加班等行政范围 | HR/行政复核节点 | 可查看行政审批所需附件 | 可导出行政审批统计,不能导出财务明细 | 可处理审批人停用、规则缺失等管理例外 |
|
||||
| 老板/总经理 | 公司级摘要、大额或高风险审批、关键业务单据 | 最终审批节点或指定高风险节点 | 可查看决策所需附件,下载留痕 | 可查看公司级摘要,批量导出按配置控制 | 可审批高风险例外,但仍需记录原因 |
|
||||
| 系统管理员 | 系统配置、日志、权限、集成状态 | 默认不具备业务审批权 | 技术排障需最小化授权并留痕 | 默认不导出业务数据 | 可做账号、规则、通知配置修复;业务数据修正需另走审计流程 |
|
||||
|
||||
数据范围以服务端权限和审计日志为准。任何导出、附件下载、例外处理都必须记录操作者、时间、对象和原因。
|
||||
|
||||
### 2.2 正式审批组织与角色映射
|
||||
|
||||
正式运行和 R5 真机验收按以下组织口径执行;实现不得把个人姓名硬编码到业务逻辑中,应通过员工、直属上级和角色配置落地。
|
||||
|
||||
| 人员 | 正式角色口径 | 配置要求 | 审批边界 |
|
||||
| --- | --- | --- | --- |
|
||||
| `majianyong` | 员工可见的直属主管 / `manager` | 普通员工直属主管配置为 `majianyong` | 处理普通员工低/中额单据和日常审批;本人申请不得自审 |
|
||||
| `wangshunli` | 后台公司负责人 / `ceo + admin` | 配置为 `ceo` 和 `admin`,不配置为普通 `manager` | 处理大额、高风险、例外事项和 `majianyong` 本人申请;本人申请不得自审 |
|
||||
| 专用测试员工 | 普通员工 / `employee` | 直属主管配置为 `majianyong` | 用于正式链路验收,不使用真实员工日常账号跑自动化 |
|
||||
|
||||
正式员工必须配置直属主管。缺直属主管、主管停用、主管链断裂或审批节点解析到申请人本人时,应阻断提交或阻断审批动作,并提示管理员修正组织或审批规则。不得用 `admin` 权限解释业务审批权,也不得用无条件升级 CEO 掩盖主数据错误。
|
||||
|
||||
---
|
||||
|
||||
## 3. 入口与任务视图
|
||||
@@ -122,14 +134,16 @@
|
||||
| 采购 | `<=1000` 元 | 直属主管 | 视费用类型抽查 | 老板/总经理 | 审批完成前允许撤回 | 允许转给项目负责人或上级 |
|
||||
| 采购 | `1000-5000` 元 | 直属主管 -> 老板/总经理 | 视付款方式财务复核 | 老板/总经理 | 老板审批前允许撤回 | 允许转审但不得绕过老板节点 |
|
||||
| 采购 | `>5000` 元 | 直属主管 -> 老板/总经理 | 财务复核,建议关联合同或附件 | 老板/总经理 | 老板审批前允许撤回 | 允许转审但必须保留原因 |
|
||||
| 请假 | `<=1` 天 | 直属主管 | 无 | HR/管理员 | 开始时间前允许撤回 | 允许转给上级或 HR/管理员 |
|
||||
| 请假 | `>1` 天 | 直属主管 | HR/管理员复核 | 老板/总经理 | HR 复核前允许撤回 | 允许转给上级或 HR/管理员 |
|
||||
| 补卡 | 所有 | 直属主管 | HR/管理员复核 | HR/管理员 | 审批完成前允许撤回 | 允许转给 HR/管理员 |
|
||||
| 外出 | 所有 | 直属主管 | HR/管理员按需复核 | HR/管理员 | 审批完成前允许撤回 | 允许转给上级或 HR/管理员 |
|
||||
| 加班 | 所有 | 直属主管 | HR/管理员复核 | HR/管理员 | 审批完成前允许撤回 | 允许转给上级或 HR/管理员 |
|
||||
| 请假 | `<=1` 天 | 直属主管 | 无 | HR/行政 | 开始时间前允许撤回 | 允许转给上级或 HR/行政 |
|
||||
| 请假 | `>1` 天 | 直属主管 | HR/行政复核 | 老板/总经理 | HR 复核前允许撤回 | 允许转给上级或 HR/行政 |
|
||||
| 补卡 | 所有 | 直属主管 | HR/行政复核 | HR/行政 | 审批完成前允许撤回 | 允许转给 HR/行政 |
|
||||
| 外出 | 所有 | 直属主管 | HR/行政按需复核 | HR/行政 | 审批完成前允许撤回 | 允许转给上级或 HR/行政 |
|
||||
| 加班 | 所有 | 直属主管 | HR/行政复核 | HR/行政 | 审批完成前允许撤回 | 允许转给上级或 HR/行政 |
|
||||
| 合同 | 所有 | 负责人主管 -> 老板/总经理 | 财务按金额或付款条款复核 | 老板/总经理 | 老板审批前允许撤回 | 允许转审但不得绕过老板节点 |
|
||||
|
||||
规则匹配优先级为:业务类型 -> 金额或天数阈值 -> 项目/部门特殊规则 -> 默认规则。若找不到审批人,提交必须阻断并提示管理员修正规则,不得生成半截流程。
|
||||
规则匹配优先级为:业务类型 -> 金额或天数阈值 -> 项目/部门特殊规则 -> 默认规则。若找不到审批人、缺直属主管、主管链断裂、审批人停用或节点解析为申请人本人,提交必须阻断并提示管理员修正组织或审批规则,不得生成半截流程。
|
||||
|
||||
大额、高风险或例外事项默认进入老板/总经理节点;当前试运行最小集合包括:重复发票例外、预算或费用标准超限、缺必要附件仍需例外处理、涉密或重点项目、合同/采购高金额事项。具体阈值和例外条件必须通过审批规则配置,不得硬编码到个人或前端按钮。
|
||||
|
||||
---
|
||||
|
||||
@@ -197,6 +211,15 @@
|
||||
|
||||
批量审批不得绕过单条任务的权限、状态和业务校验。
|
||||
|
||||
### 6.1 自审与转审约束
|
||||
|
||||
- 自审默认禁止,不因申请人同时拥有 `admin`、`manager`、`ceo`、`finance` 或其他角色而放开。
|
||||
- 自审识别至少覆盖:工作流提交人、报销实际报销人、报销提交人、请假人、采购申请人、采购提交人、差旅申请人和差旅提交人。
|
||||
- 批量审批必须逐条执行自审校验;自审任务失败不应影响其他合法任务处理。
|
||||
- 转审目标必须具备对应业务审批权限,不能是申请人本人,不能是仅具备 `admin` 的系统管理员。
|
||||
- 转审不能绕过规则定义的必经老板/总经理、财务或 HR/行政节点;需要例外时必须另走明确改派或规则调整流程并留痕。
|
||||
- 若老板/总经理本人提交的单据触发老板/总经理节点,默认阻断或进入明确配置的非本人兜底审批人;本规约不开放自审例外。
|
||||
|
||||
---
|
||||
|
||||
## 7. 异常规则
|
||||
@@ -204,6 +227,8 @@
|
||||
| 异常 | 处理规则 | 用户提示 |
|
||||
| --- | --- | --- |
|
||||
| 无审批人 | 提交时阻断,不生成半截流程;管理员可修正规则后重试 | “当前审批规则未找到审批人,请联系管理员” |
|
||||
| 自审 | 申请人、实际报销人或提交人命中当前审批人时阻断;管理员身份不能绕过 | “自己的申请不能审批,请等待下一审批人处理” |
|
||||
| 系统管理员无业务审批角色 | 仅有 `admin` 权限时不能处理业务审批;需配置 `manager`、`ceo`、`finance`、`hr` 等正式业务角色 | “系统管理员不自动获得业务审批权,请配置正式审批角色后处理” |
|
||||
| 权限不足 | 服务端拒绝,记录必要安全日志 | “无权处理该审批任务” |
|
||||
| 任务已处理 | 并发点击或重复提交时返回当前最新状态 | “该任务已处理,请刷新查看最新结果” |
|
||||
| 并发审批 | 以服务端事务和任务版本为准,只允许一个处理结果生效 | “处理失败,任务状态已变化” |
|
||||
@@ -254,6 +279,11 @@
|
||||
| 撤回 | 申请人在未完成前撤回 | 流程终止或回到草稿;审批人待办失效 |
|
||||
| 转审 | 当前审批人填写原因并转给有权限人员 | 原审批人待办关闭;目标审批人产生新待办;历史显示转审链路 |
|
||||
| 无审批人阻断 | 提交时审批规则找不到审批人 | 提交失败,无半截流程,提示联系管理员 |
|
||||
| 正式主管链路 | 专用员工提交普通低/中额单据;`majianyong` 处理待办 | 待办分配给员工直属主管,审批历史显示 `majianyong` 处理 |
|
||||
| 公司负责人二审 | 专用员工提交高额、高风险或例外单据;`majianyong` 通过后进入 `wangshunli` | 串行节点完整,`wangshunli(ceo)` 作为老板/总经理节点处理 |
|
||||
| 主管本人申请 | `majianyong` 提交单据 | 主管本人不能自审,按组织链进入 `wangshunli(ceo)` 或明确非本人兜底节点 |
|
||||
| 公司负责人本人申请 | `wangshunli` 提交并触发老板/总经理节点 | 不允许自审;若无非本人兜底审批人,应阻断并提示管理员修正规则 |
|
||||
| 系统管理员无业务审批权 | 仅 `admin` 角色账号尝试审批业务单据 | 服务端拒绝,不因 `admin` 权限生成审批历史 |
|
||||
| 并发处理 | 两个窗口同时处理同一任务 | 只有一个结果生效,另一个提示任务已变化 |
|
||||
| 通知失败不阻断 | 模拟企业微信通知发送失败 | 审批提交或处理成功,通知记录进入失败可重试 |
|
||||
|
||||
|
||||
+2
-1
@@ -155,7 +155,8 @@
|
||||
补充规则:
|
||||
|
||||
- 项目相关采购可增加项目负责人节点,但首批可先通过转审或串行节点实现。
|
||||
- 同一申请不得由申请人审批自己;如果申请人就是主管,应升级给老板或兜底审批人。
|
||||
- 同一申请不得由申请人审批自己;如果申请人就是主管,应进入明确配置且非本人的老板/总经理或兜底审批节点。
|
||||
- 采购/费用审批链、直属主管、老板/总经理、自审禁止、`manager`、`ceo`、`admin` 的角色口径,以 [需求 - 统一审批中心规约](./需求-统一审批中心规约.md) 为准;本规约不重复维护第二套审批事实源。
|
||||
- 无审批人时阻断提交,不生成半截流程。
|
||||
- 审批通过不代表已经付款、入账或完成采购执行。
|
||||
|
||||
|
||||
@@ -3,5 +3,5 @@ R1,发布候选证据整理,"固定首轮主线 release candidate,汇总 A1-A8
|
||||
R2,本地门禁与 Runbook 补强,"把 A8 本地回归真实需要的本地服务参数、命令顺序、live smoke 检查和 SKIP 规则写入当前操作手册,避免后续误判。","1) Runbook 写明 SERVE_CLIENT_DIST、OCR_PROVIDER、IM_NOTIFIER_ENABLED、FIELD_ENCRYPTION_KEY 和项目 feature env 的本地门禁用途;2) live smoke 清单链接到发布准备清单;3) 不新增业务 API、数据库迁移或部署操作。","流程级验证:人工阅读 Runbook 能复现 A8 本地门禁准备;命令:rg -n \"发布候选|SERVE_CLIENT_DIST|OCR_PROVIDER|IM_NOTIFIER_ENABLED|FIELD_ENCRYPTION_KEY|PROJECT_DOMAIN_ENABLED|release-readiness-checklist\" docs/trialrun-runbook.md docs/trialrun/live-smoke-readiness.md docs/文档索引.md。","rg|manual",DONE,DONE,DONE,"docs/trialrun-runbook.md|docs/trialrun/live-smoke-readiness.md|docs/文档索引.md","[\"R1\"]","仅补文档和清单;测试 FIELD_ENCRYPTION_KEY 只能用于本地回归,生产必须使用安全密钥且不得提交。"
|
||||
R3,权限直连审计,"在部署前用员工、主管、财务、管理员账号直连主路径和备用路径,确认导航隐藏没有掩盖服务端授权缺口。","1) 形成角色 x 路径允许/拒绝矩阵;2) 普通员工直连预算、AP、ERP、完整差旅、票据中心、合同台账、付款批次等备用路径不得获得越权数据;3) 若发现服务端权限缺口,先拆独立修复 Issue,不进入部署。","流程级验证:分别登录员工、主管、财务、管理员账号 -> 直连 /budgets、/ap、/system/integrations/erp、/travel-requests、/invoice-pool、/contracts-registry、/payment-batches 和对应 API -> 记录 HTTP 状态、页面提示和是否泄露数据;命令:cd client && npm run test:e2e -- permission-direct-access.spec.ts settings-governance.spec.ts login-portal-ux.spec.ts --workers=1。","playwright|curl|manual",DONE,DONE,DONE,"client/tests/e2e/permission-direct-access.spec.ts|docs/trialrun/permission-direct-access-audit.md|docs/trialrun/release-readiness-checklist.md|issues/2026-05-10_12-39-37-release-readiness-live-smoke.csv","[\"R2\"]","R3 已完成:新增权限直连 E2E 和审计记录;首次 E2E 因 127.0.0.1:3000 未启动失败,启动本地 OA 服务后重跑通过 10 passed;typecheck/build/CSV/diff check 通过;未发现权限泄漏,未改业务代码,R4 仍未执行。"
|
||||
R4,部署预检,"检查生产/公网环境变量、数据库迁移状态、备份、回滚命令、Caddy/systemd 状态、/ready 和前端资源版本;未经批准不部署。","1) 生产环境变量缺项和敏感项不打印;2) 数据库迁移状态明确且有备份/回滚路径;3) Caddy/systemd 或既有部署方式健康;4) /ready 与前端资源版本可核对;5) 若需要修改生产配置,必须先获得确认。","流程级验证:只读检查部署目录、服务状态和 /ready;命令:node scripts/qa/check-live-smoke-env.mjs;命令:LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readiness.sh;生产变更前必须停止等待批准。","ssh|bash|node|manual",DONE,DONE,DONE,"deploy/*|scripts/qa/*|docs/trialrun/release-readiness-checklist.md","[\"R3\"]","R4 完成:先发现远端运行时代码未对齐,后续按治理合同完成部署前备份、D3 受控同步和 D4 只读复检;远端关键运行时文件哈希已对齐,本机/公网 /ready 200,Prisma up to date,Caddy 正常,企业微信 config 不含 secret,公网 bundle 扫描 0 findings;R5 仍未执行。"
|
||||
R5,公网企业微信和真实 OCR live smoke,"在 R4 预检通过且真实测试账号、企业微信配置和真实 OCR 样票齐备后,执行公网登录、企业微信入口、移动审批、报销/OCR 上传和通知 deeplink。","1) LIVE_SMOKE_* 从缺失变为可执行;2) 企业微信 config、OAuth 跳转和手机入口可验证;3) 真实 OCR 样票上传能进入可解释终态;4) 缺配置时继续 SKIP,不得宣称真机或真实 OCR 通过。","流程级验证:node scripts/qa/check-live-smoke-env.mjs --strict;命令:LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readiness.sh;人工真机:手机企业微信工作台打开海音达工作台 -> deeplink 回 OA 审批或详情页 -> 记录结果。","node|bash|playwright|manual",DOING,TODO,TODO,"scripts/qa/*|docs/trialrun/live-smoke-readiness.md|docs/trialrun/real-device-public-checklist.md","[\"R4\"]","R5 smoke 密码重置合同 issues/2026-05-10_17-10-42-r5-smoke-password-reset-and-live-smoke.csv 已完成 K1-K5;SMOKE001/SMOKE002 已重置为仓库外安全凭据,登录标识按公网 auth 契约使用 smoke 邮箱;check-live-smoke-env --strict 通过;run-live-smoke-readiness.sh 通过,证据目录 artifacts/qa-flow/live-smoke-readiness-20260510-172421,公网 bundle findings=0,live smoke 3 passed,真实 OCR 样票不再 SKIP 且终态为重复发票/ocr_failed 可解释;pending OCR 辅助扫描因缺 DATABASE_URL 继续 SKIP;K4 审计 authSessions 555->572、auditLogs 258->263,发票/报销数量未新增;本轮 R5 真机反馈与正式运行口径代码收口已完成:issues/2026-05-10_17-47-39-r5-real-device-feedback-mobile-ux.csv M1-M5 DONE,后端禁止自审/admin-only 审批,移动底部 Tab 改为报销,头像中文首字;正式组织配置另拆 issues/2026-05-10_18-25-33-formal-approval-org-config.csv,O1-O3 仍为 TODO;企业微信真机正式链路验收尚未执行,且本轮未部署,所以主 R5 仍保持 DOING/TODO/TODO,R6 保持 TODO。"
|
||||
R5,公网企业微信和真实 OCR live smoke,"在 R4 预检通过且真实测试账号、企业微信配置和真实 OCR 样票齐备后,执行公网登录、企业微信入口、移动审批、报销/OCR 上传和通知 deeplink。","1) LIVE_SMOKE_* 从缺失变为可执行;2) 企业微信 config、OAuth 跳转和手机入口可验证;3) 真实 OCR 样票上传能进入可解释终态;4) 缺配置时继续 SKIP,不得宣称真机或真实 OCR 通过。","流程级验证:node scripts/qa/check-live-smoke-env.mjs --strict;命令:LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readiness.sh;人工真机:手机企业微信工作台打开海音达工作台 -> deeplink 回 OA 审批或详情页 -> 记录结果。","node|bash|playwright|manual",DOING,TODO,TODO,"scripts/qa/*|docs/trialrun/live-smoke-readiness.md|docs/trialrun/real-device-public-checklist.md","[\"R4\"]","R5 smoke 密码重置合同 issues/2026-05-10_17-10-42-r5-smoke-password-reset-and-live-smoke.csv 已完成 K1-K5;SMOKE001/SMOKE002 已重置为仓库外安全凭据,登录标识按公网 auth 契约使用 smoke 邮箱;check-live-smoke-env --strict 通过;run-live-smoke-readiness.sh 通过,证据目录 artifacts/qa-flow/live-smoke-readiness-20260510-172421,公网 bundle findings=0,live smoke 3 passed,真实 OCR 样票不再 SKIP 且终态为重复发票/ocr_failed 可解释;pending OCR 辅助扫描因缺 DATABASE_URL 继续 SKIP;K4 审计 authSessions 555->572、auditLogs 258->263,发票/报销数量未新增;本轮 R5 真机反馈与正式运行口径代码收口已完成:issues/2026-05-10_17-47-39-r5-real-device-feedback-mobile-ux.csv M1-M5 DONE,后端禁止自审/admin-only 审批,移动底部 Tab 改为报销,头像中文首字;审批规约与正式组织口径文档同步已完成:issues/2026-05-10_19-24-06-approval-governance-doc-sync.csv G1-G5 DONE;正式组织配置仍待 issues/2026-05-10_18-25-33-formal-approval-org-config.csv O1-O3;企业微信真机正式链路验收尚未执行,且本轮未部署,所以主 R5 仍保持 DOING/TODO/TODO,R6 保持 TODO。"
|
||||
R6,小范围试运行,"公网和真机 smoke 通过后,只开放 2-3 个内部用户按清单试运行报销、请假、采购、审批、企业微信移动入口、付款和导出;反馈转新 Issue。","1) 试运行名单、角色、时间窗口和回滚联系人明确;2) 员工提交、审批人审批、财务付款/导出、企业微信 deeplink 回 OA 均有记录;3) 每日问题只登记和分级,不现场扩大 P2 功能范围;4) 试运行结束形成继续/回滚/修复判断。","流程级验证:员工提交报销/请假/采购 -> 主管或财务审批 -> 财务付款或导出 -> 企业微信通知 deeplink 回 OA -> 管理员检查审计和状态;人工记录问题、截图和处理结论。","manual|playwright",TODO,TODO,TODO,"docs/trialrun/release-readiness-checklist.md|docs/trialrun/manual-trialrun-report.md|issues/*.csv","[\"R5\"]","小范围试运行前不得扩 P2 预算、ERP、AI、完整差旅、复杂 BPM;反馈必须进入新 Issue CSV。"
|
||||
|
||||
|
无法渲染此文件,因为它包含了意外字符,其位于第 2 行和第 616 列。
|
@@ -0,0 +1,6 @@
|
||||
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
|
||||
G1,确认审批规约冲突和正式口径,"核对统一审批中心规约、产品口径、真机清单和 R5/O1-O3 合同,将正式运行审批组织口径作为本轮文档治理基线。","1) 明确 majianyong=manager;2) 明确 wangshunli=ceo+admin 且不配置普通 manager;3) 明确 admin 不代表业务审批权;4) 明确缺直属主管应阻断而非无条件升级 CEO;5) 本轮不改业务代码、不部署、不改远端数据。","流程级验证:阅读 docs/需求-统一审批中心规约.md、docs/product-decisions.md、docs/trialrun/real-device-public-checklist.md、issues/2026-05-10_18-25-33-formal-approval-org-config.csv;确认冲突点和正式口径记录在本 CSV。","rg|manual",DONE,DONE,DONE,"docs/需求-统一审批中心规约.md|docs/product-decisions.md|docs/trialrun/real-device-public-checklist.md|issues/2026-05-10_18-25-33-formal-approval-org-config.csv","[]","已确认正式口径并修正事实源冲突;回滚路径:回退本轮文档与 CSV 提交;不涉及数据修复。"
|
||||
G2,更新统一审批中心规约,"将正式审批组织、角色边界、自审禁止、缺主管阻断和 CEO 本人单据处理规则写入统一审批中心规约。","1) 规约版本升到 1.1;2) 新增正式组织与角色映射;3) HR/行政与系统管理员边界清晰;4) 自审禁止覆盖申请人、实际报销人、提交人、请假人、采购/差旅申请人;5) CEO 本人单据不得自审。","流程级验证:rg -n ""正式审批组织|majianyong|wangshunli|自审|缺直属主管|admin"" docs/需求-统一审批中心规约.md;人工核对角色、规则矩阵和验收场景一致。","rg|manual",DONE,DONE,DONE,"docs/需求-统一审批中心规约.md","[""G1""]","统一审批中心规约已升至 1.1;不新增状态枚举或接口;本轮只修事实源。"
|
||||
G3,更新产品口径管理员手册和设计规则,"修正 product-decisions 中无直接经理升级 CEO 的冲突口径,并同步管理员正式组织配置步骤、移动底部 Tab、深层页和头像规则。","1) product-decisions 不再写无主管无条件升级 CEO;2) admin-handbook 包含正式组织配置和 smoke 账号纪律;3) product-design-rules 固定移动底部 Tab、票据上传入口、深层页导航和头像 fallback。","流程级验证:rg -n ""无直接经理|CEO|正式组织|底部导航|票据上传|头像|深层页"" docs/product-decisions.md docs/admin-handbook.md docs/product-design-rules.md。","rg|manual",DONE,DONE,DONE,"docs/product-decisions.md|docs/admin-handbook.md|docs/product-design-rules.md","[""G2""]","已同步正式组织配置和已实现的移动交互口径,不新增 UI 工作。"
|
||||
G4,更新真机清单和业务规约引用,"把真机审批验收改为可勾选矩阵,并在报销/采购规约补充统一审批中心角色口径引用。","1) 真机清单能记录账号角色、直属上级、提交人、期望审批人、结果和截图位置;2) 报销规约引用统一审批中心作为审批链和角色口径事实源;3) 采购规约中申请人是主管时升级口径与统一审批中心一致。","流程级验证:rg -n ""正式审批链验收矩阵|统一审批中心规约|自审|非本人兜底|manager|ceo|admin"" docs/trialrun/real-device-public-checklist.md docs/需求-报销发票OCR规约.md docs/需求-采购费用审批规约.md。","rg|manual",DONE,DONE,DONE,"docs/trialrun/real-device-public-checklist.md|docs/需求-报销发票OCR规约.md|docs/需求-采购费用审批规约.md","[""G2""]","已补引用,不重复完整审批规则,避免多事实源漂移。"
|
||||
G5,校验文档CSV和提交,"校验新合同、主 R5 合同、文档一致性和格式,回填状态并提交本轮文档治理。","1) 新 CSV 和主 R5 CSV 校验通过;2) 文档一致性搜索无未标注冲突;3) git diff --check 通过;4) 主 R5 Notes 记录文档口径已同步但 R5 未完成;5) commit 完成。","命令:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-10_19-24-06-approval-governance-doc-sync.csv;命令:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-10_12-39-37-release-readiness-live-smoke.csv;命令:rg -n ""无直接经理|升级给.*CEO|admin.*审批|系统管理员|majianyong|wangshunli|底部导航|票据|头像|自审"" docs issues;命令:git diff --check。","python3|rg|git",DONE,DONE,DONE,"issues/2026-05-10_19-24-06-approval-governance-doc-sync.csv|issues/2026-05-10_12-39-37-release-readiness-live-smoke.csv","[""G2"",""G3"",""G4""]","CSV 校验、文档一致性搜索和 git diff --check 已执行;提交信息:G1-G5 同步正式审批组织与移动交互规约。"
|
||||
|
在新工单中引用
屏蔽一个用户