From f2ab2274d95f8adf58d7cb4e39d089aff8883021 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 13 May 2024 17:18:17 +0800 Subject: [PATCH] =?UTF-8?q?ADD-=E8=81=8C=E4=BD=8D=E5=8C=B9=E9=85=8D?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../recruit/conn/PositionCommonInfo.java | 58 +++++++++++++++++++ .../recruit/entity/position/PositionPo.java | 29 ++++++++++ .../recruit/entity/resume/QllResumePo.java | 5 -- .../thread/ExtractQllResumeThread.java | 2 +- 4 files changed, 88 insertions(+), 6 deletions(-) create mode 100644 src/com/engine/recruit/entity/position/PositionPo.java diff --git a/src/com/engine/recruit/conn/PositionCommonInfo.java b/src/com/engine/recruit/conn/PositionCommonInfo.java index 0a3694e..77bc472 100644 --- a/src/com/engine/recruit/conn/PositionCommonInfo.java +++ b/src/com/engine/recruit/conn/PositionCommonInfo.java @@ -1,8 +1,13 @@ package com.engine.recruit.conn; +import com.engine.recruit.entity.position.PositionPo; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; +import java.util.*; +import java.util.stream.Collectors; + /** * 招聘职位信息 * @@ -48,4 +53,57 @@ public class PositionCommonInfo { return recruitFlowId; } + + /** + * 根据职位名称,获取职位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 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 userIds = new HashSet<>(); + rs.executeQuery("select id from hrmresource where mobile = ? ", mobile); + while (rs.next()) { + userIds.add(rs.getString("id")); + } + + // 筛选跟进人手机号匹配的职位数据,并按创建时间倒序排序 + List 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(); + } + } } diff --git a/src/com/engine/recruit/entity/position/PositionPo.java b/src/com/engine/recruit/entity/position/PositionPo.java new file mode 100644 index 0000000..0befc06 --- /dev/null +++ b/src/com/engine/recruit/entity/position/PositionPo.java @@ -0,0 +1,29 @@ +package com.engine.recruit.entity.position; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author:dxfeng + * @createTime: 2024/02/05 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class PositionPo { + private String id; + private String name; + private String status; + private String creator; + private String createDate; + private String createTime; + private String creationTime; + + public String getCreationTime() { + return createDate + " " + createTime; + } +} diff --git a/src/com/engine/recruit/entity/resume/QllResumePo.java b/src/com/engine/recruit/entity/resume/QllResumePo.java index a925cbf..9626e36 100644 --- a/src/com/engine/recruit/entity/resume/QllResumePo.java +++ b/src/com/engine/recruit/entity/resume/QllResumePo.java @@ -199,11 +199,6 @@ public class QllResumePo { return list; } - public String getYpzw() { - // TODO 如果关联招聘职位 - //return ypzw; - return null; - } private String formatStr(String str) { if (StringUtils.isBlank(str)) { diff --git a/src/weaver/interfaces/recruit/thread/ExtractQllResumeThread.java b/src/weaver/interfaces/recruit/thread/ExtractQllResumeThread.java index d1e60bd..1694781 100644 --- a/src/weaver/interfaces/recruit/thread/ExtractQllResumeThread.java +++ b/src/weaver/interfaces/recruit/thread/ExtractQllResumeThread.java @@ -85,7 +85,7 @@ public class ExtractQllResumeThread extends Thread { String zt = ApplicationStatusEnum.DISTRIBUTION.getValue(); // 应聘职位 - String ypzw = qllResumePo.getYpzw(); + String ypzw = PositionCommonInfo.getPositionIdByName(qllResumePo.getYpzw(), qllResumePo.getGjrsjh()); if (StringUtils.isNotBlank(ypzw)) { String flowId = PositionCommonInfo.getRecruitFlowId(ypzw); Map initialStage = ApplicantCommonInfo.getInitialStage(flowId);