客户资料启用智能助手
This commit is contained in:
@@ -113,7 +113,7 @@ class UpdateNGVData:
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
#
|
#
|
||||||
data = {'api_key': Config.SaaS_Tasks_APP_ID, 'entry_id': Config.NGV_TASKS_ENTRY_ID, "data_list": all_data}
|
data = {'api_key': Config.SaaS_Tasks_APP_ID, 'entry_id': Config.NGV_TASKS_ENTRY_ID, "data_list": all_data,"is_start_trigger":"true"}
|
||||||
|
|
||||||
result = api_instance.entry_data_batch_create(data)
|
result = api_instance.entry_data_batch_create(data)
|
||||||
logger.info(f"数据已推送:{result}")
|
logger.info(f"数据已推送:{result}")
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
from concurrent.futures import ThreadPoolExecutor, as_completed
|
from concurrent.futures import ThreadPoolExecutor, as_completed
|
||||||
import time
|
import time
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
# 添加父目录到Python路径,以便导入项目模块
|
# 添加父目录到Python路径,以便导入项目模块
|
||||||
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||||
@@ -616,6 +617,17 @@ class UpdateAllNGVDataDaily:
|
|||||||
org_code = idx
|
org_code = idx
|
||||||
data_dict[self.ORG_CODE_WIDGET_ID] = {"value": org_code}
|
data_dict[self.ORG_CODE_WIDGET_ID] = {"value": org_code}
|
||||||
|
|
||||||
|
# 新增:仅创建内容非全空的记录
|
||||||
|
# 检查除了门店编码外,其他字段是否全为空
|
||||||
|
all_empty = True
|
||||||
|
for k, v in data_dict.items():
|
||||||
|
if k != self.ORG_CODE_WIDGET_ID and v.get('value') not in (None, '', float('nan')):
|
||||||
|
all_empty = False
|
||||||
|
break
|
||||||
|
if all_empty:
|
||||||
|
logger.info(f" - 跳过内容全空的新建记录 org_code: {idx}")
|
||||||
|
continue
|
||||||
|
|
||||||
create_data_list.append({
|
create_data_list.append({
|
||||||
'org_code': idx,
|
'org_code': idx,
|
||||||
'data_dict': data_dict,
|
'data_dict': data_dict,
|
||||||
@@ -782,7 +794,9 @@ class UpdateAllNGVDataDaily:
|
|||||||
create_data = {
|
create_data = {
|
||||||
'api_key': Config.SaaS_Tasks_APP_ID,
|
'api_key': Config.SaaS_Tasks_APP_ID,
|
||||||
'entry_id': Config.NGV_TASKS_ENTRY_ID,
|
'entry_id': Config.NGV_TASKS_ENTRY_ID,
|
||||||
'data': item['data_dict']
|
'data': item['data_dict'],
|
||||||
|
'is_start_trigger':'true',
|
||||||
|
|
||||||
}
|
}
|
||||||
api_instance.data_batch_create(data=create_data, max_retries=20)
|
api_instance.data_batch_create(data=create_data, max_retries=20)
|
||||||
success_count += 1
|
success_count += 1
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ class EmailProcessor:
|
|||||||
"指标类型": "_widget_1742091963880",
|
"指标类型": "_widget_1742091963880",
|
||||||
"指标值": "_widget_1742091963882",
|
"指标值": "_widget_1742091963882",
|
||||||
"指标子类型": "_widget_1742091963881",
|
"指标子类型": "_widget_1742091963881",
|
||||||
|
"门店过期时间":"_widget_1761875317680"
|
||||||
}
|
}
|
||||||
|
|
||||||
def connect_email_by_pop3(self):
|
def connect_email_by_pop3(self):
|
||||||
@@ -288,10 +289,12 @@ class EmailProcessor:
|
|||||||
email_df['门店ID'] = email_df['门店ID'].astype(str)
|
email_df['门店ID'] = email_df['门店ID'].astype(str)
|
||||||
email_df['指标归属日期'] = pd.to_datetime(email_df['指标归属日期'], format="%Y/%m/%d").dt.strftime("%Y-%m-%d")
|
email_df['指标归属日期'] = pd.to_datetime(email_df['指标归属日期'], format="%Y/%m/%d").dt.strftime("%Y-%m-%d")
|
||||||
email_df["门店创建时间"] = pd.to_datetime(email_df['门店创建时间'], format="%Y-%m-%d %H:%M:%S")
|
email_df["门店创建时间"] = pd.to_datetime(email_df['门店创建时间'], format="%Y-%m-%d %H:%M:%S")
|
||||||
|
email_df["门店过期时间"] = pd.to_datetime(email_df['门店过期时间'], format="%Y-%m-%d %H:%M:%S")
|
||||||
new_email_df = email_df.copy() # 拷贝传参
|
new_email_df = email_df.copy() # 拷贝传参
|
||||||
for index, row in email_df.iterrows():
|
for index, row in email_df.iterrows():
|
||||||
email_df.loc[index, '指标归属日期'] = common_module.time_to_UTC(row['指标归属日期'])
|
email_df.loc[index, '指标归属日期'] = common_module.time_to_UTC(row['指标归属日期'])
|
||||||
email_df.loc[index, '门店创建时间'] = common_module.time_to_UTC(row['门店创建时间'])
|
email_df.loc[index, '门店创建时间'] = common_module.time_to_UTC(row['门店创建时间'])
|
||||||
|
email_df.loc[index, '门店过期时间'] = common_module.time_to_UTC(row['门店过期时间'])
|
||||||
|
|
||||||
email_data = [self.row_to_dict(row, self.field_mapping) for index, row in email_df.iterrows()]
|
email_data = [self.row_to_dict(row, self.field_mapping) for index, row in email_df.iterrows()]
|
||||||
new_email_data = {'api_key': "673457d6837e60a418e0e56b",
|
new_email_data = {'api_key': "673457d6837e60a418e0e56b",
|
||||||
@@ -361,7 +364,7 @@ class EmailProcessor:
|
|||||||
return
|
return
|
||||||
|
|
||||||
logger.info("邮件获取完成,开始处理数据")
|
logger.info("邮件获取完成,开始处理数据")
|
||||||
email_df = processor.update_email()
|
email_df = processor.update_email() # 发送到简道云
|
||||||
processor.up_to_BI(email_df) # 发送到BI
|
processor.up_to_BI(email_df) # 发送到BI
|
||||||
common_module.send_task_status(task_start_time, "海外邮件推送")
|
common_module.send_task_status(task_start_time, "海外邮件推送")
|
||||||
logger.info("海外邮件推送任务完成")
|
logger.info("海外邮件推送任务完成")
|
||||||
|
|||||||
@@ -1,16 +1,11 @@
|
|||||||
import mysql.connector
|
import mysql.connector
|
||||||
from mysql.connector import Error
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import pandas as pd
|
|
||||||
from yd_api import YDAPI
|
from yd_api import YDAPI
|
||||||
from api import API
|
from api import API
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
from tqdm import tqdm
|
from datetime import datetime
|
||||||
import time
|
|
||||||
from datetime import datetime, timedelta
|
|
||||||
from config import Config
|
from config import Config
|
||||||
from back_ground_module import CommonModule
|
from back_ground_module import CommonModule
|
||||||
import logging
|
|
||||||
from log_config import configure_task_logger, configure_error_task_logger
|
from log_config import configure_task_logger, configure_error_task_logger
|
||||||
import mysql.connector
|
import mysql.connector
|
||||||
from mysql.connector import Error
|
from mysql.connector import Error
|
||||||
|
|||||||
+8
-8
@@ -257,8 +257,8 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-10-27T06:50:20.870562Z",
|
"end_time": "2025-10-31T01:47:00.303760Z",
|
||||||
"start_time": "2025-10-27T06:50:20.631342Z"
|
"start_time": "2025-10-31T01:46:58.373023Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -274,10 +274,10 @@
|
|||||||
" } # 衡时数据库链接配置-mysql\n",
|
" } # 衡时数据库链接配置-mysql\n",
|
||||||
"# table_name = \"new_dealer_service_order_to_bi\" # 替换为你的实际表名\n",
|
"# table_name = \"new_dealer_service_order_to_bi\" # 替换为你的实际表名\n",
|
||||||
"\n",
|
"\n",
|
||||||
"table_name = \"non_standard_performance_to_BI\"\n",
|
"table_name = \"thailand_store_data_email\"\n",
|
||||||
"column_name = \"业绩分类\"\n",
|
"column_name = \"门店过期时间\"\n",
|
||||||
"new_column_type = \"VARCHAR(255)\" # 目标数据类型\n",
|
"# new_column_type = \"VARCHAR(255)\" # 目标数据类型\n",
|
||||||
"# new_column_type = \"DATETIME\" # 目标数据类型\n",
|
"new_column_type = \"DATETIME\" # 目标数据类型\n",
|
||||||
"\n",
|
"\n",
|
||||||
"try:\n",
|
"try:\n",
|
||||||
" # 连接数据库\n",
|
" # 连接数据库\n",
|
||||||
@@ -336,12 +336,12 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"✅ 成功添加字段: `业绩分类`\n",
|
"✅ 成功添加字段: `门店过期时间`\n",
|
||||||
"数据库连接已关闭\n"
|
"数据库连接已关闭\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"execution_count": 5
|
"execution_count": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
|
|||||||
Reference in New Issue
Block a user