commit
This commit is contained in:
@@ -12,13 +12,13 @@ import lombok.Getter;
|
||||
@Getter
|
||||
public enum Api2UnitFiledMap {
|
||||
|
||||
ZZJGDM("zzjgdm", "id"),
|
||||
ZZJGMC("zzjgmc", "name"),
|
||||
FJZZJGDM("fjzzjgdm", "parentId"),
|
||||
JDCJDM("jdcjdm", "unitLevel"),
|
||||
CJ_XYDWH("cj_xydwh", "divisionCollegeCode"),
|
||||
JGLX("jglx", "institutionType"),
|
||||
BMLB("bmlb", "unitType");
|
||||
ZZJGDM("dm", "id"),
|
||||
ZZJGMC("mc", "name"),
|
||||
FJZZJGDM("ls", "parentId");
|
||||
// JDCJDM("jdcjdm", "unitLevel"),
|
||||
// CJ_XYDWH("cj_xydwh", "divisionCollegeCode"),
|
||||
// JGLX("jglx", "institutionType"),
|
||||
// BMLB("bmlb", "unitType");
|
||||
// SFQY("sfqy", "delFlag");
|
||||
|
||||
public final String apiField;
|
||||
|
||||
@@ -36,7 +36,7 @@ public class Sys_user extends BaseModel implements Serializable {
|
||||
@Column
|
||||
@Comment("工号")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 120)
|
||||
@DataCenterColumn(name = "工号", key = "gh")
|
||||
@DataCenterColumn(name = "工号", key = "zgh")
|
||||
private String loginname;
|
||||
|
||||
@Column
|
||||
@@ -48,6 +48,7 @@ public class Sys_user extends BaseModel implements Serializable {
|
||||
@Column
|
||||
@Comment("性别")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 10)
|
||||
@DataCenterColumn(name = "性别", key = "xbmc")
|
||||
private String sex;
|
||||
|
||||
@Column
|
||||
@@ -69,7 +70,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 = "zzmmmc")
|
||||
private String political;
|
||||
|
||||
@Column
|
||||
@@ -80,37 +81,34 @@ 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 = "mzmc")
|
||||
private String nation;
|
||||
|
||||
@Column
|
||||
@Comment("籍贯")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
@DataCenterColumn(name = "籍贯", key = "dqm")
|
||||
@DataCenterColumn(name = "籍贯", key = "jgmc")
|
||||
private String nativePlace;
|
||||
|
||||
@Column
|
||||
@Comment("国籍")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 20)
|
||||
@DataCenterColumn(name = "国籍", key = "gjdqm", dict = "USER_NATIONALITY")
|
||||
private String nationality;
|
||||
|
||||
@Column
|
||||
@Comment("证件类型")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 30)
|
||||
@DataCenterColumn(name = "证件类型", key = "sfzjlxm", dict = "USER_IDENTITY_TYPE")
|
||||
private String idCardType;
|
||||
|
||||
@Column
|
||||
@Comment("证件号码")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 30)
|
||||
@DataCenterColumn(name = "证件号码", key = "sfzjh")
|
||||
private String idCard;
|
||||
|
||||
@Column
|
||||
@Comment("手机号码")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
// @DataCenterColumn(name = "手机号码", key = "sjh")
|
||||
@DataCenterColumn(name = "手机号码", key = "sjh")
|
||||
private String mobile;
|
||||
|
||||
@Column
|
||||
@@ -122,7 +120,6 @@ public class Sys_user extends BaseModel implements Serializable {
|
||||
@Column
|
||||
@Comment("婚姻状况")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 20)
|
||||
@DataCenterColumn(name = "婚姻状况", key = "hyztm", dict = "USER_MARRIAGE")
|
||||
private String marriage;
|
||||
|
||||
@Column
|
||||
@@ -134,7 +131,6 @@ public class Sys_user extends BaseModel implements Serializable {
|
||||
@Column
|
||||
@Comment("岗位类别")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
@DataCenterColumn(name = "岗位类别", key = "prgw")
|
||||
private String jobCategory;
|
||||
|
||||
@Column
|
||||
@@ -194,31 +190,29 @@ public class Sys_user extends BaseModel implements Serializable {
|
||||
@Column
|
||||
@Comment("在职状态")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 30)
|
||||
@DataCenterColumn(name = "在岗状态", key = "zgzt")
|
||||
@DataCenterColumn(name = "在岗状态", key = "dqztmc")
|
||||
private String userState;
|
||||
|
||||
@Column
|
||||
@Comment("教职工类别码")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 30)
|
||||
@DataCenterColumn(name = "教职工类别码", key = "jzglbm", dict = "USER_PERSON_TYPE")
|
||||
@DataCenterColumn(name = "教职工类别码", key = "jzgrylbmc")
|
||||
private String personType;
|
||||
|
||||
@Column
|
||||
@Comment("编制类别码")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 30)
|
||||
@DataCenterColumn(name = "编制类别码", key = "bzlxm", dict = "USER_PREPARED_BY_TYPE")
|
||||
@DataCenterColumn(name = "编制类别码", key = "zbqkmc")
|
||||
private String preparedBy;
|
||||
|
||||
@Column
|
||||
@Comment("从教年月")
|
||||
@ColDefine(type = ColType.DATE)
|
||||
@DataCenterColumn(name = "从教年月", key = "cjny")
|
||||
private Date teachingTime;
|
||||
|
||||
@Column
|
||||
@Comment("预计离校时间/最后离校时间")
|
||||
@ColDefine(type = ColType.DATE)
|
||||
@DataCenterColumn(name = "预计离校时间/最后离校时间", key = "yjlxsj")
|
||||
private Date expectedLeaveSchoolDate;
|
||||
|
||||
@Column
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.budwk.app.sys.services.impl;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import cn.hutool.json.JSONArray;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.budwk.app.base.config.DataCenterProperties;
|
||||
@@ -62,18 +63,17 @@ public class SysDataUnitPullServiceImpl extends BaseServiceImpl<Sys_unit> implem
|
||||
@Override
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public void updateUnits(List<String> unitIds) {
|
||||
// 获取配置
|
||||
DataCenterProperties.Credential credential = dcPro.credential("unit");
|
||||
String url = credential.getUrl();
|
||||
String token = credential.getToken();
|
||||
|
||||
// 请求数据
|
||||
HttpRequest httpRequest = HttpUtil.createPost(url);
|
||||
String tokenUrl = "https://dcs.hgu.edu.cn:8888/openApi/API/zzjg";
|
||||
HttpRequest httpRequest = HttpUtil.createPost(tokenUrl);
|
||||
httpRequest.header("Content-Type", "application/json");
|
||||
httpRequest.header("X-H3C-TOKEN", token);
|
||||
httpRequest.body(JSONUtil.toJsonStr(Map.of()));
|
||||
httpRequest.header("applyId", "39923603855883264");
|
||||
httpRequest.header("secretKey", "169a960048124f4483e9637807afc9f6");
|
||||
httpRequest.body(JSONUtil.toJsonStr(Map.of("page", 1, "pagesize", 1000)));
|
||||
|
||||
log.info("请求人员数据: {}", httpRequest);
|
||||
String resBody = httpRequest.execute().body();
|
||||
log.info("请求人员数据结果: {}", resBody);
|
||||
JSONObject jsonBody = JSONUtil.parseObj(resBody);
|
||||
|
||||
if (jsonBody.getInt("code") != 200) {
|
||||
@@ -85,18 +85,17 @@ public class SysDataUnitPullServiceImpl extends BaseServiceImpl<Sys_unit> implem
|
||||
// 需要更新的单位
|
||||
List<Sys_unit> updateList = new ArrayList<>();
|
||||
|
||||
// 拉取过来的数据,全部的单位,一万四千多条,这里只保留 “部门类”
|
||||
List<JSONObject> data = jsonBody.getJSONArray("data").stream()
|
||||
.map(o -> (JSONObject) o)
|
||||
.filter(row -> StrUtil.isNotBlank(row.getStr("bmlb")))
|
||||
.toList();
|
||||
JSONObject dataJson = jsonBody.getJSONObject("data");
|
||||
JSONArray rows = dataJson.get("Rows", JSONArray.class);
|
||||
|
||||
List<JSONObject> data = rows.stream().map(v -> (JSONObject) v).toList();
|
||||
|
||||
Map<String, String> api2db = Arrays.stream(Api2UnitFiledMap.values())
|
||||
.collect(Collectors.toMap(e -> e.apiField, e -> e.dbColumn));
|
||||
for (JSONObject row : data) {
|
||||
Sys_unit unit = DataCenterUtil.mapJsonToBean(row, Sys_unit.class, api2db);
|
||||
unit.setUnitcode(unit.getId());
|
||||
unit.setUnitTypeCode(unit.getUnitType().contains("部门") ? 1 : 0);
|
||||
unit.setUnitTypeCode(unit.getParentId().length() == 2 ? 0 : 1);
|
||||
|
||||
if (unitIds.contains(unit.getId())) {
|
||||
// 存在则更新
|
||||
|
||||
@@ -113,34 +113,30 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl<Sys_user_source>
|
||||
// 字典码表Map,key为父级编码,value为子级字典列表
|
||||
Map<String, List<Sys_data_dict>> dataDictMap = dataDictList.stream().collect(Collectors.groupingBy(Sys_data_dict::getParentCode));
|
||||
|
||||
Map<String, NutMap> financeUserMap = pullFinance();
|
||||
// // 博士后进站日期数据
|
||||
// Map<String, Date> doctoralData = pullPostDoctoral();
|
||||
|
||||
// 获取配置文件 接口地址 和 token
|
||||
DataCenterProperties.Credential credential = dataCenterProperties.credential("teacher");
|
||||
String url = credential.getUrl();
|
||||
String token = credential.getToken();
|
||||
|
||||
// 请求数据
|
||||
HttpRequest httpRequest = HttpUtil.createPost(url);
|
||||
String tokenUrl = "https://dcs.hgu.edu.cn:8888/openApi/API/jzgjbxx";
|
||||
HttpRequest httpRequest = HttpUtil.createPost(tokenUrl);
|
||||
httpRequest.header("Content-Type", "application/json");
|
||||
httpRequest.header("X-H3C-TOKEN", token);
|
||||
httpRequest.body(JSONUtil.toJsonStr(Map.of()));
|
||||
httpRequest.header("applyId", "39923603855883264");
|
||||
httpRequest.header("secretKey", "169a960048124f4483e9637807afc9f6");
|
||||
httpRequest.body(JSONUtil.toJsonStr(Map.of("page", 1, "pagesize", 3000)));
|
||||
|
||||
log.info("请求人员数据: {}", httpRequest);
|
||||
String resBody = httpRequest.execute().body();
|
||||
log.info("请求人员数据结果: {}", resBody);
|
||||
JSONObject jsonBody = JSONUtil.parseObj(resBody);
|
||||
|
||||
if (jsonBody.getInt("code") != 200) {
|
||||
if (jsonBody.getInt("status") != 200) {
|
||||
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.get("Rows", JSONArray.class);
|
||||
|
||||
if (!data.isEmpty()) {
|
||||
// 先收集所有原始数据
|
||||
rawDataList = data.stream().map(v -> (JSONObject) v).toList();
|
||||
rawDataList = rows.stream().map(v -> (JSONObject) v).toList();
|
||||
log.info("数据拉取进度: {}/{}", rawDataList.size(), jsonBody.getInt("total"));
|
||||
} else {
|
||||
log.warn("当前未获取到数据");
|
||||
@@ -164,18 +160,7 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl<Sys_user_source>
|
||||
.equals(v.getCode())).findFirst().orElse(new Sys_data_dict());
|
||||
mapping.field.set(sysUser, sysDataDict.getName());
|
||||
} else {
|
||||
// 特殊处理 根据身份证号获取性别和出生年月
|
||||
if ("sfzjh".equals(mapping.field.getName())) {
|
||||
String idCard = raw.getStr(mapping.key);
|
||||
if (StrUtil.isNotBlank(idCard)) {
|
||||
int gender = IdcardUtil.getGenderByIdCard(idCard);
|
||||
// 性别(1 : 男 , 0 : 女)
|
||||
sysUser.setSex(gender == 1 ? "男" : "女");
|
||||
mapping.field.set(sysUser, raw.getStr(mapping.key));
|
||||
}
|
||||
} else {
|
||||
mapping.field.set(sysUser, raw.getStr(mapping.key));
|
||||
}
|
||||
mapping.field.set(sysUser, raw.getStr(mapping.key));
|
||||
}
|
||||
} else if (mapping.field.getType() == Date.class) {
|
||||
mapping.field.set(sysUser, raw.getDate(mapping.key));
|
||||
@@ -186,20 +171,9 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl<Sys_user_source>
|
||||
}
|
||||
|
||||
// 设置单位相关信息
|
||||
sysUser.setUnitId(raw.getStr("dwh"));
|
||||
sysUser.setUnitId(raw.getStr("szdwdm"));
|
||||
sysUser.setPullTime(nowDate);
|
||||
|
||||
// 判断财务信息有没有值,
|
||||
if (financeUserMap.containsKey(sysUser.getLoginname())) {
|
||||
NutMap nutMap = financeUserMap.get(sysUser.getLoginname());
|
||||
sysUser.setMember(true);
|
||||
sysUser.setWelfareMember(true);
|
||||
sysUser.setPreparationMemberFee(BigDecimal.valueOf(nutMap.getDouble("preparationMemberFee")));
|
||||
sysUser.setContractMemberFee(BigDecimal.valueOf(nutMap.getDouble("contractMemberFee")));
|
||||
} else {
|
||||
sysUser.setMember(false);
|
||||
sysUser.setWelfareMember(false);
|
||||
}
|
||||
|
||||
return sysUser;
|
||||
}).toList();
|
||||
@@ -286,7 +260,7 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl<Sys_user_source>
|
||||
|
||||
@Override
|
||||
public Map<String, Date> pullPostDoctoral() {
|
||||
String appId = "1926887238437818370";
|
||||
/* String appId = "1926887238437818370";
|
||||
String secret = "32df31fcf4fc43f9a647ee1f47134f36";
|
||||
|
||||
List<JSONObject> allUsers = new ArrayList<>();
|
||||
@@ -333,7 +307,8 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl<Sys_user_source>
|
||||
|
||||
Map<String, Date> data = allUsers.stream().filter(v -> v.getStr("进站日期") != null).collect(Collectors.toMap(v -> v.getStr("教职工号"), v -> v.getDate("进站日期")));
|
||||
|
||||
return data;
|
||||
return data;*/
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user