Files
DashBoard/openspec/changes/archive/2026-02-04-excel-query-advanced-conditions/tasks.md
beabigegg dd0ae3ee54 feat: Excel 批次查詢新增進階條件功能
- 新增欄位類型偵測:自動識別 Excel 與 Oracle 欄位類型並顯示類型標籤
- 新增 LIKE 模糊查詢:支援包含/開頭/結尾三種模式,上限 100 個關鍵字
- 新增日期範圍篩選:支援起始/結束日期,範圍限制 365 天
- 新增大型資料表效能警告:超過 1000 萬筆時提示使用日期範圍縮小查詢
- 新增 /execute-advanced API 端點整合所有進階條件
- 新增 /table-metadata 端點取得欄位類型資訊
- 新增完整測試套件:76 個測試(單元/整合/E2E)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 14:05:19 +08:00

2.6 KiB
Raw Blame History

1. 後端:欄位 Metadata 功能

  • 1.1 在 database.py 新增 get_table_column_metadata() 函式,查詢 ALL_TAB_COLUMNS 取得欄位類型資訊
  • 1.2 在 excel_query_service.py 新增 detect_excel_column_type() 函式,分析 Excel 欄位類型
  • 1.3 在 excel_query_routes.py 新增 POST /api/excel-query/table-metadata 端點

2. 後端:日期範圍查詢功能

  • 2.1 在 excel_query_service.py 新增 build_date_range_condition() 函式,生成 BETWEEN SQL 條件
  • 2.2 修改 TABLES_CONFIG 結構確認 time_field 欄位可被正確讀取

3. 後端LIKE 模糊查詢功能

  • 3.1 在 excel_query_service.py 新增 build_like_condition() 函式,支援 contains/prefix/suffix 三種模式
  • 3.2 在 excel_query_service.py 新增 escape_like_pattern() 函式,處理特殊字元 %_ 的跳脫
  • 3.3 新增 LIKE 查詢關鍵字數量驗證(上限 100 個)

4. 後端:進階查詢 API

  • 4.1 在 excel_query_routes.py 新增 POST /api/excel-query/execute-advanced 端點
  • 4.2 整合 IN、LIKE、日期範圍三種條件的組合查詢邏輯
  • 4.3 新增大型資料表 LIKE 查詢效能警告機制

5. 前端:欄位類型顯示

  • 5.1 修改 excel_query.html,在 Excel 欄位選擇下拉選單加入類型標籤
  • 5.2 修改 excel_query.html,在 Oracle 欄位選擇下拉選單加入類型標籤
  • 5.3 新增欄位類型不相符警告訊息

6. 前端:進階條件 UI

  • 6.1 在 Step 4 區塊新增摺疊式「進階條件」面板
  • 6.2 新增查詢類型選擇器(完全符合 / 包含 / 開頭符合 / 結尾符合)
  • 6.3 新增日期範圍選擇器(起始日期、結束日期)
  • 6.4 新增日期範圍驗證邏輯start <= end, range <= 365 days
  • 6.5 新增大型資料表 LIKE 查詢效能警告 UI

7. 前端API 整合

  • 7.1 修改 loadTableColumns() 改用 /table-metadata 端點取得欄位資訊
  • 7.2 新增 executeAdvancedQuery() 函式呼叫 /execute-advanced 端點
  • 7.3 修改 validateQuery() 加入進階條件驗證邏輯

8. 測試與驗證

  • 8.1 測試日期範圍查詢功能(各種日期組合)
  • 8.2 測試 LIKE 查詢功能(三種模式、特殊字元)
  • 8.3 測試欄位類型偵測準確度
  • 8.4 測試大型資料表效能警告觸發
  • 8.5 驗證向後相容性(原有 /execute 端點仍正常運作)

注意:上述測試項目需在實際環境中手動驗證。程式碼已通過語法檢查。