From 4978d2efbfa3c75abd3f0aaf71a1dec3b4b495cb Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 23 May 2025 17:22:50 +0800 Subject: [PATCH 1/4] =?UTF-8?q?BUG=20=E4=BF=AE=E5=A4=8D=20=E6=97=A5?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../recruit/entity/resume/QllResumePo.java | 2 +- .../impl/InductionManageServiceImpl.java | 30 +++++++++++++++++++ .../action/RecruitFlowToModeAction.java | 9 +++--- 3 files changed, 35 insertions(+), 6 deletions(-) diff --git a/src/com/engine/recruit/entity/resume/QllResumePo.java b/src/com/engine/recruit/entity/resume/QllResumePo.java index 5fd04e4..67e55ab 100644 --- a/src/com/engine/recruit/entity/resume/QllResumePo.java +++ b/src/com/engine/recruit/entity/resume/QllResumePo.java @@ -207,6 +207,6 @@ public class QllResumePo { if (StringUtils.isBlank(str)) { return ""; } - return str.replaceAll("[\\pC]", "").replace("\\n", "\n").replace("\\r", ""); + return str.replaceAll("[\\pC]", "").replace("\\n", "\n").replace("\\r", "").replace("
","\n"); } } diff --git a/src/com/engine/recruit/service/impl/InductionManageServiceImpl.java b/src/com/engine/recruit/service/impl/InductionManageServiceImpl.java index 74fb0fc..444f3cc 100644 --- a/src/com/engine/recruit/service/impl/InductionManageServiceImpl.java +++ b/src/com/engine/recruit/service/impl/InductionManageServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.recruit.service.impl; +import com.alibaba.fastjson.JSON; import com.engine.core.impl.Service; import com.engine.recruit.conn.ApplicantCommonInfo; import com.engine.recruit.conn.RecruitDataMap; @@ -79,6 +80,8 @@ public class InductionManageServiceImpl extends Service implements InductionMana // 查询当前数据字段值 rs.executeQuery("select * from uf_jcl_rzgl where id = ? ", billId); Map mainDataMap = RecruitRecordSet.getSingleRecordMap(rs); + rs.writeLog("billid==" + billId); + rs.writeLog("mainDataMap==" + JSON.toJSONString(mainDataMap)); // 根据入职管理信息完善信息采集表单 @@ -97,6 +100,8 @@ public class InductionManageServiceImpl extends Service implements InductionMana dataMap.put("yx", RecruitModeUtil.parseBlankToNull(mainDataMap.get("dzyx"))); String xxcjid = Util.null2String(mainDataMap.get("xxcjid")); + rs.writeLog("xxcjid==" + xxcjid); + String password = ""; // 已发送信息采集通知的可以继续发送邮件通知,沿用原先的账号、密码 if (StringUtils.isNotBlank(xxcjid)) { @@ -106,11 +111,17 @@ public class InductionManageServiceImpl extends Service implements InductionMana password = rs.getString("mm"); mainDataMap.put("sjhm", RecruitModeUtil.parseBlankToNull(rs.getString("sjh"))); } + rs.writeLog("password-old==" + password); + rs.writeLog("mainDataMap==" + JSON.toJSONString(mainDataMap)); + + } // 如果密码为空,则创建信息采集数据 if (StringUtils.isBlank(password)) { // 生成登录密码 password = generatePassword(); + rs.writeLog("password-new==" + password); + dataMap.put("mm", password); dataMap.put("modedatastatus", "1"); @@ -121,6 +132,10 @@ public class InductionManageServiceImpl extends Service implements InductionMana xxcjid = String.valueOf(id); // 更新状态为已发送,反填信息采集ID rs.executeUpdate("update uf_jcl_rzgl set xxcj = ? ,xxcjid = ? where id = ? ", InfoCollectEnum.HAS_SENT.getId(), id, billId); + + rs.writeLog("dataMap==" + JSON.toJSONString(dataMap)); + rs.writeLog("xxcjid==" + xxcjid); + } String smsContent; @@ -131,17 +146,23 @@ public class InductionManageServiceImpl extends Service implements InductionMana String messageLink = RecruitConstant.COLLECT_MESSAGE_LINK; //messageLink += "&billId=" + id; + rs.writeLog("yjnr[替换前]==" + yjnr); yjnr = yjnr.replace("{初始密码}", password); + rs.writeLog("yjnr[替换后]==" + yjnr); + smsContent = yjnr.replace("{链接地址}", messageLink); smsContent = RecruitModeUtil.getReplaceContent(smsContent, fieldMapList, mainDataMap); + rs.writeLog("smsContent==" + smsContent); + if (StringUtils.isNotBlank(messageLink)) { messageLink = "链接地址"; } emailContent = yjnr.replace("{链接地址}", messageLink); emailContent = RecruitModeUtil.getReplaceContent(emailContent, fieldMapList, mainDataMap); + rs.writeLog("emailContent==" + emailContent); // 发送邮件 RecruitMessageUtils.sendEmail(email, yjzt, emailContent); // 发送短信 @@ -199,23 +220,32 @@ public class InductionManageServiceImpl extends Service implements InductionMana String mobile = Util.null2String(param.get("mobile")); String pwd = Util.null2String(param.get("pwd")); rs.executeQuery("select id from uf_jcl_xxcj where sjh = ? and mm = ?", mobile, pwd); + rs.writeLog("mobile=="+mobile); + rs.writeLog("pwd=="+pwd); String xxcjId = ""; if (rs.next()) { xxcjId = rs.getString("id"); } else { throw new CustomizeRunTimeException("手机号或密码错误"); } + rs.writeLog("xxcjId=="+xxcjId); + // 校验当前链接的有效期 rs.executeQuery("select * from uf_jcl_rzgl where xxcjid = ? ", xxcjId); if (rs.next()) { // 当前关联入职已取消入职/已入职;点击提示当前链接已失效,且不可操作 String entryStatus = rs.getString("rzzt"); + rs.writeLog("entryStatus=="+entryStatus); + if ("1".equals(entryStatus) || "2".equals(entryStatus)) { throw new CustomizeRunTimeException("当前链接已失效"); } // 当前信息采集链接的地址默认有效期为发出日期~预计入职日期 String date = rs.getString("yjrzrq"); + rs.writeLog("date=="+date); + rs.writeLog("currentDate=="+DateUtil.getCurrentDate()); + int compDate = DateUtil.compDate(DateUtil.getCurrentDate(), date); if (compDate < 0) { throw new CustomizeRunTimeException("当前链接已失效"); diff --git a/src/weaver/interfaces/recruit/action/RecruitFlowToModeAction.java b/src/weaver/interfaces/recruit/action/RecruitFlowToModeAction.java index 8977e1a..5bc3f87 100644 --- a/src/weaver/interfaces/recruit/action/RecruitFlowToModeAction.java +++ b/src/weaver/interfaces/recruit/action/RecruitFlowToModeAction.java @@ -47,8 +47,6 @@ public class RecruitFlowToModeAction implements Action { @Override public String execute(RequestInfo requestInfo) { MainTableInfo mainTableInfo = requestInfo.getMainTableInfo(); - int billId = requestInfo.getRequestManager().getBillid(); - int formid = requestInfo.getRequestManager().getFormid(); User user = requestInfo.getRequestManager().getUser(); DetailTableInfo detailTableInfo = requestInfo.getDetailTableInfo(); @@ -58,6 +56,7 @@ public class RecruitFlowToModeAction implements Action { // 需求审批流程ID mainMap.put("xqsplc", requestInfo.getRequestid()); int formModeId = ApplicantCommonInfo.getModeIdByTableName(MODE_TABLE_NAME); + int formId = ApplicantCommonInfo.getFormIdByTableName(MODE_TABLE_NAME); Property[] propertyArray = mainTableInfo.getProperty(); for (Property property : propertyArray) { @@ -75,8 +74,7 @@ public class RecruitFlowToModeAction implements Action { mainMap.put("modedatacreatertype", "0"); Map messageMap = new HashMap<>(); - messageMap.put("billId", String.valueOf(billId)); - messageMap.put("formId", String.valueOf(formid)); + messageMap.put("formId", String.valueOf(formId)); messageMap.put("modeId", String.valueOf(formModeId)); List> insertList = new ArrayList<>(); @@ -105,7 +103,8 @@ public class RecruitFlowToModeAction implements Action { String uuid = UUID.randomUUID().toString(); objects.add(0, uuid); rst.executeUpdate(sql, objects); - RecruitRecordSet.refreshRight(uuid, MODE_TABLE_NAME, formModeId, requestInfo.getRequestManager().getCreater()); + int billid = RecruitRecordSet.refreshRight(uuid, MODE_TABLE_NAME, formModeId, requestInfo.getRequestManager().getCreater()); + messageMap.put("billId", String.valueOf(billid)); // 申请人ID String applicant = Util.null2String(map.get("sqr")); From 71cd6f6469f429bb94767a7a052ad799f1522d69 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 27 May 2025 13:50:13 +0800 Subject: [PATCH 2/4] =?UTF-8?q?offer=E7=9F=AD=E4=BF=A1BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../recruit/modeexpand/offer/CreateOfferModeExpand.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/weaver/formmode/recruit/modeexpand/offer/CreateOfferModeExpand.java b/src/weaver/formmode/recruit/modeexpand/offer/CreateOfferModeExpand.java index 2a026d2..5bfbaf1 100644 --- a/src/weaver/formmode/recruit/modeexpand/offer/CreateOfferModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/offer/CreateOfferModeExpand.java @@ -1,5 +1,6 @@ package weaver.formmode.recruit.modeexpand.offer; +import com.engine.recruit.conn.ApplicantCommonInfo; import com.engine.recruit.constant.RecruitConstant; import com.engine.recruit.enums.RecordOperateEnum; import com.engine.recruit.util.RecruitMessageUtils; @@ -67,7 +68,9 @@ public class CreateOfferModeExpand extends AbstractModeExpandJavaCodeNew { } if (sendSms) { String name = Util.null2String(mainDataMap.get("xm")); + name= ApplicantCommonInfo.getApplicantName(name); String positionName = Util.null2String(mainDataMap.get("zpzwmc")); + positionName=ApplicantCommonInfo.getApplicantPosition(positionName); String endDate = Util.null2String(mainDataMap.get("sxrq")); String companyId = Util.null2String(mainDataMap.get("rzgs")); //if (StringUtils.isAnyBlank(name, positionName, endDate, companyId)) { From 033ffbb75ba99332b7a1c6cd5620a3998a1c7a89 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 20 Jun 2025 11:10:03 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=A1=E6=81=AF=E9=87=87=E9=9B=86BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/InductionManageServiceImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/com/engine/recruit/service/impl/InductionManageServiceImpl.java b/src/com/engine/recruit/service/impl/InductionManageServiceImpl.java index 444f3cc..80ba1d7 100644 --- a/src/com/engine/recruit/service/impl/InductionManageServiceImpl.java +++ b/src/com/engine/recruit/service/impl/InductionManageServiceImpl.java @@ -139,20 +139,20 @@ public class InductionManageServiceImpl extends Service implements InductionMana } String smsContent; - String emailContent; + String emailContent = yjnr; // 发送短信 String mobile = Util.null2String(dataMap.get("sjh")); String email = Util.null2String(dataMap.get("yx")); String messageLink = RecruitConstant.COLLECT_MESSAGE_LINK; //messageLink += "&billId=" + id; - rs.writeLog("yjnr[替换前]==" + yjnr); + rs.writeLog("emailContent[替换前]==" + emailContent); - yjnr = yjnr.replace("{初始密码}", password); - rs.writeLog("yjnr[替换后]==" + yjnr); + emailContent = emailContent.replace("{初始密码}", password); + rs.writeLog("emailContent[替换后]==" + emailContent); - smsContent = yjnr.replace("{链接地址}", messageLink); + smsContent = emailContent.replace("{链接地址}", messageLink); smsContent = RecruitModeUtil.getReplaceContent(smsContent, fieldMapList, mainDataMap); rs.writeLog("smsContent==" + smsContent); @@ -160,7 +160,7 @@ public class InductionManageServiceImpl extends Service implements InductionMana if (StringUtils.isNotBlank(messageLink)) { messageLink = "链接地址"; } - emailContent = yjnr.replace("{链接地址}", messageLink); + emailContent = emailContent.replace("{链接地址}", messageLink); emailContent = RecruitModeUtil.getReplaceContent(emailContent, fieldMapList, mainDataMap); rs.writeLog("emailContent==" + emailContent); // 发送邮件 From b74f92b9ff945399c11230644b02d26b1f281862 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 6 Aug 2025 15:04:47 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=85=BC=E5=AE=B9SDK=E4=B8=BA=E7=A9=BA?= =?UTF-8?q?=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/position/PositionSdkInstance.java | 103 +++++++++--------- 1 file changed, 54 insertions(+), 49 deletions(-) diff --git a/src/com/engine/recruit/entity/position/PositionSdkInstance.java b/src/com/engine/recruit/entity/position/PositionSdkInstance.java index e9ab2cc..cf6ad4b 100644 --- a/src/com/engine/recruit/entity/position/PositionSdkInstance.java +++ b/src/com/engine/recruit/entity/position/PositionSdkInstance.java @@ -5,6 +5,7 @@ import com.engine.recruit.exception.CustomizeRunTimeException; import com.weaver.rpa.sdk.clients.application.resume.ERPAResumeSDKClient; import com.weaver.rpa.sdk.clients.application.resume.entity.ResumeJobDynamicField; import com.weaver.rpa.sdk.clients.core.ERPASDKClients; +import org.apache.commons.collections.CollectionUtils; import weaver.formmode.recruit.modeexpand.util.RecruitPositionUtil; import weaver.general.BaseBean; @@ -50,58 +51,62 @@ public class PositionSdkInstance { } - - public static PositionSdkInstance getPositionSdkInstance() { - if (positionSdkInstance == null) { + public static PositionSdkInstance getPositionSdkInstance() { + if (positionSdkInstance == null || CollectionUtils.isEmpty(positionSdkInstance.getBoss_type())) { synchronized (PositionSdkInstance.class) { - if (positionSdkInstance == null) { - ERPAResumeSDKClient client = null; - try { - client = ERPASDKClients.getResumeSDKClient(); - } catch (Exception e) { - new BaseBean().writeLog("client get resumeSDKClient failed!"); - } - if (!RecruitPositionUtil.checkAvailable(client)) { - throw new CustomizeRunTimeException("checkAvailable失败!千里聆SDK不可用"); - } - ResumeJobDynamicField resumeJobDynamicField = client.getResumeJobDynamicField(); - positionSdkInstance = new PositionSdkInstance(); - positionSdkInstance.setResumeSDKClient(client); - client.addResumeSavedListener(resumeMqMessage -> { - // 处理获取到的简历信息 - new BaseBean().writeLog("【简历接收回调】:" + JSON.toJSONString(resumeMqMessage)); - //Thread thread = new Thread(new SdkResumeSavedThread(resumeMqMessage)); - //thread.start(); - }); - client.start(); - positionSdkInstance.setBoss_resident(resumeJobDynamicField.getBoss_resident()); - // 去除千里聆返回的重复数据 - List boss_resident_country1 = resumeJobDynamicField.getBoss_resident_country(); - List collect = new ArrayList<>(boss_resident_country1.stream() - .collect(Collectors.toMap( - ResumeJobDynamicField.Item::getValue, - item -> item, - (existing, replacement) -> existing - )) - .values()); - positionSdkInstance.setBoss_resident_country(collect); - positionSdkInstance.setBoss_resident_language(resumeJobDynamicField.getBoss_resident_language()); - positionSdkInstance.setBoss_resident_time_2(resumeJobDynamicField.getBoss_resident_time_2()); - positionSdkInstance.setBoss_resident_time(resumeJobDynamicField.getBoss_resident_time()); + if (positionSdkInstance == null || CollectionUtils.isEmpty(positionSdkInstance.getBoss_type())) { + if (null == positionSdkInstance) { + ERPAResumeSDKClient client = null; + try { + client = ERPASDKClients.getResumeSDKClient(); + } catch (Exception e) { + new BaseBean().writeLog("client get resumeSDKClient failed!"); + } + if (!RecruitPositionUtil.checkAvailable(client)) { + throw new CustomizeRunTimeException("checkAvailable失败!千里聆SDK不可用"); + } - positionSdkInstance.setJob51_city(resumeJobDynamicField.getJob51_city()); - positionSdkInstance.setJob51_industry(resumeJobDynamicField.getJob51_industry_txt()); + positionSdkInstance = new PositionSdkInstance(); + positionSdkInstance.setResumeSDKClient(client); + client.addResumeSavedListener(resumeMqMessage -> { + // 处理获取到的简历信息 + new BaseBean().writeLog("【简历接收回调】:" + JSON.toJSONString(resumeMqMessage)); + //Thread thread = new Thread(new SdkResumeSavedThread(resumeMqMessage)); + //thread.start(); + }); + client.start(); + } + ResumeJobDynamicField resumeJobDynamicField = positionSdkInstance.getResumeSDKClient().getResumeJobDynamicField(); + if(CollectionUtils.isEmpty(positionSdkInstance.getBoss_resident())) { + positionSdkInstance.setBoss_resident(resumeJobDynamicField.getBoss_resident()); + // 去除千里聆返回的重复数据 + List boss_resident_country1 = resumeJobDynamicField.getBoss_resident_country(); + List collect = new ArrayList<>(boss_resident_country1.stream() + .collect(Collectors.toMap( + ResumeJobDynamicField.Item::getValue, + item -> item, + (existing, replacement) -> existing + )) + .values()); + positionSdkInstance.setBoss_resident_country(collect); + positionSdkInstance.setBoss_resident_language(resumeJobDynamicField.getBoss_resident_language()); + positionSdkInstance.setBoss_resident_time_2(resumeJobDynamicField.getBoss_resident_time_2()); + positionSdkInstance.setBoss_resident_time(resumeJobDynamicField.getBoss_resident_time()); - positionSdkInstance.setBoss_type(resumeJobDynamicField.getBoss_type()); - positionSdkInstance.setLiepin_type(resumeJobDynamicField.getLiepin_type()); - positionSdkInstance.setLagou_type(resumeJobDynamicField.getLagou_type()); - positionSdkInstance.setJob51_type(resumeJobDynamicField.getJob51_type()); - positionSdkInstance.setZhilian_type(resumeJobDynamicField.getZhilian_type()); - positionSdkInstance.setDxrcw_type(resumeJobDynamicField.getDxrcw_type()); - positionSdkInstance.setDxrcw_major(resumeJobDynamicField.getDxrcw_major()); - positionSdkInstance.setDxrcw_yydj(resumeJobDynamicField.getDxrcw_yydj()); - positionSdkInstance.setDxrcw_zdzc(resumeJobDynamicField.getDxrcw_zdzc()); - positionSdkInstance.setDxrcw_zwfl(resumeJobDynamicField.getDxrcw_zwfl()); + positionSdkInstance.setJob51_city(resumeJobDynamicField.getJob51_city()); + positionSdkInstance.setJob51_industry(resumeJobDynamicField.getJob51_industry_txt()); + + positionSdkInstance.setBoss_type(resumeJobDynamicField.getBoss_type()); + positionSdkInstance.setLiepin_type(resumeJobDynamicField.getLiepin_type()); + positionSdkInstance.setLagou_type(resumeJobDynamicField.getLagou_type()); + positionSdkInstance.setJob51_type(resumeJobDynamicField.getJob51_type()); + positionSdkInstance.setZhilian_type(resumeJobDynamicField.getZhilian_type()); + positionSdkInstance.setDxrcw_type(resumeJobDynamicField.getDxrcw_type()); + positionSdkInstance.setDxrcw_major(resumeJobDynamicField.getDxrcw_major()); + positionSdkInstance.setDxrcw_yydj(resumeJobDynamicField.getDxrcw_yydj()); + positionSdkInstance.setDxrcw_zdzc(resumeJobDynamicField.getDxrcw_zdzc()); + positionSdkInstance.setDxrcw_zwfl(resumeJobDynamicField.getDxrcw_zwfl()); + } } } }