datai/datai-scenes/datai-scene-salesforce/docs/requirements/REQ-010-8.md
Kris 2e6f087732 docs: 完成REQ-010-17和REQ-010-2的文档创建
- 完成REQ-010-17(性能优化和限流处理)的所有6个阶段
  - 创建ADR文档:0026-performance-optimization.md
  - 创建Prompt文档:027-performance-optimization.md
  - 创建会话记录:20260119-performance-optimization.md
  - 创建变更记录:20260119-performance-optimization.md
  - 创建复盘报告:20260119-performance-optimization-retro.md
  - 更新index.md和CHANGELOG.md

- 完成REQ-010-2(基础实体类和Mapper创建)的前3个阶段
  - 更新ADR文档:0011-entity-mapper-create.md
  - 创建Prompt文档:002-entity-mapper-create.md
  - 更新index.md

所有文档均按照SSOT方法论创建,包括需求定义、架构决策、提示词资产化、执行会话、变更记录和闭环复盘。
2026-01-19 10:06:09 +08:00

200 lines
7.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Requirements - 元数据部署核心功能
## 需求信息
- **需求名称**: 元数据部署核心功能
- **需求类型**: 功能需求
- **需求编号**: REQ-010-8
- **父需求**: REQ-010
- **创建日期**: 2026-01-17
- **需求版本**: v1.0.0
- **需求提出人**: 系统管理员
- **需求状态**: 待审核
## 输入引用
引用相关的 docs 文档链接:
- [REQ-010.md](REQ-010.md) - Salesforce元数据拉取和部署主需求文档
- [REQ-010-1.md](REQ-010-1.md) - 数据库表结构设计和创建
- [REQ-010-2.md](REQ-010-2.md) - 基础实体类和Mapper创建
- [REQ-010-3.md](REQ-010-3.md) - Salesforce组织配置管理
- [REQ-010-4.md](REQ-010-4.md) - 元数据任务定义管理
- [REQ-010-5.md](REQ-010-5.md) - Metadata API客户端封装
- [004-元数据部署网页资料链接地址](../reference-code/metadata/004-元数据部署网页资料链接地址) - 官方文档和开源项目参考
- [010-metadata-retrieve-deploy-sub-requirements.md](010-metadata-retrieve-deploy-sub-requirements.md) - REQ-010子需求拆分文档
- [metadata-module.md](../reference-code/com/docs/metadata-module.md) - Salesforce Metadata API 模块说明(唯一真源)
- [index.md](../reference-code/com/docs/index.md) - Salesforce SOAP API Java 客户端参考文档(唯一真源)
## Context Maps
强制列出本次需求依赖的 Canvas 文件:
- [Authentication.canvas](../Authentication.canvas) - 项目架构视觉化展示
- **相关节点**: [集成核心](node_integration_core) - 提供与Salesforce的各种连接方式
- **相关节点**: [SessionManager](node_session_manager_detail) - 会话管理,提供登录服务
## 需求目标
实现Salesforce元数据部署的核心功能使用Metadata API的deploy()方法,支持异步执行、状态轮询、部署结果解析。
## 需求描述
### 概述
本需求旨在实现Salesforce元数据部署的核心功能包括手动触发部署、异步部署执行、状态监控、部署历史记录、部署进度查询、部署取消功能等。
### 详细需求
#### 1. 手动触发部署功能
- **需求描述**: 实现手动触发部署功能
- **优先级**: 高
- **验收标准**:
- 能够成功手动触发部署
- 支持选择任务ID
- 支持选择组织配置
- 支持上传Zip文件
- 触发成功返回Job ID
- API接口符合RESTful规范
- **依赖关系**: 依赖于REQ-010-1, REQ-010-2, REQ-010-3, REQ-010-4, REQ-010-5
- **实现建议**: 使用MetadataApiClient调用deploy()方法,使用异步线程池执行部署任务
#### 2. 异步部署执行
- **需求描述**: 实现异步部署执行,避免阻塞主线程
- **优先级**: 高
- **验收标准**:
- 异步部署执行正常工作
- 使用线程池管理异步任务
- 支持并发部署
- 部署任务不阻塞系统响应
- **依赖关系**: 依赖于手动触发部署功能
- **实现建议**: 使用Spring的@Async注解或线程池实现异步执行
#### 3. 状态监控
- **需求描述**: 实现部署状态监控Pending/Processing/Success/Failed/Partial_Success
- **优先级**: 高
- **验收标准**:
- 状态监控正常工作
- 使用状态机管理部署状态
- 支持状态查询
- 状态更新及时
- **依赖关系**: 依赖于异步部署执行
- **实现建议**: 使用状态机管理部署状态,使用轮询机制检查部署状态
#### 4. 部署历史记录
- **需求描述**: 实现部署历史记录功能
- **优先级**: 高
- **验收标准**:
- 部署历史记录成功
- 支持分页查询
- 支持条件查询
- 历史记录完整
- **依赖关系**: 依赖于状态监控
- **实现建议**: 使用MyBatis Plus的BaseMapper实现历史记录查询
#### 5. 部署进度查询
- **需求描述**: 实现部署进度查询功能
- **优先级**: 高
- **验收标准**:
- 部署进度查询成功
- 支持实时进度查询
- 进度信息准确
- 支持进度百分比显示
- **依赖关系**: 依赖于状态监控
- **实现建议**: 使用轮询机制获取进度,使用缓存提高查询性能
#### 6. 部署取消功能
- **需求描述**: 实现部署取消功能
- **优先级**: 高
- **验收标准**:
- 部署取消功能正常工作
- 支持取消正在进行的部署任务
- 取消后资源正确释放
- 取消状态更新及时
- **依赖关系**: 依赖于异步部署执行
- **实现建议**: 使用Future.cancel()取消异步任务,使用状态机管理取消状态
#### 7. 部署结果解析
- **需求描述**: 实现部署结果解析,提取错误信息和代码覆盖率
- **优先级**: 高
- **验收标准**:
- 部署结果解析成功
- 错误信息提取正确
- 代码覆盖率提取正确
- 支持多种部署状态
- 错误信息详细
- **依赖关系**: 依赖于状态监控
- **实现建议**: 使用JSON解析库处理API响应使用正则表达式提取错误信息
## 约束
- **技术栈限制**: 必须基于现有的Spring Boot 3 + Vue 3技术栈
- **架构约束**: 必须遵循Authentication.canvas中定义的架构和调用关系
- **模块约束**: 必须在datai-salesforce-metadata模块下实现
- **数据库约束**: 必须使用MyBatis Plus作为持久层框架
- **认证约束**: 必须使用SessionManager进行会话管理和自动重新登录
- **API约束**: 必须使用现有的集成核心功能进行Salesforce API调用
- **异步约束**: 必须使用异步线程池执行长时间任务
- **文档约束**: 必须遵循REQ-010中定义的验收标准
- **依赖约束**: 必须依赖于REQ-010-1, REQ-010-2, REQ-010-3, REQ-010-4, REQ-010-5
## Rule Set
"请严格参考 @Authentication.canvas 中的状态机转移逻辑,不要自行发挥。"
**具体规则**
- 必须使用Canvas中定义的类名和方法名
- 必须遵循Canvas中定义的调用关系
- 必须参考Canvas中的流程图逻辑
- 必须使用SessionManager进行会话管理和自动重新登录
- 必须使用现有的认证模块进行OAuth认证
- 必须使用现有的集成核心功能进行API调用
- 必须遵循现有的异常处理机制
- 必须遵循现有的日志记录规范
## 验收标准
- **功能完整性**: 所有部署功能能够正常工作,异步执行机制正常
- **性能指标**: 部署操作不影响系统响应,状态轮询频率合理
- **代码规范性**: 代码符合项目编码规范,有清晰的注释
- **可维护性**: 代码结构清晰,易于扩展和维护
- **可测试性**: 代码易于单元测试和集成测试
## 风险
- **异步执行风险**: 异步执行机制复杂可能导致状态管理困难
- **状态轮询风险**: 状态轮询频率不当可能导致API限流
- **部署取消风险**: 部署取消功能复杂可能导致资源泄漏
- **历史记录风险**: 部署历史记录过多可能影响查询性能
- **进度查询风险**: 进度查询不准确可能导致用户体验差
- **结果解析风险**: 部署结果解析不完善可能导致错误信息不准确
## 需求变更记录
| 日期 | 变更内容 | 变更原因 | 变更人 | 审核人 | 状态 |
|------|---------|---------|--------|--------|------|
| 2026-01-17 | 创建需求文档 | 初始需求 | 系统管理员 | - | 待审核 |
## 相关人员
- **需求提出人**: 系统管理员 - 联系方式
- **需求负责人**: 系统管理员 - 联系方式
- **技术负责人**: 开发工程师 - 联系方式
- **测试负责人**: 测试工程师 - 联系方式
- **其他相关人员**: - 联系方式
## 评审信息
- **评审日期**: -
- **评审人员**: -
- **评审结果**: -
- **评审意见**: -
- **修改建议**: -