81 lines
4.2 KiB
Markdown
81 lines
4.2 KiB
Markdown
# 会话记录 - 部署操作
|
||
|
||
## 元数据
|
||
- 需求编号:003-03
|
||
- 需求名称:部署操作
|
||
- 开始时间:2026-02-03
|
||
- 结束时间:2026-02-03
|
||
- 当前阶段:阶段 5:提示词生成
|
||
|
||
## 阶段记录
|
||
|
||
### 阶段 1:需求定义
|
||
- 状态:已完成
|
||
- 需求文档:[2026-01-28-003-03-部署操作.md](../requirements/sub/2026-01-28-003-03-部署操作.md)
|
||
|
||
### 阶段 2:方案设计
|
||
- 状态:已完成(已重新生成,覆盖原有内容)
|
||
- 设计文档:[2026-02-03-003-03-部署操作-设计.md](../design/2026-02-03-003-03-部署操作-设计.md)
|
||
- 关键设计决策(重新生成后):
|
||
1. **架构设计**:采用分层架构(Controller → Service → Factory → Metadata API),复用 003-01 和 003-02 的组件
|
||
2. **通用字节流接口**:Service 层接收 `byte[]` ZIP 数据,与元数据构建逻辑解耦
|
||
3. **文件上传处理**:Controller 使用 `MultipartFile` 接收文件,转换为 `byte[]` 传递给 Service
|
||
4. **数据复用**:完全复用 003-02 的 `datai_metadata_deploy_log` 表和 `MetadataDeployLog` 实体类
|
||
5. **同步轮询机制**:后端轮询,最多 60 次(5 分钟),每 5 秒检查一次状态
|
||
6. **接口设计**:4 个 REST API 接口(部署 ZIP 包、查询部署状态、同步轮询、取消部署)
|
||
7. **VO 设计**:定义 AsyncResultVO、DeployResultVO、DeployMessageVO 用于前后端数据交换
|
||
8. **错误处理**:6 个专用错误码(METADATA_DEPLOY_001 ~ METADATA_DEPLOY_006)
|
||
9. **性能优化**:异步日志、连接复用、轮询优化、超时控制
|
||
10. **安全设计**:文件验证、权限控制、参数校验、错误信息隐藏
|
||
|
||
### 阶段 3:方案决策
|
||
- 状态:已完成(已重新生成,覆盖原有内容)
|
||
- 决策文档:[2026-02-03-003-03-ADR-通用部署接口设计.md](../decisions/2026-02-03-003-03-ADR-通用部署接口设计.md)
|
||
- 关键决策内容(重新生成后):
|
||
1. **通用字节流接口**:Service 接收 `byte[]` 格式的 ZIP 包,实现部署操作与元数据构建逻辑的解耦
|
||
2. **选择理由**:
|
||
- 关注点分离:元数据构建与部署执行解耦
|
||
- 灵活性与通用性:支持系统内部生成和用户上传的 ZIP 包
|
||
- 复用性:003-02 可直接调用此接口
|
||
- 架构一致性:符合 Salesforce Metadata API 设计原语
|
||
- 测试便利性:可通过预准备 ZIP 文件测试
|
||
3. **正面影响**:极高的复用性、易于测试、支持文件上传、降低耦合度、符合开闭原则
|
||
4. **负面影响及缓解措施**:
|
||
- 验证滞后 → 依赖 Salesforce 校验机制或增加预检查
|
||
- 类型安全性降低 → Controller 层参数校验
|
||
- 调试困难 → 003-02 中记录 ZIP 生成日志
|
||
5. **替代方案分析**:
|
||
- 方案 2(强类型接口):类型安全但耦合度高
|
||
- 方案 3(混合接口):兼顾灵活但增加复杂度
|
||
- 方案 4(回调接口):灵活性高但调用方复杂
|
||
|
||
### 阶段 4:数据库结构生成
|
||
- 状态:已完成(已重新确认)
|
||
- 涉及数据库变更:**否**
|
||
- SQL 脚本:无(复用 003-02 数据库结构)
|
||
- 说明:
|
||
- 本需求完全复用 003-02 中定义的 `datai_metadata_deploy_log` 表
|
||
- 无需创建新表、修改现有表或添加索引
|
||
- 仅需在 003-02 的 SQL 脚本中扩展操作类型数据字典(`deploy_zip`)
|
||
- 实体类 `MetadataDeployLog` 完全复用 003-02 的定义
|
||
|
||
### 阶段 5:提示词生成
|
||
- 状态:已完成
|
||
- 提示词文档:[2026-02-03-003-03-prompt-部署操作.md](../prompts/2026-02-03-003-03-prompt-部署操作.md)
|
||
- 关键内容:
|
||
- **目标**:实现通用部署接口、状态查询、取消和同步轮询。
|
||
- **接口约束**:Service 接收 `byte[]` ZIP,Controller 处理 MultipartFile。
|
||
- **技术栈**:Spring Boot, MyBatis Plus, Salesforce WSC。
|
||
|
||
## 待完成阶段
|
||
- [x] 阶段 1:需求定义
|
||
- [x] 阶段 2:方案设计(已重新生成)
|
||
- [x] 阶段 3:方案决策(已重新生成)
|
||
- [x] 阶段 4:数据库结构生成(已重新确认,复用 003-02)
|
||
- [ ] 阶段 5:提示词生成(需重新生成)
|
||
- [ ] 阶段 6:代码生成
|
||
- [ ] 阶段 7:会话记录
|
||
- [ ] 阶段 8:变更日志
|
||
- [ ] 阶段 9:复盘和 API 文档
|
||
- [ ] 阶段 10:代码提交
|