feat(web): 数据字典右表格字段 checkbox + column_filter 端到端
后端
- models.py: ConnectRequest 加 columns: list[{table_name, column_name}]
(空 = 走选中表全量字段;非空 = 仅跑用户勾选字段)
- orchestrator.py: run_governance_workflow 接 columns,构造
column_filter: set[(table, column)] 传给每个 step
- job_manager.py: _run_job 透传 columns
- step2/4/5/6: 加 column_filter 参数 + 按 (table, column) 过滤
- step7 (核心): 删除 _collect_hit_columns 关键字推断
(applies_to_fields / comment_keywords 不再用于挑选目标字段),
改为 _select_target_columns 直接返回上游 column_filter 后的字段;
run_step7_for_indicator 单值类分支去掉 has_name/has_cmt 守门
前端
- index.html: 右表格加 checkbox 列 + 全选/清空/反选 工具栏
- form.columns: Set<table||column>,勾上表时联动勾上表所有字段、
取消表时移除该表所有字段,用户手动调整不联动回表
- startJob(): Set → [{table_name, column_name}] 后提交
- 启动按钮增加 columns.size === 0 守门 + 新 alert
- disconnectDataDict / testConnection 成功 后清空 form.columns
修复
- testConnection() 不再传 Set 类型的 columns(JSON.stringify 会变 {}
导致 Pydantic 422),改为显式传空 list
- data_dict.py: 达梦环境下 ALL_TAB_COLUMNS / ALL_COL_COMMENTS 视图
可能返回 N 倍重复行(B_ZJZX 12 字段实测 78 行),Python 端按
(table_name, column_name) 兜底去重,命中时打 WARN 日志
Showing
Please register or sign in to comment