From c331853c7ce88fdaf6f1870c58bd8e29ebaedcbd Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 4 Sep 2024 09:31:25 +0800 Subject: [PATCH] =?UTF-8?q?ADD-OCR=EF=BC=8C=E5=8D=83=E9=87=8C=E8=81=86?= =?UTF-8?q?=E7=AE=80=E5=8E=86=E6=95=B0=E6=8D=AE=EF=BC=8C=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E4=BA=BA=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../recruit/conn/CheckRepeatResume.java | 34 +++++++++---------- .../impl/ResumeRecognitionServiceImpl.java | 2 +- .../recruit/thread/SdkResumeSavedThread.java | 2 +- .../thread/ExtractQllResumeThread.java | 28 ++++++++++++++- 4 files changed, 46 insertions(+), 20 deletions(-) diff --git a/src/com/engine/recruit/conn/CheckRepeatResume.java b/src/com/engine/recruit/conn/CheckRepeatResume.java index a2aeca1..fe3ee68 100644 --- a/src/com/engine/recruit/conn/CheckRepeatResume.java +++ b/src/com/engine/recruit/conn/CheckRepeatResume.java @@ -95,8 +95,8 @@ public class CheckRepeatResume { * @param param 数据集合 * @return 新插入简历的ID */ - public int insertResumeMainTable(Map param) { - Map map = insertResumeAndReturn(param); + public int insertResumeMainTable(int creator, Map param) { + Map map = insertResumeAndReturn(creator, param); return Util.getIntValue(Util.null2String(map.get("mainId"))); } @@ -142,7 +142,7 @@ public class CheckRepeatResume { * @param param 数据集合 * @return 简历插入信息 */ - public synchronized Map insertResumeAndReturn(Map param) { + public synchronized Map insertResumeAndReturn(int creator, Map param) { Map returnMap = new HashMap<>(); int mainId = -1; String sourceId; @@ -163,7 +163,7 @@ public class CheckRepeatResume { List> repeatResumeList = getRepeatResumeList(name, mobile); if (CollectionUtils.isEmpty(repeatResumeList)) { // 不存在重复数据,直接插入数据库 - mainId = insertData(param); + mainId = insertData(creator, param); returnMap.put("mainId", mainId); return returnMap; } @@ -175,14 +175,14 @@ public class CheckRepeatResume { // 当前存在待分配的简历 sourceId = Util.null2String(sourceResume.get("id")); //取新简历有值的字段,更新已入库简历没有值的字段,已入库简历有值的字段不做更新,新简历入库并隐藏 - mainId = updateSourceResume(param, sourceResume); + mainId = updateSourceResume(creator, param, sourceResume); returnMap.put("mainId", mainId); returnMap.put("sourceId", sourceId); returnMap.put("isUpdate", true); return returnMap; } else { // 直接入库,不做任何处理 - mainId = insertData(param); + mainId = insertData(creator, param); returnMap.put("mainId", mainId); return returnMap; } @@ -196,12 +196,12 @@ public class CheckRepeatResume { } if (hasSamePosition) { // 若有相同职位的数据,新简历直接入库并隐藏 - mainId = insertHideData(param); + mainId = insertHideData(creator, param); returnMap.put("mainId", mainId); return returnMap; } else { // 没有相同职位的数据,新简历直接入库,不做任何处理 - mainId = insertData(param); + mainId = insertData(creator, param); returnMap.put("mainId", mainId); return returnMap; } @@ -216,14 +216,14 @@ public class CheckRepeatResume { * @param dataMap 数据集合 * @return */ - private int insertData(Map dataMap) { + private int insertData(int creator, Map dataMap) { String uuid = UUID.randomUUID().toString(); dataMap.put("modeuuid", uuid); int formModeId = ApplicantCommonInfo.getModeIdByTableName("uf_jcl_yppc"); dataMap.put("formmodeid", formModeId); - RecruitRecordSet.buildModeInsertFields(dataMap, 1); + RecruitRecordSet.buildModeInsertFields(dataMap, creator); RecruitRecordSet.insertData(dataMap, "uf_jcl_yppc"); - return RecruitRecordSet.refreshRight(uuid, "uf_jcl_yppc", formModeId, 1); + return RecruitRecordSet.refreshRight(uuid, "uf_jcl_yppc", formModeId, creator); } /** @@ -232,11 +232,11 @@ public class CheckRepeatResume { * @param dataMap 数据集合 * @return */ - private int insertHideData(Map dataMap) { + private int insertHideData(int creator, Map dataMap) { String uuid = UUID.randomUUID().toString(); dataMap.put("modeuuid", uuid); RecordSet rs = new RecordSet(); - RecruitRecordSet.buildModeInsertFields(dataMap, 1); + RecruitRecordSet.buildModeInsertFields(dataMap, creator); RecruitRecordSet.insertData(dataMap, "uf_jcl_yppc"); rs.executeQuery("select id from uf_jcl_yppc where modeuuid='" + uuid + "'"); if (rs.next()) { @@ -252,16 +252,16 @@ public class CheckRepeatResume { * @param sourceResume 源简历数据集合 * @return */ - private int updateSourceResume(Map param, Map sourceResume) { + private int updateSourceResume(int creator, Map param, Map sourceResume) { replaceNullValues(param, sourceResume); // 更新投递时间为最新的 by zsy 20240704 待分配的投递时间要根据最新的去更新 sourceResume.put("tdsj", DateUtil.getDateTime()); // 处理操作人员、操作时间 - RecruitRecordSet.buildModeUpdateFields(sourceResume, 1); + RecruitRecordSet.buildModeUpdateFields(sourceResume, creator); RecruitRecordSet.updateDataById(sourceResume, "uf_jcl_yppc"); // 更新数据 - RecruitRecordSet.buildModeInsertFields(param, 1); - return insertHideData(param); + RecruitRecordSet.buildModeInsertFields(param, creator); + return insertHideData(creator, param); } diff --git a/src/com/engine/recruit/service/impl/ResumeRecognitionServiceImpl.java b/src/com/engine/recruit/service/impl/ResumeRecognitionServiceImpl.java index ac063bd..9e52106 100644 --- a/src/com/engine/recruit/service/impl/ResumeRecognitionServiceImpl.java +++ b/src/com/engine/recruit/service/impl/ResumeRecognitionServiceImpl.java @@ -91,7 +91,7 @@ public class ResumeRecognitionServiceImpl extends Service implements ResumeRecog // 判断简历信息 CheckRepeatResume instance = CheckRepeatResume.getInstance(); - Map map = instance.insertResumeAndReturn(resumeData); + Map map = instance.insertResumeAndReturn(user.getUID(), resumeData); String mainId = Util.null2String(map.get("mainId")); String sourceId = Util.null2String(map.get("sourceId")); returnMap.put("mainId", mainId); diff --git a/src/com/engine/recruit/thread/SdkResumeSavedThread.java b/src/com/engine/recruit/thread/SdkResumeSavedThread.java index 88a202f..d17e12d 100644 --- a/src/com/engine/recruit/thread/SdkResumeSavedThread.java +++ b/src/com/engine/recruit/thread/SdkResumeSavedThread.java @@ -114,7 +114,7 @@ public class SdkResumeSavedThread extends LocalRunnable { // 判断简历是否重复,插入主表 CheckRepeatResume instance = CheckRepeatResume.getInstance(); - Map checkMap = instance.insertResumeAndReturn(params); + Map checkMap = instance.insertResumeAndReturn(1, params); String mainId = Util.null2String(checkMap.get("mainId")); String sourceId = Util.null2String(checkMap.get("sourceId")); diff --git a/src/weaver/interfaces/recruit/thread/ExtractQllResumeThread.java b/src/weaver/interfaces/recruit/thread/ExtractQllResumeThread.java index cc8dfa5..9d064c1 100644 --- a/src/weaver/interfaces/recruit/thread/ExtractQllResumeThread.java +++ b/src/weaver/interfaces/recruit/thread/ExtractQllResumeThread.java @@ -35,12 +35,19 @@ public class ExtractQllResumeThread extends Thread { for (Map map : mapList) { QllResumePo qllResumePo = RecruitUtil.parseMap2Object(map, QllResumePo.class); try { + String email = ""; + rs.executeQuery("select lyyx from uf_jcl_jlzjb where id = ? ", qllResumePo.getId()); + if (rs.next()) { + email = rs.getString("lyyx"); + } + int creator = getCreator(rs, qllResumePo.getGjrsjh(), email); + qllResumePo.setUserId(creator); baseBean.writeLog("千里聆简历解析开始,中间表ID=【" + qllResumePo.getId() + "】"); RecruitDataMap dataMap = buildApplicantMap(qllResumePo); baseBean.writeLog("千里聆简历主表数据解析完成==" + JSON.toJSONString(dataMap)); // 校验简历信息、并插入 CheckRepeatResume instance = CheckRepeatResume.getInstance(); - Map checkMap = instance.insertResumeAndReturn(dataMap); + Map checkMap = instance.insertResumeAndReturn(creator, dataMap); String mainId = Util.null2String(checkMap.get("mainId")); String sourceId = Util.null2String(checkMap.get("sourceId")); baseBean.writeLog("千里聆简历主表数据插入完成,mainId==【" + mainId + "】,sourceId==【" + sourceId + "】"); @@ -120,4 +127,23 @@ public class ExtractQllResumeThread extends Thread { } + private int getCreator(RecordSet rs, String phone, String email) { + int uid = 1; + if (StringUtils.isNotBlank(phone)) { + rs.executeQuery("select id from hrmresource where mobile = ?", phone); + if (rs.next()) { + uid = Math.max(uid, rs.getInt("id")); + } + } + + if (StringUtils.isNotBlank(email)) { + rs.executeQuery("select id from hrmresource where email = ?", email); + if (rs.next()) { + uid = Math.max(uid, rs.getInt("id")); + } + } + + return uid; + } + }