diff --git a/src/com/engine/recruit/constant/RecruitConstant.java b/src/com/engine/recruit/constant/RecruitConstant.java index f602b9c..6245a74 100644 --- a/src/com/engine/recruit/constant/RecruitConstant.java +++ b/src/com/engine/recruit/constant/RecruitConstant.java @@ -37,6 +37,7 @@ public class RecruitConstant { public static final String OFFER_MOBILE_URL; public static final String APPLICANTS_RESUMES_CATEGORY; public static final String INTERVIEW_FEEDBACK_URL; + public static final String OFFER_FEEDBACK_URL; public static final String REMIND_SEARCH_LINK; public static final String OCR_TYPE; public static final String OCR_URL; @@ -141,6 +142,12 @@ public class RecruitConstant { } INTERVIEW_FEEDBACK_URL = getCompleteUrl(interviewFeedbackUrl); + String offerFeedbackUrl = getRecruitPropValue("OFFER_FEEDBACK_URL"); + if (StringUtils.isBlank(offerFeedbackUrl)) { + offerFeedbackUrl = "/spa/custom/static/index.html#/main/cs/app/127192a8cd464d828d433c78b1dea531_Interview"; + } + OFFER_FEEDBACK_URL = getCompleteUrl(offerFeedbackUrl); + String modeAppName = getRecruitPropValue("MODE_APP_NAME"); if (StringUtils.isBlank(modeAppName)) { modeAppName = "JCL_招聘管理"; diff --git a/src/com/engine/recruit/controller/RecruitMobileModeController.java b/src/com/engine/recruit/controller/RecruitMobileModeController.java index 58d4906..f9e2030 100644 --- a/src/com/engine/recruit/controller/RecruitMobileModeController.java +++ b/src/com/engine/recruit/controller/RecruitMobileModeController.java @@ -6,6 +6,7 @@ import com.engine.recruit.util.ResponseResult; import com.engine.recruit.wrapper.InductionManageWrapper; import com.engine.recruit.wrapper.OfferWrapper; import com.engine.recruit.wrapper.RecruitInterviewWrapper; +import com.engine.recruit.wrapper.RecruitOfferWrapper; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; @@ -34,6 +35,10 @@ public class RecruitMobileModeController { return ServiceUtil.getService(RecruitInterviewWrapper.class, user); } + public RecruitOfferWrapper getRecruitOfferWrapper(User user) { + return ServiceUtil.getService(RecruitOfferWrapper.class, user); + } + @POST @Path("/getOfferContent") @Produces(MediaType.APPLICATION_JSON) @@ -43,14 +48,14 @@ public class RecruitMobileModeController { return new ResponseResult, Map>(user).run(getOfferWrapper(user)::getOfferContent, params); } - @POST - @Path("/updateOfferStatus") - @Produces(MediaType.APPLICATION_JSON) - public String updateOfferStatus(@Context HttpServletRequest request, @Context HttpServletResponse response) { - User user = HrmUserVarify.getUser(request, response); - Map params = ParamUtil.request2Map(request); - return new ResponseResult, Map>(user).run(getOfferWrapper(user)::updateOfferStatus, params); - } + //@POST + //@Path("/updateOfferStatus") + //@Produces(MediaType.APPLICATION_JSON) + //public String updateOfferStatus(@Context HttpServletRequest request, @Context HttpServletResponse response) { + // User user = HrmUserVarify.getUser(request, response); + // Map params = ParamUtil.request2Map(request); + // return new ResponseResult, Map>(user).run(getOfferWrapper(user)::updateOfferStatus, params); + //} @POST @Path("/checkLoginInfo") @@ -78,4 +83,13 @@ public class RecruitMobileModeController { Map param = ParamUtil.request2Map(request); return new ResponseResult, Map>(user).run(getRecruitInterviewWrapper(user)::updateInterviewStatus, param); } + + @POST + @Path("/updateOfferStatus") + @Produces(MediaType.APPLICATION_JSON) + public String updateOfferStatus(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + Map param = ParamUtil.request2Map(request); + return new ResponseResult, Map>(user).run(getRecruitOfferWrapper(user)::updateOfferStatus, param); + } } diff --git a/src/com/engine/recruit/service/RecruitOfferService.java b/src/com/engine/recruit/service/RecruitOfferService.java index b4eb2f4..f9fccb5 100644 --- a/src/com/engine/recruit/service/RecruitOfferService.java +++ b/src/com/engine/recruit/service/RecruitOfferService.java @@ -15,4 +15,12 @@ public interface RecruitOfferService { * @return */ Map updatePreContent(Map param); + + /** + * 更新Offer状态 + * + * @param param + * @return + */ + Map updateOfferStatus(Map param); } diff --git a/src/com/engine/recruit/service/impl/RecruitOfferServiceImpl.java b/src/com/engine/recruit/service/impl/RecruitOfferServiceImpl.java index 0d616e0..51413e8 100644 --- a/src/com/engine/recruit/service/impl/RecruitOfferServiceImpl.java +++ b/src/com/engine/recruit/service/impl/RecruitOfferServiceImpl.java @@ -2,10 +2,12 @@ package com.engine.recruit.service.impl; import com.alibaba.fastjson.JSONObject; import com.engine.core.impl.Service; +import com.engine.recruit.conn.RecruitRecordSet; import com.engine.recruit.exception.CustomizeRunTimeException; import com.engine.recruit.service.RecruitOfferService; import com.weaver.formmodel.data.model.Formfield; import org.apache.commons.lang3.StringUtils; +import weaver.common.DateUtil; import weaver.conn.RecordSet; import weaver.formmode.recruit.modeexpand.offer.CreateOfferModeExpand; import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil; @@ -52,4 +54,55 @@ public class RecruitOfferServiceImpl extends Service implements RecruitOfferServ } return null; } + + @Override + public Map updateOfferStatus(Map param) { + Map returnMap = new HashMap<>(3); + String status = Util.null2String(param.get("status")); + String uuid = Util.null2String(param.get("uuid")); + returnMap.put("type", "error"); + returnMap.put("message", "反馈失败"); + + if (StringUtils.isBlank(status) || StringUtils.isBlank(uuid)) { + returnMap.put("description", "反馈失败,请直接点击邮件/短信中的链接地址访问,请勿修改链接内容。"); + return returnMap; + } + + RecordSet rs = new RecordSet(); + rs.executeQuery("select * from uf_jcl_offer where modeuuid = ? ", uuid); + Map mainDataMap = RecruitRecordSet.getSingleRecordMap(rs); + String zt = ""; + if (!mainDataMap.isEmpty()) { + zt = Util.null2String(mainDataMap.get("zt")); + } else { + returnMap.put("description", "反馈失败,offer信息有误,请联系相应HR确认"); + return returnMap; + } + + + if ("2".equals(zt) || "3".equals(zt)) { + returnMap.put("description", "您已成功反馈,请勿重复反馈。"); + return returnMap; + } + + List fieldList = RecruitModeUtil.getFieldList("uf_jcl_offer"); + Map fieldMap = fieldList.stream().collect(Collectors.toMap(Formfield::getFieldname, item -> item, (k1, k2) -> k1)); + // 参加 + if ("3".equals(status)) { + returnMap.put("type", "success"); + returnMap.put("message", "已确认接受offer"); + returnMap.put("description", "您已接受offer,感谢您的应聘,请按期准备入职,如有问题可以联系相应HR"); + + rs.executeUpdate("update uf_jcl_offer set zt = ?, fksj = ? where modeuuid = ? ", status, DateUtil.getDateTime(), uuid); + + } else if ("2".equals(status)) { + returnMap.put("type", "info"); + returnMap.put("message", "已拒接接受offer"); + returnMap.put("description", "您已拒绝offer,感谢您的应聘。希望您能够找到真正适合自己的工作。"); + + rs.executeUpdate("update uf_jcl_offer set zt = ?, fksj = ? where modeuuid = ? ", status, DateUtil.getDateTime(), uuid); + } + + return returnMap; + } } diff --git a/src/com/engine/recruit/wrapper/RecruitOfferWrapper.java b/src/com/engine/recruit/wrapper/RecruitOfferWrapper.java index af19e9f..19c3787 100644 --- a/src/com/engine/recruit/wrapper/RecruitOfferWrapper.java +++ b/src/com/engine/recruit/wrapper/RecruitOfferWrapper.java @@ -21,4 +21,8 @@ public class RecruitOfferWrapper extends Service { public Map updatePreContent(Map param) { return getRecruitOfferService(user).updatePreContent(param); } + + public Map updateOfferStatus(Map param) { + return getRecruitOfferService(user).updateOfferStatus(param); + } } diff --git a/src/weaver/formmode/recruit/modeexpand/offer/CreateOfferModeExpand.java b/src/weaver/formmode/recruit/modeexpand/offer/CreateOfferModeExpand.java index 2a026d2..1d93bcc 100644 --- a/src/weaver/formmode/recruit/modeexpand/offer/CreateOfferModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/offer/CreateOfferModeExpand.java @@ -1,5 +1,6 @@ package weaver.formmode.recruit.modeexpand.offer; +import com.engine.recruit.conn.ApplicantCommonInfo; import com.engine.recruit.constant.RecruitConstant; import com.engine.recruit.enums.RecordOperateEnum; import com.engine.recruit.util.RecruitMessageUtils; @@ -67,13 +68,11 @@ public class CreateOfferModeExpand extends AbstractModeExpandJavaCodeNew { } if (sendSms) { String name = Util.null2String(mainDataMap.get("xm")); + name= ApplicantCommonInfo.getApplicantName(name); String positionName = Util.null2String(mainDataMap.get("zpzwmc")); + positionName=ApplicantCommonInfo.getApplicantPosition(positionName); String endDate = Util.null2String(mainDataMap.get("sxrq")); String companyId = Util.null2String(mainDataMap.get("rzgs")); - //if (StringUtils.isAnyBlank(name, positionName, endDate, companyId)) { - // result.put("errmsg", "offer短信发送失败,应聘者信息获取失败"); - // result.put("flag", "false"); - //} String mobileContent = name + "你好,恭喜你成功通过" + new SubCompanyComInfo().getSubCompanyname(companyId) + "的" + positionName + "面试,聘用通知已发送至你的邮箱,请注意查收邮件,并于" + endDate + "前确认,逾期将失效。"; RecruitMessageUtils.sendSMS(sjh, mobileContent); @@ -103,10 +102,21 @@ public class CreateOfferModeExpand extends AbstractModeExpandJavaCodeNew { */ public static String getOfferMsgContent(String billId, List fieldList, Map mainDataMap, String tznr, String yx) { Map> fieldMapList = fieldList.stream().collect(Collectors.groupingBy(Formfield::getLabelName)); - // 发送邮件 - String offerMobileUrl = RecruitConstant.OFFER_MOBILE_URL + "&billid=" + billId + "&dzyx=" + yx; - String mobileLink = "录用通知函"; - tznr = tznr.replace("{录用通知函}", mobileLink); - return RecruitModeUtil.getReplaceContent(tznr, fieldMapList, mainDataMap); + //// 发送邮件 + //String offerMobileUrl = RecruitConstant.OFFER_MOBILE_URL + "&billid=" + billId + "&dzyx=" + yx; + //String mobileLink = "录用通知函"; + //tznr = tznr.replace("{录用通知函}", mobileLink); + RecordSet rs = new RecordSet(); + rs.executeQuery("select modeuuid from uf_jcl_offer where id = ? ", billId); + String uuid = ""; + if (rs.next()) { + uuid = rs.getString("modeuuid"); + } + // TODO + String confirmUrl = RecruitConstant.OFFER_FEEDBACK_URL + "?uuid=" + uuid; + String emailContent = "
请您答复是否接受offer? 接受 拒绝
"; + // 邮件内容拼接确认信息 + emailContent = tznr + emailContent; + return RecruitModeUtil.getReplaceContent(emailContent, fieldMapList, mainDataMap); } }