diff --git a/WEB-INF/lib/hutool-all-5.7.22.jar b/WEB-INF/lib/hutool-all-5.7.22.jar deleted file mode 100644 index 6e34e44..0000000 Binary files a/WEB-INF/lib/hutool-all-5.7.22.jar and /dev/null differ diff --git a/WEB-INF/lib/rpa-sso-sdk-1.1.11.release.jar b/WEB-INF/lib/rpa-sso-sdk-1.1.13.release.jar similarity index 59% rename from WEB-INF/lib/rpa-sso-sdk-1.1.11.release.jar rename to WEB-INF/lib/rpa-sso-sdk-1.1.13.release.jar index 443bee9..412a887 100644 Binary files a/WEB-INF/lib/rpa-sso-sdk-1.1.11.release.jar and b/WEB-INF/lib/rpa-sso-sdk-1.1.13.release.jar differ diff --git a/src/com/engine/recruit/entity/position/PositionSdkInstance.java b/src/com/engine/recruit/entity/position/PositionSdkInstance.java index 709a431..623fd42 100644 --- a/src/com/engine/recruit/entity/position/PositionSdkInstance.java +++ b/src/com/engine/recruit/entity/position/PositionSdkInstance.java @@ -25,6 +25,11 @@ public class PositionSdkInstance { private List lagou_type; private List job51_type; private List zhilian_type; + private List dxrcw_zwfl; + private List dxrcw_major; + private List dxrcw_type; + private List dxrcw_yydj; + private List dxrcw_zdzc; // BOSS直聘 是否外驻 private List boss_resident; @@ -92,6 +97,11 @@ public class PositionSdkInstance { 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()); } } } @@ -224,4 +234,47 @@ public class PositionSdkInstance { public void setJob51_industry(List job51_industry) { this.job51_industry = job51_industry; } + + + public List getDxrcw_zwfl() { + return dxrcw_zwfl; + } + + public void setDxrcw_zwfl(List dxrcw_zwfl) { + this.dxrcw_zwfl = dxrcw_zwfl; + } + + public List getDxrcw_major() { + return dxrcw_major; + } + + public void setDxrcw_major(List dxrcw_major) { + this.dxrcw_major = dxrcw_major; + } + + public List getDxrcw_type() { + return dxrcw_type; + } + + public void setDxrcw_type(List dxrcw_type) { + this.dxrcw_type = dxrcw_type; + } + + public List getDxrcw_yydj() { + dxrcw_yydj.removeIf(item -> "不限".equals(item.getLabel())); + return dxrcw_yydj; + } + + public void setDxrcw_yydj(List dxrcw_yydj) { + this.dxrcw_yydj = dxrcw_yydj; + } + + public List getDxrcw_zdzc() { + dxrcw_zdzc.removeIf(item -> "不限".equals(item.getLabel())); + return dxrcw_zdzc; + } + + public void setDxrcw_zdzc(List dxrcw_zdzc) { + this.dxrcw_zdzc = dxrcw_zdzc; + } } diff --git a/src/com/engine/recruit/enums/PositionThirdChannelEnum.java b/src/com/engine/recruit/enums/PositionThirdChannelEnum.java index c87cf2e..09047b9 100644 --- a/src/com/engine/recruit/enums/PositionThirdChannelEnum.java +++ b/src/com/engine/recruit/enums/PositionThirdChannelEnum.java @@ -18,7 +18,8 @@ public enum PositionThirdChannelEnum { ZHILIANZHAOPIN("1", "智联招聘", ResumePlatform.ZHILIANZHAOPIN), QIANCHENGWUYOU("2", "前程无忧", ResumePlatform.QIANCHENGWUYOU), LAGO("3", "拉勾", ResumePlatform.LAGO), - LIEPIN("4", "猎聘", ResumePlatform.LIEPIN); + LIEPIN("4", "猎聘", ResumePlatform.LIEPIN), + DXY("5", "丁香人才网", ResumePlatform.DXY); PositionThirdChannelEnum(String value, String desc, int resumePlatformId) { this.value = value; diff --git a/src/com/engine/recruit/service/impl/RecruitPositionServiceImpl.java b/src/com/engine/recruit/service/impl/RecruitPositionServiceImpl.java index 1c177ec..ac6c466 100644 --- a/src/com/engine/recruit/service/impl/RecruitPositionServiceImpl.java +++ b/src/com/engine/recruit/service/impl/RecruitPositionServiceImpl.java @@ -102,6 +102,17 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi if ("multiSelect".equals(conditionType)) { getMultiSelect(apidatas, positionSdkInstance); } + + // 专业要求 + if("dxyMajor".equals(conditionType)){ + getDxyMajor(selectValue, apidatas, positionSdkInstance); + } + + // 丁香园职位福利 + if("jobBenefits".equals(conditionType)){ + getJobBenefits(selectValue, apidatas, positionSdkInstance); + } + return apidatas; } @@ -276,8 +287,17 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi } jobId = Long.parseLong(qllgwid); } + List platformList = new ArrayList<>(); + String platformIds = Util.null2String(param.get("platformIds")); + if (StringUtils.isNotBlank(platformIds)) { + String[] split = platformIds.split(","); + for (String platformId : split) { + platformList.add(Convert.toInt(platformId, 0)); + } + } + ERPAResumeSDKClient client = PositionSdkInstance.getPositionSdkInstance().getResumeSDKClient(); - ResumeTaskResult result = client.refreshResumeJob(String.valueOf(user.getUID()), jobId); + ResumeTaskResult result = client.refreshResumeJob(String.valueOf(user.getUID()), jobId, platformList); String msg = ""; TaskResult current = result.getResult(); @@ -423,12 +443,15 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi apidatas.put("job51_value", StringUtils.isBlank(job51_value) ? null : Arrays.asList(job51_value.split("-"))); String zhilian_value = selectValueMap.get("智联"); apidatas.put("zhilian_value", StringUtils.isBlank(zhilian_value) ? null : Arrays.asList(zhilian_value.split("-"))); + String dxy_value = selectValueMap.get("丁香人才网"); + apidatas.put("dxy_value", StringUtils.isBlank(dxy_value) ? null : Arrays.asList(dxy_value.split("-"))); boolean bossShow = false; boolean liepinShow = false; boolean lagouShow = false; boolean job51Show = false; boolean zhilianShow = false; + boolean dxyShow = false; if (dsfqd.contains("0")) { List boss_type = positionSdkInstance.getBoss_type(); apidatas.put("boss", boss_type); @@ -457,13 +480,34 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi apidatas.put("zhilian", zhilian_type); zhilianShow = true; } + + if (dsfqd.contains("5")) { + List dxy_type = positionSdkInstance.getDxrcw_type(); + dealResumeJobDynamicField(dxy_type); + apidatas.put("dxy", dxy_type); + dxyShow = true; + } apidatas.put("bossShow", bossShow); apidatas.put("liepinShow", liepinShow); apidatas.put("lagouShow", lagouShow); apidatas.put("job51Show", job51Show); apidatas.put("zhilianShow", zhilianShow); + apidatas.put("dxyShow", dxyShow); } + void dealResumeJobDynamicField(List dxy_type){ + if(CollectionUtils.isNotEmpty(dxy_type)) { + for (ResumeJobDynamicField.Item item : dxy_type) { + item.setValue(item.getLabel()); + List children = item.getChildren(); + if(CollectionUtils.isNotEmpty(children)) { + dealResumeJobDynamicField(children); + } + } + } + } + + /** * 获取发布城市 * @@ -508,6 +552,46 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi apidatas.put("job51IndustryValue", valueList); } + /** + * 丁香园 专业要求 + * @param selectValue + * @param apidatas + * @param positionSdkInstance + */ + private void getDxyMajor(String selectValue, Map apidatas, PositionSdkInstance positionSdkInstance) { + List> valueList = new ArrayList<>(); + if (StringUtils.isNotBlank(selectValue)) { + String[] split = selectValue.split("#"); + for (String s : split) { + String[] split1 = s.split("-"); + valueList.add(Arrays.asList(split1)); + } + } + + List dxy_major = positionSdkInstance.getDxrcw_major(); + dealResumeJobDynamicField(dxy_major); + apidatas.put("dxy_major", dxy_major); + apidatas.put("dxyMajorValue", valueList); + } + + /** + * 驻外语言要求 + * + * @param selectValue + * @param apidatas + * @param positionSdkInstance + */ + private void getJobBenefits(String selectValue, Map apidatas, PositionSdkInstance positionSdkInstance) { + List valueList = new ArrayList<>(); + if (StringUtils.isNotBlank(selectValue)) { + String[] split = selectValue.split(","); + valueList = Arrays.asList(split); + } + + List job_benefits = positionSdkInstance.getDxrcw_zwfl(); + apidatas.put("job_benefits", job_benefits); + apidatas.put("jobBenefitsValue", valueList); + } /** * 驻外语言要求 @@ -560,6 +644,11 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi //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())); + List dxrcw_zdzc = positionSdkInstance.getDxrcw_zdzc(); + apidatas.put("dxy_zdzc", PositionSelectItem.convertDynamicFieldItem(dxrcw_zdzc)); + List dxrcw_yydj = positionSdkInstance.getDxrcw_yydj(); + apidatas.put("dxy_yydj", PositionSelectItem.convertDynamicFieldItem(dxrcw_yydj)); + //apidatas.put("job51_city", PositionSelectItem.convertDynamicFieldItem(positionSdkInstance.getJob51_city())); } diff --git a/src/weaver/formmode/recruit/modeexpand/position/ReleasePositionModeExpand.java b/src/weaver/formmode/recruit/modeexpand/position/ReleasePositionModeExpand.java deleted file mode 100644 index 50b86af..0000000 --- a/src/weaver/formmode/recruit/modeexpand/position/ReleasePositionModeExpand.java +++ /dev/null @@ -1,138 +0,0 @@ -package weaver.formmode.recruit.modeexpand.position; - -import com.alibaba.fastjson.JSON; -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 org.apache.commons.lang3.StringUtils; -import org.springframework.beans.BeanUtils; -import weaver.conn.RecordSet; -import weaver.erpa.apps.entity.application.resume.dto.ResumeTaskResult; -import weaver.erpa.apps.entity.application.resume.enums.TaskResult; -import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew; -import weaver.formmode.recruit.modeexpand.util.RecruitPositionUtil; -import weaver.general.BaseBean; -import weaver.general.Util; -import weaver.hrm.User; -import weaver.soa.workflow.request.MainTableInfo; -import weaver.soa.workflow.request.Property; -import weaver.soa.workflow.request.RequestInfo; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * 新版职位发布调用接口分渠道发布,该页面拓展已废弃 - * - * @author:dxfeng - * @createTime: 2023/10/07 - * @version: 1.0 - */ -@Deprecated -public class ReleasePositionModeExpand extends AbstractModeExpandJavaCodeNew { - - @Override - public Map doModeExpand(Map param) { - String tableName = "uf_jcl_zp_zpzw"; - - Map resultMap = new HashMap<>(16); - BaseBean baseBean = new BaseBean(); - try { - User user = (User) param.get("user"); - int billId; - int modeId; - RequestInfo requestInfo = (RequestInfo) param.get("RequestInfo"); - if (requestInfo != null) { - billId = Util.getIntValue(requestInfo.getRequestid()); - modeId = Util.getIntValue(requestInfo.getWorkflowid()); - if (billId > 0 && modeId > 0) { - RecordSet rs = new RecordSet(); - boolean enableSdkClient = PositionSdkInstance.enableSdkClient(); - if (enableSdkClient) { - long jobId = -1; - rs.executeQuery("select qllgwid from " + tableName + " where id = ?", billId); - if (rs.next()) { - String qllgwid = rs.getString("qllgwid"); - if (StringUtils.isNotBlank(qllgwid)) { - jobId = Long.parseLong(qllgwid); - } - } - ERPAResumeSDKClient client = PositionSdkInstance.getPositionSdkInstance().getResumeSDKClient(); - Map map = new HashMap<>(16); - MainTableInfo mainTableInfo = requestInfo.getMainTableInfo(); - Property[] properties = mainTableInfo.getProperty(); - for (Property property : properties) { - map.put(property.getName(), property.getValue()); - } - ResumeJobV2Dto resumeJobDto = RecruitPositionUtil.convertMap2ResumeJobV2Dto(user, map); - String userId = String.valueOf(user.getUID()); - // 未创建职位,则先创建职位 - if (jobId == -1) { - baseBean.writeLog("【创建职位】,[id=" + billId + "],resumeJobDto=" + JSON.toJSONString(resumeJobDto)); - // 创建千里聆职位 - jobId = client.addResumeJobV2(userId, resumeJobDto); - // 更新千里聆ID到建模表单 - rs.executeUpdate("update " + tableName + " set qllgwid = ? where id = ?", jobId, billId); - } else { - baseBean.writeLog("【更新职位】,[id=" + billId + "],[qllgwid=" + jobId + "],resumeJobDto=" + JSON.toJSONString(resumeJobDto)); - // 已发布的职位,更新职位信息 - client.editResumeJobV2(userId, jobId, jobDto -> { - new BaseBean().writeLog("职位更新前:" + JSON.toJSONString(jobDto)); - BeanUtils.copyProperties(resumeJobDto, jobDto); - new BaseBean().writeLog("职位更新后:" + JSON.toJSONString(jobDto)); - }); - } - - List platformIds; - platformIds = resumeJobDto.getPlatformList(); - String errorMsg = ""; - for (Integer platformId : platformIds) { - ResumeTaskResult result = client.releaseResumeJob(userId, jobId, platformId); - // 直接查看结果,正在执行中会返回PENGING,成功后会返回SUCCEED,失败后会返回FAILED - TaskResult current = result.getResult(); - baseBean.writeLog(current); - // 使用回调函数获取成功或者失败时的消息 - result.onResult(() -> { - baseBean.writeLog("执行成功回调"); - }, (reason) -> { - baseBean.writeLog("执行失败回调,原因:" + reason); - }); - - // 等待直到状态不再是PENDING - TaskResult taskResult = result.waitResult(); - baseBean.writeLog(taskResult); - if (taskResult == TaskResult.SUCCEED) { - baseBean.writeLog("执行成功"); - } else { - errorMsg = "执行失败,原因:" + result.getFailReason(); - baseBean.writeLog(errorMsg); - break; - } - } - if (StringUtils.isNotBlank(errorMsg)) { - // 发布失败,下架职位 - client.closeResumeJob(userId, jobId); - // 更新状态为发布失败 - rs.executeUpdate("update " + tableName + " set qdfbzt = ? where id = ?", 3, billId); - resultMap.put("errmsg", errorMsg); - resultMap.put("flag", "false"); - return resultMap; - - } - } else { - resultMap.put("errmsg", "未配置发布插件,第三方平台请至各招聘网站自行发布"); - } - // 更新状态为已发布 - rs.executeUpdate("update " + tableName + " set qdfbzt = ? where id = ?", 2, billId); - } - } - } catch (Exception e) { - baseBean.writeLog(e); - resultMap.put("errmsg", e.getMessage()); - resultMap.put("flag", "false"); - } - return resultMap; - } - -} \ No newline at end of file diff --git a/src/weaver/formmode/recruit/modeexpand/util/RecruitPositionUtil.java b/src/weaver/formmode/recruit/modeexpand/util/RecruitPositionUtil.java index 70251d9..b7dfe22 100644 --- a/src/weaver/formmode/recruit/modeexpand/util/RecruitPositionUtil.java +++ b/src/weaver/formmode/recruit/modeexpand/util/RecruitPositionUtil.java @@ -329,7 +329,7 @@ public class RecruitPositionUtil { String zwfl = Util.null2String(map.get("zwfl")); List zwflList = new ArrayList<>(); if (StringUtils.isNotBlank(zwfl)) { - zwflList.addAll(Arrays.asList(zwfl.split("、"))); + zwflList.addAll(Arrays.asList(zwfl.split(","))); } resumeJobV2Dto.setZwfl(zwflList); @@ -367,6 +367,51 @@ public class RecruitPositionUtil { resumeJobV2Dto.setShareThirdUserList(userList); + // 丁香园字段 + resumeJobV2Dto.setDxy_jzsj(stringTurnLong(finishTime)); + // 英语等级 + String yydj = Util.null2String(map.get("yydj")); + if(StringUtils.isNotBlank(yydj)) { + ResumeJobDynamicField.Item itemByValue = PositionSelectItem.getItemByValue(positionSdkInstance.getDxrcw_yydj(), yydj); + if (null != itemByValue) { + resumeJobV2Dto.setDxy_yydj(Convert.toInt(itemByValue.getValue(), -1)); + } + } + + // 最低职称 + String zdzc = Util.null2String(map.get("zdzc")); + if(StringUtils.isNotBlank(zdzc)) { + ResumeJobDynamicField.Item itemByValue = PositionSelectItem.getItemByValue(positionSdkInstance.getDxrcw_zdzc(), zdzc); + if (null != itemByValue) { + resumeJobV2Dto.setDxy_zdzc(Convert.toInt(itemByValue.getValue(), -1)); + } + } + // 职位福利 + String dxyzwfl = Util.null2String(map.get("dxyzwfl")); + if(StringUtils.isNotBlank(dxyzwfl)) { + List itemsByValues = PositionSelectItem.getItemsByValues(positionSdkInstance.getDxrcw_zwfl(), dxyzwfl); + if (CollectionUtils.isNotEmpty(itemsByValues)) { + List collect = itemsByValues.stream().map(ResumeJobDynamicField.Item::getValue).map(Integer::parseInt).collect(Collectors.toList()); + resumeJobV2Dto.setDxy_zwfl(collect); + } + } + // 专业要求 + String zyyq = Util.null2String(map.get("zyyq")); + if(StringUtils.isNotBlank(zyyq)) { + List> zyyqList = new ArrayList<>(); + String[] split = zyyq.split("\n"); + for (String s : split) { + if (StringUtils.isNotBlank(s)) { + String[] strings = s.split("-"); + List strings1 = Arrays.asList(strings); + zyyqList.add(strings1); + } + } + resumeJobV2Dto.setDxy_zyyq(zyyqList); + + } + + return resumeJobV2Dto; } @@ -381,7 +426,7 @@ public class RecruitPositionUtil { if (CollectionUtils.isNotEmpty(platformList)) { List jobType = resumeJobV2Dto.getJobType(); if (CollectionUtils.isNotEmpty(jobType)) { - Map map = jobType.stream().collect(Collectors.toMap(ResumeJobDynamicField.Item::getLabel, ResumeJobDynamicField.Item::getLabel)); + Map map = jobType.stream().collect(Collectors.toMap(ResumeJobDynamicField.Item::getLabel, ResumeJobDynamicField.Item::getValue)); for (Integer integer : platformList) { String s = map.get(String.valueOf(integer)); if (StringUtils.isBlank(s)) { @@ -456,6 +501,9 @@ public class RecruitPositionUtil { case "猎聘": platId = ResumePlatform.LIEPIN; break; + case "丁香人才网": + platId = ResumePlatform.DXY; + break; default: break; }