#3178759 人员入职、人员异动 接口开发
parent
e52a8bc5fd
commit
17378da9d4
Binary file not shown.
@ -0,0 +1,101 @@
|
||||
package weaver.interfaces.thwl.action.sdk;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/14
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class AddRequest {
|
||||
private String personName;
|
||||
private String gender;
|
||||
private String orgIndexCode;
|
||||
private String birthday;
|
||||
private String phoneNo;
|
||||
private String email;
|
||||
private String certificateType;
|
||||
private String certificateNo;
|
||||
private String jobNo;
|
||||
private ArrayList<Faces> faces;
|
||||
|
||||
public String getPersonName() {
|
||||
return personName;
|
||||
}
|
||||
|
||||
public void setPersonName(String personName) {
|
||||
this.personName = personName;
|
||||
}
|
||||
|
||||
public String getGender() {
|
||||
return gender;
|
||||
}
|
||||
|
||||
public void setGender(String gender) {
|
||||
this.gender = gender;
|
||||
}
|
||||
|
||||
public String getOrgIndexCode() {
|
||||
return orgIndexCode;
|
||||
}
|
||||
|
||||
public void setOrgIndexCode(String orgIndexCode) {
|
||||
this.orgIndexCode = orgIndexCode;
|
||||
}
|
||||
|
||||
public String getBirthday() {
|
||||
return birthday;
|
||||
}
|
||||
|
||||
public void setBirthday(String birthday) {
|
||||
this.birthday = birthday;
|
||||
}
|
||||
|
||||
public String getPhoneNo() {
|
||||
return phoneNo;
|
||||
}
|
||||
|
||||
public void setPhoneNo(String phoneNo) {
|
||||
this.phoneNo = phoneNo;
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
public String getCertificateType() {
|
||||
return certificateType;
|
||||
}
|
||||
|
||||
public void setCertificateType(String certificateType) {
|
||||
this.certificateType = certificateType;
|
||||
}
|
||||
|
||||
public String getCertificateNo() {
|
||||
return certificateNo;
|
||||
}
|
||||
|
||||
public void setCertificateNo(String certificateNo) {
|
||||
this.certificateNo = certificateNo;
|
||||
}
|
||||
|
||||
public String getJobNo() {
|
||||
return jobNo;
|
||||
}
|
||||
|
||||
public void setJobNo(String jobNo) {
|
||||
this.jobNo = jobNo;
|
||||
}
|
||||
|
||||
public ArrayList<Faces> getFaces() {
|
||||
return faces;
|
||||
}
|
||||
|
||||
public void setFaces(ArrayList<Faces> faces) {
|
||||
this.faces = faces;
|
||||
}
|
||||
}
|
@ -0,0 +1,157 @@
|
||||
package weaver.interfaces.thwl.action.sdk;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.hikvision.artemis.sdk.ArtemisHttpUtil;
|
||||
import com.hikvision.artemis.sdk.config.ArtemisConfig;
|
||||
import weaver.general.BaseBean;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/14
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class ArtemisUtil {
|
||||
/**
|
||||
* 代理API网关nginx服务器ip端口
|
||||
*/
|
||||
private static final String HOST = new BaseBean().getPropValue("artemisSdk", "host");
|
||||
/**
|
||||
* 秘钥appkey
|
||||
*/
|
||||
private static final String APP_KEY = new BaseBean().getPropValue("artemisSdk", "appKey");
|
||||
/**
|
||||
* 秘钥appSecret
|
||||
*/
|
||||
private static final String APP_SECRET = new BaseBean().getPropValue("artemisSdk", "appSecret");
|
||||
|
||||
|
||||
/**
|
||||
* 构建config对象
|
||||
* @return
|
||||
*/
|
||||
private static ArtemisConfig getConfig() {
|
||||
ArtemisConfig config = new ArtemisConfig();
|
||||
config.setHost(HOST);
|
||||
config.setAppKey(APP_KEY);
|
||||
config.setAppSecret(APP_SECRET);
|
||||
return config;
|
||||
}
|
||||
|
||||
/**
|
||||
* 人员新增
|
||||
* @param addRequest
|
||||
* @throws Exception
|
||||
*/
|
||||
public static void personSingleAdd(AddRequest addRequest) throws Exception {
|
||||
Map<String, String> path = new HashMap<String, String>(2) {
|
||||
{
|
||||
put("https://", "/artemis/api/resource/v2/person/single/add");
|
||||
}
|
||||
};
|
||||
String body = JSON.toJSONString(addRequest);
|
||||
String response = ArtemisHttpUtil.doPostStringArtemis(getConfig(), path, body, null, null, "application/json");
|
||||
JSONObject jsonObject = JSON.parseObject(response);
|
||||
String code = jsonObject.getString("code");
|
||||
String msg = jsonObject.getString("msg");
|
||||
if ("0".equals(code) && "SUCCESS".equals(msg)) {
|
||||
return;
|
||||
}
|
||||
throw new RuntimeException(msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* 人员更新
|
||||
* @param updateRequest
|
||||
* @throws Exception
|
||||
*/
|
||||
public static void personSingleUpdate(UpdateRequest updateRequest) throws Exception {
|
||||
Map<String, String> path = new HashMap<String, String>(2) {
|
||||
{
|
||||
put("https://", "/artemis/api/resource/v1/person/single/update");
|
||||
}
|
||||
};
|
||||
String body = JSON.toJSONString(updateRequest);
|
||||
String response = ArtemisHttpUtil.doPostStringArtemis(getConfig(), path, body, null, null, "application/json");
|
||||
JSONObject jsonObject = JSON.parseObject(response);
|
||||
String code = jsonObject.getString("code");
|
||||
String msg = jsonObject.getString("msg");
|
||||
if ("0".equals(code) && "SUCCESS".equals(msg)) {
|
||||
return;
|
||||
}
|
||||
throw new RuntimeException(msg);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取部门组织唯一标识
|
||||
*
|
||||
* @param orgInfo
|
||||
* @return
|
||||
*/
|
||||
public static String getOrgIndexCode(OrgInfoRequest orgInfo) throws Exception {
|
||||
Map<String, String> path = new HashMap<String, String>(2) {
|
||||
{
|
||||
put("https://", "/artemis/api/resource/v1/org/orgIndexCodes/orgInfo");
|
||||
}
|
||||
};
|
||||
String body = JSON.toJSONString(orgInfo);
|
||||
String response = ArtemisHttpUtil.doPostStringArtemis(getConfig(), path, body, null, null, "application/json");
|
||||
String orgIndexCode = "";
|
||||
JSONObject jsonObject = JSON.parseObject(response);
|
||||
String code = jsonObject.getString("code");
|
||||
String msg = jsonObject.getString("msg");
|
||||
if ("0".equals(code) && "SUCCESS".equals(msg)) {
|
||||
JSONObject data = jsonObject.getJSONObject("data");
|
||||
JSONArray list = data.getJSONArray("list");
|
||||
int total = data.getIntValue("total");
|
||||
if (total > 0) {
|
||||
JSONObject info = list.getJSONObject(0);
|
||||
orgIndexCode = info.getString("orgIndexCode");
|
||||
}
|
||||
} else {
|
||||
throw new RuntimeException(msg);
|
||||
}
|
||||
return orgIndexCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取人员ID
|
||||
*
|
||||
* @param personInfoRequest
|
||||
* @return
|
||||
*/
|
||||
public static String getPersonId(PersonInfoRequest personInfoRequest) throws Exception {
|
||||
Map<String, String> path = new HashMap<String, String>(2) {
|
||||
{
|
||||
put("https://", "/artemis/api/resource/v1/person/condition/personInfo");
|
||||
|
||||
}
|
||||
};
|
||||
String body = JSON.toJSONString(personInfoRequest);
|
||||
String response = ArtemisHttpUtil.doPostStringArtemis(getConfig(), path, body, null, null, "application/json");
|
||||
String personId = "";
|
||||
JSONObject jsonObject = JSON.parseObject(response);
|
||||
String code = jsonObject.getString("code");
|
||||
String msg = jsonObject.getString("msg");
|
||||
if ("0".equals(code) && "SUCCESS".equals(msg)) {
|
||||
JSONObject data = jsonObject.getJSONObject("data");
|
||||
JSONArray list = data.getJSONArray("list");
|
||||
int total = data.getIntValue("total");
|
||||
if (total > 0) {
|
||||
JSONObject info = list.getJSONObject(0);
|
||||
personId = info.getString("personId");
|
||||
}
|
||||
} else {
|
||||
throw new RuntimeException(msg);
|
||||
}
|
||||
return personId;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package weaver.interfaces.thwl.action.sdk;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/14
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class Faces {
|
||||
private String faceData;
|
||||
|
||||
public String getFaceData() {
|
||||
return faceData;
|
||||
}
|
||||
|
||||
public void setFaceData(String faceData) {
|
||||
this.faceData = faceData;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,20 @@
|
||||
package weaver.interfaces.thwl.action.sdk;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/14
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class OrgInfoRequest {
|
||||
private ArrayList<String> orgIndexCodes;
|
||||
|
||||
public ArrayList<String> getOrgIndexCodes() {
|
||||
return orgIndexCodes;
|
||||
}
|
||||
|
||||
public void setOrgIndexCodes(ArrayList<String> orgIndexCodes) {
|
||||
this.orgIndexCodes = orgIndexCodes;
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package weaver.interfaces.thwl.action.sdk;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class PersonInfoRequest {
|
||||
private String paramName;
|
||||
private ArrayList<String> paramValue;
|
||||
|
||||
public String getParamName() {
|
||||
return paramName;
|
||||
}
|
||||
|
||||
public void setParamName(String paramName) {
|
||||
this.paramName = paramName;
|
||||
}
|
||||
|
||||
public ArrayList<String> getParamValue() {
|
||||
return paramValue;
|
||||
}
|
||||
|
||||
public void setParamValue(ArrayList<String> paramValue) {
|
||||
this.paramValue = paramValue;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,162 @@
|
||||
package weaver.interfaces.thwl.action.sdk;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/15
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class UpdateRequest {
|
||||
private String personId;
|
||||
private String personName;
|
||||
private String orgIndexCode;
|
||||
private Integer gender;
|
||||
private String birthday;
|
||||
private String phoneNo;
|
||||
private String email;
|
||||
private String certificateType;
|
||||
private String certificateNo;
|
||||
private String jobNo;
|
||||
private String firstWorkingTime;
|
||||
private String enterTime;
|
||||
private String formalEmpTime;
|
||||
private String empType;
|
||||
private String empLevel;
|
||||
private String workPlace;
|
||||
private String leaveTime;
|
||||
|
||||
public String getPersonId() {
|
||||
return personId;
|
||||
}
|
||||
|
||||
public void setPersonId(String personId) {
|
||||
this.personId = personId;
|
||||
}
|
||||
|
||||
public String getPersonName() {
|
||||
return personName;
|
||||
}
|
||||
|
||||
public void setPersonName(String personName) {
|
||||
this.personName = personName;
|
||||
}
|
||||
|
||||
public String getOrgIndexCode() {
|
||||
return orgIndexCode;
|
||||
}
|
||||
|
||||
public void setOrgIndexCode(String orgIndexCode) {
|
||||
this.orgIndexCode = orgIndexCode;
|
||||
}
|
||||
|
||||
public Integer getGender() {
|
||||
return gender;
|
||||
}
|
||||
|
||||
public void setGender(Integer gender) {
|
||||
this.gender = gender;
|
||||
}
|
||||
|
||||
public String getBirthday() {
|
||||
return birthday;
|
||||
}
|
||||
|
||||
public void setBirthday(String birthday) {
|
||||
this.birthday = birthday;
|
||||
}
|
||||
|
||||
public String getPhoneNo() {
|
||||
return phoneNo;
|
||||
}
|
||||
|
||||
public void setPhoneNo(String phoneNo) {
|
||||
this.phoneNo = phoneNo;
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
public String getCertificateType() {
|
||||
return certificateType;
|
||||
}
|
||||
|
||||
public void setCertificateType(String certificateType) {
|
||||
this.certificateType = certificateType;
|
||||
}
|
||||
|
||||
public String getCertificateNo() {
|
||||
return certificateNo;
|
||||
}
|
||||
|
||||
public void setCertificateNo(String certificateNo) {
|
||||
this.certificateNo = certificateNo;
|
||||
}
|
||||
|
||||
public String getJobNo() {
|
||||
return jobNo;
|
||||
}
|
||||
|
||||
public void setJobNo(String jobNo) {
|
||||
this.jobNo = jobNo;
|
||||
}
|
||||
|
||||
public String getFirstWorkingTime() {
|
||||
return firstWorkingTime;
|
||||
}
|
||||
|
||||
public void setFirstWorkingTime(String firstWorkingTime) {
|
||||
this.firstWorkingTime = firstWorkingTime;
|
||||
}
|
||||
|
||||
public String getEnterTime() {
|
||||
return enterTime;
|
||||
}
|
||||
|
||||
public void setEnterTime(String enterTime) {
|
||||
this.enterTime = enterTime;
|
||||
}
|
||||
|
||||
public String getFormalEmpTime() {
|
||||
return formalEmpTime;
|
||||
}
|
||||
|
||||
public void setFormalEmpTime(String formalEmpTime) {
|
||||
this.formalEmpTime = formalEmpTime;
|
||||
}
|
||||
|
||||
public String getEmpType() {
|
||||
return empType;
|
||||
}
|
||||
|
||||
public void setEmpType(String empType) {
|
||||
this.empType = empType;
|
||||
}
|
||||
|
||||
public String getEmpLevel() {
|
||||
return empLevel;
|
||||
}
|
||||
|
||||
public void setEmpLevel(String empLevel) {
|
||||
this.empLevel = empLevel;
|
||||
}
|
||||
|
||||
public String getWorkPlace() {
|
||||
return workPlace;
|
||||
}
|
||||
|
||||
public void setWorkPlace(String workPlace) {
|
||||
this.workPlace = workPlace;
|
||||
}
|
||||
|
||||
public String getLeaveTime() {
|
||||
return leaveTime;
|
||||
}
|
||||
|
||||
public void setLeaveTime(String leaveTime) {
|
||||
this.leaveTime = leaveTime;
|
||||
}
|
||||
}
|
@ -0,0 +1,76 @@
|
||||
package weaver.interfaces.thwl.cronjob;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.common.DateUtil;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.hrm.company.DepartmentComInfo;
|
||||
import weaver.hrm.resource.ResourceComInfo;
|
||||
import weaver.interfaces.schedule.BaseCronJob;
|
||||
import weaver.interfaces.thwl.action.sdk.ArtemisUtil;
|
||||
import weaver.interfaces.thwl.action.sdk.OrgInfoRequest;
|
||||
import weaver.interfaces.thwl.action.sdk.PersonInfoRequest;
|
||||
import weaver.interfaces.thwl.action.sdk.UpdateRequest;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/14
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class PersonSyncUpdateJob extends BaseCronJob {
|
||||
@Override
|
||||
public void execute() {
|
||||
RecordSet rs = new RecordSet();
|
||||
try {
|
||||
String currentDate = DateUtil.getCurrentDate();
|
||||
rs.executeQuery("select ydryxm,drgzbm from formtable_main_176 where dgrq = ? ", currentDate);
|
||||
List<Map<String, String>> personList = new ArrayList<>();
|
||||
while (rs.next()) {
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map.put(rs.getString("ydryxm"), rs.getString("drgzbm"));
|
||||
personList.add(map);
|
||||
}
|
||||
rs.writeLog("人员异动同步任务开始,共查询到异动人员" + personList.size());
|
||||
|
||||
DepartmentComInfo departmentComInfo = new DepartmentComInfo();
|
||||
ResourceComInfo resourceComInfo = new ResourceComInfo();
|
||||
for (Map<String, String> item : personList) {
|
||||
try {
|
||||
String ydryxm = item.get("ydryxm");
|
||||
String drgzbm = item.get("drgzbm");
|
||||
String departmentCode = departmentComInfo.getDepartmentCode(drgzbm);
|
||||
ArrayList<String> codeList = new ArrayList<>();
|
||||
codeList.add(departmentCode);
|
||||
OrgInfoRequest orgInfoRequest = new OrgInfoRequest();
|
||||
orgInfoRequest.setOrgIndexCodes(codeList);
|
||||
|
||||
// 获取组织唯一标识
|
||||
String orgIndexCode = ArtemisUtil.getOrgIndexCode(orgInfoRequest);
|
||||
|
||||
// 获取人员ID
|
||||
String workCode = resourceComInfo.getWorkcode(ydryxm);
|
||||
PersonInfoRequest personInfoRequest = new PersonInfoRequest();
|
||||
personInfoRequest.setParamName("");
|
||||
ArrayList<String> list = new ArrayList<>();
|
||||
list.add(workCode);
|
||||
personInfoRequest.setParamValue(list);
|
||||
String personId = ArtemisUtil.getPersonId(personInfoRequest);
|
||||
rs.writeLog("ydryxm==" + ydryxm + ",drgzbm==" + drgzbm + ",workCode==" + workCode + ",personId==" + personId);
|
||||
if(StringUtils.isBlank(workCode) || StringUtils.isBlank(personId)){
|
||||
continue;
|
||||
}
|
||||
|
||||
UpdateRequest updateRequest = new UpdateRequest();
|
||||
updateRequest.setPersonId(personId);
|
||||
updateRequest.setOrgIndexCode(orgIndexCode);
|
||||
ArtemisUtil.personSingleUpdate(updateRequest);
|
||||
} catch (Exception e) {
|
||||
rs.writeLog(e);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
rs.writeLog("人员异动同步失败", e);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue