Skip to main content

dingtalk-weekly-report-automation

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

ソース情報

リポジトリ
crimsonblazezero/Zero-Tools
ソースの最終更新活動
2026年8月8日 08:33
検出された SKILL.md の言語
中国語
スター
0
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
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` — 常见故障排查
GitHubで見る