# 功能测试报告:城市客运导入下拉新增网约车导入(2026-09-04) ## 功能说明 2026-09-04 用户拍板:数据导入——城市客运模块下拉增加《网约车总数》与《网约车订单及全省总量》两项,母版放于 docs/城市客运/。本次实现: - 后端新增导入接口:POST /api/import/wycTotal、POST /api/import/wycOrder; - 新增表 wyc_total_monthly(全省 pin)与 wyc_order_monthly(pin + 订单合计 + 17市州订单),按报表期先删后插、幂等 upsert,同时记录批次(WYC_TOTAL / WYC_ORDER)供导入进度与历史显示; - 前端 DataImport.vue:城市客运下拉新增两项、TYPE_LABELS / BATCH_TYPE_MAP、模板名/下载 URL(对应母版)、endpoint 映射全部补齐。 代码改动(待推送): - traffic-audit-server/src/main/java/com/trafficaudit/dataimport/entity/WycTotalMonthly.java、WycOrderMonthly.java(新增,@TableField 固定 pin_ck/pin_cz 列名) - traffic-audit-server/src/main/java/com/trafficaudit/dataimport/mapper/WycTotalMonthlyMapper.java、WycOrderMonthlyMapper.java(新增) - traffic-audit-server/src/main/java/com/trafficaudit/dataimport/service/DataImportService.java(新增 importWycTotal/importWycOrder/upsertWyc/upsertWycTotal/periodOfCell/dbl/dblN 及分发 case) - traffic-audit-server/src/main/java/com/trafficaudit/dataimport/controller/DataImportController.java(新增两个端点) - traffic-audit-web/src/views/DataImport.vue(下拉/标签/模板/端点) - docs/sql_wyc.sql(建表 DDL 沉淀) ## 测试环境 - 后端 8090(重启后就绪);前端 dev server 8080(DataImport.vue 改动后热编译 Compiled successfully);MySQL 127.0.0.1:3308 traffic_audit;母版为 docs/城市客运/模板_网约车总数.xlsx、模板_网约车订单及全省总量.xlsx(实际编辑版,含 2026-01~07)。 - 方法:HTTP 实际导入,与源文件逐项对齐、幂等重导、模板下载 URL、空数据负向用例。 ## 用例与结果 1. 网约车总数导入(正向):上传模板_网约车总数.xlsx,接口返回“导入成功,共 7 期”;DB 中 2026-01~07 全省 pin B-E 与母版逐期一致(如 2026-07 = 4852.3/4430.84/28348.02/22705.61)。结论 PASS。 2. 网约车订单导入(正向):上传模板_网约车订单及全省总量.xlsx,共 7 期;2026-07 F=订单合计 29730791、G-W 17市州与母版一致(武汉 11183267…神农架 3534);2026-01~06 订单列为 NULL(母版无数据,正确)。结论 PASS。 3. 幂等重复导入(正向):同文件重复上传,两表数据仍各 7 行且值不变(先删后插);批次表每次导入均记录。结论 PASS。 4. 模板下载(正向):GET /api/templates/城市客运/模板_网约车总数.xlsx 与 订单版均 200。结论 PASS。 5. 空数据文件(负向):上传只含表头的 xlsx,返回 code 500、提示“未识别到有效月份行:A 列应为日期(如 2026-07)…”,错误文案清晰。结论 PASS(预期失败)。 6. 编译与启动:后端 mvn compile EXIT=0;前端脚本 node --check 通过且 dev server 热编译成功。结论 PASS。 ## 发现的问题与处置 1. 新增 Mapper 接口尾部残留“{{}}”(抽象方法体)导致编译失败:已修为“{}”。 2. DataImportService.periodOfCell 正则 \d 未转义为 \\d(Java 字符串“非法转义”编译失败):已修复。 3. 首次导入返回“共 0 期”:原因为实体字段 pinCK/pinCZ 下划线策略映射为 pin_c_k/pin_c_z,与表列 pin_ck/pin_cz 不匹配,insert 报 Unknown column;处理:实体增加 @TableField("pin_ck")/@TableField("pin_cz"),复测后 7 期全部入库。 ## 结论 城市客运导入下拉新增两项网约车导入功能已实现并通过测试:正向(实际母版 1-7 月)、幂等重导、模板下载、空数据负向均符合预期;入库数据与源文件逐项一致。前端下拉项还需用户在页面点击人工过一眼。