docs(aihr): sync organization rollout facts
This commit is contained in:
@@ -77,8 +77,8 @@
|
|||||||
- seed service 阶段已完成;后续按 `docs/RUOYI_AI_INCREMENTAL_MIGRATION.md` 分片迁移 `ruoyi-ai` 的知识库、文档解析、RAG、chat 能力。
|
- seed service 阶段已完成;后续按 `docs/RUOYI_AI_INCREMENTAL_MIGRATION.md` 分片迁移 `ruoyi-ai` 的知识库、文档解析、RAG、chat 能力。
|
||||||
- 迁移时不要整包搬 `ruoyi-chat`;优先在 `ruoyi-aihr` 内吸收必要表、service、loader 和检索接口,并保留 seed fallback。
|
- 迁移时不要整包搬 `ruoyi-chat`;优先在 `ruoyi-aihr` 内吸收必要表、service、loader 和检索接口,并保留 seed fallback。
|
||||||
- 已落地的演示流不要退回静态壳:AI 面试、三角色对练、案例沉淀已是真模型优先(未配置/失败回退本地兜底),SOP 知识库、移动端三端首页保留 fallback——改造时降级链必须保留。
|
- 已落地的演示流不要退回静态壳:AI 面试、三角色对练、案例沉淀已是真模型优先(未配置/失败回退本地兜底),SOP 知识库、移动端三端首页保留 fallback——改造时降级链必须保留。
|
||||||
- 本项目 AI 表前缀用 `aihr_*`:知识库是 `aihr_knowledge_info/attach/fragment`,上传队列是 `aihr_knowledge_upload_item`,导入任务是 `aihr_knowledge_import_task`,模型配置是 `aihr_model_provider/config`,移动端训练记录是 `aihr_practice_session`,候选人补充资料是 `aihr_candidate_material`,组织人员快照是 `aihr_org_snapshot`(本地 reset 有 Demo seed;生产/试点从 `docs/open-org-sync-api-design-v1.md` 对应开放组织系统同步,入口 `POST /api/aihr/org/sync`)。外部快照只有 `position_id` 时,可用 HR 签认的 `AIHR_ORG_POSITION_MAP_JSON` 在同步写入前映射岗位;外部显式岗位优先,层级只允许“一线/主管/项目经理”,必须先 dry-run 核对命中/主管人数,禁止按 ID 猜角色。
|
- 本项目 AI 表前缀用 `aihr_*`:知识库是 `aihr_knowledge_info/attach/fragment`,上传队列是 `aihr_knowledge_upload_item`,导入任务是 `aihr_knowledge_import_task`,模型配置是 `aihr_model_provider/config`,移动端训练记录是 `aihr_practice_session`,候选人补充资料是 `aihr_candidate_material`,组织人员快照是 `aihr_org_snapshot`(本地 reset 有 Demo seed;生产/试点从 `docs/open-org-sync-api-design-v1.md` 对应开放组织系统同步,入口 `POST /api/aihr/org/sync`)。人员主键固定优先使用外部资源 `id`,不得让新增 `employee_number` 改写 `ext_party_id`;外部显式岗位优先,非契约数值层级按岗位名称归一为“一线/主管/项目经理”,只有缺岗位字段时才用 HR 签认的 `AIHR_ORG_POSITION_MAP_JSON` 兜底,禁止按 ID 猜角色。
|
||||||
- 2026-07-15 生产开放员工快照只返回 `position_id`,未返回岗位名称,开放 API 也没有岗位字典资源;因此生产 2943 名在职人员当前全部落为 `position_name='员工'`、`position_level='一线'`,主管数为 0。补齐开放平台岗位字段/字典或 HR 正式 `position_id` 映射并重新同步前,不得宣称主管身份与项目权限已验收,也不要在代码里猜 `position_id` 的角色含义。
|
- 生产组织同步必须先 dry-run。若上游手机号为脱敏值,只能在确认稳定 `id` 全量一致后用 `replaceExisting=false` 增量更新,以保留已有手机号;不得用 `allowPartialReplace=true` 强制全量覆盖。2026-07-16 生产为 3417 人、3392 个可映射手机号、在职主管 175、在职项目经理 20,主管身份认证已通过;项目范围正反例和正式短信 OTP 仍须单独验收。
|
||||||
|
|
||||||
## 业务文档
|
## 业务文档
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
- 用户侧 Alpha:三端已在 `mobile-uni/` 按真实页面栈重建,portless 本地入口为 `https://wygj-mobile-uni.localhost/h5/`;员工端路由为 `/h5/#/pages/user/today/index`、`/practice/index`、`/sop/index`、`/profile/index`,候选人端为 `/h5/#/pages/candidate/index/index`,主管端为 `/h5/#/pages/supervisor/index/index`。已接手机号短信登录、问师傅检索/反馈/总结卡、员工训练闭环、案例素材入库、候选人面试/资料、主管复盘/派专项;旧 `mobile/` 不再作为新增功能承载面。三端输入不是统一全模态:员工对练/每日题支持文字和语音、问师傅仅文字,候选面试支持文字和语音且补充资料可传图片,主管端以文字复盘和录音回听为主;详见 [BRD 功能审查记录](docs/BRD_IMPLEMENTATION_AUDIT.md)。
|
- 用户侧 Alpha:三端已在 `mobile-uni/` 按真实页面栈重建,portless 本地入口为 `https://wygj-mobile-uni.localhost/h5/`;员工端路由为 `/h5/#/pages/user/today/index`、`/practice/index`、`/sop/index`、`/profile/index`,候选人端为 `/h5/#/pages/candidate/index/index`,主管端为 `/h5/#/pages/supervisor/index/index`。已接手机号短信登录、问师傅检索/反馈/总结卡、员工训练闭环、案例素材入库、候选人面试/资料、主管复盘/派专项;旧 `mobile/` 不再作为新增功能承载面。三端输入不是统一全模态:员工对练/每日题支持文字和语音、问师傅仅文字,候选面试支持文字和语音且补充资料可传图片,主管端以文字复盘和录音回听为主;详见 [BRD 功能审查记录](docs/BRD_IMPLEMENTATION_AUDIT.md)。
|
||||||
- 英雄路径:AI 面试(真模型出题/评分)、三角色对练(真 LLM 客户回复+评分,asr/tts 配置后支持语音)、案例沉淀(真实语音上传+ASR 转写+模型整理)均为真模型优先、未配置或失败回退本地兜底;SOP 知识库已接中文关键词 + MySQL Fulltext + Qdrant 混合召回 + rerank 重排,支持 txt/md/PDF/Word/Excel/PPT/图片/视频上传解析入库(图片走 vision OCR,视频走 ffmpeg 抽音轨转写+关键帧描述),资料处理中心支持 ZIP 异步展开后逐文件入队;模型配置页可查看向量库维度/点数并一键重建。
|
- 英雄路径:AI 面试(真模型出题/评分)、三角色对练(真 LLM 客户回复+评分,asr/tts 配置后支持语音)、案例沉淀(真实语音上传+ASR 转写+模型整理)均为真模型优先、未配置或失败回退本地兜底;SOP 知识库已接中文关键词 + MySQL Fulltext + Qdrant 混合召回 + rerank 重排,支持 txt/md/PDF/Word/Excel/PPT/图片/视频上传解析入库(图片走 vision OCR,视频走 ffmpeg 抽音轨转写+关键帧描述),资料处理中心支持 ZIP 异步展开后逐文件入队;模型配置页可查看向量库维度/点数并一键重建。
|
||||||
- 资料处理:已新增解析任务状态页,按 `aihr_knowledge_attach` 和 `aihr_knowledge_fragment` 展示等待解析、解析中、已完成、失败、片段数和向量化状态;任务列表按当前筛选结果前端分页(10/20/50 条,筛选或刷新回到第一页)。页面只保留“批量导入”,通过异步队列处理多文件或 ZIP,不提供浏览器目录选择和服务端目录导入入口。后端目录导入接口仅保留为运维/调试能力。
|
- 资料处理:已新增解析任务状态页,按 `aihr_knowledge_attach` 和 `aihr_knowledge_fragment` 展示等待解析、解析中、已完成、失败、片段数和向量化状态;任务列表按当前筛选结果前端分页(10/20/50 条,筛选或刷新回到第一页)。页面只保留“批量导入”,通过异步队列处理多文件或 ZIP,不提供浏览器目录选择和服务端目录导入入口。后端目录导入接口仅保留为运维/调试能力。
|
||||||
- 组织人员:`aihr_org_snapshot` 本地 reset 保留演示 seed;配置开放组织同步系统后,通过 `POST /api/aihr/org/sync` 从 `/api/open/v1/sync/snapshot` 拉取公司、部门、员工快照并刷新本地组织人员口径。2026-07-15 已在线上完成外部同步配置和覆盖同步,生产快照为 3417 名员工,其中 3392 人可通过手机号映射,25 人为上游手机号数据不可用。当前开放快照只有 `position_id`、没有岗位名称或岗位字典;代码已支持用 HR 签认的 `AIHR_ORG_POSITION_MAP_JSON` 在同步时兜底映射岗位,但生产尚未配置,2943 名在职人员暂全部归为“一线”,主管身份与项目权限仍待映射后验收。
|
- 组织人员:`aihr_org_snapshot` 本地 reset 保留演示 seed;生产通过 `POST /api/aihr/org/sync` 从 `/api/open/v1/sync/snapshot` 同步公司、部门、员工和岗位。2026-07-16 生产快照为 3417 人、3392 个可映射手机号、在职 2938 人,其中主管 175、项目经理 20;真实主管登录已返回主管端。上游当前对 3391 个有效手机号返回脱敏值,系统以稳定资源 `id` 增量更新并保留已有手机号;新员工/换号仍需开放平台提供获授权的安全身份映射通道。
|
||||||
- 正式试点:管理端可按起止日期导出正式试点 CSV,严格门禁只统计唯一映射到在职组织的训练、校准和 SOP 评审。组织身份同步和至少 20 名手机号映射门槛已具备;下一步仍需选定真实试点窗口,产生员工训练、人工校准和 SOP 评审样本后重跑严格门禁,详见 [演示与试点验收](docs/DEMO_ACCEPTANCE.md)。
|
- 正式试点:管理端可按起止日期导出正式试点 CSV,严格门禁只统计唯一映射到在职组织的训练、校准和 SOP 评审。组织身份同步和至少 20 名手机号映射门槛已具备;下一步仍需选定真实试点窗口,产生员工训练、人工校准和 SOP 评审样本后重跑严格门禁,详见 [演示与试点验收](docs/DEMO_ACCEPTANCE.md)。
|
||||||
- 侧栏:MVP 阶段只展示“首页 / AI面试 / 三角色对练 / 案例沉淀 / SOP知识库 / 资料处理 / 系统设置-模型配置”,其余若依默认菜单暂时隐藏。
|
- 侧栏:MVP 阶段只展示“首页 / AI面试 / 三角色对练 / 案例沉淀 / SOP知识库 / 资料处理 / 系统设置-模型配置”,其余若依默认菜单暂时隐藏。
|
||||||
- 本地短信:真实阿里云短信参数放根目录 `.env.local`,由 `scripts/dev-backend.sh` 自动加载;不要把密钥写入 `application-dev.yml`。dev 未配短信时验证码固定 `123456`(`aihr.sms.dev-fixed-code`,prod 强制失效)。
|
- 本地短信:真实阿里云短信参数放根目录 `.env.local`,由 `scripts/dev-backend.sh` 自动加载;不要把密钥写入 `application-dev.yml`。dev 未配短信时验证码固定 `123456`(`aihr.sms.dev-fixed-code`,prod 强制失效)。
|
||||||
@@ -66,4 +66,4 @@
|
|||||||
|
|
||||||
## 下一步
|
## 下一步
|
||||||
|
|
||||||
现役验收入口是 [DEMO_ACCEPTANCE.md](docs/DEMO_ACCEPTANCE.md)。阶段一工程闭环、组织人员与手机号同步已就绪;当前主线是先补齐正式岗位/主管映射,再选定 1–2 个项目、至少 20 名员工和每项目主管的真实试点窗口,产生训练、校准和 SOP 业务评审样本后重跑 M5 严格门禁;详见 [BRD 对齐工作计划](docs/下一步工作计划-BRD对齐-20260715.md)。大喇叭信息平台、知识学习平台和北森对接属阶段二/三,不进当前主线。
|
现役验收入口是 [DEMO_ACCEPTANCE.md](docs/DEMO_ACCEPTANCE.md)。阶段一工程闭环、组织身份与主管认证已就绪;当前主线是圈定 1–2 个项目、至少 20 名员工和每项目主管的正式试点窗口,验证项目范围正反例,并产生训练、校准和 SOP 业务评审样本后重跑 M5 严格门禁;详见 [BRD 对齐工作计划](docs/下一步工作计划-BRD对齐-20260715.md)。大喇叭信息平台、知识学习平台和北森对接属阶段二/三,不进当前主线。
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ mobile-uni/
|
|||||||
|
|
||||||
截至 2026-07-10,`mobile-uni/` 已是用户、主管、候选人三端的现役页面栈,旧 `mobile/` 仅作 MVP 兜底。三端均以登录身份和真实 API 驱动:员工完成训练、问师傅和成长回读;主管按后端组织范围进行团队、复盘和专项指派;候选人按真实面试/资料状态进入独立线性页面。H5 构建、真实浏览器主链路和接口回读均已完成验证,不使用前端 mock 掩盖业务状态。
|
截至 2026-07-10,`mobile-uni/` 已是用户、主管、候选人三端的现役页面栈,旧 `mobile/` 仅作 MVP 兜底。三端均以登录身份和真实 API 驱动:员工完成训练、问师傅和成长回读;主管按后端组织范围进行团队、复盘和专项指派;候选人按真实面试/资料状态进入独立线性页面。H5 构建、真实浏览器主链路和接口回读均已完成验证,不使用前端 mock 掩盖业务状态。
|
||||||
|
|
||||||
2026-07-15 更新:组织人员和手机号同步门槛已从上游数据问题中恢复,线上 `aihr_org_snapshot` 已覆盖为 3417 名员工,其中 3392 人可手机号映射,25 人手机号仍不可用,疑似乱码为 0。但开放员工快照只返回 `position_id`,没有岗位名称或岗位字典,生产 2943 名在职人员全部回退为“一线”,主管身份尚未恢复。下一阶段需先补正式岗位映射,再组织 1–2 个项目、至少 20 名员工和项目主管的联合试点验收,不继续把功能堆回首页或旧单页。
|
2026-07-16 更新:线上 `aihr_org_snapshot` 已同步 3417 人并保留 3392 个手机号映射,在职 2938 人、主管 175 人、项目经理 20 人;真实主管登录已返回主管端。下一阶段不再补岗位映射,而是圈定 1–2 个项目、至少 20 名员工和项目主管,验证项目范围正反例并进入联合试点,不继续把功能堆回首页或旧单页。
|
||||||
|
|
||||||
- 第一批用户侧主链路已落地到 `mobile-uni/`: 登录、今日页、问师傅、答案反馈、总结卡、对练页、个人页。
|
- 第一批用户侧主链路已落地到 `mobile-uni/`: 登录、今日页、问师傅、答案反馈、总结卡、对练页、个人页。
|
||||||
- 本机开发入口已切到 portless: `https://wygj-mobile-uni.localhost/h5/`。
|
- 本机开发入口已切到 portless: `https://wygj-mobile-uni.localhost/h5/`。
|
||||||
@@ -254,7 +254,7 @@ mobile-uni/
|
|||||||
- 主管权限已以后端组织快照为准: 只有在职“主管/项目经理”可访问团队、预警、复盘和指派接口;普通员工真实浏览器验证只显示“无主管权限”及返回员工端/切换账号,不泄露团队指标和表单草稿。
|
- 主管权限已以后端组织快照为准: 只有在职“主管/项目经理”可访问团队、预警、复盘和指派接口;普通员工真实浏览器验证只显示“无主管权限”及返回员工端/切换账号,不泄露团队指标和表单草稿。
|
||||||
- 主管复盘写入已补事务和幂等: 仅 `待复盘 -> 已复盘` 的首次状态转换创建后续专项;并发重复请求通过行锁读取最终状态,不重复派发。
|
- 主管复盘写入已补事务和幂等: 仅 `待复盘 -> 已复盘` 的首次状态转换创建后续专项;并发重复请求通过行锁读取最终状态,不重复派发。
|
||||||
- 主管端已用真实项目经理账号验证组织范围: 本地正式快照返回 19 名团队成员、1 条待复盘、2 项待训练和 1 条低分预警;团队页、复盘页和指派页均读取真实接口,不补前端 mock。
|
- 主管端已用真实项目经理账号验证组织范围: 本地正式快照返回 19 名团队成员、1 条待复盘、2 项待训练和 1 条低分预警;团队页、复盘页和指派页均读取真实接口,不补前端 mock。
|
||||||
- 正式组织快照中的不可读问号姓名在用户侧回退为手机号尾号或外部 ID 末尾标识,真实 ID 保持不变;2026-07-15 开放组织 dry-run 已确认疑似乱码为 0,线上同步后剩余问题收敛为 25 名员工手机号不可用。
|
- 正式组织快照中的不可读问号姓名在用户侧回退为手机号尾号或外部 ID 末尾标识,真实 ID 保持不变;2026-07-16 开放组织 dry-run 已确认疑似乱码为 0。上游现对 3391 个有效手机号返回脱敏值、另有 25 人无有效手机号;生产以稳定 `id` 增量更新并保留已有 3392 个映射。
|
||||||
- 候选人端已完成线性页面栈拆分: 原 750 行长页收敛为候选首页、面试任务、补充资料、进度通知和岗前预习 5 个路由;首页只展示真实状态和办理入口,不再原地展开所有表单和结果。
|
- 候选人端已完成线性页面栈拆分: 原 750 行长页收敛为候选首页、面试任务、补充资料、进度通知和岗前预习 5 个路由;首页只展示真实状态和办理入口,不再原地展开所有表单和结果。
|
||||||
- 候选人流程状态已抽成共享纯函数: 只根据当前候选人的正式面试记录和最新资料状态派生“待面试/待补资料/审核中/已通过”,不读取公开 home seed,不补前端 mock。
|
- 候选人流程状态已抽成共享纯函数: 只根据当前候选人的正式面试记录和最新资料状态派生“待面试/待补资料/审核中/已通过”,不读取公开 home seed,不补前端 mock。
|
||||||
- 候选面试页继续复用真实 `/api/recruit/interview/start|answer|finish|records`: 浏览器以当前移动账号验证 `/start` 返回 3 道岗位题,未提交答案和评分,避免产生额外正式面试记录。
|
- 候选面试页继续复用真实 `/api/recruit/interview/start|answer|finish|records`: 浏览器以当前移动账号验证 `/start` 返回 3 道岗位题,未提交答案和评分,避免产生额外正式面试记录。
|
||||||
@@ -263,7 +263,7 @@ mobile-uni/
|
|||||||
- 候选岗前预习页改为自然业务问题检索正式 SOP: 浏览器验证投诉预习返回正式答案、关键要点、注意事项,引用命中 `投诉处理 SOP v1.0`、`生活顾问的一天.mp4` 和正式课件,无前端示例答案。
|
- 候选岗前预习页改为自然业务问题检索正式 SOP: 浏览器验证投诉预习返回正式答案、关键要点、注意事项,引用命中 `投诉处理 SOP v1.0`、`生活顾问的一天.mp4` 和正式课件,无前端示例答案。
|
||||||
- 演示预检已跟随页面栈更新: `scripts/demo-check.sh` 改为检查主管复盘详情和候选 4 个子路由,不再在旧主管首页查复盘表单标记;本地数据库连接不可用时非严格模式明确跳过样本、严格模式继续失败。
|
- 演示预检已跟随页面栈更新: `scripts/demo-check.sh` 改为检查主管复盘详情和候选 4 个子路由,不再在旧主管首页查复盘表单标记;本地数据库连接不可用时非严格模式明确跳过样本、严格模式继续失败。
|
||||||
- 本地连接耗尽已处置: 清理未被 portless 使用的旧后端实例并重启本地 MySQL 后,连接稳定在约 `11/151`,当前 API HTTP 200;`dev.sh stop/restart` 已改为安全终止 portless 进程树,避免旧 Java/Vite 子进程继续占用连接池。
|
- 本地连接耗尽已处置: 清理未被 portless 使用的旧后端实例并重启本地 MySQL 后,连接稳定在约 `11/151`,当前 API HTTP 200;`dev.sh stop/restart` 已改为安全终止 portless 进程树,避免旧 Java/Vite 子进程继续占用连接池。
|
||||||
- 试点严格预检已改为正式批次口径: 必须指定起止日期,训练、校准和 SOP 评审只统计该时间窗;人员通过唯一手机号映射到在职组织,排除重复手机号和身份碰撞,完训定义为每人至少 10 次。2026-07-15 线上组织快照已具备 `employees=3417 phone_linked=3392 masked_phone=25 suspect_text=0`;旧窗口 `2026-07-07..2026-07-10` 仍因无人达到 10 次训练、缺少正式校准样本而失败,所以后续需用新试点窗口重跑,不能沿用开发活动数据。
|
- 试点严格预检已改为正式批次口径: 必须指定起止日期,训练、校准和 SOP 评审只统计该时间窗;人员通过唯一手机号映射到在职组织,排除重复手机号和身份碰撞,完训定义为每人至少 10 次。2026-07-16 生产组织表具备 `employees=3417 phone_linked=3392 active=2938`,主管身份已可认证;旧窗口 `2026-07-07..2026-07-10` 仍因无人达到 10 次训练、缺少正式校准样本而失败,所以后续需用新试点窗口重跑,不能沿用开发活动数据。
|
||||||
- 管理端试点 CSV 已与严格预检统一口径: 必须选择起止日期,只导出窗口内唯一匹配正式组织的训练明细,完训按每人至少 10 次,校准必须关联正式试点会话。组织快照覆盖后 CSV 的人员映射能力已具备;下一步需在正式试点窗口产生真实训练、校准和 SOP 评审记录后重新导出,此前开发会话中的 20 条校准不再计入正式验收。
|
- 管理端试点 CSV 已与严格预检统一口径: 必须选择起止日期,只导出窗口内唯一匹配正式组织的训练明细,完训按每人至少 10 次,校准必须关联正式试点会话。组织快照覆盖后 CSV 的人员映射能力已具备;下一步需在正式试点窗口产生真实训练、校准和 SOP 评审记录后重新导出,此前开发会话中的 20 条校准不再计入正式验收。
|
||||||
- 发布会正式候选题已重新走查: Q01-Q12 `12/12` 返回有效答案和依据,来源告警 `0`,向量状态 `450/450`;仍有 119 条 SOP 问答待业务评审,不把开发方走查替代业务签字。
|
- 发布会正式候选题已重新走查: Q01-Q12 `12/12` 返回有效答案和依据,来源告警 `0`,向量状态 `450/450`;仍有 119 条 SOP 问答待业务评审,不把开发方走查替代业务签字。
|
||||||
- 下一阶段进入三端联合试点门槛: 复跑员工-主管-候选人角色切换、清理本地验证数据、选择真实项目与员工样本并完成 H5 发布后验收;不把本次页面拆分等同一期生产验收完成。
|
- 下一阶段进入三端联合试点门槛: 复跑员工-主管-候选人角色切换、清理本地验证数据、选择真实项目与员工样本并完成 H5 发布后验收;不把本次页面拆分等同一期生产验收完成。
|
||||||
@@ -274,4 +274,4 @@ mobile-uni/
|
|||||||
- H5 路由和将来小程序路径不完全一致,页面命名要早期克制。
|
- H5 路由和将来小程序路径不完全一致,页面命名要早期克制。
|
||||||
- 旧 H5 在 Alpha 前仍承担演示兜底,新工程未完成替换前不能下线旧入口。
|
- 旧 H5 在 Alpha 前仍承担演示兜底,新工程未完成替换前不能下线旧入口。
|
||||||
- 如果后端某些接口仍要求管理端 token,需要后端补移动端认证口径,不能在新前端绕过认证。
|
- 如果后端某些接口仍要求管理端 token,需要后端补移动端认证口径,不能在新前端绕过认证。
|
||||||
- 线上组织快照已完成开放组织覆盖同步并消除疑似乱码;剩余 25 名员工手机号不可用属于上游数据质量问题,不阻塞功能发布,但这些人员在修复前无法通过手机号自动映射身份。
|
- 线上组织快照已消除疑似乱码并完成岗位增量同步;25 人无有效手机号仍无法登录,上游脱敏还会阻止新增/换号人员自动补齐,需提供获授权的安全身份映射通道。
|
||||||
|
|||||||
@@ -167,8 +167,8 @@
|
|||||||
| 领域 | 当前证据 | 结论 |
|
| 领域 | 当前证据 | 结论 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 员工端今日/练/问/我 | `mobile-uni/src/pages/user/*`;员工首页、训练前预习、独立练习路由已实现 | 2026-07-14 已同步线上 H5;线上主 JS 与本地构建 SHA-256 一致,学习页已显示错题本和原因筛选,后续只做发布后回归 |
|
| 员工端今日/练/问/我 | `mobile-uni/src/pages/user/*`;员工首页、训练前预习、独立练习路由已实现 | 2026-07-14 已同步线上 H5;线上主 JS 与本地构建 SHA-256 一致,学习页已显示错题本和原因筛选,后续只做发布后回归 |
|
||||||
| 主管工作台/复盘/派发 | `mobile-uni/src/pages/supervisor/*`;线上工作台已完成视觉回归 | 页面主链路已在位;正式主管身份仍依赖组织数据 |
|
| 主管工作台/复盘/派发 | `mobile-uni/src/pages/supervisor/*`;线上工作台已完成视觉回归 | 页面主链路已在位;生产已有在职主管 175、项目经理 20,真实主管登录返回主管端;项目范围正反例仍待 B3 圈定项目后验收 |
|
||||||
| 训练音频对象权限 | `AihrMobileController`、`AihrPracticeSeedService`;`GET /api/aihr/mobile/oss/{ossId}` | 已按员工本人、主管项目范围和系统用户区分音频读取权限;本地真实 HTTP 验证:归属员工 200,其他员工 403;生产正式主管范围仍需组织同步数据支撑 |
|
| 训练音频对象权限 | `AihrMobileController`、`AihrPracticeSeedService`;`GET /api/aihr/mobile/oss/{ossId}` | 已按员工本人、主管项目范围和系统用户区分音频读取权限;本地真实 HTTP 验证:归属员工 200,其他员工 403;生产主管身份已就位,仍需用正式试点项目验证跨项目拒绝 |
|
||||||
| 候选人面试与 HR 复核 | `mobile-uni/src/pages/candidate/*`、`frontend/src/views/recruit/interview.vue`、`AihrInterviewController` | 候选人资料移动端上传/列表只接受 APP 候选人本人身份,HR 通过独立审核接口处理;AI 面试结果现已持久化 `待复核/已复核`、AI 分、人工复核分、最终采用分、复核人、意见和时间,管理端可提交人工复核;正式试点仍需抽查复核证据 |
|
| 候选人面试与 HR 复核 | `mobile-uni/src/pages/candidate/*`、`frontend/src/views/recruit/interview.vue`、`AihrInterviewController` | 候选人资料移动端上传/列表只接受 APP 候选人本人身份,HR 通过独立审核接口处理;AI 面试结果现已持久化 `待复核/已复核`、AI 分、人工复核分、最终采用分、复核人、意见和时间,管理端可提交人工复核;正式试点仍需抽查复核证据 |
|
||||||
| SOP/RAG/资料处理 | `frontend/src/views/knowledge/*`、`backend/.../AihrSopSeedService.java` | 搜索、引用、反馈、异步处理和评审入口已在位 |
|
| SOP/RAG/资料处理 | `frontend/src/views/knowledge/*`、`backend/.../AihrSopSeedService.java` | 搜索、引用、反馈、异步处理和评审入口已在位 |
|
||||||
| 对练/每日题/主管带教 | `backend/.../AihrPracticeSeedService.java`、`mobile-uni/src/pages/user/practice` | 每日三题现支持文字或录音转写,语音 `audioUrl/ossId` 随作业提交并持久化;普通陪练、即时反馈、低分再练、错题归因和主管带教已在位,正式窗口仍需验证真实音频与低分样本 |
|
| 对练/每日题/主管带教 | `backend/.../AihrPracticeSeedService.java`、`mobile-uni/src/pages/user/practice` | 每日三题现支持文字或录音转写,语音 `audioUrl/ossId` 随作业提交并持久化;普通陪练、即时反馈、低分再练、错题归因和主管带教已在位,正式窗口仍需验证真实音频与低分样本 |
|
||||||
@@ -180,12 +180,12 @@
|
|||||||
|
|
||||||
| 缺口 | BRD依据 | 当前事实 | 下一步 |
|
| 缺口 | 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`、手机号;补齐手机号映射并确认主管身份后,才执行正式同步和主管数据权限验收 |
|
| 正式主管身份、项目范围和数据权限 | 5.4、L1-B、G3 | 生产组织快照为 3417 人、3392 个手机号映射、在职 2938;岗位已归一为一线/主管/项目经理,在职主管 175、项目经理 20,真实主管登录 `/api/aihr/mobile/me` 返回主管端。上游手机号现为脱敏展示,本次按稳定资源 `id` 增量更新并保留已有映射;重复主键、非法层级均为 0 | B3 圈定 1–2 个正式试点项目后,用主管账号验证本项目可见、跨项目拒绝、训练记录与待复盘均按项目过滤;另用正式短信 OTP 补认证证据 |
|
||||||
| 组织快照姓名/部门存储边界 | BRD 5.4、TechSpec 3.1 | BRD 要求本地只存外部 `party_id`,当前快照历史表仍有姓名/部门字段;已增加生产默认关闭的 `store-display-fields`,新同步和快照 API 可不再写/返姓名部门,但旧行尚未清理,且 `person_phone` 仍用于身份映射 | 由业务/法务/安全确定最小字段清单和保留期;完成历史数据清理、生产迁移和管理端只读展示方案后,才能关闭该 P0 |
|
| 组织快照姓名/部门存储边界 | BRD 5.4、TechSpec 3.1 | BRD 要求本地只存外部 `party_id`,当前快照历史表仍有姓名/部门字段;已增加生产默认关闭的 `store-display-fields`,新同步和快照 API 可不再写/返姓名部门,但旧行尚未清理,且 `person_phone` 仍用于身份映射 | 由业务/法务/安全确定最小字段清单和保留期;完成历史数据清理、生产迁移和管理端只读展示方案后,才能关闭该 P0 |
|
||||||
| G5 情绪疏导树洞隐私边界 | BRD 12.1、附录 A 第三层 | 当前仓库没有树洞入口、独立存储、留痕策略、训练集排除机制或删除/审计合同;历史一期方案明确将“情绪疏导树洞”列为一期不做。现有陪练中的情绪识别、纠偏和反馈属于训练证据,不能冒充“不留痕树洞” | 在进入正式生产前由业务、法务和安全共同确认是否纳入当前阶段;若纳入,必须单独定义匿名/身份边界、零落库与日志脱敏、模型供应商留存、删除证明和误伤升级路径;在决策和合同未明确前保持未实现,不用陪练情绪数据承接树洞诉求 |
|
| G5 情绪疏导树洞隐私边界 | BRD 12.1、附录 A 第三层 | 当前仓库没有树洞入口、独立存储、留痕策略、训练集排除机制或删除/审计合同;历史一期方案明确将“情绪疏导树洞”列为一期不做。现有陪练中的情绪识别、纠偏和反馈属于训练证据,不能冒充“不留痕树洞” | 在进入正式生产前由业务、法务和安全共同确认是否纳入当前阶段;若纳入,必须单独定义匿名/身份边界、零落库与日志脱敏、模型供应商留存、删除证明和误伤升级路径;在决策和合同未明确前保持未实现,不用陪练情绪数据承接树洞诉求 |
|
||||||
| 外部 AI 的 PII 出境与留存 | 4.3.2、4.3.3、G3、G6 | 对练、面试、SOP、Embedding、Rerank、TTS 的文本请求已统一做最小脱敏;ASR 仍发送音频本体,视觉 OCR/视频关键帧仍发送图片本体,当前没有供应商不留存、删除证明或本地语音/视觉模型证据;视频失败日志已遮蔽文件名中的已知 PII | 正式试点前由业务、法务和安全确认供应商留存/训练/跨境条款,或切换本地模型;补音频、图片的审计与删除证据后,才能把 G3/G6 判为通过 |
|
| 外部 AI 的 PII 出境与留存 | 4.3.2、4.3.3、G3、G6 | 对练、面试、SOP、Embedding、Rerank、TTS 的文本请求已统一做最小脱敏;ASR 仍发送音频本体,视觉 OCR/视频关键帧仍发送图片本体,当前没有供应商不留存、删除证明或本地语音/视觉模型证据;视频失败日志已遮蔽文件名中的已知 PII | 正式试点前由业务、法务和安全确认供应商留存/训练/跨境条款,或切换本地模型;补音频、图片的审计与删除证据后,才能把 G3/G6 判为通过 |
|
||||||
| LLM/ASR/TTS 调用成本计量与自动降级 | 6.3、12.1、G6、TechSpec 3.8 | 已有 `AIHR_AI_RUNTIME_ENABLED`、`AIHR_AI_CHAT_ENABLED`、`AIHR_AI_SPEECH_ENABLED` 手动断路器;当前没有 `llm_call_log`,也没有按模块、模型、token、延迟和费用的持久化月度计量,不能把手动开关宣称为成本闸门已完成 | 先由供应商/财务确认 token 计费字段、单价、月度上限和告警阈值,再新增租户范围的调用日志与自动降级;在计费契约明确前保持手动断路器,不硬编码价格或用日志估算正式成本 |
|
| LLM/ASR/TTS 调用成本计量与自动降级 | 6.3、12.1、G6、TechSpec 3.8 | 已有 `AIHR_AI_RUNTIME_ENABLED`、`AIHR_AI_CHAT_ENABLED`、`AIHR_AI_SPEECH_ENABLED` 手动断路器;当前没有 `llm_call_log`,也没有按模块、模型、token、延迟和费用的持久化月度计量,不能把手动开关宣称为成本闸门已完成 | 先由供应商/财务确认 token 计费字段、单价、月度上限和告警阈值,再新增租户范围的调用日志与自动降级;在计费契约明确前保持手动断路器,不硬编码价格或用日志估算正式成本 |
|
||||||
| 管理端/后端生产发布证据 | 6.3、12.1、L1-C | 生产 `wygj-aihr.service` active,根站、租户列表和员工首页 API 返回 200;但线上仍是管理端 `index-B9T505HT.js`、H5 `index-CDn6TrX8.js`,当前分支最新提交的本地构建资源和后端包均未与线上对齐,本轮没有执行发布;生产验证码拒绝开发固定码 `123456`,认证态回归仍未完成 | 先在发布窗口执行备份、版本化迁移、静态资源/后端同步和回滚验证;随后用正式 OTP/测试账号完成员工、主管、管理端认证态回归,不能把线上 HTTP 200 或旧包 active 等同于当前提交已发布 |
|
| 管理端/后端生产发布证据 | 6.3、12.1、L1-C | 管理端/H5 已对应 `f0175253` 发布批次;组织结构兼容后端 JAR SHA-256 为 `e0fa1af55113404588653ebff555872986aa5d9119b9a0ee016e15268ba38c2f`,本地/线上一致,`wygj-aihr.service` active,租户和员工首页 API 业务码 200。真实主管已用生产试点固定码登录成功,但固定码不等于正式短信 OTP | 保持当前发布证据;关闭试点固定码后补正式 OTP,并按 B3 项目范围完成主管权限正反例,不把服务健康等同于正式试点验收 |
|
||||||
| M5 正式试点证据 | L1-B/C/D、G1/G3/G4 | 已补员工训练后 1–5 分满意度和可选意见采集,意见脱敏后写入 `aihr_practice_session`,CSV/严格门禁可读满意度响应数与平均分;但本地样本不能代表正式窗口,仍不能用 seed/烟测数据替代,尚无法证明“满意度 ≥4/5” | 固定 1–2 个住宅项目和窗口,按唯一在职身份采集训练、人工校准、SOP 评审、完训率和满意度;严格门禁要求满意度有真实响应且平均分 ≥4.0/5 |
|
| 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 建议且不直接挂钩绩效/晋升 |
|
| AI 分数与人工复核边界 | 4.1、4.5、G1/G2 | 面试和对练已有人工复核/校准入口;正式试点 CSV 已补明细级 AI 分、人工校准分、校准人、校准时间和最终采用分;管理端与员工端均已显示“AI 仅作辅助参考、人可复核/否决、不直接决定绩效或晋升”;正式试点仍需用真实窗口验证人工可否决证据 | 在正式试点报告中抽查校准记录与最终采用值,确认人工分可覆盖 AI 建议且不直接挂钩绩效/晋升 |
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
试点正式验收前,用 `AIHR_PILOT_TENANT_ID=000000 AIHR_PILOT_START_DATE=2026-07-07 AIHR_PILOT_END_DATE=2026-07-10 AIHR_PILOT_STRICT=true ./scripts/demo-check.sh` 检查 M5 样本闸门,租户和日期替换为本批试点的真实值。闸门只统计目标租户、该时间窗内的数据;正式试点人员必须通过唯一手机号映射到在职组织快照,达到 10 次已完成对练的人数需覆盖试点人员的 80% 以上。校准样本、AI/人工分档一致率和 SOP 可用率未达标时同样失败,不用静态演示 marker 或历史 seed 数据代替真实试点数据。
|
试点正式验收前,用 `AIHR_PILOT_TENANT_ID=000000 AIHR_PILOT_START_DATE=2026-07-07 AIHR_PILOT_END_DATE=2026-07-10 AIHR_PILOT_STRICT=true ./scripts/demo-check.sh` 检查 M5 样本闸门,租户和日期替换为本批试点的真实值。闸门只统计目标租户、该时间窗内的数据;正式试点人员必须通过唯一手机号映射到在职组织快照,达到 10 次已完成对练的人数需覆盖试点人员的 80% 以上。校准样本、AI/人工分档一致率和 SOP 可用率未达标时同样失败,不用静态演示 marker 或历史 seed 数据代替真实试点数据。
|
||||||
|
|
||||||
2026-07-15 线上组织同步快照:开放平台返回 17 个公司、963 个部门、3417 名员工;生产 `aihr_org_snapshot` 已覆盖为 3417 行,其中 3392 人具备可用于手机号登录映射的号码,25 人手机号仍不可用,疑似乱码为 0,在职 2943 人、离职 474 人。人员/手机号和“至少 20 名正式人员可映射”的门槛已具备;但开放员工快照只返回 `position_id`,没有岗位名称或岗位字典,生产 2943 名在职人员全部落为“一线”,正式主管数为 0。补齐岗位映射并重新同步前,主管认证态与跨项目权限不得标为通过。严格试点还必须用真实批次窗口产生训练、人工校准和 SOP 评审样本;旧窗口不能作为一期业务验收完成证据。
|
2026-07-16 线上组织同步快照:开放平台返回 17 个公司、960 个部门、3417 名员工;生产 `aihr_org_snapshot` 为 3417 行,其中 3392 人具备手机号映射,在职 2938 人、离职 479 人、在职主管 175 人、在职项目经理 20 人,真实主管手机号登录已返回主管端。上游当前对 3391 个有效手机号返回脱敏值、另有 25 人无有效手机号,因此本次按稳定资源 `id` 增量更新并保留已有手机号;不得强制全量覆盖。人员和主管身份门槛已具备,但跨项目权限正反例、正式短信 OTP 以及真实窗口内的训练、人工校准和 SOP 评审样本仍须单独验收;旧窗口不能作为一期业务验收完成证据。
|
||||||
|
|
||||||
## 录屏兜底
|
## 录屏兜底
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -50,7 +50,7 @@ portless
|
|||||||
|
|
||||||
Qdrant 默认本地无需配置;远端或自定义 collection 可用 `AIHR_QDRANT_URL`、`AIHR_QDRANT_COLLECTION`、`AIHR_QDRANT_API_KEY` 覆盖。服务端资料导入根目录可用 `AIHR_IMPORT_ROOT` 或 `-Daihr.import.root` 覆盖。组织人员同步可用 `AIHR_ORG_SYNC_BASE_URL` 指向外部开放平台 `/api/open/v1` 前缀,并配置 `AIHR_ORG_SYNC_ACCESS_TOKEN` 或 `AIHR_ORG_SYNC_CLIENT_ID`/`AIHR_ORG_SYNC_CLIENT_SECRET`;业务请求会用 client secret 生成 HMAC-SHA256 hex 签名。移动端手机号登录的短信模板 ID、阿里云 AccessKey、Secret 和短信签名都通过环境变量注入;本地放根目录 `.env.local`,`scripts/dev-backend.sh` 会自动加载。若开放平台凭证放在 `backend/.env`,启动脚本也会加载该文件,并把 `client_id`/`client_secret` 映射为组织同步实际读取的 `AIHR_ORG_SYNC_CLIENT_ID`/`AIHR_ORG_SYNC_CLIENT_SECRET`。
|
Qdrant 默认本地无需配置;远端或自定义 collection 可用 `AIHR_QDRANT_URL`、`AIHR_QDRANT_COLLECTION`、`AIHR_QDRANT_API_KEY` 覆盖。服务端资料导入根目录可用 `AIHR_IMPORT_ROOT` 或 `-Daihr.import.root` 覆盖。组织人员同步可用 `AIHR_ORG_SYNC_BASE_URL` 指向外部开放平台 `/api/open/v1` 前缀,并配置 `AIHR_ORG_SYNC_ACCESS_TOKEN` 或 `AIHR_ORG_SYNC_CLIENT_ID`/`AIHR_ORG_SYNC_CLIENT_SECRET`;业务请求会用 client secret 生成 HMAC-SHA256 hex 签名。移动端手机号登录的短信模板 ID、阿里云 AccessKey、Secret 和短信签名都通过环境变量注入;本地放根目录 `.env.local`,`scripts/dev-backend.sh` 会自动加载。若开放平台凭证放在 `backend/.env`,启动脚本也会加载该文件,并把 `client_id`/`client_secret` 映射为组织同步实际读取的 `AIHR_ORG_SYNC_CLIENT_ID`/`AIHR_ORG_SYNC_CLIENT_SECRET`。
|
||||||
|
|
||||||
组织同步写入前先运行只读预检:`node scripts/verify-demo-questions.mjs --org-dry-run`。dry-run 不检查或变更本地快照表结构,也不写数据库;输出只包含人数、手机号覆盖、脱敏数、疑似乱码数和警告,不输出员工姓名。2026-07-15 当前开放平台数据已满足写入条件:3417 名员工中 3392 人可手机号映射,疑似乱码为 0;仍有 25 人手机号不可用,确认后可用 `allowPartialReplace=true` 覆盖写入。
|
组织同步写入前先运行只读预检:`node scripts/verify-demo-questions.mjs --org-dry-run`。dry-run 不检查或变更本地快照表结构,也不写数据库;输出只包含人数、手机号覆盖、脱敏数、疑似乱码数和警告,不输出员工姓名。若上游返回脱敏手机号,禁止用 `allowPartialReplace=true` 强制全量覆盖;先确认新旧稳定资源 `id` 全量一致,再备份 `aihr_org_snapshot` 并用 `replaceExisting=false` 增量更新,空手机号会保留已有值。2026-07-16 生产按此路径保留 3392 个手机号并同步 3417 人岗位。
|
||||||
|
|
||||||
正式试点预检必须指定当前批次租户和时间窗,例如:`AIHR_PILOT_TENANT_ID=000000 AIHR_PILOT_START_DATE=2026-07-07 AIHR_PILOT_END_DATE=2026-07-10 AIHR_PILOT_STRICT=true ./scripts/demo-check.sh`。脚本只接受安全租户编号和 `YYYY-MM-DD` 日期,只统计目标租户窗口内完成的训练、校准和 SOP 评审;人员先按唯一手机号映射到在职组织快照,完训口径为每人至少 10 次已完成对练。
|
正式试点预检必须指定当前批次租户和时间窗,例如:`AIHR_PILOT_TENANT_ID=000000 AIHR_PILOT_START_DATE=2026-07-07 AIHR_PILOT_END_DATE=2026-07-10 AIHR_PILOT_STRICT=true ./scripts/demo-check.sh`。脚本只接受安全租户编号和 `YYYY-MM-DD` 日期,只统计目标租户窗口内完成的训练、校准和 SOP 评审;人员先按唯一手机号映射到在职组织快照,完训口径为每人至少 10 次已完成对练。
|
||||||
|
|
||||||
@@ -121,9 +121,9 @@ AIHR_AI_SPEECH_ENABLED=true
|
|||||||
- `aihr_practice_mysql8.sql` 已导入;移动端员工训练记录落 `aihr_practice_session`,用于训练历史、主管待复盘列表和能力画像聚合
|
- `aihr_practice_mysql8.sql` 已导入;移动端员工训练记录落 `aihr_practice_session`,用于训练历史、主管待复盘列表和能力画像聚合
|
||||||
- `aihr_interview_result_mysql8.sql` 已纳入 reset 脚本;AI 面试评分完成后结果落 `aihr_interview_result`
|
- `aihr_interview_result_mysql8.sql` 已纳入 reset 脚本;AI 面试评分完成后结果落 `aihr_interview_result`
|
||||||
- `aihr_candidate_material_mysql8.sql` 已纳入;候选人端补充资料文件写 `sys_oss`/MinIO,关系落 `aihr_candidate_material`
|
- `aihr_candidate_material_mysql8.sql` 已纳入;候选人端补充资料文件写 `sys_oss`/MinIO,关系落 `aihr_candidate_material`
|
||||||
- `aihr_org_snapshot_mysql8.sql` 已纳入 reset 脚本;组织人员本地 seed(2 个住宅项目 22 人,项目经理/主管/一线三层)支撑演示,外部开放组织系统配置完成后用 `POST /api/aihr/org/sync` 拉取 `company/department/employee` 快照并覆盖本地 `aihr_org_snapshot`。2026-07-15 生产已完成该配置和覆盖同步,线上快照为 3417 名员工。
|
- `aihr_org_snapshot_mysql8.sql` 已纳入 reset 脚本;组织人员本地 seed(2 个住宅项目 22 人,项目经理/主管/一线三层)支撑演示,外部开放组织系统配置完成后用 `POST /api/aihr/org/sync` 拉取 `company/department/employee` 快照。生产遇到完整明文手机号可覆盖同步;遇到脱敏手机号必须按上条增量更新。2026-07-16 线上快照为 3417 人,在职主管 175、项目经理 20。
|
||||||
- 组织同步生产默认关闭 `aihr.org-sync.store-display-fields`,不把外部姓名/部门写入或返回组织人员展示快照;开发环境显式打开该开关仅用于 Demo。项目范围、岗位和外部主体 ID仍用于权限与身份映射。
|
- 组织同步生产默认关闭 `aihr.org-sync.store-display-fields`,不把外部姓名/部门写入或返回组织人员展示快照;开发环境显式打开该开关仅用于 Demo。项目范围、岗位和外部主体 ID仍用于权限与身份映射。
|
||||||
- 外部员工只有 `position_id`、没有岗位名称时,可在私密环境配置中设置 HR 签认映射,例如 `AIHR_ORG_POSITION_MAP_JSON='{"1683":{"name":"项目经理","level":"项目经理"}}'`;只允许“一线/主管/项目经理”三种层级,外部显式岗位字段优先。该配置会影响主管权限,必须先 dry-run,再执行覆盖同步并复核主管数与项目范围。
|
- 外部员工只有 `position_id`、没有岗位名称时,可在私密环境配置中设置 HR 签认映射,例如 `AIHR_ORG_POSITION_MAP_JSON='{"1683":{"name":"项目经理","level":"项目经理"}}'`;只允许“一线/主管/项目经理”三种层级,外部显式岗位字段优先。该配置会影响主管权限,必须先 dry-run,再按手机号完整性选择覆盖或增量同步,并复核主管数与项目范围。
|
||||||
- 本地组织 seed 带演示手机号,可用 `13900000103` 验证员工端自动识别物业管家岗位,用 `13900000202` 验证主管端项目范围
|
- 本地组织 seed 带演示手机号,可用 `13900000103` 验证员工端自动识别物业管家岗位,用 `13900000202` 验证主管端项目范围
|
||||||
- SOP 知识库支持 `.txt/.md/.markdown/.pdf/.doc/.docx/.xls/.xlsx/.ppt/.pptx` 上传到 MinIO 后解析入库,接口为 `POST /api/knowledge/doc/upload`,单文件上限 100MB;管理端上传请求单独放宽到 180s,PDF 解析/归类/向量化较慢时不要改全局 axios 超时。资料处理中心异步接口另支持 `.zip`(≤500MB),后台安全解压后逐文件入队;最多 1000 个子文件、解压总量 ≤2GB,不支持嵌套 ZIP
|
- SOP 知识库支持 `.txt/.md/.markdown/.pdf/.doc/.docx/.xls/.xlsx/.ppt/.pptx` 上传到 MinIO 后解析入库,接口为 `POST /api/knowledge/doc/upload`,单文件上限 100MB;管理端上传请求单独放宽到 180s,PDF 解析/归类/向量化较慢时不要改全局 axios 超时。资料处理中心异步接口另支持 `.zip`(≤500MB),后台安全解压后逐文件入队;最多 1000 个子文件、解压总量 ≤2GB,不支持嵌套 ZIP
|
||||||
- 视频(`.mp4/.mov/.avi/.mkv/.webm/.m4v`,≤500MB、≤60 分钟)只走资料处理中心批量导入(异步队列):ffmpeg 抽音轨分段调 asr 转写 + 抽关键帧调 vision 提取画面文字,合并后归类切片入库,片段带 `[mm:ss]` 时间戳;**依赖服务器安装 ffmpeg/ffprobe**(macOS `brew install ffmpeg`,Linux `apt install ffmpeg`)
|
- 视频(`.mp4/.mov/.avi/.mkv/.webm/.m4v`,≤500MB、≤60 分钟)只走资料处理中心批量导入(异步队列):ffmpeg 抽音轨分段调 asr 转写 + 抽关键帧调 vision 提取画面文字,合并后归类切片入库,片段带 `[mm:ss]` 时间戳;**依赖服务器安装 ffmpeg/ffprobe**(macOS `brew install ffmpeg`,Linux `apt install ffmpeg`)
|
||||||
|
|||||||
@@ -104,10 +104,10 @@
|
|||||||
## 6. 里程碑总览
|
## 6. 里程碑总览
|
||||||
|
|
||||||
```
|
```
|
||||||
07-15(已完成) A1-A3 发布 + A4 结构回归 + C1 文案修改 + B11 岗位 ID 签认清单
|
07-15(已完成) A1-A3 发布 + A4 结构回归 + C1 文案修改
|
||||||
07-16 发出 B 催办清单(B3 置顶,B11 附签认 CSV)
|
07-16(已完成) B11 上游岗位结构接入 + 增量同步 + 主管身份认证
|
||||||
07-17 跟进 B3/B11 负责人和回复期限落字
|
07-17 跟进 B3 负责人和回复期限落字
|
||||||
07-18 起 C2 主管身份/项目权限认证态验收(依赖 B11 岗位契约与重新同步)
|
07-18 起 C2 项目权限正反例验收(依赖 B3 圈定试点项目)
|
||||||
07-18~07-25 B2 SOP 补齐与评审 / B9+C5 历史案例 ≥20 条入库 / C3 方言实测(依赖 B4)
|
07-18~07-25 B2 SOP 补齐与评审 / B9+C5 历史案例 ≥20 条入库 / C3 方言实测(依赖 B4)
|
||||||
07-28~08-08 D 试点窗口(1–2 项目、≥20 人、2 周;以 B3 实际答复为准)
|
07-28~08-08 D 试点窗口(1–2 项目、≥20 人、2 周;以 B3 实际答复为准)
|
||||||
08-11~08-15 L1 证据包收口:strict 门禁全绿(带试点窗口日期)+ CSV 导出
|
08-11~08-15 L1 证据包收口:strict 门禁全绿(带试点窗口日期)+ CSV 导出
|
||||||
@@ -118,7 +118,7 @@
|
|||||||
## 7. 风险与止损
|
## 7. 风险与止损
|
||||||
|
|
||||||
1. **B3 试点圈定拖延是当前最大单点风险**(组织数据已就位,决策成本已最低):07-22 仍无答复,升级 HR 负责人;试点每晚一周,半年会"真实使用数据"窗口就少一周。
|
1. **B3 试点圈定拖延是当前最大单点风险**(组织数据已就位,决策成本已最低):07-22 仍无答复,升级 HR 负责人;试点每晚一周,半年会"真实使用数据"窗口就少一周。
|
||||||
2. **B11 主管岗位缺失**:当前开放快照只有 `position_id`,生产主管数为 0;90 个岗位 ID 已整理为 HR 签认清单,同步服务已支持签认 JSON 映射且不需改库。07-22 前拿不到上游岗位名称/字典或 HR 正式映射,主管复盘/跨项目权限不能验收,试点只能暂停而不能猜角色替代。
|
2. **手机号增量维护**:上游快照已补岗位,但对 3391 个有效手机号返回脱敏值。现有 3392 个映射已通过稳定 `id` 增量同步保留;新增/换号人员在安全身份映射通道就位前不能自动补齐,禁止强制全量覆盖。
|
||||||
3. **案例 20 条**:依赖 B9 存量导入;若试点前不足 20 条,立即提高采集频率(每项目每周 2–3 条)并如实下调收口预期,不用未脱敏或演示数据凑数。
|
3. **案例 20 条**:依赖 B9 存量导入;若试点前不足 20 条,立即提高采集频率(每项目每周 2–3 条)并如实下调收口预期,不用未脱敏或演示数据凑数。
|
||||||
4. **发布失败**:A3 原子流程任一步失败即按备份回滚,当天不重试第二次,先归因。
|
4. **发布失败**:A3 原子流程任一步失败即按备份回滚,当天不重试第二次,先归因。
|
||||||
5. **范围失控**(BRD 附录 C 头号风险):任何新页面/新功能请求一律进 `docs/BACKLOG.md`;每周对照本计划复盘一次偏差。
|
5. **范围失控**(BRD 附录 C 头号风险):任何新页面/新功能请求一律进 `docs/BACKLOG.md`;每周对照本计划复盘一次偏差。
|
||||||
@@ -127,4 +127,4 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
*本计划由工程侧起草,v2.4 已按 2026-07-15 生产执行结果及 B11 外部接口复核修订;B 表负责人/期限需业务方确认后生效。执行进展回写《BRD_IMPLEMENTATION_AUDIT.md》,本文件只改计划不记证据。*
|
*本计划由工程侧起草,v2.6 已按 2026-07-16 组织结构增量同步与主管认证结果修订;B 表负责人/期限需业务方确认后生效。执行进展回写《BRD_IMPLEMENTATION_AUDIT.md》,本文件只保留当前计划。*
|
||||||
|
|||||||
Reference in New Issue
Block a user