From aa94662db0bd1229bed072bcd14643cb575776d9 Mon Sep 17 00:00:00 2001 From: zhouhefeng Date: Wed, 5 Nov 2025 10:25:22 +0800 Subject: [PATCH] commit --- .../budwk/app/sys/enums/Api2UnitFiledMap.java | 14 ++--- .../com/budwk/app/sys/models/Sys_user.java | 24 +++----- .../impl/SysDataUnitPullServiceImpl.java | 27 +++++---- .../impl/SysDataUserPullServiceImpl.java | 57 ++++++------------- 4 files changed, 45 insertions(+), 77 deletions(-) diff --git a/src/main/java/com/budwk/app/sys/enums/Api2UnitFiledMap.java b/src/main/java/com/budwk/app/sys/enums/Api2UnitFiledMap.java index 57a6f00..5aba3b6 100644 --- a/src/main/java/com/budwk/app/sys/enums/Api2UnitFiledMap.java +++ b/src/main/java/com/budwk/app/sys/enums/Api2UnitFiledMap.java @@ -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; diff --git a/src/main/java/com/budwk/app/sys/models/Sys_user.java b/src/main/java/com/budwk/app/sys/models/Sys_user.java index d287b1a..27afc70 100644 --- a/src/main/java/com/budwk/app/sys/models/Sys_user.java +++ b/src/main/java/com/budwk/app/sys/models/Sys_user.java @@ -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 diff --git a/src/main/java/com/budwk/app/sys/services/impl/SysDataUnitPullServiceImpl.java b/src/main/java/com/budwk/app/sys/services/impl/SysDataUnitPullServiceImpl.java index 8181346..37cd276 100644 --- a/src/main/java/com/budwk/app/sys/services/impl/SysDataUnitPullServiceImpl.java +++ b/src/main/java/com/budwk/app/sys/services/impl/SysDataUnitPullServiceImpl.java @@ -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 implem @Override @Aop(TransAop.READ_COMMITTED) public void updateUnits(List 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 implem // 需要更新的单位 List updateList = new ArrayList<>(); - // 拉取过来的数据,全部的单位,一万四千多条,这里只保留 “部门类” - List 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 data = rows.stream().map(v -> (JSONObject) v).toList(); Map 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())) { // 存在则更新 diff --git a/src/main/java/com/budwk/app/sys/services/impl/SysDataUserPullServiceImpl.java b/src/main/java/com/budwk/app/sys/services/impl/SysDataUserPullServiceImpl.java index e2cc0fb..ea28d84 100644 --- a/src/main/java/com/budwk/app/sys/services/impl/SysDataUserPullServiceImpl.java +++ b/src/main/java/com/budwk/app/sys/services/impl/SysDataUserPullServiceImpl.java @@ -113,34 +113,30 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl // 字典码表Map,key为父级编码,value为子级字典列表 Map> dataDictMap = dataDictList.stream().collect(Collectors.groupingBy(Sys_data_dict::getParentCode)); - Map financeUserMap = pullFinance(); -// // 博士后进站日期数据 -// Map 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 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 .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 } // 设置单位相关信息 - 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 @Override public Map pullPostDoctoral() { - String appId = "1926887238437818370"; + /* String appId = "1926887238437818370"; String secret = "32df31fcf4fc43f9a647ee1f47134f36"; List allUsers = new ArrayList<>(); @@ -333,7 +307,8 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl Map data = allUsers.stream().filter(v -> v.getStr("进站日期") != null).collect(Collectors.toMap(v -> v.getStr("教职工号"), v -> v.getDate("进站日期"))); - return data; + return data;*/ + return null; }