Prechádzať zdrojové kódy

4.1.20 中建主数据同步功能更新

zero 1 mesiac pred
rodič
commit
9078e70ea7

+ 1 - 1
platomix-gmetry-system-api/pom.xml

@@ -10,7 +10,7 @@
     <!--    日期和版本号需要同时升级-->
     <!--    4.2.64-2024.07.22->4.2.65-2024.07.22->4.2.66-2024.07.23-->
     <artifactId>platomix-gmetry-system-api</artifactId>
-    <version>4.1.19-20241217</version>
+    <version>4.1.20-20241225</version>
     <dependencies>
         <dependency>
             <groupId>com.platomix</groupId>

+ 168 - 0
platomix-gmetry-system-api/src/main/java/org/springblade/zhonnjian/entity/UserInfoHuamingce.java

@@ -0,0 +1,168 @@
+package org.springblade.zhonnjian.entity;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class UserInfoHuamingce implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    private Long id;
+
+    /**
+     * 员工姓名
+     */
+    private String yuanGongXingming;
+
+    /**
+     * 性别
+     */
+    private String xingBie;
+
+    /**
+     * 出生日期
+     */
+    private Date chuShengRiqi;
+
+    /**
+     * 籍贯
+     */
+    private String jiguan;
+
+    /**
+     * 出生地
+     */
+    private String chuShengdi;
+
+    /**
+     * 参加工作时间
+     */
+    private Date canJiaGongZuoShijian;
+
+    /**
+     * 到本单位时间
+     */
+    private Date daoBenDanWeiShijian;
+
+    /**
+     * 组织名称
+     */
+    private String zuZhiMingcheng;
+
+    /**
+     * 单位名称
+     */
+    private String danWeiMingcheng;
+
+    /**
+     * 部门名称
+     */
+    private String buMenMingcheng;
+
+    /**
+     * 婚姻状况
+     */
+    private String hunYinZhuangKuang;
+
+    /**
+     * 政治面貌
+     */
+    private String zhengZhiMianmao;
+
+    /**
+     * 证件号码
+     */
+    private String zhengJianHaoma;
+
+    /**
+     * 八局员工编号
+     */
+    private String baJuYuanGongBianHao;
+
+    /**
+     * 岗位序列名称
+     */
+    private String gangWeiXuLieMingcheng;
+
+    /**
+     * 岗位子序列名称
+     */
+    private String gangWeiZiXuLieMingcheng;
+
+    /**
+     * 岗位名称
+     */
+    private String gangWeiMingcheng;
+
+    /**
+     * 职务名称
+     */
+    private String zhiWuMingcheng;
+
+    /**
+     * 手机号
+     */
+    private String shouJihao;
+
+    /**
+     * 第一学历(学历)
+     */
+    private String diYiXueLiXueli;
+
+    /**
+     * 第一学历(毕业学校)
+     */
+    private String diYiXueLiBiYeXuexiao;
+
+    /**
+     * 第一学历(毕业时间)
+     */
+    private Date diYiXueLiBiYeShijian;
+
+    /**
+     * 第一学历(所学专业)
+     */
+    private String diYiXueLiSuoXueZhuanye;
+
+    /**
+     * 最高学历(学历)
+     */
+    private String zuiGaoXueLiXueli;
+
+    /**
+     * 最高学历(毕业学校)
+     */
+    private String zuiGaoXueLiBiYeXuexiao;
+
+    /**
+     * 最高学历(所学专业)
+     */
+    private String zuiGaoXueLiSuoXueZhuanye;
+
+    /**
+     * 最高学历(毕业时间)
+     */
+    private Date zuiGaoXueLiBiYeShijian;
+
+    /**
+     * 注册证书
+     */
+    private String zhuCeZhengShu;
+
+    /**
+     * 创建人ID
+     */
+    private Long jhbiUserId;
+
+
+}

+ 8 - 0
platomix-gmetry-system-api/src/main/java/org/springblade/zhonnjian/mapper/UserInfoHuamingceMapper.java

@@ -0,0 +1,8 @@
+package org.springblade.zhonnjian.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.zhonnjian.entity.UserInfoHuamingce;
+
+public interface UserInfoHuamingceMapper extends BaseMapper<UserInfoHuamingce> {
+
+}

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 44 - 0
platomix-gmetry-system-api/src/main/java/org/springblade/zhonnjian/mapper/UserInfoHuamingceMapper.xml


+ 9 - 0
platomix-gmetry-system-api/src/main/java/org/springblade/zhonnjian/mapper/ZjBladeUserDeptMapper.java

@@ -0,0 +1,9 @@
+package org.springblade.zhonnjian.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.wecom.entity.BladeUserDept;
+
+
+public interface ZjBladeUserDeptMapper extends BaseMapper<BladeUserDept> {
+
+}

+ 17 - 0
platomix-gmetry-system-api/src/main/java/org/springblade/zhonnjian/mapper/ZjBladeUserDeptMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.zhonnjian.mapper.ZjBladeUserDeptMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="org.springblade.wecom.entity.BladeUserDept">
+        <id column="id" property="id" />
+        <result column="user_id" property="userId" />
+        <result column="dept_id" property="deptId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, user_id, dept_id
+    </sql>
+
+</mapper>

+ 9 - 0
platomix-gmetry-system-api/src/main/java/org/springblade/zhonnjian/service/IUserInfoHuamingceService.java

@@ -0,0 +1,9 @@
+package org.springblade.zhonnjian.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.zhonnjian.entity.UserInfoHuamingce;
+
+
+public interface IUserInfoHuamingceService extends IService<UserInfoHuamingce> {
+
+}

+ 10 - 0
platomix-gmetry-system-api/src/main/java/org/springblade/zhonnjian/service/ZjBladeUserDeptService.java

@@ -0,0 +1,10 @@
+package org.springblade.zhonnjian.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.wecom.entity.BladeUserDept;
+
+public interface ZjBladeUserDeptService extends IService<BladeUserDept> {
+
+    void updateUserDept(Long id, Long deptId);
+
+}

+ 13 - 0
platomix-gmetry-system-api/src/main/java/org/springblade/zhonnjian/service/impl/UserInfoHuamingceServiceImpl.java

@@ -0,0 +1,13 @@
+package org.springblade.zhonnjian.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.zhonnjian.entity.UserInfoHuamingce;
+import org.springblade.zhonnjian.mapper.UserInfoHuamingceMapper;
+import org.springblade.zhonnjian.service.IUserInfoHuamingceService;
+import org.springframework.stereotype.Service;
+
+
+@Service
+public class UserInfoHuamingceServiceImpl extends ServiceImpl<UserInfoHuamingceMapper, UserInfoHuamingce> implements IUserInfoHuamingceService {
+
+}

+ 32 - 0
platomix-gmetry-system-api/src/main/java/org/springblade/zhonnjian/service/impl/ZjBladeUserDeptServiceImpl.java

@@ -0,0 +1,32 @@
+package org.springblade.zhonnjian.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.AllArgsConstructor;
+import org.springblade.wecom.entity.BladeUserDept;
+import org.springblade.wecom.mapper.BladeUserDeptMapper;
+import org.springblade.zhonnjian.service.ZjBladeUserDeptService;
+import org.springframework.stereotype.Service;
+
+@Service
+@AllArgsConstructor
+public class ZjBladeUserDeptServiceImpl extends ServiceImpl<BladeUserDeptMapper, BladeUserDept> implements ZjBladeUserDeptService {
+
+    private final BladeUserDeptMapper bladeUserDeptMapper;
+
+    @Override
+    public void updateUserDept(Long userId, Long deptId) {
+        // 删除用户原有的部门关联
+        LambdaQueryWrapper<BladeUserDept> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(BladeUserDept::getUserId, userId);
+        bladeUserDeptMapper.delete(wrapper);  // 执行删除SQL
+
+        // 添加新的部门关联
+        BladeUserDept userDept = new BladeUserDept();
+        userDept.setUserId(userId);
+        userDept.setDeptId(deptId);
+        bladeUserDeptMapper.insert(userDept);  // 执行插入SQL
+    }
+
+
+}

+ 421 - 0
platomix-gmetry-system-api/src/main/java/org/springblade/zhonnjian/task/FileToOssMonthTask.java

@@ -0,0 +1,421 @@
+package org.springblade.zhonnjian.task;
+
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springblade.common.utils.DigestUtil;
+import org.springblade.wecom.entity.BladeDept;
+import org.springblade.wecom.entity.BladeUser;
+import org.springblade.wecom.entity.BladeUserDept;
+import org.springblade.wecom.service.IBladeDeptService;
+import org.springblade.wecom.service.IBladeUserService;
+import org.springblade.zhonnjian.entity.UserInfoHuamingce;
+import org.springblade.zhonnjian.service.IUserInfoHuamingceService;
+import org.springblade.zhonnjian.service.ZjBladeUserDeptService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+@Component
+//@EnableAsync
+@Slf4j
+public class FileToOssMonthTask {
+
+    @Autowired
+    private IBladeDeptService bladeDeptService;
+
+    @Autowired
+    private IBladeUserService bladeUserService;
+
+    @Autowired
+    private ZjBladeUserDeptService bladeUserDeptService;
+
+    @Autowired
+    private IUserInfoHuamingceService userInfoHuamingceService;
+
+
+    @Value("${weCom.roleId}")
+    private String roleId;
+
+    @Value("${weCom.tenantId}")
+    private String tenantId;
+
+
+    @Scheduled(cron = "0 0 1 * * ?")  // 每天凌晨1:00执行
+    //@Scheduled(fixedRate = 90000000)
+    public void syncDeptAndUserFromMdm() {
+        log.info("开始同步MDM组织架构数据");
+        try {
+            String accessToken = getAccessToken();
+            if (StringUtils.isNotBlank(accessToken)) {
+                // 同步部门数据,并获取MDM编码到部门ID的映射  同步人员数据,使用部门映射关系
+                syncDeptData(accessToken);
+                log.info("MDM组织架构数据同步完成");
+            }
+        } catch (Exception e) {
+            log.error("MDM组织架构数据同步失败", e);
+            throw new RuntimeException(e);
+        }
+    }
+
+
+    private JSONArray getAllTreeData(String accessToken) {
+        JSONArray allData = new JSONArray();
+        int page = 1;
+        final int pageSize = 500;
+        boolean isLastPage = false;
+
+        while (!isLastPage) {
+            JSONObject response = getTree(accessToken, page, pageSize);
+            if (response != null) {
+                // 检查返回结果是否成功
+                if (!"S".equals(response.getString("RESULT"))) {
+                    log.error("获取部门数据失败: RESULT={}, MESSAGE={}",
+                            response.getString("RESULT"),
+                            response.getString("MESSAGE"));
+                    break;
+                }
+
+                // 获取当前页的数据并添加到总列表中
+                JSONArray currentPageData = response.getJSONArray("DATA");
+                if (currentPageData != null && !currentPageData.isEmpty()) {
+                    allData.addAll(currentPageData);
+                }
+
+                // 检查是否是最后一页
+                isLastPage = response.getBooleanValue("LAST_PAGE");
+                log.info("获取部门第{}页数据,本页数据量: {}", page,
+                        currentPageData != null ? currentPageData.size() : 0);
+                page++;
+            } else {
+                log.error("获取部门数据失败: 响应为空");
+                break;
+            }
+        }
+
+        log.info("部门数据获取完成,总数据量: {}", allData.size());
+        return allData;
+    }
+
+
+    private JSONArray getAllHumanData(String accessToken) {
+        JSONArray allData = new JSONArray();
+        int page = 1;
+        final int pageSize = 500;
+        boolean isLastPage = false;
+
+        while (!isLastPage) {
+            JSONObject response = getHuman(accessToken, page, pageSize);
+            if (response != null) {
+                // 检查返回结果是否成功
+                if (!"S".equals(response.getString("RESULT"))) {
+                    log.error("获取人员数据失败: RESULT={}, MESSAGE={}",
+                            response.getString("RESULT"),
+                            response.getString("MESSAGE"));
+                    break;
+                }
+                // 获取当前页的数据并添加到总列表中
+                JSONArray currentPageData = response.getJSONArray("DATA");
+                if (currentPageData != null && !currentPageData.isEmpty()) {
+                    allData.addAll(currentPageData);
+                }
+                // 检查是否是最后一页
+                isLastPage = response.getBooleanValue("LAST_PAGE");
+                log.info("获取人员数据第{}页,本页数据量: {}", page,
+                        currentPageData != null ? currentPageData.size() : 0);
+                page++;
+            } else {
+                log.error("获取人员数据失败: 响应为空");
+                break;
+            }
+        }
+        log.info("人员数据获取完成,总数据量: {}", allData.size());
+        return allData;
+    }
+
+
+    private void syncDeptData(String accessToken) {
+        JSONArray allTreeData = getAllTreeData(accessToken);
+        if (!allTreeData.isEmpty()) {
+            log.info("开始同步部门数据,总条数: {}", allTreeData.size());
+            // 第一次遍历:保存或更新部门基本信息
+            Map<String, Long> mdmCodeToDeptId = new HashMap<>();
+            for (int i = 0; i < allTreeData.size(); i++) {
+                JSONObject deptJson = allTreeData.getJSONObject(i);
+                String mdmCode = deptJson.getString("MDM_CODE");
+                Long wechatId = deptJson.getLong("WECHAT_ID");
+
+                try {
+                    if (wechatId == null) {
+                        log.info("部门 wechatId 为空 : {}", deptJson.getString("MDM_NAME"));
+                        continue;
+                    }
+                    // 查询现有部门
+                    BladeDept existingDept = bladeDeptService.getOne(new LambdaQueryWrapper<BladeDept>()
+                            .eq(BladeDept::getId, wechatId)
+                            .eq(BladeDept::getIsDeleted, 0)
+                            .eq(BladeDept::getTenantId, tenantId)
+                    );
+
+                    BladeDept dept = convertJsonToDept(deptJson);
+                    if (existingDept == null) {
+                        // 新增部门
+                        bladeDeptService.save(dept);
+                        log.info("新增部门: {}", dept.getDeptName());
+                        mdmCodeToDeptId.put(mdmCode, dept.getId());
+                    } else {
+                        if (StringUtils.isBlank(existingDept.getDeptCode())) {
+                            log.info("原部门数据补齐关联字段值: {},{}", dept.getDeptName(), dept.getDeptCode());
+                            existingDept.setDeptCode(dept.getDeptCode());
+                            bladeDeptService.updateById(existingDept);
+                            mdmCodeToDeptId.put(mdmCode, existingDept.getId());
+                        }
+                    }
+                } catch (Exception e) {
+                    log.error("处理部门数据失败, mdmCode: {}", mdmCode, e);
+                }
+            }
+
+            // 第二次遍历:更新部门的父级关系
+            for (int i = 0; i < allTreeData.size(); i++) {
+                JSONObject deptJson = allTreeData.getJSONObject(i);
+                String mdmCode = deptJson.getString("MDM_CODE");
+                String parentMdmCode = deptJson.getString("PARENT_MDM_CODE");
+
+                try {
+                    if (StringUtils.isNotBlank(parentMdmCode)) {
+                        Long deptId = mdmCodeToDeptId.get(mdmCode);
+                        Long parentId = mdmCodeToDeptId.get(parentMdmCode);
+
+                        if (deptId != null && parentId != null) {
+                            // 更新部门的父级ID
+                            boolean updated = bladeDeptService.lambdaUpdate()
+                                    .eq(BladeDept::getId, deptId)
+                                    .eq(BladeDept::getIsDeleted, 0)
+                                    .set(BladeDept::getParentId, parentId)
+                                    .update();
+                            if (updated) {
+                                log.info("更新部门[{}]的父级关系,父级部门ID,编码: {},{}", mdmCode, parentId, parentMdmCode);
+                            }
+                        }
+                    }
+                } catch (Exception e) {
+                    log.error("更新部门父级关系失败, mdmCode: {}", mdmCode, e);
+                }
+            }
+            syncUserData(accessToken, mdmCodeToDeptId);
+        }
+    }
+
+
+    private void syncUserData(String accessToken, Map<String, Long> mdmCodeToDeptId) {
+        JSONArray allHumanData = getAllHumanData(accessToken);
+        if (!allHumanData.isEmpty()) {
+            log.info("开始同步人员数据,总条数: {}", allHumanData.size());
+
+            for (int i = 0; i < allHumanData.size(); i++) {
+                JSONObject userJson = allHumanData.getJSONObject(i);
+                String thirdUserId = userJson.getString("USER_ID");
+                String deptCode = userJson.getString("DEPT"); // 部门的MDM编码
+                String credentialNo = userJson.getString("CREDENTIAL_NO"); //身份证号
+                String phoneNum = userJson.getString("PHONE_NUM"); //手机号
+
+                try {
+                    //花名册同步手机号
+                    if(StringUtils.isNotBlank(credentialNo)){
+                        UserInfoHuamingce one = userInfoHuamingceService.getOne(new LambdaQueryWrapper<UserInfoHuamingce>()
+                                .eq(UserInfoHuamingce::getZhengJianHaoma, credentialNo)
+                        );
+                        if(one != null && !phoneNum.equals(one.getShouJihao())){
+                            String shouJihao = one.getShouJihao();
+                            one.setShouJihao(phoneNum);;
+                            boolean update = userInfoHuamingceService.updateById(one);
+                            if(update){
+                                log.info("花名册人员{}手机号更新,原手机号: {} ,现手机号:{}", one.getYuanGongXingming(),shouJihao,phoneNum);
+                            }
+                        }
+                    }
+
+                    // 查询现有用户
+                    BladeUser existingUser = bladeUserService.getOne(new LambdaQueryWrapper<BladeUser>()
+                            .eq(BladeUser::getThirdUserId, thirdUserId)
+                            .eq(BladeUser::getIsDeleted, 0)
+                            .eq(BladeUser::getTenantId, tenantId)
+                    );
+                    // 获取部门ID
+                    Long deptId = mdmCodeToDeptId.get(deptCode);
+                    if (deptId == null) {
+                        log.error("用户[{}]的部门[{}]不存在", thirdUserId, deptCode);
+                        continue;
+                    }
+
+                    BladeUser user = convertJsonToUser(userJson);
+
+                    if (existingUser == null) {
+                        // 新增用户
+                        user.setDeptId(deptId.toString());
+                        bladeUserService.save(user);
+                        // 设置用户部门关系
+                        bladeUserDeptService.updateUserDept(user.getId(), deptId);
+                        log.info("新增用户部门关系-用户: {}, 部门: {}", user.getName(), deptId);
+                    } else {
+                        // 更新用户部门信息
+                        boolean updated = bladeUserService.lambdaUpdate()
+                                .eq(BladeUser::getId, existingUser.getId())
+                                .eq(BladeUser::getIsDeleted, 0)
+                                .set(BladeUser::getDeptId, deptId.toString())
+                                .update();
+                        if (updated) {
+                            log.info("更新用户[{}]的部门关系,原部门,新部门: {},{}", existingUser.getId(), existingUser.getDeptId(), deptId);
+                        }
+
+                        // 检查并更新部门关系
+                        BladeUserDept userDept = bladeUserDeptService.getOne(new LambdaQueryWrapper<BladeUserDept>()
+                                .eq(BladeUserDept::getUserId, existingUser.getId().toString())
+                        );
+                        if (userDept == null || !userDept.getDeptId().equals(deptId)) {
+                            // 更新用户部门关系
+                            bladeUserDeptService.updateUserDept(existingUser.getId(), deptId);
+                            log.info("更新用户部门关系: 用户 {} 部门 {}", user.getName(), deptId);
+                        }
+                    }
+
+                } catch (Exception e) {
+                    log.error("处理用户数据失败, thirdUserId: {}", thirdUserId, e);
+                }
+            }
+        }
+    }
+
+    private BladeUser convertJsonToUser(JSONObject json) {
+        BladeUser user = new BladeUser();
+        user.setTenantId(tenantId);
+        user.setAccount(json.getString("PHONE_NUM"));
+        user.setName(json.getString("MDM_NAME"));
+        user.setRealName(json.getString("MDM_NAME"));
+        user.setEmail(json.getString("EMAIL"));
+        user.setPhone(json.getString("PHONE_NUM"));
+        user.setIsDeleted(0);
+        user.setIsLogin(0);
+        user.setIsWxLogin(0);
+        user.setLoginStatus(0);
+        user.setUserAttr(0);
+        user.setThirdUserId(json.getString("USER_ID"));
+        //user.setDeptId(id.toString());
+        user.setCreateTime(new Date());
+        user.setUpdateTime(new Date());
+        user.setPassword(DigestUtil.encrypt("zjbj@2024"));
+        user.setRoleId(roleId);
+        return user;
+    }
+
+
+    private BladeDept convertJsonToDept(JSONObject json) {
+        BladeDept dept = new BladeDept();
+        dept.setTenantId(tenantId);
+        dept.setId(json.getLong("WECHAT_ID"));
+        dept.setDeptName(json.getString("MDM_NAME"));
+        dept.setFullName(json.getString("MDM_NAME"));
+        dept.setDeptCode(json.getString("PARENT_MDM_CODE")); // 使用MDM_CODE作为deptCode
+        //dept.setParentId(json.getString("PARENT_MDM_CODE"));
+        dept.setDeptCategory(1);
+        dept.setIsDeleted(0);
+        return dept;
+    }
+
+
+    /**
+     * 主数据API token
+     *
+     * @return
+     */
+    private String getAccessToken() {
+        Map<String, Object> formMap = new HashMap<>();
+        formMap.put("APP_ID", "7cf6631251e949a8b0193de0062be49e");
+        formMap.put("APP_KEY", "0218756eb8d94512a303de71e33b7220");
+        String res = HttpUtil.createGet("https://dec.cscec8st.com.cn:50024/demdm-api/open/api/getToken").form(formMap).execute().body();
+        JSONObject jsonObject = JSONObject.parseObject(res);
+        log.info("jsonObject = {}", jsonObject.toJSONString());
+        if (Objects.nonNull(jsonObject.get("code")) && jsonObject.getString("code").equals("ok")) {
+            return jsonObject.getJSONObject("data").getString("token");
+        }
+        throw new RuntimeException("主数据获取Token失败|res=" + res);
+    }
+
+
+    /**
+     * 获取组织树架构数据
+     *
+     * @param accessToken
+     * @param page
+     * @param pageSize
+     * @return
+     */
+    private JSONObject getTree(String accessToken, Integer page, Integer pageSize) {
+        Map<String, Object> map = new HashMap<>();
+        Map<String, Object> dataMap = new HashMap<>();
+        map.put("FORM_CODE", "TREE");
+        map.put("UUID", "16184989241DD8843F87B0F3BA753RTY");
+        map.put("PAGE", page);
+        map.put("PAGE_SIZE", pageSize);
+        map.put("DATA", dataMap);
+        String param = JSON.toJSONString(map);
+
+        HashMap<String, String> headers = new HashMap<>();
+        headers.put("demdmtoken", accessToken);
+        headers.put("Content-Type", "application/json");
+
+        String result = HttpUtil.createPost("https://dec.cscec8st.com.cn:50024/demdm-api/open/api/v2/selectApi/TREE")
+                .headerMap(headers, true)
+                .body(param)
+                .execute()
+                .body();
+        JSONObject jsonObject = JSONObject.parseObject(result);
+        return jsonObject;
+    }
+
+
+    /**
+     * 获取人员主数据
+     *
+     * @param accessToken
+     * @param page
+     * @param pageSize
+     * @return
+     */
+    private JSONObject getHuman(String accessToken, Integer page, Integer pageSize) {
+        Map<String, Object> map = new HashMap<>();
+        Map<String, Object> dataMap = new HashMap<>();
+        map.put("FORM_CODE", "HUMAN");
+        map.put("UUID", "16184989241DD8843F87B0F3BA753RTY");
+        map.put("PAGE", page);
+        map.put("PAGE_SIZE", pageSize);
+        map.put("DATA", dataMap);
+        String param = JSON.toJSONString(map);
+
+        HashMap<String, String> headers = new HashMap<>();
+        headers.put("demdmtoken", accessToken);
+        headers.put("Content-Type", "application/json");
+        String result = HttpUtil.createPost("https://dec.cscec8st.com.cn:50024/demdm-api/open/api/v2/selectApi/HUMAN1")
+                .headerMap(headers, true)
+                .body(param)
+                .execute()
+                .body();
+        JSONObject jsonObject = JSONObject.parseObject(result);
+        return jsonObject;
+    }
+
+
+}
+
+

+ 1 - 0
platomix-gmetry-system-api/src/main/resources/application.yml

@@ -16,6 +16,7 @@ blade:
     appSupport: false
     tenant:
       exclusionTableNames:
+        - user_info_huamingce
         - data_permission_dept
         - data_permission_role
         - data_permission_user