feat(导入): 网约车订单报告支持 Word 2003 XML(WordML)+格式嗅探与友好提示
问题(用户报障):《湖北网络预约出租汽车2025年09月分析报告.docx》放到桌面后
导入一直失败。定位:该文件不是 docx,而是 Word 2003 XML(WordML 平铺 XML)
被改名成 .docx(3.1MB 纯 XML,非 zip 包),POI 的 XWPFDocument 只能读 OPC 包,
直接抛 "File is not a zip file"。监管平台/同事间流转的报告常是这种格式。
改动(DataImportService.java):
- importWycOrderReport() 入口按文件头嗅探格式后分派:
PK→docx;<w:wordDocument + wordml→新增 WordML DOM 解析路径;
D0CF11E0→明确提示「.doc 请另存为 docx」;其它→「无法识别」;
- 新增 isWordPackage():zip 但无 word/document.xml(如 xlsx 改名)给中文提示,
不再抛 XMLBeans 英文堆栈;
- 新增 parseXmlSafely():DOM 解析关闭外部实体/DTD,防 XXE;
- 表格匹配抽成与格式无关的 matchWycOrderTable(),docx 与 WordML 两条路径
共用同一套表头识别 / 17 市州取值 / 合计行逻辑,避免口径分叉;
- 报表期识别抽成 periodOfParagraphs(),两种格式共用。
验证:8 条用例全部通过(4 正向 / 3 负向 / 1 边界)。2025-09 WordML 报告导入成功,
订单合计 17,652,159、17 市州;抽查武汉 8,076,610 / 黄石 676,644 / 十堰 1,048,593 /
恩施 804,736 / 林区 1,424 与报告附件1 逐项一致;pin 从 wyc_total_monthly 同期复制。
真 docx(2026-08)重导幂等无变化。
附带效果:用户已补齐 2026-01~06 / 2025-01 / 2025-10~12 订单,加上本次 2025-09,
2025-01~12 + 2026-01~08 订单全部齐全;中口径维度 4(城际城乡网约车)1~6 月由
「无源」变为「可算」,中口径排名件与明细件累计口径自动归一(均 31528.0606)。
重跑 8 月导出回归:报表期内不一致 0、与汇总大表「中口径明细」页 704 对格 0 差异。
文档:新增《功能测试报告_网约车订单报告WordML兼容导入_2026-09-18.md》,
并更新《工作日结_2026-09-18.md》。