提交 6c3de76f authored 作者: 000516's avatar 000516

1、添加功能:修改人事用户银行信息时,修改T100;2、人员属于新人启航营时跳过异动;3、修改日志形式

......@@ -16,4 +16,5 @@ public class Constants {
public static final String FEISHU_EVENT_DEPT_PUT = "corehr.department.updated_v1";
public static final String FEISHU_EVENT_USER_CREATE = "corehr.job_data.employed_v1";
public static final String FEISHU_EVENT_USER_PUT = "corehr.job_data.changed_v1";
public static final String FEISHU_EVENT_USER_UPDATE = "corehr.person.updated_v1";
}
package com.sfa.job.consumer.feishu;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.lark.oapi.ws.Constant;
import com.sfa.common.core.enums.ECode;
......@@ -54,7 +55,7 @@ public class EventCallbackLuzx {
byte[] keyBs = digest.digest(encryptKeyP.getBytes(StandardCharsets.UTF_8));
String decrypt = decrypt(encrypt,keyBs);
JSONObject req = JSONObject.parseObject(decrypt);
log.info("飞书事件回调数据:{}\n解析:{}",eventObj,req);
log.info("飞书事件监听数据:{};解析后:{}",eventObj,req);
/**
* 审批实例 状态变更 事件处理
......@@ -97,13 +98,17 @@ public class EventCallbackLuzx {
if (Constants.FEISHU_EVENT_DEPT_PUT.equals(eventType)){
eventCallbackService.deptUpdate(departmentId);
}
// 员工入职
if (Constants.FEISHU_EVENT_USER_CREATE.equals(eventType)){
eventCallbackService.userCreate(req.getJSONObject("event").getString("employment_id"));
// 员工入职 or 员工异动
if (Constants.FEISHU_EVENT_USER_CREATE.equals(eventType) || Constants.FEISHU_EVENT_USER_PUT.equals(eventType)){
eventCallbackService.userCreateOrUpdate(req.getJSONObject("event").getString("employment_id"));
}
// 员工信息修改
if (Constants.FEISHU_EVENT_USER_PUT.equals(eventType)){
eventCallbackService.userUpdate(req.getJSONObject("event").getString("employment_id"));
if (Constants.FEISHU_EVENT_USER_UPDATE.equals(eventType)){
JSONArray fieldChanges = req.getJSONObject("event").getJSONArray("field_changes");
boolean contains = fieldChanges.contains("bank_account.bank_account_number");
if (contains){
eventCallbackService.userUpdateByPersonId(req.getJSONObject("event").getString("person_id"));
}
}
......
......@@ -118,28 +118,41 @@ public class EventCallbackServiceImpl implements IEventCallbackService{
* 员工入职
*/
@Override
public void userCreate(String employmentId) {
public void userCreateOrUpdate(String employmentId) {
Employee emp = feiShuUtil.getEmployeeReq(employmentId);
String departmentIdV2 = emp.getDepartmentIdV2();
Department dept = feiShuUtil.getDepartmentCorehr(departmentIdV2);
userAUT100(emp);
}
/**
* personId:创建人员信息时,生成的ID
*/
@Override
public void userUpdateByPersonId(String personId) {
Employee emp = feiShuUtil.getPersonReq(personId);
userAUT100(emp);
}
private void userAUT100(Employee emp){
String departmentIdV2 = emp.getDepartmentIdV2();
Department dept = feiShuUtil.getDepartmentCorehr(departmentIdV2);
String employeeNumber = emp.getEmployeeNumber();
String deptCode = dept.getCode();
String preferredName = emp.getPersonInfo().getPreferredName();
// 判断部门,当部门为【新人训练营】时跳过,不做人员异动
if (deptCode.equals("BM0131")){
log.info("T100-AU-USER skip user:{}{}-新人训练营{}", preferredName,employeeNumber,deptCode);
return;
}
BankAccount bankAccount = emp.getPersonInfo().getBankAccountList()[0];
String branchIdV2 = bankAccount.getBranchIdV2();
String bankAccountNumber = bankAccount.getBankAccountNumber();
String preferredName = emp.getPersonInfo().getPreferredName();
JSONObject userT100 = new JSONObject();
userT100.put("data_status","AU");
userT100.put("status","Y");
userT100.put("employee_no",employeeNumber);
userT100.put("department_no",deptCode);
userT100.put("site_no","ALL");
userT100.put("title","");
userT100.put("bank_no",branchIdV2);
userT100.put("bank_no","001");
userT100.put("account",bankAccountNumber);
userT100.put("employee_name",preferredName);
userT100.put("employee_nickname",preferredName);
......@@ -148,12 +161,6 @@ public class EventCallbackServiceImpl implements IEventCallbackService{
userT100.put("email","");
createOrUpdateUser(userT100);
}
@Override
public void userUpdate(String employmentId) {
userCreate(employmentId);
}
private void customFields(CustomFieldData[] customFields,JSONObject deptT100){
for (CustomFieldData customField : customFields) {
String customName = customField.getName().getZhCn();
......@@ -172,25 +179,19 @@ public class EventCallbackServiceImpl implements IEventCallbackService{
}
private void createOrUpdateDept(JSONObject deptT100){
JSONObject service = new JSONObject();
service.put("name","department.create");
JSONObject datakey = new JSONObject();
datakey.put("CompanyId","BJHQ");
datakey.put("EntId","80");
JSONObject host = new JSONObject();
host.put("acct","tiptop");
host.put("ip","192.168.100.20");
host.put("lang","zh_CN");
host.put("prod","CRM");
host.put("timestamp",DateUtil.format(new Date(), DatePattern.NORM_DATETIME_MS_PATTERN));
JSONObject payload = new JSONObject();
payload.putObject("std_data").putObject("parameter").putArray("master_data").add(deptT100);
JSONObject deptJson = new JSONObject();
deptJson.put("service",service);
deptJson.put("datakey",datakey);
......@@ -200,25 +201,19 @@ public class EventCallbackServiceImpl implements IEventCallbackService{
}
private void createOrUpdateUser(JSONObject userT100){
JSONObject service = new JSONObject();
service.put("name","employee.create");
JSONObject datakey = new JSONObject();
datakey.put("CompanyId","BJHQ");
datakey.put("EntId","80");
JSONObject host = new JSONObject();
host.put("acct","tiptop");
host.put("ip","192.168.100.20");
host.put("lang","zh_CN");
host.put("prod","CRM");
host.put("timestamp",DateUtil.format(new Date(), DatePattern.NORM_DATETIME_MS_PATTERN));
JSONObject payload = new JSONObject();
payload.putObject("std_data").putObject("parameter").putArray("master_data").add(userT100);
JSONObject userJson = new JSONObject();
userJson.put("service",service);
userJson.put("datakey",datakey);
......
......@@ -14,7 +14,7 @@ public interface IEventCallbackService {
void deptUpdate(String departmentId);
void userCreate(String employmentId);
void userCreateOrUpdate(String employmentId);
void userUpdate(String employmentId);
void userUpdateByPersonId(String personId);
}
......@@ -28,8 +28,10 @@ public class T100Util {
header.put("digi-srvcode","000");
header.put("digi-type","sync");
header.put("digi-key","f63b06af224e90ea3f9f08e0226fc91e");
log.info("T100-AU-DEPT参数:{}",deptJson);
String body = HttpUtil.createPost(url).addHeaders(header).body(deptJson.toString()).execute().body();
log.info("\nT100-创建/修改部门\n参数:{}\n结果:{}",deptJson,body);
String msg = body.replaceAll("\n", "");
log.info("T100-AU-DEPT结果:{}",msg);
}
public void createOrUpdateUser(JSONObject userJson) {
......@@ -40,8 +42,10 @@ public class T100Util {
header.put("digi-srvcode","000");
header.put("digi-type","sync");
header.put("digi-key","f63b06af224e90ea3f9f08e0226fc91e");
log.info("T100-AU-USER参数:{}",userJson);
String body = HttpUtil.createPost(url).addHeaders(header).body(userJson.toString()).execute().body();
log.info("\nT100-创建/修改人员\n参数:{}\n结果:{}",userJson,body);
String msg = body.replaceAll("\n", "");
log.info("T100-AU-USER结果:{}",msg);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论