# 变更摘要 ## [Unreleased] ### Added - 文件上传下载基础设施(REQ-011-1) - 实现了完整的文件上传下载基础设施,包括文件对象类型枚举、错误代码枚举、异常类、参数类、响应类和验证工具类 - FileObjectType 枚举类 - 文件对象类型枚举,包含 ATTACHMENT、CONTENT_DOCUMENT、DOCUMENT 三个值,包含 API 名称、描述、文件大小限制、推荐等级、上传方式和必填字段等元数据 - FileErrorCode 枚举类 - 错误代码枚举,包含 FILE_UPLOAD_FAILED、FILE_DOWNLOAD_FAILED、FILE_SIZE_EXCEEDED、FILE_TYPE_NOT_SUPPORTED、FILE_OBJECT_NOT_FOUND、ORG_CONFIG_NOT_FOUND、FILE_VALIDATION_FAILED、FILE_NOT_FOUND、FILE_READ_FAILED、FILE_WRITE_FAILED 10 个错误代码 - FileUploadException 异常类 - 文件上传异常,继承自 RuntimeException,包含错误代码和错误消息 - FileDownloadException 异常类 - 文件下载异常,继承自 RuntimeException,包含错误代码和错误消息 - FileSizeExceededException 异常类 - 文件大小超限异常,包含实际大小和最大限制 - FileTypeNotSupportedException 异常类 - 文件类型不支持异常,包含实际类型和支持的类型列表 - FileObjectNotFoundException 异常类 - 文件对象不存在异常,包含对象 ID 和对象类型 - OrgConfigNotFoundException 异常类 - 组织配置不存在异常,包含配置 ID - FileValidationException 异常类 - 文件验证异常,包含验证类型 - FileUploadRequest 参数类 - 文件上传请求参数,包含组织配置 ID、文件对象类型、文件、关联记录 ID、文件名和描述,使用 Lombok 注解和 JSR-303 验证注解 - FileDownloadRequest 参数类 - 文件下载请求参数,包含组织配置 ID、文件对象类型、文件 ID 和保存路径,使用 Lombok 注解和 JSR-303 验证注解 - FileUploadResponse 响应类 - 文件上传响应,包含文件 ID、文件名、文件大小、文件类型、上传时间、状态和消息 - FileDownloadResponse 响应类 - 文件下载响应,包含文件名、文件大小、保存路径、下载时间、状态和消息 - FileValidationUtils 工具类 - 文件验证工具类,提供文件大小验证、文件类型验证、文件名验证、文件扩展名获取、文件 MIME 类型获取等功能,支持 13 种文件类型白名单和 13 种危险扩展名黑名单 - Attachment 文件上传下载功能(REQ-011-2) - 实现了 Salesforce Attachment 对象的文件上传下载功能,使用 REST API + Base64 编码方式进行文件上传,使用 REST API + 流式处理方式进行文件下载 - FileUploadStrategy 接口 - 文件上传策略接口,定义 upload() 方法,接收 FileUploadRequest 参数,返回 FileUploadResponse 响应 - FileDownloadStrategy 接口 - 文件下载策略接口,定义 download() 方法,接收 FileDownloadRequest 参数,返回 FileDownloadResponse 响应 - AttachmentUploadStrategy 类 - Attachment 上传策略实现,使用 REST API + Base64 编码方式上传文件,支持最大 50MB 文件大小,包含文件验证、会话管理、错误处理等功能 - AttachmentDownloadStrategy 类 - Attachment 下载策略实现,使用 REST API + 流式处理方式下载文件,使用 BufferedInputStream 和 ByteArrayOutputStream 避免内存溢出,包含会话管理、错误处理等功能 - AttachmentFileService 接口 - Attachment 文件服务接口,定义 uploadAttachment() 和 downloadAttachment() 方法 - AttachmentFileServiceImpl 类 - Attachment 文件服务实现,使用策略模式封装上传下载逻辑,通过 @Autowired 注入 FileUploadStrategy 和 FileDownloadStrategy - ContentDocument/ContentVersion 文件上传下载功能(REQ-011-3) - 实现了 Salesforce ContentDocument/ContentVersion 对象的文件上传下载功能,使用 REST API + Multipart/form-data 方式进行文件上传,使用 REST API + 流式处理方式进行文件下载 - Apache HttpClient 依赖 - 在 datai-salesforce-integration 模块的 pom.xml 中引入 Apache HttpClient 依赖,包括 httpclient 4.5.13 和 httpmime 4.5.13 - ContentVersionUploadStrategy 类 - ContentVersion 上传策略实现,使用 REST API + Multipart/form-data 方式上传文件,支持最大 2GB 文件大小,包含文件验证、会话管理、错误处理等功能 - ContentVersionDownloadStrategy 类 - ContentVersion 下载策略实现,使用 REST API + 流式处理方式下载文件,使用 BufferedInputStream 和 ByteArrayOutputStream 避免内存溢出,包含会话管理、错误处理等功能 - ContentVersionFileService 接口 - ContentVersion 文件服务接口,定义 uploadContentVersion() 和 downloadContentVersion() 方法 - ContentVersionFileServiceImpl 类 - ContentVersion 文件服务实现,使用策略模式封装上传下载逻辑,通过 @Autowired 注入 FileUploadStrategy 和 FileDownloadStrategy - Document 文件上传下载功能(REQ-011-4) - 实现了 Salesforce Document 对象的文件上传下载功能,使用 SOAP API + Base64 编码方式进行文件上传,使用 SOAP API + 流式处理方式进行文件下载 - DocumentUploadStrategy 类 - Document 上传策略实现,使用 SOAP API + Base64 编码方式上传文件,支持最大 20-30MB 文件大小,包含文件验证、会话管理、错误处理等功能 - DocumentDownloadStrategy 类 - Document 下载策略实现,使用 SOAP API + 流式处理方式下载文件,使用 BufferedInputStream 和 ByteArrayOutputStream 避免内存溢出,包含会话管理、错误处理等功能 - DocumentFileService 接口 - Document 文件服务接口,定义 uploadDocument() 和 downloadDocument() 方法 - DocumentFileServiceImpl 类 - Document 文件服务实现,使用策略模式封装上传下载逻辑,通过 @Autowired 注入 FileUploadStrategy 和 FileDownloadStrategy - 文件上传下载 Controller 和 API 接口(REQ-011-5) - 实现了文件上传下载的 RESTful API 接口,支持 Attachment、ContentDocument、Document 三种文件对象类型,使用策略模式根据文件对象类型调用不同的 Service - ApiResponse 统一响应类 - 统一响应格式,包含 code、message、data 三个字段,提供 success() 和 error() 静态方法 - FileController 控制器 - 文件上传下载控制器,提供 2 个 RESTful API 接口,支持文件上传和文件下载 - uploadFile 方法 - 文件上传接口(POST /files/upload),支持三种文件对象类型,使用 @RequestParam 和 @RequestPart 注解接收参数,使用 @Valid 注解进行参数验证,使用 @Operation、@Parameter、@ApiResponse 注解生成 API 文档,使用策略模式根据文件对象类型调用不同的 Service,返回统一的响应格式 - downloadFile 方法 - 文件下载接口(GET /files/download),支持三种文件对象类型,使用 @RequestParam 注解接收参数,使用 @Valid 注解进行参数验证,使用 @Operation、@Parameter、@ApiResponse 注解生成 API 文档,使用策略模式根据文件对象类型调用不同的 Service,返回统一的响应格式 - 元数据拉取核心功能(REQ-010-6) - 实现了完整的元数据拉取核心功能,包括手动触发拉取、异步拉取执行、状态监控、拉取历史记录、拉取进度查询、拉取取消功能 - JobExecutionStatus 枚举类 - 作业执行状态枚举,包含 PENDING、PROCESSING、SUCCESS、FAILED、PARTIAL_SUCCESS、CANCELLED 六个值,使用 @EnumValue 注解映射数据库值 - MetadataRetrieveController 控制器 - 元数据拉取控制器,提供 4 个 RESTful API 接口,支持手动触发拉取、查询拉取历史记录、查询拉取进度、取消拉取 - RetrieveRequest DTO - 拉取请求,包含 taskId 和 orgConfigId 字段 - RetrieveResponse DTO - 拉取响应,包含 jobId 和 message 字段 - RetrieveProgressResponse DTO - 拉取进度响应,包含 jobId、status、progress、message 字段 - IMetadataRetrieveService 服务接口 - 元数据拉取服务接口,定义 triggerRetrieve()、getRetrieveHistory()、getRetrieveProgress()、cancelRetrieve() 方法 - MetadataRetrieveServiceImpl 服务实现 - 元数据拉取服务实现,使用 MetadataApiClient 调用 retrieve() 方法,使用 @Async 注解实现异步执行,使用 ConcurrentHashMap 存储正在运行的作业 - RetrieveException 异常类 - 拉取异常,封装拉取异常 - 单元测试 - MetadataRetrieveServiceImplTest - Metadata API客户端封装(REQ-010-5) - 实现了完整的Metadata API客户端封装功能,包括MetadataApiClient客户端类、retrieve()方法、deploy()方法、状态轮询机制、Zip文件处理、部署结果解析、错误处理机制、异步服务接口和实现、单元测试 - MetadataApiClient 客户端类 - Metadata API 客户端,使用 Salesforce WSC (Web Service Connector) 库,封装 Salesforce Metadata API 调用 - RetrieveRequest 类 - Retrieve 请求模型,包含 orgConfigId、packageNames、singlePackage、specificFiles、unpackaged、timeout 等字段 - RetrieveResult 类 - Retrieve 结果模型,包含 id、success、status、message、zipFile、fileProperties 等字段 - DeployRequest 类 - Deploy 请求模型,包含 orgConfigId、zipFile、allowMissingFiles、autoUpdatePackage、checkOnly、ignoreWarnings、performRetrieve、purgeOnDelete、rollbackOnError、testLevel、runTests、timeout 等字段 - DeployResult 类 - Deploy 结果模型,包含 id、success、status、message、startDate、finishDate、numberComponentErrors、numberComponentsDeployed、numberComponentsTotal、numberTestErrors、numberTestsCompleted、numberTestsTotal、testCoverage、messages 等字段 - DeployMessage 类 - Deploy 消息模型,包含 fileName、componentName、problem、line、column、success 等字段 - MetadataApiException 类 - Metadata API 异常,封装 API 调用异常 - AsyncConfig 配置类 - 异步配置,配置线程池,使用 ThreadPoolTaskExecutor 配置线程池 - IMetadataApiAsyncService 服务接口 - Metadata API 异步服务接口,定义 retrieveAsync() 和 deployAsync() 方法 - MetadataApiAsyncServiceImpl 服务实现 - Metadata API 异步服务实现,使用 @Async 注解实现异步执行,使用 CompletableFuture 支持异步结果 - 单元测试 - MetadataApiClientTest - 元数据任务定义管理(REQ-010-4) - 实现了完整的元数据任务定义管理功能,包括任务定义CRUD、package.xml内容配置、调度类型选择、Cron表达式配置、任务验证功能 - ScheduleType 枚举类 - 调度类型枚举,包含 MANUAL 和 CRON 两个值,使用 @EnumValue 注解映射数据库值 - PackageXmlEditor 工具类 - package.xml 编辑器,使用 Java DOM 解析器处理 package.xml,支持添加、删除、查询元数据类型 - CronExpressionValidator 工具类 - Cron 表达式验证器,支持验证秒、分、时、日、月、周,支持通配符、范围、列表、步长 - MetadataTaskController 控制器 - 元数据任务控制器,提供 6 个 RESTful API 接口,支持元数据任务的增删改查和验证 - IMetadataTaskService 服务接口 - 元数据任务服务接口,定义元数据任务 CRUD 方法 - MetadataTaskServiceImpl 服务实现 - 元数据任务服务实现,使用 MyBatis Plus 的 BaseMapper 实现 CRUD - ITaskValidationService 服务接口 - 任务验证服务接口,定义任务验证方法 - TaskValidationServiceImpl 服务实现 - 任务验证服务实现,使用 PackageXmlEditor 验证 package.xml,使用 CronExpressionValidator 验证 Cron 表达式 - TaskValidationResult 验证结果类 - 任务验证结果,提供成功和失败的静态工厂方法 - 单元测试 - MetadataTaskServiceImplTest - Salesforce组织配置管理(REQ-010-3) - 实现了完整的Salesforce组织配置管理功能,包括组织配置CRUD、OAuth认证信息加密存储、环境类型管理、存储根路径配置、连接状态管理、配置验证功能 - EnvironmentType 枚举类 - 环境类型枚举,包含 SANDBOX 和 PRODUCTION 两个值,使用 @EnumValue 注解映射数据库值 - ConnectionStatus 枚举类 - 连接状态枚举,包含 ACTIVE、INACTIVE、AUTH_INVALID 三个值,使用 @EnumValue 注解映射数据库值 - EncryptionUtil 工具类 - 加密工具类,使用 Java Cryptography API 实现 AES 加密,使用 AES/CBC/PKCS5Padding 加密模式,使用 256 位密钥 - OrgConfigController 控制器 - Salesforce组织配置控制器,提供 6 个 RESTful API 接口,支持组织配置的增删改查和验证 - IOrgConfigService 服务接口 - 组织配置服务接口,定义组织配置 CRUD 方法 - OrgConfigServiceImpl 服务实现 - 组织配置服务实现,使用 MyBatis Plus 的 BaseMapper 实现 CRUD,使用 EncryptionUtil 加密敏感字段 - IOrgConfigValidationService 服务接口 - 组织配置验证服务接口,定义配置验证方法 - OrgConfigValidationServiceImpl 服务实现 - 组织配置验证服务实现,使用正则表达式验证 OAuth 信息格式,使用 @Async 注解实现异步验证 - OrgConfigValidationResult 验证结果类 - 组织配置验证结果,提供成功和失败的静态工厂方法 - application.yml - 配置加密密钥 - 单元测试 - OrgConfigServiceImplTest - 基础实体类和Mapper创建(REQ-010-2) - 为9张数据库表创建了对应的Java实体类、Mapper接口和XML映射文件,使用MyBatis Plus框架,提供基础的CRUD操作 - DataiMetaOrgConfig 实体类 - Salesforce组织配置实体类,使用 @TableName 注解指定表名,使用 @TableId 注解标识主键,使用 @TableField 注解处理字段映射,使用 Lombok 简化代码,使用 @TableField(select = false) 注解保护敏感字段 - DataiMetaTask 实体类 - 元数据任务定义实体类 - DataiMetaPackageItem 实体类 - 元数据包项实体类 - DataiMetaComponent 实体类 - 元数据组件实体类 - DataiMetaComponentVersion 实体类 - 元数据组件版本实体类 - DataiMetaJobExecution 实体类 - 元数据作业执行实体类 - DataiMetaDeployHistory 实体类 - 元数据部署历史实体类 - DataiMetaDeployComponentResult 实体类 - 元数据部署组件结果实体类 - DataiMetaJobLog 实体类 - 元数据作业日志实体类 - DataiMetaOrgConfigMapper 接口 - Salesforce组织配置Mapper接口,继承 BaseMapper,使用 @Mapper 注解标记 - DataiMetaTaskMapper 接口 - 元数据任务定义Mapper接口 - DataiMetaPackageItemMapper 接口 - 元数据包项Mapper接口 - DataiMetaComponentMapper 接口 - 元数据组件Mapper接口 - DataiMetaComponentVersionMapper 接口 - 元数据组件版本Mapper接口 - DataiMetaJobExecutionMapper 接口 - 元数据作业执行Mapper接口 - DataiMetaDeployHistoryMapper 接口 - 元数据部署历史Mapper接口 - DataiMetaDeployComponentResultMapper 接口 - 元数据部署组件结果Mapper接口 - DataiMetaJobLogMapper 接口 - 元数据作业日志Mapper接口 - DataiMetaOrgConfigMapper.xml - Salesforce组织配置Mapper映射文件,配置 namespace 和 resultType - DataiMetaTaskMapper.xml - 元数据任务定义Mapper映射文件 - DataiMetaPackageItemMapper.xml - 元数据包项Mapper映射文件 - DataiMetaComponentMapper.xml - 元数据组件Mapper映射文件 - DataiMetaComponentVersionMapper.xml - 元数据组件版本Mapper映射文件 - DataiMetaJobExecutionMapper.xml - 元数据作业执行Mapper映射文件 - DataiMetaDeployHistoryMapper.xml - 元数据部署历史Mapper映射文件 - DataiMetaDeployComponentResultMapper.xml - 元数据部署组件结果Mapper映射文件 - DataiMetaJobLogMapper.xml - 元数据作业日志Mapper映射文件 - application.yml - 配置 MyBatis Plus 扫描路径和分页插件 - 单元测试 - DataiMetaOrgConfigTest、DataiMetaTaskTest、DataiMetaPackageItemTest、DataiMetaComponentTest、DataiMetaComponentVersionTest、DataiMetaJobExecutionTest、DataiMetaDeployHistoryTest、DataiMetaDeployComponentResultTest、DataiMetaJobLogTest - 性能优化和限流处理(REQ-010-17) - 实现了完整的性能优化和限流处理功能,包括API限流处理、并发控制、缓存优化、数据库优化、文件处理优化、性能监控 - RateLimitConfig 配置类 - 限流配置类,使用 Guava RateLimiter 实现令牌桶算法 - @RateLimit 注解 - 限流注解,定义注解属性 - RateLimitAspect 切面类 - 限流切面,使用 AOP 实现限流功能 - RateLimitException 异常类 - 限流异常类,统一管理限流异常 - RateLimitService 服务类 - 限流服务,使用 Spring Retry 实现重试机制 - ThreadPoolConfig 配置类 - 线程池配置类,配置线程池参数 - PriorityTask 任务类 - 优先级任务类,支持任务优先级 - ConcurrencyControlService 服务类 - 并发控制服务,使用 @Async 实现异步执行 - CacheConfig 配置类 - 缓存配置类,配置 Redis 缓存 - CacheService 服务类 - 缓存服务,使用 Spring Cache 注解简化缓存操作 - BatchOperationService 服务类 - 批量操作服务,使用 MyBatis Plus 的批量操作功能 - QueryOptimizationService 服务类 - 查询优化服务,使用 MyBatis Plus 的分页插件实现分页查询 - FileProcessingService 服务类 - 流式文件处理服务,使用 Java 的 Stream API 实现流式处理大文件 - ParallelFileProcessingService 服务类 - 并行文件处理服务,使用 CompletableFuture 实现并行处理多个文件 - PerformanceMonitoringConfig 配置类 - 性能监控配置类,使用 Micrometer 创建性能指标 - PerformanceMonitoringService 服务类 - 性能监控服务,使用 Micrometer 收集性能指标 - 异常处理机制完善(REQ-010-16) - 实现了完整的异常处理机制完善功能,包括异常捕获、异常分类、异常处理、异常恢复、异常告警、异常日志 - GlobalExceptionHandler 全局异常处理器 - 提供统一的异常处理,使用 @ControllerAdvice 和 @ExceptionHandler 注解 - ExceptionLogController 控制器 - 提供 4 个 RESTful API 接口,支持异常日志查询、删除 - RecoveryController 控制器 - 提供 6 个 RESTful API 接口,支持恢复点创建、查询、恢复、删除 - ExceptionAlarmController 控制器 - 提供 6 个 RESTful API 接口,支持异常告警创建、查询、发送、删除 - IExceptionLogService 服务接口 - 定义异常日志服务接口 - ExceptionLogServiceImpl 服务实现 - 实现异常日志服务,使用日志框架记录异常日志,使用 MyBatis Plus 实现异常日志查询 - IRecoveryService 服务接口 - 定义恢复服务接口 - RecoveryServiceImpl 服务实现 - 实现恢复服务,使用状态机管理恢复过程,使用恢复点记录恢复状态 - IExceptionAlarmService 服务接口 - 定义异常告警服务接口 - ExceptionAlarmServiceImpl 服务实现 - 实现异常告警服务,使用消息队列异步发送告警 - ExceptionType 枚举 - 异常类型枚举(NETWORK、API_CALL、FILE_OPERATION、DATABASE_OPERATION、BUSINESS_LOGIC) - ExceptionLevel 枚举 - 异常级别枚举(INFO、WARN、ERROR、FATAL) - ExceptionSource 枚举 - 异常来源枚举(METADATA_RETRIEVE、METADATA_DEPLOY、FILE_STORAGE、DATABASE) - BaseException 基类 - 自定义异常基类 - NetworkException 网络异常类 - 网络异常类 - ApiCallException API 调用异常类 - API 调用异常类 - FileOperationException 文件操作异常类 - 文件操作异常类 - DatabaseOperationException 数据库操作异常类 - 数据库操作异常类 - BusinessLogicException 业务逻辑异常类 - 业务逻辑异常类 - ExceptionLog 实体类 - 异常日志实体类 - RecoveryPoint 实体类 - 恢复点实体类 - ExceptionAlarm 实体类 - 异常告警实体类 - ExceptionLogMapper 接口 - 异常日志 Mapper 接口 - RecoveryPointMapper 接口 - 恢复点 Mapper 接口 - ExceptionAlarmMapper 接口 - 异常告警 Mapper 接口 - 详细日志记录和查询(REQ-010-15) - 实现了完整的详细日志记录和查询功能,包括日志记录、日志查询、日志导出、日志分析 - LogQueryController 控制器 - 提供 4 个 RESTful API 接口,支持日志列表查询、条件查询、时间范围查询、作业ID查询 - LogExportController 控制器 - 提供 6 个 RESTful API 接口,支持日志导出为文本文件、Excel 文件、CSV 文件,支持按条件导出 - LogAnalysisController 控制器 - 提供 5 个 RESTful API 接口,支持日志分析、日志趋势分析、日志统计分析 - IOperationLogService 服务接口 - 定义操作日志服务接口 - OperationLogServiceImpl 服务实现 - 实现操作日志服务,使用异步日志记录,使用日志框架记录日志 - ILogQueryService 服务接口 - 定义日志查询服务接口 - LogQueryServiceImpl 服务实现 - 实现日志查询服务,使用 MyBatis Plus 的 QueryWrapper 实现多条件查询,使用分页插件实现分页 - ILogExportService 服务接口 - 定义日志导出服务接口 - LogExportServiceImpl 服务实现 - 实现日志导出服务,使用 Apache POI 和 EasyExcel 实现 Excel 文件导出,使用流式处理大文件导出 - ILogAnalysisService 服务接口 - 定义日志分析服务接口 - LogAnalysisServiceImpl 服务实现 - 实现日志分析服务,使用聚合查询实现日志统计,使用图表展示分析结果 - LogLevel 枚举 - 日志级别枚举(INFO、WARN、ERROR) - OperationLog 实体类 - 操作日志实体类 - OperationLogMapper 接口 - 操作日志 Mapper 接口 - 作业执行监控(REQ-010-14) - 实现了完整的作业执行监控功能,包括作业状态监控、作业进度监控、作业耗时统计、作业失败告警、作业列表查询 - JobStatusController 控制器 - 提供 8 个 RESTful API 接口,支持作业状态创建、查询、更新、删除 - JobProgressController 控制器 - 提供 3 个 RESTful API 接口,支持作业进度查询、更新 - JobStatisticsController 控制器 - 提供 5 个 RESTful API 接口,支持作业耗时统计、作业统计查询 - JobAlarmController 控制器 - 提供 5 个 RESTful API 接口,支持作业告警创建、查询、发送、删除 - JobQueryController 控制器 - 提供 4 个 RESTful API 接口,支持作业列表查询、条件查询、时间范围查询 - IJobExecutionService 服务接口 - 定义作业执行服务接口 - JobExecutionServiceImpl 服务实现 - 实现作业执行服务,使用 MyBatis Plus 的 BaseMapper - IJobProgressService 服务接口 - 定义作业进度服务接口 - JobProgressServiceImpl 服务实现 - 实现作业进度服务,使用缓存提高查询性能 - IJobStatisticsService 服务接口 - 定义作业统计服务接口 - JobStatisticsServiceImpl 服务实现 - 实现作业统计服务,使用时间戳记录作业开始和结束时间 - IJobAlarmService 服务接口 - 定义作业告警服务接口 - JobAlarmServiceImpl 服务实现 - 实现作业告警服务,使用消息队列异步发送告警 - IJobQueryService 服务接口 - 定义作业查询服务接口 - JobQueryServiceImpl 服务实现 - 实现作业查询服务,使用 MyBatis Plus 的 BaseMapper 和分页插件 - JobStatus 枚举 - 作业状态枚举(PENDING、RUNNING、SUCCESS、FAILED、CANCELLED) - JobType 枚举 - 作业类型枚举(RETRIEVE、DEPLOY、QUICK_DEPLOY、DESTRUCTIVE_CHANGES) - JobExecution 实体类 - 作业执行实体类 - JobAlarm 实体类 - 作业告警实体类 - JobExecutionMapper 接口 - 作业执行 Mapper 接口 - JobAlarmMapper 接口 - 作业告警 Mapper 接口 - 复用 IMetadataRetrieveService 服务接口 - 元数据拉取服务接口,用于监控拉取作业 - 复用 IMetadataDeployService 服务接口 - 元数据部署服务接口,用于监控部署作业 - 版本回溯功能(REQ-010-13) - 实现了完整的版本回溯功能,支持查看和恢复历史版本的元数据文件 - VersionHistoryController 控制器 - 提供 8 个 RESTful API 接口,支持版本历史记录创建、查询、删除 - VersionComparisonController 控制器 - 提供 3 个 RESTful API 接口,支持版本对比、文件内容对比、文件哈希对比 - VersionRecoveryController 控制器 - 提供 1 个 RESTful API 接口,支持版本恢复 - VersionRollbackController 控制器 - 提供 1 个 RESTful API 接口,支持版本回滚 - IMetadataVersionService 服务接口 - 定义元数据版本服务接口 - MetadataVersionServiceImpl 服务实现 - 实现元数据版本服务,使用 MyBatis Plus 的 BaseMapper - IVersionComparisonService 服务接口 - 定义版本对比服务接口 - VersionComparisonServiceImpl 服务实现 - 实现版本对比服务,使用 Google Diff Match Patch 库 - IVersionRecoveryService 服务接口 - 定义版本恢复服务接口 - VersionRecoveryServiceImpl 服务实现 - 实现版本恢复服务,使用 @Transactional 注解确保恢复原子性 - IVersionRollbackService 服务接口 - 定义版本回滚服务接口 - VersionRollbackServiceImpl 服务实现 - 实现版本回滚服务,使用 @Transactional 注解确保回滚原子性 - MetadataVersion 实体类 - 元数据版本实体类 - MetadataVersionMapper 接口 - 元数据版本 Mapper 接口 - DTO 类 - VersionHistoryCreateRequest、VersionHistoryCreateResponse、VersionHistoryQueryRequest、VersionHistoryQueryResponse、VersionComparisonRequest、VersionComparisonResponse、FileContentComparisonRequest、FileContentComparisonResponse、FileHashComparisonRequest、FileHashComparisonResponse、VersionRecoveryRequest、VersionRecoveryResponse、VersionRollbackRequest、VersionRollbackResponse - 异常类 - VersionHistoryException、VersionComparisonException、VersionRecoveryException、VersionRollbackException - 复用 IFileStorageService 接口 - 文件存储服务接口,用于读取文件内容 - 复用 IMetadataRetrieveService 服务接口 - 元数据拉取服务接口,用于版本恢复 - 复用 IMetadataDeployService 服务接口 - 元数据部署服务接口,用于版本回滚 - 文件哈希对比和增量检测(REQ-010-12) - 实现了完整的文件哈希对比和增量检测功能,支持检测文件变化,只拉取或部署变化的文件 - FileHashController 控制器 - 提供 2 个 RESTful API 接口,支持文件哈希计算、批量哈希计算 - HashComparisonController 控制器 - 提供 2 个 RESTful API 接口,支持哈希对比、查找变化文件 - IncrementalDetectionController 控制器 - 提供 3 个 RESTful API 接口,支持增量检测、监听文件系统、停止监听 - IncrementalRetrieveController 控制器 - 提供 1 个 RESTful API 接口,支持增量拉取 - IncrementalDeployController 控制器 - 提供 1 个 RESTful API 接口,支持增量部署 - IFileHashService 服务接口 - 定义文件哈希服务接口 - FileHashServiceImpl 服务实现 - 实现文件哈希服务,使用 SHA-256 算法,使用流式处理大文件 - IHashComparisonService 服务接口 - 定义哈希对比服务接口 - HashComparisonServiceImpl 服务实现 - 实现哈希对比服务,使用并行处理提高对比性能 - IIncrementalDetectionService 服务接口 - 定义增量检测服务接口 - IncrementalDetectionServiceImpl 服务实现 - 实现增量检测服务,使用哈希对比和文件系统监听器 - IIncrementalRetrieveService 服务接口 - 定义增量拉取服务接口 - IncrementalRetrieveServiceImpl 服务实现 - 实现增量拉取服务,复用 IMetadataRetrieveService - IIncrementalDeployService 服务接口 - 定义增量部署服务接口 - IncrementalDeployServiceImpl 服务实现 - 实现增量部署服务,复用 IMetadataDeployService - ChangeType 枚举 - 文件变化类型枚举(ADDED、MODIFIED、DELETED) - FileChange 实体类 - 文件变化实体类 - FileChangeMapper 接口 - 文件变化 Mapper 接口 - DTO 类 - FileHashCalculateRequest、FileHashCalculateResponse、FileHashBatchCalculateRequest、FileHashBatchCalculateResponse、HashComparisonRequest、HashComparisonResponse、ChangedFilesFindRequest、ChangedFilesFindResponse、IncrementalDetectionRequest、IncrementalDetectionResponse、IncrementalRetrieveRequest、IncrementalRetrieveResponse、IncrementalDeployRequest、IncrementalDeployResponse - 异常类 - FileHashException、HashComparisonException、IncrementalDetectionException、IncrementalRetrieveException、IncrementalDeployException - 复用 IFileStorageService 接口 - 文件存储服务接口,用于读取文件内容 - 复用 IMetadataRetrieveService 服务接口 - 元数据拉取服务接口,用于增量拉取 - 复用 IMetadataDeployService 服务接口 - 元数据部署服务接口,用于增量部署 - 元数据组件索引和查询(REQ-010-11) - 实现了完整的元数据组件索引和查询功能,支持按类型、名称、版本等条件查询元数据组件 - MetadataComponentIndexController 控制器 - 提供 8 个 RESTful API 接口,支持组件索引创建、组件查询、组件详情查看、组件统计 - IMetadataComponentIndexService 服务接口 - 定义组件索引服务接口 - MetadataComponentIndexServiceImpl 服务实现 - 实现组件索引服务,支持异步索引创建 - IMetadataComponentQueryService 服务接口 - 定义组件查询服务接口 - MetadataComponentQueryServiceImpl 服务实现 - 实现组件查询服务,使用 MyBatis Plus 的 QueryWrapper 实现多条件查询 - IMetadataComponentDetailService 服务接口 - 定义组件详情服务接口 - MetadataComponentDetailServiceImpl 服务实现 - 实现组件详情服务,支持查看组件文件内容和依赖关系 - IMetadataComponentStatisticsService 服务接口 - 定义组件统计服务接口 - MetadataComponentStatisticsServiceImpl 服务实现 - 实现组件统计服务,使用 MyBatis Plus 的聚合查询实现统计功能 - MetadataComponentParser 接口 - 元数据组件解析器接口 - ApexClassParser 实现类 - Apex Class 解析器 - VisualforcePageParser 实现类 - Visualforce Page 解析器 - CustomObjectParser 实现类 - Custom Object 解析器 - CustomFieldParser 实现类 - Custom Field 解析器 - MetadataComponentIndex 实体类 - 元数据组件索引实体类 - MetadataComponentIndexMapper 接口 - 元数据组件索引 Mapper 接口 - DTO 类 - ComponentIndexRequest、ComponentIndexResponse、ComponentQueryRequest、ComponentQueryResponse、ComponentDetailResponse、ComponentStatisticsResponse、ComponentTypeDistributionResponse、ComponentVersionDistributionResponse - ComponentIndexException 异常类 - 组件索引异常类 - 复用 IFileStorageService 接口 - 文件存储服务接口,用于读取组件文件内容 - Destructive Changes功能实现(REQ-010-10) - 实现了完整的 Destructive Changes 功能,支持部署时删除指定的元数据组件,使用 destructiveChanges.xml 配置删除规则 - DestructiveChangesController 控制器 - 提供 6 个 RESTful API 接口,支持 destructiveChanges.xml 配置、Destructive Changes 部署、Destructive Changes 验证、Destructive Changes 历史记录、Destructive Changes 回滚 - IDestructiveChangesService 服务接口 - 定义 Destructive Changes 服务接口 - DestructiveChangesServiceImpl 服务实现 - 实现 Destructive Changes 服务,支持异步执行和状态管理 - IDestructiveChangesConfigService 服务接口 - 定义 Destructive Changes 配置服务接口 - DestructiveChangesConfigServiceImpl 服务实现 - 实现 Destructive Changes 配置服务,支持 destructiveChanges.xml 配置和验证 - DestructiveChangesXmlParser 工具类 - Destructive Changes XML 解析器,验证 destructiveChanges.xml 格式 - DestructiveChangesXmlBuilder 工具类 - Destructive Changes XML 构建器,构建 destructiveChanges.xml - DestructiveChangeRule 实体类 - Destructive Change Rule 实体类 - DestructiveChangeRuleMapper 接口 - Destructive Change Rule Mapper 接口 - DTO 类 - DestructiveChangesConfigRequest、DestructiveChangesConfigResponse、DestructiveChangesValidateRequest、DestructiveChangesValidateResponse、DestructiveChangesDeployRequest、DestructiveChangesDeployResponse、DestructiveChangesHistoryResponse、DestructiveChangesRollbackRequest、DestructiveChangesRollbackResponse - DestructiveChangesException 异常类 - Destructive Changes 异常类 - 复用 AsyncConfig 配置类 - 异步配置,自定义线程池 - Quick Deploy功能实现(REQ-010-9) - 实现了完整的 Quick Deploy 功能,支持基于最近一次成功的部署记录快速重新部署,无需重新运行测试 - QuickDeployController 控制器 - 提供 4 个 RESTful API 接口,支持 Quick Deploy 触发、进度查询、取消操作、历史记录查询 - IQuickDeployService 服务接口 - 定义 Quick Deploy 服务接口 - QuickDeployServiceImpl 服务实现 - 实现 Quick Deploy 服务,支持异步执行和状态管理 - DTO 类 - QuickDeployTriggerRequest、QuickDeployTriggerResponse、QuickDeployProgressResponse、QuickDeployHistoryResponse、QuickDeployResult - 复用 DeployStatus 枚举 - 定义 Quick Deploy 状态(Pending/Processing/Success/Failed/Partial_Success/Cancelled) - 复用 AsyncConfig 配置类 - 异步配置,自定义线程池 - 复用 DeployException 异常类 - Quick Deploy 异常 - 元数据部署核心功能(REQ-010-8) - 实现了完整的 Salesforce 元数据部署核心功能,包括手动触发部署、异步部署执行、状态监控、部署历史记录、部署进度查询、部署取消功能、部署结果解析 - DeployStatus 枚举 - 定义部署状态(Pending/Processing/Success/Failed/Partial_Success/Cancelled) - MetadataDeployController 控制器 - 提供 4 个 RESTful API 接口,支持部署触发、进度查询、取消操作、历史记录查询 - IMetadataDeployService 服务接口 - 定义元数据部署服务接口 - MetadataDeployServiceImpl 服务实现 - 实现元数据部署服务,支持异步执行和状态管理 - DTO 类 - DeployTriggerRequest、DeployTriggerResponse、DeployProgressResponse、DeployHistoryResponse、DeployResult - AsyncConfig 配置类 - 异步配置,自定义线程池 - DeployException 异常类 - 部署异常 - 文件存储和解压处理(REQ-010-7) - 实现了完整的文件存储和解压处理功能,包括 Zip 文件存储、文件解压、文件路径管理、存储空间管理和文件清理 - IFileStorageService 接口 - 文件存储服务接口,支持存储、读取、删除、存在性检查 - LocalStorageService 实现类 - 本地文件系统存储实现,支持配置动态切换 - OssStorageService 实现类 - OSS 存储实现,使用阿里云 OSS SDK - IFileExtractService 接口 - 文件解压服务接口,支持进度回调和取消操作 - FileExtractServiceImpl 实现类 - 文件解压服务实现,使用 ZipInputStream 实现流式解压 - PathValidator 工具类 - 路径验证工具类,使用 Path API 和正则表达式验证路径安全性 - IStorageMonitorService 接口 - 存储空间监控服务接口 - StorageMonitorServiceImpl 实现类 - 存储空间监控服务实现,使用定时任务定期检查存储空间 - IFileCleanupService 接口 - 文件清理服务接口 - FileCleanupServiceImpl 实现类 - 文件清理服务实现,使用定时任务定期清理过期文件 - DTO 类 - FileStorageRequest、FileStorageResponse、FileExtractRequest、FileExtractResponse、ExtractProgressCallback、StorageSpaceInfo、FileCleanupRequest、FileCleanupResponse - 枚举类 - StorageType、ExtractStatus - 配置类 - FileStorageConfig、OssConfig - 异常类 - FileStorageException、FileExtractException、PathSecurityException - 工具类 - FileUtil、ZipUtil - 单元测试 - LocalStorageServiceTest、FileExtractServiceTest、PathValidatorTest、StorageMonitorServiceTest、FileCleanupServiceTest、FileUtilTest、ZipUtilTest - 元数据拉取核心功能(REQ-010-6) - 实现了完整的 Salesforce 元数据拉取核心功能,包括手动触发拉取、异步拉取执行、状态监控、拉取历史记录、拉取进度查询、拉取取消功能 - RetrieveStatus 枚举 - 定义拉取状态(Pending/Processing/Success/Failed/Partial_Success/Cancelled) - MetadataRetrieveController 控制器 - 提供 4 个 RESTful API 接口,支持拉取触发、进度查询、取消操作、历史记录查询 - IMetadataRetrieveService 服务接口 - 定义元数据拉取服务接口 - MetadataRetrieveServiceImpl 服务实现 - 实现元数据拉取服务,支持异步执行和状态管理 - DTO 类 - RetrieveTriggerRequest、RetrieveTriggerResponse、RetrieveProgressResponse、RetrieveHistoryResponse - 前端组件 - MetadataRetrieve.vue,基于 Vue 3 和 Element Plus 的元数据拉取界面 ### Changed - 无 ### Fixed - 无 ## [0.1.15] - 2026-01-17 ### Added - 数据库表结构设计和创建 - 为 Salesforce 元数据拉取和部署功能(REQ-010-1)设计了 6 个核心数据库表,采用 MyBatis Plus + MySQL 技术栈 - datai_meta_org_config - Salesforce组织配置表,支持 OAuth2 和 JWT 两种认证方式 - datai_meta_task - 元数据任务定义表,支持多种任务类型和版本控制 - datai_meta_job_execution - 作业执行记录表,跟踪作业执行状态和进度 - datai_meta_component - 元数据组件索引表,支持版本管理和哈希对比 - datai_meta_deploy_history - 部署历史记录表,记录部署详细信息 - datai_meta_job_log - 作业执行日志表,记录详细日志信息 - 索引策略优化 - 为每个表设计了合理的索引策略,确保查询性能 - 数据安全设计 - 对敏感字段进行了加密存储设计(client_secret、password、security_token、access_token、refresh_token) - 命名规范统一 - 所有表名统一使用 datai_meta_ 前缀,与现有项目表结构保持一致 - 基础字段标准化 - 所有表包含标准基础字段(dept_id, create_by, create_time, update_by, update_time, remark) ### Changed - 无 ### Fixed - 无 ## [0.1.14] - 2026-01-16 ### Added - updateObjectDataToTarget 更新数据进度跟踪功能 - 复用现有的内存存储方案(ConcurrentHashMap)存储进度信息,更新任务完成后立即清除进度信息,不保留历史记录 - 更新进度查询接口 - 支持按对象ID查询更新进度和查询所有正在更新的对象进度 - 更新进度跟踪集成 - 在 updateObjectDataToTarget 方法中集成了进度跟踪功能,与 syncObjectData 同步进度跟踪功能和 insertObjectDataToTarget 插入数据进度跟踪功能保持一致 ### Changed - 无 ### Fixed - 无 ## [0.1.13] - 2026-01-16 ### Added - insertObjectDataToTarget 插入数据进度跟踪功能 - 复用现有的内存存储方案(ConcurrentHashMap)存储进度信息,插入任务完成后立即清除进度信息,不保留历史记录 - 插入进度查询接口 - 支持按对象ID查询插入进度和查询所有正在插入的对象进度 - 插入进度跟踪集成 - 在 insertObjectDataToTarget 方法中集成了进度跟踪功能,与 syncObjectData 同步进度跟踪功能保持一致 ### Changed - 无 ### Fixed - 无 ## [0.1.12] - 2026-01-16 ### Added - syncObjectData 同步进度跟踪功能 - 使用内存存储方案(ConcurrentHashMap)存储进度信息,同步任务完成后立即清除进度信息,不保留历史记录 - 进度查询接口 - 支持按对象ID查询进度和查询所有正在同步的对象进度 - 进度跟踪服务 - 创建了 ISyncProgressService 接口和 SyncProgressServiceImpl 实现类,支持并发访问 ### Changed - 无 ### Fixed - 无 ## [0.1.11] - 2026-01-13 ### Added - 目标ORG登录功能 - 支持目标ORG的独立认证管理,为双向同步提供基础 ### Changed - 无 ### Fixed - 无 ## [0.1.0] - 2026-01-08 ### Added - 项目初始化 - 认证模块:datai-salesforce-auth - 通用模块:datai-salesforce-common - 集成模块:datai-salesforce-integration - 支持多种 Salesforce API:Bulk API v1/v2、Partner API、REST API ### Changed - 无 ### Fixed - 无 ## 变更记录规范 本文件遵循 [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) 规范,记录项目的重要变更。 ### 变更类型 - **Added**: 新增功能 - **Changed**: 功能变更 - **Fixed**: 问题修复 - **Deprecated**: 废弃功能 - **Removed**: 移除功能 - **Security**: 安全相关 ### 版本号格式 采用语义化版本号格式:MAJOR.MINOR.PATCH - **MAJOR**: 不兼容的 API 变更 - **MINOR**: 向下兼容的功能新增 - **PATCH**: 向下兼容的问题修复 ### 变更记录要求 - 每个版本的变更必须包含日期 - 变更描述必须清晰、简洁 - 重大变更必须详细说明影响 - 变更必须与代码提交对应