Commit Graph

15 Commits

Author SHA1 Message Date
2d8f9c0aa2 feat: 实现从库数据源注解功能 (REQ-003)
- 扩展 @DataSource 注解,支持从库数据源的动态切换
- 在 DataSourceAspect 切面中添加动态路由逻辑,通过反射调用 SalesforceConfigCacheManager.getCurrentEnvironmentCode() 方法获取当前激活环境编码
- 构造从库数据源名称(slave_环境编码),检查从库是否存在,存在则切换到从库,不存在则回退到主库
- 缓存 SalesforceConfigCacheManager Bean 和 getCurrentEnvironmentCode Method 对象,优化性能
- 为 8 个方法添加 @DataSource(DataSourceType.SLAVE) 注解:
  - DataiIntegrationObjectServiceImpl.createObjectStructure
  - DataiIntegrationObjectServiceImpl.syncSingleObjectData
  - DataiIntegrationObjectServiceImpl.syncMultipleObjectData
  - DataiIntegrationBatchServiceImpl.syncBatchData
  - DataiIntegrationMetadataChangeServiceImpl.syncToLocalDatabase
  - DataiIntegrationMetadataChangeServiceImpl.syncBatchToLocalDatabase
  - DataSynchronizerImpl.synchronizeData
  - DataSynchronizerImpl.batchSynchronizeData
- 创建需求文档、设计文档、决策记录、提示词文档、会话记录、变更日志、复盘文档和 API 文档
- 更新 CHANGELOG.md 和索引文档
2026-01-24 23:21:57 +08:00
fe887c0641 fix: 修改从库数据库排序规则为 utf8mb4_general_ci
问题:从库数据库排序规则应使用 utf8mb4_general_ci 而非 utf8mb4_unicode_ci

修复:
- 修改 SQL 语句,将 COLLATE utf8mb4_unicode_ci 改为 COLLATE utf8mb4_general_ci
- 更新相关文档,包括接口文档、API 文档、变更日志、实施方案

说明:
- utf8mb4_general_ci 是 MySQL 的默认排序规则,性能更好
- utf8mb4_unicode_ci 是基于 Unicode 标准的排序规则,支持更多语言,但性能稍差
2026-01-24 20:51:46 +08:00
e80489530b docs: 更新 DataiConfigEnvironmentController 接口文档
- 新增 0009-init-slave-datasource.md 接口文档
- 更新 0001-environment-list.md 接口文档,添加 datasourceId 字段
- 更新 0003-get-info.md 接口文档,添加 datasourceId 字段
- 更新 0004-add-environment.md 接口文档,更新最后更新日期
- 更新 0005-edit-environment.md 接口文档,更新最后更新日期
- 更新 index.md 索引,添加新接口链接并更新接口统计
2026-01-24 20:20:46 +08:00
b9be19c94d feat: 环境从库初始化功能 (2026-01-24-002)
实现环境从库初始化功能,包括数据库创建、配置写入、数据源注册、连接验证等步骤。

主要变更:
- 在 ISysDatasourceConfigService 接口中新增 createSlaveDatabase 方法
- 在 SysDatasourceConfigServiceImpl 中实现 createSlaveDatabase 方法
  - 从 application-druid.yml 配置文件中读取主库配置
  - 生成从库名称(slave_环境编码)
  - 检查数据源名称是否已存在
  - 使用 JDBC 创建数据库(字符集:utf8mb4,排序规则:utf8mb4_unicode_ci)
  - 写入数据源配置表
  - 注册数据源到 DataSourceManager
  - 切换到从库并验证连接有效性
  - 切换回主库
  - 使用 Spring 事务保证原子性,验证失败时自动回滚
  - 新增辅助方法:extractDbNameFromUrl、extractHostFromUrl、extractPortFromUrl、extractDbTypeFromUrl
- 在 IDataiConfigEnvironmentService 接口中新增 initSlaveDatasource 方法
- 在 DataiConfigEnvironmentServiceImpl 中实现 initSlaveDatasource 方法
- 在 DataiConfigEnvironmentController 中新增 initSlaveDatasource 接口方法
- 在 DataiConfigEnvironment 实体类中新增 datasourceId 字段
- 在 datai_config_environment 表中新增 datasource_id 字段并添加索引

文档变更:
- 新增需求文档:2026-01-24-002-环境从库初始化.md
- 新增设计文档:2026-01-24-002-环境从库初始化设计.md
- 新增决策记录:2026-01-24-002-ADR-环境从库初始化.md
- 新增提示词文档:2026-01-24-002-prompt-环境从库初始化.md
- 新增实施方案:2026-01-24-002-implementation-环境从库初始化.md
- 新增变更日志:2026-01-24-002-changelog.md
- 新增复盘文档:2026-01-24-002-retro.md
- 新增 API 文档:2026-01-24-002-api-环境从库初始化.md
- 新增会话记录:2026-01-24-002-session.md
- 更新项目索引:index.md
- 更新根目录变更日志:CHANGELOG.md

相关需求:2026-01-24-002
2026-01-24 20:12:48 +08:00
dd4efbd4e1 feat: [012] 环境有效性字段功能 2026-01-23 13:29:49 +08:00
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
469c78cf29 feat: REQ-010-1 完成数据库表结构设计和创建,REQ-010-2 完成基础实体类和Mapper创建需求定义和架构决策
REQ-010-1 完成内容:
- 创建 6 个数据库表设计(datai_meta_org_config、datai_meta_task、datai_meta_job_execution、datai_meta_component、datai_meta_deploy_history、datai_meta_job_log)
- 设计了合理的索引策略
- 对敏感字段进行了加密存储设计
- 表名前缀统一为 datai_meta_
- 所有表包含标准基础字段

REQ-010-2 完成内容:
- 补充用户故事和细化验收标准
- 创建架构决策记录(MyBatis Plus 注解 + XML 映射文件混合方案)
- 对比了 3 种备选方案
- 分析了决策对系统架构、开发流程、运维管理的影响
- 识别了技术风险、业务风险和实施风险
- 定义了回滚策略和验收标准

文档更新:
- 创建 0010-database-table-design.md 架构决策记录
- 创建 0011-entity-mapper-create.md 架构决策记录
- 创建 0020-database-table-design-create.md 变更记录
- 创建 20260117-database-table-design-create.md 会话记录
- 创建 20260117-database-table-design-create-retro.md 复盘报告
- 创建 011-database-table-design-create.md 提示词文档
- 更新 REQ-010-2.md 需求文档
- 更新 docs/index.md 和 CHANGELOG.md
2026-01-18 19:44:13 +08:00
21c82a4b36 feat: 添加定时任务功能和文档
- 新增 4 个定时任务类:
  - ObjectSyncTask: 对象自动同步任务
  - ObjectInsertTask: 对象自动插入任务
  - ObjectUpdateTask: 对象自动更新任务
  - MetadataChangeAutoSyncTask: 元数据变更自动同步任务

- 新增 2 个多对象操作接口:
  - insertMultipleObjectDataToTarget: 批量插入对象数据到目标系统
  - updateMultipleObjectDataToTarget: 批量更新对象数据到目标系统

- 新增完整的定时任务文档:
  - task/index.md: 定时任务文档索引
  - ObjectSyncTask.md: 对象自动同步任务文档
  - ObjectInsertTask.md: 对象自动插入任务文档
  - ObjectUpdateTask.md: 对象自动更新任务文档
  - MetadataChangeAutoSyncTask.md: 元数据变更自动同步任务文档
  - RateLimitResetTask.md: 每日限流重置任务文档

- 新增 API 文档索引:api-docs/index.md

- 更新唯一真源文档中心:docs/index.md

- 新增完整的项目文档:
  - REQ-005.md: 定时任务自动同步、插入和更新对象数据需求
  - REQ-006.md: 元数据变更自动同步本地数据库需求
  - 0005-scheduled-tasks-implementation.md: 定时任务架构决策
  - 0006-metadata-change-auto-sync.md: 元数据变更自动同步架构决策
  - 005-scheduled-tasks-implementation.md: 定时任务实现提示词
  - 006-metadata-change-auto-sync.md: 元数据变更自动同步实现提示词
  - 20260116-scheduled-tasks-implementation.md: 定时任务实现会话记录
  - 20260116-metadata-change-auto-sync.md: 元数据变更自动同步实现会话记录
  - 20260116-scheduled-tasks-implementation-retro.md: 定时任务实现复盘
  - 20260116-metadata-change-auto-sync-retro.md: 元数据变更自动同步实现复盘
  - 0015-scheduled-tasks-implementation.md: 定时任务变更记录
  - 0016-metadata-change-auto-sync.md: 元数据变更自动同步变更记录

- 更新 CHANGELOG.md 和 README.md
2026-01-16 16:38:35 +08:00
85f71e1dc3 feat: 实现数据同步进度跟踪功能
- 新增 SyncProgress 实体类、ISyncProgressService 接口和 SyncProgressServiceImpl 实现类
- 在 DataiIntegrationObjectController 中添加 6 个进度查询接口:
  - 查询指定对象的同步进度
  - 查询所有正在同步的对象进度
  - 查询指定对象的插入进度
  - 查询所有正在插入的对象进度
  - 查询指定对象的更新进度
  - 查询所有正在更新的对象进度
- 在 DataiIntegrationObjectServiceImpl 中集成进度跟踪功能:
  - syncFullData 方法集成同步进度跟踪
  - syncIncrementalData 方法集成同步进度跟踪
  - insertObjectDataToTarget 方法集成插入进度跟踪
  - updateObjectDataToTarget 方法集成更新进度跟踪
- 进度信息存储在内存中(ConcurrentHashMap),任务完成后立即清除
- 新增 3 个需求文档(REQ-002、REQ-003、REQ-004)
- 新增 3 个架构决策记录(0002、0003、0004)
- 新增 3 个提示词文件(002、003、004)
- 新增 3 个会话记录
- 新增 3 个变更记录(0012、0013、0014)
- 新增 3 个复盘报告
- 新增 6 个 API 文档
- 更新 CHANGELOG.md 和 docs/index.md
2026-01-16 13:02:09 +08:00
4f01af9025 feat:忽略sql文件 2026-01-14 17:31:25 +08:00
a383cde260 feat: 优化 autoLogin 接口支持 ORG 类型参数
主要修改:
1. DataISfLoginController.autoLogin() 方法优化
   - 添加 orgType 参数(source/target)支持指定 ORG 类型
   - 使用 selectLatestSuccessLoginHistoryByOrgType() 根据指定 ORG 类型查询登录历史
   - 优化日志输出,明确显示请求的 ORG 类型
   - 改进错误提示,显示未找到哪个 ORG 类型的登录历史

2. 更新接口文档
   - 更新版本号:v1.0 -> v1.1
   - 添加 orgType Query 参数说明
   - 更新请求示例,区分源 ORG 和目标 ORG
   - 更新错误处理,针对不同 ORG 类型提供具体错误信息
   - 更新注意事项,强调必须指定 orgType 参数
   - 更新实现细节,说明根据 orgType 查询对应登录历史
   - 扩展测试用例,覆盖不同 ORG 类型的场景

功能说明:
- 支持源 ORG 和目标 ORG 的独立自动登录
- 源 ORG 和目标 ORG 的登录历史完全隔离
- 通过 orgType 参数精确控制登录哪个 ORG
2026-01-14 15:22:07 +08:00
1af07403fb fix: 修复 setting 模块业务逻辑问题和 NullPointerException
主要修改:
1. 添加 orgType 字段支持源/目标 ORG 类型隔离
   - DataiConfigAuditLog、DataiConfigEnvironment、DataiConfigSnapshot 添加 orgType 字段
   - 相关 DTO、VO、Mapper XML 同步更新
   - 创建 SQL 脚本:add_org_type_to_*.sql

2. 修复业务逻辑问题
   - SalesforceConfigCacheManager:添加并发安全锁,修复环境初始化查询条件
   - DataiConfigSnapshotServiceImpl:添加快照恢复审计日志记录
   - DataiConfigEnvironmentServiceImpl:完善环境切换的事务回滚机制
   - EnvironmentSwitchListener:移除重复环境切换,移除 @Async 注解
   - ConfigChangeListener:添加空指针检查

3. 修复 NullPointerException
   - DataiConfigurationController.list():添加 list 空值检查
   - DataiConfigSnapshotController.list():添加 list 空值检查
   - 过滤 null environmentId 防止 Map 创建失败

4. 生成 API 文档
   - DataiConfigEnvironmentController:切换环境、获取当前环境接口文档
   - DataiConfigSnapshotController:快照管理完整接口文档
   - DataiConfigurationController:配置管理完整接口文档
   - 创建 setting 模块索引:docs/api-docs/setting/index.md

5. 更新文档索引
   - 更新 docs/index.md 添加 setting 模块索引链接
2026-01-14 14:08:33 +08:00
ccc7109c31 feat(salesforce-integration): 完善实时同步和统计功能
主要变更:
- 新增实时同步日志统计接口,支持多维度统计(综合、对象、操作类型、状态、时间趋势)
- 新增实时同步统计接口,提供服务状态、对象统计和订阅统计
- 实现实时服务手动启动管理,移除自动启动注解
- 移除所有统计相关功能(EventProcessor、DataSynchronizer统计方法)
- 解决DataiIntegrationObjectServiceImpl和ObjectRegistryImpl循环依赖问题
- 完善元数据变更统计功能,支持自动时间范围和缺失数据点填充
- 修复SQL布尔值兼容性问题(true/false改为1/0)
- 新增SysJobController和SysJobLogController接口文档
- 更新项目文档和变更日志

技术细节:
- 添加@Lazy注解解决循环依赖
- 实现时间趋势统计的自动时间范围处理
- 支持多种时间单位(天、周、月、季度)的趋势分析
- 优化同步成功率计算和数据处理完整性
- 遵循项目文档规范,更新唯一真源
2026-01-13 13:51:33 +08:00
517284b614 feat: 实现Salesforce Pub/Sub API实时数据同步
主要变更:
- 新增PubSubConnectionFactory连接工厂,提供Pub/Sub API连接管理
- 新增PubSubEventSubscriberImpl实现,支持Pub/Sub API事件订阅
- 更新EventProcessorImpl,添加事件批次处理能力
- 更新RealtimeSyncService,使用Pub/Sub API替代CDC实现
- 更新Authentication.canvas架构文档,添加Pub/Sub组件
- 优化同步配置管理和实时同步日志功能

技术改进:
- 提升实时同步性能和可靠性
- 支持批量事件处理,提高吞吐量
- 完善连接工厂模式,统一管理连接生命周期
2026-01-12 10:31:25 +08:00
8a6e65d34f 优化数据同步日志统计功能,增强参数验证和错误处理 2026-01-09 14:24:58 +08:00