提交 8449600f authored 作者: 000516's avatar 000516

当员工离职完成时,链路中心账号做离职操作

上级 d5bd21d7
......@@ -17,4 +17,5 @@ public class Constants {
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";
public static final String FEISHU_EVENT_USER_RESIGNED = "corehr.employment.resigned_v1";
}
......@@ -2,7 +2,6 @@ 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;
import com.sfa.common.core.enums.promotion.PlanStatus;
import com.sfa.common.core.exception.ServiceException;
......@@ -67,12 +66,11 @@ public class EventCallbackLuzx {
/**
* 组织(部门/人员)变更 事件处理
*/
if (req.containsKey("header")){
if (req.containsKey("header") && req.containsKey("event")){
deptOrUserEvent(req);
}
return req;
} catch (Exception e) {
e.printStackTrace();
throw new ServiceException(ECode.DB_TABLE_UPDATE_ERROR.getMsg(),ECode.DB_TABLE_UPDATE_ERROR.getCode());
}
}
......@@ -80,10 +78,7 @@ public class EventCallbackLuzx {
/**
* 部门、人员变更事件
*/
private void deptOrUserEvent(JSONObject req) {
if (!req.containsKey("event")){
return;
}
private synchronized void deptOrUserEvent(JSONObject req) {
String eventType = req.getJSONObject("header").getString("event_type");
String departmentId = req.getJSONObject("event").getString("department_id");
......@@ -110,7 +105,10 @@ public class EventCallbackLuzx {
eventCallbackService.userUpdateByPersonId(req.getJSONObject("event").getString("person_id"));
}
}
// 员工完成离职
if (Constants.FEISHU_EVENT_USER_RESIGNED.equals(eventType)){
eventCallbackService.userResigned(req.getJSONObject("event").getString("employment_id"));
}
}
......@@ -128,9 +126,6 @@ public class EventCallbackLuzx {
}
}
/**
* 解析encrypt_key加密数据
*/
......
......@@ -17,4 +17,5 @@ public interface ISysDeptDao {
List<SysDept> selectListByStatus();
void deleteDept(String deptCode);
}
......@@ -11,4 +11,6 @@ public interface ISysUserDao {
void insertOrUpdate(JSONObject jo,Long deptId);
void updateDeptLeader();
void deleteUser(String employeeNo);
}
......@@ -101,4 +101,9 @@ public class SysDeptDaoImpl implements ISysDeptDao{
public List<SysDept> selectListByStatus() {
return sysDeptMapper.selectListByStatus();
}
@Override
public void deleteDept(String deptCode) {
sysDeptMapper.updateStatus(deptCode);
}
}
......@@ -49,4 +49,9 @@ public class SysUserDaoImpl implements ISysUserDao{
public void updateDeptLeader() {
sysUserMapper.updateDeptLeader();
}
@Override
public void deleteUser(String employeeNo) {
sysUserMapper.updateStatus(employeeNo);
}
}
......@@ -19,6 +19,7 @@ public interface SysDeptMapper extends BaseMapper<SysDept> {
List<SysDept> selectListByStatus();
void updateStatus(String deptCode);
}
......
......@@ -2,6 +2,7 @@ package com.sfa.job.domain.system.mapper;
import com.sfa.job.domain.system.entity.SysUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
/**
......@@ -16,6 +17,8 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
void insertOrUpdate(SysUser sysUser);
void updateDeptLeader();
void updateStatus(@Param("employeeNo") String employeeNo);
}
......
......@@ -5,13 +5,15 @@ import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson2.JSONObject;
import com.lark.oapi.service.corehr.v2.model.*;
import com.sfa.common.core.enums.promotion.PlanStatus;
import com.sfa.common.core.utils.DateUtils;
import com.sfa.common.core.utils.sdk.FeiShuUtil;
import com.sfa.job.domain.promotion.dao.IActivityPlanDao;
import com.sfa.job.domain.system.dao.ISysDeptDao;
import com.sfa.job.domain.system.dao.ISysUserDao;
import com.sfa.job.pojo.feishu.event.EventCallBackDto;
import com.sfa.job.pojo.promotion.response.ActivityPlanApprovalDto;
import com.sfa.job.util.T100Util;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -29,6 +31,10 @@ public class EventCallbackServiceImpl implements IEventCallbackService{
@Autowired
private IActivityPlanDao activityPlanDao;
@Autowired
private ISysUserDao sysUserDao;
@Autowired
private ISysDeptDao sysDeptDao;
@Autowired
private FeiShuUtil feiShuUtil;
@Autowired
private T100Util t100Util;
......@@ -111,6 +117,10 @@ public class EventCallbackServiceImpl implements IEventCallbackService{
deptT100.put("ooeg005","Y");
createOrUpdateDept(deptT100);
// 部门停用时,删除链路中心部门
if (!active) {
sysDeptDao.deleteDept(deptCode);
}
}
/**
......@@ -131,6 +141,20 @@ public class EventCallbackServiceImpl implements IEventCallbackService{
userAUT100(emp);
}
/**
* 根据工号做员工离职
*/
@Override
public void userResigned(String employmentId) {
Employee emp = feiShuUtil.getEmployeeReq(employmentId);
String employeeNo = emp.getEmployeeNumber();
if (StringUtils.isEmpty(employeeNo)){
return;
}
// 链路中心人员离职
sysUserDao.deleteUser(employeeNo);
}
private void userAUT100(Employee emp){
String departmentIdV2 = emp.getDepartmentIdV2();
Department dept = feiShuUtil.getDepartmentCorehr(departmentIdV2);
......
......@@ -17,4 +17,6 @@ public interface IEventCallbackService {
void userCreateOrUpdate(String employmentId);
void userUpdateByPersonId(String personId);
void userResigned(String employmentId);
}
......@@ -82,4 +82,8 @@
<select id="selectListByStatus" resultMap="SimpleResultMap">
select dept_id,dept_code,dept_name from sys_dept where status = '0' and del_flag = '0';
</select>
<update id="updateStatus">
update sys_dept set status = '1', del_flag = '2' where dept_code = #{deptCode};
</update>
</mapper>
......@@ -92,4 +92,9 @@
sd.phone = su.phonenumber
where sd.fs_leader_id = su.fs_open_id
</update>
<update id="updateStatus">
update sys_user set status = 1, del_flag = 3 where user_name = #{employeeNo}
</update>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论