更新20260201-1
This commit is contained in:
@@ -26,28 +26,45 @@ from ..utils.app_settings import app_settings
|
||||
from ..workers.task_worker import TaskWorker
|
||||
|
||||
|
||||
# 可调度的任务列表(包含所有 ODS 任务 + DWD/质量检查任务)
|
||||
SCHEDULABLE_TASKS = [
|
||||
# ODS 数据抓取任务(与 task_panel.AUTO_UPDATE_TASKS 保持一致)
|
||||
("ODS_PAYMENT", "支付流水"),
|
||||
("ODS_MEMBER", "会员档案"),
|
||||
("ODS_MEMBER_CARD", "会员储值卡"),
|
||||
("ODS_MEMBER_BALANCE", "会员余额变动"),
|
||||
("ODS_SETTLEMENT_RECORDS", "结账记录"),
|
||||
("ODS_TABLE_USE", "台费计费流水"),
|
||||
("ODS_ASSISTANT_ACCOUNT", "助教账号"),
|
||||
("ODS_ASSISTANT_LEDGER", "助教流水"),
|
||||
("ODS_ASSISTANT_ABOLISH", "助教作废"),
|
||||
("ODS_REFUND", "退款流水"),
|
||||
("ODS_PLATFORM_COUPON", "平台券核销"),
|
||||
("ODS_RECHARGE_SETTLE", "充值结算"),
|
||||
("ODS_SETTLEMENT_TICKET", "结账小票"),
|
||||
# DWD 和质量检查任务
|
||||
("DWD_LOAD_FROM_ODS", "ODS→DWD 装载"),
|
||||
("DWD_QUALITY_CHECK", "DWD 质量检查"),
|
||||
("DATA_INTEGRITY_CHECK", "数据完整性检查"),
|
||||
("CHECK_CUTOFF", "检查 Cutoff"),
|
||||
]
|
||||
# 动态获取可调度的任务列表
|
||||
def _get_schedulable_tasks():
|
||||
"""从任务注册表动态获取可调度任务列表"""
|
||||
try:
|
||||
from ..models.task_registry import task_registry
|
||||
tasks = []
|
||||
# 添加所有 ODS 任务
|
||||
for task_def in task_registry.get_ods_tasks():
|
||||
tasks.append((task_def.code, task_def.name))
|
||||
# 添加非 ODS 任务(排除 Schema 初始化和手工灌入)
|
||||
exclude_codes = {"INIT_ODS_SCHEMA", "INIT_DWD_SCHEMA", "INIT_DWS_SCHEMA", "MANUAL_INGEST"}
|
||||
for task_def in task_registry.get_non_ods_tasks():
|
||||
if task_def.code not in exclude_codes:
|
||||
tasks.append((task_def.code, task_def.name))
|
||||
return tasks
|
||||
except ImportError:
|
||||
# 回退到静态列表
|
||||
return [
|
||||
("ODS_PAYMENT", "支付流水"),
|
||||
("ODS_MEMBER", "会员档案"),
|
||||
("ODS_MEMBER_CARD", "会员储值卡"),
|
||||
("ODS_MEMBER_BALANCE", "会员余额变动"),
|
||||
("ODS_SETTLEMENT_RECORDS", "结账记录"),
|
||||
("ODS_TABLE_USE", "台费计费流水"),
|
||||
("ODS_ASSISTANT_ACCOUNT", "助教账号"),
|
||||
("ODS_ASSISTANT_LEDGER", "助教流水"),
|
||||
("ODS_ASSISTANT_ABOLISH", "助教作废"),
|
||||
("ODS_REFUND", "退款流水"),
|
||||
("ODS_PLATFORM_COUPON", "平台券核销"),
|
||||
("ODS_RECHARGE_SETTLE", "充值结算"),
|
||||
("ODS_SETTLEMENT_TICKET", "结账小票"),
|
||||
("DWD_LOAD_FROM_ODS", "ODS→DWD 装载"),
|
||||
("DWD_QUALITY_CHECK", "DWD 质量检查"),
|
||||
("DATA_INTEGRITY_CHECK", "数据完整性检查"),
|
||||
("CHECK_CUTOFF", "检查 Cutoff"),
|
||||
]
|
||||
|
||||
|
||||
SCHEDULABLE_TASKS = _get_schedulable_tasks()
|
||||
|
||||
|
||||
class TaskLogDialog(QDialog):
|
||||
@@ -1584,6 +1601,7 @@ class TaskManager(QWidget):
|
||||
|
||||
# 统计关键数据
|
||||
total_inserted = 0
|
||||
total_updated = 0
|
||||
total_missing = 0
|
||||
total_records = 0
|
||||
|
||||
@@ -1596,11 +1614,30 @@ class TaskManager(QWidget):
|
||||
import json
|
||||
stats_str = match.group(1).replace("'", '"')
|
||||
stats = json.loads(stats_str)
|
||||
|
||||
|
||||
if 'tables' in stats:
|
||||
|
||||
for tbl in stats['tables']:
|
||||
inserted = tbl.get('inserted', 0)
|
||||
processed = tbl.get('processed', 0)
|
||||
total_inserted += inserted + processed
|
||||
|
||||
inserted = int(tbl.get('inserted', 0) or 0)
|
||||
|
||||
updated = int(tbl.get('updated', 0) or 0)
|
||||
|
||||
processed = int(tbl.get('processed', 0) or 0)
|
||||
|
||||
has_new_counts = ('inserted' in tbl) or ('updated' in tbl)
|
||||
|
||||
if has_new_counts:
|
||||
|
||||
total_inserted += inserted
|
||||
|
||||
total_updated += updated
|
||||
|
||||
else:
|
||||
|
||||
total_inserted += inserted + processed
|
||||
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
@@ -1622,8 +1659,11 @@ class TaskManager(QWidget):
|
||||
total_records += int(match.group(1))
|
||||
|
||||
# 构建摘要
|
||||
if total_inserted > 0:
|
||||
summary_parts.append(f"处理 {total_inserted} 条")
|
||||
if total_inserted > 0 or total_updated > 0:
|
||||
if total_updated > 0:
|
||||
summary_parts.append(f"?? {total_inserted} ?, ?? {total_updated} ?")
|
||||
else:
|
||||
summary_parts.append(f"?? {total_inserted} ?")
|
||||
|
||||
if total_records > 0:
|
||||
if total_missing > 0:
|
||||
|
||||
Reference in New Issue
Block a user