84 lines
16 KiB
Markdown
84 lines
16 KiB
Markdown
# BRD 功能审查与未完成项记录
|
||
|
||
更新时间:2026-07-14
|
||
|
||
## 1. 审查口径
|
||
|
||
本记录以 [物业AI人力资源系统业务需求文档BRD.md](物业AI人力资源系统业务需求文档BRD.md) 为业务事实源,以 [FIGMA_IMPLEMENTATION_MATRIX.md](FIGMA_IMPLEMENTATION_MATRIX.md) 判断页面与视觉落地,以 [API_INTEGRATION.md](API_INTEGRATION.md) 和真实接口/浏览器结果判断运行闭环。
|
||
|
||
`Figma` 的 `[x]` 只表示画板对应页面已实现,不代表正式试点数据、组织权限或线上生产验收已经完成。BRD 的“阶段二个人 AI 助理”和三期运营页面不纳入当前一期修复范围。
|
||
|
||
## 2. 已确认完成的当前基线
|
||
|
||
| 领域 | 当前证据 | 结论 |
|
||
|---|---|---|
|
||
| 员工端今日/练/问/我 | `mobile-uni/src/pages/user/*`;员工首页、训练前预习、独立练习路由已实现 | 2026-07-14 已同步线上 H5;线上主 JS 与本地构建 SHA-256 一致,学习页已显示错题本和原因筛选,后续只做发布后回归 |
|
||
| 主管工作台/复盘/派发 | `mobile-uni/src/pages/supervisor/*`;线上工作台已完成视觉回归 | 页面主链路已在位;正式主管身份仍依赖组织数据 |
|
||
| 训练音频对象权限 | `AihrMobileController`、`AihrPracticeSeedService`;`GET /api/aihr/mobile/oss/{ossId}` | 已按员工本人、主管项目范围和系统用户区分音频读取权限;本地真实 HTTP 验证:归属员工 200,其他员工 403;生产正式主管范围仍需组织同步数据支撑 |
|
||
| 候选人面试与 HR 复核 | `mobile-uni/src/pages/candidate/*`、`frontend/src/views/recruit/interview.vue` | 工程闭环已在位;候选人资料移动端上传/列表现在只接受 APP 候选人本人身份,HR 继续通过独立审核接口处理;需继续保留人工复核证据 |
|
||
| SOP/RAG/资料处理 | `frontend/src/views/knowledge/*`、`backend/.../AihrSopSeedService.java` | 搜索、引用、反馈、异步处理和评审入口已在位 |
|
||
| 对练/每日题/主管带教 | `backend/.../AihrPracticeSeedService.java`、`mobile-uni/src/pages/user/practice` | 每日三题现支持文字或录音转写,语音 `audioUrl/ossId` 随作业提交并持久化;普通陪练、即时反馈、低分再练、错题归因和主管带教已在位,正式窗口仍需验证真实音频与低分样本 |
|
||
| 案例上传/整理/筛选 | `backend/.../AihrCaseService.java`、`mobile-uni/src/pages/user/cases`、`frontend/src/views/knowledge/cases.vue` | 上传与整理已在位,案例状态在内存缺失时可从 `aihr_case_record` 回读恢复;APP 用户的读取按项目范围校验,写入接口已增加“主管/项目经理/系统用户”门禁,普通员工不能提交、整理或入库案例;本轮补上管理端上传的项目选择与后端无项目拒绝,避免案例落成员工不可见的无范围记录;当前仓库仍没有可用预渲染视频样片资产,也没有稳定的案例详情/学习点模型,不能用假播放器宣称案例学习闭环完成 |
|
||
|
||
## 3. 未完成项与优先级
|
||
|
||
### P0:必须先解决,否则不能称为正式试点完成
|
||
|
||
| 缺口 | BRD依据 | 当前事实 | 下一步 |
|
||
|---|---|---|---|
|
||
| 正式主管身份、项目范围和数据权限 | 5.4、L1-B、G3 | 代码已有 `aihr_org_snapshot`、岗位/项目过滤和主管接口;生产快照当前为 22 条 active、2 个项目,但手机号关联为 0/22;生产环境当前未配置 `AIHR_ORG_SYNC_*` 组织同步凭据;移动端角色查询失败已改为安全降级员工端,员工登录/路由现在通过认证的 `/api/aihr/mobile/me` 刷新官方岗位,只有组织未映射时才保留本地演示岗位回退;线上视觉测试不能替代真实主管身份验证;组织覆盖写入现在会拒绝被跳过、手机号不完整、脱敏手机号或疑似乱码的快照,除非显式传 `allowPartialReplace=true`;重复 `ext_party_id` 无论是否允许部分覆盖都直接拒绝,避免唯一键折叠不同员工身份 | 由业务/运维提供正式组织接口配置后先做 dry-run,核对项目、岗位、`ext_party_id`、手机号;补齐手机号映射并确认主管身份后,才执行正式同步和主管数据权限验收 |
|
||
| 管理端/后端生产发布证据 | 6.3、12.1、L1-C | 2026-07-14 已核实并发布:生产根站点 `https://peilian.njzhmj.top/`、Caddy `/prod-api`、systemd `wygj-aihr.service` 和后端 jar 均可核查;管理端静态包、后端 jar 已与本地构建 hash 对齐,租户接口和移动端首页 API 返回 200 | 发布证据已具备;后续仍需把正式发布命令、回滚脚本和生产部署凭据纳入运维交接,不能把“服务可访问”直接等同于正式试点通过 |
|
||
| M5 正式试点证据 | L1-B/C/D、G1/G3/G4 | 已补员工训练后 1–5 分满意度和可选意见采集,意见脱敏后写入 `aihr_practice_session`,CSV/严格门禁可读满意度响应数与平均分;但本地样本不能代表正式窗口,仍不能用 seed/烟测数据替代,尚无法证明“满意度 ≥4/5” | 固定 1–2 个住宅项目和窗口,按唯一在职身份采集训练、人工校准、SOP 评审、完训率和满意度;严格门禁要求满意度有真实响应且平均分 ≥4.0/5 |
|
||
| AI 分数与人工复核边界 | 4.1、4.5、G1/G2 | 面试和对练已有人工复核/校准入口;正式试点 CSV 已补明细级 AI 分、人工校准分、校准人、校准时间和最终采用分;管理端与员工端均已显示“AI 仅作辅助参考、人可复核/否决、不直接决定绩效或晋升”;正式试点仍需用真实窗口验证人工可否决证据 | 在正式试点报告中抽查校准记录与最终采用值,确认人工分可覆盖 AI 建议且不直接挂钩绩效/晋升 |
|
||
|
||
### P1:一期 BRD 功能仍未形成完整业务闭环
|
||
|
||
| 缺口 | BRD依据 | 当前事实 | 建议实现顺序 |
|
||
|---|---|---|---|
|
||
| 岗位-SOP匹配与上岗资格 gating | 3.1、4.2、TechSpec P1 | 已补 `GET /api/knowledge/position-sop` 和员工学习页状态提示:一期只确认生活顾问内置学习导航;尚无 `sop_applicability`、`onboard_task`、`qualification_gate` 正式数据闭环,不能作为上岗资格判断 | 先接正式岗位/项目与 SOP 适用范围数据,再补培训任务状态;资格 gating 必须由 HR 明确规则和证据来源后实现 |
|
||
| 认证等级与激励规则可配置 | 4.5、10.2-A、TechSpec M6 | 成长激励页已有初/中/高级证据包和学分口径展示,但规则仍是前端硬编码;原“排行榜”开关无实际业务作用,已移除并明确标记只读;尚无 `cert_rule`/`incentive_rule` 的持久化、版本、角色权限和生效记录 | 先由 HR 确认学分来源、分值、防刷和初/中/高级条件,再设计规则表与管理员 CRUD;在规则契约明确前,不把静态展示称为可配置 |
|
||
| 智能错题本 | 3.1、4.4、TechSpec P1 | 已补员工本人错题本和主管 `/api/aihr/mobile/practice/team` 内的 `mistakes` 聚合:按当前项目权限统计场景、归因、次数、影响人数、平均分和最近发生时间;员工端可跳转待训练 retry assignment,retry 已完成时改为显示“已完成”,不再重复引导进入已完成任务;不新增独立错题事实表 | 继续用正式组织快照和试点窗口验证主管只看到本项目数据;后续可在真实错题量上来后补趋势/导出,不把本地演示样本当正式指标 |
|
||
| 案例学习/视频详情 | 3.1、4.6、矩阵第35行 | `AihrCaseService` 已能从 `aihr_case_record` 恢复转写案例,且新增按项目范围校验的 `GET /api/knowledge/case/records/{caseId}`,员工端可查看持久化转写、摘要和状态;但仍没有稳定 media URL、学习点、主管点评和案例视频资产 | 先由业务提供样片或正式媒体 URL,并确定案例详情、学习点、主管点评字段,再扩持久化契约和权限;没有真实媒体 URL 时不造播放按钮 |
|
||
| 案例库质量与数量 | L1-B、4.6/4.7 | 上传/整理/筛选路径已有;“至少20条脱敏案例”和每周每项目一条需要正式数据证明,当前也没有可用于一期样片验收的真实视频资产 | 先按项目窗口采集并脱敏检查,再补案例统计/学习详情导出;不使用空壳视频或演示 seed 冒充 |
|
||
| RAG 可用率与知识治理 | 4.7、L1-C、G3 | 搜索、引用、反馈、知识缺口和人工评审入口已有;员工反馈保存同一次搜索的 `reviewId`,SOP 评审记录和搜索响应现在保留答案生成 `promptVersion`;知识库上传、导入、向量重建、评审队列和模型配置管理接口已收紧为 `superadmin/hr_operator`;住宅核心流程覆盖率与可用率仍需正式评审数据,不能宣称完成逐问答全链路追溯 | 后续由业务确认模型/检索批次的正式版本口径,再补检索批次与模型版本;当前先用 `reviewId + promptVersion + query + fragment` 做可追溯统计,不伪造正式可用率 |
|
||
| 方言语音与多模态训练验收 | 4.3.2、4.3.3、L1-C | ASR/TTS、音频 OSS 留痕和文本降级链路已有;但当前没有四川话/粤语等方言供应商配置、样本集和准确率/响应时延证据,也没有把图像/视频训练输入纳入一期验收口径 | 先确定一期方言厂商和可接受指标,用真实短音频做至少一条方言路径回归;图像/视频输入另按场景与合规边界评审,不用通用文本链路冒充完成 |
|
||
|
||
### P2/P3:明确暂缓,不应混入当前修复
|
||
|
||
- 个人 AI 助理、个人资料库、网页抓取、引用问答、PPT 生成:BRD 4.8,阶段二。
|
||
- 开放问题榜、积分/排行榜/荣誉墙、完整七维偏好、独立 AI 教练编排:阶段二/三或后续运营范围。
|
||
- 师徒关系、拜师池、认证和带徒福利:业务已取消,继续保持不实现。
|
||
|
||
## 4. 首批执行顺序
|
||
|
||
1. 先完成正式组织快照 dry-run 与项目范围核对;不修改正式数据,不用手机号猜角色。
|
||
2. 在本地/测试环境实现“错题本只读聚合”,复用现有训练记录和 retry assignment,补 API、员工入口和主管查看边界。
|
||
3. 已先补岗位学习适配摘要,但它只负责把一期生活顾问导航状态说清楚;下一步接正式岗位/项目/SOP 适用范围,再实现培训任务状态;资格 gating 放在有真实资格规则后接入,避免先做一个无法运营的开关。
|
||
4. 单独设计案例详情数据契约,确定媒体来源、样片、学习点和主管点评后再开发详情页。
|
||
5. 用正式试点窗口跑 BRD L1/M5,而不是继续增加视觉页面。
|
||
|
||
## 5. 每批完成定义
|
||
|
||
- 有明确 BRD 条款、代码路径和数据证据。
|
||
- 读写权限按员工本人、主管项目范围、HR/运营角色区分。
|
||
- 真实接口或浏览器验证通过;不能验证的外部数据依赖必须标明。
|
||
- 不用 seed、烟测样本或固定演示账号冒充正式试点达标。
|
||
- 发布前同步矩阵、API 文档、验收脚本和本记录。
|
||
|
||
## 6. 本轮线上核对记录(2026-07-14)
|
||
|
||
- 线上入口 `https://peilian.njzhmj.top/h5/` 返回 `HTTP 200`;本轮管理端发布后根站点 `https://peilian.njzhmj.top/` 也返回 `HTTP 200`,生产 HTML 的 `Last-Modified` 为 `2026-07-13 19:53:16 GMT`。
|
||
- 发布前线上 HTML 引用 `index-DSualpPE.js`;同步后已改为 `index-DJfe2tlN.js`,主 JS SHA-256 均为 `56afec70ae0f404a3e4a2520b604ea797dc7c1f2a16ce558e6652cea246b45a9`。
|
||
- 使用本地数据库已有手机号和 dev 固定验证码登录线上 H5,岗位确认、员工首页和 `/pages/user/practice/index` 均可打开;这证明线上登录/基础路由可用,不证明线上包已追平当前代码。
|
||
- 发布后真实浏览器登录并打开 `/pages/user/learning/index`,页面已出现“错题本”“全部/红线话术/情绪承接/流程合规/综合得分不足”;打开 `/pages/user/practice/index` 可见训练前预习、最近练过和每日三题。
|
||
- 本次远端备份为 `/opt/wygj/backups/h5-20260714034906`(H5)和 `/opt/wygj/backups/release-20260714035418`(管理端 index/assets 与后端 jar);静态包、后端服务和 H5 资源均已发布,后续发布仍必须保留备份、资源哈希和浏览器回归三项证据。
|
||
- 发布后 hash 证据:管理端主 JS `index-CVcvQ1KE.js` 为 `a49ad7d3009ea64f37922cc042f09c1930557052e4fe20c11f8083222e0e4531`,后端 `ruoyi-admin.jar` 为 `3998f075a06f3a8014c270f66ad777606c7a04117233b7258e3326dbe516e211`,H5 主 JS 仍为 `56afec70ae0f404a3e4a2520b604ea797dc7c1f2a16ce558e6652cea246b45a9`;线上 `wygj-aihr.service` 为 active,`/prod-api/auth/tenant/list` 与 `/prod-api/api/aihr/mobile/home/user` 返回 200。
|
||
- 生产浏览器回归:管理员可登录首页和 `/system/model`;页面可见“提示词模板”列表、新增模板入口和启停控件,说明本轮管理端 UI 已加载。当前验证使用生产 admin 测试账号和 Redis 验证码,不在文档记录账号或个人数据。
|
||
- 2026-07-14 04:05 后续发布:移动端满意度采集、CSV 指标和后端接口已同步到生产;备份为 `/opt/wygj/backups/release-20260714040515`,H5 主 JS `index-5mNjsnek.js` 本地与线上 SHA-256 均为 `5c5af11be7b2b3ef7ceafd5b820fdd3e1326fcfc612b89c69b00dfe06635573c`,后端 jar SHA-256 为 `aa0bd917a2ab94ffd740ac709af2c59dd5bed6c8db995fa9aa1e80bcc4662c07`;生产浏览器实际完成训练、提交 1–5 分满意度并收到成功提示,随后已清理临时训练和派发数据。
|
||
- 2026-07-14 04:18 后续发布:SOP 反馈追溯已同步到生产;备份为 `/opt/wygj/backups/release-20260714041836`,H5 主 JS `index-Dh7w59t7.js` 本地与线上 SHA-256 均为 `0fce49deff7f95b3816cd97cf7b5f1733f31b2815162d141c27be9d1257a1f58`,后端 jar SHA-256 为 `18f4643f401aafeab3ee896d7d6341733f31b2815162d141c27be9d1257a1f58`;生产 API smoke 已验证搜索 `reviewId`、反馈写入 `review_id`,并清理 smoke 记录。
|
||
- 2026-07-14 后续审查:移动端 `/me` 在同一手机号对应多条 active 组织记录时优先识别“主管/项目经理”,避免按首条一线记录误判员工端;正式试点满意度统计改为复用安全 `org_identity`,冲突或无法唯一映射的组织身份不计入满意度分母;模型配置、提示词模板列表/写入、知识库管理/评审和后台案例标注写接口均已补 HR/管理员角色门禁;脚本行为测试已覆盖该边界,但这仍属于数据口径与权限加固,不替代正式组织同步和试点证据。
|
||
- 2026-07-14 线上只读复核:生产根站点与 `/h5/` 均返回 HTTP 200,线上 H5 入口仍加载 `index-Dh7w59t7.js`;`/prod-api/api/aihr/mobile/home/user` 返回业务 `code=200`。本次未发布、未修改生产数据;该结果只证明公开入口和员工首页 API 可用,不替代正式登录、主管身份和试点验收。
|
||
- 本次线上核对发现 schema 漂移:生产库已存在 `aihr_practice_session.satisfaction_score`、`satisfaction_comment`,但尚未显式创建 `aihr_practice_audio`。当前代码仍有运行时懒建表兜底,满意度链路不受影响;正式音频留痕试点前必须执行并核验显式迁移,不能依赖首次请求触发;严格预检已增加该表存在性检查。
|
||
- 2026-07-14 后续 BRD 审查:`组织与权限` 页已确认具备组织快照、dry-run、写入确认和 HR/管理员角色门禁;本轮修正写入模式按钮文案,并避免取消确认时误报“同步接口不可用”。岗位-SOP 页面继续明确显示“当前摘要不代表正式上岗资格”,在正式 `sop_applicability`、培训任务和资格规则未由 HR 确认前,不扩展为伪资格 gating。
|
||
- 2026-07-14 权限审查:候选人面试、案例处理、ASR/TTS、SOP 搜索/反馈/总结卡、候选人资料接口均补控制器级登录门禁;匿名首页与 `position-sop` 导航摘要仍保持公开只读,写入、模型调用和候选人私有记录不再依赖业务层“失败返回”兜底。
|