docs(planning): record organization schema rollout

This commit is contained in:
2026-07-16 14:44:51 +08:00
parent 1fe91cc0f3
commit c85a1374f0
3 changed files with 18 additions and 16 deletions
+2 -2
View File
@@ -15,10 +15,10 @@
| 案例媒体安全 | `GET /api/knowledge/case/records/{caseId}/media` | 案例详情只返回 `mediaOssId`,不返回原始 `sys_oss.url`;媒体下载会重复执行登录、后台角色或 APP 项目范围校验,再由服务端流式读取 OSS。管理端与 `mobile-uni` 通过鉴权 blob/temp 文件播放,关闭详情页时释放本地对象 URL |
| SOP知识库 `/knowledge/sop` | `POST /api/knowledge/search`、`POST /api/knowledge/answer-feedback`、`GET /api/knowledge/position-sop`、`GET /api/aihr/mobile/onboard/tasks`、`POST /api/aihr/mobile/onboard/tasks/{id}/complete`、`GET /api/aihr/mobile/qualification`、`POST /api/knowledge/doc/upload` | 已接入 MySQL Fulltext + Qdrant 混合召回、岗位学习适配摘要、OSS-first 文档上传、txt/md/PDF/Word/Excel/PPT 解析和 embedding 写入,失败回退 seed;搜索返回 `reviewId` 与 `promptVersion`,员工反馈回传并保存该评审批次,SOP 人工评审记录同时保留答案生成提示词版本,管理端可继续复核;员工学习页按当前 APP 身份读取正式岗前/入职任务,员工只能将本人处于“待完成/进行中”的任务确认完成,服务端按组织快照/手机号归属更新 `status/completed_time`,不接受前端身份参数;资格证据无正式数据时明确返回 `NOT_CONFIGURED`,不以 AI 分数代替上岗资格;`position-sop` 仍保留一期生活顾问学习导航语义 |
| 资料处理 `/knowledge/processing` | `GET /api/knowledge/processing/overview`、`POST /api/knowledge/doc/upload-async`、`GET /api/knowledge/doc/upload-items`、`POST /api/knowledge/doc/upload-items/{id}/retry` | 已接入解析任务状态聚合;页面只保留“批量导入”,接口暂存+入队即秒回,后台 worker(并发 2)逐条解析/归类/向量化;ZIP 在 worker 内安全解压后把支持的子文件继续入同一批次队列,页面按批次轮询进度、失败可单文件重试;不提供浏览器目录选择或服务端目录导入入口 |
| 组织人员同步 | `POST /api/aihr/org/sync` | 从开放组织同步系统的 `/api/open/v1/sync/snapshot` 拉取 `company/department/employee` 快照,分页参数使用 `limit`;员工手机号只落 `person_phone` 用于移动端身份映射,不在组织列表响应暴露;岗位识别 `position/job_title/post/job_name/role/title` 等字段。`dryRun` 必须显式传入 `true`(预检)或 `false`(写入),省略或传 `null` 直接拒绝,避免空请求意外写库;默认 `replaceExisting=true`,写入前必须先用 `{"dryRun":true}`;dry-run 不访问本地快照表、不执行 DDL/写库,返回 `phoneLinked/maskedPhone/suspectText/warnings` 且 `syncedCount=0`。非 dry-run 覆盖写入遇到员工被跳过、手机号不完整、脱敏手机号或疑似乱码时默认拒绝,只有确认 dry-run 结果后显式传 `allowPartialReplace=true` 才允许覆盖;重复 `ext_party_id` 始终拒绝写入。外部员工缺岗位名称时,可由运维配置 HR 签认的 `AIHR_ORG_POSITION_MAP_JSON`,按 `position_id` 填充岗位名称/层级;外部显式岗位字段优先,映射层级只允许“一线/主管/项目经理”。2026-07-15 线上已完成覆盖同步:公司 17、部门 963、员工 3417,`phoneLinked=3392`、`maskedPhone=25`、`suspectText=0`,在职 2943、离职 474。当前开放员工项只有 `position_id`,没有上述岗位名称字段,开放 API 也无岗位字典资源;生产尚未配置签认映射,岗位统一回退为“员工/一线”,主管数为 0 |
| 组织人员同步 | `POST /api/aihr/org/sync` | 从开放组织同步系统的 `/api/open/v1/sync/snapshot` 拉取 `company/department/employee` 快照,分页参数使用 `limit`;稳定资源 `id` 优先作为 `ext_party_id`,不得让后续新增的 `employee_number` 改写人员主键。员工手机号只落 `person_phone` 用于移动端身份映射,不在组织列表响应暴露;岗位识别 `position/job_title/post/job_name/role/title` 等字段,非契约数值层级按岗位名称归一为“一线/主管/项目经理”。`dryRun` 必须显式传入 `true` 或 `false`;默认 `replaceExisting=true`,写入前必须先 dry-run。覆盖写入遇到员工跳过、手机号不完整/脱敏或疑似乱码时默认拒绝;重复 `ext_party_id` 始终拒绝。增量写入 `replaceExisting=false` 时,空/脱敏手机号不会覆盖已有手机号。2026-07-16 新快照为公司 17、部门 960、员工 3417,全部 `id` 与生产旧快照一致;上游对 3391 个有效手机号返回脱敏值、25 个手机号无效,因此本次使用增量更新保留生产已有 3392 个手机号,禁止以 `allowPartialReplace=true` 强行全量覆盖。同步后在职 2938、离职 479;岗位总量为一线 3206、主管 191、项目经理 20,非法层级和默认“员工”岗位均为 0。外部缺岗位字段时仍可用 `AIHR_ORG_POSITION_MAP_JSON` 签认兜底 |
| 移动端手机号登录 | `GET /resource/sms/code`、`POST /auth/mobile/sms-login` | 已复用 sms4j 阿里云配置 `config1` 和 RuoYi `sms` 授权策略;短信发送成功后才写 Redis 验证码;手机号不存在时自动注册 `app_user`;`aihr.sms.dev-fixed-code` 非空时不真发短信、验证码固定(dev 默认 `123456`)。prod 默认关闭,试点期只有同时设置 `AIHR_SMS_DEV_FIXED_CODE` 与 `AIHR_SMS_PROD_FIXED_CODE_ENABLED=true` 才启用固定码。 |
| 用户侧三端首页 `mobile-uni` hash 路由;旧 `/h5/user`、`/h5/candidate`、`/h5/supervisor` 兼容重定向 | `GET /api/aihr/mobile/home/{role}` | 未登录请求只返回不读取租户业务统计的公开首屏 seed;已登录移动端请求自动携带 `Authorization/clientid`,才返回员工/主管真实统计;移动端本地 fallback 保演示 |
| 移动端登录后角色识别 | `GET /api/aihr/mobile/me` | 认证后按手机号匹配组织快照;`position_level` 为“主管/项目经理”时进入主管端,否则进入员工端;接口失败回退员工端。生产当前因上游岗位字段缺失只能识别为“一线”,不能用手工选择生活顾问替代主管身份验收 |
| 移动端登录后角色识别 | `GET /api/aihr/mobile/me` | 认证后按手机号匹配组织快照;`position_level` 为“主管/项目经理”时进入主管端,否则进入员工端;接口失败回退员工端。2026-07-16 已用真实在职主管手机号完成生产固定码登录并返回 `role=supervisor`、`roleLabel=主管端`、`positionLevel=主管`;该结果证明主管身份链路可用,但固定码仍不能替代正式短信 OTP 验收,跨项目权限正反例另按 C2 验收 |
| 移动端员工训练与主管复盘闭环 | 员工复用 `POST /api/train/practice/start`、`/turn`、`/finish`,查询 `GET /api/aihr/mobile/practice/history`、`/practice/mistakes`、`/profile`;训练完成后提交 `POST /api/aihr/mobile/practice/satisfaction`;主管查询 `GET /api/aihr/mobile/practice/team`、`/practice/alerts`、`/practice/reviews`、`/practice/reviews/{id}`,标记 `POST /api/aihr/mobile/practice/reviews/{id}/reviewed`,指派 `POST /api/aihr/mobile/practice/assignments` | 员工端登录后带 `Authorization` 与 `clientid` 调用;`mode=mobile` 完成后写入 `aihr_practice_session`。满意度接口只接受本人已完成训练的 1-5 分,意见脱敏后落库,未填写不补默认值。错题本按员工本人聚合低分/红线回合,并关联已有 `retry` assignment,不伪造错题结论。主管 `/practice/team` 在同一项目权限范围内额外返回 `mistakes` 聚合,按场景/归因统计次数、影响人数、平均分和最近发生时间;普通员工返回“无主管权限”。主管接口以后端当前登录手机号映射在职组织快照,仅允许岗位为“主管/项目经理”的账号,并按租户和项目范围返回真实成员、全状态训练记录及非 daily 专项。复盘标记只允许首次 `待复盘 -> 已复盘` 创建后续专项,并发重复提交幂等;可带 `incentivePoint` 写入贡献度。每日三题正式只对 `hire_date` 在当前日期前三个月内的在职员工派发;没有入职日期时不使用训练次数推断,开发 Demo 的旧回退只有在 `dev/local` profile 且由 `aihr.practice.allow-legacy-daily-drill-fallback` 显式开启时生效,生产 profile 强制关闭。 |
| 移动端候选人闭环 | 页面拆为 `/pages/candidate/index/index`、`/interview/index`、`/materials/index`、`/progress/index`、`/study/index`;面试复用 `POST /api/recruit/interview/start`、`/answer`、`/finish` 和 `GET /records`;资料 `POST/GET /api/aihr/mobile/candidate/materials`;预习 `POST /api/knowledge/search`;HR 审核 `GET /api/aihr/hr/candidate/materials`、`POST /api/aihr/hr/candidate/materials/{id}/review` | 候选人端登录后带 `Authorization` 与 `clientid` 调用;首页只按当前手机号对应的真实面试记录和最新资料状态分流,不读取公开 home seed。APP 候选人身份以后端登录手机号为准,前端 `candidateId/candidateName` 只作非 APP 场景兼容参数;面试支持文字作答和复用 `/api/ai/asr` 的录音转文字/选音频,`/answer` 可带可选 `answerAudioOssId`,服务端只接受当前候选人名下处于 `staged/bound` 状态的音频并将 `ossId` 写入问题快照,不向客户端暴露原始 OSS URL;`/answer` 与 `/finish` 还会校验当前 APP 手机号与启动会话的候选人 ID 一致,未知或他人会话直接拒绝;面试拉题/评分走真实模型优先;资料写 `sys_oss`/MinIO 和 `aihr_candidate_material`,HR 审核后进度页同步三态;岗前预习查询正式 SOP,不兜前端示例答案 |
+3 -1
View File
@@ -1,6 +1,6 @@
# BRD 功能审查与未完成项记录
## 现阶段总览(2026-07-15)
## 现阶段总览(2026-07-16)
本节只回答当前 `mobile-uni` 三端交互输入与 BRD 的匹配程度,不替代 L0/L1、生产发布或正式试点验收。按 BRD v1.2 的最终多模态目标评估,当前约为 **60%–70%(部分匹配)**;按总纲阶段一“陪练”执行边界评估,约为 **80%–90%(核心链路基本匹配)**。区间是工程审查判断,不是 BRD 官方验收指标。
@@ -16,6 +16,8 @@
审查证据来自当前源码与本地渲染控件;本轮未重新执行真实方言 ASR、图片上传、语音响应时延或生产环境端到端测试,因此这些能力继续标记为未验证。图片/视频情境输入已在 `AI陪练二期开发推进计划.md` 中明确为文本场景稳定后的独立评估项;个人知识空间按 `银城员工端APP分阶段实施总纲.md` 留在阶段二,不应拉入当前阶段一主线。
- 2026-07-16 开放平台新组织结构生产闭环:只读 dry-run 确认公司 17、部门 960、员工 3417,新员工对象已包含 `position_id/position_name/position_level`,但同时新增 `employee_number` 且将 3391 个有效手机号改为脱敏展示(另 25 个无效);生产旧快照与新快照按稳定资源 `id` 为 3417/3417 全量一致,而按 `employee_number` 仅能对上 7 条。提交 `1fe91cc0` 因此固定 `id` 优先、把非契约数值层级按岗位名称归一,并让增量 upsert 的空手机号保留原值;`AihrOrgSyncServiceTest` 真跑 `15/15` 通过。后端 JAR 已备份并发布到 `/opt/wygj/backups/org-schema-20260716143321`,线上 SHA-256 为 `e0fa1af55113404588653ebff555872986aa5d9119b9a0ee016e15268ba38c2f`,服务自 `14:33:21 CST` 起 active,租户接口为 `200`。组织表写入前另备份 `aihr_org_snapshot.before-sync.sql`,随后使用 `replaceExisting=false` 增量同步 3417/3417;生产最终为在职 2938、离职 479、手机号 3392(在职 2922)、一线 3206、主管 191、项目经理 20、重复主键 0、非法层级 0、默认“员工”岗位 0。使用真实在职主管手机号完成生产固定码登录,`/api/aihr/mobile/me` 返回 `supervisor/主管端/主管`。本轮证明岗位同步与主管身份已线上生效;仍未证明正式短信 OTP、跨项目权限正反例或正式试点验收。上游继续脱敏意味着新增/换号人员仍需获授权的安全身份映射通道,不得用 `allowPartialReplace=true` 强行覆盖现有手机号。
- 2026-07-15 BRD 对齐批次生产发布:从干净分支 `codex/brd-release-20260715` 的 release commit `f0175253` 重新构建管理端、H5 和 `ruoyi-admin.jar`,本地 preflight 通过后,备份整站/JAR/配置和数据库至 `/opt/wygj/backups/brd-align-20260715160117`,再切换静态目录与 JAR并重启 `wygj-aihr.service`。发布后管理端资源为 `index-CJmvDHQd.js`、H5 为 `index-Bu6EO0TO.js`;remote asset、后端整包和 `ruoyi-aihr` 模块 hash 均与本地产物一致,schema `16/16`,根站/H5/租户/员工首页 API 均为 `200`,服务自 `16:03:46 CST` 起 active。本批次未执行 SQL 迁移或生产业务数据写入。
- 2026-07-15 A4 认证态与数据缺口回归:真实管理端 `admin` 会话登录成功并打开资料处理页,页面只保留“批量导入/刷新”,解析任务按 10 条/页展示 97 页;线上员工首页确认 C1 文案为“文字提问,快速解答”。生产仍启用试点固定验证码,因此不能把本轮移动登录写成“正式短信 OTP”;使用已存在的一线 APP 用户完成固定码登录、手工确认生活顾问岗位并进入员工今日页。主管路径未通过:生产 2943 名在职员工的 `position_name` 全为“员工”、`position_level` 全为“一线”,主管/项目经理为 0。
@@ -1,29 +1,29 @@
# 下一步工作计划(BRD 对齐版)
> 版本:v2.5(2026-07-15 口径修正:B3 不是补录人员,而是从已同步组织快照中圈定正式试点范围)
> 版本:v2.6(2026-07-16 生产复核:开放平台岗位结构已接入,主管认证态已打通;B3 仍是圈定正式试点范围)
> 基准:《物业AI人力资源系统业务需求文档BRD.md》v1.2(唯一事实源)
> 阶段边界:《银城员工端APP分阶段实施总纲.md》阶段一(陪练)+ 2026-07-08《数字师傅学练问报整合方案》定案
> 现状证据:《BRD_IMPLEMENTATION_AUDIT.md》2026-07-15 最新条目 + 本日生产只读复核
> 现状证据:《BRD_IMPLEMENTATION_AUDIT.md》2026-07-16 最新条目 + 生产 dry-run、增量同步、数据库与认证态复核
> 时间锚点:半年会产品发布(须带一线真实使用数据)→ 2026-09 收费季前试点可用
---
## 0. 当前基线(2026-07-15 生产实测)
## 0. 当前基线(2026-07-16 生产实测)
**已完成**(不再列入待办):
- 生产已发布 `f0175253` 批次,线上管理端 = `index-CJmvDHQd.js`,H5 = `index-Bu6EO0TO.js`;发布预检通过资源/后端哈希、schema 与健康检查。
- 生产 schema **16/16 齐备**,内置 Prompt **6/6**,生活顾问启用场景 **14 条**(含服务推介/增值 1、日常服务 1)。
- **组织人员与手机号同步已线上闭环**:开放平台拉取公司 17 / 部门 963 / 员工 3417;`aihr_org_snapshot` 3417 行,手机号可映射 **3392**,在职 2943。项目归属可用,但开放员工快照只返回 `position_id`,不返回岗位名称,开放 API 也无岗位字典资源;生产 `position_name='员工'`、`position_level='一线'` 为 2943/2943,主管身份仍未就位。
- **当前组织身份已线上闭环**:开放平台拉取公司 17 / 部门 960 / 员工 3417;`aihr_org_snapshot` 3417 行,手机号仍可映射 **3392**,在职 2938、离职 479。新快照已返回岗位名称与岗位层级;兼容数值层级后,在职一线 2743、主管 175、项目经理 20,默认“员工”岗位 0。真实在职主管手机号完成生产登录后,`/api/aihr/mobile/me` 返回主管端。
**真实缺口**(本计划的全部工作对象):
- 正式试点证据全部为 0:评分校准 0/20、SOP 人工评审 0/14、案例 0/20、满意度 0、候选资料 0(L1-B/C/D)。
- 主管身份为 0:开放平台需补岗位名称/岗位字典或由 HR 提供 `position_id → 岗位/层级` 正式映射,否则 C2 的主管认证态与跨项目权限无法验收。
- 主管身份认证已打通,但 C2 的“本项目可见、跨项目不可见”仍需结合 B3 正式试点项目做认证态验收。
- SOP 文档仅 3/5,缺服务推介/增值与日常服务两类的真实业务内容确认(4.3.4、L1-B)。
- 方言 ASR 零实测(9.1 MVP 阻塞项、L1-C ≤5s)。
- 25 名员工手机号不可用(上游数据问题,不阻塞,需反馈开放平台)。
- 上游快照现对 3391 个有效手机号返回脱敏值,另有 25 人无有效手机号;本次按稳定 `id` 增量更新并保留了生产已有 3392 个手机号。当前登录不受影响,但新员工/换号无法仅靠脱敏快照补齐,需开放平台提供获授权的安全身份映射通道。
- PII 出境条款、成本计量契约、HR 学分规则等外部输入未闭合(G3/G6、4.5)。
**结论:发布已完成;当前最大阻塞是"试点圈定(B3)+主管岗位映射(B11)+内容/评审样本"。** 所有新增页面/功能默认冻结(守 MVP 切割线,BRD 附录 C 头号风险 = 范围失控)。
**结论:发布和主管身份打通已完成;当前最大阻塞是“试点圈定(B3)+内容/评审样本”。** 所有新增页面/功能默认冻结(守 MVP 切割线,BRD 附录 C 头号风险 = 范围失控)。
---
@@ -36,7 +36,7 @@
| A1 | **已完成**:在隔离 worktree 收拢并形成 release commit `f0175253` | `release-preflight.sh` 拒绝任何脏工作区 | 发布 worktree 干净;release commit 落字 | 07-15 |
| A2 | **已完成**:发布窗口、执行人、回滚人已写入 `RELEASE_EXECUTION_20260715.md` | 12.1、Runbook 前置条件 1 | 三项落字 | 07-15 |
| A3 | **已完成**:干净构建、预检、DB/静态/后端备份、原子切换与服务重启 | 6.3、L1-C | 生产备份 `/opt/wygj/backups/brd-align-20260715160117`;服务 active | 07-15 |
| A4 | **结构回归已完成,外部门禁待补**:远端资源/后端/schema 匹配,管理端与员工认证态通过;正式 OTP 因生产固定码未关闭而未验收,主管认证态转 B11/C2 | 10.2、`demo-check.sh` 参数约束 | 结构回归有证据;正式 OTP 与主管路径分别在生产验证码策略、B11 就位后补验 | B11+1 天 |
| A4 | **结构与主管认证态已完成,外部门禁待补**:远端资源/后端/schema 匹配,管理端、员工和主管认证态通过;主管本次仍使用生产试点固定码,不能替代正式 OTP 验收 | 10.2、`demo-check.sh` 参数约束 | 结构及主管身份有生产证据;关闭固定码后补正式 OTP,项目范围权限转 C2 | B3+1 天 |
---
@@ -46,8 +46,8 @@
| # | 需要的输入 | 提供方 | 负责人 | 回复期限 | 兜底触发日 | 阻塞的 BRD 条款 | 不给的后果 |
|---|---|---|---|---|---|---|---|
| B3 | **确认正式试点范围(不是补录人员)**:从生产已同步的在职、手机号可登录人员中圈定 1–2 个住宅项目、≥20 名参与员工、每项目至少 1 名主管,并确认窗口起止日期;主管需与 B11 的正式岗位映射一致 | HR 负责人 | 待指派 | 07-18 | 07-22 | 10.2-D | 人员数据已就位,但未圈定参与范围和时间窗时,M5 指标仍无正式分母 |
| B11 | **补齐岗位契约**:开放员工快照直接返回 `position_name/job_title`,或开放岗位字典资源;HR 可直接填写 `BRD-B11岗位映射签认清单-20260715.csv`(90 个岗位 ID,合计 3417 人/在职 2943 人)并提供试点主管名单。若开放平台短期不能改接口,运维可将签认结果配置为 `AIHR_ORG_POSITION_MAP_JSON`,系统只在外部缺岗位名称时按 `position_id` 套用,层级仅允许“一线/主管/项目经理”;先 dry-run,再覆盖同步并验收项目权限。不得按 ID 猜角色 | 开放平台+HR | 待指派 | 07-18 | 07-22 | 5.4、G3、L1-B | 生产 2943 名在职人员全部落为“一线”,主管端和项目级权限无法认证态验收 |
| B3 | **确认正式试点范围(不是补录人员)**:从生产已同步的在职、手机号可登录人员中圈定 1–2 个住宅项目、≥20 名参与员工、每项目至少 1 名主管,并确认窗口起止日期;主管需与已同步岗位身份一致 | HR 负责人 | 待指派 | 07-18 | 07-22 | 10.2-D | 人员数据已就位,但未圈定参与范围和时间窗时,M5 指标仍无正式分母 |
| B11 | **已完成(07-16):补齐岗位契约**。开放快照已返回 `position_id/position_name/position_level`;系统以稳定资源 `id` 作为人员主键,对数值层级按岗位名称归一为“一线/主管/项目经理”。生产同步后在职主管 175、项目经理 20,主管认证态通过;`AIHR_ORG_POSITION_MAP_JSON` 仅保留为上游再次缺字段时的签认兜底 | 开放平台+本项目 | 已完成 | 07-16 | — | 5.4、G3、L1-B | 岗位身份阻塞已解除;项目范围权限仍按 C2 验收 |
| B2 | 补 2 份真实 SOP 文档(现 3/5),并由业务确认全部五类核心流程的成功条件、价格/取消规则、回访口径;随后完成 14 条场景/SOP 的人工评审(现 0/14) | 内容负责人/HR | 待指派 | 07-20 | 07-24 | 4.3.4、L1-B(SOP≥5) | SOP 覆盖与 RAG 可用率(≥80%)无法验收 |
| B9 | **历史案例批量提供**:试点前 **≥20 条**历史案例语音/材料入库并脱敏审核,不依赖试点新增量补齐验收底线;试点期继续按"每周每项目 1 条"采集新案例 | 各项目负责人 | 待指派 | 07-22 | 07-25 | 4.6、L1-B(案例≥20) | 案例库验收必然失败 |
| B4 | 方言 ASR 厂商选型(**阶段一只选 1 种方言**,按试点区域确认;BRD 9.1 只要求 1 条路径)+ 费用授权 + **同时确认 CER 达标阈值**(BRD 只定了 ≤5s 响应,识别准确率的验收线需业务拍板,否则 C3 实测无法判定"达标") | 技术组+HR | 待指派 | 07-20 | 07-24 | 4.3.3、9.1、L1-C | MVP 阻塞项零实测,且测了也无法判定通过 |
@@ -55,9 +55,9 @@
| B6 | 大模型/ASR/TTS 供应商 PII 留存与跨境条款确认(音频本体、图片本体外发部分) | 法务/安全 | 待指派 | 07-24 | 07-31 | G3、G6、F3 | 生产前闸门无法关闭 |
| B7 | 组织快照最小字段清单与保留期:生产实测姓名 0、部门 0(展示字段默认关已生效),但 `project_name` 仍保留 3417 行;需法务/安全核对 `project_name`、`person_phone` 等仍保留字段是否在最小清单内,及历史清理范围 | 法务/安全 | 待指派 | 07-24 | 07-31 | 5.4(只存 party_id 硬约束) | P0 存储边界无法关闭 |
| B8 | 认证等级/学分规则契约(初/中/高级条件、学分来源与分值、防刷) | HR | 待指派 | 07-31 | 08-07 | 4.5、10.2-A | 成长页只能继续挂"规则待配置、不生效" |
| B10 | 25 名员工手机号不可用 → 反馈开放平台修数(低优先级,不阻塞) | 开放平台 | 待指派 | 07-31 | — | 5.4 | 25 人无法登录 APP |
| B10 | 25 人无有效手机号 + 有效手机号在开放快照中被脱敏:反馈开放平台修数,并明确获授权的新员工/换号身份映射通道;现有 3392 个生产手机号已由增量同步保留 | 开放平台 | 待指派 | 07-31 | — | 5.4 | 当前 25 人无法登录;未来新增/换号人员无法只靠脱敏快照自动映射 |
追办顺序:**B3 → B11 → B9 → B2 → B4**,其余并行。
追办顺序:**B3 → B9 → B2 → B4**,其余并行;B11 已完成。
---
@@ -66,7 +66,7 @@
| # | 任务 | 依据 | 完成定义 | 期限 |
|---|---|---|---|---|
| C1 | "问师傅"文案对齐:`pages/user/today/index.vue` 的"语音提问,快速解答"**直接改为符合现状的文字**(语音问答入 backlog,届时复用 `speech.ts` + `/api/ai/asr`,不新增接口) | 4.7、2026-07-15 审计 | 首页承诺与 SOP 页能力一致 | 07-16(随 A1 批次发布) |
| C2 | 主管身份与项目数据权限验收:待 B11 补齐岗位契约并重新同步后,用正式主管账号认证态验证——本项目团队可见、跨项目不可见、训练记录/待复盘按项目过滤 | 5.4、G3、L1-B | 生产主管数 >0;认证态回归留证写入审计记录 | B11+1 天 |
| C2 | **主管身份认证已完成,项目数据权限待验收**:生产已有在职主管 175、项目经理 20,真实主管手机号登录返回主管端;待 B3 圈定项目后继续验证本项目团队可见、跨项目不可见、训练记录/待复盘按项目过滤 | 5.4、G3、L1-B | 主管身份已有生产证据;项目范围正反例留证写入审计记录 | B3+1 天 |
| C3 | 方言实测(B4 选型后):**1 种方言**,固定样本集(≥20 条真实短音频),记录字错率(CER)与单轮响应 P95(≤5s,L1-C);CER 与 B4 确认的阈值比对——**阈值未确认前只记录数据、不判定达标** | 4.3.3、9.1、L1-C | 样本数、CER、P95 三项数据落审计记录;CER ≤ B4 阈值且 P95 ≤5s 才在验收表标"通过" | B4+3 天 |
| C4 | LLM/ASR/TTS 调用计量:待 B6/财务给出计费字段与单价后,新增租户范围 `llm_call_log`(模块/模型/token/延迟/费用)+ 月度上限告警与自动降级;此前维持手动断路器,不硬编码价格 | 6.3、G6 | 有持久化计量与可配置上限 | B6 后一周内 |
| C5 | 案例入库流水线支援 B9:批量导入入口复用现有上传/整理/筛选链路,脱敏门禁逐条通过;不为批量导入新做页面 | 4.6、L1-B | ≥20 条历史案例状态"已入库"且脱敏扫描 0 命中 | 07-25 |