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.entity.ResumeJobDynamicField; 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")); PositionSdkInstance positionSdkInstance = PositionSdkInstance.getPositionSdkInstance(); // 获取职位类别表单 if ("positionType".equals(conditionType)) { String dsfqd = Util.null2String(param.get("dsfqd")); getPositionType(dsfqd, selectValue, apidatas, positionSdkInstance); } // 前程无忧-发布城市 if ("job51City".equals(conditionType)) { getCityType(selectValue, apidatas, positionSdkInstance); } // 前程无忧-所属行业 if ("industryType".equals(conditionType)) { getIndustryType(selectValue, apidatas, positionSdkInstance); } // BOSS直聘-驻外语言要求 if ("residentLanguage".equals(conditionType)) { getResidentLanguage(selectValue, apidatas, positionSdkInstance); } // BOSS直聘-驻外国家或地区 if ("residentCountry".equals(conditionType)) { getResidentCountry(selectValue, apidatas, positionSdkInstance); } // BOSS直聘-是否驻外 if ("multiSelect".equals(conditionType)) { getMultiSelect(apidatas, positionSdkInstance); } return apidatas; } /** * 获取职位类别 * * @param dsfqd * @param selectValue * @param apidatas * @param positionSdkInstance */ private void getPositionType(String dsfqd, String selectValue, Map apidatas, PositionSdkInstance positionSdkInstance) { 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 = positionSdkInstance.getBoss_type(); apidatas.put("boss", boss_type); bossShow = true; } if (dsfqd.contains("4")) { List liepin_type = positionSdkInstance.getLiepin_type(); apidatas.put("liepin", liepin_type); liepinShow = true; } if (dsfqd.contains("3")) { List lagou_type = positionSdkInstance.getLagou_type(); apidatas.put("lagou", lagou_type); lagouShow = true; } if (dsfqd.contains("2")) { List job51_type = positionSdkInstance.getJob51_type(); apidatas.put("job51", job51_type); job51Show = true; } if (dsfqd.contains("1")) { List zhilian_type = positionSdkInstance.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 positionSdkInstance */ 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 = positionSdkInstance.getJob51_city(); apidatas.put("job51_city", job51_city); apidatas.put("job51CityValue", valueList); } /** * 获取所属行业 * * @param selectValue * @param apidatas * @param positionSdkInstance */ private void getIndustryType(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 job51_industry = positionSdkInstance.getJob51_industry(); apidatas.put("job51_industry", job51_industry); apidatas.put("job51IndustryValue", valueList); } /** * 驻外语言要求 * * @param selectValue * @param apidatas * @param positionSdkInstance */ private void getResidentLanguage(String selectValue, Map apidatas, PositionSdkInstance positionSdkInstance) { List valueList = new ArrayList<>(); if (StringUtils.isNotBlank(selectValue)) { String[] split = selectValue.split(","); valueList = Arrays.asList(split); } List boss_resident_language = positionSdkInstance.getBoss_resident_language(); apidatas.put("boss_resident_language", boss_resident_language); apidatas.put("bossResidentLanguage", valueList); } /** * 驻外国家或地区 * * @param selectValue * @param apidatas * @param positionSdkInstance */ private void getResidentCountry(String selectValue, Map apidatas, PositionSdkInstance positionSdkInstance) { List valueList = new ArrayList<>(); if (StringUtils.isNotBlank(selectValue)) { String[] split = selectValue.split(","); valueList = Arrays.asList(split); } List boss_resident_country = positionSdkInstance.getBoss_resident_country(); apidatas.put("boss_resident_country", boss_resident_country); apidatas.put("bossResidentCountry", 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())); } }