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

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

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