diff --git a/src/com/engine/recruit/controller/RecruitPositionController.java b/src/com/engine/recruit/controller/RecruitPositionController.java index fa4a53b..8aaecf0 100644 --- a/src/com/engine/recruit/controller/RecruitPositionController.java +++ b/src/com/engine/recruit/controller/RecruitPositionController.java @@ -54,6 +54,15 @@ public class RecruitPositionController { return new ResponseResult, Map>(user).run(getRecruitPositionWrapper(user)::releaseResumeJob, param); } + @POST + @Path("/saveAndReleaseResumeJob") + @Produces(MediaType.APPLICATION_JSON) + public String saveAndReleaseResumeJob(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + Map param = ParamUtil.request2Map(request); + return new ResponseResult, Map>(user).run(getRecruitPositionWrapper(user)::saveAndReleaseResumeJob, param); + } + @POST @Path("/closeResumeJob") @Produces(MediaType.APPLICATION_JSON) diff --git a/src/com/engine/recruit/service/RecruitPositionService.java b/src/com/engine/recruit/service/RecruitPositionService.java index 333640d..97cc4a6 100644 --- a/src/com/engine/recruit/service/RecruitPositionService.java +++ b/src/com/engine/recruit/service/RecruitPositionService.java @@ -33,6 +33,13 @@ public interface RecruitPositionService { */ Map releaseResumeJob(Map param); + /** + * 保存并发布职位 + * @param param + * @return + */ + Map saveAndReleaseResumeJob(Map param); + /** * 下架职位 * diff --git a/src/com/engine/recruit/service/impl/RecruitPositionServiceImpl.java b/src/com/engine/recruit/service/impl/RecruitPositionServiceImpl.java index 95f535a..fb9341a 100644 --- a/src/com/engine/recruit/service/impl/RecruitPositionServiceImpl.java +++ b/src/com/engine/recruit/service/impl/RecruitPositionServiceImpl.java @@ -2,6 +2,7 @@ package com.engine.recruit.service.impl; import cn.hutool.core.convert.Convert; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.engine.core.impl.Service; import com.engine.recruit.conn.ApplicantCommonInfo; import com.engine.recruit.conn.RecruitRecordSet; @@ -12,6 +13,7 @@ import com.engine.recruit.enums.PositionReleaseStatusEnum; import com.engine.recruit.enums.PositionThirdChannelEnum; import com.engine.recruit.exception.CustomizeRunTimeException; import com.engine.recruit.service.RecruitPositionService; +import com.weaver.formmodel.data.model.Formfield; import com.weaver.rpa.sdk.clients.application.resume.ERPAResumeSDKClient; import com.weaver.rpa.sdk.clients.application.resume.common.ResumeJobStatus; import com.weaver.rpa.sdk.clients.application.resume.entity.ResumeJobDynamicField; @@ -21,10 +23,13 @@ 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.recruit.modeexpand.util.RecruitModeUtil; import weaver.formmode.recruit.modeexpand.util.RecruitPositionUtil; +import weaver.general.BaseBean; import weaver.general.Util; import java.util.*; +import java.util.stream.Collectors; /** * @author:dxfeng @@ -101,7 +106,6 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi @Override public Map releaseResumeJob(Map param) { try { - Map resultMap = new HashMap<>(); String billId = Util.null2String(param.get("billId")); String platformIds = Util.null2String(param.get("platformIds")); if (StringUtils.isBlank(platformIds)) { @@ -138,8 +142,6 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi } String errorMsg = ""; - int succ = 0; - int fail = 0; String[] split = platformIds.split(","); for (String platformId : split) { PositionThirdChannelEnum positionThirdChannelEnum = PositionThirdChannelEnum.getEnumByValue(platformId); @@ -161,27 +163,21 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi Integer status; if (taskResult == TaskResult.SUCCEED) { rs.writeLog("执行成功"); - succ++; status = PositionReleaseStatusEnum.PUBLISHED.getValue(); } else { errorMsg = "执行失败,原因:" + result.getFailReason(); rs.writeLog(errorMsg); - fail++; status = PositionReleaseStatusEnum.PUBLISHING_FAILED.getValue(); } recordPublishingStatus(billId, platformId, status, errorMsg); } - resultMap.put("msg", "成功发布" + succ + "个,失败" + fail + "个"); } else { String msg = "未配置发布插件,第三方平台请至各招聘网站自行发布"; - resultMap.put("errmsg", msg); String[] splits = platformIds.split(","); for (String platformId : splits) { recordPublishingStatus(billId, platformId, PositionReleaseStatusEnum.PUBLISHED.getValue(), msg); } } - // 更新状态为已发布 - //rs.executeUpdate("update uf_jcl_zp_zpzw set qdfbzt = ? where id = ?", 2, billId); return getReportList(param); } catch (InterruptedException e) { throw new CustomizeRunTimeException(e); @@ -233,19 +229,19 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi // 使用回调函数获取成功或者失败时的消息 result.onResult(() -> { - rs.writeLog("执行成功回调"); + rs.writeLog("下架成功回调"); }, (reason) -> { - rs.writeLog("执行失败回调,原因:" + reason); + rs.writeLog("下架失败回调,原因:" + reason); }); // 等待直到状态不再是PENDING TaskResult taskResult = result.waitResult(); rs.writeLog(taskResult); if (taskResult == TaskResult.SUCCEED) { - rs.writeLog("执行成功"); + rs.writeLog("下架成功"); syncResumePlatformStatus(billId, jobId, client); } else { - errorMsg = "执行失败,原因:" + result.getFailReason(); + errorMsg = "下架失败,原因:" + result.getFailReason(); throw new CustomizeRunTimeException(errorMsg); } } @@ -257,9 +253,6 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi recordPublishingStatus(billId, platformId, PositionReleaseStatusEnum.PUBLISHED.getValue(), msg); } } - // - // 更新招聘状态为招聘结束 - //rs.executeUpdate("update uf_jcl_zp_zpzw set zpzt = ? where id = ?", 1, billId); return getReportList(param); } catch (InterruptedException e) { @@ -270,10 +263,6 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi @Override public Map refreshResumeJob(Map param) { String billId = Util.null2String(param.get("billId")); - String platformIds = Util.null2String(param.get("platformIds")); - if (StringUtils.isBlank(platformIds)) { - throw new CustomizeRunTimeException("请选择要刷新的平台"); - } RecordSet rs = new RecordSet(); try { long jobId = -1; @@ -335,12 +324,49 @@ public class RecruitPositionServiceImpl extends Service implements RecruitPositi positionRelease.setTips(tips); } list.add(positionRelease); - //returnMap.put(rs.getInt("inner_channel"), releaseStatusEnum.getLabel()); } returnMap.put("list", list); return returnMap; } + @Override + public Map saveAndReleaseResumeJob(Map param) { + String billId = Util.null2String(param.get("billId")); + String submitDataStr = Util.null2String(param.get("submitData")); + if (StringUtils.isAnyBlank(billId, submitDataStr)) { + throw new CustomizeRunTimeException("职位发布失败,接口传参有误"); + } + JSONObject submitData = JSONObject.parseObject(submitDataStr); + List fieldList = RecruitModeUtil.getFieldList("uf_jcl_zp_zpzw"); + Map fieldIdMap = fieldList.stream().collect(Collectors.toMap(item -> "field" + item.getId() + , item -> item, (k1, k2) -> k1)); + Map mainDataMap = new HashMap<>(); + Map innerMap = submitData.getInnerMap(); + BaseBean baseBean = new BaseBean(); + for (Map.Entry entry : innerMap.entrySet()) { + String key = entry.getKey(); + String value = Util.null2String(entry.getValue()); + Formfield formfield = fieldIdMap.get(key); + if (null != formfield) { + String fieldName = formfield.getFieldname(); + if (StringUtils.isNotBlank(value)) { + mainDataMap.put(fieldName, value); + } else { + mainDataMap.put(fieldName, null); + if("text".equals(formfield.getFielddbtype())){ + mainDataMap.put(fieldName, ""); + } + } + } else { + baseBean.writeLog("未匹配到对应字段,key==" + key); + } + } + mainDataMap.put("id", billId); + + RecruitRecordSet.updateDataById(mainDataMap, "uf_jcl_zp_zpzw"); + return releaseResumeJob(param); + } + /** * 获取职位类别 * diff --git a/src/com/engine/recruit/wrapper/RecruitPositionWrapper.java b/src/com/engine/recruit/wrapper/RecruitPositionWrapper.java index b99e4a4..3c757e0 100644 --- a/src/com/engine/recruit/wrapper/RecruitPositionWrapper.java +++ b/src/com/engine/recruit/wrapper/RecruitPositionWrapper.java @@ -30,6 +30,10 @@ public class RecruitPositionWrapper extends Service { return getRecruitPositionService(user).releaseResumeJob(param); } + public Map saveAndReleaseResumeJob(Map param) { + return getRecruitPositionService(user).saveAndReleaseResumeJob(param); + } + public Map closeResumeJob(Map param) { return getRecruitPositionService(user).closeResumeJob(param); }