Skip to main content

cross-system-report-pipeline

从外部 API(MCP/钉钉云API)拉数据 → Python 处理计算 → Excel 输出 + 钉钉日志自动填报。 用于周/月报自动化、运营指标汇总、跨系统数据管道搭建。

Datos de origen

Repositorio
crimsonblazezero/Zero-Tools
Última actividad en el origen
8 de agosto de 2026 a las 08:33
Idioma detectado de SKILL.md
chino
Estrellas
0
Forks
0

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
cross-system-report-pipeline
description
从外部 API(MCP/钉钉云API)拉数据 → Python 处理计算 → Excel 输出 + 钉钉日志自动填报。 用于周/月报自动化、运营指标汇总、跨系统数据管道搭建。
tags
["report","pipeline","excel","dingtalk","mcp","automation"]
metadata
{"author":"agnes","created":"2026-07-26T00:00:00.000Z","updated":"2026-07-26T00:00:00.000Z"}
# Cross-System Report Pipeline 从多个数据源拉取业务数据,进行计算转换后写入 Excel 并自动提交到钉钉日志/报表的自动化管道。 ## 适用场景 - 周报/月报自动填数据 - 从 ERP、CRM、财务系统拉取销售/库存/利润数据 - 多币种/多站点数据合并 - 钉钉日志模板填报 - Excel 指标计算与校验 ## 核心流程 ``` [数据源A] ──→ [脚本拉取/解析] ──┐ [数据源B] ──→ [脚本拉取/解析] ──┼──→ [Python 计算/转换] ──→ [Excel 输出] [数据源C] ──→ [脚本拉取/解析] ──┘ ↓ [钉钉日志/群投递] ``` ### Step 1:确认数据源与权限边界 在写代码前,**先实测所有数据源的接口能力**: | 检查项 | 做法 | |--------|------| | 是否只读? | 调用 `list/get/query` 类接口确认;调用 `create/update/delete` 验证是否返回权限错误 | | QPS 限制 | 测试并发调用是否会触发限流;记录实际可用 QPS | | 分页方式 | 确认是 page/offset 还是 cursor 模式;每页条数限制 | | 字段命名 | 记录实际字段名(而非 API 文档名),特别是日期格式、货币符号、状态码 | **示例**:领星 MCP 实测结论 - `get_profit_report_msku` 返回 4453 条记录但一页只 50 条 → 需要分页 - 广告报表并发时触发"服务器繁忙" → 需串行或降速 - 自定义指标接口返回无权限 → 标记为不可用 ### Step 2:数据拉取与解析 **关键原则**:不要假设数据结构,先用示例数据打印完整结构再编写解析逻辑。 常见陷阱: - MCP 返回值可能是嵌套 JSON:`{result: "{\"code\":0,...,"data":{"records":[...]}}}` → 需要二次 `json.loads` - 字段可能为 `null`、空字符串 `""`、或者数字 `0` → 统一做 `float(val or 0)` - 日期范围:用户说的"本周"可能指"上周日到今天",而非自然周 ### Step 3:业务规则计算 每个业务场景都有特定计算规则,**必须单独验证**: | 业务规则 | 示例 | |----------|------| | 毛利修正系数 | 领星 predict_gross_profit × 0.6 ÷ 6.8109(部分成本未扣减,周报/周会纪要统一口径) | | ACoS | **优先直接从广告报表取**,不手动算 ads/sales | | 目标设定 | 周目标 = 月目标 / 4;下期目标可累加未完成部分 | | 库存清货效率 | 90-180天目标 = 当前 × 0.8;181-270天目标 = 当前 × 0.5;271-365天目标 = 当前 × 0.3;366天以上目标 = 当前 × 0.1 | | 库销比 | FBA 总库存件数 ÷ 日均销售件数(不是日均销售额) | ### Step 4:Excel 写入策略 两种模式可选: **A. 更新现有模板**(适合"运营周会数据收集"类固定表) - 读取现有 xlsx 文件 - 定位目标行/列(通常按姓名/负责人标识) - 覆盖写入数值 - 保持原有格式和公式 **B. 生成新汇总文件**(适合需要独立交付的场景) - 新建 Workbook - 按业务维度分 Sheet - 输出摘要 + 明细 ### Step 5:钉钉日志自动填报 使用 `dws report entry submit` 命令: ```bash dws report entry submit \ --template-id <模板ID> \ --contents-file <JSON文件路径> \ --format json ``` contents JSON 格式: ```json [ { "key": "字段名", "sort": "排序号", "type": "字段类型(1文本/2数字/9附件/13富文本)", "content": "值", "contentType": "markdown" } ] ``` ### Step 6:调度与重试机制 **防重复执行**: - 用 lock file 记录上次成功时间戳 - 同一天内:首次失败后每 2 小时允许重试一次 - 不同天:自动恢复运行 **通知控制**: - 用户明确说"成功投递信息后,现在不在群里通知" - 默认静默;仅失败时需要告警 ## 参考文件 见 `references/` 目录下的具体场景笔记: - `lingxing-mcp-notes.md`:领星 MCP 实测数据、字段映射、已知坑 ## Pitfalls 1. **MCP 结果嵌套**:很多 MCP 返回的是 JSON 字符串,需要 `json.loads` 二次解析 2. **QPS 限流**:并发调用 MCP 接口容易触发"服务器繁忙",串行或加间隔 3. **字段为空**:`null`、`""`、`0` 都要安全处理 4. **日期口径**:用户说"上周到本周六"≠自然周,需确认具体范围 5. **A科AS别手算**:优先用广告报表原始 ACoS;利润报表里的广告费只做备用 6. **库销比分母**:用销量(件数),不是销售额(金额)
Ver en GitHub