Compare commits

...

2 Commits

Author SHA1 Message Date
黄海 035eff915e 'commit'
2 years ago
黄海 711cf7d826 变更
2 years ago

@ -11,21 +11,21 @@
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<repositories>
<repository>
<id>ali-maven</id>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository>
</repositories>
<repositories>
<repository>
<id>ali-maven</id>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository>
</repositories>
<dependencies>
<!--引用本地jar包-->
@ -54,12 +54,12 @@
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jfinal</artifactId>
<version>5.0.8</version>
<version>5.1.1</version>
</dependency>
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jfinal-undertow</artifactId>
<version>3.3</version>
<version>3.5</version>
</dependency>
<dependency>
@ -136,8 +136,6 @@
<version>2.0.20</version>
</dependency>
<!--引用poi-->
<dependency>
<groupId>org.apache.poi</groupId>
@ -250,19 +248,13 @@
<version>1.7.36</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.opengauss/opengauss-jdbc -->
<!-- <dependency>-->
<!-- <groupId>org.opengauss</groupId>-->
<!-- <artifactId>opengauss-jdbc</artifactId>-->
<!-- <version>5.0.0</version>-->
<!-- </dependency>-->
<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
<!-- https://mvnrepository.com/artifact/org.opengauss/opengauss-jdbc -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.6.0</version>
<groupId>org.opengauss</groupId>
<artifactId>opengauss-jdbc</artifactId>
<version>5.0.0</version>
</dependency>
<!--引入钉钉SDK-->
<dependency>
<groupId>com.aliyun</groupId>

@ -1,11 +1,13 @@
package UnitTest;
import com.alibaba.druid.filter.stat.StatFilter;
import com.dsideal.FengHuang.DingTalk.Model;
import com.dsideal.FengHuang.DingTalk.OrgPerson;
import com.dsideal.FengHuang.Util.CommonUtil;
import com.dsideal.FengHuang.DingTalk.Common;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.plugin.activerecord.dialect.MysqlDialect;
import com.jfinal.plugin.druid.DruidPlugin;
import com.jfinal.plugin.redis.RedisPlugin;
@ -41,6 +43,7 @@ public class TestDingTalk {
PropKit.use("dingtalk.properties");
String corpId = PropKit.get("corpId");
long agentId = PropKit.getLong("agentId");
final String appKey = PropKit.get("appKey");
String appSecret = PropKit.get("appSecret");
@ -61,18 +64,22 @@ public class TestDingTalk {
//同步钉钉与云平台中部门信息
String orgName = "长春市东光学校";
//删除所有的组织机构
//OrgPerson.delAllDept(accessToken, orgName);
Record rOrg = Model.getOrgByOrgName(orgName);
//同步组织机构
OrgPerson.syncOrg(accessToken, orgName);
OrgPerson.syncOrg(accessToken, rOrg);
//删除单位下所有人员(开发测试时使用)
//OrgPerson.delBureauPerson(accessToken,orgName);
//从数据库中获取最新的部门列表(已与钉钉匹配完毕)
Model.fillDeptListByDataBase(rOrg);
//删除所有的组织机构
// OrgPerson.delAllDept(accessToken);
//同步人员
//OrgPerson.syncPerson(accessToken,orgName);
// OrgPerson.syncPerson(accessToken, rOrg);
//删除单位下所有人员(开发测试时使用)
OrgPerson.delBureauPerson(accessToken, rOrg);
CommonUtil.Print("恭喜,所有操作成功完成!");
}

@ -1,5 +1,6 @@
package com.dsideal.FengHuang.DingTalk;
import com.jfinal.kit.Kv;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;
@ -13,6 +14,20 @@ public class Model {
return list;
}
public static void fillDeptListByDataBase(Record rOrg) {
OrgPerson.deptList.clear();
int bureau_id = rOrg.getInt("org_id");
String sql = "select org_id,org_name,dingtalk_dept_id from t_base_organization where bureau_id=? and b_use=1 order by org_id desc";
List<Record> list = Db.find(sql, bureau_id);
for (int i = 0; i < list.size(); i++) {
Kv kv = Kv.create();
kv.set("dept_id", list.get(i).getLong("dingtalk_dept_id"));
kv.set("name", list.get(i).getStr("org_name"));
OrgPerson.deptList.add(kv);
}
}
public static List<Record> getDeptPerson(int bureau_id) {
String sql = "select t1.person_id,t1.person_name,t2.dingtalk_dept_id,t1.tel from t_base_person as t1 " +

@ -15,6 +15,7 @@ import com.dingtalk.api.response.*;
import com.dsideal.FengHuang.Util.CommonUtil;
import com.jfinal.kit.Kv;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;
import com.taobao.api.ApiException;
@ -110,17 +111,10 @@ public class OrgPerson {
}
}
public static void delAllDept(String access_token, String orgName) throws ApiException {
Record rOrg = Model.getOrgByOrgName(orgName);
int bureauId = rOrg.getInt("org_id");
//获取数据库中记录的钉钉端的dept_id,但不一定准确存在,需要继续判断一下
long DT_BureauId = Model.getDtDeptId(bureauId);
delDept(access_token, DT_BureauId);
deptList.clear();
getDeptList(access_token, DT_BureauId);
public static void delAllDept(String access_token) throws ApiException {
for (int i = 0; i < deptList.size(); i++) {
delDept(access_token, deptList.get(i).getLong("dept_id"));
CommonUtil.Print("成功删除部门:"+deptList.get(i).getStr("name"));
}
}
@ -139,23 +133,23 @@ public class OrgPerson {
return jo;
}
public static void syncOrg(String accessToken, String orgName) throws ApiException {
Record rOrg = Model.getOrgByOrgName(orgName);
int bureauId = rOrg.getInt("org_id");
int sortId = rOrg.getInt("sort_id");
public static void syncOrg(String accessToken, Record rOrg) throws ApiException {
String orgName = rOrg.getStr("org_name");
int bureau_id = rOrg.getInt("org_id");
int sort_id = rOrg.getInt("sort_id");
//获取数据库中记录的钉钉端的dept_id,但不一定准确存在,需要继续判断一下
long DT_BureauId = Model.getDtDeptId(bureauId);
long dingtalk_dept_id = Model.getDtDeptId(bureau_id);
JSONObject jRes = getDeptInfo(accessToken, DT_BureauId);
JSONObject jRes = getDeptInfo(accessToken, dingtalk_dept_id);
if (jRes.getLong("errcode") > 0) {
DT_BureauId = createDept(accessToken, orgName, 1, sortId, true);
Model.writeDtDeptId(bureauId, String.valueOf(DT_BureauId));//记得要回写
dingtalk_dept_id = createDept(accessToken, orgName, 1, sort_id, true);
Model.writeDtDeptId(bureau_id, String.valueOf(dingtalk_dept_id));//记得要回写
CommonUtil.Print("单位名称:" + orgName + "不存在!已创建!");
} else {
CommonUtil.Print("单位名称:" + orgName + "已存在,保留!");
//获取下属部门的列表
getDeptList(accessToken, dingtalk_dept_id);
}
//获取下属部门的列表
getDeptList(accessToken, DT_BureauId);
// 云平台->集合A,钉钉->集合B
// (1) x在A中存在在B中也存在内容也一致不处理
@ -177,12 +171,12 @@ public class OrgPerson {
mapOfA.put(deptId, jo);
}
//B:云平台
List<Record> list = Model.getOrgList(bureauId);
List<Record> list = Model.getOrgList(bureau_id);
for (int i = 0; i < list.size(); i++) {
if (list.get(i).get("dingtalk_dept_id") != null) {
long deptId = list.get(i).getLong("dingtalk_dept_id");
String org_name = list.get(i).getStr("org_name");
sortId = list.get(i).getInt("sort_id");
sort_id = list.get(i).getInt("sort_id");
int org_id = list.get(i).getInt("org_id");
int parentId = list.get(i).getInt("parent_id");
keysOfB.add(deptId);
@ -190,7 +184,7 @@ public class OrgPerson {
JSONObject jo = new JSONObject();
jo.put("org_id", org_id);
jo.put("org_name", org_name);
jo.put("sort_id", sortId);
jo.put("sort_id", sort_id);
jo.put("parent_id", parentId);
mapOfB.put(deptId, jo);
}
@ -233,6 +227,8 @@ public class OrgPerson {
CommonUtil.Print("成功创建部门:" + org_name);
}
}
//重新获取下属部门的列表,使得后续的代码不再获取部门列表
getDeptList(accessToken, dingtalk_dept_id);
}
/**
@ -316,20 +312,15 @@ public class OrgPerson {
}
public static void getBureauPerson(String access_token, long dept_id) throws ApiException {
//获取有哪些部门
deptList.clear();
personList.clear();
getDeptPerson(access_token, dept_id);
getDeptList(access_token, dept_id);
for (int i = 0; i < deptList.size(); i++) {
getDeptPerson(access_token, deptList.get(i).getInt("dept_id"));
}
}
public static void delBureauPerson(String accessToken, String orgName) throws ApiException {
Record record = Model.getOrgByOrgName(orgName);
int dingtalk_dept_id = record.getInt("dingtalk_dept_id");
public static void delBureauPerson(String accessToken, Record rOrg) throws ApiException {
int dingtalk_dept_id = rOrg.getInt("dingtalk_dept_id");
getBureauPerson(accessToken, dingtalk_dept_id);
for (int i = 0; i < personList.size(); i++) {
String userid = personList.get(i).getStr("userid");
@ -343,13 +334,11 @@ public class OrgPerson {
*
*
* @param accessToken
* @param orgName
* @param rOrg
* @throws ApiException
*/
public static void syncPerson(String accessToken, String orgName) throws ApiException {
Record rOrg = Model.getOrgByOrgName(orgName);
public static void syncPerson(String accessToken, Record rOrg) throws ApiException {
int bureauId = rOrg.getInt("org_id");
//获取数据库中记录的钉钉端的dept_id,但不一定准确存在,需要继续判断一下
long DT_BureauId = Model.getDtDeptId(bureauId);
getBureauPerson(accessToken, DT_BureauId);

Loading…
Cancel
Save