diff --git a/back_ground_module/JCB_efficient_car_pickup.py b/back_ground_module/JCB_efficient_car_pickup.py index 86d42d3..010be2a 100644 --- a/back_ground_module/JCB_efficient_car_pickup.py +++ b/back_ground_module/JCB_efficient_car_pickup.py @@ -4,6 +4,9 @@ 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, timezone +import pandas as pd +import os # 获取已经配置好的常规日志记录器 logger = configure_task_logger() @@ -24,6 +27,7 @@ class JCBEfficientCarPickup: def __init__(self): # 使用 pymysql 连接数据库 + self.daily_revisit_list = None self.field_mapping = {} self.staff_id_list = None self.customer_service_list = None @@ -108,7 +112,8 @@ class JCBEfficientCarPickup: new_sign_abnormal_data = [self.row_to_dict(row, self.field_mapping) for index, row in df.iterrows()] - data = {'api_key': Config.EFFICIENT_CAR_PICKUP_APP_ID, 'entry_id': Config.EFFICIENT_CAR_PICKUP_ENTRY_ID, + data = {'api_key': Config.EFFICIENT_CAR_PICKUP_APP_ID, + 'entry_id': Config.EFFICIENT_CAR_PICKUP_ENTRY_ID, "data_list": new_sign_abnormal_data} result = api_instance.entry_data_batch_create(data) @@ -137,6 +142,14 @@ class JCBEfficientCarPickup: result2 = api_instance.entry_data_update(data2) logger.info(f"明日派发人员信息已修改:{result2}") + def load_all_data(self): + # 获取接车宝日常回访单 + payload = {"api_key": "6717470a0b3975ef583c6df1", + "entry_id": "67174710da507490d8ac12c1", + } + daily_revisit = api_instance.entry_data_list(payload) + self.daily_revisit_list = daily_revisit.get("data") # api请求格式,将数据封装在data字典里 + def main(self): task_start_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") try: @@ -145,6 +158,7 @@ class JCBEfficientCarPickup: if data_JCB is None: logger.error("获取接车宝数据失败,返回None") raise ValueError("获取接车宝数据失败,返回None") + self.load_all_data() logger.info(f"数据加载完成") @@ -181,6 +195,97 @@ class JCBEfficientCarPickup: else: logger.info(f"新签异常待办回访无数据,跳过") + # 异常待办 + current_local = datetime.now() + timedelta(days=-1) # tz-naive,代表本地时间 + current_date_str = current_local.strftime("%Y-%m-%d") + # 计算30天前的本地日期(用于开户日判断) + thirty_days_ago_local = (current_local - timedelta(days=30)).date() + + abnormal_data = [] + for index, row in data_JCB.iterrows(): + try: + # 开户日是本地日期字符串,解析为 date 对象 + open_date = datetime.strptime(str(row['开户日']), "%Y-%m-%d").date() + except (ValueError, TypeError): + continue # 跳过无效日期 + + if ( + open_date < thirty_days_ago_local + and row['近30天开单天数'] == 0 + and row['客户状态'] == "留存" + ): + new_row = row.copy() + new_row["日期"] = open_date.strftime("%Y-%m-%d") + abnormal_data.append(new_row) + + abnormal_data = pd.DataFrame(abnormal_data) if abnormal_data else pd.DataFrame() + + if not abnormal_data.empty: + abnormal_data["表单类型"] = "异常待办" + abnormal_data["派发日期"] = current_date_str + + # 清洗手机号(仅去除浮点型 .0) + def clean_phone(x): + if pd.isna(x) or x == "" or x == "None": + return "" + s = str(x) + if s.endswith('.0') and s[:-2].isdigit(): + return s[:-2] + return s + + abnormal_data['联系手机号'] = abnormal_data['联系手机号'].apply(clean_phone) + + # 构建云端已派发记录 DataFrame + df_cloud = pd.DataFrame([ + { + "数据id": item.get("_id", ""), + "账号": item.get("_widget_1739258942667", ""), + "提交时间": item.get("createTime", ""), + "表单类型": item.get("_widget_1739951204545", "") + } + for item in self.daily_revisit_list + ]) + + recent_accounts = set() + if not df_cloud.empty and not abnormal_data.empty: + # 将 createTime 转为 UTC 时间(强制统一时区) + df_cloud["提交时间"] = pd.to_datetime(df_cloud["提交时间"], utc=True, errors="coerce") + df_cloud = df_cloud.dropna(subset=["提交时间"]) + + # 筛选“异常待办” + df_abnormal_cloud = df_cloud[df_cloud["表单类型"] == "异常待办"] + + if not df_abnormal_cloud.empty: + # 每个账号保留最新一条 + df_recent = df_abnormal_cloud.sort_values("提交时间").groupby("账号", as_index=False).tail(1) + + current_utc = datetime.now(timezone.utc) + cutoff_utc = pd.Timestamp(current_utc) - pd.Timedelta(days=30) + + # 安全比较:两边都是 UTC + recent_accounts = set(df_recent[df_recent["提交时间"] > cutoff_utc]["账号"]) + + # 剔除已派发账号 + 过滤有效手机号 + if not abnormal_data.empty: + abnormal_data = abnormal_data[ + (~abnormal_data["账号"].isin(recent_accounts)) & + (abnormal_data["联系手机号"].notna()) & + (abnormal_data["联系手机号"] != "") & + (abnormal_data["联系手机号"] != "None") + ] + + # # 保存结果 + output_path = os.path.join(output_dir, "异常待办1.csv") + abnormal_data.to_csv(output_path, index=False) + + # 发送或跳过 + if not abnormal_data.empty: + abnormal_data = abnormal_data[:20] + self.send_request(abnormal_data) + logger.info(f"异常待办完成,共 {len(abnormal_data)} 条") + else: + logger.info("异常待办无数据,跳过") + # 优质客户转商机 # current_date = datetime.now() thirty_days_ago = current_date - timedelta(days=30) diff --git a/back_ground_module/common_module.py b/back_ground_module/common_module.py index 54960c5..de4aa10 100644 --- a/back_ground_module/common_module.py +++ b/back_ground_module/common_module.py @@ -274,7 +274,7 @@ class CommonModule: else: # 如果没有数据,返回空 DataFrame data_NGV = pd.DataFrame() headers = [ - "门店编码", "类型", "占位", "价格" + "门店编码", "类型", "订单商品名称", "价格" ] data_NGV.columns = headers diff --git a/test/logs/task.log b/test/logs/task.log index 3663901..e326611 100644 --- a/test/logs/task.log +++ b/test/logs/task.log @@ -8903,3 +8903,350 @@ 2025-12-26 10:16:35,914 - api.py - task_logger - INFO - 多数据写入行数: 44 2025-12-26 10:16:40,419 - 续约待办派发.py - task_logger - INFO - 已提交 44 条数据进行派发 2025-12-26 10:16:40,617 - common_module.py - task_logger - INFO - 任务状态发送成功: {'data': {'_id': '694df0088b351039a698b9ee', 'creator': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'updater': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'deleter': None, 'createTime': '2025-12-26T02:16:40.038Z', 'updateTime': '2025-12-26T02:16:40.038Z', 'deleteTime': None, '_widget_1744873387500': '2025-12-26T00:00:00.000Z', '_widget_1743644977694': '续约回访待办', '_widget_1744873387501': '2025-12-26T02:13:25.000Z', '_widget_1744873387502': '2025-12-26T02:16:40.000Z', '_widget_1744873387504': '195', 'appId': '6694d3c4fcb69ca9a111a6c4', 'entryId': '67ede908eb9c22261016466e'}} +2025-12-26 14:37:32,385 - 续约待办派发.py - task_logger - INFO - 任务开始 +2025-12-26 14:40:12,480 - api.py - task_logger - INFO - 获取了44415条数据 +2025-12-26 14:40:12,848 - api.py - task_logger - INFO - 获取了150条数据 +2025-12-26 14:40:26,821 - api.py - task_logger - INFO - 获取了3670条数据 +2025-12-26 14:40:27,598 - api.py - task_logger - INFO - 获取了188条数据 +2025-12-26 14:40:27,598 - 续约待办派发.py - task_logger - INFO - 加载数据完成 +2025-12-26 14:40:28,614 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201903220023020 派发给客服: 1824534815658365 +2025-12-26 14:40:28,615 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201904020026822 派发给客服: 224616673723465569 +2025-12-26 14:40:28,616 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201907150033130 派发给客服: 1824534815658365 +2025-12-26 14:40:28,617 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201907160033336 派发给客服: 1824534815658365 +2025-12-26 14:40:28,617 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201911250043442 派发给客服: 224616673723465569 +2025-12-26 14:40:28,619 - 续约待办派发.py - task_logger - WARNING - 未找到区域客服,请检查门店编码: CHS201911290043838 +2025-12-26 14:40:28,620 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201912090044764 派发给客服: 064100296032290698 +2025-12-26 14:40:28,621 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201912110045264 派发给客服: 064100296032290698 +2025-12-26 14:40:28,621 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201912170046820 派发给客服: 064100296032290698 +2025-12-26 14:40:28,622 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204240174930 派发给客服: 1824534815658365 +2025-12-26 14:40:28,623 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202005050075976 派发给客服: 224616673723465569 +2025-12-26 14:40:28,623 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202006050087128 派发给客服: 084119070623372941 +2025-12-26 14:40:28,624 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202006170090583 派发给客服: 1824534815658365 +2025-12-26 14:40:28,624 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202007060095354 派发给客服: 064100296032290698 +2025-12-26 14:40:28,625 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202007140097379 派发给客服: 064100296032290698 +2025-12-26 14:40:28,625 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202104230122131 派发给客服: 171201105229666119 +2025-12-26 14:40:28,626 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202103160117020 派发给客服: 171201105229666119 +2025-12-26 14:40:28,626 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202103260118027 派发给客服: 064100296032290698 +2025-12-26 14:40:28,627 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202104230122201 派发给客服: 1824534815658365 +2025-12-26 14:40:28,628 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202108050134855 派发给客服: 064100296032290698 +2025-12-26 14:40:28,628 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202108190138351 派发给客服: 224616673723465569 +2025-12-26 14:40:28,628 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202111020144809 派发给客服: 224616673723465569 +2025-12-26 14:40:28,629 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202203310173614 派发给客服: 064100296032290698 +2025-12-26 14:40:28,630 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202203310173579 派发给客服: 224616673723465569 +2025-12-26 14:40:28,630 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204150174381 派发给客服: 171201105229666119 +2025-12-26 14:40:28,631 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204180174567 派发给客服: 245308451136546029 +2025-12-26 14:40:28,632 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204190174625 派发给客服: 064100296032290698 +2025-12-26 14:40:28,632 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204220174838 派发给客服: 224616673723465569 +2025-12-26 14:40:28,634 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297331 派发给客服: 245308451136546029 +2025-12-26 14:40:28,634 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202404240266305 派发给客服: 171201105229666119 +2025-12-26 14:40:28,635 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297315 派发给客服: 171201105229666119 +2025-12-26 14:40:28,636 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304110224131 派发给客服: 245308451136546029 +2025-12-26 14:40:28,637 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304180225440 派发给客服: 064100296032290698 +2025-12-26 14:40:28,639 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304250226989 派发给客服: 245308451136546029 +2025-12-26 14:40:28,640 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304230226382 派发给客服: 224616673723465569 +2025-12-26 14:40:28,641 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202403030259960 派发给客服: 224616673723465569 +2025-12-26 14:40:28,641 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202404090264473 派发给客服: 064100296032290698 +2025-12-26 14:40:28,643 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202404250266404 派发给客服: 245308451136546029 +2025-12-26 14:40:28,644 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504070295320 派发给客服: 064100296032290698 +2025-12-26 14:40:28,644 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504140295952 派发给客服: 224616673723465569 +2025-12-26 14:40:28,645 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297345 派发给客服: 245308451136546029 +2025-12-26 14:40:28,646 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297365 派发给客服: 084119070623372941 +2025-12-26 14:40:28,647 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297326 派发给客服: 064100296032290698 +2025-12-26 14:40:28,649 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297356 派发给客服: 171201105229666119 +2025-12-26 14:40:28,653 - api.py - task_logger - INFO - 多数据写入行数: 44 +2025-12-26 14:40:34,023 - 续约待办派发.py - task_logger - INFO - 已提交 44 条数据进行派发 +2025-12-26 14:40:34,176 - common_module.py - task_logger - INFO - 任务状态发送成功: {'data': {'_id': '694e2de169b547c48c9fbfbc', 'creator': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'updater': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'deleter': None, 'createTime': '2025-12-26T06:40:33.188Z', 'updateTime': '2025-12-26T06:40:33.188Z', 'deleteTime': None, '_widget_1744873387500': '2025-12-26T00:00:00.000Z', '_widget_1743644977694': '续约回访待办', '_widget_1744873387501': '2025-12-26T06:37:32.000Z', '_widget_1744873387502': '2025-12-26T06:40:34.000Z', '_widget_1744873387504': '182', 'appId': '6694d3c4fcb69ca9a111a6c4', 'entryId': '67ede908eb9c22261016466e'}} +2025-12-26 14:43:50,958 - 续约待办派发.py - task_logger - INFO - 任务开始 +2025-12-26 14:45:31,594 - api.py - task_logger - WARNING - 请求异常: HTTPSConnectionPool(host='api.jiandaoyun.com', port=443): Read timed out. (read timeout=10), 将重新请求 +2025-12-26 14:46:43,227 - api.py - task_logger - INFO - 获取了44415条数据 +2025-12-26 14:46:44,094 - api.py - task_logger - INFO - 获取了150条数据 +2025-12-26 14:46:58,394 - api.py - task_logger - INFO - 获取了3670条数据 +2025-12-26 14:46:59,755 - api.py - task_logger - INFO - 获取了232条数据 +2025-12-26 14:46:59,756 - 续约待办派发.py - task_logger - INFO - 加载数据完成 +2025-12-26 14:47:00,768 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201903220023020 派发给客服: 1824534815658365 +2025-12-26 14:47:00,769 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201904020026822 派发给客服: 224616673723465569 +2025-12-26 14:47:00,769 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201907150033130 派发给客服: 1824534815658365 +2025-12-26 14:47:00,771 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201907160033336 派发给客服: 1824534815658365 +2025-12-26 14:47:00,771 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201911250043442 派发给客服: 224616673723465569 +2025-12-26 14:47:00,773 - 续约待办派发.py - task_logger - WARNING - 未找到区域客服,请检查门店编码: CHS201911290043838 +2025-12-26 14:47:00,774 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201912090044764 派发给客服: 064100296032290698 +2025-12-26 14:47:00,775 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201912110045264 派发给客服: 064100296032290698 +2025-12-26 14:47:00,776 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201912170046820 派发给客服: 064100296032290698 +2025-12-26 14:47:00,776 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204240174930 派发给客服: 1824534815658365 +2025-12-26 14:47:00,777 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202005050075976 派发给客服: 224616673723465569 +2025-12-26 14:47:00,777 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202006050087128 派发给客服: 084119070623372941 +2025-12-26 14:47:00,778 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202006170090583 派发给客服: 1824534815658365 +2025-12-26 14:47:00,779 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202007060095354 派发给客服: 064100296032290698 +2025-12-26 14:47:00,779 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202007140097379 派发给客服: 064100296032290698 +2025-12-26 14:47:00,779 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202104230122131 派发给客服: 171201105229666119 +2025-12-26 14:47:00,780 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202103160117020 派发给客服: 171201105229666119 +2025-12-26 14:47:00,780 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202103260118027 派发给客服: 064100296032290698 +2025-12-26 14:47:00,781 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202104230122201 派发给客服: 1824534815658365 +2025-12-26 14:47:00,782 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202108050134855 派发给客服: 064100296032290698 +2025-12-26 14:47:00,782 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202108190138351 派发给客服: 224616673723465569 +2025-12-26 14:47:00,783 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202111020144809 派发给客服: 224616673723465569 +2025-12-26 14:47:00,783 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202203310173614 派发给客服: 064100296032290698 +2025-12-26 14:47:00,784 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202203310173579 派发给客服: 224616673723465569 +2025-12-26 14:47:00,784 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204150174381 派发给客服: 171201105229666119 +2025-12-26 14:47:00,785 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204180174567 派发给客服: 245308451136546029 +2025-12-26 14:47:00,786 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204190174625 派发给客服: 064100296032290698 +2025-12-26 14:47:00,786 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204220174838 派发给客服: 224616673723465569 +2025-12-26 14:47:00,788 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297331 派发给客服: 245308451136546029 +2025-12-26 14:47:00,788 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202404240266305 派发给客服: 171201105229666119 +2025-12-26 14:47:00,788 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297315 派发给客服: 171201105229666119 +2025-12-26 14:47:00,790 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304110224131 派发给客服: 245308451136546029 +2025-12-26 14:47:00,791 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304180225440 派发给客服: 064100296032290698 +2025-12-26 14:47:00,792 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304250226989 派发给客服: 245308451136546029 +2025-12-26 14:47:00,792 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304230226382 派发给客服: 224616673723465569 +2025-12-26 14:47:00,793 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202403030259960 派发给客服: 224616673723465569 +2025-12-26 14:47:00,793 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202404090264473 派发给客服: 064100296032290698 +2025-12-26 14:47:00,795 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202404250266404 派发给客服: 245308451136546029 +2025-12-26 14:47:00,796 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504070295320 派发给客服: 064100296032290698 +2025-12-26 14:47:00,796 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504140295952 派发给客服: 224616673723465569 +2025-12-26 14:47:00,797 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297345 派发给客服: 245308451136546029 +2025-12-26 14:47:00,798 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297365 派发给客服: 084119070623372941 +2025-12-26 14:47:00,799 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297326 派发给客服: 064100296032290698 +2025-12-26 14:47:00,801 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297356 派发给客服: 171201105229666119 +2025-12-26 14:47:00,819 - api.py - task_logger - INFO - 多数据写入行数: 44 +2025-12-26 14:47:05,054 - 续约待办派发.py - task_logger - INFO - 已提交 44 条数据进行派发 +2025-12-26 14:47:05,173 - common_module.py - task_logger - INFO - 任务状态发送成功: {'data': {'_id': '694e2f68e097a8a9f876b449', 'creator': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'updater': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'deleter': None, 'createTime': '2025-12-26T06:47:04.193Z', 'updateTime': '2025-12-26T06:47:04.193Z', 'deleteTime': None, '_widget_1744873387500': '2025-12-26T00:00:00.000Z', '_widget_1743644977694': '续约回访待办', '_widget_1744873387501': '2025-12-26T06:43:50.000Z', '_widget_1744873387502': '2025-12-26T06:47:05.000Z', '_widget_1744873387504': '195', 'appId': '6694d3c4fcb69ca9a111a6c4', 'entryId': '67ede908eb9c22261016466e'}} +2025-12-26 15:15:01,125 - 续约待办派发.py - task_logger - INFO - 任务开始 +2025-12-26 15:15:22,645 - 续约待办派发.py - task_logger - INFO - 任务开始 +2025-12-26 15:18:44,685 - api.py - task_logger - INFO - 获取了44415条数据 +2025-12-26 15:18:45,067 - api.py - task_logger - INFO - 获取了150条数据 +2025-12-26 15:18:54,374 - api.py - task_logger - INFO - 获取了3670条数据 +2025-12-26 15:18:57,864 - api.py - task_logger - INFO - 获取了276条数据 +2025-12-26 15:18:57,865 - 续约待办派发.py - task_logger - INFO - 加载数据完成 +2025-12-26 15:18:59,073 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201903220023020 派发给客服: 1824534815658365 +2025-12-26 15:18:59,073 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201904020026822 派发给客服: 224616673723465569 +2025-12-26 15:18:59,074 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201907150033130 派发给客服: 1824534815658365 +2025-12-26 15:18:59,074 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201907160033336 派发给客服: 1824534815658365 +2025-12-26 15:18:59,075 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201911250043442 派发给客服: 224616673723465569 +2025-12-26 15:18:59,076 - 续约待办派发.py - task_logger - WARNING - 未找到区域客服,请检查门店编码: CHS201911290043838 +2025-12-26 15:18:59,077 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201912090044764 派发给客服: 064100296032290698 +2025-12-26 15:18:59,078 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201912110045264 派发给客服: 064100296032290698 +2025-12-26 15:18:59,078 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201912170046820 派发给客服: 064100296032290698 +2025-12-26 15:18:59,079 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204240174930 派发给客服: 1824534815658365 +2025-12-26 15:18:59,079 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202005050075976 派发给客服: 224616673723465569 +2025-12-26 15:18:59,080 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202006050087128 派发给客服: 084119070623372941 +2025-12-26 15:18:59,081 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202006170090583 派发给客服: 1824534815658365 +2025-12-26 15:18:59,081 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202007060095354 派发给客服: 064100296032290698 +2025-12-26 15:18:59,082 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202007140097379 派发给客服: 064100296032290698 +2025-12-26 15:18:59,082 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202104230122131 派发给客服: 171201105229666119 +2025-12-26 15:18:59,082 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202103160117020 派发给客服: 171201105229666119 +2025-12-26 15:18:59,083 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202103260118027 派发给客服: 064100296032290698 +2025-12-26 15:18:59,084 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202104230122201 派发给客服: 1824534815658365 +2025-12-26 15:18:59,084 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202108050134855 派发给客服: 064100296032290698 +2025-12-26 15:18:59,085 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202108190138351 派发给客服: 224616673723465569 +2025-12-26 15:18:59,085 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202111020144809 派发给客服: 224616673723465569 +2025-12-26 15:18:59,085 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202203310173614 派发给客服: 064100296032290698 +2025-12-26 15:18:59,086 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202203310173579 派发给客服: 224616673723465569 +2025-12-26 15:18:59,086 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204150174381 派发给客服: 171201105229666119 +2025-12-26 15:18:59,087 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204180174567 派发给客服: 245308451136546029 +2025-12-26 15:18:59,088 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204190174625 派发给客服: 064100296032290698 +2025-12-26 15:18:59,088 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204220174838 派发给客服: 224616673723465569 +2025-12-26 15:18:59,089 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297331 派发给客服: 245308451136546029 +2025-12-26 15:18:59,089 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202404240266305 派发给客服: 171201105229666119 +2025-12-26 15:18:59,090 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297315 派发给客服: 171201105229666119 +2025-12-26 15:18:59,091 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304110224131 派发给客服: 245308451136546029 +2025-12-26 15:18:59,091 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304180225440 派发给客服: 064100296032290698 +2025-12-26 15:18:59,092 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304250226989 派发给客服: 245308451136546029 +2025-12-26 15:18:59,093 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304230226382 派发给客服: 224616673723465569 +2025-12-26 15:18:59,093 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202403030259960 派发给客服: 224616673723465569 +2025-12-26 15:18:59,094 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202404090264473 派发给客服: 064100296032290698 +2025-12-26 15:18:59,095 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202404250266404 派发给客服: 245308451136546029 +2025-12-26 15:18:59,095 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504070295320 派发给客服: 064100296032290698 +2025-12-26 15:18:59,096 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504140295952 派发给客服: 224616673723465569 +2025-12-26 15:18:59,097 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297345 派发给客服: 245308451136546029 +2025-12-26 15:18:59,097 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297365 派发给客服: 084119070623372941 +2025-12-26 15:18:59,098 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297326 派发给客服: 064100296032290698 +2025-12-26 15:18:59,099 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297356 派发给客服: 171201105229666119 +2025-12-26 15:18:59,103 - api.py - task_logger - INFO - 多数据写入行数: 44 +2025-12-26 15:19:03,679 - 续约待办派发.py - task_logger - INFO - 已提交 44 条数据进行派发 +2025-12-26 15:19:03,834 - common_module.py - task_logger - INFO - 任务状态发送成功: {'data': {'_id': '694e36eaf3338b9660f84b32', 'creator': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'updater': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'deleter': None, 'createTime': '2025-12-26T07:19:06.111Z', 'updateTime': '2025-12-26T07:19:06.111Z', 'deleteTime': None, '_widget_1744873387500': '2025-12-26T00:00:00.000Z', '_widget_1743644977694': '续约回访待办', '_widget_1744873387501': '2025-12-26T07:15:22.000Z', '_widget_1744873387502': '2025-12-26T07:19:03.000Z', '_widget_1744873387504': '221', 'appId': '6694d3c4fcb69ca9a111a6c4', 'entryId': '67ede908eb9c22261016466e'}} +2025-12-26 16:02:43,199 - 续约待办派发.py - task_logger - INFO - 任务开始 +2025-12-26 16:02:57,816 - 续约待办派发.py - task_logger - INFO - 任务开始 +2025-12-26 16:06:21,017 - 续约待办派发.py - task_logger - INFO - 任务开始 +2025-12-26 16:09:14,893 - 续约待办派发.py - task_logger - INFO - 任务开始 +2025-12-26 16:12:00,558 - api.py - task_logger - INFO - 获取了44415条数据 +2025-12-26 16:12:00,957 - api.py - task_logger - INFO - 获取了150条数据 +2025-12-26 16:12:07,639 - api.py - task_logger - INFO - 获取了3670条数据 +2025-12-26 16:12:08,549 - api.py - task_logger - INFO - 获取了320条数据 +2025-12-26 16:12:08,549 - 续约待办派发.py - task_logger - INFO - 加载数据完成 +2025-12-26 16:12:10,095 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201903220023020 派发给客服: 1824534815658365 +2025-12-26 16:12:10,095 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201904020026822 派发给客服: 224616673723465569 +2025-12-26 16:12:10,096 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201907150033130 派发给客服: 1824534815658365 +2025-12-26 16:12:10,097 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201907160033336 派发给客服: 1824534815658365 +2025-12-26 16:12:10,098 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201911250043442 派发给客服: 224616673723465569 +2025-12-26 16:12:10,102 - 续约待办派发.py - task_logger - WARNING - 未找到区域客服,请检查门店编码: CHS201911290043838 +2025-12-26 16:12:10,103 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201912090044764 派发给客服: 064100296032290698 +2025-12-26 16:12:10,105 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201912110045264 派发给客服: 064100296032290698 +2025-12-26 16:12:10,107 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201912170046820 派发给客服: 064100296032290698 +2025-12-26 16:12:10,109 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204240174930 派发给客服: 1824534815658365 +2025-12-26 16:12:10,110 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202005050075976 派发给客服: 224616673723465569 +2025-12-26 16:12:10,111 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202006050087128 派发给客服: 084119070623372941 +2025-12-26 16:12:10,114 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202006170090583 派发给客服: 1824534815658365 +2025-12-26 16:12:10,115 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202007060095354 派发给客服: 064100296032290698 +2025-12-26 16:12:10,117 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202007140097379 派发给客服: 064100296032290698 +2025-12-26 16:12:10,118 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202104230122131 派发给客服: 171201105229666119 +2025-12-26 16:12:10,119 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202103160117020 派发给客服: 171201105229666119 +2025-12-26 16:12:10,120 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202103260118027 派发给客服: 064100296032290698 +2025-12-26 16:12:10,123 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202104230122201 派发给客服: 1824534815658365 +2025-12-26 16:12:10,124 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202108050134855 派发给客服: 064100296032290698 +2025-12-26 16:12:10,126 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202108190138351 派发给客服: 224616673723465569 +2025-12-26 16:12:10,127 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202111020144809 派发给客服: 224616673723465569 +2025-12-26 16:12:10,129 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202203310173614 派发给客服: 064100296032290698 +2025-12-26 16:12:10,130 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202203310173579 派发给客服: 224616673723465569 +2025-12-26 16:12:10,131 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204150174381 派发给客服: 171201105229666119 +2025-12-26 16:12:10,133 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204180174567 派发给客服: 245308451136546029 +2025-12-26 16:12:10,135 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204190174625 派发给客服: 064100296032290698 +2025-12-26 16:12:10,135 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204220174838 派发给客服: 224616673723465569 +2025-12-26 16:12:10,137 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297331 派发给客服: 245308451136546029 +2025-12-26 16:12:10,137 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202404240266305 派发给客服: 171201105229666119 +2025-12-26 16:12:10,137 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297315 派发给客服: 171201105229666119 +2025-12-26 16:12:10,140 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304110224131 派发给客服: 245308451136546029 +2025-12-26 16:12:10,141 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304180225440 派发给客服: 064100296032290698 +2025-12-26 16:12:10,143 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304250226989 派发给客服: 245308451136546029 +2025-12-26 16:12:10,145 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304230226382 派发给客服: 224616673723465569 +2025-12-26 16:12:10,146 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202403030259960 派发给客服: 224616673723465569 +2025-12-26 16:12:10,147 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202404090264473 派发给客服: 064100296032290698 +2025-12-26 16:12:10,149 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202404250266404 派发给客服: 245308451136546029 +2025-12-26 16:12:10,150 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504070295320 派发给客服: 064100296032290698 +2025-12-26 16:12:10,151 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504140295952 派发给客服: 224616673723465569 +2025-12-26 16:12:10,152 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297345 派发给客服: 245308451136546029 +2025-12-26 16:12:10,154 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297365 派发给客服: 084119070623372941 +2025-12-26 16:12:10,155 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297326 派发给客服: 064100296032290698 +2025-12-26 16:12:10,157 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297356 派发给客服: 171201105229666119 +2025-12-26 16:12:10,162 - api.py - task_logger - INFO - 多数据写入行数: 44 +2025-12-26 16:12:15,921 - 续约待办派发.py - task_logger - INFO - 已提交 44 条数据进行派发 +2025-12-26 16:12:16,053 - common_module.py - task_logger - INFO - 任务状态发送成功: {'data': {'_id': '694e43626eb4f19440fbb010', 'creator': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'updater': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'deleter': None, 'createTime': '2025-12-26T08:12:18.524Z', 'updateTime': '2025-12-26T08:12:18.524Z', 'deleteTime': None, '_widget_1744873387500': '2025-12-26T00:00:00.000Z', '_widget_1743644977694': '续约回访待办', '_widget_1744873387501': '2025-12-26T08:09:14.000Z', '_widget_1744873387502': '2025-12-26T08:12:15.000Z', '_widget_1744873387504': '181', 'appId': '6694d3c4fcb69ca9a111a6c4', 'entryId': '67ede908eb9c22261016466e'}} +2025-12-26 16:15:55,767 - 续约待办派发.py - task_logger - INFO - 任务开始 +2025-12-26 16:18:59,608 - api.py - task_logger - INFO - 获取了44415条数据 +2025-12-26 16:19:00,251 - api.py - task_logger - INFO - 获取了150条数据 +2025-12-26 16:19:08,122 - api.py - task_logger - INFO - 获取了3670条数据 +2025-12-26 16:19:09,818 - api.py - task_logger - INFO - 获取了364条数据 +2025-12-26 16:19:09,819 - 续约待办派发.py - task_logger - INFO - 加载数据完成 +2025-12-26 16:19:11,154 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201903220023020 派发给客服: 1824534815658365 +2025-12-26 16:19:11,154 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201904020026822 派发给客服: 224616673723465569 +2025-12-26 16:19:11,155 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201907150033130 派发给客服: 1824534815658365 +2025-12-26 16:19:11,156 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201907160033336 派发给客服: 1824534815658365 +2025-12-26 16:19:11,156 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201911250043442 派发给客服: 224616673723465569 +2025-12-26 16:19:11,158 - 续约待办派发.py - task_logger - WARNING - 未找到区域客服,请检查门店编码: CHS201911290043838 +2025-12-26 16:19:11,159 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201912090044764 派发给客服: 064100296032290698 +2025-12-26 16:19:11,159 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201912110045264 派发给客服: 064100296032290698 +2025-12-26 16:19:11,160 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201912170046820 派发给客服: 064100296032290698 +2025-12-26 16:19:11,161 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204240174930 派发给客服: 1824534815658365 +2025-12-26 16:19:11,162 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202005050075976 派发给客服: 224616673723465569 +2025-12-26 16:19:11,162 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202006050087128 派发给客服: 084119070623372941 +2025-12-26 16:19:11,163 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202006170090583 派发给客服: 1824534815658365 +2025-12-26 16:19:11,164 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202007060095354 派发给客服: 064100296032290698 +2025-12-26 16:19:11,164 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202007140097379 派发给客服: 064100296032290698 +2025-12-26 16:19:11,164 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202104230122131 派发给客服: 171201105229666119 +2025-12-26 16:19:11,165 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202103160117020 派发给客服: 171201105229666119 +2025-12-26 16:19:11,165 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202103260118027 派发给客服: 064100296032290698 +2025-12-26 16:19:11,166 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202104230122201 派发给客服: 1824534815658365 +2025-12-26 16:19:11,167 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202108050134855 派发给客服: 064100296032290698 +2025-12-26 16:19:11,167 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202108190138351 派发给客服: 224616673723465569 +2025-12-26 16:19:11,167 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202111020144809 派发给客服: 224616673723465569 +2025-12-26 16:19:11,168 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202203310173614 派发给客服: 064100296032290698 +2025-12-26 16:19:11,169 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202203310173579 派发给客服: 224616673723465569 +2025-12-26 16:19:11,169 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204150174381 派发给客服: 171201105229666119 +2025-12-26 16:19:11,170 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204180174567 派发给客服: 245308451136546029 +2025-12-26 16:19:11,170 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204190174625 派发给客服: 064100296032290698 +2025-12-26 16:19:11,171 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204220174838 派发给客服: 224616673723465569 +2025-12-26 16:19:11,172 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297331 派发给客服: 245308451136546029 +2025-12-26 16:19:11,172 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202404240266305 派发给客服: 171201105229666119 +2025-12-26 16:19:11,172 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297315 派发给客服: 171201105229666119 +2025-12-26 16:19:11,173 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304110224131 派发给客服: 245308451136546029 +2025-12-26 16:19:11,174 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304180225440 派发给客服: 064100296032290698 +2025-12-26 16:19:11,175 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304250226989 派发给客服: 245308451136546029 +2025-12-26 16:19:11,175 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304230226382 派发给客服: 224616673723465569 +2025-12-26 16:19:11,176 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202403030259960 派发给客服: 224616673723465569 +2025-12-26 16:19:11,176 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202404090264473 派发给客服: 064100296032290698 +2025-12-26 16:19:11,177 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202404250266404 派发给客服: 245308451136546029 +2025-12-26 16:19:11,178 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504070295320 派发给客服: 064100296032290698 +2025-12-26 16:19:11,178 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504140295952 派发给客服: 224616673723465569 +2025-12-26 16:19:11,179 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297345 派发给客服: 245308451136546029 +2025-12-26 16:19:11,180 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297365 派发给客服: 084119070623372941 +2025-12-26 16:19:11,180 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297326 派发给客服: 064100296032290698 +2025-12-26 16:19:11,182 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297356 派发给客服: 171201105229666119 +2025-12-26 16:19:11,185 - api.py - task_logger - INFO - 多数据写入行数: 44 +2025-12-26 16:19:15,292 - 续约待办派发.py - task_logger - INFO - 已提交 44 条数据进行派发 +2025-12-26 16:19:15,435 - common_module.py - task_logger - INFO - 任务状态发送成功: {'data': {'_id': '694e4505fe71fb94ae018c9a', 'creator': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'updater': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'deleter': None, 'createTime': '2025-12-26T08:19:17.892Z', 'updateTime': '2025-12-26T08:19:17.892Z', 'deleteTime': None, '_widget_1744873387500': '2025-12-26T00:00:00.000Z', '_widget_1743644977694': '续约回访待办', '_widget_1744873387501': '2025-12-26T08:15:55.000Z', '_widget_1744873387502': '2025-12-26T08:19:15.000Z', '_widget_1744873387504': '200', 'appId': '6694d3c4fcb69ca9a111a6c4', 'entryId': '67ede908eb9c22261016466e'}} +2025-12-26 16:21:08,470 - 续约待办派发.py - task_logger - INFO - 任务开始 +2025-12-26 16:23:59,640 - api.py - task_logger - INFO - 获取了44415条数据 +2025-12-26 16:23:59,972 - api.py - task_logger - INFO - 获取了150条数据 +2025-12-26 16:24:10,402 - api.py - task_logger - INFO - 获取了3670条数据 +2025-12-26 16:24:11,511 - api.py - task_logger - INFO - 获取了408条数据 +2025-12-26 16:24:11,512 - 续约待办派发.py - task_logger - INFO - 加载数据完成 +2025-12-26 16:24:35,606 - 续约待办派发.py - task_logger - INFO - 任务开始 +2025-12-26 16:27:33,250 - api.py - task_logger - INFO - 获取了44415条数据 +2025-12-26 16:27:33,618 - api.py - task_logger - INFO - 获取了150条数据 +2025-12-26 16:27:44,617 - api.py - task_logger - INFO - 获取了3670条数据 +2025-12-26 16:27:45,639 - api.py - task_logger - INFO - 获取了408条数据 +2025-12-26 16:27:45,639 - 续约待办派发.py - task_logger - INFO - 加载数据完成 +2025-12-26 16:27:46,986 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201903220023020 派发给客服: 1824534815658365 +2025-12-26 16:27:46,986 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201904020026822 派发给客服: 224616673723465569 +2025-12-26 16:27:46,987 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201907150033130 派发给客服: 1824534815658365 +2025-12-26 16:27:46,988 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201907160033336 派发给客服: 1824534815658365 +2025-12-26 16:27:46,989 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201911250043442 派发给客服: 224616673723465569 +2025-12-26 16:27:46,991 - 续约待办派发.py - task_logger - WARNING - 未找到区域客服,请检查门店编码: CHS201911290043838 +2025-12-26 16:27:46,991 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201912090044764 派发给客服: 064100296032290698 +2025-12-26 16:27:46,992 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201912110045264 派发给客服: 064100296032290698 +2025-12-26 16:27:46,993 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS201912170046820 派发给客服: 064100296032290698 +2025-12-26 16:27:46,994 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204240174930 派发给客服: 1824534815658365 +2025-12-26 16:27:46,994 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202005050075976 派发给客服: 224616673723465569 +2025-12-26 16:27:46,995 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202006050087128 派发给客服: 084119070623372941 +2025-12-26 16:27:46,996 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202006170090583 派发给客服: 1824534815658365 +2025-12-26 16:27:46,996 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202007060095354 派发给客服: 064100296032290698 +2025-12-26 16:27:46,997 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202007140097379 派发给客服: 064100296032290698 +2025-12-26 16:27:46,997 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202104230122131 派发给客服: 171201105229666119 +2025-12-26 16:27:46,997 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202103160117020 派发给客服: 171201105229666119 +2025-12-26 16:27:46,998 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202103260118027 派发给客服: 064100296032290698 +2025-12-26 16:27:46,999 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202104230122201 派发给客服: 1824534815658365 +2025-12-26 16:27:46,999 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202108050134855 派发给客服: 064100296032290698 +2025-12-26 16:27:47,000 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202108190138351 派发给客服: 224616673723465569 +2025-12-26 16:27:47,000 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202111020144809 派发给客服: 224616673723465569 +2025-12-26 16:27:47,001 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202203310173614 派发给客服: 064100296032290698 +2025-12-26 16:27:47,001 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202203310173579 派发给客服: 224616673723465569 +2025-12-26 16:27:47,001 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204150174381 派发给客服: 171201105229666119 +2025-12-26 16:27:47,002 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204180174567 派发给客服: 245308451136546029 +2025-12-26 16:27:47,003 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204190174625 派发给客服: 064100296032290698 +2025-12-26 16:27:47,003 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202204220174838 派发给客服: 224616673723465569 +2025-12-26 16:27:47,004 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297331 派发给客服: 245308451136546029 +2025-12-26 16:27:47,004 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202404240266305 派发给客服: 171201105229666119 +2025-12-26 16:27:47,005 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297315 派发给客服: 171201105229666119 +2025-12-26 16:27:47,006 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304110224131 派发给客服: 245308451136546029 +2025-12-26 16:27:47,006 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304180225440 派发给客服: 064100296032290698 +2025-12-26 16:27:47,007 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304250226989 派发给客服: 245308451136546029 +2025-12-26 16:27:47,008 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202304230226382 派发给客服: 224616673723465569 +2025-12-26 16:27:47,008 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202403030259960 派发给客服: 224616673723465569 +2025-12-26 16:27:47,009 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202404090264473 派发给客服: 064100296032290698 +2025-12-26 16:27:47,010 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202404250266404 派发给客服: 245308451136546029 +2025-12-26 16:27:47,010 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504070295320 派发给客服: 064100296032290698 +2025-12-26 16:27:47,011 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504140295952 派发给客服: 224616673723465569 +2025-12-26 16:27:47,012 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297345 派发给客服: 245308451136546029 +2025-12-26 16:27:47,012 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297365 派发给客服: 084119070623372941 +2025-12-26 16:27:47,013 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297326 派发给客服: 064100296032290698 +2025-12-26 16:27:47,014 - 续约待办派发.py - task_logger - INFO - 【派发客服】门店 CHS202504250297356 派发给客服: 171201105229666119 +2025-12-26 16:27:47,019 - api.py - task_logger - INFO - 多数据写入行数: 44 +2025-12-26 16:27:51,592 - 续约待办派发.py - task_logger - INFO - 已提交 44 条数据进行派发 +2025-12-26 16:27:51,736 - common_module.py - task_logger - INFO - 任务状态发送成功: {'data': {'_id': '694e470ae87e97e197c6717f', 'creator': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'updater': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'deleter': None, 'createTime': '2025-12-26T08:27:54.185Z', 'updateTime': '2025-12-26T08:27:54.185Z', 'deleteTime': None, '_widget_1744873387500': '2025-12-26T00:00:00.000Z', '_widget_1743644977694': '续约回访待办', '_widget_1744873387501': '2025-12-26T08:24:35.000Z', '_widget_1744873387502': '2025-12-26T08:27:51.000Z', '_widget_1744873387504': '196', 'appId': '6694d3c4fcb69ca9a111a6c4', 'entryId': '67ede908eb9c22261016466e'}} +2025-12-29 15:40:39,995 - 借车宝异常待办(已改完待上线).py - task_logger - INFO - 接车宝日常回访开始执行 +2025-12-29 15:40:48,332 - api.py - task_logger - INFO - 获取了2978条数据 +2025-12-29 15:40:48,332 - 借车宝异常待办(已改完待上线).py - task_logger - INFO - 数据加载完成 +2025-12-29 15:40:49,745 - api.py - task_logger - INFO - 获取了14条数据 +2025-12-29 15:40:49,747 - api.py - task_logger - INFO - 多数据写入行数: 1 +2025-12-29 15:40:50,162 - 借车宝异常待办(已改完待上线).py - task_logger - INFO - 数据发送成功:[{'status': 'success', 'success_count': 1, 'success_ids': ['69523082d76789ee594767ce']}] +2025-12-29 15:40:50,162 - 借车宝异常待办(已改完待上线).py - task_logger - INFO - 新签异常待办回访完成 +2025-12-29 15:40:51,443 - api.py - task_logger - INFO - 获取了14条数据 +2025-12-29 15:40:51,448 - api.py - task_logger - INFO - 多数据写入行数: 40 +2025-12-29 15:40:55,629 - 借车宝异常待办(已改完待上线).py - task_logger - INFO - 数据发送成功:[{'status': 'success', 'success_count': 40, 'success_ids': ['695230842e2fc4ad21a24f74', '695230842e2fc4ad21a24f75', '695230842e2fc4ad21a24f76', '695230842e2fc4ad21a24f77', '695230842e2fc4ad21a24f78', '695230842e2fc4ad21a24f79', '695230842e2fc4ad21a24f7a', '695230842e2fc4ad21a24f7b', '695230842e2fc4ad21a24f7c', '695230842e2fc4ad21a24f7d', '695230842e2fc4ad21a24f7e', '695230842e2fc4ad21a24f7f', '695230842e2fc4ad21a24f80', '695230842e2fc4ad21a24f81', '695230842e2fc4ad21a24f82', '695230842e2fc4ad21a24f83', '695230842e2fc4ad21a24f84', '695230842e2fc4ad21a24f85', '695230842e2fc4ad21a24f86', '695230842e2fc4ad21a24f87', '695230842e2fc4ad21a24f88', '695230842e2fc4ad21a24f89', '695230842e2fc4ad21a24f8a', '695230842e2fc4ad21a24f8b', '695230842e2fc4ad21a24f8c', '695230842e2fc4ad21a24f8d', '695230842e2fc4ad21a24f8e', '695230842e2fc4ad21a24f8f', '695230842e2fc4ad21a24f90', '695230842e2fc4ad21a24f91', '695230842e2fc4ad21a24f92', '695230842e2fc4ad21a24f93', '695230842e2fc4ad21a24f94', '695230842e2fc4ad21a24f95', '695230842e2fc4ad21a24f96', '695230842e2fc4ad21a24f97', '695230842e2fc4ad21a24f98', '695230842e2fc4ad21a24f99', '695230842e2fc4ad21a24f9a', '695230842e2fc4ad21a24f9b']}] +2025-12-29 15:40:55,629 - 借车宝异常待办(已改完待上线).py - task_logger - INFO - 异常待办完成,共 40 条 +2025-12-29 15:40:56,890 - 借车宝异常待办(已改完待上线).py - task_logger - INFO - 优质客户转商机无数据,跳过 +2025-12-29 15:40:58,536 - api.py - task_logger - INFO - 获取了14条数据 +2025-12-29 15:40:58,538 - api.py - task_logger - INFO - 多数据写入行数: 6 +2025-12-29 15:41:00,091 - 借车宝异常待办(已改完待上线).py - task_logger - INFO - 数据发送成功:[{'status': 'success', 'success_count': 6, 'success_ids': ['6952308babcc8e476545a1e9', '6952308babcc8e476545a1ea', '6952308babcc8e476545a1eb', '6952308babcc8e476545a1ec', '6952308babcc8e476545a1ed', '6952308babcc8e476545a1ee']}] +2025-12-29 15:41:00,091 - 借车宝异常待办(已改完待上线).py - task_logger - INFO - 过期7天客服回访完成 +2025-12-29 15:41:00,222 - common_module.py - task_logger - INFO - 任务状态发送成功: {'data': {'_id': '6952308cdd1c15a5ad21ce07', 'creator': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'updater': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0}, 'deleter': None, 'createTime': '2025-12-29T07:41:00.761Z', 'updateTime': '2025-12-29T07:41:00.761Z', 'deleteTime': None, '_widget_1744873387500': '2025-12-29T00:00:00.000Z', '_widget_1743644977694': '接车宝日常派发', '_widget_1744873387501': '2025-12-29T07:40:39.000Z', '_widget_1744873387502': '2025-12-29T07:41:00.000Z', '_widget_1744873387504': '21', 'appId': '6694d3c4fcb69ca9a111a6c4', 'entryId': '67ede908eb9c22261016466e'}} +2025-12-29 15:41:00,222 - 借车宝异常待办(已改完待上线).py - task_logger - INFO - 接车宝日常派发执行完成 diff --git a/test/借车宝异常待办(已改完待上线).py b/test/借车宝异常待办(已改完待上线).py index 8b3f23b..70f57c0 100644 --- a/test/借车宝异常待办(已改完待上线).py +++ b/test/借车宝异常待办(已改完待上线).py @@ -112,7 +112,9 @@ class JCBEfficientCarPickup: new_sign_abnormal_data = [self.row_to_dict(row, self.field_mapping) for index, row in df.iterrows()] - data = {'api_key': Config.EFFICIENT_CAR_PICKUP_APP_ID, 'entry_id': Config.EFFICIENT_CAR_PICKUP_ENTRY_ID, + data = {'api_key': Config.EFFICIENT_CAR_PICKUP_APP_ID, + # 'entry_id': "69522f61d0195d3bf42ed251", + 'entry_id': Config.EFFICIENT_CAR_PICKUP_ENTRY_ID, "data_list": new_sign_abnormal_data} result = api_instance.entry_data_batch_create(data) @@ -189,7 +191,7 @@ class JCBEfficientCarPickup: if new_sign_abnormal is not None and not new_sign_abnormal.empty: new_sign_abnormal["表单类型"] = "新签异常待办" new_sign_abnormal["派发日期"] = current_date_str - # self.send_request(new_sign_abnormal) # 发送请求 + self.send_request(new_sign_abnormal) # 发送请求 logger.info(f"新签异常待办回访完成") else: logger.info(f"新签异常待办回访无数据,跳过") @@ -279,8 +281,8 @@ class JCBEfficientCarPickup: # 发送或跳过 if not abnormal_data.empty: - abnormal_data = abnormal_data[:40] - # self.send_request(abnormal_data) + abnormal_data = abnormal_data[:20] + self.send_request(abnormal_data) logger.info(f"异常待办完成,共 {len(abnormal_data)} 条") else: logger.info("异常待办无数据,跳过") @@ -317,7 +319,7 @@ class JCBEfficientCarPickup: if customer_to_opportunity is not None and not customer_to_opportunity.empty: customer_to_opportunity["表单类型"] = "续约优质客户转商机" customer_to_opportunity["派发日期"] = current_date_str - # self.send_request(customer_to_opportunity) + self.send_request(customer_to_opportunity) logger.info(f"优质客户转商机完成") else: logger.info(f"优质客户转商机无数据,跳过") @@ -344,7 +346,7 @@ class JCBEfficientCarPickup: if outdated_30 is not None and not outdated_30.empty: outdated_30["表单类型"] = "过期7天回访" outdated_30["派发日期"] = current_date_str - # self.send_request(outdated_30) + self.send_request(outdated_30) logger.info(f"过期7天客服回访完成") else: logger.info(f"过期7天客服回访无数据,跳过") diff --git a/test/周期性增购插入数据.ipynb b/test/周期性增购插入数据.ipynb new file mode 100644 index 0000000..d4758e7 --- /dev/null +++ b/test/周期性增购插入数据.ipynb @@ -0,0 +1,105 @@ +{ + "cells": [ + { + "cell_type": "code", + "id": "initial_id", + "metadata": { + "collapsed": true, + "ExecuteTime": { + "end_time": "2025-12-17T08:57:05.953495Z", + "start_time": "2025-12-17T08:57:05.580269Z" + } + }, + "source": [ + "import pandas as pd\n", + "import mysql.connector\n", + "from mysql.connector import Error\n", + "\n", + "# 连接信息\n", + "HS_DB_Config = {\n", + " 'host': \"f6-public.rwlb.rds.aliyuncs.com\",\n", + " 'user': \"rw_operation_data_relay\",\n", + " 'password': \"m+q5Z4%IVuF9bf\",\n", + " 'database': \"f6operation_data_relay\"\n", + " } # 衡时数据库链接配置-mysql\n", + "table_name = \"saas_period_product_fenmu\" # 请替换为实际的表名\n", + "# table_name = \"yida_process_time_statistics\"\n", + "\n", + "# 连接\n", + "connection = mysql.connector.connect(\n", + " host=HS_DB_Config[\"host\"],\n", + " user=HS_DB_Config[\"user\"],\n", + " password=HS_DB_Config[\"password\"],\n", + " database=HS_DB_Config[\"database\"]\n", + ")\n", + "\n", + "print(f\"成功连接 {HS_DB_Config['database']}\")\n", + "cursor = connection.cursor()\n", + "\n", + "# 读取Excel文件\n", + "df = pd.read_excel(\n", + " r\"C:\\Users\\zy187\\Desktop\\应续约信息-商户与商品-数据表格.xlsx\",\n", + " sheet_name=\"Sheet1\")\n", + "\n", + "# 处理空值 - 将NaN/NaT/空字符串统一转为None\n", + "df = df.map(lambda x: None if pd.isna(x) or str(x).strip() == '' else x)\n", + "\n", + "# 生成插入语句\n", + "columns = ', '.join(df.columns)\n", + "placeholders = ', '.join(['%s'] * len(df.columns))\n", + "insert_query = f\"INSERT INTO {table_name} ({columns}) VALUES ({placeholders})\"\n", + "\n", + "# 批量插入数据,每次1000条\n", + "records = [tuple(row) for row in df.values]\n", + "batch_size = 1000\n", + "total_records = len(records)\n", + "inserted_count = 0\n", + "\n", + "for i in range(0, total_records, batch_size):\n", + " batch = records[i:i+batch_size]\n", + " cursor.executemany(insert_query, batch)\n", + " connection.commit()\n", + " inserted_count += len(batch)\n", + " print(f\"已成功导入 {inserted_count}/{total_records} 条记录\")\n", + "\n", + "print(f\"总共成功导入 {inserted_count} 条记录到 {table_name} 表\")\n", + "\n", + "cursor.close()\n", + "connection.close()" + ], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "成功连接 f6operation_data_relay\n", + "已成功导入 6/6 条记录\n", + "总共成功导入 6 条记录到 saas_period_product_fenmu 表\n" + ] + } + ], + "execution_count": 3 + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/test/简道云插件.ipynb b/test/简道云插件.ipynb new file mode 100644 index 0000000..e5cd46f --- /dev/null +++ b/test/简道云插件.ipynb @@ -0,0 +1,391 @@ +{ + "cells": [ + { + "cell_type": "code", + "id": "initial_id", + "metadata": { + "collapsed": true, + "ExecuteTime": { + "end_time": "2025-12-25T06:14:43.010877600Z", + "start_time": "2025-12-25T06:14:42.705835200Z" + } + }, + "source": [ + "import json\n", + "import requests\n", + "\n", + "triggerConf = {\n", + "\"_widget_17666295456371\": \"675b900991ad2491c69389ca\",\n", + "\"_widget_17666295463651\": \"6931063d64187eaf6b927557\",\n", + "\"_widget_17666295471001\": \"694caec6d3f22e2e1723b776\",\n", + "\"_widget_17666325849471\": \"11240984669918342117\",\n", + "\"_widget_17666340965771\": \"新起点养车维修\"\n", + "}\n", + "\n", + "\n", + "# 获取输入参数(带默认空字符串)\n", + "api_key = str(triggerConf.get('_widget_17666295456371', '')).strip()\n", + "entry_id = str(triggerConf.get('_widget_17666295463651', '')).strip()\n", + "data_id = str(triggerConf.get('_widget_17666295471001', '')).strip()\n", + "company_id = str(triggerConf.get('_widget_17666325849471', '')).strip()\n", + "org_str = triggerConf.get('_widget_17666340965771', '')\n", + "\n", + "# 安全校验:必要参数不能为空\n", + "if not all([api_key, entry_id, data_id, company_id]):\n", + " raise ValueError(\"缺少必要参数:应用ID、表单ID、数据ID 或 公司ID 不能为空\")\n", + "\n", + "# 解析连锁店列表\n", + "org_list = []\n", + "if org_str:\n", + " if isinstance(org_str, str):\n", + " org_list = [item.strip() for item in org_str.split(',') if item.strip()]\n", + " elif isinstance(org_str, list):\n", + " org_list = [str(item).strip() for item in org_str if str(item).strip()]\n", + "\n", + "# 请求头\n", + "BEARER_TOKEN = \"qygHulymo1fekJk4CIZyNKjyQAzG8CFN\"\n", + "headers = {\n", + " 'Authorization': f'Bearer {BEARER_TOKEN}',\n", + " 'Content-Type': 'application/json'\n", + "}\n", + "\n", + "# 第一步:获取当前触发数据的内容\n", + "data_payload = {\n", + " \"app_id\": api_key,\n", + " \"entry_id\": entry_id,\n", + " \"data_id\": data_id\n", + "}\n", + "trigger_data_url = \"https://api.jiandaoyun.com/api/v5/app/entry/data/get\"\n", + "try:\n", + " data_response = requests.post(trigger_data_url, headers=headers, data=json.dumps(data_payload), timeout=10)\n", + " data_response.raise_for_status()\n", + " data_resp_json = data_response.json()\n", + " trigger_data = data_resp_json.get(\"data\", {})\n", + " if not trigger_data:\n", + " raise ValueError(\"未能获取到当前数据内容\")\n", + "except Exception as e:\n", + " raise RuntimeError(f\"获取当前数据失败: {str(e)}\")\n", + "\n", + "# 第二步:查询该公司下所有进行中的数据\n", + "url = \"https://api.jiandaoyun.com/api/v5/app/entry/data/list\"\n", + "payload = {\n", + " \"app_id\": api_key,\n", + " \"entry_id\": entry_id,\n", + " \"filter\": {\n", + " \"rel\": \"and\",\n", + " \"cond\": [\n", + " {\"field\": \"_widget_1766631811839\", \"type\": \"text\", \"method\": \"eq\", \"value\": company_id},\n", + " {\"field\": \"flowState\", \"type\": \"flowstate\", \"method\": \"eq\", \"value\": [0]}\n", + " ]\n", + " }\n", + "}\n", + "try:\n", + " response = requests.post(url, headers=headers, json=payload, timeout=10)\n", + " resp_json = response.json()\n", + " data_list = resp_json.get(\"data\", [])\n", + "except Exception as e:\n", + " raise RuntimeError(f\"查询进行中数据失败: {str(e)}\")\n", + "\n", + "# # 要同步的字段映射(目标字段ID -> 触发数据中的源字段ID)\n", + "# field_mapping = {\n", + "# \"_widget_1764820541638\": \"_widget_1764820541638\", # 是否联系上\n", + "# \"_widget_1764820541641\": \"_widget_1764820541641\", # 现阶段问题\n", + "# \"_widget_1765330820509\": \"_widget_1765330820509\", # 未联系原因\n", + "# \"_widget_1764820541653\": \"_widget_1764820541653\", # 联系情况及问题说明\n", + "# \"_widget_1764820541697\": \"_widget_1764820541697\", # 回访方式\n", + "# \"_widget_1764820541657\": \"_widget_1764820541657\", # 潜在商机\n", + "# \"_widget_1764820541659\": \"_widget_1764820541659\", # 商机详情\n", + "# \"_widget_1764820541654\": \"_widget_1764820541654\", # 续约意愿\n", + "# \"_widget_1764820541700\": \"_widget_1764820541700\", # 不续约原因\n", + "# \"_widget_1764820541707\": \"_widget_1764820541707\", # 产品原因\n", + "# \"_widget_1764820541709\": \"_widget_1764820541709\", # 服务问题\n", + "# \"_widget_1764820541711\": \"_widget_1764820541711\", # 门店原因\n", + "# \"_widget_1764820541713\": \"_widget_1764820541713\", # 价格原因\n", + "# \"_widget_1764820541702\": \"_widget_1764820541702\", # 不续约具体情况说明\n", + "# }\n", + "#\n", + "# # 遍历匹配的连锁店数据\n", + "# for data in data_list:\n", + "# store_code = data.get(\"_widget_1764820541617\")\n", + "# if not store_code or store_code not in org_list:\n", + "# continue\n", + "#\n", + "# new_data_id = data.get(\"_id\")\n", + "# if not new_data_id:\n", + "# continue\n", + "#\n", + "# # 构建更新 payload(仅包含非 None 值)\n", + "# update_data = {}\n", + "# for target_field, source_field in field_mapping.items():\n", + "# value = trigger_data.get(source_field)\n", + "# # 如果值为 None 或空字符串(根据业务决定是否跳过)\n", + "# if value is not None:\n", + "# update_data[target_field] = {\"value\": value}\n", + "#\n", + "# if not update_data:\n", + "# continue # 无有效字段可更新\n", + "#\n", + "# modify_payload = {\n", + "# \"app_id\": api_key,\n", + "# \"entry_id\": entry_id,\n", + "# \"data_id\": new_data_id,\n", + "# \"data\": update_data\n", + "# }\n", + "#\n", + "# # 同步字段\n", + "# try:\n", + "# modif_url = \"https://api.jiandaoyun.com/api/v5/app/entry/data/update\"\n", + "# res = requests.post(modif_url, headers=headers, data=json.dumps(modify_payload), timeout=10)\n", + "# res.raise_for_status()\n", + "# except Exception as e:\n", + "# print(f\"更新数据 {new_data_id} 失败: {e}\")\n", + "# continue # 继续处理下一个,不中断\n", + "#\n", + "# # 第三步:尝试自动审批(仅当处于指定节点)\n", + "# try:\n", + "# instance_url = \"https://api.jiandaoyun.com/api/v6/workflow/instance/get\"\n", + "# instance_payload = {\n", + "# \"instance_id\": new_data_id,\n", + "# \"tasks_type\": 1\n", + "# }\n", + "# instance_res = requests.post(instance_url, headers=headers, data=json.dumps(instance_payload), timeout=10)\n", + "# instance_res.raise_for_status()\n", + "# instance_data = instance_res.json()\n", + "# tasks = instance_data.get(\"tasks\", [])\n", + "#\n", + "# if not tasks:\n", + "# continue\n", + "#\n", + "# last_task = tasks[-1]\n", + "# flow_id = last_task.get(\"flow_id\")\n", + "# task_id = last_task.get(\"task_id\")\n", + "# assignee_info = last_task.get(\"assignee\") or {}\n", + "# username = assignee_info.get(\"username\")\n", + "#\n", + "# if flow_id in [1, 2, 3, 9] and task_id and username:\n", + "# allow_url = \"https://api.jiandaoyun.com/api/v1/workflow/task/approve\"\n", + "# allow_payload = {\n", + "# \"username\": username,\n", + "# \"instance_id\": new_data_id,\n", + "# \"task_id\": task_id\n", + "# }\n", + "# allo_result = requests.post(allow_url, headers=headers, data=json.dumps(allow_payload), timeout=10)\n", + "# allo_result.raise_for_status()\n", + "# print(f\"自动审批成功: data_id={new_data_id}, task_id={task_id}\")\n", + "# else:\n", + "# print(f\"跳过自动审批: flow_id={flow_id}, task_id={task_id}, username={username}\")\n", + "#\n", + "# except Exception as e:\n", + "# print(f\"自动审批失败 (data_id={new_data_id}): {e}\")\n" + ], + "outputs": [], + "execution_count": 8 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2025-12-25T06:14:45.807079300Z", + "start_time": "2025-12-25T06:14:45.761404700Z" + } + }, + "cell_type": "code", + "source": "resp_json", + "id": "d4299d8a0596e5f8", + "outputs": [ + { + "data": { + "text/plain": [ + "{'data': [{'_id': '694caec6d3f22e2e1723b775',\n", + " 'creator': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0},\n", + " 'updater': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0},\n", + " 'deleter': None,\n", + " 'createTime': '2025-12-25T03:25:58.151Z',\n", + " 'updateTime': '2025-12-25T05:57:01.097Z',\n", + " 'deleteTime': None,\n", + " 'flowState': 0,\n", + " '_widget_1764820541663': '680f49b134bee97fbb857ef1',\n", + " '_widget_1764820541616': '新起点养车',\n", + " '_widget_1764820541617': '新起点养车维修',\n", + " '_widget_1764820541661': 'CHS202411050285054',\n", + " '_widget_1764820541618': '',\n", + " '_widget_1764820541672': '2026-04-23T16:00:00.000Z',\n", + " '_widget_1764820541623': '基础版',\n", + " '_widget_1764820541624': 'SaaS新签:999',\n", + " '_widget_1764820541621': '王旭',\n", + " '_widget_1764820541622': '19819386119',\n", + " '_widget_1764820541625': {'name': '邵宝振',\n", + " 'username': '032861373036352679',\n", + " 'status': 1,\n", + " 'type': 0,\n", + " 'departments': [122333676],\n", + " 'integrate_id': '032861373036352679'},\n", + " '_widget_1766631811839': '11240984669918342117',\n", + " '_widget_1764820541628': '',\n", + " '_widget_1764820541634': None,\n", + " '_widget_1765352838631': None,\n", + " '_widget_1764820541630': '',\n", + " '_widget_1764820541635': None,\n", + " '_widget_1765352838632': None,\n", + " '_widget_1764820541632': '',\n", + " '_widget_1764820541636': None,\n", + " '_widget_1765352838633': None,\n", + " '_widget_1764820541638': '',\n", + " '_widget_1764820541641': '',\n", + " '_widget_1765330820509': '',\n", + " '_widget_1764820541653': '',\n", + " '_widget_1764820541697': '',\n", + " '_widget_1764820541657': '',\n", + " '_widget_1764820541659': '',\n", + " '_widget_1764820541654': '',\n", + " '_widget_1764820541700': '',\n", + " '_widget_1764820541707': '',\n", + " '_widget_1764820541709': '',\n", + " '_widget_1764820541711': '',\n", + " '_widget_1764820541713': '',\n", + " '_widget_1764820541702': '',\n", + " '_widget_1764820541717': [],\n", + " '_widget_1764820541681': '',\n", + " '_widget_1765330820391': [],\n", + " '_widget_1764820541674': '',\n", + " '_widget_1764820541679': None,\n", + " '_widget_1764820541676': '',\n", + " '_widget_1764820541680': '',\n", + " '_widget_1764820541865': '2026-02-22T16:00:00.000Z',\n", + " '_widget_1765964381895': '2026-03-24T16:00:00.000Z',\n", + " '_widget_1765964381896': '2026-04-23T16:00:00.000Z',\n", + " '_widget_1765964381897': '2026-07-22T16:00:00.000Z',\n", + " '_widget_1765352838609': '',\n", + " '_widget_1765352838610': '',\n", + " '_widget_1765964381952': '单店',\n", + " '_widget_1765866283543': '',\n", + " '_widget_1764820541715': {'name': '申晓勇',\n", + " 'username': '171201105229666119',\n", + " 'status': 1,\n", + " 'type': 0,\n", + " 'departments': [177751223],\n", + " 'integrate_id': '171201105229666119'},\n", + " '_widget_1766130435561': '普通客户(VIP)',\n", + " '_widget_1764820541678': {'name': '王斌',\n", + " 'username': '1253235059942945',\n", + " 'status': 1,\n", + " 'type': 0,\n", + " 'departments': [122333676],\n", + " 'integrate_id': '1253235059942945'},\n", + " '_widget_1766376046563': '00059',\n", + " '_widget_1766469131897': '否',\n", + " '_widget_1766633812134': '',\n", + " 'appId': '675b900991ad2491c69389ca',\n", + " 'entryId': '6931063d64187eaf6b927557'},\n", + " {'_id': '694caec6d3f22e2e1723b776',\n", + " 'creator': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0},\n", + " 'updater': {'name': 'F6汽车科技', 'username': '#admin', 'status': 1, 'type': 0},\n", + " 'deleter': None,\n", + " 'createTime': '2025-12-25T03:25:58.151Z',\n", + " 'updateTime': '2025-12-25T05:58:40.218Z',\n", + " 'deleteTime': None,\n", + " 'flowState': 0,\n", + " '_widget_1764820541663': '680f48b90a8a958979d7a2d3',\n", + " '_widget_1764820541616': '武陵区隆铖改汽车俱乐部',\n", + " '_widget_1764820541617': '武陵区隆铖改汽车俱乐部',\n", + " '_widget_1764820541661': 'CHS202504240297172',\n", + " '_widget_1764820541618': '',\n", + " '_widget_1764820541672': '2026-04-23T16:00:00.000Z',\n", + " '_widget_1764820541623': '进阶版',\n", + " '_widget_1764820541624': 'SaaS新签:1199',\n", + " '_widget_1764820541621': '朱松松',\n", + " '_widget_1764820541622': '18932158817',\n", + " '_widget_1764820541625': {'name': '胡冰',\n", + " 'username': '19212436541043695',\n", + " 'status': 1,\n", + " 'type': 0,\n", + " 'departments': [122503482],\n", + " 'integrate_id': '19212436541043695'},\n", + " '_widget_1766631811839': '11240984669918342117',\n", + " '_widget_1764820541628': '主动',\n", + " '_widget_1764820541634': None,\n", + " '_widget_1765352838631': None,\n", + " '_widget_1764820541630': '主动',\n", + " '_widget_1764820541635': None,\n", + " '_widget_1765352838632': None,\n", + " '_widget_1764820541632': '主动',\n", + " '_widget_1764820541636': None,\n", + " '_widget_1765352838633': None,\n", + " '_widget_1764820541638': '否',\n", + " '_widget_1764820541641': '',\n", + " '_widget_1765330820509': '空号/停机/关机',\n", + " '_widget_1764820541653': '234',\n", + " '_widget_1764820541697': 'udesk外呼',\n", + " '_widget_1764820541657': '',\n", + " '_widget_1764820541659': '',\n", + " '_widget_1764820541654': '否',\n", + " '_widget_1764820541700': '服务问题',\n", + " '_widget_1764820541707': '',\n", + " '_widget_1764820541709': '联系不上运营顾问',\n", + " '_widget_1764820541711': '',\n", + " '_widget_1764820541713': '',\n", + " '_widget_1764820541702': '',\n", + " '_widget_1764820541717': [],\n", + " '_widget_1764820541681': '是',\n", + " '_widget_1765330820391': [],\n", + " '_widget_1764820541674': '',\n", + " '_widget_1764820541679': None,\n", + " '_widget_1764820541676': '',\n", + " '_widget_1764820541680': '',\n", + " '_widget_1764820541865': '2026-02-22T16:00:00.000Z',\n", + " '_widget_1765964381895': '2026-03-24T16:00:00.000Z',\n", + " '_widget_1765964381896': '2026-04-23T16:00:00.000Z',\n", + " '_widget_1765964381897': '2026-07-22T16:00:00.000Z',\n", + " '_widget_1765352838609': '',\n", + " '_widget_1765352838610': '',\n", + " '_widget_1765964381952': '单店',\n", + " '_widget_1765866283543': '',\n", + " '_widget_1764820541715': {'name': '孙海程',\n", + " 'username': '084119070623372941',\n", + " 'status': 1,\n", + " 'type': 0,\n", + " 'departments': [177751223],\n", + " 'integrate_id': '084119070623372941'},\n", + " '_widget_1766130435561': '普通客户(VIP)',\n", + " '_widget_1764820541678': {'name': '金华斌',\n", + " 'username': '3704680936560271',\n", + " 'status': 1,\n", + " 'type': 0,\n", + " 'departments': [122503482],\n", + " 'integrate_id': '3704680936560271'},\n", + " '_widget_1766376046563': '00060',\n", + " '_widget_1766469131897': '否',\n", + " '_widget_1766633812134': '',\n", + " 'appId': '675b900991ad2491c69389ca',\n", + " 'entryId': '6931063d64187eaf6b927557'}]}" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 9 + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/test/续约待办派发.py b/test/续约待办派发.py index b4b34ef..e8f5664 100644 --- a/test/续约待办派发.py +++ b/test/续约待办派发.py @@ -85,6 +85,7 @@ class RenewalToDo: "经营模式": "_widget_1765964381952", "公司等级": "_widget_1766130435561", "公司id": "_widget_1766631811839", + "订单商品名称":"_widget_1766730385209", "提交人": "creator", "提交时间": "createTime", "更新时间": "updateTime" @@ -346,9 +347,9 @@ class RenewalToDo: data_NGV['30天自动流转时间'] = data_NGV['过期日'] - pd.Timedelta(days=0) data_NGV['0天自动流转时间'] = data_NGV['过期日'] + pd.Timedelta(days=90) - data_NGV['120天是否跟进'] = "自动" - data_NGV['60天是否跟进']= "自动" - data_NGV['30天是否跟进']= "自动" + data_NGV['120天是否跟进'] = "主动" + data_NGV['60天是否跟进']= "主动" + data_NGV['30天是否跟进']= "主动" # 格式化为字符串(去掉时区) for col in ['过期日', '120天自动流转时间', '60天自动流转时间', '30天自动流转时间', '0天自动流转时间']: data_NGV[col] = data_NGV[col].dt.strftime('%Y-%m-%d %H:%M:%S') @@ -361,24 +362,39 @@ class RenewalToDo: ) # 新增上次购买价格列 - # 1. 清洗并拼接类型+价格 - df_lp = self.last_price[['门店编码', '类型', '价格']].copy() + # 1. 清洗数据 + df_lp = self.last_price[['门店编码', '类型', '订单商品名称', '价格']].copy() + + # 处理“类型”和“订单商品名称”的缺失值 df_lp['类型'] = df_lp['类型'].fillna('').astype(str) + df_lp['订单商品名称'] = df_lp['订单商品名称'].fillna('').astype(str) + + # 处理价格:转数字、四舍五入、填0、转字符串 df_lp['价格'] = ( pd.to_numeric(df_lp['价格'], errors='coerce') .round().fillna(0).astype(int).astype(str) ) + + # 2. 拼接“类型:价格” df_lp['类型_价格'] = df_lp['类型'] + ':' + df_lp['价格'] - # 2. 按门店聚合,分号连接 - agg_df = df_lp.groupby('门店编码', as_index=False)['类型_价格'].apply(';'.join) + # 3. 按门店聚合两列 + agg_df = df_lp.groupby('门店编码', as_index=False).agg({ + '类型_价格': lambda x: ';'.join(x), + '订单商品名称': lambda x: ';'.join(x) + }) - # 3. 合并回主表 - data_NGV = data_NGV.merge(agg_df, on='门店编码', how='left').fillna({'类型_价格': ''}) - data_NGV.rename(columns={'类型_价格': '上次购买价格'}, inplace=True) + # 4. 合并回主表 + data_NGV = data_NGV.merge(agg_df, on='门店编码', how='left') - # 4. 处理没有匹配记录的门店(填空或默认值) - data_NGV['上次购买价格'] = data_NGV['上次购买价格'].fillna('') + # 5. 填充缺失值为空字符串,并重命名列 + data_NGV['类型_价格'] = data_NGV['类型_价格'].fillna('') + data_NGV['订单商品名称'] = data_NGV['订单商品名称'].fillna('') + + data_NGV.rename(columns={ + '类型_价格': '上次购买价格', + '订单商品名称': '订单商品名称' + }, inplace=True) # 成员字段替换(现在列名是中文) staff_name_cols = [