# 功能测试报告:H203-1 模板新增「统一社会信用代码 / 填报单位」两列适配 - 日期:2026-09-16 - 模块:数据导入 / 数据查看 / 数据库表结构 - 结论:**通过**(正向 4 条、负向 2 条、兼容 2 条、入库抽查 814×2 项全部对齐) ## 一、功能说明 用户修改了《模板_交企统H203-1表_公路旅客运输月度生产情况》模板,在「企业名称」之后**插入两列**:`统一社会信用代码`、`填报单位`,其余 48 列整体右移,总列数由 50 → 52。本次改动让后端能读取并入库这两列,同时保证老格式文件兼容。 改动清单: | 层 | 文件 | 改动 | |----|------|------| | 数据库 | `h2031_enterprise_monthly` | `ADD COLUMN unified_credit_code VARCHAR(50) NULL AFTER enterprise_name`、`ADD COLUMN report_unit VARCHAR(200) NULL AFTER unified_credit_code` | | 建表脚本 | `docs/init.sql` | 同步补两列 | | 数据字典 | `docs/database.md` | 同步补两列说明 | | 实体 | `PassengerEnterpriseMonthly.java` | 新增 `unifiedCreditCode`、`reportUnit` | | 导入解析 | `DataImportService.java` | `importPassengerMonthly` 内按表头名取值 | | 前端列配置 | `DataViewController.java` | `H2031_COLUMNS` 新增两列(数据查看页可见) | ## 二、测试环境 - 后端:`Started TrafficAuditApplication` / `Tomcat started on port(s): 8090`(重启后新编译,13:30) - 前端:8080 已就绪(本次未改前端,未重启) - 数据库:`traffic_audit` @ 127.0.0.1:3308 - 新模板:`docs\公路旅客\模板_交企统H203-1表_公路旅客运输月度生产情况.xlsx`(Sheet1,816×52) - 老格式:`D:\桌面\测试数据\公路旅客\八月\公路旅客运输月度生产情况(2026)_2026-09-09 09_18_45.xls`(Sheet0,769×52) ## 三、用例表 | # | 场景 | 输入 | 预期 | 实际 | 结论 | |---|------|------|------|------|------| | 1 | 正向-新模板导入 | 新模板 → `POST /api/import/passengerMonthly?period=2099-07` | 成功且条数与源文件一致 | `成功 814 条,失败 0 条` | 通过 | | 2 | 正向-新列入库 | 查 `unified_credit_code` / `report_unit` | 814 行全部有值 | `count=814, c1=814, c2=814` | 通过 | | 3 | 入库抽查-首行 | 源第 1 行 vs 库第 1 行 | 逐字段一致 | 库:`enterprise_code=91420105MA4F5Q3R68`、`unified_credit_code=91420105MA4F5Q3R68`、`report_unit=武汉市宏干线公路客运有限公司金地分公司`、`vehicle_total=26`、`passenger_total=12835`,与 Excel 完全一致 | 通过 | | 4 | 入库抽查-汇总列 | 源文件汇总 vs 库汇总 | 一致 | 客运车辆 24584、核定载客位 711018、客运量 16371625、周转量 1023386179,四项全等 | 通过 | | 5 | 兼容-老格式导入 | 老 `.xls` → `period=2099-09` | 成功且新列有值(老文件也含这两列) | `成功 767 条,失败 0 条`;`c1=767, c2=767` | 通过 | | 6 | 兼容-老格式数值不变 | 2099-09 vs 既有 2026-08(同源同内容) | 完全一致 | n=767 / v=22091 / p=16286506 / t=1158473501,四项全等 | 通过 | | 7 | 兼容-老格式首行抽查 | Excel COM 读 `.xls` 第 2 行 vs 库 | 一致 | 源:`914201005519761659 / 914201005519761659 / 武汉捷安顺达汽车服务有限公司 / 24 / 54330`;库同 | 通过 | | 8 | 负向-选错数据类型 | `H203_1_2026-公路旅客运输月度生产情况(2026).xlsx` → passengerMonthly | 明确报错、不写库 | `导入失败: 所选数据类型【公路旅客运输月度生产情况】与文件内容不符:表头缺少必需列【企业名称】【客运量_总计】` | 通过 | | 9 | 负向-列右移不影响旧字段 | 新模板(整体右移 2 列) | 企业代码/企业名称/车辆/客运量等旧字段取值不变 | 解析按表头名 `buildHeaderMap` 取值,814 条 0 失败,汇总四项与源文件一致(见用例 4) | 通过 | ## 四、发现的问题与处置 1. **老格式文件其实也带这两列**(`统一社会信用代码`、`填报单位`),此前代码未读取 → 本期一并开始入库。这也意味着 2026-01 ~ 2026-08 的存量数据这两列为空,**需要重导对应文件才能回填**(已列入待办,等用户确认)。 2. **表结构变更必须同步三处**:本次首次只改了库与实体,漏了 `docs/init.sql` / `docs/database.md`,已补齐。 3. **替换锚点不唯一导致改错文档**:`docs/database.md` 中 `| enterprise_name | varchar(200) | 企业名称 |` 出现 4 次,首次批量替换误改了 H203-2 等 3 张表,已 `git checkout` 回退并改为「先截取 h2031 章节再替换」。 ## 五、结论 - 新模板与老格式**双向兼容**,导入 0 失败,抽查列逐项对齐;旧字段未受列右移影响。 - 数据库、建表脚本、数据字典、实体、导入解析、前端列配置**六处一致**。 - 遗留:存量月份(2026-01 ~ 2026-08)的两列待回填,等用户确认后重导。