日常回访多公司派发一个
This commit is contained in:
@@ -1,9 +1,7 @@
|
||||
import datetime
|
||||
import os
|
||||
import time
|
||||
|
||||
import requests
|
||||
|
||||
from api import API
|
||||
import re
|
||||
from back_ground_module import CommonModule
|
||||
@@ -58,28 +56,26 @@ class NewServicesRevisit:
|
||||
返回:
|
||||
- date_one: 遍历到date_list中日期的次数。
|
||||
"""
|
||||
jdy_date = datetime.datetime.now().strftime("%Y-%m-%d")
|
||||
jdy_start_time = datetime.datetime.now().strftime("%Y-%m-%d ")
|
||||
# 设置起始日期
|
||||
now_time = datetime.datetime.now() + datetime.timedelta(days=start_offset)
|
||||
|
||||
# 初始化计数器
|
||||
date_one = 1
|
||||
print("当前日期:", now_time.strftime("%Y-%m-%d"))
|
||||
logger.info("当前日期:%s", now_time.strftime("%Y-%m-%d"))
|
||||
# 检查起始日期是否在date_list中
|
||||
if now_time.strftime("%Y-%m-%d") in self.date_list:
|
||||
date_one = 0
|
||||
print("开始次数:", date_one)
|
||||
logger.info("开始次数:%s", date_one)
|
||||
|
||||
else:
|
||||
# 遍历日期
|
||||
for i in range(1, 10):
|
||||
new_date = now_time + datetime.timedelta(days=-i)
|
||||
new_date_str = new_date.strftime("%Y-%m-%d")
|
||||
print("遍历日期:", new_date_str)
|
||||
logger.info("遍历日期:%s", new_date_str)
|
||||
if new_date_str in self.date_list:
|
||||
date_one += 1
|
||||
print("节假日期:", new_date_str)
|
||||
logger.info("节假日期:%s", new_date_str)
|
||||
else:
|
||||
break
|
||||
|
||||
@@ -107,13 +103,12 @@ class NewServicesRevisit:
|
||||
for chunk in response.iter_content(chunk_size=8192): # 分块写入,避免占用过多内存
|
||||
if chunk: # 过滤掉空块
|
||||
file.write(chunk)
|
||||
|
||||
print(f"文件已成功保存到 {save_path}")
|
||||
logger.info(f"文件已成功保存到 {save_path}")
|
||||
|
||||
except requests.exceptions.RequestException as e:
|
||||
print(f"下载失败: {e}")
|
||||
error_task_logger.error(f"图片下载发生错误: {e}")
|
||||
except Exception as e:
|
||||
print(f"发生错误: {e}")
|
||||
error_task_logger.error(f"图片下载发生错误: {e}")
|
||||
|
||||
def load_all_data(self):
|
||||
"""加载所有必要的数据表"""
|
||||
@@ -178,6 +173,10 @@ class NewServicesRevisit:
|
||||
payload = {"api_key": "675b900991ad2491c69389ca", "entry_id": "67e5107198ba1b20d5df3974"}
|
||||
self.groupnotification = api_instance.entry_data_list(payload).get("data", [])
|
||||
|
||||
# 获取多公司过滤表
|
||||
payload = {"api_key": "675b900991ad2491c69389ca", "entry_id": "689bf5f8ba88a28cb0679ec9"}
|
||||
self.get_filter_company_list = api_instance.entry_data_list(payload).get("data", [])
|
||||
|
||||
@staticmethod
|
||||
def build_index(json_list):
|
||||
index = {}
|
||||
@@ -199,7 +198,6 @@ class NewServicesRevisit:
|
||||
@staticmethod
|
||||
def find_customer_service(province_name, city_name, area_name, index):
|
||||
key = (province_name, city_name, area_name)
|
||||
# print(index)
|
||||
if key not in index:
|
||||
return "数据缺失: 未找到对应的日常回访客服"
|
||||
|
||||
@@ -261,6 +259,15 @@ class NewServicesRevisit:
|
||||
self.saas_create_time_180 = 173 # 新签日期
|
||||
self.saas_create_time_90 = 83 # 新签日期
|
||||
|
||||
logger.info("获取多公司过滤公司id")
|
||||
all_filter_company_list = [] # 获取多公司过滤公司id
|
||||
for company in self.get_filter_company_list:
|
||||
company_list = company.get("_widget_1755052002491")
|
||||
for company_item in company_list:
|
||||
if company_item.get("_widget_1755052002496") == "否":
|
||||
all_filter_company_list.append(company_item.get("_widget_1755052002495"))
|
||||
logger.info(f"过滤公司条数:{len(all_filter_company_list)}")
|
||||
|
||||
for i in range(0, self.date_one): # 从NGV总表过滤
|
||||
# now_time = datetime.datetime.now() + datetime.timedelta(days=-76)
|
||||
# now_time = now_time + datetime.timedelta(days=-i)
|
||||
@@ -272,6 +279,8 @@ class NewServicesRevisit:
|
||||
logger.info(f"开始处理{formatted_today_180}与{formatted_today_90}的数据")
|
||||
|
||||
data_NGV = self.data_NGV_S.copy()
|
||||
# 过滤多公司
|
||||
data_NGV = data_NGV[~data_NGV['id_own_group'].isin(all_filter_company_list)]
|
||||
|
||||
def replace_values(series):
|
||||
# 使用条件判断来进行替换
|
||||
@@ -294,7 +303,8 @@ class NewServicesRevisit:
|
||||
# 添加用于排序的新列,并处理不在映射字典中的值
|
||||
data_NGV['edition_rank'] = data_NGV['saas_edition_fmt'].map(edition_map).fillna(0).astype(
|
||||
int) # 缺失值用最高优先级填充
|
||||
data_NGV['customer_type_rank'] = data_NGV['saas_customer_type'].map(customer_type_map).fillna(0).astype(int)
|
||||
data_NGV['customer_type_rank'] = data_NGV['saas_customer_type'].map(customer_type_map).fillna(0).astype(
|
||||
int)
|
||||
data_NGV['group_grade_rank'] = data_NGV['group_grade'].map(group_grade_map).fillna(0).astype(int)
|
||||
# data_NGV.to_csv("88855.csv")
|
||||
|
||||
@@ -391,8 +401,6 @@ class NewServicesRevisit:
|
||||
payload_dict = {}
|
||||
saas_use_year = re.findall(r'第([0-9]+)年', row["saas_use_year"])[0]
|
||||
|
||||
|
||||
|
||||
NGV_roles = {
|
||||
'relationship_manager': row['service_impl_principal'], # 运营负责人
|
||||
# 'relationship_manager': "张阳", # 运营负责人
|
||||
@@ -488,7 +496,7 @@ class NewServicesRevisit:
|
||||
Billing = None
|
||||
for item in self.permissions_table:
|
||||
if NGV_store_level_key == item.get("_widget_1734056507963"): # 合并(等级-类型-分层)
|
||||
print("该门店开单的权限是:", item.get(item.get("_widget_1734055617039")))
|
||||
logger.info(f"该门店开单的权限是:{item.get(item.get('_widget_1734055617039'))}")
|
||||
Billing = item.get("_widget_1734055617039") # 开单
|
||||
Service_Alerts = item.get("_widget_1734055617040") # 服务提醒
|
||||
membership = item.get("_widget_1734055617041") # 会员卡
|
||||
@@ -784,12 +792,9 @@ class NewServicesRevisit:
|
||||
UUid = time.strftime("%Y%m%d%H%M%S", time.localtime())
|
||||
if png_url:
|
||||
save_dir = "sampleCloud" # 设置输出目录
|
||||
|
||||
# 创建输出目录(如果不存在)
|
||||
import os
|
||||
|
||||
os.makedirs(save_dir, exist_ok=True)
|
||||
|
||||
save_path = fr'{save_dir}\png\{time.strftime("%Y%m%d%H%M%S", time.localtime())}.png'
|
||||
|
||||
NewServicesRevisit.download_url_content(png_url, save_path)
|
||||
@@ -856,6 +861,7 @@ class NewServicesRevisit:
|
||||
common_module.send_task_error(task_start_time, "新签客户回访", str(e))
|
||||
error_task_logger.error(f"新签客户回访任务执行时发生异常: {e}")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
start = NewServicesRevisit()
|
||||
start.main()
|
||||
|
||||
Reference in New Issue
Block a user