# 数据资源盘点系统 - 开发工作计划 ## 📋 项目概述 本文档详细说明了数据资源盘点系统的开发工作计划,包括 AI 后端接口对接、基础后端服务开发以及前端功能实现。 **项目目标**:实现完整的数据资源盘点功能,包括数据导入、AI 智能分析、场景挖掘和报告生成。 --- ## 🔍 现状分析 ### 1. AI 后端接口情况(finyx_data_ai_backend) #### ✅ 已实现接口 - `/api/v1/inventory/asset-detail` - 数据资产详情生成接口 - `/api/v1/delivery/generate-report` - 完整报告生成接口 - `/api/v1/delivery/export-report-pdf` - 导出报告 PDF 接口 - `/api/v1/common/health` - 健康检查 - `/api/v1/common/version` - 版本信息 #### ⏳ 待实现接口 - `/api/v1/inventory/parse-document` - 文档解析接口(方案一) - `/api/v1/inventory/parse-sql-result` - SQL 结果解析接口(方案二) - `/api/v1/inventory/parse-business-tables` - 业务表解析接口(方案三) - `/api/v1/inventory/ai-analyze` - 数据资产智能识别接口(核心) - `/api/v1/value/scenario-recommendation` - 潜在场景推荐接口 - `/api/v1/value/scenario-optimization` - 存量场景优化建议接口 ### 2. 前端功能情况(finyx_data_frontend) #### 已实现功能 - 项目列表管理(ProjectListView.vue) - 项目作业流程(EngagementView.vue) - 步骤一:上传数据资源表(InventoryStep.vue) - 方案一:已有文档导入 - 方案二:IT 脚本提取 - 方案三:业务关键表导入 - 步骤二:背景调研(ContextStep.vue) - 步骤三:识别场景(ValueStep.vue) - 步骤四:盘点报告(DeliveryStep.vue) - 数据资产详情页(DataAssetDetail.vue) #### 需要对接的 API - 项目 CRUD 接口 - 文件上传接口 - 数据解析接口(调用 AI 后端) - AI 分析接口(调用 AI 后端) - 场景推荐接口(调用 AI 后端) - 报告生成接口(调用 AI 后端) ### 3. 基础后端情况(finyx_data_backend) **当前状态**:目录存在但为空,需要从零开始创建。 **需要实现的功能**: - 项目管理系统(CRUD) - 文件上传和管理 - 与 AI 后端的接口代理/转发 - 数据持久化(数据库) - 用户认证和权限管理(可选) --- ## 🎯 开发计划 ### 阶段一:基础架构搭建(预计 3-5 天) #### 1.1 项目初始化 - [ ] 创建 Python 项目结构(FastAPI) - [ ] 配置依赖管理(requirements.txt) - [ ] 设置环境变量配置(.env) - [ ] 配置日志系统 - [ ] 配置数据库连接(PostgreSQL/MySQL) #### 1.2 数据库设计 - [ ] 设计项目表(projects) - id, name, client, status, progress, owner, created_at, updated_at - [ ] 设计文件表(files) - id, project_id, file_name, file_path, file_type, file_size, upload_time - [ ] 设计数据资产表(data_assets) - id, project_id, raw_name, ai_name, description, confidence, created_at - [ ] 设计字段表(fields) - id, asset_id, raw_name, ai_name, type, pii_type, is_important, confidence - [ ] 设计场景表(scenarios) - id, project_id, name, type, description, recommendation_index, selected - [ ] 设计背景调研表(context_surveys) - id, project_id, company_description, industry, data_scale, data_sources, platform_description #### 1.3 基础服务层 - [ ] 实现数据库连接和会话管理 - [ ] 实现通用 CRUD 服务基类 - [ ] 实现文件上传服务 - [ ] 实现 AI 后端客户端(HTTP 客户端封装) --- ### 阶段二:项目管理和文件上传(预计 3-4 天) #### 2.1 项目管理接口 - [ ] `POST /api/v1/projects` - 创建项目 - [ ] `GET /api/v1/projects` - 获取项目列表(支持分页、搜索) - [ ] `GET /api/v1/projects/{id}` - 获取项目详情 - [ ] `PUT /api/v1/projects/{id}` - 更新项目 - [ ] `DELETE /api/v1/projects/{id}` - 删除项目 - [ ] `GET /api/v1/projects/{id}/progress` - 获取项目进度 #### 2.2 文件上传接口 - [ ] `POST /api/v1/projects/{id}/files/upload` - 上传文件 - 支持多文件上传 - 文件类型验证(Excel, Word, PDF, CSV) - 文件大小限制(50MB) - 文件存储路径管理 - [ ] `GET /api/v1/projects/{id}/files` - 获取项目文件列表 - [ ] `DELETE /api/v1/files/{id}` - 删除文件 - [ ] `GET /api/v1/files/{id}/download` - 下载文件 --- ### 阶段三:数据解析接口对接(预计 5-7 天) #### 3.1 文档解析接口(方案一) - [ ] 实现 `POST /api/v1/inventory/parse-document` 代理接口 - 接收前端上传的文件 - 调用 AI 后端 `/api/v1/inventory/parse-document` - 保存解析结果到数据库 - 返回解析结果给前端 #### 3.2 SQL 结果解析接口(方案二) - [ ] 实现 `POST /api/v1/inventory/parse-sql-result` 代理接口 - 接收前端上传的 SQL 执行结果文件(Excel/CSV) - 调用 AI 后端 `/api/v1/inventory/parse-sql-result` - 保存解析结果到数据库 - 返回解析结果给前端 #### 3.3 业务表解析接口(方案三) - [ ] 实现 `POST /api/v1/inventory/parse-business-tables` 代理接口 - 接收前端批量上传的业务表文件 - 调用 AI 后端 `/api/v1/inventory/parse-business-tables` - 保存解析结果到数据库 - 返回解析结果给前端 **注意**:此阶段需要 AI 后端先实现对应的解析接口。 --- ### 阶段四:AI 智能分析接口对接(预计 5-7 天) #### 4.1 数据资产智能识别接口 - [ ] 实现 `POST /api/v1/inventory/ai-analyze` 代理接口 - 接收前端提交的表和字段数据 - 调用 AI 后端 `/api/v1/inventory/ai-analyze` - 保存 AI 识别结果到数据库 - 返回识别结果给前端(包含 PII 识别、重要数据识别、置信度等) #### 4.2 数据资产详情生成接口 - [ ] 实现 `POST /api/v1/inventory/asset-detail` 代理接口 - 接收资产 ID 或资产信息 - 调用 AI 后端 `/api/v1/inventory/asset-detail` - 缓存生成的详情内容 - 返回详情数据给前端 --- ### 阶段五:场景挖掘接口对接(预计 4-6 天) #### 5.1 背景调研数据保存 - [ ] 实现 `POST /api/v1/projects/{id}/context` - 保存背景调研数据 - [ ] 实现 `GET /api/v1/projects/{id}/context` - 获取背景调研数据 #### 5.2 潜在场景推荐接口 - [ ] 实现 `POST /api/v1/value/scenario-recommendation` 代理接口 - 接收项目 ID 或背景调研数据 - 调用 AI 后端 `/api/v1/value/scenario-recommendation` - 保存推荐场景到数据库 - 返回推荐场景列表给前端 #### 5.3 存量场景优化建议接口 - [ ] 实现 `POST /api/v1/value/scenario-optimization` 代理接口 - 接收存量场景列表 - 调用 AI 后端 `/api/v1/value/scenario-optimization` - 保存优化建议 - 返回优化建议给前端 #### 5.4 场景管理接口 - [ ] `POST /api/v1/projects/{id}/scenarios/select` - 选择场景 - [ ] `GET /api/v1/projects/{id}/scenarios` - 获取项目场景列表 - [ ] `PUT /api/v1/scenarios/{id}` - 更新场景信息 --- ### 阶段六:报告生成接口对接(预计 3-4 天) #### 6.1 完整报告生成接口 - [ ] 实现 `POST /api/v1/delivery/generate-report` 代理接口 - 接收项目 ID 或报告数据 - 调用 AI 后端 `/api/v1/delivery/generate-report` - 保存报告内容到数据库 - 返回报告数据给前端 #### 6.2 报告导出接口 - [ ] 实现 `POST /api/v1/delivery/export-report-pdf` 代理接口 - 接收报告 ID 或报告数据 - 调用 AI 后端 `/api/v1/delivery/export-report-pdf` - 返回 PDF 文件流给前端 #### 6.3 报告管理接口 - [ ] `GET /api/v1/projects/{id}/report` - 获取项目报告 - [ ] `POST /api/v1/projects/{id}/report/regenerate` - 重新生成报告 --- ### 阶段七:前端接口对接(预计 3-5 天) #### 7.1 创建 API 客户端 - [ ] 在 `src/api/` 目录下创建 `inventory.ts` - 项目管理 API - 文件上传 API - 数据解析 API - AI 分析 API - [ ] 在 `src/api/` 目录下创建 `scenario.ts` - 场景推荐 API - 场景优化 API - 场景管理 API - [ ] 在 `src/api/` 目录下创建 `report.ts` - 报告生成 API - 报告导出 API #### 7.2 更新前端组件 - [ ] 更新 `ProjectListView.vue` - 对接项目列表 API - [ ] 更新 `InventoryStep.vue` - 对接文件上传和解析 API - [ ] 更新 `ContextStep.vue` - 对接背景调研保存 API - [ ] 更新 `ValueStep.vue` - 对接场景推荐 API - [ ] 更新 `DeliveryStep.vue` - 对接报告生成 API - [ ] 更新 `DataAssetDetail.vue` - 对接资产详情 API --- ### 阶段八:测试和优化(预计 3-4 天) #### 8.1 单元测试 - [ ] 编写后端服务层单元测试 - [ ] 编写 API 接口单元测试 - [ ] 编写前端组件单元测试 #### 8.2 集成测试 - [ ] 测试完整的数据导入流程 - [ ] 测试 AI 分析流程 - [ ] 测试场景推荐流程 - [ ] 测试报告生成流程 #### 8.3 性能优化 - [ ] 优化数据库查询(索引、查询优化) - [ ] 实现接口缓存(Redis) - [ ] 优化文件上传性能 - [ ] 优化前端加载性能 #### 8.4 错误处理和日志 - [ ] 完善错误处理机制 - [ ] 添加详细的日志记录 - [ ] 实现错误监控和告警 --- ## 📁 目录结构设计 ### finyx_data_backend 目录结构 ``` finyx_data_backend/ ├── app/ │ ├── __init__.py │ ├── main.py # FastAPI 应用入口 │ ├── api/ # API 路由 │ │ ├── __init__.py │ │ └── v1/ │ │ ├── __init__.py │ │ ├── projects.py # 项目管理接口 │ │ ├── files.py # 文件管理接口 │ │ ├── inventory.py # 数据盘点接口(代理 AI 后端) │ │ ├── scenario.py # 场景挖掘接口(代理 AI 后端) │ │ └── report.py # 报告生成接口(代理 AI 后端) │ ├── core/ # 核心配置 │ │ ├── __init__.py │ │ ├── config.py # 配置管理 │ │ ├── database.py # 数据库连接 │ │ ├── exceptions.py # 异常定义 │ │ └── response.py # 响应格式 │ ├── models/ # 数据库模型(SQLAlchemy) │ │ ├── __init__.py │ │ ├── project.py │ │ ├── file.py │ │ ├── data_asset.py │ │ ├── field.py │ │ ├── scenario.py │ │ └── context_survey.py │ ├── schemas/ # Pydantic 模型 │ │ ├── __init__.py │ │ ├── project.py │ │ ├── file.py │ │ ├── inventory.py │ │ ├── scenario.py │ │ └── report.py │ ├── services/ # 业务逻辑层 │ │ ├── __init__.py │ │ ├── project_service.py │ │ ├── file_service.py │ │ ├── ai_client.py # AI 后端客户端 │ │ └── inventory_service.py │ └── utils/ # 工具函数 │ ├── __init__.py │ ├── logger.py │ └── file_handler.py ├── tests/ # 测试目录 │ ├── __init__.py │ ├── test_projects.py │ ├── test_files.py │ └── test_inventory.py ├── uploads/ # 上传文件目录 ├── logs/ # 日志目录 ├── .env # 环境变量(不提交到 Git) ├── .env.example # 环境变量示例 ├── requirements.txt # Python 依赖 ├── README.md # 项目说明 └── docker-compose.yml # Docker 编排(可选) ``` --- ## 🔧 技术栈 ### 后端技术栈 - **框架**:FastAPI - **数据库**:PostgreSQL / MySQL - **ORM**:SQLAlchemy - **数据验证**:Pydantic - **HTTP 客户端**:httpx / aiohttp(用于调用 AI 后端) - **文件处理**:python-multipart - **日志**:loguru ### AI 后端对接 - **协议**:HTTP REST API - **格式**:JSON - **超时设置**:根据接口复杂度设置(AI 分析接口可能需要 30-60 秒) --- ## 📝 接口设计规范 ### 统一响应格式 ```json { "success": true, "code": 200, "message": "操作成功", "data": { // 具体数据 } } ``` ### 错误响应格式 ```json { "success": false, "code": 400, "message": "错误信息", "error": { "error_code": "ERROR_CODE", "error_detail": "详细错误信息" } } ``` ### 分页响应格式 ```json { "success": true, "code": 200, "message": "获取成功", "data": { "items": [], "total": 100, "page": 1, "page_size": 20, "total_pages": 5 } } ``` --- ## 🔐 环境变量配置 ### 基础后端环境变量 ```bash # 应用配置 APP_NAME=Finyx Data Backend APP_VERSION=1.0.0 DEBUG=true HOST=0.0.0.0 PORT=8001 # 数据库配置 DATABASE_URL=postgresql://user:password@localhost:5432/finyx_data # 或 MySQL # DATABASE_URL=mysql+pymysql://user:password@localhost:3306/finyx_data # AI 后端配置 AI_BACKEND_URL=http://localhost:8000 AI_BACKEND_TIMEOUT=60 # 文件上传配置 UPLOAD_DIR=./uploads MAX_FILE_SIZE=52428800 # 50MB ALLOWED_EXTENSIONS=xlsx,xls,doc,docx,pdf,csv # Redis 配置(可选,用于缓存) REDIS_HOST=localhost REDIS_PORT=6379 REDIS_DB=0 REDIS_PASSWORD= # 日志配置 LOG_LEVEL=INFO LOG_DIR=./logs ``` --- ## 🚀 开发步骤 ### 第一步:创建基础后端项目 1. 在 `finyx_data_backend` 目录下创建项目结构 2. 初始化 Python 虚拟环境 3. 安装依赖包 4. 配置数据库 5. 创建基础模型和接口 ### 第二步:实现项目管理功能 1. 创建项目模型和 Schema 2. 实现项目 CRUD 接口 3. 测试项目接口 ### 第三步:实现文件上传功能 1. 创建文件模型 2. 实现文件上传接口 3. 实现文件管理接口 4. 测试文件上传 ### 第四步:对接 AI 后端接口 1. 创建 AI 客户端服务 2. 实现数据解析接口代理 3. 实现 AI 分析接口代理 4. 实现场景推荐接口代理 5. 实现报告生成接口代理 ### 第五步:前端接口对接 1. 创建前端 API 客户端 2. 更新前端组件调用 API 3. 处理错误和加载状态 4. 测试完整流程 --- ## 📊 开发时间估算 | 阶段 | 预计时间 | 优先级 | |------|---------|--------| | 阶段一:基础架构搭建 | 3-5 天 | 高 | | 阶段二:项目管理和文件上传 | 3-4 天 | 高 | | 阶段三:数据解析接口对接 | 5-7 天 | 高 | | 阶段四:AI 智能分析接口对接 | 5-7 天 | 高 | | 阶段五:场景挖掘接口对接 | 4-6 天 | 中 | | 阶段六:报告生成接口对接 | 3-4 天 | 中 | | 阶段七:前端接口对接 | 3-5 天 | 高 | | 阶段八:测试和优化 | 3-4 天 | 中 | | **总计** | **29-42 天** | - | --- ## ⚠️ 注意事项 1. **AI 后端接口依赖**:部分功能需要等待 AI 后端接口实现完成 2. **文件存储**:需要考虑文件存储方案(本地存储或对象存储) 3. **性能优化**:AI 接口调用可能较慢,需要考虑异步处理和进度反馈 4. **错误处理**:需要完善的错误处理和用户友好的错误提示 5. **数据一致性**:确保基础后端和 AI 后端的数据一致性 6. **安全性**:文件上传需要验证文件类型和大小,防止恶意文件 --- ## 📞 联系方式 如有问题或需要调整计划,请联系开发团队。 --- **文档版本**:v1.0.0 **创建日期**:2026-01-10 **最后更新**:2026-01-10