This commit is contained in:
=
2026-04-02 11:54:30 +08:00
parent 2cf8c7c69f
commit 1f23222533
3 changed files with 27 additions and 45 deletions
@@ -36,19 +36,19 @@ public class Sys_user extends BaseModel implements Serializable {
@Column
@Comment("工号")
@ColDefine(type = ColType.VARCHAR, width = 120)
@DataCenterColumn(name = "工号", key = "JGH")
@DataCenterColumn(name = "工号", key = "gh")
private String loginname;
@Column
@Comment("姓名")
@ColDefine(type = ColType.VARCHAR, width = 100)
@DataCenterColumn(name = "姓名", key = "XM")
@DataCenterColumn(name = "姓名", key = "xm")
private String username;
@Column
@Comment("性别")
@ColDefine(type = ColType.VARCHAR, width = 10)
@DataCenterColumn(name = "姓别", key = "XBM", dict = "USER_SEX")
@DataCenterColumn(name = "姓别", key = "sex", dict = "USER_SEX")
private String sex;
@Column
@@ -69,7 +69,7 @@ public class Sys_user extends BaseModel implements Serializable {
@Column
@Comment("政治面貌")
@ColDefine(type = ColType.VARCHAR, width = 100)
@DataCenterColumn(name = "政治面貌", key = "ZZMMM", dict = "USER_POLITICAL")
@DataCenterColumn(name = "政治面貌", key = "zzmm", dict = "USER_POLITICAL")
private String political;
@Column
@@ -80,12 +80,13 @@ public class Sys_user extends BaseModel implements Serializable {
@Column
@Comment("民族")
@ColDefine(type = ColType.VARCHAR, width = 20)
@DataCenterColumn(name = "民族", key = "MZM", dict = "USER_NATION")
@DataCenterColumn(name = "民族", key = "mz", dict = "USER_NATION")
private String nation;
@Column
@Comment("籍贯")
@ColDefine(type = ColType.VARCHAR, width = 100)
@DataCenterColumn(name = "籍贯", key = "jg")
private String nativePlace;
@Column
@@ -101,19 +102,19 @@ public class Sys_user extends BaseModel implements Serializable {
@Column
@Comment("证件号码")
@ColDefine(type = ColType.VARCHAR, width = 30)
@DataCenterColumn(name = "证件号码", key = "SFZJH")
@DataCenterColumn(name = "证件号码", key = "sfzh")
private String idCard;
@Column
@Comment("手机号码")
@ColDefine(type = ColType.VARCHAR, width = 32)
@DataCenterColumn(name = "手机号码", key = "SJHM")
@DataCenterColumn(name = "手机号码", key = "phone")
private String mobile;
@Column
@Comment("学历")
@ColDefine(type = ColType.VARCHAR, width = 20)
@DataCenterColumn(name = "学历", key = "ZGXLM", dict = "USER_EDUCATION")
@DataCenterColumn(name = "学历", key = "zgxl", dict = "USER_EDUCATION")
private String education;
@Column
@@ -124,7 +125,7 @@ public class Sys_user extends BaseModel implements Serializable {
@Column
@Comment("学位")
@ColDefine(type = ColType.VARCHAR, width = 50)
// @DataCenterColumn(name = "学位", key = "zgxwmc")
@DataCenterColumn(name = "学位", key = "zgxw")
private String academicDegree;
@Column
@@ -178,7 +179,7 @@ public class Sys_user extends BaseModel implements Serializable {
@Column
@Comment("来校时间")
@ColDefine(type = ColType.VARCHAR, width = 10)
@DataCenterColumn(name = "来校时间", key = "LXRQ")
@DataCenterColumn(name = "来校时间", key = "cjgzsj")
private String arrivalAtSchoolDate;
@Column
@@ -189,7 +190,7 @@ public class Sys_user extends BaseModel implements Serializable {
@Column
@Comment("在职状态")
@ColDefine(type = ColType.VARCHAR, width = 30)
@DataCenterColumn(name = "当前状态码", key = "DQZTM", dict = "USER_STATE")
@DataCenterColumn(name = "当前状态码", key = "on_duty_status", dict = "USER_STATE")
private String userState;
@Column
@@ -201,7 +202,7 @@ public class Sys_user extends BaseModel implements Serializable {
@Column
@Comment("教职工类别码")
@ColDefine(type = ColType.VARCHAR, width = 30)
@DataCenterColumn(name = "教职工类别码", key = "JZGLBM", dict = "USER_PERSON_TYPE")
@DataCenterColumn(name = "教职工类别码", key = "usertype", dict = "USER_PERSON_TYPE")
private String personType;
@Column
@@ -218,11 +219,13 @@ public class Sys_user extends BaseModel implements Serializable {
@Column
@Comment("预计离校时间/最后离校时间")
@ColDefine(type = ColType.DATE)
@DataCenterColumn(name = "离校时间", key = "lxsj")
private Date expectedLeaveSchoolDate;
@Column
@Comment("退休时间")
@ColDefine(type = ColType.DATE)
@DataCenterColumn(name = "离校时间", key = "txsj")
private Date retireDate;
@Column
@@ -112,49 +112,27 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl<Sys_user_source>
try {
// 获取数据中心的字典
List<Sys_data_dict> dataDictList = dao().query(Sys_data_dict.class, Cnd.NEW());
// 字典码表Map,key为父级编码,value为子级字典列表
Map<String, List<Sys_data_dict>> dataDictMap = dataDictList.stream().collect(Collectors.groupingBy(Sys_data_dict::getParentCode));
// token url参数
Map<String, String> tokenParams = Map.of(
"grant_type", "password",
"scope", "read",
"username", "3848A3C738EFBB2C2E76E0D59B419DACA16A80F3AB0354CD",
"password", "3848A3C738EFBB2C2E76E0D59B419DACA16A80F3AB0354CD"
);
// 请求人员数据
HttpRequest httpRequest = HttpUtil.createGet("http://211.82.200.130:10003/api/139/1/5000");
String params = URLUtil.buildQuery(tokenParams, StandardCharsets.UTF_8);
String tokenUrl = "https://bd.hdc.edu.cn/sjjkfwpt/api/bd-api/oauth/token" + (StrUtil.isBlank(params) ? "" : "?" + params);
HttpRequest tokenHttpRequest = HttpUtil.createPost(tokenUrl);
tokenHttpRequest.header("Content-Type", "application/json");
tokenHttpRequest.header("Authorization", "Basic MTE0OjU5M2UwNGI4YTE4NWRlMzkyNjY4ZmY0ZDJhZGMyZTEw");
log.info("请求token: {}", tokenHttpRequest);
String tokenResBody = tokenHttpRequest.execute().body();
log.info("请求token结果: {}", tokenResBody);
JSONObject tokenJsonBody = JSONUtil.parseObj(tokenResBody);
// 请求数据
HttpRequest httpRequest = HttpUtil.createGet("https://bd.hdc.edu.cn/sjjkfwpt/api/bd-api/get/JZGJCSJZLB");
httpRequest.form(Map.of("access_token", tokenJsonBody.getStr("access_token"), "pageSize", 5000, "page", 1));
log.info("请求人员数据: {}", httpRequest);
log.info("请求人员数据:{}", httpRequest);
String resBody = httpRequest.execute().body();
log.info("请求人员数据结果: {}", resBody);
log.info("请求人员数据结果:{}", resBody);
JSONObject jsonBody = JSONUtil.parseObj(resBody);
if (jsonBody.getInt("code") != 200) {
throw new BaseException("获取人员数据失败,错误码: " + jsonBody.getInt("code") + ";错误原因:" + jsonBody.getStr("msg"));
throw new BaseException("获取人员数据失败,错误码:" + jsonBody.getInt("code") + ";错误原因:" + jsonBody.getStr("msg"));
}
List<JSONObject> rawDataList = new ArrayList<>();
JSONArray data = jsonBody.getJSONArray("data");
JSONObject data = jsonBody.getJSONObject("data");
JSONArray rows = data.getJSONArray("rows");
if (!data.isEmpty()) {
// 先收集所有原始数据
rawDataList = data.stream().map(v -> (JSONObject) v).toList();
log.info("数据拉取进度: {}/{}", rawDataList.size(), jsonBody.getInt("total"));
if (rows != null && !rows.isEmpty()) {
rawDataList = rows.stream().map(v -> (JSONObject) v).toList();
log.info("数据拉取进度:{}/{}", rawDataList.size(), rawDataList.size());
} else {
log.warn("当前未获取到数据");
}
@@ -178,7 +156,7 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl<Sys_user_source>
mapping.field.set(sysUser, sysDataDict.getName());
} else {
// 特殊处理 根据身份证号获取性别和出生年月
if ("SFZJH".equals(mapping.field.getName())) {
if ("sfzh".equals(mapping.field.getName())) {
String idCard = raw.getStr(mapping.key);
// 设置出生年月
try {
@@ -245,6 +245,7 @@ public class SysClubServiceImpl extends BaseServiceImpl<SysClub> implements SysC
cnd.andEX("year(info.createTime)", "=", pageForm.getYear());
cnd.and("info.userId", "=", SecurityUtil.getUserId());
cnd.desc("createTime");
// cnd.groupBy("info.id");
sql.setCondition(cnd);
return listPageVO(pageForm, sql, ClubRegisterPageVo.class);
}