编辑 | blame | 历史 | 原始文档

功能测试报告:数据导入页“导入进度·清空”按钮(按报表期清空数据库) 2026-09-10

功能说明

  • 数据导入页右侧“导入进度”侧栏标题旁新增红色“清空”按钮(与“刷新”并列),随侧栏展开可见。
  • 作用:一键清空当前所选报表期在数据库中的全部已导入业务数据,并同步删除该报表期的审核结果、审核通过标记(audit_run)与导入批次记录(import_batch),用于整月重新导入;投资项目主档(investment_project)保留不动。
  • 交互:点击 → 二次确认弹窗(标题含报表期,提示不可撤销)→ 确认后调用 POST /api/import/clear?period=yyyy-MM;清空过程中按钮进入 loading 并禁用;未选报表期或正在导入时按钮禁用;成功后提示“已清空 xxx 报表期的数据,可以重新导入”并自动刷新导入进度。

涉及改动

  • 后端 DataImportService.clearPeriod(period):@Transactional,先校验报表期格式,再按报表期删除 h2032/运政车辆/轨迹里程/规上规下/货运量周转量/旅客月报/个体/旅客运政/能耗/能耗运政/投资月度/投资系统/城市公交/巡游出租/出租车运政/网约车总数/网约车订单各表数据,并删除该期 audit_result、audit_run、import_batch;返回各表删除行数统计。
  • 后端 DataImportController 新增 POST /api/import/clear(参数 period)。
  • 前端 DataImport.vue:新增 clearing 状态、clearPeriodData() 方法与侧栏按钮/样式。

测试环境

  • 后端:traffic-audit-server 8090(含本次改动,start-dev.ps1 启动成功,backend.log 出现 Started TrafficAuditApplication)。
  • 前端:traffic-audit-web 8080 dev(Compiled successfully),浏览器为 Codex 应用内浏览器,admin 登录。
  • 数据库:本机 MySQL localhost:3308/traffic_audit,用 mysql CLI 直查核对。
  • 测试数据:docs/货运需导入的数据/货运/2026年1-7月报/道路货物运输月度生产情况(2026年6月).xls(636 行),导入到一次性测试期 2099-01,全程不触碰任何真实月份。

用例表

# 用例 输入 预期 实际 结论
1 基线检查 查询 2099-01 的批次与审核结果 均为空 批次 0 条、审核结果 0 条 通过
2 正向-导入 上传 6 月货运 xls,period=2099-01 成功且行数 636 返回“H2032月报导入成功,共 636 条记录”,批次 1 条 通过
3 正向-审核 POST /audit/execute?period=2099-01&reportType=H2032 生成审核结果与已审核标记 生成 audit_result 31 行、audit_run 1 行 通过
4 正向-清空(接口) POST /import/clear?period=2099-01 返回删除统计,库内该期清空 返回 dataRows=636、auditRows=31、auditRunRows=1、batchRows=1;DB 直查 h2032/audit_result/audit_run/import_batch 均为 0 通过
5 正向-清空后重导 再次上传同一文件 period=2099-01 可正常重新导入 成功 636 条;DB h2032=636、import_batch=1 通过
6 负向-非法报表期 period=abc 拒绝并提示格式 code=500,“清空失败: 报表期格式不正确,应为 yyyy-MM” 通过
7 边界-空报表期 period=2098-12(无数据) 成功且各项为 0 dataRows/auditRows/auditRunRows/batchRows 均为 0 通过
8 UI-按钮存在 打开数据导入页,选 2099-01,展开“导入进度” 标题旁出现“刷新/清空”,进度显示 H203-2 已导入 636 行 与预期一致(可访问性树读到“清空”按钮与“已导入 636 行”) 通过
9 UI-二次确认 点“清空” 弹出确认框,标题含报表期 弹窗标题“清空 2099-01 数据”,正文提示不可撤销,按钮“取消/确认清空” 通过
10 UI-确认清空 点“确认清空” 提示成功、进度全部回“未导入”、库内清空 提示“已清空 2099-01 报表期的数据,可以重新导入”;进度全部未导入;DB 直查四表均为 0 通过
11 回归-真实月份不受影响 清空前后对比批次分布与库内行数 真实月份无变化 批次分布与改动前完全一致(2025 各月 1 条、2026-07 45 条、2026-08 48 条、2026-09 7 条);h2032:2025-07=664、2026-07=636、2026-09=636 通过

发现的问题与处置

  • 未发现功能缺陷。
  • 说明:一次清空会删除该报表期“全部类型”的业务数据及审核结果/已审核标记,弹窗已明确提示不可撤销;若只想清单一类型,目前需整月清空后重导,可作为后续增强(按类型清空)。
  • 环境备注:本机库 admin 密码为 123456(见 docs/交接文档-20260831.md,8/31 实测),admin123 在本机不匹配。

结论

  • 通过。清空按钮在界面可用、确认弹窗语义清晰,接口按报表期完整清除业务数据、审核结果、审核标记与导入批次,清空后可立即整月重导;对真实月份数据零影响。
  • 待用户实际浏览器验收:在自己工作机上点一次“清空”(建议先确认所选报表期与备份)确认弹窗文案与预期一致。