店铺维度报表销量改取业绩明细的订单实付/实收金额 #363
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feature/dodo-store-report-sales-paid"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
任务占用与边界
modules/EcommerceFinance/Repositories/StoreReportRepository.php、modules/EcommerceFinance/Services/StoreReportMirrorSynchronizer.php、app/Console/Commands/SyncStoreReportMirror.php、app/Console/Commands/SyncStoreReceiptOrderMatches.php、config/business_navigation.php、config/business_data.php、新增迁移与命令store_report_paid_sales_rows、新数据集键store-report.paid-sales、store_report_import_states.source_fingerprint列、新命令business-mirror:sync-store-report-paid-salesStoreReportPeriodBuilder、ops_fys_shop_info)、平台账单日汇总(store_report_daily_rows)、业绩明细表本身(store_receipt_order_match_rows只读)实际改动
store_report_paid_sales_rows(迁移2026_10_16_234000_create_store_report_paid_sales_rows.php):业绩明细按「店铺名称 + 发生日期」预汇总一行(订单实付合计、订单数);同时给store_report_import_states增加source_fingerprint列。StoreReportRepository:销量(period_sales、sales_01..12)改读该汇总表,仍按店铺名匹配期间、按发生日期落在[生效时间, 失效时间]内;收入(rolling_12m_income、income_01..12,主体维度经营报表使用)保持读平台账单日汇总,两个口径分开统计。StoreReportMirrorSynchronizer::syncPaidSales():用「行数 + 最近写入时间 + 订单实付合计」指纹判断业绩明细是否变化,变化才全量重建(约 57 万行 → 约 1.4 万行),未变化沿用当前版本;版本切换成功后才清理上一版。business-mirror:sync-store-report-paid-sales(--force可强制重建),并把它并入business-mirror:sync-store-report的输出;store-receipt:order-match:sync成功后自动刷新一次(失败只提示,不影响业绩明细写入)。数据核对(生产镜像,2026-08 账期)
ops_fys_shop_info.erpShopName匹配店铺名:422 个店铺中 414 个匹配成功,未匹配 8 个(合计 2.03 万元,其中 2 个真实店铺「拼多多-索菲亚实木家具旗舰店(作废)」「京喜-序木家居京喜自营工厂店」,其余为无实付金额的「支付宝-*」账户行);验证
StoreReportRepositoryTest、StoreReportRepositoryFilterTest、StoreReportMirrorSyncTest:23 个用例、110 个断言全部通过(含销量取订单实付、收入取账单汇总的区分用例、汇总表指纹重建/跳过用例、数据集未就绪时报错用例)。PrototypePageTest、ManagementCrudTest、PagesTest、UpstreamBusinessInformationTest:与未改动origin/main基线一致(同样 3 个既有失败:抖音账户账单文案、库存报表回退、导出 buffer 提示),本改动未引入新失败。数据库与配置影响
store_report_paid_sales_rows、store_report_import_states.source_fingerprint(迁移均为存在性判断,可重复执行)。business-mirror:sync-store-report-paid-sales生成销量汇总版本;业绩明细没有某个月份时,该月销量为 0 并按既有「无业绩月份列默认隐藏」规则隐藏。需要留意的协调项
origin/feature/limeng-stock-quote-entry(未合并)同时修改了app/Console/Commands/SyncStoreReceiptOrderMatches.php与config/business_navigation.php,其中包含把业绩明细store_name从「线上真实店铺」改回账单店铺名的改动。若该分支先合并,业绩明细的店铺名口径会变化,销量按erpShopName的匹配率需重新核对。