diff --git a/src/main/java/com/yunhai/userbase/common/converter/UserGroupRelStatusEnumConverter.java b/src/main/java/com/yunhai/userbase/common/converter/UserGroupRelStatusEnumConverter.java
new file mode 100644
index 0000000..d38d1f3
--- /dev/null
+++ b/src/main/java/com/yunhai/userbase/common/converter/UserGroupRelStatusEnumConverter.java
@@ -0,0 +1,18 @@
+package com.yunhai.userbase.common.converter;
+
+import com.yunhai.userbase.enums.UserGroupRelStatusEnum;
+
+import javax.persistence.AttributeConverter;
+
+/**
+ * UserGroupRelStatusEnum 专用 JPA 转换器(int <-> 枚举)。
+ * 继承通用基类 CommonIntEnumConverter,仅在构造器绑定枚举 class 即可。
+ *
+ * @author chenx
+ */
+public class UserGroupRelStatusEnumConverter extends CommonIntEnumConverter {
+
+ public UserGroupRelStatusEnumConverter() {
+ super(UserGroupRelStatusEnum.class);
+ }
+}
diff --git a/src/main/java/com/yunhai/userbase/enums/UserGroupRelStatusEnum.java b/src/main/java/com/yunhai/userbase/enums/UserGroupRelStatusEnum.java
new file mode 100644
index 0000000..c8f2e15
--- /dev/null
+++ b/src/main/java/com/yunhai/userbase/enums/UserGroupRelStatusEnum.java
@@ -0,0 +1,34 @@
+package com.yunhai.userbase.enums;
+
+import com.yunhai.platform.utils.enums.IEnum;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author chenx
+ * @date 2026/8/26
+ * @description 用户-组关联状态(sys_user_group_rel.status):0=正常,1=转出。
+ * 区别于全局启用/禁用({@link StatusEnum},挂 sys_user 上),本枚举表达用户在某个组上的状态;
+ * 转出仅作关系标记,不影响成员查询、组织链与下游推送。
+ */
+@Getter
+@AllArgsConstructor
+public enum UserGroupRelStatusEnum implements IEnum {
+
+ NORMAL(0, "正常"),
+ TRANSFERRED_OUT(1, "转出");
+
+ private Integer key;
+ private String value;
+
+ @Override
+ public Integer getKey() {
+ return this.key;
+ }
+
+ @Override
+ public String getValue() {
+ return this.value;
+ }
+}
diff --git a/src/main/java/com/yunhai/userbase/model/sysuser/SysUserGroupStateRequest.java b/src/main/java/com/yunhai/userbase/model/sysuser/SysUserGroupStateRequest.java
new file mode 100644
index 0000000..ba50830
--- /dev/null
+++ b/src/main/java/com/yunhai/userbase/model/sysuser/SysUserGroupStateRequest.java
@@ -0,0 +1,28 @@
+package com.yunhai.userbase.model.sysuser;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @description 开放接口:设置用户组状态请求(转出/恢复,按 (userId, groupId) 维度,学校范围限定)。
+ */
+@Data
+public class SysUserGroupStateRequest {
+
+ /** 用户ID。 */
+ @NotNull(message = "用户ID不能为空")
+ private Integer userId;
+
+ /** 组ID(用户所在的具体组)。 */
+ @NotNull(message = "组ID不能为空")
+ private Integer groupId;
+
+ /** 学校组ID:限定操作范围,groupId 必须属于该校子树。 */
+ @NotNull(message = "学校ID不能为空")
+ private Integer schoolId;
+
+ /** 目标状态:0=恢复正常,1=转出。 */
+ @NotNull(message = "状态不能为空")
+ private Integer state;
+}
diff --git a/src/main/java/com/yunhai/userbase/model/sysuser/SysUserTransferSchoolRequest.java b/src/main/java/com/yunhai/userbase/model/sysuser/SysUserTransferSchoolRequest.java
new file mode 100644
index 0000000..28896f4
--- /dev/null
+++ b/src/main/java/com/yunhai/userbase/model/sysuser/SysUserTransferSchoolRequest.java
@@ -0,0 +1,28 @@
+package com.yunhai.userbase.model.sysuser;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @description 开放接口:跨校转入请求(用户在源学校标记转出后,迁移到目标学校的指定组)。
+ */
+@Data
+public class SysUserTransferSchoolRequest {
+
+ /** 待迁移用户ID。 */
+ @NotNull(message = "用户ID不能为空")
+ private Integer userId;
+
+ /** 原学校组ID(源学校,须真实存在且为学校组):要求用户在该学校存在至少一条「转出」状态的组关系。 */
+ @NotNull(message = "原学校ID不能为空")
+ private Integer fromSchoolId;
+
+ /** 目标学校组ID(转入后的学校)。 */
+ @NotNull(message = "目标学校ID不能为空")
+ private Integer schoolId;
+
+ /** 目标组ID(目标学校内挂载的具体组,迁移后的主归属组)。 */
+ @NotNull(message = "目标组ID不能为空")
+ private Integer groupId;
+}
diff --git a/src/main/resources/sql/sys_user_group_rel_add_status.sql b/src/main/resources/sql/sys_user_group_rel_add_status.sql
new file mode 100644
index 0000000..d5e50f8
--- /dev/null
+++ b/src/main/resources/sql/sys_user_group_rel_add_status.sql
@@ -0,0 +1,7 @@
+-- 为 sys_user_group_rel 关联表新增 status 字段,用于表达「用户在某组上」的状态:0=正常,1=转出。
+-- 转出仅作关系标记:不影响成员查询、组织链与下游推送;改组/移动(changeGroups 覆盖式重建)时状态随用户继承。
+-- 存量数据默认 0=正常(迁移前未转出的所有关系视为正常)。
+-- 执行方式:由 DBA 在 dev / prod 各自手工执行,AI 不代跑(本地 dev 靠 ddl-auto=update 自动加列)。
+
+ALTER TABLE sys_user_group_rel
+ ADD COLUMN status TINYINT NOT NULL DEFAULT 0 COMMENT '组内状态 0=正常 1=转出';