import os from config import Config import pandas as pd from back_ground_module import CommonModule from api import API from log_config import configure_task_logger, configure_error_task_logger from datetime import datetime, timedelta logger = configure_task_logger() error_task_logger = configure_error_task_logger() output_dir = "output" # 设置输出目录 os.makedirs(output_dir, exist_ok=True) common_module = CommonModule() api_instance = API() class DailyDispatchStatsByRegionAndAgent : """ 区域&客服人员每日派发数量统计(简道云不支持) """ def __init__(self): self.table_ids_list = [ # ("675b900991ad2491c69389ca", "675b9c63925cd404038a6b86"), # 日常回访表 # ("675b900991ad2491c69389ca", "67f8b1d3307bad317abc3a9a"), # 问题跟进表 # ("6717470a0b3975ef583c6df1", "67174710da507490d8ac12c1"), # 接车宝 ("6694d3c4fcb69ca9a111a6c4", "693778ee287cfdcc2df85ece"), # 流程测试表单 ] def get_data(self,date_back=1): select_date = (datetime.now() - timedelta(days=date_back)).strftime("%Y-%m-%d") data_ids = [] for table_id, form_id in self.table_ids_list: # 获取表单数据 data = {"api_key": table_id, "entry_id": form_id, "filter": {"rel": "and", "cond": [ {"field": "updateTime", "type": "datetime", "method": "eq", "value": [select_date]}]}} res_data = api_instance.entry_data_list(data) data_ids.extend([i["_id"] for i in res_data["data"]]) return data_ids def get_workflow_data(self,data_ids): if not data_ids: return print(data_ids) for data_id in data_ids: payload = {"data_id": data_id} workflow_data = api_instance.workflow_instance_get(payload) print(workflow_data) tasks = workflow_data.get("tasks",[]) def main(self): task_start_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") try: # step1:获取昨日更新数据 data_ids = self.get_data(date_back=0) # step2:获取流程数据节点 self.get_workflow_data(data_ids) except Exception as e: error_task_logger.error("区域&客服人员每日派发数量统计失败") common_module.send_task_error(task_start_time, "区域&客服人员每日派发数量统计", str(e)) if __name__ == '__main__': daily_dispatch_stats_by_region_and_agent = DailyDispatchStatsByRegionAndAgent() daily_dispatch_stats_by_region_and_agent.main()