offer发送,offer反馈

美之高
dxfeng 7 months ago
parent 37ccf7888d
commit 6302d7d9e0

@ -24,4 +24,6 @@ public interface RecruitMobileService {
* @return
*/
Map<String, Object> submitRegist(Map<String, Object> params);
Map<String, Object> updateOfferStatus(Map<String, Object> params);
}

@ -14,10 +14,7 @@ import weaver.formmode.IgnoreCaseHashMap;
import weaver.formmode.mzg.modeexpand.disc.AddDiscExpand;
import weaver.general.Util;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.*;
import java.util.regex.Matcher;
/**
@ -100,9 +97,9 @@ public class RecruitMobileServiceImpl extends Service implements RecruitMobileSe
}
}
// 根据职位,设置部门的值
rs.executeQuery("select sqbm from uf_recruit_zpxqglb where id = ?",buildDataMap.get("sqzw"));
if(rs.next()){
buildDataMap.put("bm",rs.getString("sqbm"));
rs.executeQuery("select sqbm from uf_recruit_zpxqglb where id = ?", buildDataMap.get("sqzw"));
if (rs.next()) {
buildDataMap.put("bm", rs.getString("sqbm"));
}
if (isAdd) {
@ -112,12 +109,12 @@ public class RecruitMobileServiceImpl extends Service implements RecruitMobileSe
int formModeId = RecruitCommon.getModeIdByTableName(targetTable);
buildDataMap.put("formmodeid", formModeId);
// 构建建模表基本数据
buildDataMap.put("ypdjid",billId);
buildDataMap.put("mslx","0");
buildDataMap.put("mszt","0");
buildDataMap.put("ypdjid", billId);
buildDataMap.put("mslx", "0");
buildDataMap.put("mszt", "0");
RecruitRecordSet.buildModeInsertFields(buildDataMap, 1);
RecruitRecordSet.insertData(buildDataMap, targetTable);
msId = String.valueOf(RecruitRecordSet.refreshRight(uuid, targetTable, formModeId,1));
msId = String.valueOf(RecruitRecordSet.refreshRight(uuid, targetTable, formModeId, 1));
} else {
// 更新
buildDataMap.put("id", msId);
@ -157,6 +154,50 @@ public class RecruitMobileServiceImpl extends Service implements RecruitMobileSe
return null;
}
@Override
public Map<String, Object> updateOfferStatus(Map<String, Object> params) {
Map<String, Object> returnMap = new HashMap<>(3);
String status = Util.null2String(params.get("status"));
String uuid = Util.null2String(params.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 fkjg from uf_recruit_lytzs where modeuuid = ? ", uuid);
String fkjg = "";
if (rs.next()) {
fkjg = rs.getString("fkjg");
} else {
returnMap.put("description", "反馈失败offer信息有误请联系相应HR确认");
return returnMap;
}
if (StringUtils.isNotBlank(fkjg) && !"0".equals(fkjg)) {
returnMap.put("description", "您已成功反馈,请勿重复反馈。");
return returnMap;
}
if ("1".equals(status)) {
returnMap.put("type", "success");
returnMap.put("message", "已接受offer");
returnMap.put("description", "您已接受offer期待您的加入请按期准备报道如有问题可以联系相应HR");
rs.executeUpdate("update uf_recruit_lytzs set fkjg = ? where modeuuid = ? ", status, uuid);
} else if ("2".equals(status)) {
returnMap.put("type", "info");
returnMap.put("message", "已拒绝offer");
returnMap.put("description", "您已拒绝offer感谢您的应聘。希望您能够找到真正适合自己的工作。");
rs.executeUpdate("update uf_recruit_lytzs set fkjg = ? where modeuuid = ? ", status, uuid);
}
return returnMap;
}
/**
*
*

@ -61,7 +61,11 @@ public class RecruitUtil {
public static boolean sendEmailWithFile(String sendTo, String emailTitle, String emailContent, String imageFileIds) {
EmailWorkRunnable emailWorkRunnable = new EmailWorkRunnable(sendTo, Util.toHtmlMode(emailTitle), Util.toHtmlMode(emailContent));
emailWorkRunnable.setImagefileids(imageFileIds);
return emailWorkRunnable.emailCommonRemind();
boolean isSend = emailWorkRunnable.emailCommonRemind();
if (isSend) {
return true;
}
throw new CustomizeRunTimeException("邮件发送失败,请查看群发日志");
}
/**

@ -46,4 +46,14 @@ public class RecruitMobileController {
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getService(user)::submitRegist, params);
}
@GET
@Path("/updateOfferStatus")
@Produces(MediaType.APPLICATION_JSON)
public String updateOfferStatus(@Context HttpServletRequest request, @Context HttpServletResponse response) {
User user = HrmUserVarify.getUser(request, response);
Map<String, Object> params = ParamUtil.request2Map(request);
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getService(user)::updateOfferStatus, params);
}
}

@ -0,0 +1,93 @@
package weaver.formmode.mzg.modeexpand.offer;
import com.engine.mzg.conn.RecruitCommon;
import com.engine.mzg.enums.EmailTemplateEnum;
import com.engine.mzg.exception.CustomizeRunTimeException;
import com.engine.mzg.util.RecruitUtil;
import com.weaver.formmodel.data.model.Formfield;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.formmode.IgnoreCaseHashMap;
import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew;
import weaver.general.Util;
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;
import java.util.stream.Collectors;
/**
* @author:dxfeng
* @createTime: 2024/09/20
* @version: 1.0
*/
public class SendOfferExpand extends AbstractModeExpandJavaCodeNew {
@Override
public Map<String, String> doModeExpand(Map<String, Object> param) {
RecordSet rs = new RecordSet();
Map<String, String> result = new HashMap<>();
try {
int billId;
RequestInfo requestInfo = (RequestInfo) param.get("RequestInfo");
if (requestInfo != null) {
billId = Util.getIntValue(requestInfo.getRequestid());
IgnoreCaseHashMap<String, String> mainDataMap = new IgnoreCaseHashMap<>();
MainTableInfo mainTableInfo = requestInfo.getMainTableInfo();
Property[] properties = mainTableInfo.getProperty();
for (Property property : properties) {
mainDataMap.put(property.getName(), property.getValue());
}
String xm = Util.null2String(mainDataMap.get("xm"));
rs.executeQuery("select dzyx from uf_recruit_ms where id = ?", xm);
String sendTo = "";
if (rs.next()) {
sendTo = rs.getString("dzyx");
}
if (StringUtils.isBlank(sendTo)) {
throw new CustomizeRunTimeException("电子邮箱为空,邮件发送失败");
}
String emailTitle = "";
String emailContent = "";
rs.executeQuery("select yjzt ,yjnr from uf_recruit_email where mblx =? ", EmailTemplateEnum.OFFER.getValue());
if (rs.next()) {
emailTitle = rs.getString("yjzt");
emailContent = rs.getString("yjnr");
}
if (StringUtils.isBlank(emailTitle) || StringUtils.isBlank(emailContent)) {
throw new CustomizeRunTimeException("请检查邮件模板设置");
}
rs.executeQuery("select modeuuid from uf_recruit_lytzs where id = ? ", billId);
String uuid = "";
if (rs.next()) {
uuid = rs.getString("modeuuid");
}
String confirmUrl = RecruitCommon.getSettingValue("OFFER_FEEDBACK_URL") + "?uuid=" + uuid;
// 发送邮件
List<Formfield> fieldList = RecruitUtil.getFieldList("uf_recruit_lytzs");
Map<String, List<Formfield>> fieldMapList = fieldList.stream().collect(Collectors.groupingBy(Formfield::getFieldname));
emailContent = RecruitUtil.getReplaceContent(emailContent, fieldMapList, mainDataMap);
// 拼接反馈信息
emailContent += "<div style=\"border:3px solid silver;width:635px;height:55px;line-height:55px;font-family:'microsoft Yahei';font-size:18px;font-weight:bold;color:#333;padding-left:10px\">请您答复是否接受此Offer <a href=\"" + confirmUrl + "&status=1\" style=\"text-decoration:underline;color:#0000cc;margin-right:10px\">接受</a> <a href=\"" + confirmUrl + "&status=2\" style=\"text-decoration:underline;color:#0000cc;\">拒绝</a></div>";
// offer附件
String offerAttach = RecruitUtil.getImageFileIdsByDocIds(Util.null2String(mainDataMap.get("fj")));
RecruitUtil.sendEmailWithFile(sendTo, emailTitle, emailContent, offerAttach);
rs.executeUpdate("update uf_recruit_lytzs set fkjg = 0 where id = ?", billId);
}
} catch (Exception e) {
rs.writeLog(e);
result.put("errmsg", e.getMessage());
result.put("flag", "false");
}
return result;
}
}
Loading…
Cancel
Save