Compare commits

...

164 Commits

Author SHA1 Message Date
FCL
def2956dae Merge remote-tracking branch 'origin/test' into test 2025-12-24 14:07:02 +08:00
wxr
6125fa04d8 镜像打包批处理脚本 2025-12-24 14:06:48 +08:00
FCL
b9f5a99184 fix:修改附件上传大小限制 2025-12-24 14:02:09 +08:00
chenbowen
e5d9036dfa Merge branch 'dev' into test 2025-12-18 14:22:23 +08:00
chenbowen
6dd44ea02d Merge remote-tracking branch 'base-version/main' into dev 2025-12-18 14:21:38 +08:00
chenbowen
1fa7416905 1. 统一 iwork 的同步组织代码生成逻辑 2025-12-18 14:18:56 +08:00
chenbowen
b96d40b8d1 Merge branch 'dev' into test 2025-12-18 13:21:54 +08:00
chenbowen
c86a765b73 Merge remote-tracking branch 'base-version/main' into dev 2025-12-18 13:21:03 +08:00
chenbowen
870c6a5f88 1. 统一 iwork 的同步组织代码生成逻辑 2025-12-18 13:19:39 +08:00
chenbowen
660e0cf401 Merge branch 'dev' into test 2025-12-17 20:18:58 +08:00
chenbowen
9bc519aa0d Merge remote-tracking branch 'base-version/main' into dev 2025-12-17 20:18:42 +08:00
chenbowen
4082e61874 1. 调整初始化脚本 2025-12-17 20:18:13 +08:00
chenbowen
f40ae1aa74 Merge branch 'dev' into test 2025-12-17 15:10:44 +08:00
chenbowen
878dfde572 Merge remote-tracking branch 'base-version/main' into dev 2025-12-17 15:10:28 +08:00
chenbowen
1303ac250e 1. 使用 id 进行同步,避免 username 修改后提示重复的 bug 2025-12-17 15:10:06 +08:00
chenbowen
bfee58e0d7 Merge branch 'dev' into test 2025-12-17 14:40:15 +08:00
chenbowen
a4924bd718 Merge remote-tracking branch 'base-version/main' into dev 2025-12-17 14:40:00 +08:00
chenbowen
d81413e239 1. 修复 databus 在多层嵌套的 json 报文,签名存在异常的 bug 2025-12-17 14:39:23 +08:00
wencai he
e6a0eef084 Merge branch 'dev' into 'test'
Dev

See merge request jygk/dsc!11
2025-12-17 03:32:22 +00:00
hewencai
0b8e200aa1 Merge remote-tracking branch 'origin/dev' into dev 2025-12-17 11:32:12 +08:00
hewencai
738c82b000 update:调整数据同步生产topic生成器 2025-12-17 11:31:57 +08:00
chenbowen
ccdf3d28ff 1. 固定 databus 服务在 64 ip 配合网络测试 2025-12-17 09:42:16 +08:00
chenbowen
498e0b864a Merge branch 'dev' into test 2025-12-16 21:36:52 +08:00
chenbowen
2d5b71896e Merge remote-tracking branch 'base-version/main' into dev 2025-12-16 21:36:36 +08:00
chenbowen
12157d5dcb 1. 修复 databus 在多层嵌套的 json 报文,签名存在异常的 bug 2025-12-16 21:35:08 +08:00
hewencai
7e25d6d106 fix:修复数据同步配置校验缺失问题
(cherry picked from commit 13403ea027)
2025-12-16 18:43:38 +08:00
hewencai
13403ea027 fix:修复数据同步配置校验缺失问题 2025-12-16 18:43:08 +08:00
hewencai
fcc32fa2d8 Merge remote-tracking branch 'ztcloud/main' into main-ztcloud 2025-12-16 16:36:56 +08:00
hewencai
72fe903447 update:数据同步分发机构岗位绑定关系 2025-12-16 16:36:34 +08:00
hewencai
8782631eaa update:数据同步分发机构岗位绑定关系 2025-12-16 16:36:30 +08:00
hewencai
a57d05ccd6 update:数据同步统一使用枚举类 2025-12-16 16:36:29 +08:00
wencai he
3828884a8b Merge branch 'dev' into 'test'
update:数据同步分发机构岗位绑定关系

See merge request jygk/dsc!10
2025-12-16 06:34:34 +00:00
hewencai
218c6aa3dc update:数据同步分发机构岗位绑定关系 2025-12-16 14:34:13 +08:00
chenbowen
aef2bf6e1d Merge branch 'dev' into test 2025-12-16 14:03:08 +08:00
chenbowen
afc8c0f23c Merge remote-tracking branch 'base-version/main' into dev 2025-12-16 14:02:53 +08:00
chenbowen
b6f5649b97 1. 新增生成自有组织 CODE,同步其他系统额外生成编码映射关系,添加相关的单元测试用例 2025-12-16 14:00:52 +08:00
wencai he
59ddd41590 Merge branch 'dev' into 'test'
update:数据同步分发机构岗位绑定关系

See merge request jygk/dsc!9
2025-12-16 04:03:41 +00:00
hewencai
ba1bc1fb6f update:数据同步分发机构岗位绑定关系 2025-12-16 12:03:15 +08:00
chenbowen
d62d06a45e Merge branch 'dev' into test 2025-12-15 21:15:03 +08:00
chenbowen
df3e80d907 Merge remote-tracking branch 'base-version/main' into dev 2025-12-15 21:14:45 +08:00
chenbowen
69d3dbc61f 1. 新增生成自有组织 CODE,同步其他系统额外生成编码映射关系 2025-12-15 21:14:06 +08:00
wencai he
fffea61d51 Merge branch 'dev' into 'test'
update:数据同步统一使用枚举类

See merge request jygk/dsc!8
2025-12-15 12:05:35 +00:00
hewencai
b7ec17694d update:数据同步统一使用枚举类 2025-12-15 20:04:43 +08:00
chenbowen
6fc1dface2 1. 测试 iwork 临时调整 2025-12-15 19:48:26 +08:00
chenbowen
b8406a907b Merge branch 'dev' into test 2025-12-15 19:26:27 +08:00
chenbowen
951b9bf67d Merge remote-tracking branch 'base-version/main' into dev 2025-12-15 19:26:14 +08:00
chenbowen
2323ee5c3b 1. 新增生成自有组织 CODE,同步其他系统额外生成编码映射关系 2025-12-15 19:25:19 +08:00
chenbowen
27bf25fdb0 Merge branch 'dev' into test 2025-12-14 13:53:20 +08:00
chenbowen
8254bb4536 Merge remote-tracking branch 'base-version/main' into dev 2025-12-14 13:52:57 +08:00
chenbowen
8d25f4224b 1. 临时去除掉硬性的 databus 签名校验 2025-12-14 13:52:14 +08:00
chenbowen
ec12664688 Merge branch 'dev' into test 2025-12-12 16:12:18 +08:00
chenbowen
5ad6886880 Merge remote-tracking branch 'base-version/main' into dev 2025-12-12 16:11:56 +08:00
chenbowen
b0838b6ae0 1. 新增 95 短信渠道回调接口 2025-12-12 16:09:22 +08:00
chenbowen
4d963f0f0c 1. 所有服务追加 dns 服务解析 2025-12-12 15:42:03 +08:00
chenbowen
ca82c9def3 Merge branch 'dev' into test 2025-12-12 14:46:15 +08:00
chenbowen
ce7b18997b 1. 修复注释移动云 mas 短信枚举导致启动失败 2025-12-12 14:45:53 +08:00
chenbowen
4fc05fc094 Merge branch 'dev' into test 2025-12-12 10:14:18 +08:00
chenbowen
1991863573 注释移动云 mas 短信相关的实现 2025-12-12 10:13:58 +08:00
chenbowen
1706a70499 Merge remote-tracking branch 'base-version/main' into dev
# Conflicts:
#	zt-framework/zt-spring-boot-starter-test/src/main/java/com/zt/plat/framework/test/core/ut/BaseDbUnitTest.java
#	zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/framework/sms/core/client/impl/SmsClientFactoryImpl.java
#	zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/framework/sms/core/enums/SmsChannelEnum.java
2025-12-12 10:05:36 +08:00
chenbowen
cae0b9e4af 1. 新增 api 绑定客户凭证进行权限校验
2. 去除 api 定义的缓存策略
3. 新增短信渠道
4. 新增用户信息模糊查询
5. 修复全局的单元测试
2025-12-12 10:03:10 +08:00
chenbowen
0f10bd2289 Merge branch 'dev' into test 2025-12-09 19:13:16 +08:00
chenbowen
3609cb2e18 Merge remote-tracking branch 'base-version/main' into dev 2025-12-09 19:13:01 +08:00
chenbowen
99645c5ac8 1. 修复 iwork api 与 controller 中的 vo dto 不对应的问题 2025-12-09 19:12:03 +08:00
chenbowen
39a82b6537 Merge branch 'dev' into test
# Conflicts:
#	zt-module-databus/zt-module-databus-server/src/main/resources/application-dev.yml
2025-12-09 16:25:53 +08:00
chenbowen
577df1c6e7 Merge remote-tracking branch 'base-version/main' into dev 2025-12-09 16:25:18 +08:00
chenbowen
29e0c7da14 1. 新增 api 绑定客户凭证进行权限校验 2025-12-09 16:24:17 +08:00
chenbowen
d8b2c4d7b1 Merge branch 'dev' into test 2025-12-08 19:01:17 +08:00
chenbowen
7a1cbabcad Merge remote-tracking branch 'base-version/main' into dev 2025-12-08 19:00:52 +08:00
chenbowen
91c0cbc5d7 1. 新增 OA Token 获取与校验接口,更新相关配置
2. 设置组织可以设置为顶层组织
2025-12-08 18:56:06 +08:00
chenbowen
30b5db0617 发布时,网关不在同步进行发布 2025-12-08 09:34:46 +08:00
chenbowen
efd1e8a19e Merge branch 'dev' into test 2025-12-08 09:17:24 +08:00
chenbowen
d053d1396a Merge remote-tracking branch 'base-version/main' into dev 2025-12-08 09:17:11 +08:00
chenbowen
8ea3757105 定时调度请求 databus 的时间调整为 25 分钟一次 2025-12-08 09:16:31 +08:00
chenbowen
7bef916e95 Merge branch 'dev' into test 2025-12-05 18:18:21 +08:00
chenbowen
35bb96b701 Merge remote-tracking branch 'base-version/main' into dev 2025-12-05 18:18:06 +08:00
chenbowen
66a43c74f2 1. 精简 iwork 相关的集成配置与接口 2025-12-05 18:16:23 +08:00
chenbowen
7d8e4f2e67 Merge branch 'dev' into test 2025-12-05 18:13:19 +08:00
chenbowen
89ceac450e Merge remote-tracking branch 'base-version/main' into dev 2025-12-05 18:12:54 +08:00
hewencai
8b7e7da6c2 update:增加门户管理允许匿名访问 2025-12-05 18:12:13 +08:00
wencai he
1c17c6539b Merge branch 'dev' into 'test'
update:增加门户管理允许匿名访问

See merge request jygk/dsc!7
2025-12-05 07:48:18 +00:00
hewencai
2715799922 update:增加门户管理允许匿名访问 2025-12-05 15:46:38 +08:00
chenbowen
d1a85c7653 新增定时调度携带具体 IP 2025-12-05 15:33:29 +08:00
wencai he
ee7b974c1a Merge branch 'dev' into 'test'
update:增加门户管理允许匿名访问

See merge request jygk/dsc!6
2025-12-05 07:25:06 +00:00
hewencai
9199e6e5aa update:增加门户管理允许匿名访问
(cherry picked from commit ba737a6a28)
2025-12-05 15:23:10 +08:00
hewencai
ba737a6a28 update:增加门户管理允许匿名访问 2025-12-05 15:19:40 +08:00
hewencai
774734033c Merge remote-tracking branch 'ztcloud/main' into main-ztcloud 2025-12-05 12:20:54 +08:00
hewencai
b11ffb4782 修改门户管理图片显示逻辑 2025-12-05 12:20:25 +08:00
hewencai
5e24c5a509 feat:新增门户管理功能 2025-12-05 12:20:24 +08:00
hewencai
427c0bd6b1 add:增加seata和doc4j依赖 2025-12-05 12:20:21 +08:00
chenbowen
5915f652ed Merge branch 'dev' into test 2025-12-05 11:54:06 +08:00
chenbowen
5ce3724798 Merge remote-tracking branch 'base-version/main' into dev 2025-12-05 11:53:50 +08:00
chenbowen
d2e4c593c8 新增公司部门切换菜单权限 2025-12-05 11:53:11 +08:00
chenbowen
f4211f0011 新增公司部门切换菜单权限 2025-12-05 11:52:58 +08:00
chenbowen
b368a4e6d5 Merge branch 'dev' into test 2025-12-05 09:05:08 +08:00
chenbowen
a361dbaaba Merge remote-tracking branch 'base-version/main' into dev 2025-12-05 09:04:46 +08:00
chenbowen
52a0109960 临时关闭签名校验 2025-12-05 09:04:02 +08:00
chenbowen
4f8a2f2e2d Merge branch 'dev' into test 2025-12-04 19:24:06 +08:00
chenbowen
ce2119002c Merge remote-tracking branch 'base-version/main' into dev 2025-12-04 19:23:27 +08:00
chenbowen
a0b51edd9b 调整密码输入不校验长度 2025-12-04 19:22:41 +08:00
hewencai
25978ad4b9 fix:还原databus端口配置 2025-12-04 15:49:46 +08:00
hewencai
ffc7d0247d refactor(databus): 代码审查修复和TODO完成
修复硬编码配置:
- 修改日志路径为环境变量:${LOG_PATH:./logs}/${spring.application.name}.log
- 修改 RocketMQ 地址为环境变量:${ROCKETMQ_NAME_SERVER:172.16.46.63:30876}
- 还原 Nacos namespace 从 hwc 到 dev

完成 TODO 功能:
- TODO #1: 实现死信重试逻辑(重新投递消息到 MQ)
- TODO #2: 实现日志重试逻辑(根据事件记录重新推送)
- TODO #3: 实现全量同步触发(创建任务并异步执行)
- TODO #4: 实现事件 ID 查询(通过 eventType 查询事件定义)

涉及文件:
- pom.xml: 还原 Nacos namespace 到 dev
- DatabusSyncDeadLetterServiceImpl: 实现死信重试
- DatabusSyncLogServiceImpl: 实现日志重试
- DatabusSyncSubscriptionServiceImpl: 实现全量同步触发
- DatabusEventPublisherImpl: 实现事件 ID 查询
- application-*.yml/yaml: 修复硬编码配置

Ref: 代码审查报告
2025-12-04 15:49:46 +08:00
hewencai
e093157bb5 fix(databus): 修改变更消息开关默认值为 false,安全优先
- 修改 DatabusChangeProducer.enabled 默认值从 true 改为 false
- 避免未配置时导致消息循环,安全优先原则
- 集团侧(数据源)必须显式配置 enabled=true 才能发送变更消息
- 客户端(分公司)保持默认 false 或不配置,禁用变更消息

配置说明:
- 默认值:false(安全)
- 集团侧:application-dev.yaml 中显式设置 enabled=true
- 客户端:不配置或设置 enabled=false

Ref: 防止未配置导致项目异常
2025-12-04 15:49:45 +08:00
hewencai
6ac4a356cd fix(databus): 修复客户端消息处理和防止消息循环
1. 修复消息格式不匹配问题
   - 增量消息:兼容 SyncMessage 格式,从 dataSnapshot 字段反序列化数据
   - 批量消息:添加 getDataType() 方法获取泛型类型,正确转换 JSONObject

2. 防止消息循环
   - 添加 zt.databus.change.producer.enabled 配置项
   - 客户端禁用变更消息发送,避免 客户端写入 → 发送变更 → 循环

3. 修复 Feign 客户端注入
   - 在 RpcConfiguration 中添加 DeptApi、PostApi
   - 确保客户端能通过 Feign 调用本地 system-server API

相关文件:
- DatabusClientConsumer.java: 修复消息解析逻辑
- BatchSyncEventHandler.java: 添加 getDataType() 方法
- DatabusChangeProducer.java: 添加 enabled 开关
- RpcConfiguration.java: 启用 DeptApi/PostApi Feign 客户端

Ref: 修复 ClassCastException 和消息循环问题
2025-12-04 15:49:45 +08:00
hewencai
adf3ec601a feat(databus-client): 完成核心组件及编译验证(任务 89-92)
新增核心组件(任务 89-90):
1. HandlerRegistry.java - Handler 策略注册表
   - 自动注册所有 SyncEventHandler 和 BatchSyncEventHandler
   - 根据 eventType 路由到对应 Handler
   - 提供 getIncrementalHandler/getBatchHandler 方法
   - 支持 hasIncrementalHandler/hasBatchHandler 检查

2. DatabusClientConsumer.java - 统一消费者
   - 监听 databus-sync-{clientCode} Topic(简化版)
   - 根据消息字段判断增量/批量消息
   - 调用 HandlerRegistry 路由到具体 Handler
   - 支持全量同步生命周期回调(onFullSyncStart/onFullSyncComplete)

已存在接口(任务 91-92):
1. SyncEventHandler.java - 增量同步 Handler 接口
2. BatchSyncEventHandler.java - 全量同步 Handler 接口

架构设计:
- 策略模式:通过 HandlerRegistry 动态路由
- Topic 简化:databus-sync-{clientCode}(所有事件共用)
- 消息路由:通过 eventType 字段区分事件类型
- 条件装配:@ConditionalOnProperty 灵活启用/禁用

编译结果: BUILD SUCCESS(30个源文件)

Ref: docs/databus/implementation-checklist.md 任务 89-92
2025-12-04 15:49:44 +08:00
hewencai
8329f9c834 feat(databus-client): 完成岗位 Handler 及编译验证(任务 75-88)
新增文件(任务 75-88):
- PostSyncService.java - 岗位同步服务接口
- PostSyncServiceImpl.java - 岗位同步服务实现(Feign调用)
- SystemPostCreateHandler.java - 岗位创建事件处理器
- SystemPostUpdateHandler.java - 岗位更新事件处理器
- SystemPostDeleteHandler.java - 岗位删除事件处理器
- SystemPostFullHandler.java - 岗位全量同步处理器(批量)

修复问题:
1. 修复 DTO 导入:DeptSaveReqVO → DeptSaveReqDTO, PostSaveReqVO → PostSaveReqDTO
2. 修复注解:@Resource(required=false) → @Autowired(required=false)
3. 修复 PostApi 包路径:com.zt.plat.module.system.api.post → com.zt.plat.module.system.api.dept
4. 修复 DeptSaveReqDTO 字段映射(移除不存在的字段:code, shortName, isCompany, isGroup, deptSource)
5. 修复 AdminUserSaveReqDTO 字段映射:
   - deptIds: List<Long> → Set<Long>
   - postIds: List<Long> → Set<Long>

编译结果: BUILD SUCCESS(28个源文件)

Ref: docs/databus/implementation-checklist.md 任务 75-88
2025-12-04 15:49:43 +08:00
hewencai
94ab320fa8 feat(system-server): 添加 DataBus MapStruct 数据转换器
- 新增 DatabusDeptConvert (DeptDO → DatabusDeptData)
- 新增 DatabusUserConvert (AdminUserDO → DatabusAdminUserData)
- 新增 DatabusPostConvert (PostDO → DatabusPostData)

说明:
- 转换器忽略了需要额外查询的复杂字段(如 deptType, leaderUserName, depts, posts)
- PostDO 不包含 tenantId,已配置忽略该字段映射
- 验证 system-server 编译通过

Ref: docs/databus/implementation-checklist.md 任务 20-22
2025-12-04 15:49:43 +08:00
hewencai
bd90ec9d70 feat(databus): 完成阶段四-DataBus Server完整功能
- 补充缺失的 API 类(DatabusMessage、DatabusBatchMessage、DatabusEventType)
- 新增变更消息消费者(3个:部门、用户、岗位)
- 新增数据提供者(3个:部门、用户、岗位)
- 确认分发器服务(核心定向推送逻辑)
- 确认全量同步与消息推送组件
- 确认管理后台 API(5个 Controller)
- 确认 Service ��(4个核心服务)
- 确认 DAL 层(7个 DO + Mapper)
- 添加 databus-server starter 依赖到 pom.xml
- 编译验证通过

Ref: docs/databus/implementation-checklist.md 任务 39-70
2025-12-04 15:49:42 +08:00
hewencai
acdc73999a feat(databus): 完成阶段一+二-数据契约层与数据提供者
阶段一:数据契约层(任务 1-16)
- 新增 DatabusDeptData, DatabusAdminUserData, DatabusPostData 数据对象
- 新增 CursorPageReqDTO, CursorPageResult 游标分页 DTO
- 新增 DatabusDeptProviderApi, DatabusUserProviderApi, DatabusPostProviderApi Feign 接口
- 修改 system-api pom.xml 添加 databus-api 依赖

阶段二:数据提供者实现(任务 17-38)
- 新增 DatabusDeptProviderApiImpl, DatabusUserProviderApiImpl, DatabusPostProviderApiImpl Feign 接口实现
- 实现游标分页查询(基于 cursorTime + cursorId 复合游标)
- 新增 DatabusDeptChangeMessage, DatabusUserChangeMessage, DatabusPostChangeMessage MQ 消息类
- 新增 DatabusChangeProducer 消息生产者(支持部门、用户、岗位三实体)
- 修改 DeptServiceImpl, AdminUserServiceImpl, PostServiceImpl 添加事件发布

技术要点:
- 游标分页:cursorTime + cursorId 复合游标解决雪花ID乱序问题
- 事件发布:create/update/delete 操作后异步发送 MQ 消息
- 数据聚合:用户数据包含部门和岗位简要信息

Ref: docs/databus/implementation-checklist.md 任务 1-38
2025-12-04 15:49:41 +08:00
chenbowen
6f665a3681 Merge branch 'dev' into test 2025-12-04 15:08:36 +08:00
chenbowen
7694d38cd7 Merge remote-tracking branch 'base-version/main' into dev 2025-12-04 15:08:18 +08:00
chenbowen
50259f514f 限制部门与用户的全量查询 2025-12-04 15:07:53 +08:00
wencai he
35be7d03f9 Merge branch 'dev' into 'test'
fix:还原databus端口配置

See merge request jygk/dsc!5
2025-12-04 06:42:31 +00:00
hewencai
9cfe8c4dc7 fix:还原databus端口配置 2025-12-04 14:41:59 +08:00
wencai he
71c523bbe8 Merge branch 'dev' into 'test'
feat(databus): 完成阶段一+二-数据契约层与数据提供者

See merge request jygk/dsc!4
2025-12-04 06:13:11 +00:00
hewencai
7067170201 Merge remote-tracking branch 'origin/dev' into dev 2025-12-04 14:07:00 +08:00
chenbowen
2b8e036c1b 新增 databus 配置 2025-12-04 10:18:36 +08:00
chenbowen
d657f80839 Merge branch 'dev' into test 2025-12-04 09:42:57 +08:00
chenbowen
ea569a66ab Merge remote-tracking branch 'base-version/main' into dev 2025-12-04 09:42:29 +08:00
chenbowen
a7a2de77d8 1. 修复空删除下的 sql 语法错误提示 2025-12-04 09:40:33 +08:00
chenbowen
106f3b48b3 Merge branch 'dev' into test 2025-12-03 18:49:52 +08:00
chenbowen
d4ade11b44 新增 template 模块的部署 2025-12-03 18:49:36 +08:00
chenbowen
54b195f284 Merge branch 'dev' into test
# Conflicts:
#	zt-module-template/zt-module-template-server/Dockerfile
2025-12-03 18:02:24 +08:00
chenbowen
d9f0ef83c7 Merge remote-tracking branch 'base-version/main' into dev
# Conflicts:
#	zt-gateway/Dockerfile
#	zt-module-ai/zt-module-ai-server/Dockerfile
#	zt-module-bpm/zt-module-bpm-server/Dockerfile
#	zt-module-infra/zt-module-infra-server/Dockerfile
#	zt-module-mp/zt-module-mp-server/Dockerfile
#	zt-module-report/zt-module-report-server/Dockerfile
#	zt-module-system/zt-module-system-server/Dockerfile
#	zt-module-template/zt-module-template-server/Dockerfile
#	zt-server/Dockerfile
2025-12-03 18:01:51 +08:00
chenbowen
69bcd6697b 提升相关服务的 xmx 至 1024mb 2025-12-03 17:59:56 +08:00
hewencai
15580ace8f refactor(databus): 代码审查修复和TODO完成
修复硬编码配置:
- 修改日志路径为环境变量:${LOG_PATH:./logs}/${spring.application.name}.log
- 修改 RocketMQ 地址为环境变量:${ROCKETMQ_NAME_SERVER:172.16.46.63:30876}
- 还原 Nacos namespace 从 hwc 到 dev

完成 TODO 功能:
- TODO #1: 实现死信重试逻辑(重新投递消息到 MQ)
- TODO #2: 实现日志重试逻辑(根据事件记录重新推送)
- TODO #3: 实现全量同步触发(创建任务并异步执行)
- TODO #4: 实现事件 ID 查询(通过 eventType 查询事件定义)

涉及文件:
- pom.xml: 还原 Nacos namespace 到 dev
- DatabusSyncDeadLetterServiceImpl: 实现死信重试
- DatabusSyncLogServiceImpl: 实现日志重试
- DatabusSyncSubscriptionServiceImpl: 实现全量同步触发
- DatabusEventPublisherImpl: 实现事件 ID 查询
- application-*.yml/yaml: 修复硬编码配置

Ref: 代码审查报告
2025-12-03 15:59:59 +08:00
hewencai
aef63f0055 fix(databus): 修改变更消息开关默认值为 false,安全优先
- 修改 DatabusChangeProducer.enabled 默认值从 true 改为 false
- 避免未配置时导致消息循环,安全优先原则
- 集团侧(数据源)必须显式配置 enabled=true 才能发送变更消息
- 客户端(分公司)保持默认 false 或不配置,禁用变更消息

配置说明:
- 默认值:false(安全)
- 集团侧:application-dev.yaml 中显式设置 enabled=true
- 客户端:不配置或设置 enabled=false

Ref: 防止未配置导致项目异常
2025-12-03 14:15:46 +08:00
chenbowen
842155bfbd 1. iwork 回调接口不带租户与认证限制,支持通过业务编号查询业务附件信息 2025-12-03 12:09:14 +08:00
hewencai
62494ced45 fix(databus): 修复客户端消息处理和防止消息循环
1. 修复消息格式不匹配问题
   - 增量消息:兼容 SyncMessage 格式,从 dataSnapshot 字段反序列化数据
   - 批量消息:添加 getDataType() 方法获取泛型类型,正确转换 JSONObject

2. 防止消息循环
   - 添加 zt.databus.change.producer.enabled 配置项
   - 客户端禁用变更消息发送,避免 客户端写入 → 发送变更 → 循环

3. 修复 Feign 客户端注入
   - 在 RpcConfiguration 中添加 DeptApi、PostApi
   - 确保客户端能通过 Feign 调用本地 system-server API

相关文件:
- DatabusClientConsumer.java: 修复消息解析逻辑
- BatchSyncEventHandler.java: 添加 getDataType() 方法
- DatabusChangeProducer.java: 添加 enabled 开关
- RpcConfiguration.java: 启用 DeptApi/PostApi Feign 客户端

Ref: 修复 ClassCastException 和消息循环问题
2025-12-03 11:10:57 +08:00
chenbowen
45140c7f5a 1. 调整 databus 模块写入日志的时机,解决获取不到租户的问题 2025-12-03 09:51:43 +08:00
chenbowen
91fdea9526 恢复 template 模块的部署 2025-12-02 18:53:46 +08:00
chenbowen
3f4a8eada8 恢复 template 模块的部署 2025-12-02 18:41:25 +08:00
chenbowen
6eda833c55 Merge branch 'dev' into test 2025-12-02 17:49:15 +08:00
chenbowen
0846e4a56a 新增 template 模块的部署 2025-12-02 17:48:59 +08:00
chenbowen
bef2fc21f9 Merge remote-tracking branch 'base-version/main' into dev 2025-12-02 17:47:36 +08:00
chenbowen
e11065a596 1. 启动默认调度,定时请求 databus api
2. 修复 databus 单元测试
3. 调整 iwork 回调业务编号
2025-12-02 17:45:58 +08:00
chenbowen
8d1a6ed045 Merge branch 'dev' into test 2025-12-02 16:21:50 +08:00
chenbowen
39dcf82ea2 Merge remote-tracking branch 'base-version/main' into dev 2025-12-02 16:21:34 +08:00
chenbowen
2e0b0a5e83 1. 默认关闭 databus 模块线程池 2025-12-02 16:19:40 +08:00
chenbowen
97abbd1db2 Merge branch 'dev' into test 2025-12-02 15:11:41 +08:00
chenbowen
4f95272ca8 Merge remote-tracking branch 'base-version/main' into dev
# Conflicts:
#	sql/mysql/ruoyi-vue-pro.sql
2025-12-02 15:10:24 +08:00
chenbowen
b7ad25e91c 1. 清理 iwork 同步的旧逻辑 2025-12-02 15:08:47 +08:00
chenbowen
ee9bc438b5 1. 剔除外域 url 2025-12-02 14:10:47 +08:00
chenbowen
ecf1b5f1e7 Merge branch 'dev' into test 2025-12-02 11:16:57 +08:00
chenbowen
e2c3702ae5 Merge remote-tracking branch 'base-version/main' into dev 2025-12-02 11:16:34 +08:00
chenbowen
a689a3ffe4 1. 修复用户信息未同步人力资源编号的问题 2025-12-02 11:13:33 +08:00
chenbowen
22403592cc Merge branch 'dev' into test 2025-12-02 09:04:22 +08:00
chenbowen
d07ff36ace Merge remote-tracking branch 'base-version/main' into dev 2025-12-02 09:04:08 +08:00
chenbowen
55dd8df69c 1. 修复 iwork 请求错误未记录具体的错误信息问题 2025-12-02 09:03:26 +08:00
hewencai
dfca38feb7 feat(databus-client): 完成核心组件及编译验证(任务 89-92)
新增核心组件(任务 89-90):
1. HandlerRegistry.java - Handler 策略注册表
   - 自动注册所有 SyncEventHandler 和 BatchSyncEventHandler
   - 根据 eventType 路由到对应 Handler
   - 提供 getIncrementalHandler/getBatchHandler 方法
   - 支持 hasIncrementalHandler/hasBatchHandler 检查

2. DatabusClientConsumer.java - 统一消费者
   - 监听 databus-sync-{clientCode} Topic(简化版)
   - 根据消息字段判断增量/批量消息
   - 调用 HandlerRegistry 路由到具体 Handler
   - 支持全量同步生命周期回调(onFullSyncStart/onFullSyncComplete)

已存在接口(任务 91-92):
1. SyncEventHandler.java - 增量同步 Handler 接口
2. BatchSyncEventHandler.java - 全量同步 Handler 接口

架构设计:
- 策略模式:通过 HandlerRegistry 动态路由
- Topic 简化:databus-sync-{clientCode}(所有事件共用)
- 消息路由:通过 eventType 字段区分事件类型
- 条件装配:@ConditionalOnProperty 灵活启用/禁用

编译结果: BUILD SUCCESS(30个源文件)

Ref: docs/databus/implementation-checklist.md 任务 89-92
2025-12-02 01:18:46 +08:00
hewencai
63400e0075 feat(databus-client): 完成岗位 Handler 及编译验证(任务 75-88)
新增文件(任务 75-88):
- PostSyncService.java - 岗位同步服务接口
- PostSyncServiceImpl.java - 岗位同步服务实现(Feign调用)
- SystemPostCreateHandler.java - 岗位创建事件处理器
- SystemPostUpdateHandler.java - 岗位更新事件处理器
- SystemPostDeleteHandler.java - 岗位删除事件处理器
- SystemPostFullHandler.java - 岗位全量同步处理器(批量)

修复问题:
1. 修复 DTO 导入:DeptSaveReqVO → DeptSaveReqDTO, PostSaveReqVO → PostSaveReqDTO
2. 修复注解:@Resource(required=false) → @Autowired(required=false)
3. 修复 PostApi 包路径:com.zt.plat.module.system.api.post → com.zt.plat.module.system.api.dept
4. 修复 DeptSaveReqDTO 字段映射(移除不存在的字段:code, shortName, isCompany, isGroup, deptSource)
5. 修复 AdminUserSaveReqDTO 字段映射:
   - deptIds: List<Long> → Set<Long>
   - postIds: List<Long> → Set<Long>

编译结果: BUILD SUCCESS(28个源文件)

Ref: docs/databus/implementation-checklist.md 任务 75-88
2025-12-02 01:07:30 +08:00
hewencai
01c4aa4301 feat(system-server): 添加 DataBus MapStruct 数据转换器
- 新增 DatabusDeptConvert (DeptDO → DatabusDeptData)
- 新增 DatabusUserConvert (AdminUserDO → DatabusAdminUserData)
- 新增 DatabusPostConvert (PostDO → DatabusPostData)

说明:
- 转换器忽略了需要额外查询的复杂字段(如 deptType, leaderUserName, depts, posts)
- PostDO 不包含 tenantId,已配置忽略该字段映射
- 验证 system-server 编译通过

Ref: docs/databus/implementation-checklist.md 任务 20-22
2025-12-02 00:23:09 +08:00
hewencai
db13036cea feat(databus): 完成阶段四-DataBus Server完整功能
- 补充缺失的 API 类(DatabusMessage、DatabusBatchMessage、DatabusEventType)
- 新增变更消息消费者(3个:部门、用户、岗位)
- 新增数据提供者(3个:部门、用户、岗位)
- 确认分发器服务(核心定向推送逻辑)
- 确认全量同步与消息推送组件
- 确认管理后台 API(5个 Controller)
- 确认 Service ��(4个核心服务)
- 确认 DAL 层(7个 DO + Mapper)
- 添加 databus-server starter 依赖到 pom.xml
- 编译验证通过

Ref: docs/databus/implementation-checklist.md 任务 39-70
2025-12-01 23:44:32 +08:00
hewencai
f5ba493f95 feat(databus): 完成阶段一+二-数据契约层与数据提供者
阶段一:数据契约层(任务 1-16)
- 新增 DatabusDeptData, DatabusAdminUserData, DatabusPostData 数据对象
- 新增 CursorPageReqDTO, CursorPageResult 游标分页 DTO
- 新增 DatabusDeptProviderApi, DatabusUserProviderApi, DatabusPostProviderApi Feign 接口
- 修改 system-api pom.xml 添加 databus-api 依赖

阶段二:数据提供者实现(任务 17-38)
- 新增 DatabusDeptProviderApiImpl, DatabusUserProviderApiImpl, DatabusPostProviderApiImpl Feign 接口实现
- 实现游标分页查询(基于 cursorTime + cursorId 复合游标)
- 新增 DatabusDeptChangeMessage, DatabusUserChangeMessage, DatabusPostChangeMessage MQ 消息类
- 新增 DatabusChangeProducer 消息生产者(支持部门、用户、岗位三实体)
- 修改 DeptServiceImpl, AdminUserServiceImpl, PostServiceImpl 添加事件发布

技术要点:
- 游标分页:cursorTime + cursorId 复合游标解决雪花ID乱序问题
- 事件发布:create/update/delete 操作后异步发送 MQ 消息
- 数据聚合:用户数据包含部门和岗位简要信息

Ref: docs/databus/implementation-checklist.md 任务 1-38
2025-12-01 22:25:28 +08:00
chenbowen
aa2fda8f62 Merge branch 'dev' into test 2025-12-01 17:52:33 +08:00
chenbowen
754803b3eb Merge remote-tracking branch 'base-version/main' into dev 2025-12-01 17:52:13 +08:00
chenbowen
95d905e76f 1. 限制记录 api 日志的字段长度
2. 完整记录所有的 databus api 的请求日志
3. 新增 iwork 同步可以按 id 维度进行
4. 新增自动扫描 BusinessBaseDO 的 公司部门数据权限模式
2025-12-01 17:46:42 +08:00
chenbowen
fc0428e7b5 Merge branch 'dev' into test 2025-12-01 10:21:55 +08:00
chenbowen
7fae3203bc Merge remote-tracking branch 'base-version/main' into dev
# Conflicts:
#	sql/mysql/ruoyi-vue-pro.sql
#	zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/websocket/WebSocketSenderApi.java
#	zt-module-infra/zt-module-infra-server/src/main/resources/application-dev.yaml
2025-12-01 10:21:34 +08:00
chenbowen
e9542acd27 不限制租户用户数量 2025-12-01 10:20:21 +08:00
chenbowen
6ab387cba0 新增 iwork 附件回调接口 2025-11-28 18:47:21 +08:00
chenbowen
0c22975df0 1. 剔除掉多余的文档以及标记 2025-11-28 18:12:00 +08:00
chenbowen
e26bf8f11d Merge branch 'dev' into test 2025-11-28 16:17:50 +08:00
chenbowen
9b911124e5 Merge remote-tracking branch 'base-version/main' into dev 2025-11-28 16:17:32 +08:00
chenbowen
30bd4810f5 1. 修复自定义 sql 中大写表名无法匹配到 mybatis 中的缓存表信息,导致表被忽略租户的问题 2025-11-28 16:16:49 +08:00
770 changed files with 18918 additions and 1653071 deletions

View File

@@ -282,7 +282,7 @@
| [Spring MVC](https://github.com/spring-projects/spring-framework/tree/master/spring-webmvc) | MVC 框架 | 6.1.10 | [文档](http://www.iocoder.cn/SpringMVC/MVC/?zt) | | [Spring MVC](https://github.com/spring-projects/spring-framework/tree/master/spring-webmvc) | MVC 框架 | 6.1.10 | [文档](http://www.iocoder.cn/SpringMVC/MVC/?zt) |
| [Spring Security](https://github.com/spring-projects/spring-security) | Spring 安全框架 | 6.3.1 | [文档](http://www.iocoder.cn/Spring-Boot/Spring-Security/?zt) | | [Spring Security](https://github.com/spring-projects/spring-security) | Spring 安全框架 | 6.3.1 | [文档](http://www.iocoder.cn/Spring-Boot/Spring-Security/?zt) |
| [Hibernate Validator](https://github.com/hibernate/hibernate-validator) | 参数校验组件 | 8.0.1 | [文档](http://www.iocoder.cn/Spring-Boot/Validation/?zt) | | [Hibernate Validator](https://github.com/hibernate/hibernate-validator) | 参数校验组件 | 8.0.1 | [文档](http://www.iocoder.cn/Spring-Boot/Validation/?zt) |
| [Flowable](https://github.com/flowable/flowable-engine) | 工作流引擎 | 7.0.0 | [文档](https://doc.iocoder.cn/bpm/) | | [Flowable](https://github.com/flowable/flowable-engine) | 工作流引擎 | 7.0.0 | [文档](http://172.16.46.63:30888/bpm/) |
| [Knife4j](https://gitee.com/xiaoym/knife4j) | Swagger 增强 UI 实现 | 4.5.0 | [文档](http://www.iocoder.cn/Spring-Boot/Swagger/?zt) | | [Knife4j](https://gitee.com/xiaoym/knife4j) | Swagger 增强 UI 实现 | 4.5.0 | [文档](http://www.iocoder.cn/Spring-Boot/Swagger/?zt) |
| [SkyWalking](https://skywalking.apache.org/) | 分布式应用追踪系统 | 9.0.0 | [文档](http://www.iocoder.cn/Spring-Boot/SkyWalking/?zt) | | [SkyWalking](https://skywalking.apache.org/) | 分布式应用追踪系统 | 9.0.0 | [文档](http://www.iocoder.cn/Spring-Boot/SkyWalking/?zt) |
| [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin) | Spring Boot 监控平台 | 3.6.1 | [文档](http://www.iocoder.cn/Spring-Boot/Admin/?zt) | | [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin) | Spring Boot 监控平台 | 3.6.1 | [文档](http://www.iocoder.cn/Spring-Boot/Admin/?zt) |

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

11
pom.xml
View File

@@ -20,7 +20,7 @@
<module>zt-module-report</module> <module>zt-module-report</module>
<!--<module>zt-module-mp</module>--> <!--<module>zt-module-mp</module>-->
<!-- <module>zt-module-ai</module>--> <!-- <module>zt-module-ai</module>-->
<!-- <module>zt-module-template</module>--> <module>zt-module-template</module>
<!-- <module>zt-module-iot</module>--> <!-- <module>zt-module-iot</module>-->
<module>zt-module-databus</module> <module>zt-module-databus</module>
<!-- <module>zt-module-rule</module>--> <!-- <module>zt-module-rule</module>-->
@@ -28,7 +28,7 @@
</modules> </modules>
<name>${project.artifactId}</name> <name>${project.artifactId}</name>
<description>芋道项目基础脚手架</description> <description>ZT项目基础脚手架</description>
<url>https://github.com/YunaiV/ruoyi-vue-pro</url> <url>https://github.com/YunaiV/ruoyi-vue-pro</url>
<properties> <properties>
@@ -271,7 +271,14 @@
<profile> <profile>
<id>chenbowen</id> <id>chenbowen</id>
<properties> <properties>
<env.name>local</env.name>
<!-- <config.server-addr>localhost:8848</config.server-addr>-->
<config.server-addr>172.16.46.63:30848</config.server-addr>
<config.namespace>chenbowen</config.namespace> <config.namespace>chenbowen</config.namespace>
<config.group>DEFAULT_GROUP</config.group>
<config.username>nacos</config.username>
<config.password>P@ssword25</config.password>
<config.version>1.0.0</config.version>
</properties> </properties>
</profile> </profile>
<profile> <profile>

View File

@@ -1,3 +0,0 @@
暂未适配 IBM DB2 数据库,如果你有需要,可以微信联系 wangwenbin-server 一起建设。
你需要把表结构与数据导入到 DM 数据库,我来测试与适配代码。

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,18 @@
-- 达梦 8 增量脚本:工具栏公司/部门切换权限点
-- 请在执行前确认 system_menu 表中尚不存在相同 ID 或 permission 的记录
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, component_name, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
SELECT 5013, '公司切换', 'system:company:visit', 3, 100, 103, '', '', '', '', 0, '1', '1', '1', '1', SYSDATE, '1', SYSDATE, '0'
FROM dual
WHERE NOT EXISTS (
SELECT 1 FROM system_menu
WHERE id = 5013 OR permission = 'system:company:visit'
);
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, component_name, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
SELECT 5014, '部门切换', 'system:dept:visit', 3, 101, 103, '', '', '', '', 0, '1', '1', '1', '1', SYSDATE, '1', SYSDATE, '0'
FROM dual
WHERE NOT EXISTS (
SELECT 1 FROM system_menu
WHERE id = 5014 OR permission = 'system:dept:visit'
);

View File

@@ -0,0 +1,45 @@
/*
* Databus API 凭证绑定与访问日志补充字段DM8
* Generated on 2025-12-09
*/
-- ----------------------------
-- Table structure for databus_api_definition_credential
-- ----------------------------
CREATE TABLE databus_api_definition_credential (
id BIGINT NOT NULL PRIMARY KEY,
tenant_id BIGINT NOT NULL DEFAULT 0,
api_id BIGINT NOT NULL,
credential_id BIGINT NOT NULL,
app_id VARCHAR(128),
creator VARCHAR(64) DEFAULT '' NOT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
updater VARCHAR(64) DEFAULT '' NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
deleted BIT DEFAULT '0' NOT NULL
);
CREATE UNIQUE INDEX uk_databus_api_definition_credential ON databus_api_definition_credential (api_id, credential_id, deleted);
CREATE INDEX idx_databus_api_definition_credential_api ON databus_api_definition_credential (api_id);
CREATE INDEX idx_databus_api_definition_credential_cred ON databus_api_definition_credential (credential_id);
COMMENT ON TABLE databus_api_definition_credential IS 'Databus API 凭证绑定表';
COMMENT ON COLUMN databus_api_definition_credential.id IS '主键 ID';
COMMENT ON COLUMN databus_api_definition_credential.tenant_id IS '租户编号';
COMMENT ON COLUMN databus_api_definition_credential.api_id IS 'API 定义 ID';
COMMENT ON COLUMN databus_api_definition_credential.credential_id IS '凭证 ID';
COMMENT ON COLUMN databus_api_definition_credential.app_id IS '凭证应用标识冗余';
COMMENT ON COLUMN databus_api_definition_credential.creator IS '创建者';
COMMENT ON COLUMN databus_api_definition_credential.create_time IS '创建时间';
COMMENT ON COLUMN databus_api_definition_credential.updater IS '更新者';
COMMENT ON COLUMN databus_api_definition_credential.update_time IS '更新时间';
COMMENT ON COLUMN databus_api_definition_credential.deleted IS '逻辑删除标记';
-- ----------------------------
-- Alter databus_api_access_log add credential columns
-- ----------------------------
ALTER TABLE databus_api_access_log ADD credential_app_id VARCHAR(128);
COMMENT ON COLUMN databus_api_access_log.credential_app_id IS '调用凭证应用标识';
ALTER TABLE databus_api_access_log ADD credential_id BIGINT;
COMMENT ON COLUMN databus_api_access_log.credential_id IS '调用凭证 ID';

Some files were not shown because too many files have changed in this diff Show More