Skip to main content

dingtalk-weekly-report-automation

基于 Hermes Agent cron + dws CLI 的钉钉周报自动化工作流。 定时从领星MCP拉取销售/库存/广告数据,生成Excel报表,提交钉钉OA日志模板。 适用于每周五/周日下午自动执行运营周复盘、销售周报等周期性报表任务。

Quellinformationen

Repository
crimsonblazezero/Zero-Tools
Letzte Quellaktivität
8. August 2026 um 08:33
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
0
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
dingtalk-weekly-report-automation
description
基于 Hermes Agent cron + dws CLI 的钉钉周报自动化工作流。 定时从领星MCP拉取销售/库存/广告数据,生成Excel报表,提交钉钉OA日志模板。 适用于每周五/周日下午自动执行运营周复盘、销售周报等周期性报表任务。
tags
["automation","dingtalk","dws","cron","lingxing-mcp","excel","weekly-report","oa-log"]
metadata
{"author":"agnes","created":"2026-07-26T00:00:00.000Z","updated":"2026-07-26T00:00:00.000Z"}
# DingTalk Weekly Report Automation 自动化钉钉OA周报生成与提交:定时调用领星MCP拉取业务数据 → 计算指标 → 更新Excel → 提交钉钉日志模板。 ## 何时触发 - 用户说:"配置周报自动化"、"每周五下午跑周报"、"设置cron周报任务"、"自动提交钉钉日志" - 需要周期性(每天/每周)重复执行的跨系统数据同步任务 ## 架构概览 ``` Hermes Agent Cron Job ↓ (每周五 16:00 UTC+8) Python 脚本:scripts/weekly_report.py ├── 领星MCP → 拉取利润报表 / FBA库存 / 广告报表 ├── Python 计算 → 毛利×0.6、ACoS、库销比、目标达成率 ├── openpyxl → 写入「运营周会数据收集_王祎.xlsx」 ├── dws report entry submit → 填报钉钉日志模板 └── (可选)上传Excel附件到钉盘 ``` ## 实现步骤 ### Step 1: 编写数据处理脚本 核心功能(见参考文件 `references/python-script-structure.md`): 1. **读取领星MCP数据** — 通过 `mcp__LingXing_MCP_*` 工具或直接HTTP调用 - `get_profit_report_msku`: 销售额、毛利额、广告费 - `get_fba_stock_list`: FBA库存及库龄分布 - `ad_campaign_report`: ACoS(优先直取,fallback 到广告费/销售额) 2. **读取本地Excel目标** — 如「人员」sheet中的月目标数据 3. **计算业务指标** — 毛利修正×0.6、ACoS、目标完成率、库龄清货效率 4. **更新目标Excel** — openpyxl 写入对应sheet的行和列 5. **提交钉钉日志** — 调用 `dws report entry submit`,先 `template get` 获取字段定义,再构造JSON内容 ### Step 2: 测试执行 在正式加入 cron 前,必须手动跑一次验证全流程: ```bash # 方式A: Python脚本直接运行 python3 scripts/weekly_report.py --dry-run # 方式B: 只测试数据拉取和Excel更新(跳过钉钉提交) SKIP_DINGTALK=1 python3 scripts/weekly_report.py # 方式C: 完整执行含钉钉提交 python3 scripts/weekly_report.py ``` 验证清单: - [ ] 领星数据是否按预期日期范围拉取? - [ ] Excel中的每个字段值是否合理?(销售额是否过大/过小?) - [ ] 毛利额是否已 ×0.6? - [ ] 库存目标是否按 90-180天×0.8、181-270天×0.5、271-365天×0.3、366天以上×0.1 反推? - [ ] 钉钉模板字段是否与 `template get` 返回一致? ### Step 3: 配置 Cron Job 使用 Hermes Agent cron 调度(推荐方式): ```yaml # 方案A: 直接执行 Python 脚本(推荐) schedule: "0 16 * * 5" # 每周五 16:00 UTC+8 prompt: | 执行周报自动化脚本: python3 "C:\Users\Administrator\Desktop\工作\2025~若驰工作文件\scripts\weekly_report.py" 完成后报告执行结果,如果失败则记录错误。 # 方案B: 用 dws event + 自定义脚本 schedule: "every friday 16:00" script: scripts/run_weekly_report.sh ``` ⚠️ Cron 环境注意: - Windows 路径用 `C:\...` 或 `/c/Users/...` - Python 解释器路径可能需要完整路径:`C:\Python311\python.exe` - 依赖包需确保环境中已安装:`openpyxl`, `requests` ### Step 4: 失败重试与防重复 脚本内部应包含: ```python # Lock file 机制 if last_successful_run < today: should_run = True elif elapsed_hours >= 2: should_run = True # 2小时内最多重试一次 else: should_run = False # 记录成功时间戳 record_success(now) # 记录失败信息 record_error(error_msg, now) ``` **规则**: - 当天首次失败后,允许每2小时重试一次 - 成功执行后记录时间戳,防止同一天重复提交 - 钉钉提交失败时,Excel 仍应更新保存;仅不记录为"成功" ## 关键业务规则速查 | 指标 | 公式 | 来源 | |------|------|------| | 毛利额 | predict_gross_profit × **0.6** ÷ 6.8109 | 领星产品表现表(原始值未扣全成本,周报/周会纪要统一口径) | | ACoS % | **广告报表原始字段** | ad_campaign_report(非手算) | | 周目标 | 月目标 ÷ 4 | 本地Excel | | 90-180天库存目标 | 当前库存 × **0.8** | FBA库存 | | 181-270天库存目标 | 当前库存 × **0.5** | FBA库存 | | 271-365天库存目标 | 当前库存 × **0.3** | FBA库存 | | 366天以上库存目标 | 当前库存 × **0.1** | FBA库存 | | 库销比 | FBA总库存件数 ÷ 日均销售件数 | 件数÷件数,不是金额 | | 日期范围 | 上周日 ~ 本周六 | 自然周定义 | ## 钉钉日志提交细节 ### 铁律 1. **contents JSON 的 `key` 必须等于 `template get` 返回的 `field_name`**,一字不差 2. 长 JSON 必须写到临时文件,用 `--contents-file` 参数提交 3. `contentType`: type=1(文本)用 `markdown`,其他类型用 `origin` 4. 提交成功后返回中包含 `dingtalkOpenMarkdownLink`,必须返回给用户可点击链接 ### 排查流程 遇到 `PARAM_ERROR` 时: ```bash # 1. 重新拉取模板字段定义 dws report template get --name "运营周复盘(周一9:00前提交)" --format json # 2. 对比实际字段名与预期是否有差异 # 3. 检查所有必填字段是否都有值(不要传空值给数字类型字段) ``` ## 相关文件 - `references/python-script-structure.md` — Python脚本骨架与关键函数说明 - `references/dingtalk-report-template-fields.json` — 模板字段JSON示例 - `references/testing-checklist.md` — 测试执行清单 - `references/troubleshooting.md` — 常见故障排查
Auf GitHub ansehen