From ff7a3ba510fe465019036ec16e4ef227cb4e664e Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 11 Nov 2024 16:22:42 +0800 Subject: [PATCH] =?UTF-8?q?#3316180=20=E7=AE=80=E5=8E=86=E8=AF=86=E5=88=AB?= =?UTF-8?q?=E5=BD=95=E5=85=A5=E6=9F=A5=E9=87=8D=E5=8A=9F=E8=83=BD=E5=BC=80?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../recruit/conn/CheckRepeatResume.java | 93 ++++++++----------- .../service/impl/OfferServiceImpl.java | 3 + .../applicant/SendInterviewEmailExpand.java | 9 +- 3 files changed, 47 insertions(+), 58 deletions(-) diff --git a/src/com/engine/recruit/conn/CheckRepeatResume.java b/src/com/engine/recruit/conn/CheckRepeatResume.java index 9d97752..c4204f4 100644 --- a/src/com/engine/recruit/conn/CheckRepeatResume.java +++ b/src/com/engine/recruit/conn/CheckRepeatResume.java @@ -1,16 +1,12 @@ package com.engine.recruit.conn; -import com.engine.recruit.enums.ApplicationStatusEnum; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.BaseBean; import weaver.general.Util; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; /** * @author:dxfeng @@ -81,11 +77,26 @@ public class CheckRepeatResume { * @param mobile 手机号 * @return */ - private List> getRepeatResumeList(String name, String mobile) { + private List getRepeatResumeListByNameAndPhone(String name, String mobile) { RecordSet rs = new RecordSet(); // 查询状态为待分配、候选中的且未隐藏的数据 - rs.executeQuery("select * from uf_jcl_yppc where formmodeid is not null and zt != 2 and zt != 3 and xm = ? and sjhm =? order by zt", name, mobile); - return RecruitRecordSet.getRecordMapList(rs); + List list = new ArrayList<>(); + rs.executeQuery("select id from uf_jcl_yppc where formmodeid is not null and xm = ? and sjhm = ? ", name, mobile); + while (rs.next()) { + list.add(rs.getString("id")); + } + return list; + } + + private List getRepeatResumeListByNameOrPhone(String name, String mobile) { + RecordSet rs = new RecordSet(); + // 查询状态为待分配、候选中的且未隐藏的数据 + List list = new ArrayList<>(); + rs.executeQuery("select id from uf_jcl_yppc where formmodeid is not null and (xm = ? or sjhm = ? )", name, mobile); + while (rs.next()) { + list.add(rs.getString("id")); + } + return list; } /** @@ -144,11 +155,9 @@ public class CheckRepeatResume { public synchronized Map insertResumeAndReturn(Map param) { Map returnMap = new HashMap<>(); int mainId = -1; - String sourceId; String name = Util.null2String(param.get("xm")); String mobile = Util.null2String(param.get("sjhm")); - String status = Util.null2String(param.get("zt")); - String positionId = Util.null2String(param.get("ypzw")); + String xb = Util.null2String(param.get("xb")); // 黑名单校验,黑名单人员不入库 boolean joinBlackList = joinBlackList(name, mobile); returnMap.put("joinBlackList", joinBlackList); @@ -158,53 +167,27 @@ public class CheckRepeatResume { return returnMap; } + String jlzfd = null; // 按照姓名+手机号查询正常展示的简历数据 - List> repeatResumeList = getRepeatResumeList(name, mobile); - if (CollectionUtils.isEmpty(repeatResumeList)) { - // 不存在重复数据,直接插入数据库 - mainId = insertData(param); - returnMap.put("mainId", mainId); - return returnMap; + List repeatResumeList = getRepeatResumeListByNameOrPhone(name, mobile); + if (CollectionUtils.isNotEmpty(repeatResumeList)) { + List fullRepeatList = getRepeatResumeListByNameAndPhone(name, mobile); + if (CollectionUtils.isNotEmpty(fullRepeatList)) { + jlzfd = "0"; + } else { + jlzfd = "1"; + } + // 疑似重复简历 + param.put("yszfjl", StringUtils.join(repeatResumeList, ",")); + } else { + // 不重复 + jlzfd = "2"; } - // 新接收的简历为待分配 - if (ApplicationStatusEnum.DISTRIBUTION.getValue().equals(status)) { - Map sourceResume = repeatResumeList.get(0); - if (ApplicationStatusEnum.DISTRIBUTION.getValue().equals(Util.null2String(sourceResume.get("zt")))) { - // 当前存在待分配的简历 - sourceId = Util.null2String(sourceResume.get("id")); - //取新简历有值的字段,更新已入库简历没有值的字段,已入库简历有值的字段不做更新,新简历入库并隐藏 - mainId = updateSourceResume(param, sourceResume); - returnMap.put("mainId", mainId); - returnMap.put("sourceId", sourceId); - returnMap.put("isUpdate", true); - return returnMap; - } else { - // 直接入库,不做任何处理 - mainId = insertData(param); - returnMap.put("mainId", mainId); - return returnMap; - } - } else if (ApplicationStatusEnum.CANDIDATE.getValue().equals(status)) { - // 新简历为候选中 - boolean hasSamePosition = false; - for (Map sourceResume : repeatResumeList) { - if (positionId.equals(Util.null2String(sourceResume.get("ypzw")))) { - hasSamePosition = true; - } - } - if (hasSamePosition) { - // 若有相同职位的数据,新简历直接入库并隐藏 - mainId = insertHideData(param); - returnMap.put("mainId", mainId); - return returnMap; - } else { - // 没有相同职位的数据,新简历直接入库,不做任何处理 - mainId = insertData(param); - returnMap.put("mainId", mainId); - return returnMap; - } - } + param.put("jlzfd", jlzfd); + mainId = insertData(param); + returnMap.put("mainId", mainId); + return returnMap; } diff --git a/src/com/engine/recruit/service/impl/OfferServiceImpl.java b/src/com/engine/recruit/service/impl/OfferServiceImpl.java index 6d8c7a1..f8fde50 100644 --- a/src/com/engine/recruit/service/impl/OfferServiceImpl.java +++ b/src/com/engine/recruit/service/impl/OfferServiceImpl.java @@ -72,6 +72,9 @@ public class OfferServiceImpl extends Service implements OfferService { // 更新反馈状态、反馈时间 rs.executeUpdate("update uf_jcl_offer set zt = ?, fksj = ? where id = ? and dzyx = ?", status, DateUtil.getDateTime(), billId, email); + // TODO 更新应聘简历表状态 + + // 记录应聘过程 ApplicantRecordPo recordPo = ApplicantRecordPo.builder() .billId(String.valueOf(billId)) diff --git a/src/weaver/formmode/recruit/modeexpand/applicant/SendInterviewEmailExpand.java b/src/weaver/formmode/recruit/modeexpand/applicant/SendInterviewEmailExpand.java index acd8625..8f75839 100644 --- a/src/weaver/formmode/recruit/modeexpand/applicant/SendInterviewEmailExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/applicant/SendInterviewEmailExpand.java @@ -1,5 +1,6 @@ package weaver.formmode.recruit.modeexpand.applicant; +import cn.hutool.core.convert.Convert; import com.engine.recruit.util.RecruitMessageUtils; import com.weaver.formmodel.data.model.Formfield; import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew; @@ -39,15 +40,15 @@ public class SendInterviewEmailExpand extends AbstractModeExpandJavaCodeNew { Map result = new HashMap<>(); try { //数据id - int billId; + String billId; //模块id int modeId; RequestInfo requestInfo = (RequestInfo) params.get("RequestInfo"); User user = (User) params.get("user"); if (requestInfo != null) { - billId = Util.getIntValue(requestInfo.getRequestid()); + billId = requestInfo.getRequestid(); modeId = Util.getIntValue(requestInfo.getWorkflowid()); - if (billId > 0 && modeId > 0) { + if (Convert.toInt(billId, -1) > 0 && modeId > 0) { MainTableInfo mainTableInfo = requestInfo.getMainTableInfo(); Property[] properties = mainTableInfo.getProperty(); Map mainDataMap = new HashMap<>(16); @@ -68,6 +69,8 @@ public class SendInterviewEmailExpand extends AbstractModeExpandJavaCodeNew { Map> fieldMapList = fieldList.stream().collect(Collectors.groupingBy(Formfield::getLabelName)); // 发送邮件 String msgContent = RecruitModeUtil.getReplaceContent(tznr, fieldMapList, mainDataMap); + // 信息采集链接地址,替换应聘者,为当前表单的ID + msgContent.replace("{ypz}", billId); String yx = Util.null2String(mainDataMap.get("dzyx")); String offerAttach = RecruitModeUtil.getImageFileIdsByDocIds(Util.null2String(mainDataMap.get("tjkjyprysqb"))); RecruitMessageUtils.sendEmailWithFile(yx, emailTitle, msgContent, offerAttach);