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

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

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