tasks.md 7.0 KB

任务清单:report-datasource-dataset

status: completed created: 2026-05-11

任务总览

Task 名称 状态 优先级
Task 1 新建平台数据插件与数据库表 pending P0
Task 2 数据连接管理 pending P0
Task 3 数据集管理 pending P0
Task 4 查询执行器 pending P0
Task 5 admin-ui 管理页面 pending P0
Task 6 report-ui 数据集模式 pending P0
Task 7 联调与回归 pending P0

Task 1: 新建平台数据插件与数据库表

目标: 新建 forge-plugin-data 模块,建立三张数据表实体、Mapper、XML、Service 基础 CRUD。

状态: completed

范围:

  • 新建 forge/forge-framework/forge-plugin-parent/forge-plugin-data 模块
  • 创建 pom.xml,依赖 forge-starter-core、forge-starter-web、forge-starter-orm、forge-starter-cache、forge-starter-crypto
  • 修改 forge-plugin-parent/pom.xml 增加模块
  • 修改 forge-admin-server/pom.xml 增加依赖
  • 修改 forge-report-server/pom.xml 增加依赖
  • 创建数据库表 SQL 文件(ai_report_data_connectionai_report_data_datasetai_report_data_dataset_field
  • 创建 Entity 类(DataConnectionDataDatasetDataDatasetField
  • 创建 Mapper 接口和 XML(基础 CRUD)
  • 创建 Service 接口和实现(基础 CRUD)

验证:

cd forge && mvn -pl forge-framework/forge-plugin-parent/forge-plugin-data,forge-admin-server,forge-report-server -am compile -DskipTests

产出:

  • forge-plugin-data 模块结构
  • 三张表 SQL
  • Entity/Mapper/Service 基础框架

状态: pending


Task 2: 数据连接管理

目标: 实现数据连接 CRUD、测试连接、元数据查询接口。

状态: completed

范围:

  • Controller:DataConnectionController
    • 分页查询 GET /data/connection/page
    • 列表查询 GET /data/connection/list
    • 详情查询 GET /data/connection/:id
    • 新增 POST /data/connection
    • 修改 PUT /data/connection
    • 删除 DELETE /data/connection/:id
    • 测试已保存连接 POST /data/connection/:id/test
    • 测试未保存连接 POST /data/connection/test
    • 表列表 GET /data/connection/:id/tables
    • 字段列表 GET /data/connection/:id/tables/:tableName/fields
  • Service 实现:
    • 密码加密/解密(使用统一密钥)
    • 连接详情脱敏返回(hasPassword 标记)
    • 测试连接(创建临时 DataSource 并执行 testSql)
    • 元数据查询(DatabaseMetaData 读取表和字段)
  • 支持类:
    • JdbcDataSourceProvider(连接池管理)
    • DbDialect(数据库方言抽象,首期实现 MySQL)
  • DTO/VO:
    • DataConnectionPageDTO
    • DataConnectionDetailVO
    • DataConnectionTestDTO
    • DataConnectionTableVO
    • DataConnectionFieldVO
  • 权限资源:data:connection:list/add/edit/remove/test

验证:

cd forge && mvn -pl forge-framework/forge-plugin-parent/forge-plugin-data,forge-admin-server -am compile -DskipTests

产出:

  • 数据连接管理完整接口
  • 连接测试和元数据查询能力

状态: pending


Task 3: 数据集管理

目标: 实现数据集 CRUD、字段同步、预览接口。

状态: completed

范围:

  • Controller:
    • DataDatasetController
    • 分页查询 GET /data/dataset/page
    • 列表查询 GET /data/dataset/list
    • 详情查询 GET /data/dataset/:id
    • 新增 POST /data/dataset
    • 修改 PUT /data/dataset
    • 删除 DELETE /data/dataset/:id
    • 同步字段 POST /data/dataset/:id/sync-fields
    • 字段保存 PUT /data/dataset/:id/fields
    • 预览 POST /data/dataset/:id/preview
  • Service 实现:
    • 数据集保存校验(TABLE 必须有表名,SQL 必须通过安全校验)
    • 字段同步(TABLE 从元数据读取,SQL 从预览结果推断)
    • 字段批量保存
    • 预览查询
  • DTO/VO:
    • DataDatasetPageDTO
    • DataDatasetDetailVO
    • DataDatasetSaveDTO
    • DataDatasetFieldVO
    • DataDatasetPreviewDTO
  • 权限资源:data:dataset:list/add/edit/remove/preview

验证:

cd forge && mvn -pl forge-framework/forge-plugin-parent/forge-plugin-data,forge-admin-server -am compile -DskipTests

产出:

  • 数据集管理完整接口
  • 字段同步和预览能力

状态: pending


Task 4: 查询执行器

目标: 实现 TABLE 查询构造、SQL 安全校验、参数绑定、结果转换。

状态: completed

范围:

  • Controller:
    • DataDatasetRuntimeController
    • 执行查询 POST /data/dataset/runtime/query
    • 获取元数据 GET /data/dataset/runtime/:id/metadata
  • Service 实现:
    • DataQueryExecutor
    • TABLE 查询构造(字段白名单、筛选条件、排序、分页)
    • SQL 查询执行(预编译 + 参数绑定)
    • 结果转换({ dimensions, source, total, fields }
    • 字段脱敏(HIDDEN 字段移除,MASK 字段脱敏)
  • 支持类:
    • SqlSafetyValidator(SQL 安全校验:禁止 DDL/DML、多语句、危险函数)
    • SqlParameterBinder(命名参数解析和 PreparedStatement 绑定)
    • TableQueryBuilder(TABLE 数据集 SQL 构造)
    • DatasetResultMapper(JDBC ResultSet 转换为 JSON)
  • DTO/VO:
    • DataDatasetQueryDTO
    • DataDatasetQueryResultVO
    • DataDatasetMetadataVO
  • 权限:运行时查询首期要求登录态

验证:

cd forge && mvn -pl forge-framework/forge-plugin-parent/forge-plugin-data,forge-report-server -am compile -DskipTests

产出:

  • 查询执行器完整实现
  • SQL 安全校验和参数绑定

状态: pending


Task 5: admin-ui 管理页面

目标: 新增数据连接和数据集管理页面。

范围:

  • 菜单资源:
    • 数据资产(父菜单)
    • 数据连接
    • 数据集管理
  • 页面:
    • forge-admin-ui/src/views/data/connection/index.vue(数据连接列表页)
    • forge-admin-ui/src/views/data/dataset/index.vue(数据集列表页)
    • forge-admin-ui/src/views/data/dataset/FieldConfigPanel.vue(字段配置面板)
    • forge-admin-ui/src/views/data/dataset/ParamConfigPanel.vue(参数配置面板)
    • forge-admin-ui/src/views/data/dataset/PreviewPanel.vue(预览面板)
  • API 封装:
    • forge-admin-ui/src/api/data/connection.ts
    • forge-admin-ui/src/api/data/dataset.ts
  • 组件:
    • 数据连接表单(测试连接按钮)
    • 数据集表单(TABLE/SQL 切换、字段同步)
    • 字段配置表格(批量编辑)
    • 预览面板(参数输入 + 结果表格)

验证:

source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && pnpm build

产出:

  • 数据连接管理页面
  • 数据集管理页面(含字段配置、参数配置、预览)

状态: pending


Task 6: report-ui 数据集模式

目标: 新增报表组件「数据库数据集」数据加载模式。

状态: completed


Task 7: 联调与回归

目标: 验证管理端和报表端完整流程,确保无破坏性变更。

状态: completed