feat(product-commerce): 系列聚合去重与采集开关两层语义
配置来源收敛 - 系列平台编码 tm/jd/dy/jd_self 与 9 类飞书地址改为整系列并集去重后挂锚点, 子款编码保留在 series.platform_ids 备查;多表冲突保留最高优先级并告警 - 写表脚本(当日/天猫主图/京东主图)去掉本地 JSON 回退,地址缺失或读取失败 直接 fail closed,避免库与表地址不一致被静默掩盖 - 测试注入 records_provider 时禁用配置缓存读写,防止假数据写入生产快照 采集开关(dim_style.collect_enabled) - 锚点为系列总开关:false 则整系列不采 - 锚点为 true 时,子款自身 false 仅把自己的 ERP 编码排除出聚合,其余子款照常 - 排除结果记录在 series.erp_excluded 并在运行时提示 聚水潭全店铺日报防错 - 列布局 fail closed、行 td 数校验、满页判定 + 总页数兜底、值域交叉校验 - 新增单日总量闸:超近 14 天中位数 8 倍拒绝落库 其他 - 新增电商费用归集配置 ad_cost_rollup.json 与积分兑换周报采集 - 店铺情报、供应链到货同步、通知路由与相关配置/文档同步更新 - 忽略本地 dsh workbench 脚手架(含 node_modules)
This commit is contained in:
1 parent
2f31d5872f
commit
622a609800
66 files changed
+4156
-469
No files matched your search
+48
-3
@@ -1126,7 +1126,7 @@
|
||||
"30",
|
||||
"--headless"
|
||||
],
|
||||
"timeout_seconds": 14400,
|
||||
"timeout_seconds": 28800,
|
||||
"replay_policy": "idempotent"
|
||||
}
|
||||
]
|
||||
@@ -1180,7 +1180,7 @@
|
||||
"{business_date}",
|
||||
"--end-date",
|
||||
"{business_date}",
|
||||
"--headless"
|
||||
"--headed"
|
||||
],
|
||||
"timeout_seconds": 14400,
|
||||
"replay_policy": "idempotent"
|
||||
@@ -1705,6 +1705,51 @@
|
||||
"task_name": "OnlineItemStockAlert"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "product.points_exchange.weekly",
|
||||
"module": "product_commerce",
|
||||
"trigger": "scheduled",
|
||||
"execution": {
|
||||
"steps": [
|
||||
{
|
||||
"id": "query_rank_notify",
|
||||
"name": "查询积分兑换明细并按商品生成兑换排行周报",
|
||||
"description": "调用企业数据交互积分兑换查询接口(startTime/endTime 覆盖整周自然日),按商品汇总 quantity 兑换数量并从高到低排名;默认统计上一个完整自然周(周一至周日),将排行榜以飞书卡片发送给私域库存预警的同一批接收人。",
|
||||
"replay_policy": "idempotent",
|
||||
"data_flow": {
|
||||
"sources": [
|
||||
{
|
||||
"system": "企业数据交互接口",
|
||||
"label": "积分兑换明细",
|
||||
"detail": "/open/data/v1/points-exchange/query,startTime 为窗口首日 00:00:00、endTime 为窗口末日 23:59:59"
|
||||
}
|
||||
],
|
||||
"processing": [
|
||||
"以业务日期作为窗口起点,缺省统计 7 个自然日",
|
||||
"按 itemId 汇总 quantity,并保留商品名称与 SKU 数",
|
||||
"按兑换数量从高到低排序并分段组织飞书消息"
|
||||
],
|
||||
"destinations": [
|
||||
{
|
||||
"system": "飞书",
|
||||
"label": "积分兑换商品排行周报",
|
||||
"condition": "窗口内存在兑换数量大于 0 的商品"
|
||||
}
|
||||
]
|
||||
},
|
||||
"entry": "points_exchange_weekly.py",
|
||||
"args": [
|
||||
"--from",
|
||||
"{business_date}"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"provenance": {
|
||||
"source_project": "data-hub",
|
||||
"task_name": "PointsExchangeWeeklyRanking"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "product.ecommerce_costs.daily",
|
||||
"module": "product_commerce",
|
||||
@@ -2835,7 +2880,7 @@
|
||||
"source_project": "supply",
|
||||
"task_name": "auto-flow-replenishment-arrival-sync"
|
||||
},
|
||||
"note": "队列表为空时成功结束;失败行保留 failed 状态,下一次调度自动重试。默认租户为 1,可用 GYXX_ERP_TENANT_ID 覆盖。"
|
||||
"note": "队列表为空时成功结束;失败行保留 failed 状态,下一次调度自动重试。data-hub 单公司化后队列表已无 tenant_id:脚本会先探测实际表结构,有该列仍按 GYXX_ERP_TENANT_ID(默认 1)过滤,没有则按单公司口径直接认领。"
|
||||
},
|
||||
{
|
||||
"id": "product.market_rank",
|
||||
|
||||
Reference in new issue
Block a user