Commit Graph

136 Commits

Author SHA1 Message Date
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
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
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
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
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
hewencai
7067170201 Merge remote-tracking branch 'origin/dev' into dev 2025-12-04 14:07:00 +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
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
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
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
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
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
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
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
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
db3afb5b64 Merge remote-tracking branch 'base-version/main' into dev 2025-11-28 11:07:42 +08:00
chenbowen
542466270a 1. 修复自定义 sql 中大写表名无法匹配到 mybatis 中的缓存表信息,导致表被忽略租户的问题
2. 新增 iwork feign api 调用
2025-11-28 11:05:09 +08:00
chenbowen
03ebe21670 1. 清理 iwork 无用的接口。
2. 整合 iwork 用户的密码管理策略。
2025-11-27 20:25:02 +08:00
chenbowen
64d0d4e55e 1. iwork 统一用印发起接口 2025-11-27 20:19:27 +08:00
chenbowen
256bf22a10 Merge remote-tracking branch 'base-version/main' into dev 2025-11-26 20:12:46 +08:00
chenbowen
76eabb6db0 修复 system 模块编译错误 2025-11-26 20:12:07 +08:00
qianshijiang
00956030a4 错误信息未记录到日志文件 2025-11-26 15:52:00 +08:00
chenbowen
dbb1d1905e Merge remote-tracking branch 'base-version/main' into dev 2025-11-26 13:46:02 +08:00
chenbowen
08232eb3cb iwork 人员组织同步相关 2025-11-26 13:45:06 +08:00
chenbowen
e9994a24c2 Merge remote-tracking branch 'base-version/main' into dev 2025-11-26 12:39:44 +08:00
chenbowen
a10732119b iwork 人员组织同步相关 2025-11-26 12:38:38 +08:00
qianshijiang
e7efddf976 配置mybais-plus打印sql 2025-11-26 11:57:17 +08:00
chenbowen
61e61d08b6 Merge remote-tracking branch 'base-version/main' into dev 2025-11-26 11:34:41 +08:00
chenbowen
5698c34185 iwork 人员组织同步相关 2025-11-26 11:34:04 +08:00
qianshijiang
96058e29c2 Merge remote-tracking branch 'origin/dev' into dev 2025-11-26 10:44:28 +08:00
qianshijiang
27d22de4e0 日志配置修改 2025-11-26 10:44:13 +08:00
chenbowen
0c0d82f465 Merge remote-tracking branch 'base-version/main' into dev 2025-11-26 10:43:04 +08:00
chenbowen
12ba2cf756 iwork 人员组织同步相关 2025-11-26 10:42:24 +08:00