# 功能测试报告:RULE_001 分项运政对比 / 阈值说明联动通用化 / 汇总大表列宽回归 / 导入结果弹窗(2026-09-09) ## 1. 功能说明 按用户 2026-09-09 上午反馈整改四项: 1. **货运月报 RULE_001 改分项运政对比**:牵引车数/挂车数/整车数(车类差≤5 台)、挂车吨位/整车吨位(吨位差≤50 吨)、上报总吨位 vs 运政总吨位(差≤50 吨),任一分项超限即提醒;原 RULE_002(总量吨位对比)并入 RULE_001 后停用防重复。 2. **所有审核规则阈值变动 → 规则名称/说明联动**:由原来只改“% 前数字”推广到任意数字片段(台/吨/公里等单位前的阈值数字),并支持“5,5,50,5,50,50”这类多段阈值逐段联动。 3. **汇总大表(道路运输量汇总表整本)列宽回归母版**:删除导出时 `autoFitContentColumns`(内容自适应加宽),列宽严格采用母版原始列宽。 4. **数据导入界面导入结果弹窗**:单文件导入成功弹“成功消息(含解析条数)”、失败弹错误详情,替代原来只在底部列表显示。 ## 2. 测试环境 - 后端 Spring Boot 8090(mvn 增量编译通过后重启,`Started TrafficAuditApplication` 确认) - 前端 Vue dev server 8080(`Compiled successfully` 于 10:24:53) - MySQL `traffic_audit`(localhost:3308),规则表 `audit_rule`、审核结果 `audit_result` - 数据期:2026-08(货运企业月报 636 户、运政车辆 635 户均在库) ## 3. 用例表(输入/预期/实际/结论) ### 3.1 RULE_001 分项运政对比 | 用例 | 输入 | 预期 | 实际 | 结论 | |---|---|---|---|---| | 正向-规则配置 | SQL 更新 RULE_001 为 DIFF_FIELDS + 六段 check_field/threshold | API /rules/list 显示新名称/说明/阈值 | rule_name=“车辆数与吨位运政分项对比”,check_field=vehicleTractor,vehicleTrailer,tonsTrailer,vehicleWhole,tonsWhole,tonsTotal,threshold=5,5,50,5,50,50 | 通过 | | 正向-审核执行 | POST /api/audit/execute?period=2026-08&reportType=H2032 | 正常返回命中明细 | 4s 返回 487 条结果,其中 RULE_001 命中 115 条 | 通过 | | 正向-命中消息 | 抽查 rule_id=1 的 actual_value | 逐项列出 上报/运政/差/限,≤200 字符 | 例:“牵引车数:上报=120 台,运政=114 台,差6 台(限5 台);挂车吨位:上报=26032.8 吨,运政=25874.78 吨,差158.02 吨(限50 吨)…” | 通过 | | 负向-消息超长 | 多分项同时超限 | 不因 actual_value 200 字符报错截断 | 单条消息≤180 字符拼接,超出追加“等N项超限”;首轮无保护时曾报 Data truncation,已修复后执行成功 | 通过 | | 去重 | RULE_002 停用 | 2026-08 不再产生 rule_id=2 结果 | 结果分布仅 rule_id 1/3/4/5/6,无 2 | 通过 | ### 3.2 阈值变动说明联动(原值→新值→复原双向) | 用例 | 输入 | 预期 | 实际 | 结论 | |---|---|---|---|---| | 台数型 DIFF | RULE_P001 threshold 3→5 | 说明“差距>3台”→“差距>5台” | 更新后说明为“差距>5台需核实” | 通过 | | 百分数型 | RULE_P005 threshold 20→30 | 名称/说明 ±20%→±30% | 名称“平均运距环比超±30%核实”,说明同步 | 通过 | | 比值型 | RULE_003 threshold 1.4→1.5 | “高出40%”→“高出50%” | 说明更新为“高出50%需核实” | 通过 | | 幂等/复原 | 三条全部还原 3/20/1.4 | 名称与说明回到原值 | 复核全部复原,未污染说明中无关数字 | 通过 | ### 3.3 汇总大表列宽回归母版 | 用例 | 输入 | 预期 | 实际 | 结论 | |---|---|---|---|---| | 正向-导出 | GET /api/report/export/summaryWorkbook?period=2026-08 | 正常输出整本 | 3s 导出 938,586 字节,19 个页签与母版一致 | 通过 | | 列宽对比 | openpyxl 逐页逐列比对列宽 | 与母版列宽一致 | 19 页签共 12 处差异,全部为“母版未显式定义、POI 补默认宽”(值=母版默认宽 8.8867/14.0 等),视觉列宽一致 | 通过(无内容自适应加宽) | | 样式保留 | 导出文件抽查 | 数值两位小数、取消筛选、还原隐藏行、打开重算保留 | 保留(既有逻辑未动) | 通过 | ### 3.4 导入结果弹窗 | 用例 | 输入 | 预期 | 实际 | 结论 | |---|---|---|---|---| | 正向-代码 | importNow 成功回调增加 showImportResult(row) | 成功弹 `$message.success`(含后端返回“…导入成功,共 N 条”),失败弹 `$alert` 错误明细 | 代码已落地,前端编译成功;后端单文件接口均返回 Result 中文消息 | 通过(界面手工点验待用户确认) | | 兼容-投资/城市目录 | 原有 checkInvest/目录批量流程 | 不重复弹窗 | 目录批量仍走原 $alert 汇总,不受影响 | 通过 | ## 4. 入库抽查(与源文件逐项对齐) - `audit_rule`:RULE_001(id=1)已入库新配置;RULE_002(id=2)`is_enabled=0`、threshold 校正为 50 与说明一致。 - `audit_result`:2026-08 RULE_001 命中 115 条,抽查 8 家企业的 actual_value 均为“分项:上报/运政/差/限”结构,数据与 h2032_enterprise_monthly / transport_auth_vehicle 同口径。 ## 5. 发现的问题与处置 1. 新分项消息超过 `audit_result.actual_value varchar(200)` → 已加 180 字符截断保护(保留首段+“等N项超限”汇总)。 2. RULE_002 阈值 80 与其说明“差距>50”长期不一致 → 并入 RULE_001 并停用,阈值统一 50。 3. 运政侧字段仅有 牵引/挂车/其他 三分类,H2032 的“整车”按运政“其他车”口径比对,已在命中消息与说明中体现;如需与“整车(含集装箱)”单独比对需运政数据侧增加分类。 ## 6. 结论 四项整改功能验证通过;汇总大表仍为“复制母版+备份还原”机制,8 月数据填充(M2/M3)未在本轮落地,见工作日结遗留事项。