报表口径专题
本文整理 DGJ2.0 采购、销售、库存、利润、客户、往来账、对账单报表的入口和口径。报表问题通常不是单纯 SQL 问题,还要看业务状态、时间字段、同步延迟和历史表。
入口文件
- 采购报表:
application/controllers/reports/PurchaseReport.php、application/Services/Report/PurchaseReportSer.php - 销售报表:
application/controllers/reports/SaleReport.php、application/Services/Report/SaleReportSer.php - 库存报表:
application/controllers/reports/InventoryReport.php、application/Services/Report/InventoryReportSer.php - 利润报表:
application/controllers/reports/ProfitReport.php、application/Services/Report/ProfitReportSer.php - 客户报表:
application/controllers/reports/CustomerReport.php、application/Services/Report/CustomerReportSer.php - 应收应付:
application/Services/Report/AccountReceiveSer.php、AccountPaySer.php - 对账单:
application/controllers/reports/StatementBill.php、StatementSend.php、StatementStrategy.php
常见报表
| 报表 | 核心业务表 | 核心口径 | | --- | --- | --- | | 采购订单明细 | t_scm_po_order、t_scm_po_order_info | 采购单状态、下单时间、供应商、商品 | | 采购退货明细 | 采购退货相关表、关闭/退货记录 | 退货类型、退货状态、退款状态 | | 采购入库明细 | t_scm_pu_invoice、t_scm_pu_invoice_info | 入库时间、入库数量、成本 | | 销售明细 | t_scm_sa_order、t_scm_sa_order_info | 销售来源、客户、销售数量、金额 | | 销售出库 | t_scm_sa_invoice、t_scm_sa_invoice_info | 出库时间、出库数量、成本 | | 库存报表 | 库存流水、实时库存 | 当前库存或期间出入库 | | 利润报表 | 销售、出库、成本 | 销售额、成本、毛利、毛利率 | | 往来账 | 账户流水、收付款 | 客户/供应商应收应付 |
口径排查顺序
- 确认报表入口和查询参数。
- 时间字段是创建时间、审核时间、出库时间、入库时间还是业务日期。
- 状态过滤是否排除关闭、撤销、草稿。
- 确认业务单据状态。
- 采购是否审核通过、是否关闭。
- 销售是否完成出库。
- 收付款是否确认或撤销。
- 确认明细数量和金额。
- 报表通常按明细聚合,主单金额和明细金额可能因折扣、关闭、退货不同。
- 成本口径可能来自出库成本、入库成本或动态成本。
- 确认数据源。
- 有些报表查业务库。
- 有些报表可能查同步后的 DWD/Hologres 或历史归档。
- 当天实时数据和离线报表不一致时,先判断是否同步延迟。
- 确认导出口径。
- 列表和导出可能是两套方法。
- 导出常常有格式化、二次计算、字段重命名。
常见不一致原因
- 查询时间字段选错:按下单时间查不到按入库时间的记录。
- 状态过滤不同:列表包含关闭单,导出排除了关闭单。
- 明细聚合差异:主单金额和明细金额不一致。
- 退货/关闭未扣减:采购关闭、销售退货未参与报表扣减。
- 历史归档:当月表和历史表未合并。
- 同步延迟:业务库已变更,报表中心未同步。
常用 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
改动风险和回归清单
- 列表查询和导出查询要同时回归。
- 时间筛选、服务站筛选、商品筛选、客户/供应商筛选要同时回归。
- 关闭、撤销、退货、部分出库、部分入库要单独造数据验证。
- 金额字段要确认是否含税、是否折扣后、是否格式化。