package com.engine.recruit.service.impl; import com.engine.core.impl.Service; 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; import java.util.*; /** * @author:dxfeng * @createTime: 2023/10/09 * @version: 1.0 */ public class RecruitPositionServiceImpl extends Service implements RecruitPositionService { @Override public Map updatePostInfo(Map param) { Map returnMap = new HashMap<>(); String zpzwfzr = Util.null2String(param.get("zpzwfzr")); String zpxzr = Util.null2String(param.get("zpxzr")); String ids = Util.null2String(param.get("ids")); if (StringUtils.isBlank(ids)) { throw new CustomizeRunTimeException("数据有误,请重试"); } RecordSet rs = new RecordSet(); if (StringUtils.isNotBlank(zpzwfzr)) { rs.executeUpdate(" update uf_jcl_zp_zpzw set zpzwfzr = ? where id in (" + ids + ")", zpzwfzr); } if (StringUtils.isNotBlank(zpxzr)) { rs.executeUpdate(" update uf_jcl_zp_zpzw set zpxzr = ? where id in (" + ids + ")", zpxzr); } return returnMap; } @Override public Map getFormCondition(Map param) { Map apidatas = new HashMap<>(); apidatas.put("hasRight", true); String conditionType = Util.null2String(param.get("conditionType")); String selectValue = Util.null2String(param.get("selectValue")); ERPAResumeSDKClient client = ERPASDKClients.getResumeSDKClient(); ResumeJobDynamicField resumeJobDynamicField = client.getResumeJobDynamicField(); // 获取职位类别表单 if ("positionType".equals(conditionType)) { String dsfqd = Util.null2String(param.get("dsfqd")); getPositionType(dsfqd, selectValue, apidatas, resumeJobDynamicField); } // 前程无忧-发布城市 if ("job51City".equals(conditionType)) { getCityType(selectValue, apidatas, resumeJobDynamicField); } if ("industryType".equals(conditionType)) { getIndustryType(selectValue, apidatas, resumeJobDynamicField); } return apidatas; } /** * 获取职位类别 * * @param dsfqd * @param selectValue * @param apidatas * @param resumeJobDynamicField */ private void getPositionType(String dsfqd, String selectValue, Map apidatas, ResumeJobDynamicField resumeJobDynamicField) { String[] split = selectValue.split("#"); Map selectValueMap = new HashMap<>(); for (String s : split) { String[] split1 = s.split(":"); if (split1.length == 2) { selectValueMap.put(split1[0], split1[1]); } } String boss_value = selectValueMap.get("BOSS直聘"); apidatas.put("boss_value", StringUtils.isBlank(boss_value) ? null : Arrays.asList(boss_value.split("-"))); String liepin_value = selectValueMap.get("猎聘"); apidatas.put("liepin_value", StringUtils.isBlank(liepin_value) ? null : Arrays.asList(liepin_value.split("-"))); String lagou_value = selectValueMap.get("拉勾"); apidatas.put("lagou_value", StringUtils.isBlank(lagou_value) ? null : Arrays.asList(lagou_value.split("-"))); String job51_value = selectValueMap.get("前程无忧"); 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("-"))); boolean bossShow = false; boolean liepinShow = false; boolean lagouShow = false; boolean job51Show = false; boolean zhilianShow = false; if (dsfqd.contains("0")) { List boss_type = (List) resumeJobDynamicField.getBoss_type(); apidatas.put("boss", boss_type); bossShow = true; } if (dsfqd.contains("4")) { List liepin_type = (List) resumeJobDynamicField.getLiepin_type(); apidatas.put("liepin", liepin_type); liepinShow = true; } if (dsfqd.contains("3")) { List lagou_type = (List) resumeJobDynamicField.getLagou_type(); apidatas.put("lagou", lagou_type); lagouShow = true; } if (dsfqd.contains("2")) { List job51_type = (List) resumeJobDynamicField.getJob51_type(); apidatas.put("job51", job51_type); job51Show = true; } if (dsfqd.contains("1")) { List zhilian_type = (List) resumeJobDynamicField.getZhilian_type(); apidatas.put("zhilian", zhilian_type); zhilianShow = true; } apidatas.put("bossShow", bossShow); apidatas.put("liepinShow", liepinShow); apidatas.put("lagouShow", lagouShow); apidatas.put("job51Show", job51Show); apidatas.put("zhilianShow", zhilianShow); } /** * 获取发布城市 * * @param selectValue * @param apidatas * @param resumeJobDynamicField */ private void getCityType(String selectValue, Map apidatas, ResumeJobDynamicField resumeJobDynamicField) { List valueList = new ArrayList<>(); if (StringUtils.isNotBlank(selectValue)) { String[] split = selectValue.split(","); valueList = Arrays.asList(split); } List job51_city = (List) resumeJobDynamicField.getJob51_city(); apidatas.put("job51_city", job51_city); apidatas.put("job51CityValue", valueList); } /** * 获取所属行业 * * @param selectValue * @param apidatas * @param resumeJobDynamicField */ private void getIndustryType(String selectValue, Map apidatas, ResumeJobDynamicField resumeJobDynamicField) { 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 job51_industry = (List) resumeJobDynamicField.getJob51_industry_txt(); apidatas.put("job51_industry", job51_industry); apidatas.put("job51IndustryValue", valueList); } }