mirror of
http://git.pig4cloud.com/pig/pigx.git
synced 2026-11-15 06:29:01 +08:00
feat(upms): 重构连接器导入功能,支持钉钉和企业微信Excel导入
- 优化钉钉部门同步逻辑,提取常量到 ConnectConstants - 新增企业微信部门及用户Excel导入功能 - 实现钉钉部门和用户Excel导入功能 - 移除API同步功能,统一使用导入方式 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
31ad1fbeb8
commit
d2f49723d6
10 files changed
+776
-330
No files matched your search
+73
@@ -0,0 +1,73 @@
|
||||
package com.pig4cloud.pigx.admin.api.constant;
|
||||
|
||||
/**
|
||||
* 第三方连接常量类
|
||||
* <p>
|
||||
* 用于定义第三方平台(如钉钉)连接相关的字段名称和常量值
|
||||
*
|
||||
* @author lengleng
|
||||
* @date 2026/01/10
|
||||
*/
|
||||
public interface ConnectConstants {
|
||||
|
||||
/**
|
||||
* JSON字段名: 手机号
|
||||
*/
|
||||
String FIELD_MOBILE = "mobile";
|
||||
|
||||
/**
|
||||
* JSON字段名: 头像
|
||||
*/
|
||||
String FIELD_AVATAR = "avatar";
|
||||
|
||||
/**
|
||||
* JSON字段名: 昵称
|
||||
*/
|
||||
String FIELD_NICKNAME = "nickname";
|
||||
|
||||
/**
|
||||
* JSON字段名: 姓名
|
||||
*/
|
||||
String FIELD_NAME = "name";
|
||||
|
||||
/**
|
||||
* JSON字段名: 邮箱
|
||||
*/
|
||||
String FIELD_EMAIL = "email";
|
||||
|
||||
/**
|
||||
* JSON字段名: 部门ID
|
||||
*/
|
||||
String FIELD_DEPT_ID = "dept_id";
|
||||
|
||||
/**
|
||||
* JSON字段名: 父部门ID
|
||||
*/
|
||||
String FIELD_PARENT_ID = "parent_id";
|
||||
|
||||
/**
|
||||
* JSON字段名: 部门顺序列表
|
||||
*/
|
||||
String FIELD_DEPT_ORDER_LIST = "dept_order_list";
|
||||
|
||||
/**
|
||||
* JSON字段名: 用户ID列表
|
||||
*/
|
||||
String FIELD_USERID_LIST = "userid_list";
|
||||
|
||||
/**
|
||||
* JSON字段名: 返回结果
|
||||
*/
|
||||
String FIELD_RESULT = "result";
|
||||
|
||||
/**
|
||||
* 语言代码: 简体中文
|
||||
*/
|
||||
String LANGUAGE_ZH_CN = "zh_CN";
|
||||
|
||||
/**
|
||||
* 钉钉根部门ID
|
||||
*/
|
||||
Long ROOT_DEPT_ID = 1L;
|
||||
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
package com.pig4cloud.pigx.admin.api.vo;
|
||||
|
||||
import cn.idev.excel.annotation.ExcelIgnore;
|
||||
import cn.idev.excel.annotation.ExcelProperty;
|
||||
import com.pig4cloud.pigx.common.excel.annotation.ExcelLine;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 钉钉部门导入VO
|
||||
* 用于解析钉钉导出的Excel中的部门数据
|
||||
*
|
||||
* @author lengleng
|
||||
* @date 2026-01-10
|
||||
*/
|
||||
@Data
|
||||
public class DingTalkDeptExcelVO implements Serializable {
|
||||
|
||||
/**
|
||||
* 导入时回显行号(用于错误定位)
|
||||
*/
|
||||
@ExcelLine
|
||||
@ExcelIgnore
|
||||
private Long lineNum;
|
||||
|
||||
/**
|
||||
* 部门路径
|
||||
* 格式: "公司/部门A/子部门B" (用"/"表示层级关系)
|
||||
* 同一行可能包含多个部门路径,用";"分隔
|
||||
*/
|
||||
@ExcelProperty("部门")
|
||||
private String deptPath;
|
||||
|
||||
}
|
||||
+9
-2
@@ -39,17 +39,24 @@ public class DingUserExcelVo implements Serializable {
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 部门名称
|
||||
* 部门路径
|
||||
* 格式: "公司/部门A/子部门B" (用"/"表示层级关系)
|
||||
* 支持多部门: "部门1;部门2" (用英文分号分隔,第一个为主部门)
|
||||
*/
|
||||
@NotBlank(message = "部门不能为空")
|
||||
@ExcelProperty("部门")
|
||||
private String deptName;
|
||||
private String deptPath;
|
||||
|
||||
/**
|
||||
* 邮箱
|
||||
*/
|
||||
@ExcelProperty("邮箱")
|
||||
private String email;
|
||||
|
||||
/**
|
||||
* 锁定标记
|
||||
* 0: 正常(激活)
|
||||
* 9: 锁定(未激活)
|
||||
*/
|
||||
@ExcelProperty("激活状态,0:是,9:否")
|
||||
private String lockFlag;
|
||||
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
package com.pig4cloud.pigx.admin.api.vo;
|
||||
|
||||
import cn.idev.excel.annotation.ExcelIgnore;
|
||||
import cn.idev.excel.annotation.ExcelProperty;
|
||||
import com.pig4cloud.pigx.common.excel.annotation.ExcelLine;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 企业微信部门导入VO
|
||||
* 用于解析企业微信导出的通讯录Excel中的部门数据
|
||||
*
|
||||
* @author lengleng
|
||||
* @date 2026-01-10
|
||||
*/
|
||||
@Data
|
||||
public class WeChatDeptExcelVO implements Serializable {
|
||||
|
||||
/**
|
||||
* 导入时回显行号(用于错误定位)
|
||||
*/
|
||||
@ExcelLine
|
||||
@ExcelIgnore
|
||||
private Long lineNum;
|
||||
|
||||
/**
|
||||
* 部门路径
|
||||
* 格式: "腾讯公司/微信事业群/广州研发部" (用"/"表示层级关系)
|
||||
* 同一行可能包含多个部门路径,用";"分隔,如: "部门路径1;部门路径2"
|
||||
* 企业微信Excel中对应"部门"列(第5列,索引4)
|
||||
*/
|
||||
@ExcelProperty(value = "部门", index = 4)
|
||||
private String deptPath;
|
||||
|
||||
}
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
package com.pig4cloud.pigx.admin.api.vo;
|
||||
|
||||
import cn.idev.excel.annotation.ExcelIgnore;
|
||||
import cn.idev.excel.annotation.ExcelProperty;
|
||||
import com.pig4cloud.pigx.common.excel.annotation.ExcelLine;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 企业微信用户导入VO
|
||||
* 用于解析企业微信导出的通讯录Excel中的用户数据
|
||||
*
|
||||
* @author lengleng
|
||||
* @date 2026-01-10
|
||||
*/
|
||||
@Data
|
||||
public class WeChatUserExcelVO implements Serializable {
|
||||
|
||||
/**
|
||||
* 导入时回显行号(用于错误定位)
|
||||
*/
|
||||
@ExcelLine
|
||||
@ExcelIgnore
|
||||
private Long lineNum;
|
||||
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
@ExcelProperty(value = "姓名", index = 0)
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 账号 (userid)
|
||||
* 企业微信中的唯一标识
|
||||
*/
|
||||
@ExcelProperty(value = "账号", index = 1)
|
||||
private String account;
|
||||
|
||||
/**
|
||||
* 别名
|
||||
*/
|
||||
@ExcelProperty(value = "别名", index = 2)
|
||||
private String alias;
|
||||
|
||||
/**
|
||||
* 职务
|
||||
*/
|
||||
@ExcelProperty(value = "职务", index = 3)
|
||||
private String position;
|
||||
|
||||
/**
|
||||
* 部门路径
|
||||
* 格式: "腾讯公司/微信事业群/广州研发部"
|
||||
* 支持多部门: "部门1;部门2" (用英文分号分隔,第一个为主部门)
|
||||
* 实际Excel列:第5列(索引4)
|
||||
*/
|
||||
@ExcelProperty(value = "部门", index = 4)
|
||||
private String deptPath;
|
||||
|
||||
/**
|
||||
* 性别 (男/女)
|
||||
*/
|
||||
@ExcelProperty(value = "性别", index = 5)
|
||||
private String gender;
|
||||
|
||||
/**
|
||||
* 手机号 (关键字段,用于判重)
|
||||
*/
|
||||
@ExcelProperty(value = "手机", index = 6)
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 座机
|
||||
*/
|
||||
@ExcelProperty(value = "座机", index = 7)
|
||||
private String telephone;
|
||||
|
||||
/**
|
||||
* 邮箱
|
||||
*/
|
||||
@ExcelProperty(value = "邮箱", index = 8)
|
||||
private String email;
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user