Commit Graph

235 Commits

Author SHA1 Message Date
hewencai
8b7e7da6c2 update:增加门户管理允许匿名访问 2025-12-05 18:12:13 +08:00
chenbowen
d1a85c7653 新增定时调度携带具体 IP 2025-12-05 15:33:29 +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
d2e4c593c8 新增公司部门切换菜单权限 2025-12-05 11:53:11 +08:00
chenbowen
f4211f0011 新增公司部门切换菜单权限 2025-12-05 11:52:58 +08:00
chenbowen
52a0109960 临时关闭签名校验 2025-12-05 09:04:02 +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
50259f514f 限制部门与用户的全量查询 2025-12-04 15:07:53 +08:00
chenbowen
a7a2de77d8 1. 修复空删除下的 sql 语法错误提示 2025-12-04 09:40:33 +08:00
chenbowen
69bcd6697b 提升相关服务的 xmx 至 1024mb 2025-12-03 17:59:56 +08:00
chenbowen
842155bfbd 1. iwork 回调接口不带租户与认证限制,支持通过业务编号查询业务附件信息 2025-12-03 12:09:14 +08:00
chenbowen
45140c7f5a 1. 调整 databus 模块写入日志的时机,解决获取不到租户的问题 2025-12-03 09:51:43 +08:00
chenbowen
e11065a596 1. 启动默认调度,定时请求 databus api
2. 修复 databus 单元测试
3. 调整 iwork 回调业务编号
2025-12-02 17:45:58 +08:00
chenbowen
2e0b0a5e83 1. 默认关闭 databus 模块线程池 2025-12-02 16:19:40 +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
a689a3ffe4 1. 修复用户信息未同步人力资源编号的问题 2025-12-02 11:13:33 +08:00
chenbowen
55dd8df69c 1. 修复 iwork 请求错误未记录具体的错误信息问题 2025-12-02 09:03:26 +08:00
chenbowen
95d905e76f 1. 限制记录 api 日志的字段长度
2. 完整记录所有的 databus api 的请求日志
3. 新增 iwork 同步可以按 id 维度进行
4. 新增自动扫描 BusinessBaseDO 的 公司部门数据权限模式
2025-12-01 17:46:42 +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
30bd4810f5 1. 修复自定义 sql 中大写表名无法匹配到 mybatis 中的缓存表信息,导致表被忽略租户的问题 2025-11-28 16:16:49 +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
00b2f6312d 修复 flowable 无法通过 dm 数据库驱动正常获取 schema 的bug 2025-11-27 16:01:05 +08:00
chenbowen
446b5ca7a4 剔除掉 swagger 不能请求的 rpc-api 2025-11-27 13:48:55 +08:00
chenbowen
28a49ce45a 修复 dm jdbc 不兼容 flowable 转义 sql 的错误 2025-11-27 13:26:30 +08:00
chenbowen
4bd0402dde 禁止事件引擎重复自动建表 2025-11-27 11:16:49 +08:00
chenbowen
0ab550123f 关闭 databus web 请求连接池 2025-11-27 10:27:30 +08:00
chenbowen
cd21239ff2 flowable 达梦迁移 2025-11-27 09:58:44 +08:00
chenbowen
76eabb6db0 修复 system 模块编译错误 2025-11-26 20:12:07 +08:00
chenbowen
06909fafea 当前登录用户新增公司编码与部门编码属性 2025-11-26 20:01:34 +08:00
chenbowen
08232eb3cb iwork 人员组织同步相关 2025-11-26 13:45:06 +08:00
chenbowen
a10732119b iwork 人员组织同步相关 2025-11-26 12:38:38 +08:00
chenbowen
5698c34185 iwork 人员组织同步相关 2025-11-26 11:34:04 +08:00