Go to file
2026-01-14 17:48:10 +08:00
.trae/rules 优化项目规则文件,添加变更记录文档 2026-01-09 09:37:41 +08:00
.vscode 【feat】 初始化整个项目 2025-12-14 12:50:08 +08:00
bin 【feat】 初始化整个项目 2025-12-14 12:50:08 +08:00
datai-admin 【feat】 初步实现数据同步拉取 2026-01-07 13:52:00 +08:00
datai-common 【feat】 优化元数据变更同步本地 2026-01-05 13:58:16 +08:00
datai-framework 【feat】 初始化整个项目 2025-12-14 12:50:08 +08:00
datai-models fix: 优化Pub/Sub API实时数据同步实现 2026-01-12 10:50:45 +08:00
datai-plugins feat(salesforce-integration): 完善实时同步和统计功能 2026-01-13 13:51:33 +08:00
datai-scenes 剔除所有sql 2026-01-14 17:48:10 +08:00
datai-system 【feat】 初始化整个项目 2025-12-14 12:50:08 +08:00
.gitignore feat:忽略sql文件 2026-01-14 17:31:25 +08:00
LICENSE feat:更新许可证 2026-01-14 17:44:04 +08:00
pom.xml 【feat】 初始化整个项目 2025-12-14 12:50:08 +08:00
README.md feat: 优化 README 文档并完善批次数据管理功能 2026-01-14 17:24:57 +08:00
ry.bat 【feat】 初始化整个项目 2025-12-14 12:50:08 +08:00
ry.sh 【feat】 初始化整个项目 2025-12-14 12:50:08 +08:00

Datai - Salesforce 集成系统

项目概述

Datai 是一个基于若依Geek框架构建的企业级管理系统采用模块化架构设计提供可扩展的插件和场景模块。系统集成了 Salesforce 平台,支持多种 API 交互方式,实现数据同步、认证管理和元数据处理等核心功能。

当前实现状态:项目目前专注于从 Salesforce 源系统同步数据到本地数据库,包括元数据管理、批量数据同步、实时数据同步等功能。

技术栈

技术 版本 说明
Java 21 / 22 根项目使用 Java 21Salesforce 模块使用 Java 22
Spring Boot 3.5.7 核心框架
MyBatis 3.5.16 持久层框架
MySQL 8.3.0 关系型数据库
PostgreSQL 42.7.7 关系型数据库
Knife4j 4.5.0 API 文档工具
Druid 1.2.27 数据库连接池
Maven - 构建工具
Salesforce Partner API 0.0.1 Salesforce SOAP API 客户端
Salesforce Pub/Sub Client 0.2.21 Salesforce CDC 实时同步客户端
Apache Avro 1.11.3 数据序列化格式
Fastjson 2.0.58 JSON 解析器
JWT 0.12.6 Token 生成与解析
PageHelper 2.1.1 分页插件

项目结构

datai/
├── datai-admin/              # 管理后台启动模块
├── datai-framework/           # 框架核心模块
├── datai-system/              # 系统管理模块
├── datai-common/              # 通用工具模块
├── datai-scenes/              # 场景模块
│   ├── datai-scene-salesforce/ # Salesforce 集成场景
│   │   ├── datai-salesforce-auth/       # 认证相关模块
│   │   ├── datai-salesforce-common/      # 通用工具和常量
│   │   ├── datai-salesforce-integration/ # 核心集成模块
│   │   ├── datai-salesforce-setting/     # 配置管理模块
│   │   └── datai-salesforce-starter/     # 启动器模块
│   ├── datai-scene-auth/       # 认证场景
│   │   ├── datai-auth-common/           # 认证通用模块
│   │   ├── datai-auth-starter/           # 认证启动器
│   │   ├── datai-oauth-justauth/        # JustAuth OAuth
│   │   ├── datai-oauth-wx/               # 微信 OAuth
│   │   ├── datai-tfa-email/              # 邮箱双因子认证
│   │   └── datai-tfa-phone/              # 手机双因子认证
│   ├── datai-scene-pay/        # 支付场景
│   │   ├── datai-pay-common/             # 支付通用模块
│   │   ├── datai-pay-starter/            # 支付启动器
│   │   ├── datai-pay-alipay/             # 支付宝支付
│   │   ├── datai-pay-wx/                 # 微信支付
│   │   └── datai-pay-sqb/                # 收钱吧支付
│   └── datai-scene-file/       # 文件场景
│       ├── datai-file-common/            # 文件通用模块
│       ├── datai-file-starter/            # 文件启动器
│       ├── datai-file-local/              # 本地文件存储
│       ├── datai-file-minio/              # MinIO 文件存储
│       └── datai-file-aliyun-oss/        # 阿里云 OSS 文件存储
├── datai-plugins/             # 插件模块
│   ├── datai-plugins-starter/  # 插件启动器
│   ├── datai-mybatis-plus/     # MyBatis Plus 插件
│   ├── datai-cache-redis/      # Redis 缓存插件
│   ├── datai-cache-ehcache/   # Ehcache 缓存插件
│   ├── datai-rabbitmq/        # RabbitMQ 消息队列插件
│   ├── datai-websocket/       # WebSocket 插件
│   ├── datai-netty/           # Netty 网络插件
│   └── datai-atomikos/        # Atomikos 分布式事务插件
└── datai-models/              # 模型模块
    ├── datai-models-starter/   # 模型启动器
    ├── datai-quartz/          # Quartz 定时任务
    ├── datai-form/            # 表单管理
    ├── datai-message/         # 消息管理
    ├── datai-generator/       # 代码生成器
    ├── datai-online/          # 在线用户
    └── datai-flowable/        # 工作流

核心功能

Salesforce 集成模块(当前实现)

提供与 Salesforce 源系统的数据集成解决方案,支持从 Salesforce 同步数据到本地数据库。

认证管理

  • 多种登录方式: OAuth2、SessionId、CLI、Legacy Credential
  • 会话管理: 登录会话的创建、查询和销毁
  • 历史记录: 登录历史记录的查询和统计

数据同步(源系统 → 本地)

  • Bulk API v1/v2: 批量数据同步,支持大规模数据导入导出
  • Partner API: SOAP API 数据交互,支持 CRUD 操作
  • REST API: RESTful API 数据交互
  • CDC 实时同步: Change Data Capture 实时数据同步

元数据管理

  • 对象管理: Salesforce 对象的查询、同步和结构创建
  • 字段管理: 对象字段的查询和管理
  • Picklist 管理: Picklist 值的查询和管理
  • Lookup 过滤器: Lookup 过滤器的查询和管理

批次管理

  • 批次创建: 创建数据同步批次
  • 批次数据插入: 将本地数据插入到 Salesforce保存返回 ID
  • 批次数据更新: 使用保存的 ID 更新 Salesforce 数据
  • 批次重试: 失败批次的重试机制
  • 批次历史: 批次操作历史记录

实时同步

  • Pub/Sub API: Salesforce Event Bus 实时数据订阅
  • 事件处理: CDC 事件的接收和处理
  • 数据同步: 实时数据同步到本地数据库
  • 服务管理: 实时同步服务的启动、停止和重启

监控日志

  • API 调用日志: Salesforce API 调用记录和统计
  • 同步日志: 数据同步操作日志
  • 速率限制监控: Salesforce API 速率限制监控
  • 实时同步日志: CDC 实时同步日志

开发计划

1. 数据推送到目标 Salesforce 系统

  • 目标系统认证: 支持目标 Salesforce 系统的多种认证方式
  • 数据推送: 支持将本地数据批量推送到目标 Salesforce 系统
  • 双向同步: 实现源系统 → 本地 → 目标系统的数据流转
  • 数据映射: 支持源系统和目标系统之间的字段映射
  • 推送监控: 数据推送任务的监控和日志记录

2. 源 Salesforce 系统文件下载

  • 文件元数据: 获取 Salesforce 附件和文档的元数据信息
  • 文件下载: 支持批量下载 Salesforce 中的文件Attachment、Document、ContentVersion
  • 文件存储: 支持本地存储、MinIO、阿里云 OSS 等多种存储方式
  • 文件同步: 文件与数据的关联同步
  • 下载监控: 文件下载任务的监控和进度追踪

3. User 权限同步集成系统

  • 权限元数据: 同步 Salesforce User、Profile、PermissionSet、Role 等权限相关对象
  • 权限映射: 将 Salesforce 权限映射到系统用户权限
  • 数据权限控制: 基于用户权限控制数据访问范围
  • 权限同步: 实时同步用户权限变更
  • 权限审计: 权限变更的审计日志

4. 集成可视化报表插件

  • 报表设计器: 可视化拖拽式报表设计器,支持自定义报表布局
  • 数据源配置: 支持从本地数据库和 Salesforce 系统配置数据源
  • 图表组件: 提供丰富的图表类型(柱状图、折线图、饼图、表格等)
  • 数据筛选: 支持动态筛选条件和参数化查询
  • 报表导出: 支持导出为 PDF、Excel、图片等多种格式
  • 报表分享: 支持报表分享和权限控制
  • 实时刷新: 支持报表数据的实时刷新和定时更新
  • 报表模板: 提供常用报表模板,快速生成标准报表

认证场景模块

  • OAuth 集成: JustAuth 和微信 OAuth 登录
  • 双因子认证: 邮箱和手机双因子认证
  • 用户管理: OAuth 用户信息管理

文件场景模块

  • 本地存储: 本地文件系统存储
  • MinIO 存储: MinIO 对象存储
  • 阿里云 OSS: 阿里云对象存储服务
  • 文件管理: 文件上传、下载和管理

插件模块

  • MyBatis Plus: MyBatis 增强工具
  • Redis 缓存: Redis 分布式缓存
  • Ehcache 缓存: Ehcache 本地缓存
  • RabbitMQ: 消息队列中间件
  • WebSocket: WebSocket 实时通信
  • Netty: Netty 网络框架
  • Atomikos: 分布式事务管理

模型模块

  • Quartz: 定时任务调度
  • 表单管理: 动态表单生成和管理
  • 消息管理: 系统消息管理
  • 代码生成器: 代码自动生成工具
  • 在线用户: 在线用户管理
  • 工作流: Flowable 工作流引擎

快速开始

环境要求

  • JDK 21+
  • Maven 3.6+
  • MySQL 8.3.0+ 或 PostgreSQL 42.7.7+
  • Redis可选用于缓存

配置说明

关键配置项

配置项 默认值 说明
server.port 8080 服务端口
datai.profile D:/datai/uploadPath 文件上传路径
datai.fileServer local 文件服务类型local/minio/oss
datai.fileMaxSize 50 文件上传最大大小MB
spring.cache.type redis 缓存类型redis/jcache
token.expireTime 1440 Token 有效期(分钟)
pagehelper.helperDialect mysql 数据库方言

启用配置文件

  • application-druid.yml: 数据库连接池配置
  • application-file.yml: 文件服务配置
  • application-auth.yml: 认证配置
  • application-pay.yml: 支付配置
  • application-plugins.yml: 插件配置
  • application-model.yml: 模型配置
  • application-apidoc.yml: API 文档配置

构建项目

mvn clean install

运行项目

cd datai-admin
mvn spring-boot:run

启动成功后,访问:

文档

项目规则

项目采用基于单一真源 (Single Source of Truth) 的 Workflow所有项目相关文档和决策均集中在 docs/ 目录中。

Salesforce 模块文档

详细文档请参考 Salesforce 集成模块文档中心

文档目录

贡献指南

请参考 CONTRIBUTING.md 了解如何参与项目贡献。

变更日志

请参考 CHANGELOG.md 查看项目变更记录。

许可证

本项目基于若依Geek框架开发遵循相应的开源许可证。

联系方式