zhang-kan-kan 2 lat temu
rodzic
commit
2566d47308

+ 0 - 37
.gitignore

@@ -1,37 +0,0 @@
-# IntelliJ project files
-.idea
-*.iml
-out
-gen
-### Java template
-# Compiled class file
-*.class
-
-# Log file
-*.log
-/log/
-
-# BlueJ files
-*.ctxt
-
-# Mobile Tools for Java (J2ME)
-.mtj.tmp/
-
-# Package Files #
-*.jar
-*.war
-*.nar
-*.ear
-*.zip
-*.tar.gz
-*.rar
-
-# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
-hs_err_pid*
-
-mvnw
-mvnw.cmd
-
-# tmp file
-.tmp
-/tmp/

+ 2 - 2
pom.xml

@@ -9,8 +9,8 @@
         <version>2.3.3.RELEASE</version>
         <relativePath/> <!-- lookup parent from repository -->
     </parent>
-    <groupId>com.muzhi.nuodingshan</groupId>
-    <artifactId>nuodingshan</artifactId>
+    <groupId>com.muzhi.zgd</groupId>
+    <artifactId>zgd</artifactId>
     <packaging>jar</packaging>
     <version>1.0-SNAPSHOT</version>
 

+ 0 - 28
src/main/java/com/muzhi/zgd/controller/LianJieQiController.java

@@ -1,28 +0,0 @@
-package com.muzhi.zgd.controller;
-
-import com.muzhi.zgd.service.LianJieQiService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-
-@Api(description = "连接器测试")
-@RestController
-@RequestMapping("/lianjieqiservice")
-@CrossOrigin//解决跨域问题
-public class LianJieQiController {
-
-    @Autowired
-    private LianJieQiService lianJieQiService;
-
-    //获取宜搭表单返回的表单id,然后通过id获取表单其他数据进行业务处理
-    @ApiOperation(value = "获取宜搭表单返回的表单id,然后通过id获取表单其他数据进行业务处理")
-    @PostMapping("getSPid")
-    public String getSPid(String id){
-
-        String SPid = lianJieQiService.getSPid(id);
-
-        return SPid;
-    }
-}

+ 14 - 0
src/main/java/com/muzhi/zgd/controller/ZGDjiaozhigongController.java

@@ -61,4 +61,18 @@ public class ZGDjiaozhigongController {
         String s = zgDjiaozhigongService.addJiaozhigongToBD();
         return s;
     }
+
+
+
+    /*===================================================================================*/
+
+    //最新版本:教职工系统同步钉钉
+    @ApiOperation(value = "同步浙工大教职工信息")
+    @PostMapping("addJiaozhigongEnd")
+    public String addJiaozhigongEnd(){
+
+        String s = zgDjiaozhigongService.addJiaozhigongEnd();
+
+        return s;
+    }
 }

+ 0 - 13
src/main/java/com/muzhi/zgd/service/LianJieQiService.java

@@ -1,13 +0,0 @@
-package com.muzhi.zgd.service;
-
-import java.util.Map;
-
-/**
- * @Author ZhangKan
- * @Data 15:34
- */
-public interface LianJieQiService {
-
-    //获取宜搭表单返回的表单id,然后通过id获取表单其他数据进行业务处理
-    String getSPid(String id);
-}

+ 7 - 0
src/main/java/com/muzhi/zgd/service/ZGDjiaozhigongService.java

@@ -17,4 +17,11 @@ public interface ZGDjiaozhigongService{
 
     //浙工大教职工数据同步至本地数据库
     String addJiaozhigongToBD() throws Exception;
+
+
+
+    /*===================================================================================*/
+
+    //最新版本:教职工系统同步钉钉
+    String addJiaozhigongEnd();
 }

+ 0 - 39
src/main/java/com/muzhi/zgd/service/impl/LianJieQiServiceImpl.java

@@ -1,39 +0,0 @@
-package com.muzhi.zgd.service.impl;
-
-
-import com.muzhi.zgd.service.LianJieQiService;
-import org.springframework.stereotype.Service;
-
-
-@Service
-public class LianJieQiServiceImpl implements LianJieQiService {
-
-    /**
-     * 获取宜搭表单返回的表单id,然后通过id获取表单其他数据进行业务处理
-     * @param id(宜搭表单id)
-     * @return
-     */
-
-    @Override
-    public String getSPid(String id){
-
-        Boolean zhi = null;
-
-        if (id.equals("测试")){
-            zhi = true;
-        }else {
-            zhi = false;
-        }
-
-        System.out.println("宜搭表单id:" + id);
-
-        System.out.println("校验结果:" + zhi);
-
-//        Map map = new HashMap();
-//
-//        map.put("jiaoyanjieguo", zhi);
-//        map.put("jiaoyanxinxi","系统中没有职位【1】,请重新输入!");
-
-        return "连接器抓取宜搭表单数据执行完成!";
-    }
-}

+ 246 - 148
src/main/java/com/muzhi/zgd/service/impl/ZGDjiaozhigongServiceImpl.java

@@ -10,6 +10,7 @@ import com.dingtalk.api.request.*;
 import com.dingtalk.api.response.*;
 import com.muzhi.zgd.entity.Bumen;
 import com.muzhi.zgd.entity.Jiaozhigong;
+import com.muzhi.zgd.entity.vo.BumenVo;
 import com.muzhi.zgd.http.ApiHttpClientUtils;
 import com.muzhi.zgd.http.HttpConnectionUtils;
 import com.muzhi.zgd.mapper.BumenMapper;
@@ -22,7 +23,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -306,152 +306,6 @@ public class ZGDjiaozhigongServiceImpl implements ZGDjiaozhigongService{
                     OapiV2UserCreateResponse rsp = client.execute(req, dingAccessTokenService.getAccessToken());
                     System.out.println("创建用户返回信息:" + rsp.getBody());
 
-                    //TODO 更新员工花名册档案字段【待启用测试,同步更新教职工花名册人员数据!!!】
-                    //TODO 字段1:性别
-//                    try {
-//                        DingTalkClient client1 = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/v2/update");
-//                        OapiSmartworkHrmEmployeeV2UpdateRequest req1 = new OapiSmartworkHrmEmployeeV2UpdateRequest();
-//
-//                        //微应用在企业的Agentid(自建应用的Agentid)
-//                        req1.setAgentid(1200391050L);
-//
-//                        OapiSmartworkHrmEmployeeV2UpdateRequest.EmpUpdateByCustomParam obj1 = new OapiSmartworkHrmEmployeeV2UpdateRequest.EmpUpdateByCustomParam();
-//                        List<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpGroupFieldVo> list3 = new ArrayList<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpGroupFieldVo>();
-//                        OapiSmartworkHrmEmployeeV2UpdateRequest.EmpGroupFieldVo obj4 = new OapiSmartworkHrmEmployeeV2UpdateRequest.EmpGroupFieldVo();
-//                        list3.add(obj4);
-//                        List<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpListFieldVo> list7 = new ArrayList<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpListFieldVo>();
-//                        OapiSmartworkHrmEmployeeV2UpdateRequest.EmpListFieldVo obj8 = new OapiSmartworkHrmEmployeeV2UpdateRequest.EmpListFieldVo();
-//                        list7.add(obj8);
-//                        List<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpFieldVo> list11 = new ArrayList<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpFieldVo>();
-//                        OapiSmartworkHrmEmployeeV2UpdateRequest.EmpFieldVo obj12 = new OapiSmartworkHrmEmployeeV2UpdateRequest.EmpFieldVo();
-//                        list11.add(obj12);
-//
-//                        //更新字段code:性别
-//                        obj12.setFieldCode("sys02-sexType");
-//                        //更新字段值
-//                        if (jsonArray.getJSONObject(a).getString("XB").equals("男")){
-//                            obj12.setValue("0");
-//                        }else if (jsonArray.getJSONObject(a).getString("XB").equals("女")){
-//                            obj12.setValue("1");
-//                        }else obj12.setValue("");
-//
-//                        obj8.setSection(list11);
-//                        obj4.setSections(list7);
-//
-//                        //智能人事花名册员工档案字段分组
-//                        obj4.setGroupId("sys02");
-//
-//                        obj1.setGroups(list3);
-//
-//                        //用户userid(此处定义的userid也是手机号)
-//                        obj1.setUserid(jsonArray.getJSONObject(a).getString("SJHM"));
-//
-//                        req1.setParam(obj1);
-//                        OapiSmartworkHrmEmployeeV2UpdateResponse rsp1 = client1.execute(req1, dingAccessTokenService.getMuZhiAccessToken());
-//                        System.out.println("性别:" + rsp1.getBody());
-//                    } catch (ApiException e) {
-//                        e.printStackTrace();
-//                    }
-//
-//                    //TODO 字段2:专业技术岗等级
-//                    try {
-//                        DingTalkClient client1 = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/v2/update");
-//                        OapiSmartworkHrmEmployeeV2UpdateRequest req1 = new OapiSmartworkHrmEmployeeV2UpdateRequest();
-//
-//                        //微应用在企业的Agentid(自建应用的Agentid)
-//                        req1.setAgentid(1200391050L);
-//
-//                        OapiSmartworkHrmEmployeeV2UpdateRequest.EmpUpdateByCustomParam obj1 = new OapiSmartworkHrmEmployeeV2UpdateRequest.EmpUpdateByCustomParam();
-//                        List<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpGroupFieldVo> list3 = new ArrayList<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpGroupFieldVo>();
-//                        OapiSmartworkHrmEmployeeV2UpdateRequest.EmpGroupFieldVo obj4 = new OapiSmartworkHrmEmployeeV2UpdateRequest.EmpGroupFieldVo();
-//                        list3.add(obj4);
-//                        List<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpListFieldVo> list7 = new ArrayList<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpListFieldVo>();
-//                        OapiSmartworkHrmEmployeeV2UpdateRequest.EmpListFieldVo obj8 = new OapiSmartworkHrmEmployeeV2UpdateRequest.EmpListFieldVo();
-//                        list7.add(obj8);
-//                        List<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpFieldVo> list11 = new ArrayList<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpFieldVo>();
-//                        OapiSmartworkHrmEmployeeV2UpdateRequest.EmpFieldVo obj12 = new OapiSmartworkHrmEmployeeV2UpdateRequest.EmpFieldVo();
-//                        list11.add(obj12);
-//
-//                        //更新字段code:专业技术岗等级
-//                        obj12.setFieldCode("895bd835-9d7c-4835-aba6-1315af7c7694");
-//                        //更新字段值
-//                        obj12.setValue(jsonArray.getJSONObject(a).getString("ZYJSGDJ"));
-//
-//                        obj8.setSection(list11);
-//
-//                    /*
-//                    明细下标
-//                    当传入该值时,表示当前传入的section为编辑员工花名册现有的第old_index条明细,此时系统会只编辑该条明细中传入的字段。
-//                    当不传入该值时,表示当前传入的section为新增明细,此时系统会保存该条明细传入的字段,未传字段会清空。
-//                    */
-//                        obj8.setOldIndex(0L);
-//
-//                        obj4.setSections(list7);
-//
-//                        //智能人事花名册员工档案字段分组
-//                        obj4.setGroupId("custom7951e314faca4143b5b2a78746d3667c");
-//
-//                        obj1.setGroups(list3);
-//
-//                        //用户userid(此处定义的userid也是手机号)
-//                        obj1.setUserid(jsonArray.getJSONObject(a).getString("SJHM"));
-//
-//                        req1.setParam(obj1);
-//                        OapiSmartworkHrmEmployeeV2UpdateResponse rsp1 = client1.execute(req1, dingAccessTokenService.getMuZhiAccessToken());
-//                        System.out.println("专业技术岗等级:" + rsp1.getBody());
-//                    } catch (ApiException e) {
-//                        e.printStackTrace();
-//                    }
-//
-//                    //TODO 字段3:专业技术岗等级名称
-//                    try {
-//                        DingTalkClient client1 = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/v2/update");
-//                        OapiSmartworkHrmEmployeeV2UpdateRequest req1 = new OapiSmartworkHrmEmployeeV2UpdateRequest();
-//
-//                        //微应用在企业的Agentid(自建应用的Agentid)
-//                        req1.setAgentid(1200391050L);
-//
-//                        OapiSmartworkHrmEmployeeV2UpdateRequest.EmpUpdateByCustomParam obj1 = new OapiSmartworkHrmEmployeeV2UpdateRequest.EmpUpdateByCustomParam();
-//                        List<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpGroupFieldVo> list3 = new ArrayList<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpGroupFieldVo>();
-//                        OapiSmartworkHrmEmployeeV2UpdateRequest.EmpGroupFieldVo obj4 = new OapiSmartworkHrmEmployeeV2UpdateRequest.EmpGroupFieldVo();
-//                        list3.add(obj4);
-//                        List<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpListFieldVo> list7 = new ArrayList<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpListFieldVo>();
-//                        OapiSmartworkHrmEmployeeV2UpdateRequest.EmpListFieldVo obj8 = new OapiSmartworkHrmEmployeeV2UpdateRequest.EmpListFieldVo();
-//                        list7.add(obj8);
-//                        List<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpFieldVo> list11 = new ArrayList<OapiSmartworkHrmEmployeeV2UpdateRequest.EmpFieldVo>();
-//                        OapiSmartworkHrmEmployeeV2UpdateRequest.EmpFieldVo obj12 = new OapiSmartworkHrmEmployeeV2UpdateRequest.EmpFieldVo();
-//                        list11.add(obj12);
-//
-//                        //更新字段code:专业技术岗等级名称
-//                        obj12.setFieldCode("3964a5d2-cd37-459e-9b0d-d1c00ead099e");
-//                        //更新字段值
-//                        obj12.setValue(jsonArray.getJSONObject(a).getString("ZYJSGDJMC"));
-//
-//                        obj8.setSection(list11);
-//
-//                    /*
-//                    明细下标
-//                    当传入该值时,表示当前传入的section为编辑员工花名册现有的第old_index条明细,此时系统会只编辑该条明细中传入的字段。
-//                    当不传入该值时,表示当前传入的section为新增明细,此时系统会保存该条明细传入的字段,未传字段会清空。
-//                    */
-//                        obj8.setOldIndex(0L);
-//
-//                        obj4.setSections(list7);
-//
-//                        //智能人事花名册员工档案字段分组
-//                        obj4.setGroupId("custom7951e314faca4143b5b2a78746d3667c");
-//
-//                        obj1.setGroups(list3);
-//
-//                        //用户userid(此处定义的userid也是手机号)
-//                        obj1.setUserid(jsonArray.getJSONObject(a).getString("SJHM"));
-//
-//                        req1.setParam(obj1);
-//                        OapiSmartworkHrmEmployeeV2UpdateResponse rsp1 = client1.execute(req1, dingAccessTokenService.getMuZhiAccessToken());
-//                        System.out.println("专业技术岗等级名称:" + rsp1.getBody());
-//                    } catch (ApiException e) {
-//                        e.printStackTrace();
-//                    }
                 } catch (ApiException e) {
                     e.printStackTrace();
                 }
@@ -2162,6 +2016,8 @@ public class ZGDjiaozhigongServiceImpl implements ZGDjiaozhigongService{
     //浙工大教职工数据同步至本地数据库
     @Override
     public String addJiaozhigongToBD() throws Exception{
+        jiaozhigongMapper.delete(null);
+
         //调用浙工大教职工接口抓取教职工个人信息字段
         ApiClientConfig config = new ApiClientConfig();
         config.setAppKey("C5DF1E3771BD1C21E053C81010ACD243");
@@ -2200,7 +2056,8 @@ public class ZGDjiaozhigongServiceImpl implements ZGDjiaozhigongService{
             jiaozhigong.setSjhm(jsonArray.getJSONObject(a).getString("SJHM"));//手机号
             jiaozhigong.setGh(jsonArray.getJSONObject(a).getString("GH"));//工号
             jiaozhigong.setXb(jsonArray.getJSONObject(a).getString("XB"));//性别
-            jiaozhigong.setBmmc("教职工-" + jsonArray.getJSONObject(a).getString("BMMC"));//部门
+//            jiaozhigong.setBmmc("教职工-" + jsonArray.getJSONObject(a).getString("BMMC"));//部门
+            jiaozhigong.setBmmc(jsonArray.getJSONObject(a).getString("BMMC"));//部门
 
             jiaozhigong.setZc(jsonArray.getJSONObject(a).getString("ZC"));//职称
             jiaozhigong.setZcdj(jsonArray.getJSONObject(a).getString("ZCDJ"));//职称等级
@@ -2224,4 +2081,245 @@ public class ZGDjiaozhigongServiceImpl implements ZGDjiaozhigongService{
 
         return "浙工大教职工数据同步至本地数据库成功!";
     }
+
+
+
+    /*===================================================================================*/
+
+    //最新版本:教职工系统同步钉钉
+    @Override
+    public String addJiaozhigongEnd(){
+
+        /*👇👇👇该段代码将钉钉架构中的部门同步至本地数据库的部门表中👇👇👇*/
+        //先清除数据库中部门表的数据
+        bumenMapper.delete(null);
+
+        //向数据库部门表中插入目前钉钉架构中教职工部门下面的所有的部门id、部门名称
+        //TODO 可以优化将抓取的钉钉数据放置在临时的部门VO表中供查询判断
+        Bumen bumen = new Bumen();
+
+        String bumenList1 = null;
+        try {
+            DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/department/listsub");
+            OapiV2DepartmentListsubRequest req = new OapiV2DepartmentListsubRequest();
+
+            //TODO 牧之测试架构4教职工部门id,部署上线前要修改成浙工大教职工部门id!!!
+            req.setDeptId(522007355L);
+
+            OapiV2DepartmentListsubResponse rsp = client.execute(req, dingAccessTokenService.getMuZhiAccessToken());
+            bumenList1 = rsp.getBody();
+            System.out.println(bumenList1);
+        } catch (ApiException e) {
+            e.printStackTrace();
+        }
+        JSONObject jsonObject1 = JSON.parseObject(bumenList1);
+        JSONArray resultArray1 = jsonObject1.getJSONArray("result");
+        System.out.println("教职工部门下的第一层级部门id返回结果list:" + resultArray1);
+
+        for (int i = 0; i < resultArray1.size(); i++) {
+            String dept_id1 = resultArray1.getJSONObject(i).getString("dept_id");
+            long deptLong1 = Long.parseLong(dept_id1);
+            System.out.println("教职工部门下的第一层级部门id(long型):" + deptLong1);
+            String name1 = resultArray1.getJSONObject(i).getString("name");
+            System.out.println("教职工部门下的第一层级部门名称:" + name1);
+            //插入数据库部门表
+            bumen.setBmid(dept_id1);
+            bumen.setBmmc(name1);
+            bumenMapper.insert(bumen);
+
+            String bumenList2 = null;
+            try {
+                DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/department/listsub");
+                OapiV2DepartmentListsubRequest req = new OapiV2DepartmentListsubRequest();
+
+                //教职工部门下的第一层级部门id(long型)
+                req.setDeptId(deptLong1);
+
+                OapiV2DepartmentListsubResponse rsp = client.execute(req, dingAccessTokenService.getMuZhiAccessToken());
+                bumenList2 = rsp.getBody();
+                System.out.println(bumenList2);
+            } catch (ApiException e) {
+                e.printStackTrace();
+            }
+            JSONObject jsonObject2 = JSON.parseObject(bumenList2);
+            JSONArray resultArray2 = jsonObject2.getJSONArray("result");
+            System.out.println("教职工部门下的第二层级部门id返回结果list:" + resultArray2);
+
+            for (int j = 0; j < resultArray2.size(); j++) {
+                String dept_id2 = resultArray2.getJSONObject(j).getString("dept_id");
+                System.out.println("教职工部门下的第二层级部门id:" + dept_id2);
+                String name2 = resultArray2.getJSONObject(j).getString("name");
+                System.out.println("教职工部门下的第二层级部门名称:" + name2);
+
+                //插入数据库部门表
+                bumen.setBmid(dept_id2);
+                bumen.setBmmc(name2);
+                bumenMapper.insert(bumen);
+            }
+        }
+        /*👆👆👆该段代码将钉钉架构中的部门同步至本地数据库的部门表中👆👆👆*/
+
+        List<Jiaozhigong> jiaozhigongList = jiaozhigongMapper.selectList(null);
+
+        for (int i = 0; i < jiaozhigongList.size(); i++) {
+            String sjhm = jiaozhigongList.get(i).getSjhm();
+            String xm = jiaozhigongList.get(i).getXm();
+            String bmmc = jiaozhigongList.get(i).getBmmc();
+            String gh = jiaozhigongList.get(i).getGh();
+            String xb = jiaozhigongList.get(i).getXb();
+            String dzzwjbmc = jiaozhigongList.get(i).getDzzwjbmc();
+            System.out.println("逐条取出教职工数据库表中每个人员的信息:" + "【手机号】" + sjhm + "【姓名】" + xm +
+                    "【部门名称】" + bmmc + "【工号】" + gh + "【性别】" + xb + "【党政职位级别名称】" + dzzwjbmc);
+
+            /*👇👇👇该段代码用于通过人员手机号查询对应的userid,从而判断钉钉中是否存在该人员👇👇👇*/
+            //抓取浙工大教职工系统返回人员信息的手机号不为空
+            if (sjhm != null) {
+                String body = null;
+                try {
+                    DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/getbymobile");
+                    OapiV2UserGetbymobileRequest req = new OapiV2UserGetbymobileRequest();
+                    //通过人员手机号查询该人员userid
+                    req.setMobile(sjhm);
+                    OapiV2UserGetbymobileResponse rsp = client.execute(req, dingAccessTokenService.getMuZhiAccessToken());
+                    body = rsp.getBody();
+                    System.out.println(rsp.getBody());
+                } catch (ApiException e) {
+                    e.printStackTrace();
+                }
+
+                JSONObject jsonObject = JSON.parseObject(body);
+                System.out.println("接口返回信息:" + jsonObject);
+
+                JSONObject result = null;
+                String userid = null;
+                try {
+                    result = jsonObject.getJSONObject("result");
+                    userid = result.getString("userid");
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                System.out.println("返回userid结果:" + userid);
+
+                //根据浙工大教职工系统返回人员信息的手机号查询钉钉中是否存在该人员对应userid,
+                //如果为空(即钉钉中不存在该人员),则判断:
+                //1.①当前教职工抓取的人员的部门名称是否为空,如果为空则根据部门名称创建该部门,并返回创建的部门id;
+                //  ②如果部门名称在钉钉中不为空,则拿到部门名称对应的部门id,并返回;
+                //2.根据人员手机号、姓名、工号、性别、党政职位级别名称、部门id;
+                if (userid == null){
+                    //创建钉钉人员
+                    DingTalkClient clientCC = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/create");
+                    OapiV2UserCreateRequest reqCC = new OapiV2UserCreateRequest();
+                    //创建用户
+                    try {
+                        //用户userid
+                        reqCC.setUserid(sjhm);
+                        //姓名
+                        reqCC.setName(xm);
+                        //手机号码
+                        reqCC.setMobile(sjhm);
+                        //工号
+                        reqCC.setJobNumber(gh);
+                        //职位(党政职位级别名称)
+                        reqCC.setTitle(dzzwjbmc);
+//                        //邮箱
+//                        req.setEmail("11112222@qq.com");
+//                        //工作地址
+//                        req.setWorkPlace("上海市黄浦区");
+//                        //入职时间(毫秒级时间戳)
+//                        req.setHiredDate(111111L);
+//                        //备注信息
+//                        req.setRemark("备注信息");
+
+//                        //部门id,在下方传
+//                        reqCC.setDeptIdList(bmid111);
+
+
+                    //当前教职工抓取的人员的部门名称在钉钉部门中是否为空,如果为空则根据部门名称创建该部门,并返回创建的部门id;
+                    if (bmmc != null){
+                        /*判断数据库中是否存在该人员的部门*/
+                        String bumenid = null;
+                        try {
+                            QueryWrapper<Bumen> queryWrapper = new QueryWrapper<>();
+                            queryWrapper.select("bmid").eq("bmmc", bmmc);
+
+                            Bumen bumen1 = bumenMapper.selectOne(queryWrapper);
+                            bumenid = bumen1.getBmid();
+                            System.out.println("查询数据库中的存在部门的id:" + bumenid);
+                        }catch (Exception e){
+                            e.printStackTrace();
+                        }
+                        /*判断数据库中是否存在该人员的部门*/
+
+                        //钉钉中不存在该部门,则根据该部门名称创建一个新部门,并返回部门id
+                        if (bumenid == null){
+                            String dept_id = null;
+                            try {
+                                DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/department/create");
+                                OapiV2DepartmentCreateRequest req = new OapiV2DepartmentCreateRequest();
+
+                                //TODO 牧之测试架构4教职工部门id(各部门创在在该教职工主部门下面)
+                                req.setParentId(522007355L);
+                                //创建的部门名称
+                                req.setName(bmmc);
+
+                                OapiV2DepartmentCreateResponse rsp = client.execute(req, dingAccessTokenService.getMuZhiAccessToken());
+                                body = rsp.getBody();
+                                System.out.println(rsp.getBody());
+                                //通过fastjson工具转换成json对象,逐层解析
+                                //将String类型的花名册json数据转换为Object数据对象
+                                JSONObject jsonObject11 = JSON.parseObject(body);
+
+                                //直接将花名册对象通过Object转换成Array数组格式
+                                JSONObject result11 = null;
+//                                String bmidNew = null;
+//                                try{
+                                    result11 = jsonObject11.getJSONObject("result");
+                                    System.out.println("result:" + result11);
+
+                                    dept_id = result11.getString("dept_id");
+                                    System.out.println("创建部门返回的部门id:" + dept_id);
+//                                }catch (Exception e){
+//                                    e.printStackTrace();
+//                                }
+
+//                                bmidNew = dept_id;
+                                System.out.println("创建的新部门返回的部门id:" + dept_id);
+
+                                //每次创建完部门后向数据库的表中插入这个部门名称和部门id,每次创建部门之前先去数据库进行查找对应的部门id,如果不存在该部门名称则执行创建部门代码
+                                Bumen bumenNew = new Bumen();
+                                bumenNew.setBmid(dept_id);
+                                bumenNew.setBmmc(bmmc);
+                                bumenMapper.insert(bumenNew);
+
+                            } catch (ApiException e) {
+                                e.printStackTrace();
+                            }
+                            System.out.println("创建部门后返回的部门id:" + dept_id);
+
+                            //新创建的部门id
+                            reqCC.setDeptIdList(dept_id);
+
+                        }else {
+                            //钉钉本身存在的部门id
+                            reqCC.setDeptIdList(bumenid);
+                        }
+                    }
+                    //TODO 暂不考虑部门为空的情况创建人员
+//                    else {
+//                        //TODO 部门为空的话,把人员创建到一个指定的【未分组部门】
+//                        reqCC.setDeptIdList("543024650");
+//                    }
+                        OapiV2UserCreateResponse rspCC = clientCC.execute(reqCC, dingAccessTokenService.getMuZhiAccessToken());
+                        System.out.println("创建用户返回信息:" + rspCC.getBody());
+                    } catch (ApiException e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+            /*👆👆👆该段代码用于通过人员手机号查询对应的userid,从而判断钉钉中是否存在该人员👆👆👆*/
+        }
+
+
+        return "同步完成!!!";
+    }
 }

+ 1 - 1
src/test/java/com/muzhi/zgd/APITest/ApiHttpClientTest.java

@@ -71,7 +71,7 @@ public class ApiHttpClientTest {
         String baseURL = "http://172.16.16.134:83/zfdsb/api/info/dingding/getTeacherInfo";
 
         Map<String, Object> paramsMap = new HashMap<String, Object>();
-        paramsMap.put("gxsj","2021-08-30");
+        paramsMap.put("gxsj","2022-11-23");
 
         //连接超时 单位毫秒
         HttpConnectionUtils.connectTimeout=1000000;