• Data Governance Dev's avatar
    feat(web): 数据字典右表格字段 checkbox + column_filter 端到端 · 02de2a61
    Data Governance Dev authored
    后端
    - 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 日志
    02de2a61
index.html 105 KB