异常回访、续约回访增加默认值
新签、续约回访增加权限唯一值不存在报错
This commit is contained in:
@@ -19,6 +19,7 @@ error_task_logger = configure_error_task_logger()
|
||||
output_dir = "output" # 设置输出目录
|
||||
os.makedirs(output_dir, exist_ok=True)
|
||||
|
||||
|
||||
class NewExceptionTask:
|
||||
"""
|
||||
SaaS异常回访
|
||||
@@ -175,7 +176,9 @@ class NewExceptionTask:
|
||||
# print("NGV获取后的类型:", type(self.NGV_data_list))
|
||||
|
||||
# 获取异常服务待办(添加过滤进行中的订单)
|
||||
payload = {"api_key": "675b900991ad2491c69389ca", "entry_id": "68340de79f116c0b66b6b0cc","filter":{"rel":"and","cond":[{ "field": "flowState", "type":"flowstate", "method":"eq","value":[0] }]}}
|
||||
payload = {"api_key": "675b900991ad2491c69389ca", "entry_id": "68340de79f116c0b66b6b0cc",
|
||||
"filter": {"rel": "and",
|
||||
"cond": [{"field": "flowState", "type": "flowstate", "method": "eq", "value": [0]}]}}
|
||||
self.exception_service_todo = api_instance.entry_data_list(payload).get("data", [])
|
||||
# print(self.exception_service_todo)
|
||||
|
||||
@@ -225,7 +228,7 @@ class NewExceptionTask:
|
||||
|
||||
task_start_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
all_data =[]
|
||||
all_data = []
|
||||
try:
|
||||
self.load_all_data()
|
||||
|
||||
@@ -240,6 +243,7 @@ class NewExceptionTask:
|
||||
return
|
||||
|
||||
data_yichang = self.data_yichang_S.copy()
|
||||
|
||||
# data_yichang.to_csv(os.path.join(output_dir,"data_yichang.csv"), index=False)
|
||||
|
||||
def replace_values(series):
|
||||
@@ -248,7 +252,7 @@ class NewExceptionTask:
|
||||
|
||||
# 对整个DataFrame的所有列应用替换函数
|
||||
data_yichang = data_yichang.apply(replace_values)
|
||||
error_data= []
|
||||
error_data = []
|
||||
for index_num, row in data_yichang.iterrows(): # 对过滤后的每一条进行派发
|
||||
try:
|
||||
# 每次循环前清空省市区变量
|
||||
@@ -257,7 +261,7 @@ class NewExceptionTask:
|
||||
area_name = None
|
||||
|
||||
is_pass = False
|
||||
for exception_service in self.exception_service_todo :
|
||||
for exception_service in self.exception_service_todo:
|
||||
# 通过查询筛选进行中的逻辑
|
||||
if exception_service['_widget_1748241895842'] == row['org_code']:
|
||||
is_pass = True
|
||||
@@ -297,35 +301,36 @@ class NewExceptionTask:
|
||||
|
||||
NGV_data_id = None
|
||||
reason = None
|
||||
create_exception =None
|
||||
create_date = None
|
||||
|
||||
create_exception = None
|
||||
create_date = None
|
||||
|
||||
# 优先从 data_yichang_S 获取省市区信息
|
||||
province_name = row.get('province_name')
|
||||
city_name = row.get('city_name')
|
||||
area_name = row.get('area_name') if 'area_name' in row else row.get('district_name')
|
||||
|
||||
|
||||
# 检查省市区是否完整(省市区是一体的,任意一个缺失就需要从NGV获取)
|
||||
use_ngv_location = False
|
||||
if (not province_name or province_name in ['', 'None', 'NA'] or
|
||||
not city_name or city_name in ['', 'None', 'NA'] or
|
||||
not area_name or area_name in ['', 'None', 'NA']):
|
||||
not city_name or city_name in ['', 'None', 'NA'] or
|
||||
not area_name or area_name in ['', 'None', 'NA']):
|
||||
use_ngv_location = True
|
||||
logger.info(f"门店 {row['org_code']} 的省市区信息不完整,将从NGV_data_list获取")
|
||||
|
||||
stop_date = None
|
||||
# 获取关联数据
|
||||
for NGV_Data in self.NGV_data_list:
|
||||
# NGV_Data = NGV_Data.get("data")
|
||||
if row["org_code"] == NGV_Data.get("_widget_1734062123071"): # 门店编码
|
||||
NGV_data_id = NGV_Data.get("_id")
|
||||
|
||||
|
||||
# 如果需要从 NGV_data_list 获取省市区信息
|
||||
if use_ngv_location:
|
||||
province_name = NGV_Data.get("_widget_1734062123090")
|
||||
city_name = NGV_Data.get("_widget_1734062123092")
|
||||
area_name = NGV_Data.get("_widget_1734062123094")
|
||||
logger.info(f"【从NGV获取省市区】门店 {row['org_code']}: {province_name}, {city_name}, {area_name}")
|
||||
|
||||
logger.info(
|
||||
f"【从NGV获取省市区】门店 {row['org_code']}: {province_name}, {city_name}, {area_name}")
|
||||
|
||||
# 门店原因
|
||||
reason = NGV_Data.get("_widget_1758617393828")
|
||||
logger.info(f"获取关联数据成功:{NGV_data_id}, {province_name}, {city_name}, {area_name}")
|
||||
@@ -333,8 +338,40 @@ class NewExceptionTask:
|
||||
create_exception = NGV_Data.get("_widget_1758769279995")
|
||||
# 获取上线日期(文本)# 202512.3改为开户日
|
||||
create_date = NGV_Data.get("_widget_1734062123081")
|
||||
# 获取暂停派发日期
|
||||
stop_date = NGV_Data.get("_widget_1772610343227", None)
|
||||
break # 找到匹配的数据后退出循环
|
||||
|
||||
# 定义可能的日期格式(灵活应对不同格式)
|
||||
date_formats = [
|
||||
"%Y-%m-%d %H:%M:%S", # 含时间
|
||||
"%Y-%m-%d", # 仅日期
|
||||
"%Y/%m/%d",
|
||||
"%Y/%m/%d %H:%M:%S"
|
||||
]
|
||||
|
||||
if stop_date:
|
||||
# 解析暂停派发日期
|
||||
parsed_stop_date = None
|
||||
for fmt in date_formats:
|
||||
try:
|
||||
parsed_stop_date = datetime.datetime.strptime(stop_date.strip(), fmt)
|
||||
logger.debug(f"使用格式 {fmt} 成功解析暂停派发日期: {parsed_stop_date}")
|
||||
break
|
||||
except ValueError:
|
||||
continue
|
||||
|
||||
if parsed_stop_date:
|
||||
# 获取当前UTC时间
|
||||
current_utc_time = datetime.datetime.utcnow()
|
||||
logger.debug(f"当前UTC时间: {current_utc_time}")
|
||||
logger.debug(f"暂停派发日期: {parsed_stop_date}")
|
||||
|
||||
# 比较时间
|
||||
if current_utc_time < parsed_stop_date:
|
||||
logger.info(f"当前UTC时间低于暂停派发日期,跳过派发")
|
||||
continue
|
||||
|
||||
# 判断门店原因
|
||||
# if reason in ["门店倒闭", "门店转让", "加盟其他连锁","切换竞品","虚拟门店","重新开户","已退款","二套系统"]:
|
||||
# continue
|
||||
@@ -347,14 +384,6 @@ class NewExceptionTask:
|
||||
logger.warning("上线日期为空,跳过该记录")
|
||||
continue
|
||||
|
||||
# 定义可能的日期格式(灵活应对不同格式)
|
||||
date_formats = [
|
||||
"%Y-%m-%d %H:%M:%S", # 含时间
|
||||
"%Y-%m-%d", # 仅日期
|
||||
"%Y/%m/%d",
|
||||
"%Y/%m/%d %H:%M:%S"
|
||||
]
|
||||
|
||||
parsed_date = None
|
||||
for fmt in date_formats:
|
||||
try:
|
||||
@@ -380,15 +409,14 @@ class NewExceptionTask:
|
||||
logger.info(f"上线日期 {parsed_date} 在30天内,跳过处理")
|
||||
continue
|
||||
|
||||
|
||||
if not NGV_data_id:
|
||||
logger.warning(f"未找到关联数据,请检查门店编码: {row['org_code']}")
|
||||
|
||||
# 根据省市区派发给异常回访客服
|
||||
# 检查省市区是否都有值,如果有任何一个为空,则客服为空
|
||||
if (not province_name or province_name in ['', 'None', 'NA'] or
|
||||
not city_name or city_name in ['', 'None', 'NA'] or
|
||||
not area_name or area_name in ['', 'None', 'NA']):
|
||||
not city_name or city_name in ['', 'None', 'NA'] or
|
||||
not area_name or area_name in ['', 'None', 'NA']):
|
||||
customer_service = None
|
||||
logger.warning(f"【省市区信息缺失】门店 {row['org_code']} 省市区信息不完整,异常回访客服设置为空")
|
||||
logger.warning(f"省: {province_name}, 市: {city_name}, 区: {area_name}")
|
||||
@@ -457,6 +485,8 @@ class NewExceptionTask:
|
||||
|
||||
"_widget_1748512176655": {"value": "未处理"}, # 跟进状态
|
||||
|
||||
"_widget_1772761760440":{"value": "客服跟进节点"}, # 当前跟进节点
|
||||
|
||||
})
|
||||
|
||||
routine_follow_up_payload = {
|
||||
@@ -478,7 +508,9 @@ class NewExceptionTask:
|
||||
if error_data:
|
||||
error_df = pd.DataFrame(error_data)
|
||||
error_df.to_csv(os.path.join(output_dir, "异常派发错误数据.csv"))
|
||||
common_module.send_task_error(task_start_time = task_start_time,task_name= "异常服务待办派发",error_message="详情见失败文件", df = error_df)
|
||||
common_module.send_task_error(task_start_time=task_start_time, task_name="异常服务待办派发",
|
||||
error_message="失败文件中省市区匹配不到,需要通过门店编码在客户资料表中查询正确的省市区,并更新到省市区人员关系表中",
|
||||
df=error_df)
|
||||
# ndf = pd.DataFrame(all_data)
|
||||
# ndf.to_csv(os.path.join(output_dir, "异常派发.csv"))
|
||||
common_module.send_task_status(task_start_time, "异常服务待办派发")
|
||||
|
||||
@@ -351,6 +351,9 @@ class RenewalToDo:
|
||||
data_NGV['120天是否跟进'] = "主动"
|
||||
data_NGV['60天是否跟进']= "主动"
|
||||
data_NGV['30天是否跟进']= "主动"
|
||||
|
||||
# 新增当前所处节点默认值
|
||||
data_NGV['当前所处节点'] = "120天节点"
|
||||
# 格式化为字符串(去掉时区)
|
||||
for col in ['过期日', '120天自动流转时间', '60天自动流转时间', '30天自动流转时间', '0天自动流转时间']:
|
||||
data_NGV[col] = data_NGV[col].dt.strftime('%Y-%m-%d %H:%M:%S')
|
||||
|
||||
@@ -622,7 +622,10 @@ class NewServicesRevisit:
|
||||
continue
|
||||
|
||||
if not Billing:
|
||||
logger.warning(f"权限表请求失败或者权限表无对应关系,权限唯一值是:{NGV_store_level_key}")
|
||||
logger.warning(f"权限表请求失败或者权限表无对应关系,权限唯一值是:{NGV_store_level_key},跳过该条派发")
|
||||
error_msg = f"门店编码:{row['org_code']},权限唯一值:{NGV_store_level_key}"
|
||||
common_module.send_task_error(task_start_time, "新签客户回访-权限表无匹配", error_msg)
|
||||
continue
|
||||
|
||||
if row["active_status_fmt"] == "活跃": # 开单 是否使用
|
||||
payload_dict.update({"_widget_1735004315765": {"value": "是"}})
|
||||
@@ -635,7 +638,7 @@ class NewServicesRevisit:
|
||||
payload_dict.update({"_widget_1735106258036": {"value": "否"}})
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"会员卡拥有识别:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-会员卡拥有识别", str(e))
|
||||
common_module.send_task_error(task_start_time, "新签客户回访-会员卡拥有识别", str(e))
|
||||
try:
|
||||
if row["card_bill_day_count_last_30_day"] != "0": # 会员卡 是否使用
|
||||
payload_dict.update({"_widget_1735106258038": {"value": "是"}})
|
||||
@@ -643,7 +646,7 @@ class NewServicesRevisit:
|
||||
payload_dict.update({"_widget_1735106258038": {"value": "否"}})
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"会员卡使用识别:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-会员卡使用识别", str(e))
|
||||
common_module.send_task_error(task_start_time, "新签客户回访-会员卡使用识别", str(e))
|
||||
# print(self.service_remind.get("_widget_1735112637045"))
|
||||
payload_dict["_widget_1735106258018"] = {"value": "否"}
|
||||
|
||||
@@ -675,11 +678,13 @@ class NewServicesRevisit:
|
||||
# 近30天业务单量=0 则其它所有模块均不推荐
|
||||
try:
|
||||
for feature_module, feature_value in feature_dict.items(): # 模块
|
||||
if row["bill_count_last_30_day"] == '0' and payload_dict[feature_value]["value"] == '△':
|
||||
if feature_value not in payload_dict:
|
||||
continue
|
||||
if row["bill_count_last_30_day"] == '0' and payload_dict[feature_value].get("value") == '△':
|
||||
payload_dict.update({f"{feature_value}": {"value": "×"}})
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"不开单识别:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-不开单识别", str(e))
|
||||
common_module.send_task_error(task_start_time, "新签客户回访-不开单识别", str(e))
|
||||
|
||||
# 保单识别:从系统中抽取目标门店,针对门店抽取修改是否推荐
|
||||
try:
|
||||
@@ -687,7 +692,7 @@ class NewServicesRevisit:
|
||||
payload_dict.update({'_widget_1735004315746': {"value": "△"}})
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"保单识别:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-保单识别", str(e))
|
||||
common_module.send_task_error(task_start_time, "新签客户回访-保单识别", str(e))
|
||||
# 私域小程序:根据是否开通微信小程序判断是否使用,旗舰版及以上算拥有
|
||||
try:
|
||||
for item in self.private_domain:
|
||||
@@ -700,7 +705,7 @@ class NewServicesRevisit:
|
||||
break
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"小程序识别:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-小程序识别", str(e))
|
||||
common_module.send_task_error(task_start_time, "新签客户回访-小程序识别", str(e))
|
||||
try:
|
||||
high_version = ['皇冠版', '至尊版', '尊享版', '旗舰版']
|
||||
if row["saas_edition_fmt"] in high_version:
|
||||
@@ -709,7 +714,7 @@ class NewServicesRevisit:
|
||||
payload_dict.update({'_widget_1735106258141': {"value": "否"}}) # SYXCX:是否拥有
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"私域小程序:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-私域小程序", str(e))
|
||||
common_module.send_task_error(task_start_time, "新签客户回访-私域小程序", str(e))
|
||||
|
||||
# 公域小程序:根据是否开通微信小程序判断是否使用,旗舰版及以上算拥有
|
||||
try:
|
||||
@@ -723,7 +728,7 @@ class NewServicesRevisit:
|
||||
break
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"公域小程序:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-公域小程序", str(e))
|
||||
common_module.send_task_error(task_start_time, "新签客户回访-公域小程序", str(e))
|
||||
|
||||
try:
|
||||
if row["id_own_org"] in self.public_domain_list:
|
||||
@@ -732,7 +737,7 @@ class NewServicesRevisit:
|
||||
payload_dict.update({'_widget_1735106258112': {"value": "否"}}) # GYXCX:是否拥有
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"公域小程序:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-公域小程序", str(e))
|
||||
common_module.send_task_error(task_start_time, "新签客户回访-公域小程序", str(e))
|
||||
|
||||
# 异业合作:根据是否存在判断是否拥有,过滤条件 商品名称包含异业两个字
|
||||
try:
|
||||
@@ -742,7 +747,7 @@ class NewServicesRevisit:
|
||||
payload_dict.update({'_widget_1735107355618': {"value": "否"}}) # YYHZ:是否拥有
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"异业合作:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-异业合作", str(e))
|
||||
common_module.send_task_error(task_start_time, "新签客户回访-异业合作", str(e))
|
||||
|
||||
# 短信:根据是否启动短信功能判断是否拥有,根据
|
||||
try:
|
||||
@@ -756,7 +761,7 @@ class NewServicesRevisit:
|
||||
break
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"短信是否使用:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-短信是否使用", str(e))
|
||||
common_module.send_task_error(task_start_time, "新签客户回访-短信是否使用", str(e))
|
||||
|
||||
try:
|
||||
for item in self.groupnotification:
|
||||
@@ -769,7 +774,7 @@ class NewServicesRevisit:
|
||||
break
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"短信是否使用:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-短信是否使用", str(e))
|
||||
common_module.send_task_error(task_start_time, "新签客户回访-短信是否使用", str(e))
|
||||
|
||||
NGV_data_id = None
|
||||
# 获取关联数据
|
||||
|
||||
@@ -736,7 +736,10 @@ class RenewServicesRevisit:
|
||||
continue
|
||||
|
||||
if not Billing:
|
||||
logger.warning(f"权限表请求失败或者权限表无对应关系,权限唯一值是:{NGV_store_level_key}")
|
||||
logger.warning(f"权限表请求失败或者权限表无对应关系,权限唯一值是:{NGV_store_level_key},跳过该条派发")
|
||||
error_msg = f"门店编码:{row['org_code']},权限唯一值:{NGV_store_level_key}"
|
||||
common_module.send_task_error(task_start_time, "续约客户回访-权限表无匹配", error_msg)
|
||||
continue # 无权限匹配时 payload_dict 缺少 _widget_1734073342350 等字段,后续会 KeyError,直接跳过
|
||||
|
||||
if row["active_status_fmt"] == "活跃": # 开单 是否使用
|
||||
payload_dict.update({"_widget_1735004315765": {"value": "是"}})
|
||||
@@ -750,7 +753,7 @@ class RenewServicesRevisit:
|
||||
payload_dict.update({"_widget_1735106258036": {"value": "否"}})
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"会员卡拥有识别:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-会员卡拥有识别", str(e))
|
||||
common_module.send_task_error(task_start_time, "续约客户回访-会员卡拥有识别", str(e))
|
||||
|
||||
try:
|
||||
if row["card_bill_day_count_last_30_day"] != "0": # 会员卡 是否使用
|
||||
@@ -759,7 +762,7 @@ class RenewServicesRevisit:
|
||||
payload_dict.update({"_widget_1735106258038": {"value": "否"}})
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"会员卡使用识别:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-会员卡使用识别", str(e))
|
||||
common_module.send_task_error(task_start_time, "续约客户回访-会员卡使用识别", str(e))
|
||||
|
||||
# print(self.service_remind.get("_widget_1735112637045"))
|
||||
payload_dict["_widget_1735106258018"] = {"value": "否"}
|
||||
@@ -792,11 +795,13 @@ class RenewServicesRevisit:
|
||||
# 近30天业务单量=0 则其它所有模块均不推荐
|
||||
try:
|
||||
for feature_module, feature_value in feature_dict.items(): # 模块
|
||||
if row["bill_count_last_30_day"] == '0' and payload_dict[feature_value]["value"] == '△':
|
||||
if feature_value not in payload_dict:
|
||||
continue # 权限未匹配时该 key 不存在,避免 KeyError
|
||||
if row["bill_count_last_30_day"] == '0' and payload_dict[feature_value].get("value") == '△':
|
||||
payload_dict.update({f"{feature_value}": {"value": "×"}})
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"不开单识别:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-不开单识别", str(e))
|
||||
common_module.send_task_error(task_start_time, "续约客户回访-不开单识别", str(e))
|
||||
|
||||
# 保单识别:从系统中抽取目标门店,针对门店抽取修改是否推荐
|
||||
try:
|
||||
@@ -804,7 +809,7 @@ class RenewServicesRevisit:
|
||||
payload_dict.update({'_widget_1735004315746': {"value": "△"}})
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"保单识别:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-保单识别", str(e))
|
||||
common_module.send_task_error(task_start_time, "续约客户回访-保单识别", str(e))
|
||||
|
||||
# 私域小程序:根据是否开通微信小程序判断是否使用,旗舰版及以上算拥有
|
||||
try:
|
||||
@@ -818,7 +823,7 @@ class RenewServicesRevisit:
|
||||
break
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"小程序识别:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-小程序识别", str(e))
|
||||
common_module.send_task_error(task_start_time, "续约客户回访-小程序识别", str(e))
|
||||
|
||||
try:
|
||||
high_version = ['皇冠版', '至尊版', '尊享版', '旗舰版']
|
||||
@@ -828,7 +833,7 @@ class RenewServicesRevisit:
|
||||
payload_dict.update({'_widget_1735106258141': {"value": "否"}}) # SYXCX:是否拥有
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"私域小程序:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-私域小程序", str(e))
|
||||
common_module.send_task_error(task_start_time, "续约客户回访-私域小程序", str(e))
|
||||
|
||||
# 公域小程序:根据是否开通微信小程序判断是否使用,旗舰版及以上算拥有
|
||||
try:
|
||||
@@ -842,7 +847,7 @@ class RenewServicesRevisit:
|
||||
break
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"公域小程序:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-公域小程序", str(e))
|
||||
common_module.send_task_error(task_start_time, "续约客户回访-公域小程序", str(e))
|
||||
|
||||
try:
|
||||
if row["id_own_org"] in self.public_domain_list:
|
||||
@@ -851,7 +856,7 @@ class RenewServicesRevisit:
|
||||
payload_dict.update({'_widget_1735106258112': {"value": "否"}}) # GYXCX:是否拥有
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"公域小程序:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-公域小程序", str(e))
|
||||
common_module.send_task_error(task_start_time, "续约客户回访-公域小程序", str(e))
|
||||
|
||||
# 异业合作:根据是否存在判断是否拥有,过滤条件 商品名称包含异业两个字
|
||||
try:
|
||||
@@ -861,7 +866,7 @@ class RenewServicesRevisit:
|
||||
payload_dict.update({'_widget_1735107355618': {"value": "否"}}) # YYHZ:是否拥有
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"异业合作:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-异业合作", str(e))
|
||||
common_module.send_task_error(task_start_time, "续约客户回访-异业合作", str(e))
|
||||
|
||||
# 短信:根据是否启动短信功能判断是否拥有,根据
|
||||
try:
|
||||
@@ -875,7 +880,7 @@ class RenewServicesRevisit:
|
||||
break
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"短信是否使用:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-短信是否使用", str(e))
|
||||
common_module.send_task_error(task_start_time, "续约客户回访-短信是否使用", str(e))
|
||||
|
||||
try:
|
||||
for item in self.groupnotification:
|
||||
@@ -888,7 +893,7 @@ class RenewServicesRevisit:
|
||||
break
|
||||
except Exception as e:
|
||||
error_task_logger.error(f"短信是否使用:Error finding customer service: {e}")
|
||||
common_module.send_task_error(task_start_time, "手动添加日常回访-短信是否使用", str(e))
|
||||
common_module.send_task_error(task_start_time, "续约客户回访-短信是否使用", str(e))
|
||||
|
||||
NGV_data_id = None
|
||||
# 获取关联数据
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 125 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 369 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 154 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 154 KiB |
Reference in New Issue
Block a user