Files
guolv/src/main/java/com/example/sso/util/BeiSenTest.java
2025-08-25 14:17:26 +08:00

378 lines
19 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.example.sso.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
@Slf4j
public class BeiSenTest {
private static String app_key = "F493FDF0DA9B4DF3A826530B568E6BAF";
private static String app_secret = "B9BAA96975C74DB8AF07EB5D5243F56DE2FAE0ED37D64797AB2487EA3F8011CD";
private static int i=0;
public static void main(String[] args) {
// 同步职工数据
// try {
//// deleteUser(608421892);
// } catch (NoSuchAlgorithmException e) {
// e.printStackTrace();
// } catch (KeyManagementException e) {
// e.printStackTrace();
// }
// //修改职工基础信息数据
try {
JSONArray beiSens = JDYUtil.getAllDriversBeiSen();//查询
JSONArray drivers = JDYUtil.getAllDrivers();//查询
JSONObject orgNos=JDYUtil.getOrgNos();
JSONObject jsonObject = new JSONObject();
for (Object o : drivers) {
HashMap<String, Object> driver = (HashMap<String, Object>) o;
jsonObject.put((String) driver.get("shjh") + "@yinjian.com", driver);
}
String token=getToken();
int i=0;
for (Object o : beiSens) {
i=i+1;
JSONObject driver = (JSONObject) o;
String xm=driver.getString("xm");
if (xm.equals("宋乃庆")){
if (jsonObject.getJSONObject(driver.getString("zhanghao"))!=null){
BeiSenTest.updateUser(jsonObject.getJSONObject(driver.getString("zhanghao")),driver.getInteger("oid"),orgNos,token);
System.out.println(jsonObject.getJSONObject(driver.getString("zhanghao")));
//更新简道云数据
JDYUtil.updateBeiSenId(jsonObject.getJSONObject(driver.getString("zhanghao")).
getString("_id"),driver.getString("oid"));
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
// JSONArray drivers=JDYUtil.getAllDrivers();//查询
// JSONObject orgNos=JDYUtil.getOrgNos();
// JSONArray deps=new JSONArray();
// for (Object o:drivers){
// HashMap<String,Object> driver=(HashMap<String,Object>)o;
//// try {
////// BeiSenTest.updateUser(driver,(String) driver.get("shfzhh"),orgNos);
//// } catch (NoSuchAlgorithmException e) {
//// e.printStackTrace();
//// } catch (KeyManagementException e) {
//// e.printStackTrace();
//// }
// }
// Set set=new HashSet();//创建set集合
// for (int i=0;i<deps.size();i++){
// set.add(deps.get(i));//数组中的数据循环加入集合中
// }
// deps=JSONArray.parseArray(set.toString());//转化为数组
// System.out.println(deps.toJSONString());
}
/**
* 创建人员信息
* @return
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
*/
public static void createUser(JSONObject driver, JSONObject orgNos,JSONArray deps) throws NoSuchAlgorithmException, KeyManagementException {
String url = "https://openapi.italent.cn/TenantBaseExternal/api/v5/Employee/Create";
JSONObject body = new JSONObject();
body.put("employeeInformation", "client_credentials");
JSONObject employeeInformation = new JSONObject();
employeeInformation.put("name", driver.get("xm"));//姓名:张三
employeeInformation.put("email",driver.get("yxbs"));//邮箱
employeeInformation.put("iDNumber", driver.get("shfzhh"));//身份证号码
// employeeInformation.put("email", driver.get("shjh") + "@yinjian.com");//邮箱
employeeInformation.put("mobilePhone", driver.get("shjh"));//身份证号码
JSONObject employmentRecord = new JSONObject();
employmentRecord.put("entryDate", driver.get("lrrq"));//入职日期\
employeeInformation.put("emergencyContactPhone", driver.get("shjh"));//身份证号码
employmentRecord.put("probation", 0);//试用期无试用期为0
String name = (String) driver.get("name");//
String uu=(String) driver.get("ssbm") + (String) driver.get("fs");
for (String str : orgNos.keySet()) {
if (str.equals(driver.get("ssbm"))) {
employmentRecord.put("OIdDepartment", orgNos.getInteger(str));//试用期无试用期为0
break;
}
}
Integer O=employmentRecord.getInteger("OIdDepartment");
if (O==null){
deps.add(uu);
System.out.println("");
}
employmentRecord.put("originalId", driver.get("shfzhh"));//外部编码ID
String ssbm = (String) driver.get("ssbm");//所属部门
String ssbm1 = "景城利华";
if(ssbm.equals(ssbm1)){
employmentRecord.put("employmentType", "5cc3e855-f9b8-4cec-8860-b89d945ba615");//人员类别
}else {
employmentRecord.put("employmentType", "020c47b0-74b7-4a75-b454-e9905f64e1fc");//人员类别
}
//employmentRecord.put("employmentType", "020c47b0-74b7-4a75-b454-e9905f64e1fc");//人员类别
employmentRecord.put("oIdJobPost", "149359");//职务
body.put("employeeInformation", employeeInformation);
body.put("employmentRecord", employmentRecord);
JSONObject jsonObject = JSON.parseObject(HttpUtil.sendPost(url, body.toJSONString(), getToken()));
System.out.println(jsonObject.toJSONString());
// JSONObject jsonObject = JSON.parseObject(HttpUtil.sendPost(url, body.toJSONString(), getToken()));
// System.out.println(jsonObject.toJSONString());
// return jsonObject.getString("access_token");
}
public static String getToken() throws NoSuchAlgorithmException, KeyManagementException {
String url = "https://openapi.italent.cn/token";
JSONObject body = new JSONObject();
body.put("grant_type", "client_credentials");
body.put("app_key", app_key);
body.put("app_secret", app_secret);
JSONObject jsonObject = JSON.parseObject(HttpUtil.sendPost(url, body.toJSONString()));
return jsonObject.getString("access_token");
}
/**
* 创建人员信息
*
* @return
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
*/
public static void createUser(JSONObject driver, JSONObject orgNos,String id) throws NoSuchAlgorithmException, KeyManagementException {
String token=getToken();
if (true){
String url = "https://openapi.italent.cn/TenantBaseExternal/api/v5/Employee/Create";
JSONObject body = new JSONObject();
body.put("employeeInformation", "client_credentials");
JSONObject employeeInformation = new JSONObject();
employeeInformation.put("name", driver.get("xm"));//姓名:张三
employeeInformation.put("email",driver.get("yxbs"));//邮箱
// employeeInformation.put("originalId",driver.get("shfzhh"));//外部ID
employeeInformation.put("iDNumber", driver.get("shfzhh"));//身份证号码
employeeInformation.put("mobilePhone", driver.get("shjh"));//电话号码
employeeInformation.put("emergencyContactPhone", driver.get("shjh"));//电话
JSONObject employmentRecord = new JSONObject();
String dang = TimeUtil.dang();
employmentRecord.put("entryDate",dang /*TimeUtil.timeConversion1(driver.getString("lrrq"))*/ );//入职日期
employmentRecord.put("probation", 0);//试用期无试用期为0
String name = (String) driver.get("name");//
for (String str : orgNos.keySet()) {
if (str.equals(driver.getString("fs"))){
employmentRecord.put("OIdDepartment", orgNos.getInteger(str));//试用期无试用期为0
break;
}
}
//区分是否TYTY的人员类别为"5cc3e855-f9b8-4cec-8860-b89d945ba615",其余为"020c47b0-74b7-4a75-b454-e9905f64e1fc"
/* String ssbm = (String) driver.get("ssbm");//所属部门
String ssbm1 = "景城利华";
if(ssbm.equals(ssbm1)){
employmentRecord.put("employmentType", "5cc3e855-f9b8-4cec-8860-b89d945ba615");//人员类别
}else {
employmentRecord.put("employmentType", "020c47b0-74b7-4a75-b454-e9905f64e1fc");//人员类别
}*/
employmentRecord.put("employmentType", "70b80df9-c88c-4e2c-ab3d-a3a0a59d7d4c");
//employmentRecord.put("employmentType", "020c47b0-74b7-4a75-b454-e9905f64e1fc");//人员类别
employmentRecord.put("oIdJobPost", "149359");//职务
body.put("employeeInformation", employeeInformation);
body.put("employmentRecord", employmentRecord);
JSONObject jsonObject = JSON.parseObject(HttpUtil.sendPost(url, body.toJSONString(),token));
JSONObject returnData=jsonObject.getJSONObject("data");
System.out.println(driver.get("shfzhh")+"的创建账户动作返回为:"+jsonObject.toJSONString());
if (jsonObject.getString("code").equals("200")){
JDYUtil.updateBeiSenId(id,returnData.getString("userId"));
}else {
updateUser(driver,driver.getInteger("beisen_id"),orgNos,token);
}
}else {
//如果不是新增则修改数据
updateUser(driver,driver.getInteger("beisen_id"),orgNos,token);
}
// return jsonObject.getString("access_token");
}
public static void createUserss(String xm, String yxbs, String shfzhh, String shjh, String fs, String beisen_id, JSONObject orgNos,String id) throws NoSuchAlgorithmException, KeyManagementException {
String token = getToken();
Integer beisenid = 0;
if (true) {
String url = "https://openapi.italent.cn/TenantBaseExternal/api/v5/Employee/Create";
JSONObject body = new JSONObject();
body.put("employeeInformation", "client_credentials");
JSONObject employeeInformation = new JSONObject();
employeeInformation.put("name", xm);//姓名:张三
employeeInformation.put("email", yxbs);//邮箱
// employeeInformation.put("originalId",driver.get("shfzhh"));//外部ID
employeeInformation.put("iDNumber", shfzhh);//身份证号码
employeeInformation.put("mobilePhone", shjh);//电话号码
employeeInformation.put("emergencyContactPhone", shjh);//电话
JSONObject employmentRecord = new JSONObject();
String dang = TimeUtil.dang();
employmentRecord.put("entryDate", dang /*TimeUtil.timeConversion1(driver.getString("lrrq"))*/);//入职日期
employmentRecord.put("probation", 0);//试用期无试用期为0
for (String str : orgNos.keySet()) {
if (str.equals(fs)) {
employmentRecord.put("OIdDepartment", orgNos.getInteger(str));//试用期无试用期为0
break;
}
}
//区分是否TYTY的人员类别为"5cc3e855-f9b8-4cec-8860-b89d945ba615",其余为"020c47b0-74b7-4a75-b454-e9905f64e1fc"
/* String ssbm = (String) driver.get("ssbm");//所属部门
String ssbm1 = "景城利华";
if(ssbm.equals(ssbm1)){
employmentRecord.put("employmentType", "5cc3e855-f9b8-4cec-8860-b89d945ba615");//人员类别
}else {
employmentRecord.put("employmentType", "020c47b0-74b7-4a75-b454-e9905f64e1fc");//人员类别
}*/
employmentRecord.put("employmentType", "70b80df9-c88c-4e2c-ab3d-a3a0a59d7d4c");
//employmentRecord.put("employmentType", "020c47b0-74b7-4a75-b454-e9905f64e1fc");//人员类别
employmentRecord.put("oIdJobPost", "149359");//职务
body.put("employeeInformation", employeeInformation);
body.put("employmentRecord", employmentRecord);
JSONObject jsonObject = JSON.parseObject(HttpUtil.sendPost(url, body.toJSONString(), token));
JSONObject returnData = jsonObject.getJSONObject("data");
System.out.println(shfzhh + "的创建账户动作返回为:" + jsonObject.toJSONString());
if (jsonObject.getString("code").equals("200")) {
String userId = JDYUtil.updateBeiSenId(id, returnData.getString("userId"));
log.info(userId);
} else {
beisenid = Integer.parseInt(beisen_id);
updateUserss(xm, yxbs, shfzhh, shjh, fs, beisenid, orgNos, token);
}
} else {
//如果不是新增则修改数据
updateUserss(xm, yxbs, shfzhh, shjh, fs, beisenid, orgNos, token);
}
// return jsonObject.getString("access_token");
}
/**
* 修改人员信息
*
* @return
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
*/
public static void updateUser(JSONObject driver, Integer id,JSONObject orgNos,String token) throws NoSuchAlgorithmException, KeyManagementException {
String url = "https://openapi.italent.cn/TenantBaseExternal/api/v5/Employee/UpdateEmployee";
JSONObject body = new JSONObject();
body.put("employeeInformation", "client_credentials");
JSONObject employeeInformation = new JSONObject();
employeeInformation.put("name", driver.get("xm"));//姓名:张三
employeeInformation.put("email",driver.get("yxbs"));//邮箱
// employeeInformation.put("originalId",driver.get("shfzhh"));//外部ID
employeeInformation.put("iDNumber", driver.get("shfzhh"));//身份证号码
employeeInformation.put("mobilePhone", driver.get("shjh"));//电话号码
employeeInformation.put("emergencyContactPhone", driver.get("shjh"));//电话
JSONObject employmentRecord = new JSONObject();
/* String ssbm = (String) driver.get("ssbm");//所属部门
String ssbm1 = "景城利华";
if(ssbm.equals(ssbm1)){
employmentRecord.put("employmentType", "5cc3e855-f9b8-4cec-8860-b89d945ba615");//人员类别
}else {
employmentRecord.put("employmentType", "020c47b0-74b7-4a75-b454-e9905f64e1fc");//人员类别
}*/
employmentRecord.put("employmentType", "70b80df9-c88c-4e2c-ab3d-a3a0a59d7d4c");
//employmentRecord.put("employmentType", "020c47b0-74b7-4a75-b454-e9905f64e1fc");//人员类别
for (String str : orgNos.keySet()) {
if (str.equals(driver.get("fs"))) {
employmentRecord.put("OIdDepartment", orgNos.getInteger(str));//试用期无试用期为0
break;
}
}
employmentRecord.put("oIdJobPost", "149359");//职务
body.put("employeeInformation", employeeInformation);
body.put("employmentRecord", employmentRecord);
body.put("userId", id);
JSONObject jsonObject = JSON.parseObject(HttpUtil.sendPost(url, body.toJSONString(),token));
System.out.println(jsonObject.toJSONString());
// return jsonObject.getString("access_token");
}
public static void updateUserss(String xm, String yxbs, String shfzhh, String shjh, String fs, Integer id,JSONObject orgNos,String token) throws NoSuchAlgorithmException, KeyManagementException {
String url = "https://openapi.italent.cn/TenantBaseExternal/api/v5/Employee/UpdateEmployee";
JSONObject body = new JSONObject();
body.put("employeeInformation", "client_credentials");
JSONObject employeeInformation = new JSONObject();
employeeInformation.put("name", xm);//姓名:张三
employeeInformation.put("email",yxbs);//邮箱
// employeeInformation.put("originalId",driver.get("shfzhh"));//外部ID
employeeInformation.put("iDNumber", shfzhh);//身份证号码
employeeInformation.put("mobilePhone", shjh);//电话号码
employeeInformation.put("emergencyContactPhone", fs);//电话
JSONObject employmentRecord = new JSONObject();
/* String ssbm = (String) driver.get("ssbm");//所属部门
String ssbm1 = "景城利华";
if(ssbm.equals(ssbm1)){
employmentRecord.put("employmentType", "5cc3e855-f9b8-4cec-8860-b89d945ba615");//人员类别
}else {
employmentRecord.put("employmentType", "020c47b0-74b7-4a75-b454-e9905f64e1fc");//人员类别
}*/
employmentRecord.put("employmentType", "70b80df9-c88c-4e2c-ab3d-a3a0a59d7d4c");
//employmentRecord.put("employmentType", "020c47b0-74b7-4a75-b454-e9905f64e1fc");//人员类别
for (String str : orgNos.keySet()) {
if (str.equals(fs)) {
employmentRecord.put("OIdDepartment", orgNos.getInteger(str));//试用期无试用期为0
break;
}
}
employmentRecord.put("oIdJobPost", "149359");//职务
body.put("employeeInformation", employeeInformation);
body.put("employmentRecord", employmentRecord);
body.put("userId", id);
JSONObject jsonObject = JSON.parseObject(HttpUtil.sendPost(url, body.toJSONString(),token));
System.out.println(jsonObject.toJSONString());
// return jsonObject.getString("access_token");
}
/**
* 离职人员信息
*
* @return
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
*/
public static void deleteUser(Integer id) throws NoSuchAlgorithmException, KeyManagementException {
String url = "https://openapi.italent.cn/TenantBaseExternal/api/v5/Employee/Dimission";
JSONObject body = new JSONObject();
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
JSONObject employmentRecord = new JSONObject();
try {
employmentRecord.put("lastWorkDate",df.format(new Date()));//最后工作日期
} catch (Exception e) {
e.printStackTrace();
}
body.put("employmentRecord", employmentRecord);
body.put("userId", id);
JSONObject jsonObject = JSON.parseObject(HttpUtil.sendPost(url, body.toJSONString(), getToken()));
System.out.println(jsonObject.toJSONString());
// return jsonObject.getString("access_token");
}
}