| | |
| | | package cn.iocoder.yudao.module.hrm.dal.mysql.employee; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| | |
| | | |
| | | import java.time.LocalDate; |
| | | import java.util.Collection; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 员工信息 Mapper |
| | |
| | | return selectList(HrmEmployeeDO::getEmployeeStatus, employeeStatus); |
| | | } |
| | | |
| | | /** |
| | | * 按岗位编号集合查询在职/试用员工 |
| | | * <p> |
| | | * 员工表的 post_ids 存的是 JSON 数组(如 [17, 18]),使用 JSON_CONTAINS 精确匹配岗位 |
| | | * |
| | | * @param postIds 岗位编号集合 |
| | | * @return 员工列表 |
| | | */ |
| | | default List<HrmEmployeeDO> selectListByPostIds(Collection<Long> postIds) { |
| | | if (CollUtil.isEmpty(postIds)) { |
| | | return Collections.emptyList(); |
| | | } |
| | | String postCondition = postIds.stream() |
| | | .map(postId -> "JSON_CONTAINS(post_ids, '[" + postId + "]')") |
| | | .collect(Collectors.joining(" OR ")); |
| | | return selectList(new LambdaQueryWrapperX<HrmEmployeeDO>() |
| | | .in(HrmEmployeeDO::getEmployeeStatus, List.of(1, 2)) |
| | | .apply("(" + postCondition + ")") |
| | | .orderByAsc(HrmEmployeeDO::getName)); |
| | | } |
| | | |
| | | default PageResult<HrmEmployeeDO> selectPage(HrmEmployeePageReqVO reqVO) { |
| | | LambdaQueryWrapperX<HrmEmployeeDO> wrapper = new LambdaQueryWrapperX<HrmEmployeeDO>() |
| | | .likeIfPresent(HrmEmployeeDO::getEmployeeNo, reqVO.getEmployeeNo()) |