更新20260201-1
This commit is contained in:
@@ -189,28 +189,123 @@ class TaskWorker(QThread):
|
||||
|
||||
# 解析 DWD 装载统计
|
||||
if 'tables' in stats:
|
||||
total_processed = 0
|
||||
total_inserted = 0
|
||||
tables_with_data = []
|
||||
|
||||
|
||||
|
||||
total_dim_inserted = 0
|
||||
|
||||
total_dim_updated = 0
|
||||
|
||||
total_fact_inserted = 0
|
||||
|
||||
total_fact_updated = 0
|
||||
|
||||
dim_tables = [] # ?????
|
||||
|
||||
fact_tables = [] # ?????
|
||||
|
||||
|
||||
|
||||
for tbl in stats['tables']:
|
||||
|
||||
table_name = tbl.get('table', '').replace('billiards_dwd.', '')
|
||||
processed = tbl.get('processed', 0)
|
||||
inserted = tbl.get('inserted', 0)
|
||||
|
||||
if processed > 0:
|
||||
total_processed += processed
|
||||
tables_with_data.append(f"{table_name}({processed})")
|
||||
elif inserted > 0:
|
||||
total_inserted += inserted
|
||||
tables_with_data.append(f"{table_name}(+{inserted})")
|
||||
|
||||
mode = tbl.get('mode', '')
|
||||
|
||||
processed = int(tbl.get('processed', 0) or 0)
|
||||
|
||||
inserted = int(tbl.get('inserted', 0) or 0)
|
||||
|
||||
updated = int(tbl.get('updated', 0) or 0)
|
||||
|
||||
has_new_counts = ('inserted' in tbl) or ('updated' in tbl)
|
||||
|
||||
|
||||
if total_processed > 0 or total_inserted > 0:
|
||||
dwd_stats.append(f"处理维度: {total_processed}条, 新增事实: {total_inserted}条")
|
||||
if len(tables_with_data) <= 5:
|
||||
dwd_stats.append(f"涉及表: {', '.join(tables_with_data)}")
|
||||
|
||||
# ?? _ex ?????????
|
||||
|
||||
if table_name.endswith('_ex'):
|
||||
|
||||
continue
|
||||
|
||||
|
||||
|
||||
is_dim = table_name.startswith('dim_') or mode == 'SCD2'
|
||||
|
||||
if is_dim:
|
||||
|
||||
if has_new_counts:
|
||||
|
||||
total_dim_inserted += inserted
|
||||
|
||||
total_dim_updated += updated
|
||||
|
||||
if inserted or updated:
|
||||
|
||||
dim_tables.append(f"{table_name}: +{inserted}, ~{updated}")
|
||||
|
||||
elif processed > 0:
|
||||
|
||||
total_dim_updated += processed
|
||||
|
||||
dim_tables.append(f"{table_name}: {processed}")
|
||||
|
||||
else:
|
||||
dwd_stats.append(f"涉及 {len(tables_with_data)} 张表")
|
||||
|
||||
if has_new_counts:
|
||||
|
||||
total_fact_inserted += inserted
|
||||
|
||||
total_fact_updated += updated
|
||||
|
||||
if inserted or updated:
|
||||
|
||||
fact_tables.append(f"{table_name}: +{inserted}, ~{updated}")
|
||||
|
||||
elif processed > 0 or inserted > 0:
|
||||
|
||||
total_fact_inserted += inserted
|
||||
|
||||
if inserted > 0:
|
||||
|
||||
fact_tables.append(f"{table_name}: +{inserted}")
|
||||
|
||||
|
||||
|
||||
if (total_dim_inserted or total_dim_updated or total_fact_inserted or total_fact_updated):
|
||||
|
||||
dwd_stats.append(
|
||||
|
||||
f"????: {total_dim_inserted}?, ????: {total_dim_updated}?, "
|
||||
|
||||
f"????: {total_fact_inserted}?, ????: {total_fact_updated}?"
|
||||
|
||||
)
|
||||
|
||||
|
||||
|
||||
# ???????
|
||||
|
||||
if dim_tables:
|
||||
|
||||
dwd_stats.append(" ???: " + ", ".join(dim_tables))
|
||||
|
||||
|
||||
|
||||
# ???????
|
||||
|
||||
if fact_tables:
|
||||
|
||||
dwd_stats.append(" ???: " + ", ".join(fact_tables))
|
||||
|
||||
|
||||
|
||||
# 解析错误信息
|
||||
if 'errors' in stats and stats['errors']:
|
||||
for err in stats['errors']:
|
||||
err_table = err.get('table', '').replace('billiards_dwd.', '')
|
||||
err_msg = err.get('error', '')
|
||||
errors.append(f"{err_table}: {err_msg}")
|
||||
except Exception:
|
||||
pass
|
||||
continue
|
||||
@@ -263,7 +358,9 @@ class TaskWorker(QThread):
|
||||
summary_parts[-1] += f" 等{len(ods_stats)}项"
|
||||
|
||||
if dwd_stats:
|
||||
summary_parts.append("【DWD 装载】" + "; ".join(dwd_stats))
|
||||
summary_parts.append("【DWD 装载】" + dwd_stats[0]) # 第一行是汇总
|
||||
for detail in dwd_stats[1:]: # 后面是详情
|
||||
summary_parts.append(detail)
|
||||
|
||||
if integrity_stats:
|
||||
total_missing = integrity_stats.get('final_missing', integrity_stats.get('total_missing', 0))
|
||||
|
||||
Reference in New Issue
Block a user