package com.stylefeng.guns.modular.system.util.qianyuntong;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import com.google.gson.Gson;
|
import com.open.common.util.OpenApiClient;
|
import com.open.common.util.SystemParameterNames;
|
import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
|
import lombok.extern.slf4j.Slf4j;
|
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.Map;
|
import java.util.UUID;
|
|
/**
|
* 企业员工工具类
|
* @author zhibing.pu
|
* @Date 2025/6/6 16:17
|
*/
|
@Slf4j
|
public class EmployeeUtil {
|
|
|
/**
|
* 企业增加员工
|
* @param request
|
* @return
|
*/
|
public static SaveStaffNode saveStaffNode(SaveStaffNodeRequest request){
|
//请求路径
|
String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/saveStaffNode";
|
//私钥文件
|
String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
|
//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
|
String appKey = QianYunTongProperties.appkey;//appkey
|
Map<String, String> headers = new HashMap<>();
|
headers.put("Content-Type", "application/json");
|
Map<String, Object> contentMap = new HashMap<String, Object>();
|
Date nowdate = new Date();
|
SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
String timeStamp = date.format(nowdate);
|
String messageId = UUID.randomUUID().toString().replaceAll("-", "");
|
contentMap.put(SystemParameterNames.getAppKey(), appKey);
|
contentMap.put(SystemParameterNames.getMessage_id(), messageId);
|
contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
|
contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
|
contentMap.put("content", new Gson().toJson(request));
|
log.info("【企业增加员工】请求地址:" + url);
|
log.info("【企业增加员工】请求参数:" + JSON.toJSONString(contentMap));
|
String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
|
log.info("【企业增加员工】请求结果:" + result);
|
JSONObject jsonObject = JSON.parseObject(result);
|
String retCode = jsonObject.getString("retCode");
|
if (!"0".equals(retCode)) {
|
log.error("【企业增加员工】请求失败:" + result);
|
throw new RuntimeException("【企业增加员工】请求失败:" + result);
|
}
|
JSONObject object = jsonObject.getJSONObject("object");
|
String status = object.getString("status");
|
if (!"0".equals(status)) {
|
log.error("【企业增加员工】失败:" + object.toJSONString());
|
throw new RuntimeException("【企业增加员工】失败:" + object.toJSONString());
|
}
|
SaveStaffNode saveStaffNode = jsonObject.getObject("object", SaveStaffNode.class);
|
return saveStaffNode;
|
}
|
|
|
/**
|
* 企业修改员工信息
|
* @param request
|
* @return
|
*/
|
public static Boolean editStaffNode(EditStaffNodeRequest request){
|
//请求路径
|
String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/editStaffNode";
|
//私钥文件
|
String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
|
//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
|
String appKey = QianYunTongProperties.appkey;//appkey
|
Map<String, String> headers = new HashMap<>();
|
headers.put("Content-Type", "application/json");
|
Map<String, Object> contentMap = new HashMap<String, Object>();
|
Date nowdate = new Date();
|
SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
String timeStamp = date.format(nowdate);
|
String messageId = UUID.randomUUID().toString().replaceAll("-", "");
|
contentMap.put(SystemParameterNames.getAppKey(), appKey);
|
contentMap.put(SystemParameterNames.getMessage_id(), messageId);
|
contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
|
contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
|
contentMap.put("content", new Gson().toJson(request));
|
log.info("【企业修改员工信息】请求地址:" + url);
|
log.info("【企业修改员工信息】请求参数:" + JSON.toJSONString(contentMap));
|
String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
|
log.info("【企业修改员工信息】请求结果:" + result);
|
JSONObject jsonObject = JSON.parseObject(result);
|
String retCode = jsonObject.getString("retCode");
|
if (!"0".equals(retCode)) {
|
log.error("【企业修改员工信息】请求失败:" + result);
|
throw new RuntimeException("【企业修改员工信息】请求失败:" + result);
|
}
|
JSONObject object = jsonObject.getJSONObject("object");
|
String status = object.getString("status");
|
if (!"0".equals(status)) {
|
log.error("【企业修改员工信息】失败:" + object.toJSONString());
|
throw new RuntimeException("【企业修改员工信息】失败:" + object.toJSONString());
|
}
|
return true;
|
}
|
|
|
/**
|
* 企业删除人员
|
* @param request
|
* @return
|
*/
|
public static Boolean ecrmDeleteStafNode(DeleteStafNodeRequest request){
|
//请求路径
|
String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/ecrmDeleteStafNode";
|
//私钥文件
|
String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
|
//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
|
String appKey = QianYunTongProperties.appkey;//appkey
|
String content = "";//业务参数
|
Map<String, String> headers = new HashMap<>();
|
headers.put("Content-Type", "application/json");
|
Map<String, Object> contentMap = new HashMap<String, Object>();
|
Date nowdate = new Date();
|
SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
String timeStamp = date.format(nowdate);
|
String messageId = UUID.randomUUID().toString().replaceAll("-", "");
|
contentMap.put(SystemParameterNames.getAppKey(), appKey);
|
contentMap.put(SystemParameterNames.getMessage_id(), messageId);
|
contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
|
contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
|
contentMap.put("content", new Gson().toJson(request));
|
log.info("【企业删除人员】请求地址:" + url);
|
log.info("【企业删除人员】请求参数:" + JSON.toJSONString(contentMap));
|
String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
|
log.info("【企业删除人员】请求结果:" + result);
|
JSONObject jsonObject = JSON.parseObject(result);
|
String retCode = jsonObject.getString("retCode");
|
if (!"0".equals(retCode)) {
|
log.error("【企业删除人员】请求失败:" + result);
|
throw new RuntimeException("【企业删除人员】请求失败:" + result);
|
}
|
JSONObject object = jsonObject.getJSONObject("object");
|
String status = object.getString("status");
|
if (!"0".equals(status)) {
|
log.error("【企业删除人员】失败:" + object.toJSONString());
|
throw new RuntimeException("【企业删除人员】失败:" + object.toJSONString());
|
}
|
return true;
|
}
|
|
|
/**
|
* 根据员工ID获取人员信息
|
* @param request
|
* @return
|
*/
|
public static StaffNodeInfo getStaffNode(GetStaffNodeRequest request){
|
//请求路径
|
String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/getStaffNode";
|
//私钥文件
|
String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
|
//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
|
String appKey = QianYunTongProperties.appkey;//appkey
|
Map<String, String> headers = new HashMap<>();
|
headers.put("Content-Type", "application/json");
|
Map<String, Object> contentMap = new HashMap<String, Object>();
|
Date nowdate = new Date();
|
SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
String timeStamp = date.format(nowdate);
|
String messageId = UUID.randomUUID().toString().replaceAll("-", "");
|
contentMap.put(SystemParameterNames.getAppKey(), appKey);
|
contentMap.put(SystemParameterNames.getMessage_id(), messageId);
|
contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
|
contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
|
contentMap.put("content", new Gson().toJson(request));
|
log.info("【根据员工ID获取人员信息】请求地址:" + url);
|
log.info("【根据员工ID获取人员信息】请求参数:" + JSON.toJSONString(contentMap));
|
String result = OpenApiClient.sendCommonHttpRequst(url, headers, "GET", skprivateKeyFile, timeStamp, contentMap);
|
log.info("【根据员工ID获取人员信息】请求结果:" + result);
|
JSONObject jsonObject = JSON.parseObject(result);
|
String retCode = jsonObject.getString("retCode");
|
if (!"0".equals(retCode)) {
|
log.error("【根据员工ID获取人员信息】请求失败:" + result);
|
throw new RuntimeException("【根据员工ID获取人员信息】请求失败:" + result);
|
}
|
JSONObject object = jsonObject.getJSONObject("object");
|
String status = object.getString("status");
|
if (!"0".equals(status)) {
|
log.error("【根据员工ID获取人员信息】失败:" + object.toJSONString());
|
throw new RuntimeException("【根据员工ID获取人员信息】失败:" + object.toJSONString());
|
}
|
StaffNodeInfo staffNodeInfo = object.getObject("data", StaffNodeInfo.class);
|
return staffNodeInfo;
|
}
|
}
|