diff --git a/WEB-INF/lib/rpa-sso-sdk-1.1.10.release.jar b/WEB-INF/lib/rpa-sso-sdk-1.1.11.release.jar similarity index 65% rename from WEB-INF/lib/rpa-sso-sdk-1.1.10.release.jar rename to WEB-INF/lib/rpa-sso-sdk-1.1.11.release.jar index 51b37e1..443bee9 100644 Binary files a/WEB-INF/lib/rpa-sso-sdk-1.1.10.release.jar and b/WEB-INF/lib/rpa-sso-sdk-1.1.11.release.jar differ diff --git a/src/com/engine/recruit/entity/position/PositionSdkInstance.java b/src/com/engine/recruit/entity/position/PositionSdkInstance.java new file mode 100644 index 0000000..7ca1cb1 --- /dev/null +++ b/src/com/engine/recruit/entity/position/PositionSdkInstance.java @@ -0,0 +1,200 @@ +package com.engine.recruit.entity.position; + +import com.alibaba.fastjson.JSON; +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 weaver.formmode.recruit.modeexpand.util.RecruitPositionUtil; +import weaver.general.BaseBean; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author:dxfeng + * @createTime: 2024/05/27 + * @version: 1.0 + */ +public class PositionSdkInstance { + private ERPAResumeSDKClient resumeSDKClient; + // 职位类型 + private List boss_type; + private List liepin_type; + private List lagou_type; + private List job51_type; + private List zhilian_type; + + // BOSS直聘 是否外驻 + private List boss_resident; + private List boss_resident_country; + private List boss_resident_language; + private List boss_resident_time; + private List boss_resident_time_2; + + // 前程无忧-发布城市 + private List job51_city; + // 前程无忧-所属行业 + private List job51_industry; + + + private static volatile PositionSdkInstance positionSdkInstance; + + private PositionSdkInstance() { + + } + + + public static PositionSdkInstance getPositionSdkInstance() { + if (positionSdkInstance == null) { + synchronized (PositionSdkInstance.class) { + if (positionSdkInstance == null) { + ERPAResumeSDKClient client = ERPASDKClients.getResumeSDKClient(); + 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()); + + 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()); + } + } + } + return positionSdkInstance; + } + + + public ERPAResumeSDKClient getResumeSDKClient() { + return resumeSDKClient; + } + + public void setResumeSDKClient(ERPAResumeSDKClient resumeSDKClient) { + this.resumeSDKClient = resumeSDKClient; + } + + public List getBoss_type() { + return boss_type; + } + + public void setBoss_type(List boss_type) { + this.boss_type = boss_type; + } + + public List getLiepin_type() { + return liepin_type; + } + + public void setLiepin_type(List liepin_type) { + this.liepin_type = liepin_type; + } + + public List getLagou_type() { + return lagou_type; + } + + public void setLagou_type(List lagou_type) { + this.lagou_type = lagou_type; + } + + public List getJob51_type() { + return job51_type; + } + + public void setJob51_type(List job51_type) { + this.job51_type = job51_type; + } + + public List getZhilian_type() { + return zhilian_type; + } + + public void setZhilian_type(List zhilian_type) { + this.zhilian_type = zhilian_type; + } + + public List getBoss_resident() { + return boss_resident; + } + + public void setBoss_resident(List boss_resident) { + this.boss_resident = boss_resident; + } + + public List getBoss_resident_country() { + return boss_resident_country; + } + + public void setBoss_resident_country(List boss_resident_country) { + this.boss_resident_country = boss_resident_country; + } + + public List getBoss_resident_language() { + return boss_resident_language; + } + + public void setBoss_resident_language(List boss_resident_language) { + this.boss_resident_language = boss_resident_language; + } + + public List getBoss_resident_time() { + return boss_resident_time; + } + + public void setBoss_resident_time(List boss_resident_time) { + this.boss_resident_time = boss_resident_time; + } + + public List getBoss_resident_time_2() { + return boss_resident_time_2; + } + + public void setBoss_resident_time_2(List boss_resident_time_2) { + this.boss_resident_time_2 = boss_resident_time_2; + } + + public List getJob51_city() { + return job51_city; + } + + public void setJob51_city(List job51_city) { + this.job51_city = job51_city; + } + + public List getJob51_industry() { + return job51_industry; + } + + public void setJob51_industry(List job51_industry) { + this.job51_industry = job51_industry; + } +} diff --git a/src/com/engine/recruit/entity/position/PositionSelectItem.java b/src/com/engine/recruit/entity/position/PositionSelectItem.java new file mode 100644 index 0000000..f837d58 --- /dev/null +++ b/src/com/engine/recruit/entity/position/PositionSelectItem.java @@ -0,0 +1,51 @@ +package com.engine.recruit.entity.position; + +import com.weaver.rpa.sdk.clients.application.resume.entity.ResumeJobDynamicField; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * 千里聆职位动态字段,转换为多选下拉框数据格式 + * + * @author:dxfeng + * @createTime: 2024/05/22 + * @version: 1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PositionSelectItem { + private String key; + private String showname; + private boolean selected; + + public static Set convertDynamicFieldItem(List dynamicFieldItemList) { + Set list = new LinkedHashSet<>(); + for (ResumeJobDynamicField.Item item : dynamicFieldItemList) { + PositionSelectItem positionSelectItem = new PositionSelectItem(); + positionSelectItem.setShowname(item.getLabel()); + try { + double parseDouble = Double.parseDouble(item.getValue()); + positionSelectItem.setKey(String.valueOf((int) parseDouble)); + } catch (Exception e) { + positionSelectItem.setKey(item.getValue()); + } + list.add(positionSelectItem); + } + return list; + } + + public static ResumeJobDynamicField.Item getItemByValue(List dynamicFieldItemList, String value) { + return dynamicFieldItemList.stream().filter(item -> (String.valueOf((int) Double.parseDouble(item.getValue())).equals(value))).findFirst().orElse(null); + } + + public static List getItemsByValues(List dynamicFieldItemList, String value) { + String[] split = value.split(","); + List valueList = Arrays.asList(split); + return dynamicFieldItemList.stream().filter(item -> valueList.contains(String.valueOf((int) Double.parseDouble(item.getValue())))).distinct().collect(Collectors.toList()); + } +} diff --git a/src/com/engine/recruit/service/impl/RecruitPositionServiceImpl.java b/src/com/engine/recruit/service/impl/RecruitPositionServiceImpl.java index 5b1b3cb..b3dd91d 100644 --- a/src/com/engine/recruit/service/impl/RecruitPositionServiceImpl.java +++ b/src/com/engine/recruit/service/impl/RecruitPositionServiceImpl.java @@ -1,11 +1,11 @@ package com.engine.recruit.service.impl; import com.engine.core.impl.Service; +import com.engine.recruit.entity.position.PositionSdkInstance; +import com.engine.recruit.entity.position.PositionSelectItem; import com.engine.recruit.exception.CustomizeRunTimeException; import com.engine.recruit.service.RecruitPositionService; -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.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; @@ -46,22 +46,27 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi String selectValue = Util.null2String(param.get("selectValue")); - ERPAResumeSDKClient client = ERPASDKClients.getResumeSDKClient(); - ResumeJobDynamicField resumeJobDynamicField = client.getResumeJobDynamicField(); + PositionSdkInstance positionSdkInstance = PositionSdkInstance.getPositionSdkInstance(); // 获取职位类别表单 if ("positionType".equals(conditionType)) { String dsfqd = Util.null2String(param.get("dsfqd")); - getPositionType(dsfqd, selectValue, apidatas, resumeJobDynamicField); + getPositionType(dsfqd, selectValue, apidatas, positionSdkInstance); } // 前程无忧-发布城市 if ("job51City".equals(conditionType)) { - getCityType(selectValue, apidatas, resumeJobDynamicField); + getCityType(selectValue, apidatas, positionSdkInstance); } + // 前程无忧-所属行业 if ("industryType".equals(conditionType)) { - getIndustryType(selectValue, apidatas, resumeJobDynamicField); + getIndustryType(selectValue, apidatas, positionSdkInstance); + } + + // BOSS直聘-是否驻外 + if ("multiSelect".equals(conditionType)) { + getMultiSelect(apidatas, positionSdkInstance); } return apidatas; } @@ -72,9 +77,9 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi * @param dsfqd * @param selectValue * @param apidatas - * @param resumeJobDynamicField + * @param positionSdkInstance */ - private void getPositionType(String dsfqd, String selectValue, Map apidatas, ResumeJobDynamicField resumeJobDynamicField) { + private void getPositionType(String dsfqd, String selectValue, Map apidatas, PositionSdkInstance positionSdkInstance) { String[] split = selectValue.split("#"); Map selectValueMap = new HashMap<>(); for (String s : split) { @@ -100,30 +105,30 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi boolean job51Show = false; boolean zhilianShow = false; if (dsfqd.contains("0")) { - List boss_type = (List) resumeJobDynamicField.getBoss_type(); + List boss_type = positionSdkInstance.getBoss_type(); apidatas.put("boss", boss_type); bossShow = true; } if (dsfqd.contains("4")) { - List liepin_type = (List) resumeJobDynamicField.getLiepin_type(); + List liepin_type = positionSdkInstance.getLiepin_type(); apidatas.put("liepin", liepin_type); liepinShow = true; } if (dsfqd.contains("3")) { - List lagou_type = (List) resumeJobDynamicField.getLagou_type(); + List lagou_type = positionSdkInstance.getLagou_type(); apidatas.put("lagou", lagou_type); lagouShow = true; } if (dsfqd.contains("2")) { - List job51_type = (List) resumeJobDynamicField.getJob51_type(); + List job51_type = positionSdkInstance.getJob51_type(); apidatas.put("job51", job51_type); job51Show = true; } if (dsfqd.contains("1")) { - List zhilian_type = (List) resumeJobDynamicField.getZhilian_type(); + List zhilian_type = positionSdkInstance.getZhilian_type(); apidatas.put("zhilian", zhilian_type); zhilianShow = true; } @@ -139,16 +144,16 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi * * @param selectValue * @param apidatas - * @param resumeJobDynamicField + * @param positionSdkInstance */ - private void getCityType(String selectValue, Map apidatas, ResumeJobDynamicField resumeJobDynamicField) { + private void getCityType(String selectValue, Map apidatas, PositionSdkInstance positionSdkInstance) { List valueList = new ArrayList<>(); if (StringUtils.isNotBlank(selectValue)) { String[] split = selectValue.split(","); valueList = Arrays.asList(split); } - List job51_city = (List) resumeJobDynamicField.getJob51_city(); + List job51_city = positionSdkInstance.getJob51_city(); apidatas.put("job51_city", job51_city); apidatas.put("job51CityValue", valueList); } @@ -158,9 +163,9 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi * * @param selectValue * @param apidatas - * @param resumeJobDynamicField + * @param positionSdkInstance */ - private void getIndustryType(String selectValue, Map apidatas, ResumeJobDynamicField resumeJobDynamicField) { + private void getIndustryType(String selectValue, Map apidatas, PositionSdkInstance positionSdkInstance) { List> valueList = new ArrayList<>(); if (StringUtils.isNotBlank(selectValue)) { String[] split = selectValue.split("#"); @@ -170,8 +175,24 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi } } - List job51_industry = (List) resumeJobDynamicField.getJob51_industry_txt(); + List job51_industry = positionSdkInstance.getJob51_industry(); apidatas.put("job51_industry", job51_industry); apidatas.put("job51IndustryValue", valueList); } + + + /** + * 获取招聘职位,多线下拉框字段信息 + * + * @param apidatas + * @param positionSdkInstance + */ + private void getMultiSelect(Map apidatas, PositionSdkInstance positionSdkInstance) { + apidatas.put("boss_resident", PositionSelectItem.convertDynamicFieldItem(positionSdkInstance.getBoss_resident())); + apidatas.put("boss_resident_country", PositionSelectItem.convertDynamicFieldItem(positionSdkInstance.getBoss_resident_country())); + apidatas.put("boss_resident_language", PositionSelectItem.convertDynamicFieldItem(positionSdkInstance.getBoss_resident_language())); + apidatas.put("boss_resident_time", PositionSelectItem.convertDynamicFieldItem(positionSdkInstance.getBoss_resident_time())); + apidatas.put("boss_resident_time_2", PositionSelectItem.convertDynamicFieldItem(positionSdkInstance.getBoss_resident_time_2())); + apidatas.put("job51_city", PositionSelectItem.convertDynamicFieldItem(positionSdkInstance.getJob51_city())); + } } diff --git a/src/com/engine/recruit/service/impl/RpaJclServiceImpl.java b/src/com/engine/recruit/service/impl/RpaJclServiceImpl.java index 6eeb14c..15ece29 100644 --- a/src/com/engine/recruit/service/impl/RpaJclServiceImpl.java +++ b/src/com/engine/recruit/service/impl/RpaJclServiceImpl.java @@ -2,11 +2,11 @@ package com.engine.recruit.service.impl; import com.engine.core.impl.Service; import com.engine.recruit.conn.RecruitRecordSet; +import com.engine.recruit.entity.position.PositionSdkInstance; import com.engine.recruit.exception.CustomizeRunTimeException; import com.engine.recruit.service.RpaJclService; import com.weaver.rpa.sdk.clients.application.resume.ERPAResumeSDKClient; import com.weaver.rpa.sdk.clients.application.resume.entity.ResumeEmailSetting; -import com.weaver.rpa.sdk.clients.core.ERPASDKClients; import weaver.conn.RecordSet; import weaver.general.Util; @@ -26,7 +26,7 @@ public class RpaJclServiceImpl extends Service implements RpaJclService { rs.executeQuery("select * from uf_jcl_qllyxpz where id = ? ", billId); Map dataMap = RecruitRecordSet.getSingleRecordMap(rs); - ERPAResumeSDKClient resumeSDKClient = ERPASDKClients.getResumeSDKClient(); + ERPAResumeSDKClient resumeSDKClient = PositionSdkInstance.getPositionSdkInstance().getResumeSDKClient(); String userId = Util.null2String(dataMap.get("szr")); String status = Util.null2String(dataMap.get("zt")); String server = Util.null2String(dataMap.get("yjjsfwq")); diff --git a/src/com/engine/recruit/thread/SdkResumeSavedThread.java b/src/com/engine/recruit/thread/SdkResumeSavedThread.java index a87ee59..ebad661 100644 --- a/src/com/engine/recruit/thread/SdkResumeSavedThread.java +++ b/src/com/engine/recruit/thread/SdkResumeSavedThread.java @@ -7,11 +7,11 @@ import com.engine.recruit.conn.CheckRepeatResume; import com.engine.recruit.conn.PositionCommonInfo; import com.engine.recruit.conn.RecruitDataMap; import com.engine.recruit.constant.RecruitConstant; +import com.engine.recruit.entity.position.PositionSdkInstance; import com.engine.recruit.enums.ApplicationStatusEnum; import com.engine.recruit.enums.CommonBrowserTypeEnum; import com.engine.recruit.enums.HighestDegreeEnum; import com.weaver.rpa.sdk.clients.application.resume.ERPAResumeSDKClient; -import com.weaver.rpa.sdk.clients.core.ERPASDKClients; import com.weaver.util.threadPool.entity.LocalRunnable; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -212,15 +212,7 @@ public class SdkResumeSavedThread extends LocalRunnable { BaseBean baseBean = new BaseBean(); baseBean.writeLog("解析千里聆SDK原始简历,resumeFileId===" + resumeFileId); List docIdList = new ArrayList<>(); - ERPAResumeSDKClient client = ERPASDKClients.getResumeSDKClient(); - // 在启动监听前需要配置好简历接收回调 - client.addResumeSavedListener(resumeMqMessage -> { - // 处理获取到的简历信息 - baseBean.writeLog("【简历接收回调】:" + JSON.toJSONString(resumeMqMessage)); - Thread thread = new Thread(new SdkResumeSavedThread(resumeMqMessage)); - thread.start(); - }); - client.start(); + ERPAResumeSDKClient client = PositionSdkInstance.getPositionSdkInstance().getResumeSDKClient(); client.downloadResumeFile(resumeFileId, (fileName, stream) -> { try { baseBean.writeLog("解析千里聆SDK原始简历,fileName===" + fileName); diff --git a/src/weaver/formmode/recruit/modeexpand/position/ClosePositionModeExpand.java b/src/weaver/formmode/recruit/modeexpand/position/ClosePositionModeExpand.java index 63898d5..1b16137 100644 --- a/src/weaver/formmode/recruit/modeexpand/position/ClosePositionModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/position/ClosePositionModeExpand.java @@ -1,9 +1,7 @@ package weaver.formmode.recruit.modeexpand.position; -import com.alibaba.fastjson.JSON; -import com.engine.recruit.thread.SdkResumeSavedThread; +import com.engine.recruit.entity.position.PositionSdkInstance; import com.weaver.rpa.sdk.clients.application.resume.ERPAResumeSDKClient; -import com.weaver.rpa.sdk.clients.core.ERPASDKClients; import com.weaver.rpa.sdk.clients.core.entity.SDKCore; import com.weaver.rpa.sdk.clients.core.utils.ERPASDKInitUtils; import org.apache.commons.lang3.StringUtils; @@ -57,15 +55,16 @@ public class ClosePositionModeExpand extends AbstractModeExpandJavaCodeNew { return resultMap; } long jobId = Long.parseLong(qllgwid); - ERPAResumeSDKClient client = ERPASDKClients.getResumeSDKClient(); - // 在启动监听前需要配置好简历接收回调 - client.addResumeSavedListener(resumeMqMessage -> { - // 处理获取到的简历信息 - baseBean.writeLog("【简历接收回调】:" + JSON.toJSONString(resumeMqMessage)); - Thread thread = new Thread(new SdkResumeSavedThread(resumeMqMessage)); - thread.start(); - }); - client.start(); + ERPAResumeSDKClient client = PositionSdkInstance.getPositionSdkInstance().getResumeSDKClient(); + + //// 在启动监听前需要配置好简历接收回调 + //client.addResumeSavedListener(resumeMqMessage -> { + // // 处理获取到的简历信息 + // baseBean.writeLog("【简历接收回调】:" + JSON.toJSONString(resumeMqMessage)); + // Thread thread = new Thread(new SdkResumeSavedThread(resumeMqMessage)); + // thread.start(); + //}); + //client.start(); String userId = String.valueOf(user.getUID()); ResumeTaskResult result = client.closeResumeJob(userId, jobId); String errorMsg = ""; diff --git a/src/weaver/formmode/recruit/modeexpand/position/ReleasePositionModeExpand.java b/src/weaver/formmode/recruit/modeexpand/position/ReleasePositionModeExpand.java index 9909265..2723a56 100644 --- a/src/weaver/formmode/recruit/modeexpand/position/ReleasePositionModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/position/ReleasePositionModeExpand.java @@ -1,10 +1,9 @@ package weaver.formmode.recruit.modeexpand.position; import com.alibaba.fastjson.JSON; -import com.engine.recruit.thread.SdkResumeSavedThread; +import com.engine.recruit.entity.position.PositionSdkInstance; import com.weaver.rpa.sdk.clients.application.resume.ERPAResumeSDKClient; import com.weaver.rpa.sdk.clients.application.resume.entity.ResumeJobV2Dto; -import com.weaver.rpa.sdk.clients.core.ERPASDKClients; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import weaver.conn.RecordSet; @@ -54,7 +53,7 @@ public class ReleasePositionModeExpand extends AbstractModeExpandJavaCodeNew { jobId = Long.parseLong(qllgwid); } } - ERPAResumeSDKClient client = ERPASDKClients.getResumeSDKClient(); + ERPAResumeSDKClient client = PositionSdkInstance.getPositionSdkInstance().getResumeSDKClient(); Map map = new HashMap<>(16); MainTableInfo mainTableInfo = requestInfo.getMainTableInfo(); Property[] properties = mainTableInfo.getProperty(); @@ -63,12 +62,12 @@ public class ReleasePositionModeExpand extends AbstractModeExpandJavaCodeNew { } ResumeJobV2Dto resumeJobDto = RecruitPositionUtil.convertMap2ResumeJobV2Dto(user,map); // 发布千里聆职位 - if (!RecruitPositionUtil.checkAvailable(client)) { - baseBean.writeLog("千里聆未开通简历应用。"); - resultMap.put("errmsg", "千里聆未开通简历应用。"); - resultMap.put("flag", "false"); - return resultMap; - } + //if (!RecruitPositionUtil.checkAvailable(client)) { + // baseBean.writeLog("千里聆未开通简历应用。"); + // resultMap.put("errmsg", "千里聆未开通简历应用。"); + // resultMap.put("flag", "false"); + // return resultMap; + //} String userId = String.valueOf(user.getUID()); // 未创建职位,则先创建职位 if (jobId == -1) { @@ -87,16 +86,16 @@ public class ReleasePositionModeExpand extends AbstractModeExpandJavaCodeNew { }); } - // 在启动监听前需要配置好简历接收回调 - client.addResumeSavedListener(resumeMqMessage -> { - // 处理获取到的简历信息 - baseBean.writeLog("【简历接收回调】:" + JSON.toJSONString(resumeMqMessage)); - Thread thread = new Thread(new SdkResumeSavedThread(resumeMqMessage)); - thread.start(); - }); - - - client.start(); + //// 在启动监听前需要配置好简历接收回调 + //client.addResumeSavedListener(resumeMqMessage -> { + // // 处理获取到的简历信息 + // baseBean.writeLog("【简历接收回调】:" + JSON.toJSONString(resumeMqMessage)); + // Thread thread = new Thread(new SdkResumeSavedThread(resumeMqMessage)); + // thread.start(); + //}); + // + // + //client.start(); List platformIds; platformIds = resumeJobDto.getPlatformList(); String errorMsg = ""; diff --git a/src/weaver/formmode/recruit/modeexpand/util/RecruitPositionUtil.java b/src/weaver/formmode/recruit/modeexpand/util/RecruitPositionUtil.java index e749721..ab58876 100644 --- a/src/weaver/formmode/recruit/modeexpand/util/RecruitPositionUtil.java +++ b/src/weaver/formmode/recruit/modeexpand/util/RecruitPositionUtil.java @@ -4,6 +4,8 @@ import cn.hutool.core.convert.Convert; import com.alibaba.fastjson.JSON; import com.engine.recruit.conn.ApplicantCommonInfo; import com.engine.recruit.conn.ModeBrowserCommonInfo; +import com.engine.recruit.entity.position.PositionSdkInstance; +import com.engine.recruit.entity.position.PositionSelectItem; import com.engine.recruit.enums.PositionThirdChannelEnum; import com.engine.recruit.exception.CustomizeRunTimeException; import com.weaver.rpa.sdk.clients.application.resume.ERPAResumeSDKClient; @@ -322,6 +324,37 @@ public class RecruitPositionUtil { } resumeJobV2Dto.setZwfl(zwflList); + PositionSdkInstance positionSdkInstance = PositionSdkInstance.getPositionSdkInstance(); + // 是否驻外 + String sfzw = Util.null2String(map.get("sfzw")); + resumeJobV2Dto.setBossResident(PositionSelectItem.getItemByValue(positionSdkInstance.getBoss_resident(), sfzw)); + if (!"3".equals(sfzw)) { + // 驻外国家或地区 + String zwgjhdq = Util.null2String(map.get("zwgjhdq")); + resumeJobV2Dto.setBossResidentCountry(PositionSelectItem.getItemsByValues(positionSdkInstance.getBoss_resident_country(), zwgjhdq)); + // 驻外语言要求 + String zwyyyq = Util.null2String(map.get("zwyyyq")); + resumeJobV2Dto.setBossResidentLanguage(PositionSelectItem.getItemsByValues(positionSdkInstance.getBoss_resident_language(), zwyyyq)); + // 驻外时长 + String zwsc = Util.null2String(map.get("zwsc")); + if ("1".equals(sfzw)) { + resumeJobV2Dto.setBossResidentTime(PositionSelectItem.getItemByValue(positionSdkInstance.getBoss_resident_time(), zwsc)); + } else { + resumeJobV2Dto.setBossResidentTime(PositionSelectItem.getItemByValue(positionSdkInstance.getBoss_resident_time_2(), zwsc)); + } + } + String zpzwfzr = Util.null2String(map.get("zpzwfzr")); + String zpxzr = Util.null2String(map.get("zpxzr")); + List userList = new ArrayList<>(); + if (StringUtils.isNotBlank(zpzwfzr)) { + userList.addAll(Arrays.asList(zpzwfzr.split(","))); + } + if (StringUtils.isNotBlank(zpxzr)) { + userList.addAll(Arrays.asList(zpxzr.split(","))); + } + + resumeJobV2Dto.setShareThirdUserList(userList); + return resumeJobV2Dto; } @@ -408,7 +441,8 @@ public class RecruitPositionUtil { } public static boolean checkAvailable(ERPAResumeSDKClient client) { - HttpClientUtils.setTimeout(10000);//默认10秒 + //默认10秒 + HttpClientUtils.setTimeout(10000); if (client == null || !client.available()) { new BaseBean().writeLog("checkAvailable!client=" + JSON.toJSONString(client)); return false;