generated from dxfeng/secondev-chapanda-feishu
OCR识别BUG修复,配置文件常量整理
This commit is contained in:
parent
194c515455
commit
006da97a98
|
|
@ -1,8 +1,17 @@
|
|||
#\u805A\u624D\u6797\u62DB\u8058\u6D88\u606F\u63D0\u9192\uFF0C\u6D88\u606F\u6765\u6E90
|
||||
#############################\u975E\u6807\u5305\u57FA\u7840\u914D\u7F6E\u76F8\u5173\u914D\u7F6E##############################
|
||||
defaultCloseNonStandard163=true
|
||||
|
||||
#############################\u670D\u52A1\u5668\u76F8\u5173\u4FE1\u606F##############################
|
||||
#\u5916\u7F51\u6620\u5C04\u5730\u5740
|
||||
#HTTP_URL=http://221.226.25.34:8086
|
||||
HTTP_URL=http://127.0.0.1:8089
|
||||
|
||||
#############################\u6D88\u606F\u63D0\u9192\u76F8\u5173\u914D\u7F6E##############################
|
||||
#\u805A\u624D\u6797\u9ED8\u8BA4\u62DB\u8058\u6D88\u606F\u63D0\u9192\uFF0C\u6D88\u606F\u6765\u6E90(\u6D88\u606F\u6765\u6E90ID\u83B7\u53D6\u65B9\u5F0F\uFF1A==\u300B\u5E94\u7528\u4E2D\u5FC3-\u6D88\u606F\u4E2D\u5FC3-\u6D88\u606F\u7C7B\u578B\u8BBE\u7F6E>>>>\u6D88\u606F\u6765\u6E90-\u5217\u4E2D\u5B57\u6BB5\u4E2D\u7684\u7ED1\u5B9A\u6807\u8BC6)
|
||||
RECRUIT_MESSAGE_TYPE=2022061063
|
||||
|
||||
|
||||
#\u9762\u8BD5\u76F8\u5173\u6D88\u606F\u63D0\u9192\uFF0C\u6D88\u606F\u6765\u6E90
|
||||
#\u9762\u8BD5\u53CD\u9988\u6D88\u606F\u63D0\u9192\uFF0C\u6D88\u606F\u6765\u6E90
|
||||
INTERVIEW_MESSAGE_TYPE=2022061063
|
||||
#\u6DFB\u52A0\u9762\u8BD5\u6D88\u606F\u63D0\u9192\u6807\u9898
|
||||
INTERVIEW_ADD_MESSAGE_TITLE=\u9762\u8BD5\u5B89\u6392\u63D0\u9192
|
||||
|
|
@ -16,9 +25,43 @@ INTERVIEW_EVALUATE_MESSAGE_TITLE=\u9762\u8BD5\u8BC4\u4EF7\u63D0\u9192
|
|||
JOIN_BLACKLIST_MESSAGE_TITLE=\u4EBA\u624D\u9ED1\u540D\u5355\u901A\u77E5
|
||||
|
||||
#\u7B5B\u9009\u53CD\u9988
|
||||
#\u7B5B\u9009\u53CD\u9988\u6D88\u606F\u63D0\u9192\uFF0C\u6D88\u606F\u6765\u6E90
|
||||
SCREENING_MESSAGE_TYPE=2022061063
|
||||
#\u7B5B\u9009\u53CD\u9988\uFF0C\u6D88\u606F\u63D0\u9192\u6807\u9898
|
||||
SCREENING_MESSAGE_TITLE=\u7B80\u5386\u7B5B\u9009
|
||||
SCREENING_MESSAGE_URL=/wui/index.html#/main/cube/search?customid=65
|
||||
#\u7B5B\u9009\u53CD\u9988\uFF0C\u6D88\u606F\u63D0\u9192\u94FE\u63A5\u5730\u5740(\u9700\u66FF\u6362\u4E0B\u9762\u94FE\u63A5\u5730\u5740\u7684ID\uFF0CID\u83B7\u53D6\u65B9\u5F0F\uFF1A==\u300B\u5EFA\u6A21\u5F15\u64CE-\u5E94\u7528\u5EFA\u6A21-\u67E5\u8BE2>>>>\u805A\u624D\u6797\u62DB\u8058\u7BA1\u7406-\u5E94\u8058\u8005\u7B80\u5386-\u7B5B\u9009\u53CD\u9988)
|
||||
SCREENING_MESSAGE_URL=/wui/index.html#/main/cube/search?customid=64
|
||||
|
||||
#\u5E94\u8058\u8005\u7B80\u5386\u5B58\u653E\u76EE\u5F55ID
|
||||
APPLICANTS_RESUMES_CATEGORY=110
|
||||
|
||||
#############################\u79FB\u52A8\u5EFA\u6A21\u76F8\u5173\u914D\u7F6E##############################
|
||||
#\u914D\u7F6E\u83B7\u53D6\u8DEF\u5F84\uFF1A\u79FB\u52A8\u5F15\u64CE-\u5E94\u7528\u5EFA\u6A21-\u5E94\u7528
|
||||
#APPID\u83B7\u53D6\u65B9\u5F0F\uFF1A\u9009\u62E9\u5BF9\u5E94\u7684\u5E94\u7528\uFF0C\u9875\u9762\u5373\u5C55\u793A\u5BF9\u5E94ID
|
||||
#\u79FB\u52A8\u5EFA\u6A21\u5730\u5740\u83B7\u53D6\u65B9\u5F0F\uFF1A\u9009\u62E9\u5BF9\u5E94\u7684\u5E94\u7528\uFF0C\u9F20\u6807\u53F3\u952E>>\u514D\u767B\u9646\u8BBF\u95EE\u8BBE\u7F6E\uFF0C\u5373\u53EF\u590D\u5236\u5E94\u7528\u8BBF\u95EE\u5730\u5740
|
||||
|
||||
#\u4FE1\u606F\u91C7\u96C6\u79FB\u52A8\u5EFA\u6A21APPID
|
||||
MOBILE_APPID_COLLECT=3
|
||||
#\u4FE1\u606F\u91C7\u96C6\u79FB\u52A8\u5EFA\u6A21\u5730\u5740
|
||||
COLLECT_MESSAGE_LINK=http://ip:port/mobilemode/mobile/view.html?appid=3&mTokenFrom=anonymous&mToken=6B56BDC3C4233A984BA4BCE626FD44CF
|
||||
|
||||
#offer\u79FB\u52A8\u5EFA\u6A21APPID
|
||||
MOBILE_APPID_OFFER=2
|
||||
#offer\u53CD\u9988\u79FB\u52A8\u5EFA\u6A21\u5730\u5740
|
||||
OFFER_MOBILE_URL=http://ip:port/mobilemode/mobile/view.html?appid=2&mTokenFrom=anonymous&mToken=C13059E5D6B68D0F23BC30B80E440C42
|
||||
|
||||
|
||||
#############################\u6587\u6863\u76EE\u5F55\u76F8\u5173\u914D\u7F6E##############################
|
||||
#\u539F\u59CB\u7B80\u5386\u9644\u4EF6\u76EE\u5F55ID\uFF08\u540E\u7AEF\u5F15\u64CE-\u5185\u5BB9\u5F15\u64CE-\u76EE\u5F55\u8BBE\u7F6E-\u6587\u6863\u76EE\u5F55>>>>\u62DB\u8058-\u539F\u59CB\u7B80\u5386\u9644\u4EF6\uFF09
|
||||
APPLICANTS_RESUMES_CATEGORY=110
|
||||
|
||||
|
||||
#############################\u5E94\u8058\u8005\u5361\u7247\u7B80\u5386\u8BC6\u522B\u914D\u7F6E##############################
|
||||
#\u5E94\u8058\u8005\u5361\u7247\uFF0C\u7B80\u5386\u8BC6\u522B\u5B9E\u73B0\u7C7B\uFF0C\u5982\u672A\u8D2D\u4E70OCR\u670D\u52A1\uFF0C\u65E0\u9700\u914D\u7F6E
|
||||
#\u5343\u91CC\u8046\u5B9E\u73B0\u7C7B\uFF1Acom.engine.recruit.service.impl.ResumeRecognitionServiceImpl
|
||||
OCR_TYPE=com.engine.recruit.service.impl.ResumeRecognitionServiceImpl
|
||||
|
||||
#\u7B80\u5386\u667A\u80FD\u62BD\u53D6\u670D\u52A1-\u5343\u91CC\u8046\u5730\u5740
|
||||
qianlilingurl=https://open.easst.cn/openapi/rest/resume
|
||||
#appid
|
||||
appId=84th31r9
|
||||
#appSecret
|
||||
appSecret=b43c83ea6f2169f2fd20e691bcdfa6f6
|
||||
|
|
@ -0,0 +1,101 @@
|
|||
package com.engine.recruit.constant;
|
||||
|
||||
import com.engine.recruit.exception.CustomizeRunTimeException;
|
||||
import weaver.general.BaseBean;
|
||||
|
||||
import java.net.URL;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/01/17
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class RecruitConstant {
|
||||
/**
|
||||
* URL分隔符
|
||||
*/
|
||||
private static final String URL_SPLIT = "/";
|
||||
|
||||
|
||||
public static final String HTTP_URL;
|
||||
public static final String RECRUIT_MESSAGE_TYPE;
|
||||
public static final String INTERVIEW_MESSAGE_TYPE;
|
||||
public static final String INTERVIEW_ADD_MESSAGE_TITLE;
|
||||
public static final String INTERVIEW_CANCEL_MESSAGE_TITLE;
|
||||
public static final String INTERVIEW_EVALUATE_MESSAGE_TITLE;
|
||||
public static final String JOIN_BLACKLIST_MESSAGE_TITLE;
|
||||
public static final String SCREENING_MESSAGE_TYPE;
|
||||
public static final String SCREENING_MESSAGE_TITLE;
|
||||
public static final String SCREENING_MESSAGE_URL;
|
||||
public static final String MOBILE_APPID_COLLECT;
|
||||
public static final String COLLECT_MESSAGE_LINK;
|
||||
public static final String MOBILE_APPID_OFFER;
|
||||
public static final String OFFER_MOBILE_URL;
|
||||
public static final String APPLICANTS_RESUMES_CATEGORY;
|
||||
public static final String OCR_TYPE;
|
||||
public static final String OCR_URL;
|
||||
public static final String APP_ID;
|
||||
public static final String APP_SECRET;
|
||||
|
||||
static BaseBean baseBean = new BaseBean();
|
||||
|
||||
static {
|
||||
|
||||
HTTP_URL = getRecruitPropValue("HTTP_URL");
|
||||
RECRUIT_MESSAGE_TYPE = getRecruitPropValue("RECRUIT_MESSAGE_TYPE");
|
||||
INTERVIEW_MESSAGE_TYPE = getRecruitPropValue("INTERVIEW_MESSAGE_TYPE");
|
||||
INTERVIEW_ADD_MESSAGE_TITLE = getRecruitPropValue("INTERVIEW_ADD_MESSAGE_TITLE");
|
||||
INTERVIEW_CANCEL_MESSAGE_TITLE = getRecruitPropValue("INTERVIEW_CANCEL_MESSAGE_TITLE");
|
||||
INTERVIEW_EVALUATE_MESSAGE_TITLE = getRecruitPropValue("INTERVIEW_EVALUATE_MESSAGE_TITLE");
|
||||
JOIN_BLACKLIST_MESSAGE_TITLE = getRecruitPropValue("JOIN_BLACKLIST_MESSAGE_TITLE");
|
||||
SCREENING_MESSAGE_TYPE = getRecruitPropValue("SCREENING_MESSAGE_TYPE");
|
||||
SCREENING_MESSAGE_TITLE = getRecruitPropValue("SCREENING_MESSAGE_TITLE");
|
||||
SCREENING_MESSAGE_URL = getCompleteUrl(getRecruitPropValue("SCREENING_MESSAGE_URL"));
|
||||
MOBILE_APPID_COLLECT = getRecruitPropValue("MOBILE_APPID_COLLECT");
|
||||
COLLECT_MESSAGE_LINK = getRecruitPropValue("COLLECT_MESSAGE_LINK");
|
||||
MOBILE_APPID_OFFER = getRecruitPropValue("MOBILE_APPID_OFFER");
|
||||
OFFER_MOBILE_URL = getCompleteUrl(getRecruitPropValue("OFFER_MOBILE_URL"));
|
||||
APPLICANTS_RESUMES_CATEGORY = getRecruitPropValue("APPLICANTS_RESUMES_CATEGORY");
|
||||
|
||||
// OCR相关
|
||||
OCR_TYPE = getRecruitPropValue("OCR_TYPE");
|
||||
OCR_URL = getRecruitPropValue("OCR_URL");
|
||||
APP_ID = getRecruitPropValue("APP_ID");
|
||||
APP_SECRET = getRecruitPropValue("APP_SECRET");
|
||||
}
|
||||
|
||||
public static String getRecruitPropValue(String key) {
|
||||
String value = baseBean.getPropValue("jclRecruit", key);
|
||||
value = new String(value.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 对外发布的URL地址,处理域名
|
||||
*
|
||||
* @param url
|
||||
* @return
|
||||
*/
|
||||
private static String getCompleteUrl(String url) {
|
||||
try {
|
||||
URL u = new URL(url);
|
||||
// 如果URL对象的getHost()方法获取到了域名,则直接返回原始URL
|
||||
if (u.getHost() != null) {
|
||||
return url;
|
||||
} else {
|
||||
// 否则,判断URL是否以"/"开头,如果是则在它前面拼接上域名
|
||||
if (url.startsWith(URL_SPLIT)) {
|
||||
return HTTP_URL + url;
|
||||
} else {
|
||||
// 如果URL既不是完整URL也不是以"/"开头,则在URL开头添加"/",再拼接上域名
|
||||
return HTTP_URL + URL_SPLIT + url;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new CustomizeRunTimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONObject;
|
|||
import com.engine.recruit.conn.CheckRepeatResume;
|
||||
import com.engine.recruit.conn.ModeBrowserCommonInfo;
|
||||
import com.engine.recruit.conn.RecruitDataMap;
|
||||
import com.engine.recruit.constant.RecruitConstant;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
|
@ -32,7 +33,6 @@ import java.util.List;
|
|||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class QllResumePo {
|
||||
private static final int SEC_CATEGORY = Convert.toInt(RecruitModeUtil.getRecruitPropValue("APPLICANTS_RESUMES_CATEGORY"));
|
||||
|
||||
private String id;
|
||||
private String xm;
|
||||
|
|
@ -69,28 +69,29 @@ public class QllResumePo {
|
|||
return null;
|
||||
}
|
||||
String resumeId = null;
|
||||
BaseBean baseBean = new BaseBean();
|
||||
try {
|
||||
JSONArray jsonArray = JSON.parseArray(jlfj);
|
||||
JSONObject jsonObject = (JSONObject) jsonArray.get(0);
|
||||
String name = jsonObject.getString("name");
|
||||
String content = jsonObject.getString("content");
|
||||
new BaseBean().writeLog("千里聆简历附件解析,id=" + id + ",jslf=" + jlfj);
|
||||
baseBean.writeLog("千里聆简历附件解析,id=" + id + ",jslf=" + jlfj);
|
||||
HttpResponse response = HttpRequest.get(content).execute();
|
||||
if (response.isOk()) {
|
||||
String disposition = response.header("Content-Disposition");
|
||||
if (StringUtils.isNotBlank(disposition)) {
|
||||
InputStream inputStream = response.bodyStream();
|
||||
int imageFileId = RecruitModeUtil.generateImageFileId(inputStream, name);
|
||||
int docId = RecruitModeUtil.createDocId(SEC_CATEGORY, imageFileId, new User(1));
|
||||
int docId = RecruitModeUtil.createDocId(Convert.toInt(RecruitConstant.APPLICANTS_RESUMES_CATEGORY), imageFileId, new User(1));
|
||||
resumeId = String.valueOf(docId);
|
||||
} else {
|
||||
new BaseBean().writeLog("千里聆附件下载失败,Content-Disposition为空===" + response.body());
|
||||
baseBean.writeLog("千里聆附件下载失败" + response.body());
|
||||
}
|
||||
} else {
|
||||
new BaseBean().writeLog("千里聆附件下载失败,URL响应失败");
|
||||
baseBean.writeLog("千里聆附件下载失败,URL响应失败");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
new BaseBean().writeLog("千里聆附件下载失败", e);
|
||||
baseBean.writeLog("千里聆附件下载失败", e);
|
||||
}
|
||||
return resumeId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.engine.recruit.service.impl;
|
|||
import cn.hutool.core.convert.Convert;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.recruit.conn.*;
|
||||
import com.engine.recruit.constant.RecruitConstant;
|
||||
import com.engine.recruit.entity.record.ApplicantRecordPo;
|
||||
import com.engine.recruit.entity.resume.OcrResumePo;
|
||||
import com.engine.recruit.enums.ApplicantOperateEnum;
|
||||
|
|
@ -310,7 +311,7 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu
|
|||
|
||||
int imageFileId = Convert.toInt(params.get("imageFileId"));
|
||||
int resumeId = Convert.toInt(params.get("resumeId"));
|
||||
int secCategory = Convert.toInt(RecruitModeUtil.getRecruitPropValue("APPLICANTS_RESUMES_CATEGORY"));
|
||||
int secCategory = Convert.toInt(RecruitConstant.APPLICANTS_RESUMES_CATEGORY);
|
||||
RecordSet rs = new RecordSet();
|
||||
try {
|
||||
int docId = RecruitModeUtil.createDocId(secCategory, imageFileId, user);
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.engine.core.impl.Service;
|
|||
import com.engine.recruit.conn.ApplicantCommonInfo;
|
||||
import com.engine.recruit.conn.RecruitDataMap;
|
||||
import com.engine.recruit.conn.RecruitRecordSet;
|
||||
import com.engine.recruit.constant.RecruitConstant;
|
||||
import com.engine.recruit.entity.record.ApplicantRecordPo;
|
||||
import com.engine.recruit.enums.EntryStatusEnum;
|
||||
import com.engine.recruit.enums.InfoCollectEnum;
|
||||
|
|
@ -28,7 +29,6 @@ import java.util.stream.Collectors;
|
|||
* @version: 1.0
|
||||
*/
|
||||
public class InductionManageServiceImpl extends Service implements InductionManageService {
|
||||
private static final String MOBILE_APPID_COLLECT = RecruitModeUtil.getRecruitPropValue("MOBILE_APPID_COLLECT");
|
||||
|
||||
@Override
|
||||
public Map<String, Object> updateInductionManageInfo(Map<String, Object> param) {
|
||||
|
|
@ -47,11 +47,11 @@ public class InductionManageServiceImpl extends Service implements InductionMana
|
|||
public Map<String, Object> sendCollectInfo(Map<String, Object> param) {
|
||||
String ids = Util.null2String(param.get("ids"));
|
||||
String[] split = ids.split(",");
|
||||
if (StringUtils.isBlank(MOBILE_APPID_COLLECT)) {
|
||||
if (StringUtils.isBlank(RecruitConstant.MOBILE_APPID_COLLECT)) {
|
||||
throw new CustomizeRunTimeException("未获取到对应移动建模ID,请检查配置文件");
|
||||
}
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select noLoginUser from mobileappbaseinfo where id = ?", MOBILE_APPID_COLLECT);
|
||||
rs.executeQuery("select noLoginUser from mobileappbaseinfo where id = ?", RecruitConstant.MOBILE_APPID_COLLECT);
|
||||
int creator = -1;
|
||||
if (rs.next()) {
|
||||
creator = rs.getInt("noLoginUser");
|
||||
|
|
@ -127,7 +127,7 @@ public class InductionManageServiceImpl extends Service implements InductionMana
|
|||
String mobile = Util.null2String(dataMap.get("sjh"));
|
||||
String email = Util.null2String(dataMap.get("yx"));
|
||||
|
||||
String messageLink = RecruitModeUtil.HTTP_URL + RecruitModeUtil.getRecruitPropValue("COLLECT_MESSAGE_LINK");
|
||||
String messageLink = RecruitConstant.COLLECT_MESSAGE_LINK;
|
||||
//messageLink += "&billId=" + id;
|
||||
|
||||
yjnr = yjnr.replace("{链接地址}", messageLink);
|
||||
|
|
|
|||
|
|
@ -2,13 +2,14 @@ package com.engine.recruit.service.impl;
|
|||
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.recruit.conn.ApplicantCommonInfo;
|
||||
import com.engine.recruit.constant.RecruitConstant;
|
||||
import com.engine.recruit.entity.record.ApplicantRecordPo;
|
||||
import com.engine.recruit.enums.ApplicationStatusEnum;
|
||||
import com.engine.recruit.enums.RecordOperateEnum;
|
||||
import com.engine.recruit.service.RecruitButtonService;
|
||||
import weaver.common.DateUtil;
|
||||
import weaver.conn.RecordSet;
|
||||
import com.engine.recruit.conn.ApplicantCommonInfo;
|
||||
import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil;
|
||||
import weaver.general.Util;
|
||||
|
||||
|
|
@ -57,8 +58,8 @@ public class JoinBlacklistServiceImpl extends Service implements RecruitButtonSe
|
|||
recordPo.execute();
|
||||
|
||||
// 消息提醒当前人员简历的跟进者(应聘职位的负责人/协助人)
|
||||
String messageType = RecruitModeUtil.getRecruitPropValue("RECRUIT_MESSAGE_TYPE");
|
||||
String messageTitle = RecruitModeUtil.getRecruitPropValue("JOIN_BLACKLIST_MESSAGE_TITLE");
|
||||
String messageType = RecruitConstant.RECRUIT_MESSAGE_TYPE;
|
||||
String messageTitle = RecruitConstant.JOIN_BLACKLIST_MESSAGE_TITLE;
|
||||
String applicantName = ApplicantCommonInfo.getApplicantName(billId);
|
||||
String operatorName = RecruitModeUtil.getResourceNames(String.valueOf(user.getUID()));
|
||||
String messageContent = "应聘者:【" + applicantName + "】,已被【" + operatorName + "】加入黑名单,相关投递已自动淘汰,请知悉。";
|
||||
|
|
|
|||
|
|
@ -4,10 +4,8 @@ import cn.hutool.core.convert.Convert;
|
|||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.recruit.conn.ApplicantCommonInfo;
|
||||
import com.engine.recruit.conn.CheckRepeatResume;
|
||||
import com.engine.recruit.conn.ModeBrowserCommonInfo;
|
||||
import com.engine.recruit.conn.RecruitRecordSet;
|
||||
import com.engine.recruit.conn.*;
|
||||
import com.engine.recruit.constant.RecruitConstant;
|
||||
import com.engine.recruit.enums.ApplicationStatusEnum;
|
||||
import com.engine.recruit.exception.CustomizeRunTimeException;
|
||||
import com.engine.recruit.service.ResumeRecognitionService;
|
||||
|
|
@ -25,13 +23,13 @@ import org.apache.http.util.EntityUtils;
|
|||
import weaver.conn.RecordSet;
|
||||
import weaver.file.ImageFileManager;
|
||||
import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.general.Util;
|
||||
|
||||
import java.math.BigInteger;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
|
|
@ -66,15 +64,15 @@ public class ResumeRecognitionServiceImpl extends Service implements ResumeRecog
|
|||
qllResumeUpload(Convert.toInt(resumeId), uploadDataMap, false);
|
||||
Map<String, Object> resumeData = (Map<String, Object>) uploadDataMap.get("data");
|
||||
// 添加原始附件字段信息
|
||||
int secCategory = Convert.toInt(RecruitModeUtil.getRecruitPropValue("APPLICANTS_RESUMES_CATEGORY"));
|
||||
int secCategory = Convert.toInt(RecruitConstant.APPLICANTS_RESUMES_CATEGORY);
|
||||
try {
|
||||
int docId = RecruitModeUtil.createDocId(secCategory, Convert.toInt(resumeId), user);
|
||||
resumeData.put("ysjl", docId);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
List<Map<String, Object>> studyList = (List<Map<String, Object>>) resumeData.remove("jyjl");
|
||||
List<Map<String, Object>> workList = (List<Map<String, Object>>) resumeData.remove("gzjl");
|
||||
List<RecruitDataMap<Object>> studyList = (List<RecruitDataMap<Object>>) resumeData.remove("jyjl");
|
||||
List<RecruitDataMap<Object>> workList = (List<RecruitDataMap<Object>>) resumeData.remove("gzjl");
|
||||
|
||||
// 状态
|
||||
resumeData.put("zt", ApplicationStatusEnum.DISTRIBUTION.getValue());
|
||||
|
|
@ -87,28 +85,15 @@ public class ResumeRecognitionServiceImpl extends Service implements ResumeRecog
|
|||
|
||||
|
||||
// 判断简历信息
|
||||
Map<String, Object> map = CheckRepeatResume.getInstance().insertResumeAndReturn(resumeData);
|
||||
CheckRepeatResume instance = CheckRepeatResume.getInstance();
|
||||
Map<String, Object> map = instance.insertResumeAndReturn(resumeData);
|
||||
String mainId = Util.null2String(map.get("mainId"));
|
||||
String sourceId = Util.null2String(map.get("sourceId"));
|
||||
returnMap.put("mainId", mainId);
|
||||
returnMap.put("sourceId", sourceId);
|
||||
returnMap.put("id", StringUtils.isNotBlank(sourceId) ? sourceId : mainId);
|
||||
|
||||
// 插入明细表数据
|
||||
if (CollectionUtils.isNotEmpty(studyList)) {
|
||||
for (Map<String, Object> studMap : studyList) {
|
||||
studMap.put("mainid", mainId);
|
||||
RecruitRecordSet.insertData(studMap, "uf_jcl_yppc_dt1");
|
||||
}
|
||||
}
|
||||
|
||||
if (CollectionUtils.isNotEmpty(workList)) {
|
||||
for (Map<String, Object> workMap : workList) {
|
||||
workMap.put("mainid", mainId);
|
||||
RecruitRecordSet.insertData(workMap, "uf_jcl_yppc_dt2");
|
||||
}
|
||||
}
|
||||
|
||||
instance.insertResumeDetailTable(studyList, "uf_jcl_yppc_dt1", mainId, sourceId);
|
||||
instance.insertResumeDetailTable(workList, "uf_jcl_yppc_dt2", mainId, sourceId);
|
||||
return returnMap;
|
||||
}
|
||||
|
||||
|
|
@ -235,12 +220,13 @@ public class ResumeRecognitionServiceImpl extends Service implements ResumeRecog
|
|||
// 明细表数据
|
||||
// 教育经历
|
||||
JSONArray jyjl = obj.getJSONArray("学业信息");
|
||||
List<Map<String, Object>> studyList = new ArrayList<>();
|
||||
List<RecruitDataMap<Object>> studyList = new ArrayList<>();
|
||||
if (null != jyjl && jyjl.size() > 0) {
|
||||
for (int i = 0; i < jyjl.size(); i++) {
|
||||
JSONObject o = (JSONObject) jyjl.get(i);
|
||||
String studyDate = o.getString("就读时期");
|
||||
Map<String, Object> studyMap = new HashMap<>(getDateRange(studyDate, true));
|
||||
RecruitDataMap<Object> studyMap = new RecruitDataMap<>();
|
||||
studyMap.putAll(getDateRange(studyDate, true));
|
||||
studyMap.put("xxmc", o.getString("院校"));
|
||||
List<Map<String, String>> xl = getBrowserArray(o.getString("学历"), this::getEducationLevelArray);
|
||||
studyMap.put("xl", xl);
|
||||
|
|
@ -255,12 +241,13 @@ public class ResumeRecognitionServiceImpl extends Service implements ResumeRecog
|
|||
|
||||
// 工作经历
|
||||
JSONArray gzjl = obj.getJSONArray("工作信息");
|
||||
List<Map<String, String>> workList = new ArrayList<>();
|
||||
List<RecruitDataMap<Object>> workList = new ArrayList<>();
|
||||
if (null != gzjl && gzjl.size() > 0) {
|
||||
for (int i = 0; i < gzjl.size(); i++) {
|
||||
JSONObject o = (JSONObject) gzjl.get(i);
|
||||
String workDate = o.getString("工作时间");
|
||||
Map<String, String> workMap = new HashMap<>(getDateRange(workDate, false));
|
||||
RecruitDataMap<Object> workMap = new RecruitDataMap<>();
|
||||
workMap.putAll(getDateRange(workDate, false));
|
||||
workMap.put("gsmc", o.getString("工作单位"));
|
||||
workMap.put("gw", o.getString("工作岗位"));
|
||||
workMap.put("gzzz", o.getString("工作内容"));
|
||||
|
|
@ -299,9 +286,9 @@ public class ResumeRecognitionServiceImpl extends Service implements ResumeRecog
|
|||
* @return
|
||||
*/
|
||||
private String doQllPost(int resumeId) {
|
||||
String url = RecruitModeUtil.getRecruitPropValue("qianlilingurl");
|
||||
String appId = RecruitModeUtil.getRecruitPropValue("appId");
|
||||
String appSecret = RecruitModeUtil.getRecruitPropValue("appSecret");
|
||||
String url = RecruitConstant.OCR_URL;
|
||||
String appId = RecruitConstant.APP_ID;
|
||||
String appSecret = RecruitConstant.APP_SECRET;
|
||||
if (StringUtils.isAnyBlank(url, appId, appSecret)) {
|
||||
throw new CustomizeRunTimeException("千里聆配置出错,请检查配置文件");
|
||||
}
|
||||
|
|
@ -389,12 +376,16 @@ public class ResumeRecognitionServiceImpl extends Service implements ResumeRecog
|
|||
* @return
|
||||
*/
|
||||
private String parseDateObject(String value) {
|
||||
if (StringUtils.isBlank(value)) {
|
||||
return null;
|
||||
}
|
||||
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
sdf.setLenient(false);
|
||||
try {
|
||||
sdf.parse(value);
|
||||
} catch (ParseException e) {
|
||||
value = "";
|
||||
} catch (Exception e) {
|
||||
new BaseBean().writeLog("日期格式化失败", e);
|
||||
value = null;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
|
@ -405,8 +396,8 @@ public class ResumeRecognitionServiceImpl extends Service implements ResumeRecog
|
|||
* @param date
|
||||
* @return
|
||||
*/
|
||||
private Map<String, String> getDateRange(String date, boolean isStudy) {
|
||||
Map<String, String> dataRangeMap = new HashMap<>(2);
|
||||
private RecruitDataMap<Object> getDateRange(String date, boolean isStudy) {
|
||||
RecruitDataMap<Object> dataRangeMap = new RecruitDataMap<>();
|
||||
String[] split = date.split("-");
|
||||
if (split.length == 2) {
|
||||
String start = getFormatDate(split[0]);
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import com.engine.recruit.conn.ApplicantCommonInfo;
|
|||
import com.engine.recruit.conn.CheckRepeatResume;
|
||||
import com.engine.recruit.conn.PositionCommonInfo;
|
||||
import com.engine.recruit.conn.RecruitDataMap;
|
||||
import com.engine.recruit.constant.RecruitConstant;
|
||||
import com.engine.recruit.enums.ApplicationStatusEnum;
|
||||
import com.engine.recruit.enums.CommonBrowserTypeEnum;
|
||||
import com.engine.recruit.enums.HighestDegreeEnum;
|
||||
|
|
@ -35,7 +36,7 @@ import java.util.Map;
|
|||
public class SdkResumeSavedThread extends LocalRunnable {
|
||||
|
||||
private ResumeMqMessage resumeMqMessage;
|
||||
private static final int SEC_CATEGORY = Convert.toInt(RecruitModeUtil.getRecruitPropValue("APPLICANTS_RESUMES_CATEGORY"));
|
||||
private static final int SEC_CATEGORY = Convert.toInt(RecruitConstant.APPLICANTS_RESUMES_CATEGORY);
|
||||
|
||||
public SdkResumeSavedThread(ResumeMqMessage resumeMqMessage) {
|
||||
this.resumeMqMessage = resumeMqMessage;
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@ package com.engine.recruit.wrapper;
|
|||
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.recruit.constant.RecruitConstant;
|
||||
import com.engine.recruit.factory.ResumeRecognitionFactory;
|
||||
import com.engine.recruit.service.ResumeRecognitionService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.util.Map;
|
||||
|
|
@ -18,25 +18,25 @@ import java.util.Map;
|
|||
public class ResumeRecognitionWrapper extends Service {
|
||||
|
||||
private ResumeRecognitionService getResumeRecognitionService(User user) {
|
||||
return ServiceUtil.getService(ResumeRecognitionFactory.getClass(RecruitModeUtil.OCR_TYPE), user);
|
||||
return ServiceUtil.getService(ResumeRecognitionFactory.getClass(RecruitConstant.OCR_TYPE), user);
|
||||
}
|
||||
|
||||
public Map<String, Object> resumeUpload(Map<String, Object> param) {
|
||||
if (StringUtils.isBlank(RecruitModeUtil.OCR_TYPE)) {
|
||||
if (StringUtils.isBlank(RecruitConstant.OCR_TYPE)) {
|
||||
return null;
|
||||
}
|
||||
return getResumeRecognitionService(user).resumeUpload(param);
|
||||
}
|
||||
|
||||
public Map<String, Object> importResume(Map<String, Object> param) {
|
||||
if (StringUtils.isBlank(RecruitModeUtil.OCR_TYPE)) {
|
||||
if (StringUtils.isBlank(RecruitConstant.OCR_TYPE)) {
|
||||
return null;
|
||||
}
|
||||
return getResumeRecognitionService(user).importResume(param);
|
||||
}
|
||||
|
||||
public Map<String, Object> fetchResume(Map<String, Object> param) {
|
||||
if (StringUtils.isBlank(RecruitModeUtil.OCR_TYPE)) {
|
||||
if (StringUtils.isBlank(RecruitConstant.OCR_TYPE)) {
|
||||
return null;
|
||||
}
|
||||
return getResumeRecognitionService(user).fetchResume(param);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package weaver.formmode.recruit.modeexpand.departmentscreening;
|
||||
|
||||
import com.engine.recruit.conn.ApplicantCommonInfo;
|
||||
import com.engine.recruit.constant.RecruitConstant;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.common.DateUtil;
|
||||
|
|
@ -97,9 +98,9 @@ public class BatchAddDeptScreeningModeExpand extends AbstractModeExpandJavaCodeN
|
|||
}
|
||||
|
||||
// 发送待办消息
|
||||
String messageType = RecruitModeUtil.getRecruitPropValue("SCREENING_MESSAGE_TYPE");
|
||||
String messageTitle = RecruitModeUtil.getRecruitPropValue("SCREENING_MESSAGE_TITLE");
|
||||
String linkUrl = RecruitModeUtil.getRecruitPropValue("SCREENING_MESSAGE_URL");
|
||||
String messageType = RecruitConstant.SCREENING_MESSAGE_TYPE;
|
||||
String messageTitle = RecruitConstant.SCREENING_MESSAGE_TITLE;
|
||||
String linkUrl = RecruitConstant.SCREENING_MESSAGE_URL;
|
||||
String fkr = Util.null2String(mainDataMap.get("fkr"));
|
||||
Set<String> userIdSet = new HashSet<>(Arrays.asList(fkr.split(",")));
|
||||
RecruitModeUtil.messagePush(messageType, messageTitle, msgBuilder.toString(), userIdSet, user.getUID(), linkUrl, "");
|
||||
|
|
|
|||
|
|
@ -1,11 +1,12 @@
|
|||
package weaver.formmode.recruit.modeexpand.departmentscreening;
|
||||
|
||||
import com.engine.recruit.conn.ApplicantCommonInfo;
|
||||
import com.engine.recruit.constant.RecruitConstant;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.common.DateUtil;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew;
|
||||
import com.engine.recruit.conn.ApplicantCommonInfo;
|
||||
import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil;
|
||||
import weaver.formmode.setup.ModeRightInfo;
|
||||
import weaver.general.BaseBean;
|
||||
|
|
@ -79,9 +80,9 @@ public class SingleAddDeptScreeningModeExpand extends AbstractModeExpandJavaCode
|
|||
}
|
||||
}
|
||||
// 发送待办消息
|
||||
String messageType = RecruitModeUtil.getRecruitPropValue("SCREENING_MESSAGE_TYPE");
|
||||
String messageTitle = RecruitModeUtil.getRecruitPropValue("SCREENING_MESSAGE_TITLE");
|
||||
String linkUrl = RecruitModeUtil.getRecruitPropValue("SCREENING_MESSAGE_URL");
|
||||
String messageType = RecruitConstant.SCREENING_MESSAGE_TYPE;
|
||||
String messageTitle = RecruitConstant.SCREENING_MESSAGE_TITLE;
|
||||
String linkUrl = RecruitConstant.SCREENING_MESSAGE_URL;
|
||||
String fkr = Util.null2String(dataMap.get("fkr"));
|
||||
String applicantName = ApplicantCommonInfo.getApplicantName(Util.null2String(dataMap.get("ypz")));
|
||||
String applicantPosition = ApplicantCommonInfo.getApplicantPosition(Util.null2String(dataMap.get("ypzw")));
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package weaver.formmode.recruit.modeexpand.interview;
|
||||
|
||||
import com.engine.recruit.constant.RecruitConstant;
|
||||
import com.engine.recruit.util.RecruitMessageUtils;
|
||||
import com.weaver.formmodel.data.model.Formfield;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
|
|
@ -28,21 +29,6 @@ import java.util.stream.Collectors;
|
|||
public class BatchAddInterviewResultModeExpand extends AbstractModeExpandJavaCodeNew {
|
||||
private static final String MODE_TABLE_NAME = "uf_jcl_ms";
|
||||
|
||||
/**
|
||||
* 消息来源ID
|
||||
*/
|
||||
private final String messageType;
|
||||
|
||||
/**
|
||||
* 消息提醒标题
|
||||
*/
|
||||
private final String title;
|
||||
|
||||
public BatchAddInterviewResultModeExpand() {
|
||||
super();
|
||||
messageType = RecruitModeUtil.getRecruitPropValue("INTERVIEW_MESSAGE_TYPE");
|
||||
title = RecruitModeUtil.getRecruitPropValue("INTERVIEW_ADD_MESSAGE_TITLE");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, String> doModeExpand(Map<String, Object> param) {
|
||||
|
|
@ -132,7 +118,8 @@ public class BatchAddInterviewResultModeExpand extends AbstractModeExpandJavaCod
|
|||
String sjh = Util.null2String(detailDataMap.get("sjhm"));
|
||||
if (sendEmail) {
|
||||
if (needFeedback) {
|
||||
String confirmUrl = RecruitModeUtil.HTTP_URL + "/spa/custom/static/index.html#/main/cs/app/9277c228302347dc88a958b69ee96234_Interview?uuid=" + uuid;
|
||||
// TODO
|
||||
String confirmUrl = RecruitConstant.HTTP_URL + "/spa/custom/static/index.html#/main/cs/app/9277c228302347dc88a958b69ee96234_Interview?uuid=" + uuid;
|
||||
String 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\">请您答复是否参加此次邀请? <a href=\"" + confirmUrl + "&status=0\" style=\"text-decoration:underline;color:#0000cc;margin-right:10px\">参加</a> <a href=\"" + confirmUrl + "&status=1\" style=\"text-decoration:underline;color:#0000cc;\">不参加</a></div>";
|
||||
// 邮件内容拼接确认信息
|
||||
emailContent = msgContent + emailContent;
|
||||
|
|
@ -162,7 +149,7 @@ public class BatchAddInterviewResultModeExpand extends AbstractModeExpandJavaCod
|
|||
Set<String> userIdSet = new HashSet<>();
|
||||
userIdSet.addAll(Arrays.asList(msg.split(",")));
|
||||
userIdSet.addAll(Arrays.asList(ptmsg.split(",")));
|
||||
RecruitModeUtil.messagePush(messageType, title, msgBuilder.toString(), userIdSet, user.getUID());
|
||||
RecruitModeUtil.messagePush(RecruitConstant.INTERVIEW_MESSAGE_TYPE, RecruitConstant.INTERVIEW_ADD_MESSAGE_TITLE, msgBuilder.toString(), userIdSet, user.getUID());
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package weaver.formmode.recruit.modeexpand.interview;
|
||||
|
||||
import com.engine.recruit.conn.ApplicantCommonInfo;
|
||||
import com.engine.recruit.constant.RecruitConstant;
|
||||
import com.engine.recruit.enums.InterviewOperateTypeEnum;
|
||||
import com.engine.recruit.util.RecruitMessageUtils;
|
||||
import com.weaver.formmodel.data.model.Formfield;
|
||||
|
|
@ -67,8 +68,8 @@ public class CreateInterviewModeExpand extends AbstractModeExpandJavaCodeNew {
|
|||
}
|
||||
InterviewOperateTypeEnum operateTypeEnum = InterviewOperateTypeEnum.getOperateType(operateType);
|
||||
if (operateTypeEnum == InterviewOperateTypeEnum.ARRANGE) {
|
||||
messageType = RecruitModeUtil.getRecruitPropValue("INTERVIEW_MESSAGE_TYPE");
|
||||
title = RecruitModeUtil.getRecruitPropValue("INTERVIEW_ADD_MESSAGE_TITLE");
|
||||
messageType = RecruitConstant.INTERVIEW_MESSAGE_TYPE;
|
||||
title = RecruitConstant.INTERVIEW_ADD_MESSAGE_TITLE;
|
||||
// 消息提醒
|
||||
arrangeInterview(user, mainDataMap);
|
||||
|
||||
|
|
@ -94,7 +95,8 @@ public class CreateInterviewModeExpand extends AbstractModeExpandJavaCodeNew {
|
|||
if (rs.next()) {
|
||||
uuid = rs.getString("modeuuid");
|
||||
}
|
||||
String confirmUrl = RecruitModeUtil.HTTP_URL + "/spa/custom/static/index.html#/main/cs/app/9277c228302347dc88a958b69ee96234_Interview?uuid=" + uuid;
|
||||
// TODO
|
||||
String confirmUrl = RecruitConstant.HTTP_URL + "/spa/custom/static/index.html#/main/cs/app/9277c228302347dc88a958b69ee96234_Interview?uuid=" + uuid;
|
||||
String 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\">请您答复是否参加此次邀请? <a href=\"" + confirmUrl + "&status=0\" style=\"text-decoration:underline;color:#0000cc;margin-right:10px\">参加</a> <a href=\"" + confirmUrl + "&status=1\" style=\"text-decoration:underline;color:#0000cc;\">不参加</a></div>";
|
||||
// 邮件内容拼接确认信息
|
||||
emailContent = msgContent + emailContent;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
package weaver.formmode.recruit.modeexpand.interview;
|
||||
|
||||
import com.engine.recruit.conn.ApplicantCommonInfo;
|
||||
import com.engine.recruit.constant.RecruitConstant;
|
||||
import com.engine.recruit.enums.InterviewOperateTypeEnum;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew;
|
||||
import com.engine.recruit.conn.ApplicantCommonInfo;
|
||||
import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.User;
|
||||
|
|
@ -63,14 +64,14 @@ public class UpdateInterviewModeExpand extends AbstractModeExpandJavaCodeNew {
|
|||
switch (operateTypeEnum) {
|
||||
case EVALUATE:
|
||||
// 面试评价
|
||||
messageType = RecruitModeUtil.getRecruitPropValue("INTERVIEW_MESSAGE_TYPE");
|
||||
title = RecruitModeUtil.getRecruitPropValue("INTERVIEW_EVALUATE_MESSAGE_TITLE");
|
||||
messageType = RecruitConstant.INTERVIEW_MESSAGE_TYPE;
|
||||
title = RecruitConstant.INTERVIEW_EVALUATE_MESSAGE_TITLE;
|
||||
evaluateInterview(params, requestInfo.getCreatorid(), mainDataMap);
|
||||
break;
|
||||
case CANCEL:
|
||||
// 面试取消
|
||||
messageType = RecruitModeUtil.getRecruitPropValue("INTERVIEW_MESSAGE_TYPE");
|
||||
title = RecruitModeUtil.getRecruitPropValue("INTERVIEW_CANCEL_MESSAGE_TITLE");
|
||||
messageType = RecruitConstant.INTERVIEW_MESSAGE_TYPE;
|
||||
title = RecruitConstant.INTERVIEW_CANCEL_MESSAGE_TITLE;
|
||||
cancelInterView(params, requestInfo, billId, mainDataMap);
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package weaver.formmode.recruit.modeexpand.offer;
|
||||
|
||||
import com.engine.recruit.constant.RecruitConstant;
|
||||
import com.engine.recruit.enums.RecordOperateEnum;
|
||||
import com.engine.recruit.util.RecruitMessageUtils;
|
||||
import com.weaver.formmodel.data.model.Formfield;
|
||||
|
|
@ -59,8 +60,7 @@ public class CreateOfferModeExpand extends AbstractModeExpandJavaCodeNew {
|
|||
List<Formfield> fieldList = RecruitModeUtil.getFieldList("uf_jcl_offer");
|
||||
Map<String, List<Formfield>> fieldMapList = fieldList.stream().collect(Collectors.groupingBy(Formfield::getLabelName));
|
||||
// 发送邮件
|
||||
String offerMobileUrl = RecruitModeUtil.HTTP_URL + RecruitModeUtil.getRecruitPropValue("OFFER_MOBILE_URL");
|
||||
offerMobileUrl += "&billid=" + billId + "&dzyx=" + yx;
|
||||
String offerMobileUrl = RecruitConstant.OFFER_MOBILE_URL + "&billid=" + billId + "&dzyx=" + yx;
|
||||
String mobileLink = "<span color='red'><a href='" + offerMobileUrl + "' target='_blank'>录用通知函</a></span>";
|
||||
tznr = tznr.replace("{录用通知函}", mobileLink);
|
||||
String msgContent = RecruitModeUtil.getReplaceContent(tznr, fieldMapList, mainDataMap);
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ import weaver.hrm.resource.ResourceComInfo;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.*;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
|
@ -37,14 +36,6 @@ import java.util.regex.Pattern;
|
|||
public class RecruitModeUtil {
|
||||
private static final Pattern MSG_PATTERN = Pattern.compile(Pattern.quote("{") + "(.*?)" + Pattern.quote("}"));
|
||||
|
||||
/**
|
||||
* 服务外网映射地址
|
||||
*/
|
||||
public static final String HTTP_URL = getRecruitPropValue("HTTP_URL");
|
||||
/**
|
||||
* 简历识别服务类
|
||||
*/
|
||||
public static final String OCR_TYPE = getRecruitPropValue("OCR_TYPE");
|
||||
|
||||
/**
|
||||
* 消息推送
|
||||
|
|
@ -95,17 +86,6 @@ public class RecruitModeUtil {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取聚才林招聘相关配置文件
|
||||
*
|
||||
* @param key key
|
||||
* @return value
|
||||
*/
|
||||
public static String getRecruitPropValue(String key) {
|
||||
String value = new BaseBean().getPropValue("jclRecruit", key);
|
||||
value = new String(value.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
|
||||
return value;
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换空字符串为null
|
||||
|
|
|
|||
Loading…
Reference in New Issue