weaver-hrm-recruit/src/com/engine/recruit/conn/PositionCommonInfo.java

110 lines
3.7 KiB
Java
Raw Normal View History

2023-10-27 09:27:47 +08:00
package com.engine.recruit.conn;
2024-05-13 17:18:17 +08:00
import com.engine.recruit.entity.position.PositionPo;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
2023-10-27 09:27:47 +08:00
import weaver.conn.RecordSet;
2024-05-13 17:18:17 +08:00
import java.util.*;
import java.util.stream.Collectors;
2023-10-27 09:27:47 +08:00
/**
* 招聘职位信息
*
* @author:dxfeng
* @createTime: 2023/10/26
* @version: 1.0
*/
public class PositionCommonInfo {
/**
* 根据千里聆岗位ID获取招聘职位ID
*
* @param qllGwId
* @return
*/
public static String getPositionIdByQll(Long qllGwId) {
String positionId = "";
RecordSet rs = new RecordSet();
rs.executeQuery("select id from uf_jcl_zp_zpzw where qllgwid = ?", qllGwId);
if (rs.next()) {
positionId = rs.getString("id");
}
return positionId;
}
/**
* 获取招聘职位关联的招聘流程
*
* @param positionId
* @return
*/
public static String getRecruitFlowId(String positionId) {
String recruitFlowId = "";
if (StringUtils.isBlank(positionId)) {
return recruitFlowId;
}
2023-10-27 09:27:47 +08:00
RecordSet rs = new RecordSet();
rs.executeQuery("select zplc from uf_jcl_zp_zpzw where id = ?", positionId);
if (rs.next()) {
recruitFlowId = rs.getString("zplc");
}
return recruitFlowId;
}
2024-05-13 17:18:17 +08:00
/**
* 根据职位名称获取职位ID
*
* @param positionName 职位名称
* @param mobile 职位跟进人手机号
* @return
*/
public static String getPositionIdByName(String positionName, String mobile) {
RecordSet rs = new RecordSet();
// 根据职位名称、查询招聘中的数据
rs.executeQuery("select id ,zpzwmc ,zpzt ,modedatacreater ,modedatacreatedate ,modedatacreatetime from uf_jcl_zp_zpzw where zpzt = 0 and zpzwmc = ? ", positionName);
List<PositionPo> positionPoList = new ArrayList<>();
while (rs.next()) {
PositionPo positionPo = PositionPo.builder()
.id(rs.getString("id"))
.name(rs.getString("zpzwmc"))
.status(rs.getString("zpzt"))
.creator(rs.getString("modedatacreater"))
.createDate(rs.getString("modedatacreatedate"))
.createTime(rs.getString("modedatacreatetime"))
.build();
positionPoList.add(positionPo);
}
// 未查询到数据,返回空
if (CollectionUtils.isEmpty(positionPoList)) {
return "";
}
// 只有一条数据,直接返回当前数据,如果有多个,再添加其他条件过滤
if (positionPoList.size() == 1) {
return positionPoList.get(0).getId();
}
// 根据手机号查询人员ID
Set<String> userIds = new HashSet<>();
rs.executeQuery("select id from hrmresource where mobile = ? ", mobile);
while (rs.next()) {
userIds.add(rs.getString("id"));
}
// 筛选跟进人手机号匹配的职位数据,并按创建时间倒序排序
List<PositionPo> filterList = positionPoList.stream().filter(item -> userIds.contains(item.getCreator())).sorted(Comparator.comparing(PositionPo::getCreationTime).reversed()).collect(Collectors.toList());
if (CollectionUtils.isEmpty(filterList)) {
// 跟进人手机号未获取到,选择最新的一条数据
return positionPoList.stream().sorted(Comparator.comparing(PositionPo::getCreationTime).reversed()).collect(Collectors.toList()).get(0).getId();
} else {
// 再一样,就默认匹配到创建时间最新的职位
return filterList.get(0).getId();
}
}
2023-10-27 09:27:47 +08:00
}