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
+36 -22
View File
@@ -1,16 +1,20 @@
from yd_api import YDAPI
import pandas as pd
from tqdm import tqdm
import hashlib
from datetime import datetime, timedelta
import pandas as pd
import mysql.connector
from mysql.connector import Error
import json
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
# 获取已经配置好的常规日志记录器
logger = configure_task_logger()
# 获取已经配置好的错误任务日志记录器
error_task_logger = configure_error_task_logger()
common_module = CommonModule()
# 初始化 API 实例和 Token
@@ -44,8 +48,6 @@ class TimeConsumingProcess():
PAGES_two = form_data_two.get('totalCount') // 100 + 1
# # 手动控制小于3w
# PAGES_two = 290
for a in tqdm(range(1, PAGES_two + 1)):
try:
form_data_two = api_instance.read_processes_instances(
@@ -55,12 +57,12 @@ class TimeConsumingProcess():
)
all_process_list = all_process_list + form_data_two.get("data")
except Exception as e:
print(f"Error fetching page {a}: {e}")
logger.warning(f"获取流程实例数据时出错: {e}")
continue
return all_process_list
def extract_approval_records(self, process_instances):
def extract_approval_records(self, process_instances: list):
"""提取每条流程的审批记录"""
all_data_list = []
for data in tqdm(process_instances, desc="处理流程实例"):
@@ -332,7 +334,6 @@ class TimeConsumingProcess():
# 4. 额外检查:确保时间格式正确
df = df[df['审批时间'].str.match(r'^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$') | df['审批时间'].isnull()]
# 生成插入语句
try:
columns = ', '.join(df.columns)
@@ -358,28 +359,41 @@ class TimeConsumingProcess():
def main(self):
task_start_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# Step 1: 获取流程实例
process_instances = self.fetch_process_data()
try:
logger.info("开始执行宜搭流程耗时写入BI任务。")
# Step 1: 获取流程实例
process_instances = self.fetch_process_data()
logger.info("获取流程实例成功。")
# Step 2: 提取审批记录
all_data_list = self.extract_approval_records(process_instances)
# Step 2: 提取审批记录
all_data_list = self.extract_approval_records(process_instances)
logger.info("提取审批记录成功。")
# Step 3: 按 '提交申请' 分组
result_groups = self.group_by_process(all_data_list)
# Step 3: 按 '提交申请' 分组
result_groups = self.group_by_process(all_data_list)
logger.info("'提交申请' 分组成功。")
# Step 4: 转换为宽表
df_final, max_steps = self.transform_to_wide_table(result_groups)
# Step 4: 转换为宽表
df_final, max_steps = self.transform_to_wide_table(result_groups)
logger.info("转换为宽表成功。")
# Step 5: 对流程进行分类并保存结果
df_final1 = self.classify_flows(df_final, max_steps)
# Step 5: 对流程进行分类并保存结果
df_final1 = self.classify_flows(df_final, max_steps)
logger.info("对流程进行分类并保存结果成功。")
# Step 6: 耗时计算
df_final2 = self.time_calculate(df_final1)
# Step 6: 耗时计算
df_final2 = self.time_calculate(df_final1)
logger.info("耗时计算成功。")
# Step 7: 向BI写入数据
self.write_to_bi(df_final2)
# Step 7: 向BI写入数据
self.write_to_bi(df_final2)
logger.info("向BI写入数据成功。")
common_module.send_task_status(task_start_time, "宜搭流程耗时写入BI")
common_module.send_task_status(task_start_time, "宜搭流程耗时写入BI")
logger.info("宜搭流程耗时写入BI任务执行成功。")
except Exception as e:
error_task_logger.error(f"宜搭流程耗时写入BI执行出错: {e}")
common_module.send_task_error(task_start_time, "宜搭流程耗时写入BI", str(e))
if __name__ == '__main__':