报表口径专题

本文整理 DGJ2.0 采购、销售、库存、利润、客户、往来账、对账单报表的入口和口径。报表问题通常不是单纯 SQL 问题,还要看业务状态、时间字段、同步延迟和历史表。

入口文件

  • 采购报表:application/controllers/reports/PurchaseReport.phpapplication/Services/Report/PurchaseReportSer.php
  • 销售报表:application/controllers/reports/SaleReport.phpapplication/Services/Report/SaleReportSer.php
  • 库存报表:application/controllers/reports/InventoryReport.phpapplication/Services/Report/InventoryReportSer.php
  • 利润报表:application/controllers/reports/ProfitReport.phpapplication/Services/Report/ProfitReportSer.php
  • 客户报表:application/controllers/reports/CustomerReport.phpapplication/Services/Report/CustomerReportSer.php
  • 应收应付:application/Services/Report/AccountReceiveSer.phpAccountPaySer.php
  • 对账单:application/controllers/reports/StatementBill.phpStatementSend.phpStatementStrategy.php

常见报表

| 报表 | 核心业务表 | 核心口径 | | --- | --- | --- | | 采购订单明细 | t_scm_po_ordert_scm_po_order_info | 采购单状态、下单时间、供应商、商品 | | 采购退货明细 | 采购退货相关表、关闭/退货记录 | 退货类型、退货状态、退款状态 | | 采购入库明细 | t_scm_pu_invoicet_scm_pu_invoice_info | 入库时间、入库数量、成本 | | 销售明细 | t_scm_sa_ordert_scm_sa_order_info | 销售来源、客户、销售数量、金额 | | 销售出库 | t_scm_sa_invoicet_scm_sa_invoice_info | 出库时间、出库数量、成本 | | 库存报表 | 库存流水、实时库存 | 当前库存或期间出入库 | | 利润报表 | 销售、出库、成本 | 销售额、成本、毛利、毛利率 | | 往来账 | 账户流水、收付款 | 客户/供应商应收应付 |

口径排查顺序

  1. 确认报表入口和查询参数。
  • 时间字段是创建时间、审核时间、出库时间、入库时间还是业务日期。
  • 状态过滤是否排除关闭、撤销、草稿。
  1. 确认业务单据状态。
  • 采购是否审核通过、是否关闭。
  • 销售是否完成出库。
  • 收付款是否确认或撤销。
  1. 确认明细数量和金额。
  • 报表通常按明细聚合,主单金额和明细金额可能因折扣、关闭、退货不同。
  • 成本口径可能来自出库成本、入库成本或动态成本。
  1. 确认数据源。
  • 有些报表查业务库。
  • 有些报表可能查同步后的 DWD/Hologres 或历史归档。
  • 当天实时数据和离线报表不一致时,先判断是否同步延迟。
  1. 确认导出口径。
  • 列表和导出可能是两套方法。
  • 导出常常有格式化、二次计算、字段重命名。

常见不一致原因

  • 查询时间字段选错:按下单时间查不到按入库时间的记录。
  • 状态过滤不同:列表包含关闭单,导出排除了关闭单。
  • 明细聚合差异:主单金额和明细金额不一致。
  • 退货/关闭未扣减:采购关闭、销售退货未参与报表扣减。
  • 历史归档:当月表和历史表未合并。
  • 同步延迟:业务库已变更,报表中心未同步。

常用 rg 命令

rg -n "class PurchaseReport|purchaseOrderDetailReport|puOrderDetailReport" application/controllers/reports application/Services/Report
rg -n "class SaleReport|sale.*Report|reportExportExcel" application/controllers/reports application/Services/Report
rg -n "InventoryReport|ProfitReport|AccountReceive|AccountPay" application/controllers/reports application/Services/Report
rg -n "Hologres|DWD|dwd|report" application/Services application/config application/controllers/reports

改动风险和回归清单

  • 列表查询和导出查询要同时回归。
  • 时间筛选、服务站筛选、商品筛选、客户/供应商筛选要同时回归。
  • 关闭、撤销、退货、部分出库、部分入库要单独造数据验证。
  • 金额字段要确认是否含税、是否折扣后、是否格式化。