续约待办派发

This commit is contained in:
z66
2025-12-16 10:55:26 +08:00
parent 5e4529c11e
commit f67ef89818
2 changed files with 41 additions and 24 deletions
+33
View File
@@ -0,0 +1,33 @@
from datetime import datetime
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
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 YdToJDYRenewalToDo:
def __init__(self):
pass
def load_all_data(self):
"""
从各类来源加载数据上加载数据
:return:
"""
def main(self):
pass
if __name__ == '__main__':
yd_to_jd_renewal_to_do = YdToJDYRenewalToDo()
yd_to_jd_renewal_to_do.main()
+8 -24
View File
@@ -1,24 +1,6 @@
# 标准库
import os import os
import time from datetime import datetime
import random
import json
import binascii
from datetime import date, timedelta, datetime
from urllib.parse import quote
from pathlib import Path
# 第三方库
import numpy as np
import pandas as pd import pandas as pd
import requests
from pyDes import des, CBC, PAD_PKCS5
import mysql.connector
from mysql.connector import Error
import psycopg2
# 自定义模块
from config import Config
from api import API from api import API
from back_ground_module import CommonModule from back_ground_module import CommonModule
from log_config import configure_task_logger, configure_error_task_logger from log_config import configure_task_logger, configure_error_task_logger
@@ -33,6 +15,7 @@ os.makedirs(output_dir, exist_ok=True)
class RenewalToDo: class RenewalToDo:
def __init__(self): def __init__(self):
self.province_staff_id_list = None
self.json_list = None self.json_list = None
self.data_NGV = None self.data_NGV = None
self.staff_id_list = None self.staff_id_list = None
@@ -131,10 +114,10 @@ class RenewalToDo:
payload = {"api_key": "675b900991ad2491c69389ca", "entry_id": "676512ac3e54dc3159460c0a"} payload = {"api_key": "675b900991ad2491c69389ca", "entry_id": "676512ac3e54dc3159460c0a"}
json_dict = api_instance.entry_data_list(payload) json_dict = api_instance.entry_data_list(payload)
if json_dict and "data" in json_dict: if json_dict and "data" in json_dict:
self.staff_id_list = json_dict.get("data") self.province_staff_id_list = json_dict.get("data")
else: else:
print("加载省市区人员关系表失败") print("加载省市区人员关系表失败")
self.staff_id_list = [] self.province_staff_id_list = []
# 数据库获取续约回访数据 # 数据库获取续约回访数据
self.data_NGV = common_module.get_renewal_details() self.data_NGV = common_module.get_renewal_details()
@@ -144,6 +127,7 @@ class RenewalToDo:
""" """
将 DataFrame 中多个姓名列替换为对应的员工ID。 将 DataFrame 中多个姓名列替换为对应的员工ID。
:param staff_id_list: 简道云获取到员工id
:param df: pandas.DataFrame :param df: pandas.DataFrame
:param name_columns: list[str],需要替换的姓名列名列表,例如 ["col1", "col2"] :param name_columns: list[str],需要替换的姓名列名列表,例如 ["col1", "col2"]
:return: 修改后的 DataFrame(原列被替换) :return: 修改后的 DataFrame(原列被替换)
@@ -228,7 +212,7 @@ class RenewalToDo:
staff_info = item.get('_widget_1734677164869', {}) # 续约回访客服 staff_info = item.get('_widget_1734677164869', {}) # 续约回访客服
username = staff_info.get('username') username = staff_info.get('username')
return username if username else "数据缺失: 客服用户名为空" return username if username else "数据缺失: 客服用户名为空"
except Exception: except Exception :
continue # 跳过格式异常的记录 continue # 跳过格式异常的记录
return "数据缺失: 未找到对应的续约回访客服" return "数据缺失: 未找到对应的续约回访客服"
@@ -286,7 +270,7 @@ class RenewalToDo:
for NGV_Data in self.NGV_data_list: for NGV_Data in self.NGV_data_list:
# NGV_Data = NGV_Data.get("data") # NGV_Data = NGV_Data.get("data")
if row["org_code"] == NGV_Data.get("_widget_1734062123071"): # 门店编码 if row["org_code"] == NGV_Data.get("_widget_1734062123071"): # 门店编码
NGV_data_id = NGV_Data.get("_id") # 数据id NGV_data_id = NGV_Data.get("_id") # 数据id
# 如果需要从 NGV_data_list 获取省市区信息 # 如果需要从 NGV_data_list 获取省市区信息
if use_ngv_location: if use_ngv_location:
@@ -307,7 +291,7 @@ class RenewalToDo:
logger.warning(f"省: {province_name}, 市: {city_name}, 区: {area_name}") logger.warning(f"省: {province_name}, 市: {city_name}, 区: {area_name}")
else: else:
customer_service = self.get_customer_service_by_location(province_name, city_name, area_name, customer_service = self.get_customer_service_by_location(province_name, city_name, area_name,
self.staff_id_list) self.province_staff_id_list)
logger.info(f"【派发客服】门店 {row['org_code']} 派发给客服: {customer_service}") logger.info(f"【派发客服】门店 {row['org_code']} 派发给客服: {customer_service}")
# step4:非NGV字段添加到row中 # step4:非NGV字段添加到row中