#!/bin/bash # 加盟商状态同步定时任务脚本 # 每分钟执行一次 # 配置信息 DOCID="dcyeOLceOJqbuQpvY_EyivG5xx0cCPcT2x4kZ3UtkVJBhGqrD7wdc_iKB3za3vqq0foQifL-Y2npwGb1bl6Hb9EQ" STATUS_SHEET_ID="q979lj" PROGRESS_SHEET_ID="MAqXdi" STATUS_FIELD="状态" FRANCHISEE_FIELD="加盟商名称" TERMINATED_STATUS="签约后终止" RENEWED_STATUS="再次签约" # 日志文件 LOG_FILE="/tmp/franchisee_sync_$(date +%Y%m%d).log" # 记录日志 log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE" echo "[$(date '+%H:%M:%S')] $1" } # 获取加盟商状态表记录 get_status_records() { log "获取加盟商状态表记录..." # 这里调用 wecom_mcp 工具 # wecom_mcp call doc smartsheet_get_records "{\"docid\": \"$DOCID\", \"sheet_id\": \"$STATUS_SHEET_ID\"}" echo "模拟获取记录..." } # 获取工期进度表记录 get_progress_records() { log "获取工期进度表记录..." # wecom_mcp call doc smartsheet_get_records "{\"docid\": \"$DOCID\", \"sheet_id\": \"$PROGRESS_SHEET_ID\"}" echo "模拟获取记录..." } # 删除工期进度记录 delete_progress_record() { local franchisee_name="$1" local record_id="$2" log "删除加盟商 $franchisee_name 的工期进度记录 (record_id: $record_id)" # wecom_mcp call doc smartsheet_delete_records "{\"docid\": \"$DOCID\", \"sheet_id\": \"$PROGRESS_SHEET_ID\", \"record_ids\": [\"$record_id\"]}" } # 添加工期进度记录 add_progress_record() { local franchisee_name="$1" log "添加加盟商 $franchisee_name 的工期进度记录" # 创建记录数据 local record_data="{\"values\": {\"$FRANCHISEE_FIELD\": [{\"type\": \"text\", \"text\": \"$franchisee_name\"}], \"项目阶段\": [{\"text\": \"初始阶段\"}], \"当前进度\": 0}}" # wecom_mcp call doc smartsheet_add_records "{\"docid\": \"$DOCID\", \"sheet_id\": \"$PROGRESS_SHEET_ID\", \"records\": [$record_data]}" } # 主检查函数 check_franchisee_status() { log "开始检查加盟商状态..." # 这里应该是实际的检查逻辑 # 1. 获取状态表记录 # 2. 检查状态变化 # 3. 同步到进度表 # 模拟检查 log "检查完成(模拟模式)" log "提示:实际使用时需要取消注释 wecom_mcp 调用" } # 主程序 main() { log "=" * 50 log "加盟商状态同步任务启动" log "文档ID: $DOCID" log "状态表: $STATUS_SHEET_ID" log "进度表: $PROGRESS_SHEET_ID" log "=" * 50 # 执行检查 check_franchisee_status log "任务执行完成" } # 执行主程序 main