插件1: 现有官方wecom插件
├── 功能: 基础连接、权限管理
├── 工具: doc品类8个工具
└── 状态: ✅ 保留并正常运行插件2: wecom-cli MCP Server
├── 功能: 补充高级CRUD功能
├── 工具: 智能表格完整CRUD + 会议/消息/日程
└── 状态: ✅ 已部署并集成
wecom-cli-mcp-server.jssmartsheet_get_records - 读取记录 ✅
- smartsheet_add_records - 添加记录 ✅
- smartsheet_delete_records - 删除记录 ✅
- smartsheet_update_records - 更新记录 ✅
- smartsheet_get_fields - 获取字段 ✅
- meeting_create - 创建会议 ✅
- msg_send_text - 发送消息 ✅wecom_cli_tool.pyfranchisee_sync_complete.py 1. 读取加盟商状态表 → ✅ 使用wecom-cli
2. 检测状态变化 → ✅ 本地逻辑处理
3. 同步到工期进度表 → ✅ 添加(现有插件) + 删除(wecom-cli)
4. 保存状态跟踪 → ✅ 本地文件存储
/var/log/franchisee_sync_complete.log/tmp/franchisee_last_status.jsonmonitor.sh 一键查看系统状态 /1 * /usr/bin/python3 /root/.openclaw/agents/101/workspace/franchisee_sync_complete.py >> /var/log/franchisee_sync_complete.log 2>&1
2. ✅ 首次同步测试成功
2026-03-30 16:48:43 - INFO - 获取到 3 条加盟商记录
2026-03-30 16:48:43 - INFO - 当前状态: 3 个加盟商
2026-03-30 16:48:43 - INFO - 未发现状态变化
2026-03-30 16:48:43 - INFO - 状态已保存: 3 个加盟商
2026-03-30 16:48:43 - INFO - 同步任务执行成功
3. ✅ 系统监控正常 - Cron任务: 已配置 - 日志文件: 存在并正常写入 - 状态文件: 首次运行后创建
class WeComToolManager:
def get_records(self, docid, sheet_id):
# 优先使用wecom-cli插件
if self.use_cli:
try:
return self._get_records_via_cli(docid, sheet_id)
except:
# 失败时回退到现有插件
self.use_cli = False
return self._get_records_via_legacy(docid, sheet_id)
def detect_status_changes(self, current_status):
changes = {
"terminated": [], # 变为签约后终止
"renewed": [], # 变为再次签约
"new": [], # 新加盟商
"removed": [] # 已移除的加盟商
}
# 对比上次状态和当前状态
for franchisee, current_state in current_status.items():
last_state = self.last_status.get(franchisee)
if last_state is None:
changes["new"].append(franchisee)
elif current_state != last_state:
if current_state == "签约后终止":
changes["terminated"].append(franchisee)
elif current_state == "再次签约":
changes["renewed"].append(franchisee)
return changes
def run_sync(self):
# 1. 获取当前状态
current_status = self.get_current_status()
# 2. 检测状态变化
changes = self.detect_status_changes(current_status)
# 3. 同步到进度表
if changes["renewed"]:
self.add_to_progress_table(changes["renewed"])
if changes["terminated"]:
self.remove_from_progress_table(changes["terminated"])
# 4. 保存状态
self.save_current_status(current_status)
smartsheet_get_records)smartsheet_delete_records)1. 手动执行同步
python3 /root/.openclaw/agents/101/workspace/franchisee_sync_complete.py2. 查看系统状态
bash /root/.openclaw/agents/101/workspace/monitor.sh3. 查看实时日志
tail -f /var/log/franchisee_sync_complete.log
查看Cron任务
crontab -l | grep franchisee查看运行进程
ps aux | grep -i franchisee查看状态文件
cat /tmp/franchisee_last_status.json
检查日志错误
grep -i error /var/log/franchisee_sync_complete.log测试MCP Server
node /root/.openclaw/agents/101/workspace/wecom-cli-mcp-server.js手动测试工具
python3 /root/.openclaw/agents/101/workspace/wecom_cli_tool.py
✅ 自动化系统就绪
✅ 技术问题解决