同一页图表顶部合计 128.4 万,下面表格加总是 126.1 万,差 2.3 万,财务对账时被退回来。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
// 图表与表格共用同一个查询条件
const where = { status: 'paid', range: [start, end] };
图表读的是按天聚合后的接口,表格读的是明细分页数据,两边统计口径不同。图表还把已取消订单算进去了。这一点先确认清楚,后面就不用反复试。
碰到「图表表格数据不一致」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
改完隔一天再看一次,当场正常不代表能稳住。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。
具体做法是,确认两个数据源是否同一张表同一过滤条件;把取消和退款状态在两边统一排除;页面上标明图表口径和更新时间。
改完照着核一遍,刷新后图表合计与表格加总一致,差额为 0。
