saas1.6日志更新

This commit is contained in:
z66
2025-08-14 11:55:03 +08:00
parent d5e60e9014
commit 3bffc6946b
34 changed files with 2999 additions and 2907 deletions
+27 -26
View File
@@ -8,12 +8,20 @@ from dateutil.parser import parse
from back_ground_module import CommonModule
import numpy as np
from config import Config
from log_config import configure_task_logger, configure_error_task_logger
common_module = CommonModule()
# 获取已经配置好的常规日志记录器
logger = configure_task_logger()
# 获取已经配置好的错误任务日志记录器
error_task_logger = configure_error_task_logger()
class CRMDataProcessor:
"""泰国CRM数据迁移到BI"""
def __init__(self):
"""
初始化CRM数据处理类
@@ -178,13 +186,6 @@ class CRMDataProcessor:
# 去掉前六列和后两列
df = df.iloc[:, 6:-2]
# del df["creator"]
# del df["createTime"]
# del df["updateTime"]
# del df["updater"]
# del df["deleter"]
# del df["deleteTime"]
# 生成URL
base_url = f"https://www.jiandaoyun.com/dashboard/app/{self.api_key}/form/{self.entry_id}/data/"
df['url'] = base_url + df['_id'].astype(str) + "/qr_link"
@@ -219,7 +220,7 @@ class CRMDataProcessor:
# 只保留映射后的列和URL字段
mapped_columns = list(self.id_to_name_mapping.values()) + ['url']
df = df[[col for col in mapped_columns if col in df.columns]]
#df.replace([np.nan, None, r'^\s*$'], "", regex=True, inplace=True)
# df.replace([np.nan, None, r'^\s*$'], "", regex=True, inplace=True)
# 修改替换空值的实现方式
df = df.fillna("") # 先替换NaN和None
df = df.replace(r'^\s*$', "", regex=True) # 再替换空字符串
@@ -284,9 +285,11 @@ class CRMDataProcessor:
self.connect_db()
self.cursor.execute(f"TRUNCATE TABLE {table_name}")
self.connection.commit()
print(f"成功清空表 {table_name} 中的所有数据")
logger.info(f"成功清空表 {table_name} 中的所有数据")
except Error as e:
print(f"清空表时发生错误: {e}")
error_task_logger.error(f"清空表时发生错误: {e}")
task_start_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
common_module.send_task_error(task_start_time, "简道云海外项目CRM客户档案迁移BI", str(e))
if self.connection and self.connection.is_connected():
self.connection.rollback()
raise
@@ -319,48 +322,46 @@ class CRMDataProcessor:
records = [tuple(row) for row in df.values]
self.cursor.executemany(insert_query, records)
self.connection.commit()
print(f"成功导入 {self.cursor.rowcount} 条记录到 {table_name}")
logger.info(f"成功导入 {self.cursor.rowcount} 条记录到 {table_name}")
except Error as e:
print(f"导入数据时发生错误: {e}")
error_task_logger.error(f"导入数据时发生错误: {e}")
task_start_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
common_module.send_task_error(task_start_time, "简道云海外项目CRM客户档案迁移BI", str(e))
if self.connection and self.connection.is_connected():
self.connection.rollback()
raise
finally:
self.close_db()
# # 批量插入数据
# records = [tuple(None if pd.isna(x) else x for x in row) for row in df.values]
# self.cursor.executemany(insert_query, records)
# self.connection.commit()
# print(f"成功导入 {self.cursor.rowcount} 条记录到 {table_name} 表")
# except Error as e:
# print(f"导入数据时发生错误: {e}")
# raise
# finally:
# self.close_db()
def main(self):
"""运行完整的数据处理流程"""
table_name = "jiandaoyun_crm_customer_profile"
task_start_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
try:
logger.info(f"开始处理任务")
# 获取数据
raw_data = self.fetch_crm_data()
logger.info("数据获取完成")
# 处理数据
processed_data = self.process_data(raw_data)
logger.info("数据处理完成")
# 清空表
self.clear_table(table_name)
logger.info("表清空完成")
# 导入数据
self.import_data(processed_data, table_name)
logger.info("数据导入完成")
print("数据处理流程完成")
logger.info("数据处理流程完成")
except Exception as e:
print(f"数据处理流程出错: {e}")
common_module.send_task_error(task_start_time, "简道云海外项目CRM客户档案迁移BI", str(e))
error_task_logger.error(f"任务简道云海外项目CRM客户档案迁移BI执行失败。")
raise
common_module.send_task_status(task_start_time, "简道云海外项目CRM客户档案迁移BI")