a4bbfc22224d3b4e7d6b7213af53107875260459
线上现象:对练页录音转写后提交回应,报「录音不属于当前账号,请重新录音后提交」。 根因A(前端,截图直接原因):OSS 编号是雪花 ID(如 2078204068457525249), 超出 JS Number 安全整数范围,后端按 RuoYi 规范序列化为字符串,但前端 4 处 用 Number() 强转(对练 ASR、每日题 ASR、每日题恢复列表、候选人面试 ASR), 精度丢失成 …5200,后端按错误 oss_id 查归属 COUNT=0 → 误报。 生产铁证:同一暂存行,正确 id 查得 1 行,JS 强转后的 id 查得 0 行; 用损坏 id 提交 turn 复现原报错,用字符串正确 id 提交成功。 修复A:speech.ts 新增 normalizeOssId(纯字符串校验透传,禁止 Number 强转), 4 处调用点改为字符串保存,practice/candidate 服务签名与状态类型放宽为 number|string(types/api.ts 本就是 number|string,Jackson 字符串转 Long 无损)。 根因B(后端,潜伏):answerDailyDrill 用组织 extPartyId(如 1003)做录音 归属身份校验,而暂存写入的是登录手机号——每日题语音提交必失败。 修复B:新增 validateAudioOwnershipByUser,按服务端登录 owner_user_id (与暂存同源、不可伪造)校验,对练路径(身份一致)保持原校验不变。 发布与验证: - H5 已发布(备份 /opt/wygj/backups/h5-before-20260718035416) - 后端 jar 已发布重启(备份 /opt/wygj/app/ruoyi-admin.jar.bak-20260718035552), 15s 恢复,重启后对练 turn+字符串 ossId 生产复核通过 - 每日题语音路径为逻辑级+数据级验证(该账号今日无待训练每日题, 业务级复验待下一次每日题窗口) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
物业AI人力资源系统
基于 RuoYi-Vue-Plus 后端与 plus-ui 前端的银城员工端 APP 工程。2026-07 MVP 演示资料已归档;当前真相源是 BRD 审查、版本功能对比、生产迁移 Runbook 和正式试点门禁。
当前状态
- 后端:
backend,来自dromara/RuoYi-Vue-Plus的5.X分支。 - 管理端前端:
frontend,来自CrazyLionCat/plus-ui的5.X分支。 - 用户侧前端:
mobile-uni,uni-app Vue3 H5 工程,承接员工端、候选人端、主管端;旧mobile保留为 MVP 演示兜底。 - 本地依赖:MySQL + Redis + MinIO + Qdrant 由
docker-compose.dev.yml启动。 - 品牌:前端标题为“物业AI人力资源系统”,侧栏 logo 使用银城物业图标。
- 基础链路:租户列表、验证码、
000000 / admin / admin123加密登录已验证。 - 管理端:除 AI 面试、训练、案例、SOP 和资料处理外,已包含常见难题、问题榜运营、知识空间、全网 AI 配置、组织权限和成长激励。
- 用户侧:
mobile-uni/承载员工、候选人和主管三端;已接手机号登录、问师傅文字/语音/附件与播报、三级字号、训练/题目反馈、开放问题榜与积分、岗位考试、案例、候选面试/资料、主管复盘/派发及学员模式。旧mobile/只用于历史回溯。 - 英雄路径: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_org_snapshot本地 reset 保留演示 seed;生产通过POST /api/aihr/org/sync同步外部组织。最近记录的生产快照为 3417 人、2938 人在职、3392 个手机号映射、175 名在职主管和 20 名项目经理;人数属于时点事实,发布或验收前应重新查询。 - 正式试点:管理端可按起止日期导出正式试点 CSV,严格门禁只统计唯一映射到在职组织的训练、校准和 SOP 评审。组织身份同步和至少 20 名手机号映射门槛已具备;下一步仍需选定真实试点窗口,产生员工训练、人工校准和 SOP 评审样本后重跑严格门禁,详见 演示与试点验收。
- 侧栏:只展示当前 AIHR 业务菜单;过滤名单在
frontend/src/layout/components/Sidebar/index.vue,不要恢复若依默认全量菜单。 - 本地短信:真实阿里云短信参数放根目录
.env.local,由scripts/dev-backend.sh自动加载;不要把密钥写入application-dev.yml。dev 未配短信时验证码固定123456(aihr.sms.dev-fixed-code,prod 强制失效)。 - 生产基线(2026-07-18):
32fa376d已发布,管理端/H5/后端产物哈希一致,21 个迁移完成,目标 schema34/34、新增表排序规则兼容18/18;服务、公开 HTTP 和关键页面已验证。正式 OTP 写链路、真机能力和严格试点仍未验收,详见 BRD 功能审查记录。
快速启动
./scripts/dev.sh
首次启动或需要重建本地 MVP 数据库时执行 ./scripts/dev.sh --reset。./scripts/dev.sh 默认通过 portless 启动后端、管理端和当前 mobile-uni 用户侧,对应入口为 https://wygj-api.localhost/、https://wygj-admin.localhost/、https://wygj-mobile-uni.localhost/h5/。只有显式 PORTLESS=0 ./scripts/dev.sh 时才回退固定端口和旧移动端兜底。详细端口、默认账号和验证项见 本地运行手册。
目录
| 路径 | 用途 |
|---|---|
backend/ |
RuoYi-Vue-Plus 后端基座 |
frontend/ |
plus-ui 管理端前端基座 |
mobile-uni/ |
当前用户侧 uni-app H5 工程 |
mobile/ |
旧移动端 H5,保留为 MVP 演示兜底 |
scripts/ |
本地 MVP 启动与数据重置脚本 |
docker-compose.dev.yml |
本地 MySQL / Redis / MinIO / Qdrant |
docs/ |
项目文档、旧方案参考、Word 原件 |
文档索引
| 文档 | 用途 |
|---|---|
| 文档目录 | docs 区完整索引 |
| Figma 设计资产清单 | 79 个页面、71 张正式画板的节点索引、批次范围和一致性审计结果 |
| Figma 视觉系统使用规范 | 通用视觉元素、业务元素、状态映射和 LLM 组页规则 |
| Figma 页面实现矩阵 | 70 张正式画板与代码/线上实现状态、二期边界和剩余动作 |
| Figma 与线上 H5 差异矩阵 | 线上真实页面与 Figma 目标的差异、调整顺序和验收口径 |
| 本地运行手册 | 端口、账号、启动和基础验证 |
| MVP 演示与验收清单 | MVP 演示脚本、录屏兜底和验收口径 |
| 后端 API 对接指南 | 后端模块落点、正式试点 CSV、移动端训练/复盘、候选资料上传/审核和 SOP 上传解析接口 |
| BRD 功能审查记录 | 现阶段结论、三端输入匹配矩阵、权限、迁移、线上资源和未完成项证据 |
| BRD 生产迁移 Runbook | 生产 schema/内置内容迁移、只读预检、发布和回滚边界 |
| ruoyi-ai 能力分片迁移计划 | 知识库、模型能力、文档解析、RAG、chat 的渐进迁移边界 |
| 项目规划方案与 AI 接口说明 | 对外会议版口径、数字师傅定位和 AI 接口规划 |
| AI 陪练二期开发推进计划 | 总纲阶段一执行文档:从 MVP 演示闭环推进到管家(生活顾问)岗位试点可用 |
| 银城员工端APP分阶段实施总纲 | 2026-07-07 立项会后的三阶段总纲与阶段二/三边界 |
| 数字师傅学练问报整合方案 | 2026-07-08 产品讨论定案:学练问报四模块、开放问题榜、学分晋升、发布会「生活顾问的一天」 |
| AI 陪练缺口修订版 | 24 项陪练缺口的代码实况校对和二期排期依据 |
| 阶段交付归档 | 2026-07 MVP 作战清单、演示 PPT、设计 QA 记录和阶段交付材料 |
| 业务需求 BRD | 业务范围、角色、边界和验收 |
| 开发规格 TechSpec | 模块、数据模型、路由、API 和实现切分 |
下一步
当前主线不是继续补页面,而是用正式 OTP、正式角色和真实手机完成读写/权限/设备验收,再选定 1–2 个项目、至少 20 名员工和固定时间窗,产生训练、校准、SOP 评审、满意度与案例样本后重跑严格门禁。功能现状看 BRD 功能审查记录,客户反馈看 版本功能对比,正式试点看 DEMO_ACCEPTANCE.md。
Languages
Java
60.5%
Vue
21.9%
TypeScript
5.3%
JavaScript
4%
Shell
3.2%
Other
5.1%