Files
lingniu-vehicle-ingest/vehicle-data-platform/docs/design/account-batch-import-20260723

账号批量导入失败恢复审计

结论

当前健康度:良好。账号管理已经从“只能逐个创建”升级为可恢复的批量任务流:管理员可以下载模板、上传 CSV、在创建前完成服务端预检、原位修复单行问题并只创建校验通过的账号。部分成功时保留失败项不要求重新上传整份文件。

1. 基线:入口与任务能力

基线页只有“新建客户账号”,批量开户需要重复进入表单,错误也无法集中定位。

改造前账号目录

2. 桌面端:预检优先

桌面端使用 900px 宽任务抽屉同时容纳文件摘要、预检状态、逐行结果和固定底部操作。测试文件共 3 行1 行可创建、1 行用户名冲突、1 行车辆未接入。

桌面端批量预检

3. 桌面端:原位修复

首个失败项会自动展开,管理员可直接修改账号、密码、状态、菜单和 VIN修改后重新预检不丢失已解析的其他行。

桌面端逐行修复

4. 移动端:单滚动任务面板

390 × 844 下切换为 94dvh 底部任务面板,摘要、结果和修复区使用同一内容滚动,主操作固定在底部。实测弹层宽 390px、文档宽 390px无横向溢出。

移动端批量预检

5. 行为与恢复规则

  • CSV 表头固定为 username,displayName,password,status,customerRef,tenantRef,menuKeys,vehicleVins,每次最多 50 个账号。
  • 预检复用单账号创建的用户名、密码、菜单和 VIN 校验规则,并检测文件内重复及库内用户名冲突。
  • 创建按行隔离事务;单行失败不会回滚已成功账号,结果保留行号、错误类型和修复入口。
  • 部分成功后,主操作明确为“仅保留 N 个失败项”;目录刷新后仍保留原搜索、状态、页码与导入窗口 URL 状态。
  • 直接访问 ?userImport=open 可恢复导入工作区;关闭窗口只移除导入参数。

6. 无障碍与验证

  • 弹层具有“批量导入客户账号”名称,关闭按钮具有中文动作名称;区域、结果列表、字段和主操作均可由语义树识别。
  • 已验证桌面和移动端主链路、深链恢复、文件上传、服务端预检、逐行修复和创建回执。
  • 自动化测试覆盖 CSV 引号解析、模板输出、URL 保持、预检、修复与创建;全量前端 76 个文件、467 个测试通过API 全量测试通过,生产构建门禁通过。
  • 当前限制:本轮未用专用读屏器完成逐键走查,也未用仪器量化所有状态色对比度;键盘语义以浏览器语义树和组件自动化测试为依据。
  • 沿用平台现有 Semi UI、图标、颜色和任务抽屉系统因此没有生成新的位图或装饰资产。

后续

账号模块下一项是外部身份源接入反馈;平台级下一轮优先处理历史导出保留期、账号级字段视图同步与大任务分页。