fix(中口径): 库内缺数据不再覆盖母版定稿值 + 跨簿重算容错 + 报表期后月份清空
问题(用户 09-18 反馈):
1) 独立《生成_中口径明细》1~6 月被清空、总行/累计不可用;
2) 汇总大表「中口径明细」页虽有值,但导出的独立件对不上;
3) 8 月报表里 9~12 月被克隆公式算出「全 0」假数据。
根因:库内该月该维无源(2026-01~06 网约车订单源头即为空)时,
代码把模板公式/缓存值 setBlank 清掉;且跨簿公式([1]出租!C13)
在外部工作簿缺失时抛异常,导致引用它的总行/累计连锁失败。
改动(ReportExportService.java):
- exportPassengerMidDetail() 总行值列一律保留模板公式(1~6 月原公式 +
扩列克隆公式),由收尾重算填值;删除「扩列月份手写库内合计」与
keepCached 清公式两条旁路;
- fillMidCell():库内取值 0(该月该维无源)时直接 return,保留母版/
定稿原值,绝不写空、绝不写 0;
- recalcWorkbookFormulas():新增 ev.setIgnoreMissingWorkbooks(true),
跨簿公式缺失时改用该格自身缓存值参与计算;
- 新增 blankFutureMonthColumns():报表期之后的月份列清数据格、留表头。
验证:独立《生成_中口径明细》18 地区 x 12 个月,总行 = Σ4 维、
累计 = Σ1~8 月,不一致数 0;与汇总大表「中口径明细」页 1~8 月
704 对格 0 差异;9~12 月数据格全空、表头保留。
回归:汇总大表 17 页 0 格差异、《生成_中口径排名》0 格差异。
纠正:早前「母版城市级公式引错页」为控制台中文乱码导致的误判,
母版公式正确(=[1]出租!C13-[1]出租!C15),无需修改。
文档:更新《功能测试报告_中口径四维口径统一_2026-09-18.md》
与《工作日结_2026-09-18.md》。