Merge branch 'dev' into 'test'

update:数据同步分发机构岗位绑定关系

See merge request jygk/dsc!9
This commit is contained in:
wencai he
2025-12-16 04:03:41 +00:00
31 changed files with 1278 additions and 669 deletions

View File

@@ -0,0 +1,48 @@
package com.zt.plat.module.databus.api.data;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 用户与组织机构关联关系数据对象
* <p>
* 对应表system_user_dept
*
* @author ZT
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DatabusUserDeptData implements Serializable {
/**
* 关联关系ID
*/
private Long id;
/**
* 用户ID
*/
private Long userId;
/**
* 部门ID
*/
private Long deptId;
/**
* 租户ID
*/
private Long tenantId;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,38 @@
package com.zt.plat.module.databus.api.data;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 用户与岗位关联关系数据对象
* <p>
* 对应表system_user_post
*
* @author ZT
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DatabusUserPostData implements Serializable {
/**
* 关联关系ID
*/
private Long id;
/**
* 用户ID
*/
private Long userId;
/**
* 岗位ID
*/
private Long postId;
}

View File

@@ -41,49 +41,45 @@ public enum DatabusEventType {
SYSTEM_USER_FULL("system", "user", "full", "用户全量同步"),
/**
* 部门-创建
* 组织机构-创建
*/
SYSTEM_ORG_CREATE("system", "org", "create", "组织机构创建"),
/**
* 组织机构-更新
*/
SYSTEM_ORG_UPDATE("system", "org", "update", "组织机构更新"),
/**
* 组织机构-删除
*/
SYSTEM_ORG_DELETE("system", "org", "delete", "组织机构删除"),
/**
* 组织机构-全量同步
*/
SYSTEM_ORG_FULL("system", "org", "full", "组织机构全量同步"),
/**
* 部门-创建(新命名,推荐使用)
*/
SYSTEM_DEPT_CREATE("system", "dept", "create", "部门创建"),
/**
* 部门-更新
* 部门-更新(新命名,推荐使用)
*/
SYSTEM_DEPT_UPDATE("system", "dept", "update", "部门更新"),
/**
* 部门-删除
* 部门-删除(新命名,推荐使用)
*/
SYSTEM_DEPT_DELETE("system", "dept", "delete", "部门删除"),
/**
* 部门-全量同步
* 部门-全量同步(新命名,推荐使用)
*/
SYSTEM_DEPT_FULL("system", "dept", "full", "部门全量同步"),
/**
* 组织机构-创建(兼容老代码,保留但不推荐使用)
*/
@Deprecated
SYSTEM_ORG_CREATE("system", "org", "create", "组织机构创建"),
/**
* 组织机构-更新(兼容老代码,保留但不推荐使用)
*/
@Deprecated
SYSTEM_ORG_UPDATE("system", "org", "update", "组织机构更新"),
/**
* 组织机构-删除(兼容老代码,保留但不推荐使用)
*/
@Deprecated
SYSTEM_ORG_DELETE("system", "org", "delete", "组织机构删除"),
/**
* 组织机构-全量同步(兼容老代码,保留但不推荐使用)
*/
@Deprecated
SYSTEM_ORG_FULL("system", "org", "full", "组织机构全量同步"),
/**
* 岗位-创建
*/
@@ -104,6 +100,84 @@ public enum DatabusEventType {
*/
SYSTEM_POST_FULL("system", "post", "full", "岗位全量同步"),
/**
* 用户-部门关系-创建
*/
SYSTEM_USER_DEPT_CREATE("system", "user-dept", "create", "用户-部门关系创建"),
/**
* 用户-部门关系-更新
*/
SYSTEM_USER_DEPT_UPDATE("system", "user-dept", "update", "用户-部门关系更新"),
/**
* 用户-部门关系-删除
*/
SYSTEM_USER_DEPT_DELETE("system", "user-dept", "delete", "用户-部门关系删除"),
/**
* 用户-部门关系-全量同步
*/
SYSTEM_USER_DEPT_FULL("system", "user-dept", "full", "用户-部门关系全量同步"),
/**
* 用户-岗位关系-创建
*/
SYSTEM_USER_POST_CREATE("system", "user-post", "create", "用户-岗位关系创建"),
/**
* 用户-岗位关系-更新
*/
SYSTEM_USER_POST_UPDATE("system", "user-post", "update", "用户-岗位关系更新"),
/**
* 用户-岗位关系-删除
*/
SYSTEM_USER_POST_DELETE("system", "user-post", "delete", "用户-岗位关系删除"),
/**
* 用户-岗位关系-全量同步
*/
SYSTEM_USER_POST_FULL("system", "user-post", "full", "用户-岗位关系全量同步"),
/**
* @deprecated 已拆分为 SYSTEM_USER_DEPT_* 和 SYSTEM_USER_POST_*,保留用于向后兼容
*/
@Deprecated
SYSTEM_USER_RELATION_CREATE("system", "user-relation", "create", "用户关联创建"),
/**
* @deprecated 已拆分为 SYSTEM_USER_DEPT_* 和 SYSTEM_USER_POST_*,保留用于向后兼容
*/
@Deprecated
SYSTEM_USER_RELATION_UPDATE("system", "user-relation", "update", "用户关联更新"),
/**
* @deprecated 已拆分为 SYSTEM_USER_DEPT_* 和 SYSTEM_USER_POST_*,保留用于向后兼容
*/
@Deprecated
SYSTEM_USER_RELATION_DELETE("system", "user-relation", "delete", "用户关联删除"),
/**
* @deprecated 已拆分为 SYSTEM_USER_DEPT_* 和 SYSTEM_USER_POST_*,保留用于向后兼容
*/
@Deprecated
SYSTEM_USER_RELATION_FULL("system", "user-relation", "full", "用户关联全量同步"),
/**
* 基础数据-全量同步(组合编排事件)
* <p>
* 按依赖顺序触发以下全量同步:
* 1. 组织机构SYSTEM_DEPT_FULL
* 2. 岗位SYSTEM_POST_FULL
* 3. 用户SYSTEM_USER_FULL
* 4. 用户-部门关系SYSTEM_USER_DEPT_FULL
* 5. 用户-岗位关系SYSTEM_USER_POST_FULL
* <p>
* 注意本事件只负责触发实际数据同步由5个独立的全量同步任务完成
*/
SYSTEM_BASE_DATA_FULL("system", "base-data", "full", "基础数据全量同步"),
/**
* 角色-创建
*/
@@ -167,7 +241,7 @@ public enum DatabusEventType {
BASE_MATERIAL_FULL("base", "material", "full", "物料全量同步"),
/**
* 供应<EFBFBD><EFBFBD>-创建
* 供应-创建
*/
BASE_SUPPLIER_CREATE("base", "supplier", "create", "供应商创建"),
@@ -238,13 +312,10 @@ public enum DatabusEventType {
/**
* 获取完整Topic名称服务端转发用
* 格式: {topicBase}-{clientCode}(简化版,所有事件共用一个 Topic
* 示例: databus-sync-branch-001
*
* 注意:不再为每个事件创建独立 Topic而是通过消息体中的 eventType 字段路由
* 格式: {topicBase}-{module}-{entity}-{action}-{clientCode}
*/
public String getTopic(String topicBase, String clientCode) {
return String.format("%s-%s", topicBase, clientCode);
return String.format("%s-%s-%s-%s-%s", topicBase, module, entity, action, clientCode);
}
/**
@@ -273,31 +344,6 @@ public enum DatabusEventType {
return null;
}
/**
* 根据事件类型字符串获取枚举(支持大写下划线格式)
* 例如SYSTEM_POST_FULL → DatabusEventType.SYSTEM_POST_FULL
*
* @param eventType 事件类型字符串(格式: MODULE_ENTITY_ACTION
* @return 枚举值未找到返回null
*/
public static DatabusEventType getByEventType(String eventType) {
if (eventType == null) {
return null;
}
// 先尝试直接匹配枚举名称
try {
return DatabusEventType.valueOf(eventType.toUpperCase());
} catch (IllegalArgumentException e) {
// 如果失败,尝试转换格式后匹配(如 system-post-full → SYSTEM_POST_FULL
String normalized = eventType.toUpperCase().replace("-", "_");
try {
return DatabusEventType.valueOf(normalized);
} catch (IllegalArgumentException ex) {
return null;
}
}
}
/**
* 根据模块、实体、操作获取枚举
*
@@ -317,6 +363,25 @@ public enum DatabusEventType {
return null;
}
/**
* 根据事件类型名称获取枚举
* <p>
* 支持大写下划线格式,如: SYSTEM_POST_FULL
*
* @param eventType 事件类型名称(枚举常量名)
* @return 枚举值未找到返回null
*/
public static DatabusEventType getByEventType(String eventType) {
if (eventType == null || eventType.isEmpty()) {
return null;
}
try {
return DatabusEventType.valueOf(eventType);
} catch (IllegalArgumentException e) {
return null;
}
}
/**
* 判断是否为全量同步事件
*/

View File

@@ -4,6 +4,8 @@ import com.zt.plat.framework.common.biz.system.oauth2.OAuth2TokenCommonApi;
import com.zt.plat.module.databus.api.provider.DatabusDeptProviderApi;
import com.zt.plat.module.databus.api.provider.DatabusPostProviderApi;
import com.zt.plat.module.databus.api.provider.DatabusUserProviderApi;
import com.zt.plat.module.system.api.dept.DeptApi;
import com.zt.plat.module.system.api.dept.PostApi;
import com.zt.plat.module.system.api.user.AdminUserApi;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Configuration;
@@ -18,7 +20,10 @@ import org.springframework.context.annotation.Configuration;
// DataBus 数据提供者 Feign 客户端
DatabusDeptProviderApi.class,
DatabusUserProviderApi.class,
DatabusPostProviderApi.class
DatabusPostProviderApi.class,
PostApi.class,
DeptApi.class,
AdminUserApi.class,
})
public class RpcConfiguration {
}