package cn.iocoder.yudao.module.hrm.dal.mysql.employee;
|
|
import cn.hutool.core.util.StrUtil;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeePageReqVO;
|
import cn.iocoder.yudao.module.hrm.dal.dataobject.employee.HrmEmployeeDO;
|
import org.apache.ibatis.annotations.Mapper;
|
|
import java.util.Collection;
|
import java.util.List;
|
|
/**
|
* 员工信息 Mapper
|
*
|
* @author 超级管理员
|
*/
|
@Mapper
|
public interface HrmEmployeeMapper extends BaseMapperX<HrmEmployeeDO> {
|
|
default HrmEmployeeDO selectByPhone(String phone) {
|
return selectOne(HrmEmployeeDO::getPhone, phone);
|
}
|
|
default HrmEmployeeDO selectByName(String name) {
|
return selectOne(HrmEmployeeDO::getName, name);
|
}
|
|
default List<HrmEmployeeDO> selectListByName(String name) {
|
return selectList(HrmEmployeeDO::getName, name);
|
}
|
|
default HrmEmployeeDO selectByEmployeeNo(String employeeNo) {
|
return selectOne(HrmEmployeeDO::getEmployeeNo, employeeNo);
|
}
|
|
default HrmEmployeeDO selectByUserId(Long userId) {
|
return selectOne(HrmEmployeeDO::getUserId, userId);
|
}
|
|
default List<HrmEmployeeDO> selectByDeptId(Long deptId) {
|
return selectList(HrmEmployeeDO::getDeptId, deptId);
|
}
|
|
default List<HrmEmployeeDO> selectByEmployeeStatus(Integer employeeStatus) {
|
return selectList(HrmEmployeeDO::getEmployeeStatus, employeeStatus);
|
}
|
|
default PageResult<HrmEmployeeDO> selectPage(HrmEmployeePageReqVO reqVO) {
|
LambdaQueryWrapperX<HrmEmployeeDO> wrapper = new LambdaQueryWrapperX<HrmEmployeeDO>()
|
.likeIfPresent(HrmEmployeeDO::getEmployeeNo, reqVO.getEmployeeNo())
|
.likeIfPresent(HrmEmployeeDO::getName, reqVO.getName())
|
.eqIfPresent(HrmEmployeeDO::getDeptId, reqVO.getDeptId())
|
.eqIfPresent(HrmEmployeeDO::getEmployeeStatus, reqVO.getEmployeeStatus());
|
appendKeyword(wrapper, reqVO.getKeyword());
|
wrapper.orderByDesc(HrmEmployeeDO::getId);
|
return selectPage(reqVO, wrapper);
|
}
|
|
/**
|
* 按部门集合(含子部门)分页查询员工
|
*/
|
default PageResult<HrmEmployeeDO> selectPageByDeptIds(HrmEmployeePageReqVO reqVO, Collection<Long> deptIds) {
|
LambdaQueryWrapperX<HrmEmployeeDO> wrapper = new LambdaQueryWrapperX<HrmEmployeeDO>()
|
.likeIfPresent(HrmEmployeeDO::getEmployeeNo, reqVO.getEmployeeNo())
|
.likeIfPresent(HrmEmployeeDO::getName, reqVO.getName())
|
.inIfPresent(HrmEmployeeDO::getDeptId, deptIds)
|
.eqIfPresent(HrmEmployeeDO::getEmployeeStatus, reqVO.getEmployeeStatus());
|
appendKeyword(wrapper, reqVO.getKeyword());
|
wrapper.orderByDesc(HrmEmployeeDO::getId);
|
return selectPage(reqVO, wrapper);
|
}
|
|
/**
|
* 关键词模糊匹配员工编号 / 姓名 / 手机号
|
*/
|
private void appendKeyword(LambdaQueryWrapperX<HrmEmployeeDO> wrapper, String keyword) {
|
if (StrUtil.isBlank(keyword)) {
|
return;
|
}
|
String kw = keyword.trim();
|
wrapper.and(w -> w.like(HrmEmployeeDO::getEmployeeNo, kw)
|
.or().like(HrmEmployeeDO::getName, kw)
|
.or().like(HrmEmployeeDO::getPhone, kw));
|
}
|
|
default List<HrmEmployeeDO> selectListByStatus(Integer employeeStatus) {
|
return selectList(new LambdaQueryWrapperX<HrmEmployeeDO>()
|
.eqIfPresent(HrmEmployeeDO::getEmployeeStatus, employeeStatus)
|
.orderByAsc(HrmEmployeeDO::getName));
|
}
|
|
default Long selectCountBySalaryStructureId(Long salaryStructureId) {
|
return selectCount(HrmEmployeeDO::getSalaryStructureId, salaryStructureId);
|
}
|
|
}
|