未知报表类型:investPassengerDetail / investLogisticsDetail,无法预览/导出。ReportExportService.checkExportReady() 的 switch (t) 兜底分支(ReportExportService.java:231)。exportSelected switch、REPORT_FILE_NAMES、ReportExportController 两个接口、ReportExport.vue 两项),isInvestType() 也没收录这两个类型。checkExportReady() 新增两个 case:按类别统计 investment_monthly 该期行数 + 校验 docs/投资/模板/ 母版是否存在(缺母版给提示);isInvestType() 收录两个类型(纳入投资分支的月度覆盖与问题清单);investPreview() 增加按类别过滤重载 (period, mode, category, summary, problems),原无参重载保留;Started TrafficAuditApplication 10:49:51)。《功能测试报告_投资明细表就绪与预览类型补齐_2026-09-20.md》:**7 条用例通过,1 条未实测**(缺母版提示,未临时移动用户母版文件)。
| 校验项 | 结果 |
|---|---|
/api/report/ready(两新类型) |
ready=true,rows=39 / 128,note 为空 |
/api/report/preview(两新类型) |
覆盖 [8],problems 为空 |
| 摘要 vs SQL 逐项对齐 | 客运 2048.1 / 38648.16 / 550929.76、物流 90185.9 / 704107.7 / 2656354.31,**一致** |
| 分类别过滤 | 客运 39 + 物流 128 = 167,全类别类型仍 167(未串类) |
| 导出回归 | 两张明细表仍可导出(29462 / 134144 字节) |
| 原有投资类型回归 | investPlan / investBillion / investCounty / investFiveYearLogistics 均 ready=true,rows=167 |
| 未知类型负向 | foo → ready=false、note=未知报表类型:foo(兜底仍有效) |