main
黄海 2 years ago
parent 60699a7abf
commit 08bb66d6c2

@ -48,8 +48,8 @@ public class Increment {
//2、人员
Progress.syncPerson(accessToken, rOrg);
// //3、人员角色关系
// dt = Progress.getLastSyncTime("t_sys_person_role");
//3、人员角色关系
Progress.syncRolePerson(accessToken, rOrg);
CommonUtil.Print("恭喜,所有操作成功完成!");
}

@ -0,0 +1,37 @@
/*
Navicat Premium Data Transfer
Source Server : 10.10.14.199
Source Server Type : MySQL
Source Server Version : 100123 (10.1.23-MariaDB)
Source Host : 10.10.14.199:22066
Source Schema : dsideal_db
Target Server Type : MySQL
Target Server Version : 100123 (10.1.23-MariaDB)
File Encoding : 65001
Date: 15/06/2023 11:38:49
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for t_dingtalk_progress
-- ----------------------------
DROP TABLE IF EXISTS `t_dingtalk_progress`;
CREATE TABLE `t_dingtalk_progress` (
`table_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '表名',
`sync_last_update_time` timestamp NULL DEFAULT NULL COMMENT '最后同步时间戳',
PRIMARY KEY (`table_name`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
-- ----------------------------
-- Records of t_dingtalk_progress
-- ----------------------------
INSERT INTO `t_dingtalk_progress` VALUES ('t_base_organization', '2023-06-15 11:38:16');
INSERT INTO `t_dingtalk_progress` VALUES ('t_base_person', '2023-06-15 11:38:24');
INSERT INTO `t_dingtalk_progress` VALUES ('t_sys_person_role', '2023-06-15 11:38:34');
SET FOREIGN_KEY_CHECKS = 1;

@ -97,6 +97,11 @@ public class Model {
return Db.find(sql, org_id, dt);
}
public static List<Record> getIncrementRolePerson(int org_id, Date dt) {
String sql = "select t1.person_id,t1.role_id,t1.b_use,t2.dingtalk_role_id from t_sys_person_role as t1 inner join t_dingtalk_role as t2 on t1.role_id=t2.role_id where t1.bureau_id=? and t1.last_update_time>?";
return Db.find(sql, org_id, dt);
}
public static long getDingTalkOrgId(int org_id) {
String sql = "select dingtalk_dept_id from t_base_organization where org_id=?";
return Db.findFirst(sql, org_id).getLong("dingtalk_dept_id");

@ -107,7 +107,6 @@ public class OrgPerson {
}
}
public static JSONObject getDeptInfo(String access_token, long deptId) {
JSONObject jo;
try {

@ -10,7 +10,6 @@ import java.util.List;
public class Progress {
public static void finishInit() {
List<Record> list = Db.findAll("t_dingtalk_progress");
for (Record record : list) {
@ -56,20 +55,20 @@ public class Progress {
for (Record record : list) {
String person_name = record.getStr("person_name");
int b_use = record.getInt("b_use");
int org_id= record.getInt("org_id");
int person_id=record.getInt("person_id");
String tel=record.getStr("tel");
int org_id = record.getInt("org_id");
int person_id = record.getInt("person_id");
String tel = record.getStr("tel");
if (record.get("dingtalk_person_id") == null) {
//新增
long dingtalk_dept_id = Model.getDingTalkOrgId(org_id);
tel = DingTalkCommon.getLawfulTel(tel);
OrgPerson.createPerson(accessToken,dingtalk_dept_id,person_id,person_name,tel,"教师");
OrgPerson.createPerson(accessToken, dingtalk_dept_id, person_id, person_name, tel, "教师");
CommonUtil.Print("新增人员:" + person_name);
} else {
int dingtalk_dept_id = record.getInt("dingtalk_dept_id");
if (b_use == 1) {
//修改
OrgPerson.updatePerson(accessToken,person_id,person_name);
OrgPerson.updatePerson(accessToken, person_id, person_name);
CommonUtil.Print("修改人员:" + person_name);
} else {
//删除
@ -79,4 +78,23 @@ public class Progress {
}
}
}
public static void syncRolePerson(String accessToken, Record rOrg) throws ApiException {
Date dt = Model.getLastSyncTime("t_sys_person_role");
//找出变更信息
List<Record> list = Model.getIncrementRolePerson(rOrg.getInt("org_id"), dt);
for (Record record : list) {
long dingtalk_role_id = record.getLong("dingtalk_role_id");
int b_use = record.getInt("b_use");
int person_id = record.getInt("person_id");
if (b_use == 1) {
//新增
RolePerson.addRolePerson(accessToken, String.valueOf(dingtalk_role_id), String.valueOf(person_id));
} else {
//删除
RolePerson.delRolePerson(accessToken, String.valueOf(dingtalk_role_id), String.valueOf(person_id));
}
}
}
}

@ -65,7 +65,6 @@ public class RolePerson {
}
}
public static void addRolePerson(String accessToken, String role_id, String ids) throws ApiException {
//一次最多20个人员
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/role/addrolesforemps");

Loading…
Cancel
Save