1
0
forked from erp-dev/erp

feat: wecom robot markdown message support

This commit is contained in:
2026-01-23 15:47:37 +08:00
parent 7fd44c64aa
commit 88688f9481
6 changed files with 297 additions and 1 deletions

View File

@@ -0,0 +1,36 @@
### 2026-01-23 工作记录
#### 1) 新增:企业微信机器人 Webhooktext 消息util 与测试命令
- settings
- `flower/settings.py` 新增 `WECOM_WEBHOOK_BASE_URL` / `WECOM_WEBHOOK_KEY`(按当前需求直接写入 settings未接入 .env
- util
- `api_v1/utils/wecom_webhook.py`
- 提供 `send_wecom_webhook_message(content=..., msgtype=..., key=..., timeout_seconds=...)`
- `msgtype` 支持:`text`(默认)、`markdown`
- command
- `api_v1/management/commands/wecom_webhook_send_text.py`
- 用法示例:
- `uv run python manage.py wecom_webhook_send_text "hello world"`
- 发送 markdown`uv run python manage.py wecom_webhook_send_text "**bold**" --msgtype markdown`
- 可选覆盖 key`uv run python manage.py wecom_webhook_send_text "hello" --key xxx`
- 参数:
- `text`:必填,消息内容
- `--msgtype`:可选,`text`(默认)或 `markdown`
- `--key`:可选,临时覆盖 `settings.WECOM_WEBHOOK_KEY`
- `--timeout`可选HTTP 超时秒数(默认 10
#### 2) 新增PrintingJob 每次状态推进state_advanced发送企业微信 markdown 通知
- 信号来源:`stateflow.signals.state_advanced`(每次推进都会触发,发送点在 `stateflow.services.advance_to_next_state()` 内)
- 监听注册:`printing/apps.py``state_advanced.connect(..., sender=PrintingJob)`
- handler`printing/handlers.py::on_printing_job_state_advanced`
- 使用 `transaction.on_commit(...)`,确保事务提交后再发送企业微信(避免回滚导致通知不一致)
- 发送内容markdown包含
- `PrintingOrder.id`
- `PrintingJob.id`
- `state.name`
- 推进时间(取 `state_log.completed_at`
- 模板位置(便于后续改文案):`flower/settings.py`
- `PRINTING_JOB_STATE_ADVANCED_WECOM_MARKDOWN_TEMPLATE`
- 开关:`PRINTING_JOB_STATE_ADVANCED_WECOM_NOTIFY_ENABLED`(默认测试环境关闭,非测试环境开启)