generated from dxfeng/secondev-chapanda-feishu
Compare commits
No commits in common. "main" and "feature/dxf" have entirely different histories.
main
...
feature/dxf
|
|
@ -1,4 +1,4 @@
|
|||
.iml
|
||||
/weaver-hrm-recruit.iml
|
||||
/out/
|
||||
/.idea/
|
||||
|
||||
|
|
@ -8,12 +8,19 @@ target/
|
|||
|
||||
### IntelliJ IDEA ###
|
||||
.idea
|
||||
|
||||
HELP.md
|
||||
target/
|
||||
|
||||
/src/test
|
||||
/src/rebel.xml
|
||||
/src/META-INF
|
||||
### IntelliJ IDEA ###
|
||||
.idea
|
||||
|
||||
/log
|
||||
|
||||
/src/test
|
||||
/src/rebel.xml
|
||||
/src/META-INF
|
||||
|
||||
/log
|
||||
/build/
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -0,0 +1,72 @@
|
|||
#############################\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\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
|
||||
#\u53D6\u6D88\u9762\u8BD5\u6D88\u606F\u63D0\u9192\u6807\u9898
|
||||
INTERVIEW_CANCEL_MESSAGE_TITLE=\u53D6\u6D88\u9762\u8BD5\u63D0\u9192
|
||||
#\u9762\u8BD5\u8BC4\u4EF7\u6D88\u606F\u63D0\u9192\u6807\u9898
|
||||
INTERVIEW_EVALUATE_MESSAGE_TITLE=\u9762\u8BD5\u8BC4\u4EF7\u63D0\u9192
|
||||
|
||||
|
||||
#\u4EBA\u624D\u9ED1\u540D\u5355\u901A\u77E5
|
||||
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
|
||||
#\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
|
||||
|
||||
|
||||
#############################\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
|
||||
|
||||
|
||||
#############################\u53CD\u9988\u5730\u5740\u76F8\u5173\u914D\u7F6E##############################
|
||||
#\u9762\u8BD5\u53CD\u9988\u5730\u5740\uFF0C\u5982\u672A\u81EA\u884C\u8C03\u6574ecode,\u65E0\u9700\u4FEE\u6539\u8BE5\u5730\u5740
|
||||
INTERVIEW_FEEDBACK_URL=/spa/custom/static/index.html#/main/cs/app/9277c228302347dc88a958b69ee96234_Interview
|
||||
|
||||
|
||||
#############################\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
|
||||
OCR_URL=https://open.easst.cn/openapi/rest/resume
|
||||
#appid
|
||||
APP_ID=84th31r9
|
||||
#appSecret
|
||||
APP_SECRET=b43c83ea6f2169f2fd20e691bcdfa6f6
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
description = "子模块demo项目"
|
||||
|
||||
dependencies {
|
||||
// 子项目私有依赖添加
|
||||
implementation project(':secondev-chapanda-portal')
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.api.recruit.controller;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/09/20
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Path("/jcl/recruit/applicant")
|
||||
public class ApplicantResumeController extends com.engine.recruit.controller.ApplicantResumeController{
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.api.recruit.controller;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/23
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Path("/jcl/recruit/induction")
|
||||
public class InductionManageController extends com.engine.recruit.controller.InductionManageController{
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.api.recruit.controller;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/11/23
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Path("/jcl/recruit/init")
|
||||
public class InitRecruitDataController extends com.engine.recruit.controller.InitRecruitDataController {
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.api.recruit.controller;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/09/26
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Path("/jcl/recruit/message")
|
||||
public class MessageTemplateController extends com.engine.recruit.controller.MessageTemplateController {
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.api.recruit.controller;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/09/18
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Path("/jcl/recruit/button")
|
||||
public class RecruitButtonController extends com.engine.recruit.controller.RecruitButtonController{
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.api.recruit.controller;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/09/20
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Path("/jcl/recruit/recruitflow")
|
||||
public class RecruitFlowController extends com.engine.recruit.controller.RecruitFlowController{
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.api.recruit.controller;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/11/15
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Path("/jcl/recruit/mobile")
|
||||
public class RecruitMobileModeController extends com.engine.recruit.controller.RecruitMobileModeController{
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.api.recruit.controller;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/05/21
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Path("/jcl/recruit/offer")
|
||||
public class RecruitOfferController extends com.engine.recruit.controller.RecruitOfferController{
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.api.recruit.controller;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/09
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Path("/jcl/recruit/position")
|
||||
public class RecruitPositionController extends com.engine.recruit.controller.RecruitPositionController{
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.api.recruit.controller;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/03/27
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Path("/jcl/recruit/schedule")
|
||||
public class RecruitScheduleController extends com.engine.recruit.controller.RecruitScheduleController{
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.api.recruit.controller;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/12/12
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Path("/jcl/recruit/resume")
|
||||
public class ResumeRecognitionController extends com.engine.recruit.controller.ResumeRecognitionController {
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.api.recruit.controller;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/03/13
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Path("/jcl/recruit/remind")
|
||||
public class ResumeRemindController extends com.engine.recruit.controller.ResumeRemindController {
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.api.recruit.controller;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/27
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Path("/jcl/recruit/rpa")
|
||||
public class RpaJclController extends com.engine.recruit.controller.RpaJclController {
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.api.recruit.controller;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/20
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Path("/jcl/recruit/talentpool")
|
||||
public class TalentPoolController extends com.engine.recruit.controller.TalentPoolController{
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
package com.api.recruit.controller;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2023/10/18 4:31 PM
|
||||
* @Description: 招聘工作台
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Path("/jcl/recruit/workbench")
|
||||
public class WorkBenchPortalController extends com.engine.recruit.controller.WorkBenchPortalController {
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package com.api.recruit.controller;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2023/10/17 10:49 AM
|
||||
* @Description:
|
||||
* @Version 1.0
|
||||
*/
|
||||
|
||||
@Path("/jcl/recruit/workplan")
|
||||
public class WorkPlanController extends com.engine.recruit.controller.WorkPlanController {
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.api.recruit.controller;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/23
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Path("/jcl/recruit/written")
|
||||
public class WrittenResultsController extends com.engine.recruit.controller.WrittenResultsController{
|
||||
}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
package com.api.recruit.listener;
|
||||
|
||||
|
||||
import com.sun.jersey.api.model.AbstractResourceModelContext;
|
||||
import com.sun.jersey.api.model.AbstractResourceModelListener;
|
||||
import com.weaver.upgrade.FunctionUpgradeUtil;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.system.License;
|
||||
|
||||
import javax.ws.rs.ext.Provider;
|
||||
|
||||
@Provider
|
||||
public class InitListener implements AbstractResourceModelListener {
|
||||
@Override
|
||||
public void onLoaded(AbstractResourceModelContext abstractResourceModelContext) {
|
||||
int menuid = 100188;
|
||||
BaseBean bb = new BaseBean();
|
||||
String cId = new License().getCId();
|
||||
if(cId.length() > 7) {
|
||||
cId = cId.substring(cId.length() - 7);
|
||||
}
|
||||
String defaultCloseNonStandard151 = bb.getPropValue("jclRecruit", "defaultCloseNonStandard163");
|
||||
if(StringUtils.isNotBlank(cId) && "true".equals(defaultCloseNonStandard151)) {
|
||||
int cid = Integer.parseInt(cId);
|
||||
if(!hasMenuInfo(cid, "left", menuid)) {
|
||||
bb.writeLog("163招聘管理 添加默认菜单控制");
|
||||
insertMenuInfo(cid, "left", menuid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void insertMenuInfo(int cid,String type,int id){
|
||||
RecordSet rs = new RecordSet();
|
||||
BaseBean bb = new BaseBean();
|
||||
bb.writeLog("FunctionUpgradeUtil.getMenuId(cid,id):" + FunctionUpgradeUtil.getMenuId(cid,id));
|
||||
String sql ="INSERT INTO menucontrollist (type,menuid,isopen) VALUES('"+type+"','"+FunctionUpgradeUtil.getMenuId(cid,id)+"','"+FunctionUpgradeUtil.getMenuStatus(id,-1,cid)+"')";
|
||||
rs.execute(sql);
|
||||
}
|
||||
|
||||
private boolean hasMenuInfo(int cid, String type, int id) {
|
||||
RecordSet rs = new RecordSet();
|
||||
String sql = "select count(1) as count from menucontrollist where type = ? and menuid = ?";
|
||||
rs.executeQuery(sql,type, FunctionUpgradeUtil.getMenuId(cid,id));
|
||||
if(rs.next()) {
|
||||
int count = rs.getInt("count");
|
||||
if(count > 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
//package com.customization.recruit;
|
||||
//
|
||||
//import com.engine.core.cfg.annotation.CommandDynamicProxy;
|
||||
//import com.engine.core.interceptor.AbstractCommandProxy;
|
||||
//import com.engine.core.interceptor.Command;
|
||||
//import com.engine.cube.cmd.restfulinterface.GetModeDataPageList;
|
||||
//import weaver.hrm.User;
|
||||
//
|
||||
//import java.util.HashMap;
|
||||
//import java.util.Map;
|
||||
//
|
||||
///**
|
||||
// * @author:dxfeng
|
||||
// * @createTime: 2024/10/18
|
||||
// * @version: 1.0
|
||||
// */
|
||||
//@CommandDynamicProxy(target = GetModeDataPageList.class, desc = "代理cmd")
|
||||
//public class GetRecruitResumeProxyWithCmd extends AbstractCommandProxy<Map<String, Object>> {
|
||||
// @Override
|
||||
// public Map<String, Object> execute(Command<Map<String, Object>> command) {
|
||||
// GetModeDataPageList cmd = (GetModeDataPageList) command;
|
||||
// Map<String, Object> params = cmd.getParams();
|
||||
// User user = cmd.getUser();
|
||||
// Map<String, Object> map = nextExecute(command);
|
||||
// // 执行原有的逻辑
|
||||
// Map<String, Object> result = new HashMap<>();
|
||||
// result.put("qnmd","哈哈哈哈哈哈哈哈红红火火恍恍惚惚哈哈哈哈哈")
|
||||
// return result;
|
||||
// }
|
||||
//}
|
||||
|
|
@ -0,0 +1,324 @@
|
|||
package com.engine.recruit.conn;
|
||||
|
||||
import com.engine.recruit.entity.record.ApplicantRecordPo;
|
||||
import com.engine.recruit.entity.recruitflow.po.RecruitStepPo;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.general.BaseBean;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/09/27
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class ApplicantCommonInfo {
|
||||
/**
|
||||
* 获取应聘者姓名
|
||||
*
|
||||
* @param applicantId 应聘者ID
|
||||
* @return 应聘者姓名
|
||||
*/
|
||||
public static String getApplicantName(String applicantId) {
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select xm from uf_jcl_yppc where id = ?", applicantId);
|
||||
if (rs.next()) {
|
||||
return rs.getString("xm");
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取应聘职位名称
|
||||
*
|
||||
* @param positionId 职位ID
|
||||
* @return 职位名称
|
||||
*/
|
||||
public static String getApplicantPosition(String positionId) {
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select zpzwmc from uf_jcl_zp_zpzw where id = ?", positionId);
|
||||
if (rs.next()) {
|
||||
return rs.getString("zpzwmc");
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取表单下拉框展示文本
|
||||
*
|
||||
* @param formId 表单ID
|
||||
* @param fieldName 字段明湖曾
|
||||
* @param value 下拉框值
|
||||
* @return
|
||||
*/
|
||||
public static String getSelectName(String formId, String fieldName, String value) {
|
||||
String cancelReason = "";
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select selectname from workflow_selectitem where fieldid =( select id from workflow_billfield where billid = ? and fieldname = ? ) and selectvalue = ?", formId, fieldName, value);
|
||||
if (rs.next()) {
|
||||
cancelReason = rs.getString("selectname");
|
||||
}
|
||||
return cancelReason;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取表单下拉框值
|
||||
*
|
||||
* @param formId 表单ID
|
||||
* @param fieldName 字段明湖曾
|
||||
* @param selectName 下拉框展示内容
|
||||
* @return
|
||||
*/
|
||||
public static String getSelectValue(String formId, String fieldName, String selectName) {
|
||||
String selectValue = "";
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select selectvalue from workflow_selectitem where fieldid =( select id from workflow_billfield where billid = ? and fieldname = ? ) and selectname = ?", formId, fieldName, selectName);
|
||||
if (rs.next()) {
|
||||
selectValue = rs.getString("selectvalue");
|
||||
}
|
||||
return selectValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取表单下拉框展示文本
|
||||
*
|
||||
* @param formId 表单ID
|
||||
* @param fieldName 字段明湖曾
|
||||
* @return
|
||||
*/
|
||||
public static Map<String, String> getSelectMap(String formId, String fieldName) {
|
||||
Map<String, String> selectMap = new HashMap<>();
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select selectvalue,selectname from workflow_selectitem where fieldid =( select id from workflow_billfield where billid = ? and fieldname = ? ) ", formId, fieldName);
|
||||
while (rs.next()) {
|
||||
selectMap.put(rs.getString("selectvalue"), rs.getString("selectname"));
|
||||
}
|
||||
return selectMap;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取招聘通用浏览按钮展示内容
|
||||
*
|
||||
* @param id 浏览按钮ID
|
||||
* @return 浏览按钮展示文本
|
||||
*/
|
||||
public static String getRecruitCommonBrowserValue(String id) {
|
||||
if (StringUtils.isBlank(id)) {
|
||||
return "";
|
||||
}
|
||||
List<String> value = new ArrayList<>();
|
||||
RecordSet rs = new RecordSet();
|
||||
String[] split = id.split(",");
|
||||
for (String s : split) {
|
||||
rs.executeQuery("select xxnr from uf_sjzd where id = ?", s);
|
||||
if (rs.next()) {
|
||||
value.add(rs.getString("xxnr"));
|
||||
}
|
||||
}
|
||||
return StringUtils.join(value, ",");
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据建模表名,获取建模ID
|
||||
*
|
||||
* @param modeTable
|
||||
* @return
|
||||
*/
|
||||
public static int getModeIdByTableName(String modeTable) {
|
||||
int formModeId = -1;
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select id from modeinfo where formid =( select id from workflow_bill where tablename = ? ) and isdelete = 0 order by id", modeTable);
|
||||
if (rs.next()) {
|
||||
formModeId = rs.getInt("id");
|
||||
}
|
||||
return formModeId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定模块下的布局ID
|
||||
*
|
||||
* @param modeId
|
||||
* @param layoutName
|
||||
* @return
|
||||
*/
|
||||
public static int getLayoutId(int modeId, String layoutName) {
|
||||
int layoutId = -1;
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select id from modehtmllayout where modeid = ? and layoutname =?", modeId, layoutName);
|
||||
if (rs.next()) {
|
||||
layoutId = rs.getInt("id");
|
||||
}
|
||||
return layoutId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取字段ID
|
||||
*
|
||||
* @param billId
|
||||
* @param fieldName
|
||||
* @return
|
||||
*/
|
||||
public static int getFieldId(int billId, String fieldName) {
|
||||
int fieldId = -1;
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select id from workflow_billfield where billid =? and fieldname = ?", billId, fieldName);
|
||||
if (rs.next()) {
|
||||
fieldId = rs.getInt("id");
|
||||
}
|
||||
return fieldId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取查询ID
|
||||
*
|
||||
* @param modeId
|
||||
* @param customName
|
||||
* @return
|
||||
*/
|
||||
public static int getCustomId(int modeId, String customName) {
|
||||
int customId = -1;
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select id from mode_customsearch where modeid = ? and customname = ? ", modeId, customName);
|
||||
if (rs.next()) {
|
||||
customId = rs.getInt("id");
|
||||
}
|
||||
return customId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据表名,获取表单ID
|
||||
*
|
||||
* @param modeTable
|
||||
* @return
|
||||
*/
|
||||
public static int getFormIdByTableName(String modeTable) {
|
||||
int formId = -1;
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select id from workflow_bill where tablename = ? ", modeTable);
|
||||
if (rs.next()) {
|
||||
formId = rs.getInt("id");
|
||||
}
|
||||
return formId;
|
||||
}
|
||||
|
||||
|
||||
public static int createOperateRecord(ApplicantRecordPo recordPo) {
|
||||
try {
|
||||
int operateId = recordPo.getUser().getUID();
|
||||
String operateTableName = "uf_jcl_ypgc";
|
||||
RecruitDataMap<Object> dataMap = new RecruitDataMap<>();
|
||||
String uuid = UUID.randomUUID().toString();
|
||||
dataMap.put("modeuuid", uuid);
|
||||
int formModeId = getModeIdByTableName(operateTableName);
|
||||
dataMap.put("formmodeid", formModeId);
|
||||
RecruitRecordSet.buildModeInsertFields(dataMap, operateId);
|
||||
dataMap.put("czyw", recordPo.getRecordOperateType().getShowName());
|
||||
dataMap.put("czsj", recordPo.getOperateTime());
|
||||
dataMap.put("jlnr", recordPo.getContent());
|
||||
dataMap.put("xqnr", recordPo.getLinkUrl());
|
||||
dataMap.put("ypz", recordPo.getPcId());
|
||||
RecruitRecordSet.insertData(dataMap, operateTableName);
|
||||
return RecruitRecordSet.refreshRight(uuid, operateTableName, formModeId, operateId);
|
||||
} catch (Exception e) {
|
||||
new BaseBean().writeLog("应聘过程记录数据插入失败", e);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public static RecruitStepPo getCurrentStep(String billId) {
|
||||
RecruitStepPo stepPo = new RecruitStepPo();
|
||||
RecordSet rs = new RecordSet();
|
||||
// 招聘阶段ID
|
||||
String stageId = null;
|
||||
// 招聘流程ID
|
||||
int recruitFlowId = -1;
|
||||
rs.executeQuery("select zplc,zpjd from uf_jcl_yppc where id = ?", billId);
|
||||
if (rs.next()) {
|
||||
recruitFlowId = rs.getInt("zplc");
|
||||
stageId = rs.getString("zpjd");
|
||||
}
|
||||
if (-1 == recruitFlowId) {
|
||||
return stepPo;
|
||||
}
|
||||
if (StringUtils.isNotBlank(stageId)) {
|
||||
rs.executeQuery("select id,jdmc,hj from uf_jcl_zpjdsz where sfqy = 0 and id = ? ", stageId);
|
||||
} else {
|
||||
rs.executeQuery("select id,jdmc,hj from uf_jcl_zpjdsz where sfqy = 0 and zplc = ? and hj = 0", recruitFlowId);
|
||||
}
|
||||
if (rs.next()) {
|
||||
stepPo = RecruitStepPo.builder().key(rs.getInt("id")).description(rs.getString("jdmc")).type(rs.getString("hj")).build();
|
||||
}
|
||||
return stepPo;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取流程开始阶段,阶段类型
|
||||
*
|
||||
* @param flowId 流程ID
|
||||
* @return
|
||||
*/
|
||||
public static Map<String, String> getInitialStage(String flowId) {
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select id,jdlx from uf_jcl_zpjdsz where sfqy = 0 and zplc = ? and hj = 0", flowId);
|
||||
if (rs.next()) {
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map.put("zpjd", rs.getString("id"));
|
||||
map.put("jdlx", rs.getString("jdlx"));
|
||||
return map;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取ImageField
|
||||
*
|
||||
* @param docId
|
||||
* @return
|
||||
*/
|
||||
public static int getImageFieldByDocId(String docId) {
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select imagefileid from docimagefile where docid = ? ", docId);
|
||||
if (rs.next()) {
|
||||
return rs.getInt("imagefileid");
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据customSearchCode获取查询列表的id
|
||||
*
|
||||
* @param customSearchCode customSearchCode
|
||||
* @return ID
|
||||
*/
|
||||
public static String getCustomSearchId(String customSearchCode) {
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select id from mode_customsearch where customsearchcode = ? ", customSearchCode);
|
||||
if (rs.next()) {
|
||||
return rs.getString("id");
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据customSearchCode获取查询列表的地址
|
||||
*
|
||||
* @param customSearchCode customSearchCode
|
||||
* @param linkUrl 自定义的URL
|
||||
* @return 查询列表的地址
|
||||
*/
|
||||
public static String getCustomSearchLink(String customSearchCode, String linkUrl) {
|
||||
if (StringUtils.isNotBlank(linkUrl)) {
|
||||
return linkUrl;
|
||||
}
|
||||
String customSearchId = getCustomSearchId(customSearchCode);
|
||||
if (StringUtils.isNotBlank(customSearchId)) {
|
||||
return "/spa/cube/index.html#/main/cube/search?customid=" + customSearchId;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,356 @@
|
|||
package com.engine.recruit.conn;
|
||||
|
||||
import com.engine.recruit.enums.ApplicationStatusEnum;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.general.Util;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/26
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class CheckRepeatResume {
|
||||
|
||||
private static CheckRepeatResume instance = new CheckRepeatResume();
|
||||
|
||||
private CheckRepeatResume() {
|
||||
// 私有化构造方法
|
||||
}
|
||||
|
||||
public static CheckRepeatResume getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 校验简历是否加入黑名单
|
||||
*
|
||||
* @param name 姓名
|
||||
* @param mobile 手机号
|
||||
* @return
|
||||
*/
|
||||
public static boolean joinBlackList(String name, String mobile) {
|
||||
// 在这里编写你的方法逻辑
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select id from uf_jcl_rck where sfjrhmd =0 and xm = ? and sjhm = ?", name, mobile);
|
||||
return rs.next();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name
|
||||
* @param mobile
|
||||
* @param positionId
|
||||
* @return
|
||||
*/
|
||||
public static List<Map<String, Object>> getRepeatPositionResumeList(String name, String mobile, String positionId) {
|
||||
return getRepeatPositionResumeList(name, mobile, positionId, "");
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name
|
||||
* @param mobile
|
||||
* @param positionId
|
||||
* @param billId
|
||||
* @return
|
||||
*/
|
||||
public static List<Map<String, Object>> getRepeatPositionResumeList(String name, String mobile, String positionId, String billId) {
|
||||
RecordSet rs = new RecordSet();
|
||||
// 查询状态为待分配、候选中的且未隐藏的数据
|
||||
String whereSql = "";
|
||||
if (StringUtils.isBlank(positionId)) {
|
||||
whereSql = " and (ypzw = ? or ypzw is null) ";
|
||||
} else {
|
||||
whereSql = " and ypzw = ? ";
|
||||
}
|
||||
rs.executeQuery("select * from uf_jcl_yppc where formmodeid is not null and zt != 2 and zt != 3 and xm = ? and sjhm = ? " + whereSql + " and id != ? order by zt", name, mobile, positionId, billId);
|
||||
return RecruitRecordSet.getRecordMapList(rs);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据姓名、手机号查询重复的简历数据
|
||||
*
|
||||
* @param name 姓名
|
||||
* @param mobile 手机号
|
||||
* @return
|
||||
*/
|
||||
private List<Map<String, Object>> getRepeatResumeList(String name, String mobile) {
|
||||
RecordSet rs = new RecordSet();
|
||||
// 查询状态为待分配、候选中的且未隐藏的数据
|
||||
rs.executeQuery("select * from uf_jcl_yppc where formmodeid is not null and zt != 2 and zt != 3 and xm = ? and sjhm =? order by zt", name, mobile);
|
||||
return RecruitRecordSet.getRecordMapList(rs);
|
||||
}
|
||||
|
||||
/**
|
||||
* 插入简历数据
|
||||
*
|
||||
* @param param 数据集合
|
||||
* @return 新插入简历的ID
|
||||
*/
|
||||
public int insertResumeMainTable(int creator, Map<String, Object> param) {
|
||||
Map<String, Object> map = insertResumeAndReturn(creator, param);
|
||||
return Util.getIntValue(Util.null2String(map.get("mainId")));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 插入、更新明细表数据
|
||||
*
|
||||
* @param detailDataList
|
||||
* @param tableName
|
||||
* @param mainId
|
||||
* @param sourceId
|
||||
*/
|
||||
public synchronized void insertResumeDetailTable(List<RecruitDataMap<Object>> detailDataList, String tableName, String mainId, String sourceId) {
|
||||
if (CollectionUtils.isEmpty(detailDataList)) {
|
||||
return;
|
||||
}
|
||||
boolean isUpdate = false;
|
||||
if (StringUtils.isNotBlank(sourceId)) {
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select * from " + tableName + " where mainid = ? ", sourceId);
|
||||
isUpdate = rs.getCounts() == 0;
|
||||
}
|
||||
try {
|
||||
for (RecruitDataMap<Object> dataMap : detailDataList) {
|
||||
// 明细表关联新数据
|
||||
dataMap.put("mainid", mainId);
|
||||
RecruitRecordSet.insertData(dataMap, tableName);
|
||||
// 明细表关联已有数据
|
||||
if (isUpdate) {
|
||||
dataMap.put("mainid", sourceId);
|
||||
RecruitRecordSet.insertData(dataMap, tableName);
|
||||
}
|
||||
|
||||
}
|
||||
} catch (Exception e) {
|
||||
new BaseBean().writeLog(tableName + "明细表数据插入失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 插入简历数据
|
||||
*
|
||||
* @param param 数据集合
|
||||
* @return 简历插入信息
|
||||
*/
|
||||
public synchronized Map<String, Object> insertResumeAndReturn(int creator, Map<String, Object> param) {
|
||||
Map<String, Object> returnMap = new HashMap<>();
|
||||
int mainId = -1;
|
||||
String sourceId;
|
||||
String name = Util.null2String(param.get("xm"));
|
||||
String mobile = Util.null2String(param.get("sjhm"));
|
||||
String status = Util.null2String(param.get("zt"));
|
||||
String positionId = Util.null2String(param.get("ypzw"));
|
||||
// 黑名单校验,黑名单人员不入库
|
||||
boolean joinBlackList = joinBlackList(name, mobile);
|
||||
returnMap.put("joinBlackList", joinBlackList);
|
||||
returnMap.put("isUpdate", false);
|
||||
returnMap.put("mainId", mainId);
|
||||
returnMap.put("isSendStep", false);
|
||||
if (joinBlackList) {
|
||||
return returnMap;
|
||||
}
|
||||
|
||||
// 按照姓名+手机号查询正常展示的简历数据
|
||||
List<Map<String, Object>> repeatResumeList = getRepeatResumeList(name, mobile);
|
||||
if (CollectionUtils.isEmpty(repeatResumeList)) {
|
||||
// 不存在重复数据,直接插入数据库
|
||||
mainId = insertData(creator, param);
|
||||
returnMap.put("mainId", mainId);
|
||||
returnMap.put("isSendStep", true);
|
||||
return returnMap;
|
||||
}
|
||||
|
||||
// 新接收的简历为待分配
|
||||
if (ApplicationStatusEnum.DISTRIBUTION.getValue().equals(status)) {
|
||||
Map<String, Object> sourceResume = repeatResumeList.get(0);
|
||||
if (ApplicationStatusEnum.DISTRIBUTION.getValue().equals(Util.null2String(sourceResume.get("zt")))) {
|
||||
// 当前存在待分配的简历
|
||||
sourceId = Util.null2String(sourceResume.get("id"));
|
||||
//取新简历有值的字段,更新已入库简历没有值的字段,已入库简历有值的字段不做更新,新简历入库并隐藏
|
||||
mainId = updateSourceResume(creator, param, sourceResume);
|
||||
returnMap.put("mainId", mainId);
|
||||
returnMap.put("sourceId", sourceId);
|
||||
returnMap.put("isUpdate", true);
|
||||
returnMap.put("isSendStep", false);
|
||||
return returnMap;
|
||||
} else {
|
||||
// 直接入库,不做任何处理
|
||||
mainId = insertData(creator, param);
|
||||
returnMap.put("mainId", mainId);
|
||||
returnMap.put("isSendStep", true);
|
||||
return returnMap;
|
||||
}
|
||||
} else if (ApplicationStatusEnum.CANDIDATE.getValue().equals(status)) {
|
||||
// 新简历为候选中
|
||||
boolean hasSamePosition = false;
|
||||
for (Map<String, Object> sourceResume : repeatResumeList) {
|
||||
if (positionId.equals(Util.null2String(sourceResume.get("ypzw")))) {
|
||||
hasSamePosition = true;
|
||||
}
|
||||
}
|
||||
if (hasSamePosition) {
|
||||
// 若有相同职位的数据,新简历直接入库并隐藏
|
||||
mainId = insertHideData(creator, param);
|
||||
returnMap.put("mainId", mainId);
|
||||
returnMap.put("isSendStep", false);
|
||||
return returnMap;
|
||||
} else {
|
||||
// 没有相同职位的数据,新简历直接入库,不做任何处理
|
||||
mainId = insertData(creator, param);
|
||||
returnMap.put("mainId", mainId);
|
||||
returnMap.put("isSendStep", true);
|
||||
return returnMap;
|
||||
}
|
||||
}
|
||||
return returnMap;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 直接插入简历信息
|
||||
*
|
||||
* @param dataMap 数据集合
|
||||
* @return
|
||||
*/
|
||||
private int insertData(int creator, Map<String, Object> dataMap) {
|
||||
String uuid = UUID.randomUUID().toString();
|
||||
dataMap.put("modeuuid", uuid);
|
||||
int formModeId = ApplicantCommonInfo.getModeIdByTableName("uf_jcl_yppc");
|
||||
dataMap.put("formmodeid", formModeId);
|
||||
RecruitRecordSet.buildModeInsertFields(dataMap, creator);
|
||||
RecruitRecordSet.insertData(dataMap, "uf_jcl_yppc");
|
||||
return RecruitRecordSet.refreshRight(uuid, "uf_jcl_yppc", formModeId, creator);
|
||||
}
|
||||
|
||||
/**
|
||||
* 插入数据库并隐藏
|
||||
*
|
||||
* @param dataMap 数据集合
|
||||
* @return
|
||||
*/
|
||||
private int insertHideData(int creator, Map<String, Object> dataMap) {
|
||||
String uuid = UUID.randomUUID().toString();
|
||||
dataMap.put("modeuuid", uuid);
|
||||
RecordSet rs = new RecordSet();
|
||||
RecruitRecordSet.buildModeInsertFields(dataMap, creator);
|
||||
RecruitRecordSet.insertData(dataMap, "uf_jcl_yppc");
|
||||
rs.executeQuery("select id from uf_jcl_yppc where modeuuid='" + uuid + "'");
|
||||
if (rs.next()) {
|
||||
return Util.getIntValue(rs.getString("id"));
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新简历信息
|
||||
*
|
||||
* @param param 新简历数据集合
|
||||
* @param sourceResume 源简历数据集合
|
||||
* @return
|
||||
*/
|
||||
private int updateSourceResume(int creator, Map<String, Object> param, Map<String, Object> sourceResume) {
|
||||
replaceNullValues(param, sourceResume);
|
||||
// 更新投递时间为最新的 by zsy 20240704 待分配的投递时间要根据最新的去更新
|
||||
sourceResume.put("tdsj", param.get("tdsj"));
|
||||
// 处理操作人员、操作时间
|
||||
RecruitRecordSet.buildModeUpdateFields(sourceResume, creator);
|
||||
RecruitRecordSet.updateDataById(sourceResume, "uf_jcl_yppc");
|
||||
// 更新数据
|
||||
RecruitRecordSet.buildModeInsertFields(param, creator);
|
||||
return insertHideData(creator, param);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 替换sourceResume中为null或者为空的值
|
||||
*
|
||||
* @param param 新简历数据集合
|
||||
* @param sourceResume 源简历数据集合
|
||||
*/
|
||||
private void replaceNullValues(Map<String, Object> param, Map<String, Object> sourceResume) {
|
||||
for (Map.Entry<String, Object> entry : sourceResume.entrySet()) {
|
||||
String key = entry.getKey();
|
||||
Object value = entry.getValue();
|
||||
|
||||
if (value == null || "".equals(value)) {
|
||||
if (param.containsKey(key)) {
|
||||
sourceResume.put(key, param.get(key));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取开始时间和结束时间
|
||||
*
|
||||
* @param date
|
||||
* @return
|
||||
*/
|
||||
public static RecruitDataMap<Object> getDateRange(String date, boolean isStudy) {
|
||||
RecruitDataMap<Object> dataRangeMap = new RecruitDataMap();
|
||||
if (StringUtils.isBlank(date)) {
|
||||
return dataRangeMap;
|
||||
} else {
|
||||
String[] split = date.split("-");
|
||||
String end;
|
||||
if (split.length > 0) {
|
||||
end = getFormatDate(split[0]);
|
||||
if (end.length() == 4) {
|
||||
if (isStudy) {
|
||||
end = end + "-09-01";
|
||||
} else {
|
||||
end = "";
|
||||
}
|
||||
}
|
||||
|
||||
dataRangeMap.put("kssj", end);
|
||||
}
|
||||
|
||||
if (split.length > 1) {
|
||||
end = getFormatDate(split[1]);
|
||||
if (end.length() == 4) {
|
||||
if (isStudy) {
|
||||
end = end + "-07-01";
|
||||
} else {
|
||||
end = "";
|
||||
}
|
||||
}
|
||||
|
||||
dataRangeMap.put("jssj", end);
|
||||
}
|
||||
|
||||
return dataRangeMap;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取yyyy-MM-dd时间格式日期
|
||||
*
|
||||
* @param dateStr
|
||||
* @return
|
||||
*/
|
||||
private static String getFormatDate(String dateStr) {
|
||||
//
|
||||
dateStr = dateStr.replace(".", "-").replace("\\/", "-");
|
||||
if (dateStr.length() == 7) {
|
||||
return dateStr + "-01";
|
||||
} else if (dateStr.length() == 10) {
|
||||
return dateStr;
|
||||
} else if (dateStr.length() == 4) {
|
||||
return dateStr;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,174 @@
|
|||
package com.engine.recruit.conn;
|
||||
|
||||
import com.engine.recruit.util.WeaBrowserUtil;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.hrm.User;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/11/10
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class ModeBrowserCommonInfo {
|
||||
/**
|
||||
* 性别
|
||||
*/
|
||||
public static final String TYPE_GENDER = "1";
|
||||
/**
|
||||
* 简历来源
|
||||
*/
|
||||
public static final String TYPE_RESUME_SOURCE = "2";
|
||||
/**
|
||||
* 招聘渠道
|
||||
*/
|
||||
public static final String TYPE_RECRUITMENT_CHANNELS = "3";
|
||||
/**
|
||||
* 职位性质
|
||||
*/
|
||||
public static final String TYPE_JOB_NATURE = "4";
|
||||
/**
|
||||
* 职位学历要求
|
||||
*/
|
||||
public static final String TYPE_JOB_EDUCATION_REQUIREMENTS = "5";
|
||||
/**
|
||||
* 婚姻状况
|
||||
*/
|
||||
public static final String TYPE_MARITAL_STATUS = "6";
|
||||
/**
|
||||
* 在职状态
|
||||
*/
|
||||
public static final String TYPE_ON_THE_JOB_STATUS = "7";
|
||||
/**
|
||||
* 招聘原因
|
||||
*/
|
||||
public static final String TYPE_RECRUITMENT_REASON = "8";
|
||||
/**
|
||||
* 工作年限
|
||||
*/
|
||||
public static final String TYPE_YEARS_OF_WORK = "9";
|
||||
/**
|
||||
* 工作经验
|
||||
*/
|
||||
public static final String TYPE_WORK_EXPERIENCE = "10";
|
||||
/**
|
||||
* 政治面貌
|
||||
*/
|
||||
public static final String TYPE_POLITICAL_LANDSCAPE = "11";
|
||||
/**
|
||||
* 学位
|
||||
*/
|
||||
public static final String TYPE_DEGREE = "12";
|
||||
|
||||
/**
|
||||
* 根据名称,获取简历来源ID
|
||||
*
|
||||
* @param name
|
||||
* @return
|
||||
*/
|
||||
public static String getResumeSource(String name) {
|
||||
return getBrowserId(TYPE_RESUME_SOURCE, name);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据名称,获取工作经验ID
|
||||
*
|
||||
* @param name
|
||||
* @return
|
||||
*/
|
||||
public static String getWorkExperience(String name) {
|
||||
return getBrowserId(TYPE_WORK_EXPERIENCE, name);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取学位ID
|
||||
*
|
||||
* @param name
|
||||
* @return
|
||||
*/
|
||||
public static String getDegreeId(String name) {
|
||||
return getBrowserId(TYPE_DEGREE, name);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取学历ID
|
||||
*
|
||||
* @param name
|
||||
* @return
|
||||
*/
|
||||
public static String getEducationLevelId(String name) {
|
||||
if (StringUtils.isBlank(name)) {
|
||||
return null;
|
||||
}
|
||||
String id = null;
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select id from hrmeducationlevel where name like '%" + name + "%'");
|
||||
if (rs.next()) {
|
||||
id = rs.getString("id");
|
||||
}
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取学历名称
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public static String getEducationLevelById(String id) {
|
||||
if (StringUtils.isBlank(id)) {
|
||||
return null;
|
||||
}
|
||||
String name = null;
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select name from hrmeducationlevel where id = ?", id);
|
||||
if (rs.next()) {
|
||||
name = rs.getString("name");
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
public static String getWorkPlaceShowName(User user, String id) {
|
||||
String placeName = "";
|
||||
if (StringUtils.isBlank(id)) {
|
||||
return placeName;
|
||||
}
|
||||
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select ssq,xxdz from uf_zpgzdd where id = ?", id);
|
||||
if (rs.next()) {
|
||||
String ssq = rs.getString("ssq");
|
||||
String xxdz = rs.getString("xxdz");
|
||||
// 区县浏览按钮类型:263
|
||||
String areaName = WeaBrowserUtil.getBrowserShowNames(user, 263, ssq);
|
||||
rs.writeLog("areaName===" + areaName);
|
||||
if (StringUtils.isNotBlank(areaName) && StringUtils.isNotBlank(xxdz)) {
|
||||
String[] split = areaName.split("/");
|
||||
if (split.length == 4) {
|
||||
areaName = split[1] + "-" + split[2] + "-" + split[3];
|
||||
placeName = areaName + "-" + xxdz;
|
||||
} else if (split.length == 3) {
|
||||
areaName = split[0] + "-" + split[1] + "-" + split[2];
|
||||
placeName = areaName + "-" + xxdz;
|
||||
}
|
||||
} else {
|
||||
rs.writeLog("id=" + id + ",ssq=" + ssq + ",xxdz=" + xxdz);
|
||||
}
|
||||
}
|
||||
return placeName;
|
||||
}
|
||||
|
||||
|
||||
public static String getBrowserId(String zdlxmc, String xxnr) {
|
||||
if (StringUtils.isBlank(xxnr)) {
|
||||
return null;
|
||||
}
|
||||
String sourceId = null;
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select id from uf_sjzd where zdlxmc = ? and xxnr = ? ", zdlxmc, xxnr);
|
||||
if (rs.next()) {
|
||||
sourceId = rs.getString("id");
|
||||
}
|
||||
return sourceId;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,110 @@
|
|||
package com.engine.recruit.conn;
|
||||
|
||||
import com.engine.recruit.entity.position.PositionPo;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 招聘职位信息
|
||||
*
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/26
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class PositionCommonInfo {
|
||||
|
||||
/**
|
||||
* 根据千里聆岗位ID,获取招聘职位ID
|
||||
*
|
||||
* @param qllGwId
|
||||
* @return
|
||||
*/
|
||||
public static String getPositionIdByQll(Long qllGwId) {
|
||||
String positionId = "";
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select id from uf_jcl_zp_zpzw where qllgwid = ?", qllGwId);
|
||||
if (rs.next()) {
|
||||
positionId = rs.getString("id");
|
||||
}
|
||||
return positionId;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取招聘职位关联的招聘流程
|
||||
*
|
||||
* @param positionId
|
||||
* @return
|
||||
*/
|
||||
public static String getRecruitFlowId(String positionId) {
|
||||
String recruitFlowId = "";
|
||||
if (StringUtils.isBlank(positionId)) {
|
||||
return recruitFlowId;
|
||||
}
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select zplc from uf_jcl_zp_zpzw where id = ?", positionId);
|
||||
if (rs.next()) {
|
||||
recruitFlowId = rs.getString("zplc");
|
||||
}
|
||||
return recruitFlowId;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据职位名称,获取职位ID
|
||||
*
|
||||
* @param positionName 职位名称
|
||||
* @param mobile 职位跟进人手机号
|
||||
* @return
|
||||
*/
|
||||
public static String getPositionIdByName(String positionName, String mobile) {
|
||||
RecordSet rs = new RecordSet();
|
||||
// 根据职位名称、查询招聘中的数据
|
||||
rs.executeQuery("select id ,zpzwmc ,zpzt ,modedatacreater ,modedatacreatedate ,modedatacreatetime from uf_jcl_zp_zpzw where zpzt = 0 and zpzwmc = ? ", positionName);
|
||||
List<PositionPo> positionPoList = new ArrayList<>();
|
||||
while (rs.next()) {
|
||||
PositionPo positionPo = PositionPo.builder()
|
||||
.id(rs.getString("id"))
|
||||
.name(rs.getString("zpzwmc"))
|
||||
.status(rs.getString("zpzt"))
|
||||
.creator(rs.getString("modedatacreater"))
|
||||
.createDate(rs.getString("modedatacreatedate"))
|
||||
.createTime(rs.getString("modedatacreatetime"))
|
||||
.build();
|
||||
positionPoList.add(positionPo);
|
||||
}
|
||||
|
||||
// 未查询到数据,返回空
|
||||
if (CollectionUtils.isEmpty(positionPoList)) {
|
||||
return "";
|
||||
}
|
||||
|
||||
// 只有一条数据,直接返回当前数据,如果有多个,再添加其他条件过滤
|
||||
if (positionPoList.size() == 1) {
|
||||
return positionPoList.get(0).getId();
|
||||
}
|
||||
|
||||
// 根据手机号查询人员ID
|
||||
Set<String> userIds = new HashSet<>();
|
||||
rs.executeQuery("select id from hrmresource where mobile = ? ", mobile);
|
||||
while (rs.next()) {
|
||||
userIds.add(rs.getString("id"));
|
||||
}
|
||||
|
||||
// 筛选跟进人手机号匹配的职位数据,并按创建时间倒序排序
|
||||
List<PositionPo> filterList = positionPoList.stream().filter(item -> userIds.contains(item.getCreator())).sorted(Comparator.comparing(PositionPo::getCreationTime).reversed()).collect(Collectors.toList());
|
||||
|
||||
if (CollectionUtils.isEmpty(filterList)) {
|
||||
// 跟进人手机号未获取到,选择最新的一条数据
|
||||
return positionPoList.stream().sorted(Comparator.comparing(PositionPo::getCreationTime).reversed()).collect(Collectors.toList()).get(0).getId();
|
||||
} else {
|
||||
// 再一样,就默认匹配到创建时间最新的职位
|
||||
return filterList.get(0).getId();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
package com.engine.recruit.conn;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import weaver.general.Util;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
* 聚才林数据集合
|
||||
* </p>
|
||||
* key忽略大小写
|
||||
*
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/19
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class RecruitDataMap<V> extends HashMap<String, V> {
|
||||
@Override
|
||||
public V get(Object key) {
|
||||
if (key instanceof String) {
|
||||
// 将键转为小写形式再进行查找
|
||||
return super.get(((String) key).toLowerCase());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public V put(String key, V value) {
|
||||
// 将键转为小写形式后作为真正的键
|
||||
return super.put(key.toLowerCase(), value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取int类型数据
|
||||
*
|
||||
* @param key
|
||||
* @return
|
||||
*/
|
||||
public Integer getInt(Object key) {
|
||||
if (key instanceof String) {
|
||||
// 将键转为小写形式再进行查找
|
||||
return Convert.toInt(super.get(((String) key).toLowerCase()),null);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取String类型数据
|
||||
*
|
||||
* @param key
|
||||
* @return
|
||||
*/
|
||||
public String getString(Object key) {
|
||||
if (key instanceof String) {
|
||||
// 将键转为小写形式再进行查找
|
||||
return Util.null2String(super.get(((String) key).toLowerCase()));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,189 @@
|
|||
package com.engine.recruit.conn;
|
||||
|
||||
import com.engine.recruit.exception.CustomizeRunTimeException;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.common.DateUtil;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil;
|
||||
import weaver.formmode.setup.ModeRightInfo;
|
||||
import weaver.general.Util;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/19
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class RecruitRecordSet {
|
||||
|
||||
/**
|
||||
* 获取单个记录映射
|
||||
*
|
||||
* @param rs RecordSet
|
||||
* @return
|
||||
*/
|
||||
public static RecruitDataMap<Object> getSingleRecordMap(RecordSet rs) {
|
||||
RecruitDataMap<Object> dataMap = new RecruitDataMap<>();
|
||||
if (rs.next()) {
|
||||
String[] columnNames = rs.getColumnName();
|
||||
for (String columnName : columnNames) {
|
||||
dataMap.put(columnName, RecruitModeUtil.parseBlankToNull(rs.getString(columnName)));
|
||||
}
|
||||
}
|
||||
return dataMap;
|
||||
}
|
||||
|
||||
public static List<Map<String, Object>> getRecordMapList(RecordSet rs) {
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
while (rs.next()) {
|
||||
String[] columnNames = rs.getColumnName();
|
||||
Map<String, Object> dataMap = new RecruitDataMap<>();
|
||||
for (String columnName : columnNames) {
|
||||
dataMap.put(columnName.toLowerCase(), RecruitModeUtil.parseBlankToNull(rs.getString(columnName)));
|
||||
}
|
||||
list.add(dataMap);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 插入数据
|
||||
*
|
||||
* @param dataMap 数据集合
|
||||
* @param tableName 表名
|
||||
*/
|
||||
public static void insertData(Map<String, Object> dataMap, String tableName) {
|
||||
List<String> fieldList = new ArrayList<>();
|
||||
List<String> dataList = new ArrayList<>();
|
||||
List<String> paramList = new ArrayList<>();
|
||||
|
||||
dataMap.forEach((key, value) -> {
|
||||
if (null != value) {
|
||||
String valueStr = String.valueOf(value);
|
||||
if(StringUtils.isNotBlank(valueStr)) {
|
||||
fieldList.add(key);
|
||||
dataList.add(valueStr);
|
||||
paramList.add("?");
|
||||
}
|
||||
}
|
||||
});
|
||||
String insertSql = " insert into " + tableName + "(" + StringUtils.join(fieldList, ",") + ") values (" + StringUtils.join(paramList, ",") + ")";
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeUpdate(insertSql, dataList);
|
||||
if (StringUtils.isNotBlank(rs.getExceptionMsg())) {
|
||||
throw new CustomizeRunTimeException(rs.getExceptionMsg());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据ID更新数据
|
||||
*
|
||||
* @param dataMap
|
||||
* @param tableName
|
||||
*/
|
||||
public static void updateDataById(Map<String, Object> dataMap, String tableName) {
|
||||
List<String> fieldList = new ArrayList<>();
|
||||
List<Object> dataList = new ArrayList<>();
|
||||
String id = Util.null2String(dataMap.get("id"));
|
||||
dataMap.remove("id");
|
||||
|
||||
dataMap.forEach((key, value) -> {
|
||||
fieldList.add(key + " = ? ");
|
||||
dataList.add(value);
|
||||
});
|
||||
dataList.add(id);
|
||||
String updateSql = "update " + tableName + " set " + StringUtils.join(fieldList, ",") + " where id = ? ";
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeUpdate(updateSql, dataList);
|
||||
if (StringUtils.isNotBlank(rs.getExceptionMsg())) {
|
||||
throw new CustomizeRunTimeException(rs.getExceptionMsg());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新数据
|
||||
*
|
||||
* @param dataMap
|
||||
* @param tableName
|
||||
* @param whereSql
|
||||
*/
|
||||
public static void updateData(Map<String, Object> dataMap, String tableName, String whereSql) {
|
||||
List<String> fieldList = new ArrayList<>();
|
||||
List<Object> dataList = new ArrayList<>();
|
||||
dataMap.forEach((key, value) -> {
|
||||
fieldList.add(key + " = ? ");
|
||||
dataList.add(value);
|
||||
});
|
||||
String updateSql = "update " + tableName + " set " + StringUtils.join(fieldList, ",") + whereSql;
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeUpdate(updateSql, dataList);
|
||||
if (StringUtils.isNotBlank(rs.getExceptionMsg())) {
|
||||
throw new CustomizeRunTimeException(rs.getExceptionMsg());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除数据
|
||||
*
|
||||
* @param deleteSql
|
||||
*/
|
||||
public static void deleteData(String deleteSql) {
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeUpdate(deleteSql);
|
||||
if (StringUtils.isNotBlank(rs.getExceptionMsg())) {
|
||||
throw new CustomizeRunTimeException(rs.getExceptionMsg());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 构建建模表基本数据
|
||||
*
|
||||
* @param mainDataMap 参数集合
|
||||
*/
|
||||
public static void buildModeInsertFields(Map<String, Object> mainDataMap, int userId) {
|
||||
String dateTime = DateUtil.getFullDate();
|
||||
String[] dateSplit = dateTime.split(" ");
|
||||
mainDataMap.put("modedatacreater", userId);
|
||||
mainDataMap.put("modedatacreatedate", dateSplit[0]);
|
||||
mainDataMap.put("modedatacreatetime", dateSplit[1]);
|
||||
mainDataMap.put("modedatacreatertype", "0");
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建建模表基本数据
|
||||
*
|
||||
* @param mainDataMap 参数集合
|
||||
*/
|
||||
public static void buildModeUpdateFields(Map<String, Object> mainDataMap, int userId) {
|
||||
String dateTime = DateUtil.getFullDate();
|
||||
mainDataMap.put("modedatamodifier", userId);
|
||||
mainDataMap.put("modedatamodifydatetime", dateTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* 建模表数据权限重构
|
||||
*
|
||||
* @param uuid
|
||||
* @param modeTable
|
||||
* @param formModeId
|
||||
*/
|
||||
public static int refreshRight(String uuid, String modeTable, int formModeId, int creator) {
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select id from " + modeTable + " where modeuuid='" + uuid + "'");
|
||||
if (rs.next()) {
|
||||
//建模数据的id
|
||||
int bid = Util.getIntValue(rs.getString("id"));
|
||||
ModeRightInfo modeRightInfo = new ModeRightInfo();
|
||||
modeRightInfo.setNewRight(true);
|
||||
//新建的时候添加共享
|
||||
modeRightInfo.editModeDataShare(creator, formModeId, bid);
|
||||
return bid;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,266 @@
|
|||
package com.engine.recruit.conn;
|
||||
|
||||
import com.engine.common.service.HrmCommonService;
|
||||
import com.engine.common.service.impl.HrmCommonServiceImpl;
|
||||
import com.engine.recruit.constant.RecruitConstant;
|
||||
import com.engine.recruit.entity.message.PositionField;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/10/16
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class StepMsgCommonInfo {
|
||||
|
||||
/**
|
||||
* 获取提醒人员
|
||||
*
|
||||
* @param applicantId 候选人ID
|
||||
* @param positionId 职位ID
|
||||
* @param flowId 流程ID
|
||||
* @param stepId 当前阶段ID
|
||||
* @param user 当前操作人
|
||||
*/
|
||||
public static void sendMsg(String applicantId, String positionId, String flowId, String stepId, User user) {
|
||||
RecordSet rs = new RecordSet();
|
||||
List<String> ids = new ArrayList<>();
|
||||
boolean useFlowTips = true;
|
||||
String stepName = "";
|
||||
if (StringUtils.isNotBlank(stepId)) {
|
||||
rs.executeQuery("select id,jdmc,hj from uf_jcl_zpjdsz where sfqy = 0 and id = ? ", stepId);
|
||||
} else {
|
||||
rs.executeQuery("select id,jdmc,hj from uf_jcl_zpjdsz where sfqy = 0 and zplc = ? and hj = 0", flowId);
|
||||
}
|
||||
if (rs.next()) {
|
||||
stepId = rs.getString("id");
|
||||
stepName = rs.getString("jdmc");
|
||||
}
|
||||
rs.executeQuery("select qyzt from uf_jcl_step_config where zpzw = ?", positionId);
|
||||
if (rs.next()) {
|
||||
useFlowTips = !"1".equals(rs.getString("qyzt"));
|
||||
}
|
||||
if (!useFlowTips) {
|
||||
// 判断该职位是否设置提醒人员
|
||||
rs.executeQuery("select * from uf_jcl_jdtx where zpzw = ?", positionId);
|
||||
while (rs.next()) {
|
||||
useFlowTips = false;
|
||||
String zpjd = rs.getString("zpjd");
|
||||
if (StringUtils.isNotBlank(zpjd)) {
|
||||
List<String> strings = Arrays.asList(zpjd.split(","));
|
||||
if (strings.contains(stepId)) {
|
||||
ids.add(rs.getString("id"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (useFlowTips) {
|
||||
// 判断是否启用全部配置,未启用直接跳过
|
||||
String qyzt = "";
|
||||
rs.executeQuery("select qyzt from uf_jcl_step_config where zpzw = -1");
|
||||
if (rs.next()) {
|
||||
qyzt = rs.getString("qyzt");
|
||||
}
|
||||
if ("1".equals(qyzt)) {
|
||||
// 查询当前流程的配置
|
||||
rs.executeQuery("select * from uf_jcl_jdtx where zpzw is null and zplc = ?", flowId);
|
||||
while (rs.next()) {
|
||||
String zpjd = rs.getString("zpjd");
|
||||
if (StringUtils.isNotBlank(zpjd)) {
|
||||
List<String> strings = Arrays.asList(zpjd.split(","));
|
||||
if (strings.contains(stepId)) {
|
||||
ids.add(rs.getString("id"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (CollectionUtils.isNotEmpty(ids)) {
|
||||
Set<String> userSet = new HashSet<>();
|
||||
for (String id : ids) {
|
||||
Set<String> receiveUsers = getReceiveUsers(id, positionId);
|
||||
userSet.addAll(receiveUsers);
|
||||
}
|
||||
String applicantName = ApplicantCommonInfo.getApplicantName(applicantId);
|
||||
String applicantPosition = ApplicantCommonInfo.getApplicantPosition(positionId);
|
||||
// 发送消息提醒
|
||||
String linkUrl = RecruitConstant.APPLICANT_URL + "?billId=" + applicantId;
|
||||
rs.writeLog("linkUrl:" + linkUrl);
|
||||
RecruitModeUtil.messagePush(RecruitConstant.INTERVIEW_MESSAGE_TYPE, "应聘进度通知", "应聘者:" + applicantName + ",应聘职位:" + applicantPosition + ",当前应聘进程已经流转至" + stepName + "阶段,请知悉。", userSet, user.getUID(), linkUrl, "");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前职位、当前设置的提醒人员
|
||||
*
|
||||
* @param jdtxId
|
||||
* @param positionId
|
||||
* @return
|
||||
*/
|
||||
private static Set<String> getReceiveUsers(String jdtxId, String positionId) {
|
||||
Set<String> userSet = new HashSet<>();
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select * from uf_jcl_jdtx where id = ?", jdtxId);
|
||||
if (rs.next()) {
|
||||
// 提醒人员
|
||||
String txry = rs.getString("txry");
|
||||
getUserByUid(txry, userSet);
|
||||
// 提醒分部
|
||||
String txfb = rs.getString("txfb");
|
||||
getUserByCompany(txfb, userSet);
|
||||
// 提醒部门
|
||||
String txbm = rs.getString("txbm");
|
||||
getUserByDepartment(txbm, userSet);
|
||||
// 提醒岗位
|
||||
String txgw = rs.getString("txgw");
|
||||
getUserByJob(txgw, userSet);
|
||||
// 提醒角色
|
||||
String txjs = rs.getString("txjs");
|
||||
getUserByRole(txjs, userSet);
|
||||
String zpzwzd = rs.getString("zpzwzd");
|
||||
// 根据选择的字段,获取需要通知的人员ID
|
||||
dealPositionField(zpzwzd, positionId, userSet);
|
||||
}
|
||||
return userSet;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据选择的招聘职位字段,获取需要通知的人员ID
|
||||
*
|
||||
* @param positionFieldIds
|
||||
* @param positionId
|
||||
* @param userSet
|
||||
*/
|
||||
private static void dealPositionField(String positionFieldIds, String positionId, Set<String> userSet) {
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select * from workflow_billfield where id in(" + positionFieldIds + ")");
|
||||
List<PositionField> fieldList = new ArrayList<>();
|
||||
while (rs.next()) {
|
||||
PositionField build = PositionField.builder()
|
||||
.id(rs.getString("id"))
|
||||
.fieldName(rs.getString("fieldname"))
|
||||
.type(rs.getString("type"))
|
||||
.build();
|
||||
fieldList.add(build);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(fieldList)) {
|
||||
Map<String, List<PositionField>> collect = fieldList.stream().collect(Collectors.groupingBy(PositionField::getMsgType));
|
||||
List<PositionField> userFieldList = collect.get("user");
|
||||
if (CollectionUtils.isNotEmpty(userFieldList)) {
|
||||
for (PositionField positionField : userFieldList) {
|
||||
String positionFieldValue = getPositionFieldValue(positionField, positionId);
|
||||
getUserByUid(positionFieldValue, userSet);
|
||||
}
|
||||
}
|
||||
List<PositionField> companyFieldList = collect.get("company");
|
||||
if (CollectionUtils.isNotEmpty(companyFieldList)) {
|
||||
for (PositionField positionField : companyFieldList) {
|
||||
String positionFieldValue = getPositionFieldValue(positionField, positionId);
|
||||
getUserByCompany(positionFieldValue, userSet);
|
||||
}
|
||||
}
|
||||
List<PositionField> departmentFieldList = collect.get("department");
|
||||
if (CollectionUtils.isNotEmpty(departmentFieldList)) {
|
||||
for (PositionField positionField : departmentFieldList) {
|
||||
String positionFieldValue = getPositionFieldValue(positionField, positionId);
|
||||
getUserByDepartment(positionFieldValue, userSet);
|
||||
}
|
||||
}
|
||||
List<PositionField> roleFieldList = collect.get("role");
|
||||
if (CollectionUtils.isNotEmpty(roleFieldList)) {
|
||||
for (PositionField positionField : roleFieldList) {
|
||||
String positionFieldValue = getPositionFieldValue(positionField, positionId);
|
||||
getUserByRole(positionFieldValue, userSet);
|
||||
}
|
||||
}
|
||||
List<PositionField> jobFieldList = collect.get("job");
|
||||
if (CollectionUtils.isNotEmpty(jobFieldList)) {
|
||||
for (PositionField positionField : jobFieldList) {
|
||||
String positionFieldValue = getPositionFieldValue(positionField, positionId);
|
||||
getUserByJob(positionFieldValue, userSet);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static void getUserByUid(String userStr, Set<String> userSet) {
|
||||
if (StringUtils.isNotBlank(userStr)) {
|
||||
userSet.addAll(Arrays.asList(userStr.split(",")));
|
||||
}
|
||||
}
|
||||
|
||||
private static void getUserByCompany(String companyStr, Set<String> userSet) {
|
||||
if (StringUtils.isNotBlank(companyStr)) {
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select id from hrmresource where subcompanyid1 in(" + companyStr + ")");
|
||||
while (rs.next()) {
|
||||
userSet.add(rs.getString("id"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void getUserByDepartment(String departmentStr, Set<String> userSet) {
|
||||
if (StringUtils.isNotBlank(departmentStr)) {
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select id from hrmresource where departmentid in(" + departmentStr + ")");
|
||||
while (rs.next()) {
|
||||
userSet.add(rs.getString("id"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void getUserByRole(String roleStr, Set<String> userSet) {
|
||||
if (StringUtils.isNotBlank(roleStr)) {
|
||||
String[] split = roleStr.split(",");
|
||||
for (String roleId : split) {
|
||||
HrmCommonService hrmCommonService = new HrmCommonServiceImpl();
|
||||
String hrmIds = hrmCommonService.getRoleMemberIds(roleId, "0");
|
||||
if (StringUtils.isNotBlank(hrmIds)) {
|
||||
userSet.addAll(Arrays.asList(hrmIds.split(",")));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void getUserByJob(String jobStr, Set<String> userSet) {
|
||||
if (StringUtils.isNotBlank(jobStr)) {
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select id from hrmresource where jobtitle in(" + jobStr + ")");
|
||||
while (rs.next()) {
|
||||
userSet.add(rs.getString("id"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前职位的字段值
|
||||
*
|
||||
* @param positionField 指定字段
|
||||
* @param positionId 招聘职位ID
|
||||
* @return
|
||||
*/
|
||||
private static String getPositionFieldValue(PositionField positionField, String positionId) {
|
||||
RecordSet rs = new RecordSet();
|
||||
String sql = "select " + positionField.getFieldName() + " from uf_jcl_zp_zpzw where id = " + positionId;
|
||||
rs.executeQuery(sql);
|
||||
if (rs.next()) {
|
||||
return rs.getString(positionField.getFieldName());
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,115 @@
|
|||
package com.engine.recruit.constant;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/03/12
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class ModeSearchCodeConstant {
|
||||
/**
|
||||
* 招聘需求管理
|
||||
*/
|
||||
public static final String RECRUITMENT_DEMAND_MANAGEMENT = "b129634bf72d46b8bed0291f84efd2e0";
|
||||
/**
|
||||
* 招聘职位
|
||||
*/
|
||||
public static final String RECRUITMENT_POSITIONS = "c024e527c964437bb568bebbb48d89a5";
|
||||
/**
|
||||
* 应聘者
|
||||
*/
|
||||
public static final String APPLICANTS = "1d48211cd1634b19bdc6f7df40cd1337";
|
||||
/**
|
||||
* 筛选反馈
|
||||
*/
|
||||
//public static final String SCREENING_FEEDBACK = "b746e3cf80454289a3ade2b17147e297";
|
||||
public static final String SCREENING_FEEDBACK = "669a72259c0c47e49a97f5b68692ed34";
|
||||
/**
|
||||
* 笔试结果
|
||||
*/
|
||||
public static final String WRITTEN_RESULTS = "1b56a7492fb84f2b9e5ae022fde333f0";
|
||||
/**
|
||||
* 面试
|
||||
*/
|
||||
public static final String INTERVIEW = "496ecc32a87045888f224ad3151e635b";
|
||||
/**
|
||||
* 薪酬谈判
|
||||
*/
|
||||
public static final String SALARY_NEGOTIATION = "ffe1bafcef5942f5853e68b76e5098d2";
|
||||
/**
|
||||
* 背调
|
||||
*/
|
||||
public static final String BACK_TONE = "33be832e81eb4cf5a5686213918e769b";
|
||||
/**
|
||||
* offer
|
||||
*/
|
||||
public static final String OFFER = "4d4d8f9761474333907bacb81d98fc3c";
|
||||
/**
|
||||
* 人才库
|
||||
*/
|
||||
public static final String TALENT_POOL = "bdeb379900e5475c87306862dfb9d0b9";
|
||||
/**
|
||||
* 简历库
|
||||
*/
|
||||
public static final String RESUME_LIBRARY = "9bc41dbc69ee43a1976910008d7fdfe3";
|
||||
/**
|
||||
* 工作地点
|
||||
*/
|
||||
public static final String WORK_LOCATION = "af9c9eee65a84e82bf3a423506ef1f38";
|
||||
/**
|
||||
* 数据字典类型名称
|
||||
*/
|
||||
public static final String DATA_DICTIONARY_TYPE_NAME = "034d7bcea5634e458854a1c70580ca6d";
|
||||
/**
|
||||
* 邮件通知模板
|
||||
*/
|
||||
public static final String EMAIL_NOTIFICATION_TEMPLATE = "ea3b7ae0e3134c65be740eee629070af";
|
||||
/**
|
||||
* 千里聆邮箱配置
|
||||
*/
|
||||
public static final String QLL_EMAIL_CONFIG = "a97c0154ea5b43c8b17fc7a1dfdb195f";
|
||||
/**
|
||||
* 我的招聘需求
|
||||
*/
|
||||
public static final String MY_RECRUITMENT_NEEDS = "f29ea36c85284ac784e110de300394cc";
|
||||
|
||||
/**
|
||||
* 我的筛选
|
||||
*/
|
||||
public static final String MY_FILTERING = "0cf9446551bb4acc8e090e3e0b3ab468";
|
||||
/**
|
||||
* 我参与的面试
|
||||
*/
|
||||
public static final String PARTICIPATE_IN_INTERVIEWS = "b8c509d648124c068f11fca338b2eea2";
|
||||
/**
|
||||
* 招聘流程列表
|
||||
*/
|
||||
public static final String RECRUITMENT_PROCESS_LIST = "32cea1924ceb45d8aa8622dbdf935a58";
|
||||
/**
|
||||
* 招聘阶段列表
|
||||
*/
|
||||
public static final String RECRUITMENT_STAGE_LIST = "06443dd4afa84831ae9d9c1b76450313";
|
||||
/**
|
||||
* 操作按钮列表
|
||||
*/
|
||||
public static final String LIST_OF_OPERATION_BUTTONS = "e14a2ce232d844239c00a0b3ead1af04";
|
||||
/**
|
||||
* 入职管理
|
||||
*/
|
||||
public static final String ENTRY_MANAGEMENT = "073e0628016a46b588d76fdd872a7369";
|
||||
/**
|
||||
* 简历订阅
|
||||
*/
|
||||
public static final String RESUME_SUBSCRIPTION = "e672681f989f4ba18fdc02cb89049293";
|
||||
/**
|
||||
* 招聘全局配置
|
||||
*/
|
||||
public static final String RECRUITMENT_GLOBAL_CONFIGURATION = "3e1d3a17c55b47588c30cff577fb0201";
|
||||
/**
|
||||
* 阶段提醒设置
|
||||
*/
|
||||
public static final String STAGE_REMINDER_SETTINGS = "6698c3287d7a4436831103267950fe07";
|
||||
/**
|
||||
* 我的面试评价
|
||||
*/
|
||||
public static final String MY_INTERVIEW_EVALUATION = "af63a991265c4ce49b11f6dac50f148e";
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
package com.engine.recruit.constant;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/03/13
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class ModeTreeCodeConstant {
|
||||
/**
|
||||
* 数据字典树
|
||||
*/
|
||||
public static final String DATA_DICTIONARY_TREE = "31717568fca8435f9e55eb08c1fbed4b";
|
||||
}
|
||||
|
|
@ -0,0 +1,201 @@
|
|||
package com.engine.recruit.constant;
|
||||
|
||||
import com.engine.recruit.conn.ApplicantCommonInfo;
|
||||
import com.engine.recruit.exception.CustomizeRunTimeException;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import weaver.general.BaseBean;
|
||||
|
||||
import java.net.URI;
|
||||
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 INTERVIEW_ADJUSTMENT_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 INTERVIEW_FEEDBACK_URL;
|
||||
public static final String REMIND_SEARCH_LINK;
|
||||
public static final String OCR_TYPE;
|
||||
public static final String OCR_URL;
|
||||
public static final String APP_ID;
|
||||
public static final String APP_SECRET;
|
||||
|
||||
public static final String MODE_APP_NAME;
|
||||
|
||||
public static final String APPLICANT_URL;
|
||||
|
||||
static BaseBean baseBean = new BaseBean();
|
||||
|
||||
static {
|
||||
|
||||
HTTP_URL = getRecruitPropValue("HTTP_URL");
|
||||
RECRUIT_MESSAGE_TYPE = getRecruitPropValue("RECRUIT_MESSAGE_TYPE");
|
||||
|
||||
MOBILE_APPID_COLLECT = getRecruitPropValue("MOBILE_APPID_COLLECT");
|
||||
// 信息采集移动建模地址
|
||||
COLLECT_MESSAGE_LINK = getCompleteUrl(getRecruitPropValue("COLLECT_MESSAGE_LINK"));
|
||||
MOBILE_APPID_OFFER = getRecruitPropValue("MOBILE_APPID_OFFER");
|
||||
// offer反馈移动建模地址
|
||||
OFFER_MOBILE_URL = getCompleteUrl(getRecruitPropValue("OFFER_MOBILE_URL"));
|
||||
APPLICANTS_RESUMES_CATEGORY = getRecruitPropValue("APPLICANTS_RESUMES_CATEGORY");
|
||||
|
||||
// 简历订阅相关
|
||||
REMIND_SEARCH_LINK = getCompleteUrl(getRecruitPropValue("REMIND_SEARCH_LINK"));
|
||||
// OCR相关
|
||||
OCR_TYPE = getRecruitPropValue("OCR_TYPE");
|
||||
OCR_URL = getRecruitPropValue("OCR_URL");
|
||||
APP_ID = getRecruitPropValue("APP_ID");
|
||||
APP_SECRET = getRecruitPropValue("APP_SECRET");
|
||||
|
||||
/*处理非必填字段,为空的话,指定默认值*/
|
||||
|
||||
// 面试反馈消息提醒,消息来源
|
||||
String interviewMessageType = getRecruitPropValue("INTERVIEW_MESSAGE_TYPE");
|
||||
if (StringUtils.isBlank(interviewMessageType)) {
|
||||
interviewMessageType = RECRUIT_MESSAGE_TYPE;
|
||||
}
|
||||
INTERVIEW_MESSAGE_TYPE = interviewMessageType;
|
||||
|
||||
// 添加面试消息提醒标题
|
||||
String interviewAddMessageTitle = getRecruitPropValue("INTERVIEW_ADD_MESSAGE_TITLE");
|
||||
if (StringUtils.isBlank(interviewAddMessageTitle)) {
|
||||
interviewAddMessageTitle = "面试安排提醒";
|
||||
}
|
||||
INTERVIEW_ADD_MESSAGE_TITLE = interviewAddMessageTitle;
|
||||
|
||||
// 取消面试消息提醒标题
|
||||
String interviewCancelMessageTitle = getRecruitPropValue("INTERVIEW_CANCEL_MESSAGE_TITLE");
|
||||
if (StringUtils.isBlank(interviewCancelMessageTitle)) {
|
||||
interviewCancelMessageTitle = "取消面试提醒";
|
||||
}
|
||||
INTERVIEW_CANCEL_MESSAGE_TITLE = interviewCancelMessageTitle;
|
||||
|
||||
// 面试评价消息提醒标题
|
||||
String interviewEvaluateMessageTitle = getRecruitPropValue("INTERVIEW_EVALUATE_MESSAGE_TITLE");
|
||||
if (StringUtils.isBlank(interviewEvaluateMessageTitle)) {
|
||||
interviewEvaluateMessageTitle = "面试评价提醒";
|
||||
}
|
||||
INTERVIEW_EVALUATE_MESSAGE_TITLE = interviewEvaluateMessageTitle;
|
||||
|
||||
// 调整面试消息提醒标题
|
||||
String interviewAdjustmentMessageTitle = getRecruitPropValue("INTERVIEW_ADJUSTMENT_MESSAGE_TITLE");
|
||||
if (StringUtils.isBlank(interviewAdjustmentMessageTitle)) {
|
||||
interviewAdjustmentMessageTitle = "面试调整提醒";
|
||||
}
|
||||
INTERVIEW_ADJUSTMENT_MESSAGE_TITLE = interviewAdjustmentMessageTitle;
|
||||
|
||||
// 人才黑名单通知,消息提醒标题
|
||||
String joinBlacklistMessageTitle = getRecruitPropValue("JOIN_BLACKLIST_MESSAGE_TITLE");
|
||||
if (StringUtils.isBlank(joinBlacklistMessageTitle)) {
|
||||
joinBlacklistMessageTitle = "人才黑名单通知";
|
||||
}
|
||||
JOIN_BLACKLIST_MESSAGE_TITLE = joinBlacklistMessageTitle;
|
||||
|
||||
// 筛选反馈消息提醒,消息来源
|
||||
String screeningMessageType = getRecruitPropValue("SCREENING_MESSAGE_TYPE");
|
||||
if (StringUtils.isBlank(screeningMessageType)) {
|
||||
screeningMessageType = RECRUIT_MESSAGE_TYPE;
|
||||
}
|
||||
SCREENING_MESSAGE_TYPE = screeningMessageType;
|
||||
|
||||
// 筛选反馈,消息提醒标题
|
||||
String screeningMessageTitle = getRecruitPropValue("SCREENING_MESSAGE_TITLE");
|
||||
if (StringUtils.isBlank(screeningMessageTitle)) {
|
||||
screeningMessageTitle = "简历筛选";
|
||||
}
|
||||
SCREENING_MESSAGE_TITLE = screeningMessageTitle;
|
||||
|
||||
// 筛选反馈,消息提醒链接地址
|
||||
String screeningMessageUrl = getRecruitPropValue("SCREENING_MESSAGE_URL");
|
||||
if (StringUtils.isBlank(screeningMessageUrl)) {
|
||||
// 根据customSearchCode,获取默认的查询列表
|
||||
screeningMessageUrl = "/wui/index.html#/main/cube/search?customid=" + ApplicantCommonInfo.getCustomSearchId("b746e3cf80454289a3ade2b17147e297");
|
||||
}
|
||||
SCREENING_MESSAGE_URL = screeningMessageUrl;
|
||||
|
||||
// 面试反馈地址
|
||||
String interviewFeedbackUrl = getRecruitPropValue("INTERVIEW_FEEDBACK_URL");
|
||||
if (StringUtils.isBlank(interviewFeedbackUrl)) {
|
||||
interviewFeedbackUrl = "/spa/custom/static/index.html#/main/cs/app/9277c228302347dc88a958b69ee96234_Interview";
|
||||
}
|
||||
INTERVIEW_FEEDBACK_URL = getCompleteUrl(interviewFeedbackUrl);
|
||||
|
||||
String modeAppName = getRecruitPropValue("MODE_APP_NAME");
|
||||
if (StringUtils.isBlank(modeAppName)) {
|
||||
modeAppName = "JCL_招聘管理";
|
||||
}
|
||||
MODE_APP_NAME = modeAppName;
|
||||
|
||||
String applicantUrl = getRecruitPropValue("APPLICANT_URL");
|
||||
if (StringUtils.isBlank(applicantUrl)) {
|
||||
applicantUrl = "/spa/custom/static/index.html#/main/cs/app/d2c5417e775e4cc6b51e27aae45767c8_RecruitFlowInfo";
|
||||
}
|
||||
APPLICANT_URL = applicantUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
* 读取jclRecruit.properties配置文件的配置项
|
||||
*
|
||||
* @param key
|
||||
* @return
|
||||
*/
|
||||
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
|
||||
*/
|
||||
public static String getCompleteUrl(String url) {
|
||||
if (StringUtils.isBlank(url)) {
|
||||
return "";
|
||||
}
|
||||
try {
|
||||
URI u = new URI(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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,114 @@
|
|||
package com.engine.recruit.controller;
|
||||
|
||||
import com.engine.common.util.ParamUtil;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.recruit.util.ResponseResult;
|
||||
import com.engine.recruit.wrapper.ApplicantResumeWrapper;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/09/20
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class ApplicantResumeController {
|
||||
public ApplicantResumeWrapper getApplicantResumeWrapper(User user) {
|
||||
return ServiceUtil.getService(ApplicantResumeWrapper.class, user);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/getApplicantsName")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getApplicantsName(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> params = ParamUtil.request2Map(request);
|
||||
String ids = Util.null2String(params.get("ids"));
|
||||
return new ResponseResult<String, Map<String, Object>>(user).run(getApplicantResumeWrapper(user)::getApplicantsName, ids);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/getInterviewInfoById")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getInterviewInfoById(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> params = ParamUtil.request2Map(request);
|
||||
String id = Util.null2String(params.get("id"));
|
||||
return new ResponseResult<String, Map<String, Object>>(user).run(getApplicantResumeWrapper(user)::getInterviewInfoById, id);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/getDisplayLayoutId")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getDisplayLayoutId(@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(getApplicantResumeWrapper(user)::getDisplayLayoutId, params);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/getTabCount")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getTabCount(@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(getApplicantResumeWrapper(user)::getTabCount, params);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/updateApplicantsInfo")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String updateApplicantsInfo(@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(getApplicantResumeWrapper(user)::updateApplicantsInfo, params);
|
||||
}
|
||||
|
||||
|
||||
@POST
|
||||
@Path("/checkRepeatResume")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String checkRepeatResume(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getApplicantResumeWrapper(user)::checkRepeatResume, param);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/getResumeCardInfo")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getResumeCardInfo(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getApplicantResumeWrapper(user)::getResumeCardInfo, param);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/getResumeListStatus")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getResumeListStatus(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, String>(user).run(getApplicantResumeWrapper(user)::getResumeListStatus, param);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/updateResumeListStatus")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String updateResumeListStatus(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getApplicantResumeWrapper(user)::updateResumeListStatus, param);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
package com.engine.recruit.controller;
|
||||
|
||||
import com.engine.common.util.ParamUtil;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.recruit.util.ResponseResult;
|
||||
import com.engine.recruit.wrapper.InductionManageWrapper;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/23
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class InductionManageController {
|
||||
public InductionManageWrapper getInductionManageWrapper(User user) {
|
||||
return ServiceUtil.getService(InductionManageWrapper.class, user);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/updateInductionManageInfo")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String updateInductionManageInfo(@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(getInductionManageWrapper(user)::updateInductionManageInfo, params);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/sendCollectInfo")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String sendCollectInfo(@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(getInductionManageWrapper(user)::sendCollectInfo, params);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/verifyIDCard")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String verifyIDCard(@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(getInductionManageWrapper(user)::verifyIDCard, params);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
package com.engine.recruit.controller;
|
||||
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.recruit.util.ResponseResult;
|
||||
import com.engine.recruit.wrapper.InitRecruitDataWrapper;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/11/23
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class InitRecruitDataController {
|
||||
public InitRecruitDataWrapper getInitRecruitDataWrapper(User user) {
|
||||
return ServiceUtil.getService(InitRecruitDataWrapper.class, user);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/checkInitStatus")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String checkInitStatus(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getInitRecruitDataWrapper(user)::checkInitStatus);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/initRecruitData")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String initRecruitData(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getInitRecruitDataWrapper(user)::initRecruitData);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/updateRecruitData")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String updateRecruitData(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getInitRecruitDataWrapper(user)::updateRecruitData);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
package com.engine.recruit.controller;
|
||||
|
||||
import com.engine.common.util.ParamUtil;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.recruit.util.ResponseResult;
|
||||
import com.engine.recruit.wrapper.MessageTemplateWrapper;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/09/26
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class MessageTemplateController {
|
||||
public MessageTemplateWrapper getMessageTemplateWrapper(User user) {
|
||||
return ServiceUtil.getService(MessageTemplateWrapper.class, user);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/getMessageContent")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getMessageContent(@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(getMessageTemplateWrapper(user)::getMessageContent, params);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
package com.engine.recruit.controller;
|
||||
|
||||
import com.engine.common.util.ParamUtil;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.recruit.util.ResponseResult;
|
||||
import com.engine.recruit.wrapper.RecruitButtonWrapper;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/09/18
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class RecruitButtonController {
|
||||
|
||||
public RecruitButtonWrapper getRecruitButtonWrapper(User user) {
|
||||
return ServiceUtil.getService(RecruitButtonWrapper.class, user);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/executeButtonAction")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String executeButtonAction(@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(getRecruitButtonWrapper(user)::execute, params);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
package com.engine.recruit.controller;
|
||||
|
||||
import com.engine.common.util.ParamUtil;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.recruit.util.ResponseResult;
|
||||
import com.engine.recruit.wrapper.RecruitFlowWrapper;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/09/20
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class RecruitFlowController {
|
||||
public RecruitFlowWrapper getRecruitFlowWrapper(User user) {
|
||||
return ServiceUtil.getService(RecruitFlowWrapper.class, user);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/getButtonList")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getButtonList(@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(getRecruitFlowWrapper(user)::getButtonList, params);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/getRecruitStepList")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getRecruitStepList(@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(getRecruitFlowWrapper(user)::getRecruitStepList, params);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/syncRecruitStepInfo")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String syncRecruitStepInfo(@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(getRecruitFlowWrapper(user)::syncRecruitStepInfo, params);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
package com.engine.recruit.controller;
|
||||
|
||||
import com.engine.common.util.ParamUtil;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
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 weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.*;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/11/15
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class RecruitMobileModeController {
|
||||
public OfferWrapper getOfferWrapper(User user) {
|
||||
return ServiceUtil.getService(OfferWrapper.class, user);
|
||||
}
|
||||
|
||||
public InductionManageWrapper getInductionManageWrapper(User user) {
|
||||
return ServiceUtil.getService(InductionManageWrapper.class, user);
|
||||
}
|
||||
|
||||
public RecruitInterviewWrapper getRecruitInterviewWrapper(User user) {
|
||||
return ServiceUtil.getService(RecruitInterviewWrapper.class, user);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/getOfferContent")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getOfferContent(@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(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<String, Object> params = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getOfferWrapper(user)::updateOfferStatus, params);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/checkLoginInfo")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String checkLoginInfo(@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(getInductionManageWrapper(user)::checkLoginInfo, params);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/infoSubmit")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String infoSubmit(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam("id") String id) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<String, Map<String, Object>>(user).run(getInductionManageWrapper(user)::infoSubmit, id);
|
||||
}
|
||||
|
||||
|
||||
@POST
|
||||
@Path("/updateInterviewStatus")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String updateInterviewStatus(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getRecruitInterviewWrapper(user)::updateInterviewStatus, param);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/getInterviewEvaluateStatus")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getInterviewEvaluateStatus(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, String>(user).run(getRecruitInterviewWrapper(user)::getInterviewEvaluateStatus, param);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
package com.engine.recruit.controller;
|
||||
|
||||
import com.engine.common.util.ParamUtil;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.recruit.util.ResponseResult;
|
||||
import com.engine.recruit.wrapper.RecruitOfferWrapper;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/05/21
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class RecruitOfferController {
|
||||
public RecruitOfferWrapper getRecruitOfferWrapper(User user) {
|
||||
return ServiceUtil.getService(RecruitOfferWrapper.class, user);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/updatePreContent")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String updatePreContent(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getRecruitOfferWrapper(user)::updatePreContent, param);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,101 @@
|
|||
package com.engine.recruit.controller;
|
||||
|
||||
import com.engine.common.util.ParamUtil;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.recruit.util.ResponseResult;
|
||||
import com.engine.recruit.wrapper.RecruitPositionWrapper;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/09
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class RecruitPositionController {
|
||||
public RecruitPositionWrapper getRecruitPositionWrapper(User user) {
|
||||
return ServiceUtil.getService(RecruitPositionWrapper.class, user);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/updatePostInfo")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String updatePostInfo(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getRecruitPositionWrapper(user)::updatePostInfo, param);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/getFormCondition")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getFormCondition(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getRecruitPositionWrapper(user)::getFormCondition, param);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/releaseResumeJob")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String releaseResumeJob(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(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<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getRecruitPositionWrapper(user)::saveAndReleaseResumeJob, param);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/closeResumeJob")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String closeResumeJob(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getRecruitPositionWrapper(user)::closeResumeJob, param);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/refreshResumeJob")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String refreshResumeJob(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getRecruitPositionWrapper(user)::refreshResumeJob, param);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/getReportList")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getReportList(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getRecruitPositionWrapper(user)::getReportList, param);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/setStepMsgConfig")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String setStepMsgConfig(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getRecruitPositionWrapper(user)::setStepMsgConfig, param);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
package com.engine.recruit.controller;
|
||||
|
||||
import com.engine.common.util.ParamUtil;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.recruit.util.ResponseResult;
|
||||
import com.engine.recruit.wrapper.RecruitScheduleWrapper;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/03/27
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class RecruitScheduleController {
|
||||
|
||||
public RecruitScheduleWrapper getRecruitScheduleWrapper(User user) {
|
||||
return ServiceUtil.getService(RecruitScheduleWrapper.class, user);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/immediatelyRun")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String immediatelyRun(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getRecruitScheduleWrapper(user)::immediatelyRun, param);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
package com.engine.recruit.controller;
|
||||
|
||||
import com.engine.common.util.ParamUtil;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.recruit.util.ResponseResult;
|
||||
import com.engine.recruit.wrapper.ResumeRecognitionWrapper;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/12/12
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class ResumeRecognitionController {
|
||||
public ResumeRecognitionWrapper getResumeRecognitionWrapper(User user) {
|
||||
return ServiceUtil.getService(ResumeRecognitionWrapper.class, user);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/resumeUpload")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String resumeUpload(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getResumeRecognitionWrapper(user)::resumeUpload, param);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/importResume")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String importResume(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getResumeRecognitionWrapper(user)::importResume, param);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/fetchResume")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String fetchResume(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getResumeRecognitionWrapper(user)::fetchResume, param);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
package com.engine.recruit.controller;
|
||||
|
||||
import com.engine.common.util.ParamUtil;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.recruit.util.ResponseResult;
|
||||
import com.engine.recruit.wrapper.ResumeRemindWrapper;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/03/13
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class ResumeRemindController {
|
||||
public ResumeRemindWrapper getResumeRemindWrapper(User user) {
|
||||
return ServiceUtil.getService(ResumeRemindWrapper.class, user);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/doRemindJob")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String doRemindJob(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getResumeRemindWrapper(user)::doRemindJob, param);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
package com.engine.recruit.controller;
|
||||
|
||||
import com.engine.common.util.ParamUtil;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.recruit.util.ResponseResult;
|
||||
import com.engine.recruit.wrapper.RpaJclWrapper;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/27
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class RpaJclController {
|
||||
public RpaJclWrapper getRpaJclWrapper(User user) {
|
||||
return ServiceUtil.getService(RpaJclWrapper.class, user);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/setEmailSetting")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String setEmailSetting(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getRpaJclWrapper(user)::setEmailSetting, param);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
package com.engine.recruit.controller;
|
||||
|
||||
import com.engine.common.util.ParamUtil;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.recruit.util.ResponseResult;
|
||||
import com.engine.recruit.wrapper.TalentPoolWrapper;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/20
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class TalentPoolController {
|
||||
public TalentPoolWrapper getTalentPoolWrapper(User user) {
|
||||
return ServiceUtil.getService(TalentPoolWrapper.class, user);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/removeBlacklist")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String removeBlacklist(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getTalentPoolWrapper(user)::removeBlacklist, param);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/createNewApplicant")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String createNewApplicant(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getTalentPoolWrapper(user)::createNewApplicant, param);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,84 @@
|
|||
package com.engine.recruit.controller;
|
||||
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.recruit.entity.workbench.OptionVO;
|
||||
import com.engine.recruit.entity.workbench.RecruitPortalCommonVO;
|
||||
import com.engine.recruit.service.WorkBenchPortalService;
|
||||
import com.engine.recruit.service.impl.WorkBenchPortalServiceImpl;
|
||||
import com.engine.recruit.util.ResponseResult;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2023/10/18 4:34 PM
|
||||
* @Version 1.0
|
||||
*/
|
||||
public class WorkBenchPortalController {
|
||||
|
||||
public WorkBenchPortalService getWorkBenchPortal(User user) {
|
||||
return ServiceUtil.getService(WorkBenchPortalServiceImpl.class, user);
|
||||
}
|
||||
|
||||
|
||||
@GET
|
||||
@Path("/top")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getRecruitPortalTop(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<String, List<RecruitPortalCommonVO>>(user).run(getWorkBenchPortal(user) :: getRecruitPortalTop);
|
||||
}
|
||||
|
||||
|
||||
@GET
|
||||
@Path("/jobTenure")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getJobTenure(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<String, OptionVO>(user).run(getWorkBenchPortal(user) :: getJobTenure);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/waitStepPerson")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getWaitStepPerson(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<String, OptionVO>(user).run(getWorkBenchPortal(user) :: getWaitStepPerson);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/recruitTransform")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getRecruitTransform(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<String, OptionVO>(user).run(getWorkBenchPortal(user) :: getRecruitTransform);
|
||||
}
|
||||
|
||||
|
||||
@GET
|
||||
@Path("/peopleFrom")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getPeopleFrom(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<String, OptionVO>(user).run(getWorkBenchPortal(user) :: getPeopleFrom);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@GET
|
||||
@Path("/recruitProgress")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getRecruitProgress(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<String, List<RecruitPortalCommonVO>>(user).run(getWorkBenchPortal(user) :: getRecruitProgress);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
package com.engine.recruit.controller;
|
||||
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.recruit.entity.workplan.WorkPlanCreateParams;
|
||||
import com.engine.recruit.service.WorkPlanSerivice;
|
||||
import com.engine.recruit.service.impl.WorkPlanServiceImpl;
|
||||
import com.engine.recruit.util.ResponseResult;
|
||||
import io.swagger.v3.oas.annotations.parameters.RequestBody;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2023/10/17 10:48 AM
|
||||
* @Description: 面试生成日程
|
||||
* @Version 1.0
|
||||
*/
|
||||
public class WorkPlanController {
|
||||
|
||||
public WorkPlanSerivice getWorkPlan(User user) {
|
||||
return ServiceUtil.getService(WorkPlanServiceImpl.class, user);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/operate")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String operateWorkPlan(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody WorkPlanCreateParams workPlanCreateParams) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<WorkPlanCreateParams, String>(user).run(getWorkPlan(user)::operate, workPlanCreateParams);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
package com.engine.recruit.controller;
|
||||
|
||||
import com.engine.common.util.ParamUtil;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.recruit.util.ResponseResult;
|
||||
import com.engine.recruit.wrapper.WrittenResultsWrapper;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/01/24
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class WrittenResultsController {
|
||||
public WrittenResultsWrapper getWrittenResultsWrapper(User user) {
|
||||
return ServiceUtil.getService(WrittenResultsWrapper.class, user);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/getFormCondition")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getFormCondition(@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(getWrittenResultsWrapper(user)::getFormCondition, params);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/importExcel")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String importExcel(@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(getWrittenResultsWrapper(user)::importExcel, params);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
package com.engine.recruit.entity.card;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.general.BaseBean;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/01
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class EduInfo {
|
||||
private String time;
|
||||
private String start;
|
||||
private String end;
|
||||
private String school;
|
||||
private String professional;
|
||||
|
||||
public void setStart(String start) {
|
||||
this.start = start;
|
||||
}
|
||||
|
||||
public void setEnd(String end) {
|
||||
this.end = end;
|
||||
}
|
||||
|
||||
public String getTime() {
|
||||
String dateTimeStart = formatEduDateTime(start);
|
||||
String dateTimeEnd = formatEduDateTime(end);
|
||||
if (StringUtils.isNotBlank(dateTimeStart) && StringUtils.isNotBlank(dateTimeEnd)) {
|
||||
return dateTimeStart + " - " + dateTimeEnd;
|
||||
}
|
||||
if (StringUtils.isNotBlank(dateTimeStart) && StringUtils.isBlank(dateTimeEnd)) {
|
||||
return dateTimeStart + " - 至今";
|
||||
}
|
||||
return "";
|
||||
|
||||
}
|
||||
|
||||
public void setTime(String time) {
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
public String getSchool() {
|
||||
return school;
|
||||
}
|
||||
|
||||
public void setSchool(String school) {
|
||||
this.school = school;
|
||||
}
|
||||
|
||||
public String getProfessional() {
|
||||
return professional;
|
||||
}
|
||||
|
||||
public void setProfessional(String professional) {
|
||||
this.professional = professional;
|
||||
}
|
||||
|
||||
/**
|
||||
* 日期格式化
|
||||
*
|
||||
* @param dateStr
|
||||
* @return
|
||||
*/
|
||||
private String formatEduDateTime(String dateStr) {
|
||||
if(StringUtils.isBlank(dateStr)){
|
||||
return "";
|
||||
}
|
||||
String dateTime = "";
|
||||
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy.MM");
|
||||
|
||||
try {
|
||||
// 解析输入日期字符串
|
||||
Date date = inputFormat.parse(dateStr);
|
||||
// 格式化为目标格式
|
||||
dateTime = outputFormat.format(date);
|
||||
} catch (Exception e) {
|
||||
new BaseBean().writeLog("教育信息日期格式化失败", e);
|
||||
}
|
||||
return dateTime;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package com.engine.recruit.entity.card;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/01
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class RecruitProcess {
|
||||
private String title;
|
||||
private String value;
|
||||
private String icon;
|
||||
private Date createDateTime;
|
||||
}
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
package com.engine.recruit.entity.card;
|
||||
|
||||
import com.engine.recruit.conn.ModeBrowserCommonInfo;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/01
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class ResumeCardInfo {
|
||||
private Integer id;
|
||||
private String image;
|
||||
private String lastName;
|
||||
private String applicantUrl;
|
||||
private String jobTitle;
|
||||
private String currentStage;
|
||||
private String sex;
|
||||
private String age;
|
||||
private String education;
|
||||
private String workYear;
|
||||
private String submissionTime;
|
||||
private String submissionFrom;
|
||||
private List<Tags> tags;
|
||||
private List<RecruitProcess> recruitProcess;
|
||||
private List<WorkInfo> workInfo;
|
||||
private List<EduInfo> eduInfo;
|
||||
|
||||
public String getSex() {
|
||||
if (StringUtils.isNotBlank(sex)) {
|
||||
if ("0".equals(sex)) {
|
||||
return "男";
|
||||
} else {
|
||||
return "女";
|
||||
}
|
||||
}
|
||||
return sex;
|
||||
}
|
||||
|
||||
public String getAge() {
|
||||
if (StringUtils.isNotBlank(age)) {
|
||||
return age + "岁";
|
||||
}
|
||||
return age;
|
||||
}
|
||||
|
||||
public String getWorkYear() {
|
||||
if (StringUtils.isNotBlank(workYear)) {
|
||||
return "工作" + workYear;
|
||||
}
|
||||
return workYear;
|
||||
}
|
||||
|
||||
public String getEducation() {
|
||||
return ModeBrowserCommonInfo.getEducationLevelById(education);
|
||||
}
|
||||
|
||||
public String getCurrentStage() {
|
||||
String stageStr = "";
|
||||
if (StringUtils.isNotBlank(currentStage)) {
|
||||
switch (currentStage) {
|
||||
case "0":
|
||||
stageStr = "初筛";
|
||||
break;
|
||||
case "1":
|
||||
stageStr = "笔试";
|
||||
break;
|
||||
case "2":
|
||||
stageStr = "面试";
|
||||
break;
|
||||
case "3":
|
||||
stageStr = "测评";
|
||||
break;
|
||||
case "4":
|
||||
stageStr = "薪酬谈判";
|
||||
break;
|
||||
case "5":
|
||||
stageStr = "背调";
|
||||
break;
|
||||
case "6":
|
||||
stageStr = "offer";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
return stageStr;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
package com.engine.recruit.entity.card;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/01
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class Tags {
|
||||
private String color;
|
||||
private String bgColor;
|
||||
private String bdColor;
|
||||
private String title;
|
||||
}
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
package com.engine.recruit.entity.card;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.common.DateUtil;
|
||||
import weaver.general.BaseBean;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.Period;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/01
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class WorkInfo {
|
||||
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
private String start;
|
||||
private String end;
|
||||
private String time;
|
||||
private String company;
|
||||
private String job;
|
||||
|
||||
public void setStart(String start) {
|
||||
this.start = start;
|
||||
}
|
||||
|
||||
public void setEnd(String end) {
|
||||
this.end = end;
|
||||
}
|
||||
|
||||
public String getTime() {
|
||||
if (StringUtils.isBlank(start)) {
|
||||
return "";
|
||||
}
|
||||
if (StringUtils.isBlank(end)) {
|
||||
return getDatePeriod(start, "");
|
||||
}
|
||||
return getDatePeriod(start, end);
|
||||
}
|
||||
|
||||
public void setTime(String time) {
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
public String getCompany() {
|
||||
return company;
|
||||
}
|
||||
|
||||
public void setCompany(String company) {
|
||||
this.company = company;
|
||||
}
|
||||
|
||||
public String getJob() {
|
||||
return job;
|
||||
}
|
||||
|
||||
public void setJob(String job) {
|
||||
this.job = job;
|
||||
}
|
||||
|
||||
|
||||
private String getDatePeriod(String start, String end) {
|
||||
try {
|
||||
String dateStr = start + " ~ " + end;
|
||||
// 解析日期字符串为 LocalDate 对象
|
||||
LocalDate startDate = LocalDate.parse(start, DATE_FORMATTER);
|
||||
if (StringUtils.isBlank(end)) {
|
||||
end = DateUtil.getCurrentDate();
|
||||
dateStr = start + " ~ 至今";
|
||||
}
|
||||
LocalDate endDate = LocalDate.parse(end, DATE_FORMATTER);
|
||||
|
||||
// 计算两个日期之间的 Period 对象
|
||||
Period period = Period.between(startDate, endDate);
|
||||
|
||||
String periodStr = "";
|
||||
// 提取相差的年和月
|
||||
int years = period.getYears();
|
||||
int months = period.getMonths();
|
||||
if (years > 0) {
|
||||
if (months == 0) {
|
||||
periodStr = years + "年";
|
||||
} else {
|
||||
periodStr = years + "年" + months + "个月";
|
||||
}
|
||||
} else {
|
||||
periodStr = months + "个月";
|
||||
}
|
||||
return dateStr + "(" + periodStr + ")";
|
||||
|
||||
} catch (Exception e) {
|
||||
new BaseBean().writeLog("工作信息日期计算失败", e);
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
package com.engine.recruit.entity.card.process;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/07
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class BackProcess {
|
||||
public static final String ICON_NAME = "back.png";
|
||||
public static final String TITLE = "最近背调";
|
||||
|
||||
private String dcrq;
|
||||
private String dcjg;
|
||||
|
||||
public String getDcrq() {
|
||||
return dcrq;
|
||||
}
|
||||
|
||||
public void setDcrq(String dcrq) {
|
||||
this.dcrq = dcrq;
|
||||
}
|
||||
|
||||
public String getDcjg() {
|
||||
if ("0".equals(dcjg)) {
|
||||
return "通过";
|
||||
} else if ("1".equals(dcjg)) {
|
||||
return "不通过";
|
||||
}
|
||||
return "待定";
|
||||
}
|
||||
|
||||
public void setDcjg(String dcjg) {
|
||||
this.dcjg = dcjg;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
if (StringUtils.isBlank(dcjg)) {
|
||||
return "暂无背调结果";
|
||||
} else {
|
||||
return getDcrq() + " " + getDcjg();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,111 @@
|
|||
package com.engine.recruit.entity.card.process;
|
||||
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.hrm.resource.ResourceComInfo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/07
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class InterviewProcess {
|
||||
public static final String ICON_NAME = "interview.png";
|
||||
public static final String TITLE = "最近面试";
|
||||
|
||||
private String zt;
|
||||
private String msrq;
|
||||
List<InterviewDetail> interviewDetails = new ArrayList<>();
|
||||
|
||||
|
||||
public String getZt() {
|
||||
if ("0".equals(zt)) {
|
||||
return "待面试";
|
||||
} else if ("1".equals(zt)) {
|
||||
return "已反馈";
|
||||
}
|
||||
return "已取消";
|
||||
}
|
||||
|
||||
public void setZt(String zt) {
|
||||
this.zt = zt;
|
||||
}
|
||||
|
||||
public String getMsrq() {
|
||||
return msrq;
|
||||
}
|
||||
|
||||
public void setMsrq(String msrq) {
|
||||
this.msrq = msrq;
|
||||
}
|
||||
|
||||
public List<InterviewDetail> getInterviewDetails() {
|
||||
return interviewDetails;
|
||||
}
|
||||
|
||||
public void addInterviewDetail(String msg, String msjg) {
|
||||
interviewDetails.add(new InterviewDetail(msg, msjg));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder toString = new StringBuilder(getMsrq());
|
||||
if(CollectionUtils.isNotEmpty(interviewDetails)) {
|
||||
toString.append(" ").append("面试官:");
|
||||
for (InterviewDetail interviewDetail : interviewDetails) {
|
||||
toString.append(" ").append(interviewDetail.toString());
|
||||
}
|
||||
}
|
||||
return toString.toString();
|
||||
|
||||
}
|
||||
|
||||
public static class InterviewDetail{
|
||||
private final String msg;
|
||||
private final String msjg;
|
||||
|
||||
InterviewDetail(String msg,String msjg) {
|
||||
this.msg = msg;
|
||||
this.msjg = msjg;
|
||||
}
|
||||
|
||||
public String getMsg() {
|
||||
try {
|
||||
String lastnames = new ResourceComInfo().getLastnames(msg);
|
||||
if (StringUtils.isNotBlank(lastnames)) {
|
||||
return lastnames;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
new BaseBean().writeLog("人员姓名转换失败", e);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
public String getMsjg() {
|
||||
if (StringUtils.isBlank(msjg)) {
|
||||
return "未反馈";
|
||||
} else if ("0".equals(msjg)) {
|
||||
return "通过";
|
||||
} else if ("1".equals(msjg)) {
|
||||
return "不通过";
|
||||
} else {
|
||||
return "待定";
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
String msgName = getMsg();
|
||||
if (StringUtils.isNotBlank(msgName)) {
|
||||
return msgName + " (" + getMsjg()+")";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
package com.engine.recruit.entity.card.process;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/07
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class OfferProcess {
|
||||
public static final String ICON_NAME = "offer.png";
|
||||
public static final String TITLE = "offer状态";
|
||||
|
||||
private String zt;
|
||||
private String fksj;
|
||||
|
||||
public String getZt() {
|
||||
String ztStr = "";
|
||||
if (StringUtils.isNotBlank(zt)) {
|
||||
switch (zt) {
|
||||
case "0":
|
||||
ztStr = "未发送";
|
||||
break;
|
||||
case "1":
|
||||
ztStr = "已发送待反馈";
|
||||
break;
|
||||
case "2":
|
||||
ztStr = "已拒绝";
|
||||
break;
|
||||
case "3":
|
||||
ztStr = "已接受";
|
||||
break;
|
||||
case "5":
|
||||
ztStr = "逾期未回复";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return ztStr;
|
||||
}
|
||||
|
||||
public void setZt(String zt) {
|
||||
this.zt = zt;
|
||||
}
|
||||
|
||||
public String getFksj() {
|
||||
return fksj;
|
||||
}
|
||||
|
||||
public void setFksj(String fksj) {
|
||||
this.fksj = fksj;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getZt() + " " + getFksj();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
package com.engine.recruit.entity.card.process;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/07
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class SalaryProcess {
|
||||
public static final String ICON_NAME = "salray.png";
|
||||
public static final String TITLE = "最近薪酬谈判";
|
||||
|
||||
private String tpsj;
|
||||
private String tpjg;
|
||||
|
||||
public String getTpsj() {
|
||||
return tpsj;
|
||||
}
|
||||
|
||||
public void setTpsj(String tpsj) {
|
||||
this.tpsj = tpsj;
|
||||
}
|
||||
|
||||
public String getTpjg() {
|
||||
if ("0".equals(tpjg)) {
|
||||
return "成功";
|
||||
} else if ("1".equals(tpjg)) {
|
||||
return "失败";
|
||||
}
|
||||
return "待定";
|
||||
}
|
||||
|
||||
public void setTpjg(String tpjg) {
|
||||
this.tpjg = tpjg;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
if (StringUtils.isBlank(tpjg)) {
|
||||
return "暂无薪酬谈判结果";
|
||||
} else {
|
||||
return getTpsj() + " " + getTpjg();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
package com.engine.recruit.entity.card.process;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.hrm.resource.ResourceComInfo;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/07
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class ScreenProcess {
|
||||
private String zt;
|
||||
private String jg;
|
||||
private String fkr;
|
||||
|
||||
public static final String ICON_NAME = "screen.png";
|
||||
public static final String TITLE = "最近筛选结果";
|
||||
|
||||
public String getZt() {
|
||||
if("1".equals(zt)){
|
||||
return "已反馈";
|
||||
}
|
||||
return "待反馈";
|
||||
}
|
||||
|
||||
public void setZt(String zt) {
|
||||
this.zt = zt;
|
||||
}
|
||||
|
||||
public String getJg() {
|
||||
if ("0".equals(jg)) {
|
||||
return "通过";
|
||||
} else if ("1".equals(jg)) {
|
||||
return "不通过";
|
||||
}
|
||||
return "待定";
|
||||
}
|
||||
|
||||
public void setJg(String jg) {
|
||||
this.jg = jg;
|
||||
}
|
||||
|
||||
public String getFkr() {
|
||||
try {
|
||||
String lastnames = new ResourceComInfo().getLastnames(fkr);
|
||||
if (StringUtils.isNotBlank(lastnames)) {
|
||||
return "反馈人:" + lastnames;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
new BaseBean().writeLog("人员姓名转换失败", e);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public void setFkr(String fkr) {
|
||||
this.fkr = fkr;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
if ("1".equals(zt)) {
|
||||
return getJg() + "(" + getFkr() + ")";
|
||||
}
|
||||
return getZt() + "(" + getFkr() + ")";
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
package com.engine.recruit.entity.card.process;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/07
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class WrittenProcess {
|
||||
private String bsmc;
|
||||
private String bscj;
|
||||
private String bsjg;
|
||||
|
||||
public static final String ICON_NAME = "written.png";
|
||||
public static final String TITLE = "最近笔试";
|
||||
|
||||
public String getBsmc() {
|
||||
return bsmc;
|
||||
}
|
||||
|
||||
public void setBsmc(String bsmc) {
|
||||
this.bsmc = bsmc;
|
||||
}
|
||||
|
||||
public String getBscj() {
|
||||
return bscj;
|
||||
}
|
||||
|
||||
public void setBscj(String bscj) {
|
||||
this.bscj = bscj;
|
||||
}
|
||||
|
||||
public String getBsjg() {
|
||||
if ("0".equals(bsjg)) {
|
||||
return "通过";
|
||||
} else if ("1".equals(bsjg)) {
|
||||
return "不通过";
|
||||
}
|
||||
return "待定";
|
||||
}
|
||||
|
||||
public void setBsjg(String bsjg) {
|
||||
this.bsjg = bsjg;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
if (StringUtils.isBlank(bscj) || StringUtils.isBlank(bsjg)) {
|
||||
return getBsmc() + " 暂无得分结果";
|
||||
}
|
||||
return getBsmc() + " " + getBscj() + "分 " + getBsjg();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.engine.recruit.entity.common;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/01/26
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ImportLog {
|
||||
private Integer rowIndex;
|
||||
private String status;
|
||||
private String description;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
package com.engine.recruit.entity.init.po;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/11/22
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class OperateButtonPo {
|
||||
private Integer id;
|
||||
private String buttonName;
|
||||
private String buttonKey;
|
||||
private String buttonAction;
|
||||
private String buttonOrder;
|
||||
|
||||
private String linkUrl;
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.engine.recruit.entity.init.po;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/11/23
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class OperateFlowPo {
|
||||
private String lcmc;
|
||||
private Integer lczt;
|
||||
private String ksjd;
|
||||
private String gcjd;
|
||||
private String jsjd;
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
package com.engine.recruit.entity.init.po;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/11/22
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class OperateStageDt1 {
|
||||
private Integer czan;
|
||||
private String zdyxsmc;
|
||||
private String tzymdz;
|
||||
private Integer zssx;
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package com.engine.recruit.entity.init.po;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/11/22
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class OperateStageDt2 {
|
||||
private String ymbt;
|
||||
private String ymdz;
|
||||
private Integer zssx;
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
package com.engine.recruit.entity.init.po;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/11/22
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class OperateStagePo {
|
||||
private Integer id;
|
||||
private String jdmc;
|
||||
private String jdms;
|
||||
private Integer jdlx;
|
||||
private Integer hj;
|
||||
|
||||
private List<OperateStageDt1> dt1;
|
||||
private List<OperateStageDt2> dt2;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
package com.engine.recruit.entity.message;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/10/16
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class PositionField {
|
||||
private String id;
|
||||
private String fieldName;
|
||||
private String type;
|
||||
private String msgType;
|
||||
|
||||
public String getMsgType() {
|
||||
String fieldMsgType = "";
|
||||
switch (type) {
|
||||
// 人员
|
||||
case "1":
|
||||
case "17":
|
||||
fieldMsgType = "user";
|
||||
break;
|
||||
// 分部
|
||||
case "164":
|
||||
case "169":
|
||||
case "170":
|
||||
case "194":
|
||||
fieldMsgType = "company";
|
||||
break;
|
||||
// 部门
|
||||
case "4":
|
||||
case "57":
|
||||
case "167":
|
||||
case "168":
|
||||
fieldMsgType = "department";
|
||||
break;
|
||||
// 角色
|
||||
case "267":
|
||||
case "65":
|
||||
fieldMsgType = "role";
|
||||
break;
|
||||
// 岗位
|
||||
case "24":
|
||||
case "278":
|
||||
fieldMsgType = "job";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return fieldMsgType;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
package com.engine.recruit.entity.position;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/02/05
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class PositionPo {
|
||||
private String id;
|
||||
private String name;
|
||||
private String status;
|
||||
private String creator;
|
||||
private String createDate;
|
||||
private String createTime;
|
||||
private String creationTime;
|
||||
|
||||
public String getCreationTime() {
|
||||
return createDate + " " + createTime;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
package com.engine.recruit.entity.position;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/06/12
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class PositionRelease {
|
||||
private Integer id;
|
||||
private String title;
|
||||
private String status;
|
||||
private String tips;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getTips() {
|
||||
return tips;
|
||||
}
|
||||
|
||||
public void setTips(String tips) {
|
||||
this.tips = tips;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,284 @@
|
|||
package com.engine.recruit.entity.position;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.engine.recruit.exception.CustomizeRunTimeException;
|
||||
import com.weaver.rpa.sdk.clients.application.resume.ERPAResumeSDKClient;
|
||||
import com.weaver.rpa.sdk.clients.application.resume.entity.ResumeJobDynamicField;
|
||||
import com.weaver.rpa.sdk.clients.core.ERPASDKClients;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import weaver.formmode.recruit.modeexpand.util.RecruitPositionUtil;
|
||||
import weaver.general.BaseBean;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/05/27
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class PositionSdkInstance {
|
||||
private ERPAResumeSDKClient resumeSDKClient;
|
||||
// 职位类型
|
||||
private List<ResumeJobDynamicField.Item> boss_type;
|
||||
private List<ResumeJobDynamicField.Item> liepin_type;
|
||||
private List<ResumeJobDynamicField.Item> lagou_type;
|
||||
private List<ResumeJobDynamicField.Item> job51_type;
|
||||
private List<ResumeJobDynamicField.Item> zhilian_type;
|
||||
private List<ResumeJobDynamicField.Item> dxrcw_zwfl;
|
||||
private List<ResumeJobDynamicField.Item> dxrcw_major;
|
||||
private List<ResumeJobDynamicField.Item> dxrcw_type;
|
||||
private List<ResumeJobDynamicField.Item> dxrcw_yydj;
|
||||
private List<ResumeJobDynamicField.Item> dxrcw_zdzc;
|
||||
|
||||
// BOSS直聘 是否外驻
|
||||
private List<ResumeJobDynamicField.Item> boss_resident;
|
||||
private List<ResumeJobDynamicField.Item> boss_resident_country;
|
||||
private List<ResumeJobDynamicField.Item> boss_resident_language;
|
||||
private List<ResumeJobDynamicField.Item> boss_resident_time;
|
||||
private List<ResumeJobDynamicField.Item> boss_resident_time_2;
|
||||
|
||||
// 前程无忧-发布城市
|
||||
private List<ResumeJobDynamicField.Item> job51_city;
|
||||
// 前程无忧-所属行业
|
||||
private List<ResumeJobDynamicField.Item> job51_industry;
|
||||
|
||||
|
||||
private static volatile PositionSdkInstance positionSdkInstance;
|
||||
|
||||
private PositionSdkInstance() {
|
||||
|
||||
}
|
||||
|
||||
public static PositionSdkInstance getPositionSdkInstance() {
|
||||
if (positionSdkInstance == null || CollectionUtils.isEmpty(positionSdkInstance.getBoss_type())) {
|
||||
synchronized (PositionSdkInstance.class) {
|
||||
if (positionSdkInstance == null || CollectionUtils.isEmpty(positionSdkInstance.getBoss_type())) {
|
||||
if (null == positionSdkInstance) {
|
||||
ERPAResumeSDKClient client = null;
|
||||
try {
|
||||
client = ERPASDKClients.getResumeSDKClient();
|
||||
} catch (Exception e) {
|
||||
new BaseBean().writeLog("client get resumeSDKClient failed!");
|
||||
}
|
||||
if (!RecruitPositionUtil.checkAvailable(client)) {
|
||||
throw new CustomizeRunTimeException("checkAvailable失败!千里聆SDK不可用");
|
||||
}
|
||||
|
||||
positionSdkInstance = new PositionSdkInstance();
|
||||
positionSdkInstance.setResumeSDKClient(client);
|
||||
client.addResumeSavedListener(resumeMqMessage -> {
|
||||
// 处理获取到的简历信息
|
||||
new BaseBean().writeLog("【简历接收回调】:" + JSON.toJSONString(resumeMqMessage));
|
||||
//Thread thread = new Thread(new SdkResumeSavedThread(resumeMqMessage));
|
||||
//thread.start();
|
||||
});
|
||||
client.start();
|
||||
}
|
||||
ResumeJobDynamicField resumeJobDynamicField = positionSdkInstance.getResumeSDKClient().getResumeJobDynamicField();
|
||||
if(CollectionUtils.isEmpty(positionSdkInstance.getBoss_resident())) {
|
||||
positionSdkInstance.setBoss_resident(resumeJobDynamicField.getBoss_resident());
|
||||
// 去除千里聆返回的重复数据
|
||||
List<ResumeJobDynamicField.Item> boss_resident_country1 = resumeJobDynamicField.getBoss_resident_country();
|
||||
List<ResumeJobDynamicField.Item> collect = new ArrayList<>(boss_resident_country1.stream()
|
||||
.collect(Collectors.toMap(
|
||||
ResumeJobDynamicField.Item::getValue,
|
||||
item -> item,
|
||||
(existing, replacement) -> existing
|
||||
))
|
||||
.values());
|
||||
positionSdkInstance.setBoss_resident_country(collect);
|
||||
positionSdkInstance.setBoss_resident_language(resumeJobDynamicField.getBoss_resident_language());
|
||||
positionSdkInstance.setBoss_resident_time_2(resumeJobDynamicField.getBoss_resident_time_2());
|
||||
positionSdkInstance.setBoss_resident_time(resumeJobDynamicField.getBoss_resident_time());
|
||||
|
||||
positionSdkInstance.setJob51_city(resumeJobDynamicField.getJob51_city());
|
||||
positionSdkInstance.setJob51_industry(resumeJobDynamicField.getJob51_industry_txt());
|
||||
|
||||
positionSdkInstance.setBoss_type(resumeJobDynamicField.getBoss_type());
|
||||
positionSdkInstance.setLiepin_type(resumeJobDynamicField.getLiepin_type());
|
||||
positionSdkInstance.setLagou_type(resumeJobDynamicField.getLagou_type());
|
||||
positionSdkInstance.setJob51_type(resumeJobDynamicField.getJob51_type());
|
||||
positionSdkInstance.setZhilian_type(resumeJobDynamicField.getZhilian_type());
|
||||
positionSdkInstance.setDxrcw_type(resumeJobDynamicField.getDxrcw_type());
|
||||
positionSdkInstance.setDxrcw_major(resumeJobDynamicField.getDxrcw_major());
|
||||
positionSdkInstance.setDxrcw_yydj(resumeJobDynamicField.getDxrcw_yydj());
|
||||
positionSdkInstance.setDxrcw_zdzc(resumeJobDynamicField.getDxrcw_zdzc());
|
||||
positionSdkInstance.setDxrcw_zwfl(resumeJobDynamicField.getDxrcw_zwfl());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return positionSdkInstance;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 判断千里聆SDK是否可用
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static boolean enableSdkClient() {
|
||||
BaseBean baseBean = new BaseBean();
|
||||
try {
|
||||
ERPAResumeSDKClient client = ERPASDKClients.getResumeSDKClient();
|
||||
if (client == null || !client.available()) {
|
||||
baseBean.writeLog("checkAvailable failed!client=" + JSON.toJSONString(client));
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
baseBean.writeLog("checkAvailable failed!", e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public ERPAResumeSDKClient getResumeSDKClient() {
|
||||
return resumeSDKClient;
|
||||
}
|
||||
|
||||
public void setResumeSDKClient(ERPAResumeSDKClient resumeSDKClient) {
|
||||
this.resumeSDKClient = resumeSDKClient;
|
||||
}
|
||||
|
||||
public List<ResumeJobDynamicField.Item> getBoss_type() {
|
||||
return boss_type;
|
||||
}
|
||||
|
||||
public void setBoss_type(List<ResumeJobDynamicField.Item> boss_type) {
|
||||
this.boss_type = boss_type;
|
||||
}
|
||||
|
||||
public List<ResumeJobDynamicField.Item> getLiepin_type() {
|
||||
return liepin_type;
|
||||
}
|
||||
|
||||
public void setLiepin_type(List<ResumeJobDynamicField.Item> liepin_type) {
|
||||
this.liepin_type = liepin_type;
|
||||
}
|
||||
|
||||
public List<ResumeJobDynamicField.Item> getLagou_type() {
|
||||
return lagou_type;
|
||||
}
|
||||
|
||||
public void setLagou_type(List<ResumeJobDynamicField.Item> lagou_type) {
|
||||
this.lagou_type = lagou_type;
|
||||
}
|
||||
|
||||
public List<ResumeJobDynamicField.Item> getJob51_type() {
|
||||
return job51_type;
|
||||
}
|
||||
|
||||
public void setJob51_type(List<ResumeJobDynamicField.Item> job51_type) {
|
||||
this.job51_type = job51_type;
|
||||
}
|
||||
|
||||
public List<ResumeJobDynamicField.Item> getZhilian_type() {
|
||||
return zhilian_type;
|
||||
}
|
||||
|
||||
public void setZhilian_type(List<ResumeJobDynamicField.Item> zhilian_type) {
|
||||
this.zhilian_type = zhilian_type;
|
||||
}
|
||||
|
||||
public List<ResumeJobDynamicField.Item> getBoss_resident() {
|
||||
return boss_resident;
|
||||
}
|
||||
|
||||
public void setBoss_resident(List<ResumeJobDynamicField.Item> boss_resident) {
|
||||
this.boss_resident = boss_resident;
|
||||
}
|
||||
|
||||
public List<ResumeJobDynamicField.Item> getBoss_resident_country() {
|
||||
return boss_resident_country;
|
||||
}
|
||||
|
||||
public void setBoss_resident_country(List<ResumeJobDynamicField.Item> boss_resident_country) {
|
||||
this.boss_resident_country = boss_resident_country;
|
||||
}
|
||||
|
||||
public List<ResumeJobDynamicField.Item> getBoss_resident_language() {
|
||||
return boss_resident_language;
|
||||
}
|
||||
|
||||
public void setBoss_resident_language(List<ResumeJobDynamicField.Item> boss_resident_language) {
|
||||
this.boss_resident_language = boss_resident_language;
|
||||
}
|
||||
|
||||
public List<ResumeJobDynamicField.Item> getBoss_resident_time() {
|
||||
return boss_resident_time;
|
||||
}
|
||||
|
||||
public void setBoss_resident_time(List<ResumeJobDynamicField.Item> boss_resident_time) {
|
||||
this.boss_resident_time = boss_resident_time;
|
||||
}
|
||||
|
||||
public List<ResumeJobDynamicField.Item> getBoss_resident_time_2() {
|
||||
return boss_resident_time_2;
|
||||
}
|
||||
|
||||
public void setBoss_resident_time_2(List<ResumeJobDynamicField.Item> boss_resident_time_2) {
|
||||
this.boss_resident_time_2 = boss_resident_time_2;
|
||||
}
|
||||
|
||||
public List<ResumeJobDynamicField.Item> getJob51_city() {
|
||||
return job51_city;
|
||||
}
|
||||
|
||||
public void setJob51_city(List<ResumeJobDynamicField.Item> job51_city) {
|
||||
this.job51_city = job51_city;
|
||||
}
|
||||
|
||||
public List<ResumeJobDynamicField.Item> getJob51_industry() {
|
||||
return job51_industry;
|
||||
}
|
||||
|
||||
public void setJob51_industry(List<ResumeJobDynamicField.Item> job51_industry) {
|
||||
this.job51_industry = job51_industry;
|
||||
}
|
||||
|
||||
|
||||
public List<ResumeJobDynamicField.Item> getDxrcw_zwfl() {
|
||||
return dxrcw_zwfl;
|
||||
}
|
||||
|
||||
public void setDxrcw_zwfl(List<ResumeJobDynamicField.Item> dxrcw_zwfl) {
|
||||
this.dxrcw_zwfl = dxrcw_zwfl;
|
||||
}
|
||||
|
||||
public List<ResumeJobDynamicField.Item> getDxrcw_major() {
|
||||
return dxrcw_major;
|
||||
}
|
||||
|
||||
public void setDxrcw_major(List<ResumeJobDynamicField.Item> dxrcw_major) {
|
||||
this.dxrcw_major = dxrcw_major;
|
||||
}
|
||||
|
||||
public List<ResumeJobDynamicField.Item> getDxrcw_type() {
|
||||
return dxrcw_type;
|
||||
}
|
||||
|
||||
public void setDxrcw_type(List<ResumeJobDynamicField.Item> dxrcw_type) {
|
||||
this.dxrcw_type = dxrcw_type;
|
||||
}
|
||||
|
||||
public List<ResumeJobDynamicField.Item> getDxrcw_yydj() {
|
||||
return dxrcw_yydj;
|
||||
}
|
||||
|
||||
public void setDxrcw_yydj(List<ResumeJobDynamicField.Item> dxrcw_yydj) {
|
||||
this.dxrcw_yydj = dxrcw_yydj;
|
||||
}
|
||||
|
||||
public List<ResumeJobDynamicField.Item> getDxrcw_zdzc() {
|
||||
dxrcw_zdzc.removeIf(item -> "不限".equals(item.getLabel()));
|
||||
return dxrcw_zdzc;
|
||||
}
|
||||
|
||||
public void setDxrcw_zdzc(List<ResumeJobDynamicField.Item> dxrcw_zdzc) {
|
||||
this.dxrcw_zdzc = dxrcw_zdzc;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
package com.engine.recruit.entity.position;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.weaver.rpa.sdk.clients.application.resume.entity.ResumeJobDynamicField;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import weaver.general.BaseBean;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 千里聆职位动态字段,转换为多选下拉框数据格式
|
||||
*
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/05/22
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class PositionSelectItem {
|
||||
private String key;
|
||||
private String showname;
|
||||
private boolean selected;
|
||||
|
||||
public static Set<PositionSelectItem> convertDynamicFieldItem(List<ResumeJobDynamicField.Item> dynamicFieldItemList) {
|
||||
Set<PositionSelectItem> list = new LinkedHashSet<>();
|
||||
if (CollectionUtils.isNotEmpty(dynamicFieldItemList)) {
|
||||
for (ResumeJobDynamicField.Item item : dynamicFieldItemList) {
|
||||
PositionSelectItem positionSelectItem = new PositionSelectItem();
|
||||
positionSelectItem.setShowname(item.getLabel());
|
||||
try {
|
||||
double parseDouble = Double.parseDouble(item.getValue());
|
||||
positionSelectItem.setKey(String.valueOf((int) parseDouble));
|
||||
} catch (Exception e) {
|
||||
positionSelectItem.setKey(item.getValue());
|
||||
}
|
||||
list.add(positionSelectItem);
|
||||
}
|
||||
} else {
|
||||
new BaseBean().writeLog("动态字段为空" + JSON.toJSONString(dynamicFieldItemList));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public static ResumeJobDynamicField.Item getItemByValue(List<ResumeJobDynamicField.Item> dynamicFieldItemList, String value) {
|
||||
return dynamicFieldItemList.stream().filter(item -> (String.valueOf((int) Double.parseDouble(item.getValue())).equals(value))).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
public static List<ResumeJobDynamicField.Item> getItemsByValues(List<ResumeJobDynamicField.Item> dynamicFieldItemList, String value) {
|
||||
String[] split = value.split(",");
|
||||
List<String> valueList = Arrays.asList(split);
|
||||
return dynamicFieldItemList.stream().filter(item -> valueList.contains(item.getLabel())).distinct().collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
package com.engine.recruit.entity.record;
|
||||
|
||||
import com.engine.recruit.conn.ApplicantCommonInfo;
|
||||
import com.engine.recruit.enums.RecordOperateEnum;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/11/02
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class ApplicantRecordPo {
|
||||
private String billId;
|
||||
private String modeId;
|
||||
private String formId;
|
||||
private String layoutId;
|
||||
private String operateTime;
|
||||
private User user;
|
||||
private String content;
|
||||
private String linkUrl;
|
||||
private Map<String, Object> otherParam;
|
||||
private String pcId;
|
||||
|
||||
private RecordOperateEnum recordOperateType;
|
||||
|
||||
public void autoCreateLink() {
|
||||
String url = "/spa/cube/index.html#/main/cube/card?billid={billId}&type=0&modeId={modeId}&formId={formId}&layoutid={layoutId}&guid=card";
|
||||
if (StringUtils.isBlank(layoutId)) {
|
||||
linkUrl = url.replace("{billId}", billId).replace("{modeId}", modeId).replace("{formId}", formId).replace("&layoutid={layoutId}", "");
|
||||
} else {
|
||||
linkUrl = url.replace("{billId}", billId).replace("{modeId}", modeId).replace("{formId}", formId).replace("{layoutId}", layoutId);
|
||||
}
|
||||
}
|
||||
|
||||
public void execute() {
|
||||
if (null == recordOperateType) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
recordOperateType.createOperateRecord(this);
|
||||
ApplicantCommonInfo.createOperateRecord(this);
|
||||
} catch (Exception e) {
|
||||
new BaseBean().writeLog("应聘过程记录数据插入失败", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package com.engine.recruit.entity.recruitflow.po;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 招聘流程按钮实体类
|
||||
*
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/09/25
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class RecruitButton {
|
||||
private String key;
|
||||
private String buttonName;
|
||||
private String tabName;
|
||||
private String tabLink;
|
||||
private String buttonKey;
|
||||
private String buttonType;
|
||||
private Integer orderNum;
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
package com.engine.recruit.entity.recruitflow.po;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/02/29
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class RecruitStepDt1 {
|
||||
private String id;
|
||||
private String mainid;
|
||||
private String czan;
|
||||
private String zdyxsmc;
|
||||
private String tzymdz;
|
||||
private String sfqy;
|
||||
private String tzymbt;
|
||||
private String zssx;
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
RecruitStepDt1 stepDt1 = (RecruitStepDt1) o;
|
||||
return czan.equals(stepDt1.czan);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(czan);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.engine.recruit.entity.recruitflow.po;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/02/29
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class RecruitStepDt2 {
|
||||
private String id;
|
||||
private String mainid;
|
||||
private String ymbt;
|
||||
private String ymdz;
|
||||
private String zssx;
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package com.engine.recruit.entity.recruitflow.po;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/12
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class RecruitStepPo {
|
||||
private int key;
|
||||
private String description;
|
||||
private String type;
|
||||
}
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
package com.engine.recruit.entity.recruitflow.po;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import com.engine.recruit.util.RecruitFlowUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/11
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class RecruitTabPo {
|
||||
private static final String SEARCH_URL = "/main/cube/search";
|
||||
private String key;
|
||||
private String title;
|
||||
private String url;
|
||||
private String viewcondition;
|
||||
|
||||
private String billId;
|
||||
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
if (StringUtils.isNotBlank(url) && url.contains(SEARCH_URL)) {
|
||||
Map<String, String> paramMap = RecruitFlowUtil.parseURL(getUrl());
|
||||
String customId = paramMap.get("customid");
|
||||
if (StringUtils.isBlank(customId)) {
|
||||
return title;
|
||||
}
|
||||
// 查询对应查询列表的表名
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select tablename from workflow_bill where id = (select formid from mode_customsearch where id = ?)", customId);
|
||||
if (rs.next()) {
|
||||
String tableName = rs.getString("tablename");
|
||||
String tabCount = "0";
|
||||
if ("uf_jcl_yppc".equalsIgnoreCase(tableName)) {
|
||||
rs.executeQuery("select xm,sjhm from uf_jcl_yppc where id = ?", Convert.toInt(billId, -1));
|
||||
if (rs.next()) {
|
||||
// 只统计展示入库的数据,即formmodeid不为null的数据
|
||||
rs.executeQuery("select count(id) as num from uf_jcl_yppc where formmodeid is not null and xm=? and sjhm =?", rs.getString("xm"), rs.getString("sjhm"));
|
||||
}
|
||||
} else {
|
||||
rs.executeQuery("select count(1) as num from " + tableName + " where ypz = ? ", Convert.toInt(billId, -1));
|
||||
}
|
||||
if (rs.next()) {
|
||||
tabCount = rs.getString("num");
|
||||
}
|
||||
title += "(" + tabCount + ")";
|
||||
}
|
||||
}
|
||||
return title;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
package com.engine.recruit.entity.resume;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.general.BaseBean;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/11/10
|
||||
* @version: 1.0
|
||||
*/
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class OcrResumePo {
|
||||
private String id;
|
||||
private String xm;
|
||||
private String xb;
|
||||
private String csrq;
|
||||
private String jg;
|
||||
private String yx;
|
||||
private String wx;
|
||||
private String qq;
|
||||
private String xjzd;
|
||||
private String ah;
|
||||
private String grys;
|
||||
private String jyjl;
|
||||
private String bysj;
|
||||
private String zgxl;
|
||||
private String zyjn;
|
||||
private String sxjl;
|
||||
private String yysp;
|
||||
private String zs;
|
||||
private String gzjl;
|
||||
private String ypzw;
|
||||
private String gzjy;
|
||||
private String xmjl;
|
||||
private String sjhm;
|
||||
private String nl;
|
||||
private String sfz;
|
||||
private String jlfj;
|
||||
|
||||
public String getXb() {
|
||||
if ("男".equals(xb)) {
|
||||
return "0";
|
||||
} else if ("女".equals(xb)) {
|
||||
return "1";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Integer getNl() {
|
||||
if (StringUtils.isNotBlank(nl)) {
|
||||
try {
|
||||
return Integer.parseInt(nl);
|
||||
} catch (Exception e) {
|
||||
new BaseBean().writeLog(e);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getYpzw() {
|
||||
String id = null;
|
||||
if (StringUtils.isNotBlank(ypzw)) {
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select id from uf_jcl_zp_zpzw where zpzwmc = ? ", ypzw);
|
||||
if (rs.next()) {
|
||||
id = rs.getString("id");
|
||||
}
|
||||
}
|
||||
return id;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,212 @@
|
|||
package com.engine.recruit.entity.resume;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.http.HttpResponse;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
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;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/11/10
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class QllResumePo {
|
||||
|
||||
private String id;
|
||||
private String xm;
|
||||
private String xb;
|
||||
private String nl;
|
||||
private String gzjy;
|
||||
private String xjzd;
|
||||
private String sjhm;
|
||||
private String yx;
|
||||
private String ypzw;
|
||||
private String grys;
|
||||
private String qzyx;
|
||||
private String gzjl;
|
||||
private String xmjl;
|
||||
private String jyjl;
|
||||
private String zgxl;
|
||||
private String zyjn;
|
||||
private String yynl;
|
||||
private String zs;
|
||||
private String jlfj;
|
||||
private String rksj;
|
||||
private String tdsj;
|
||||
private String lyqd;
|
||||
private String gjrsjh;
|
||||
|
||||
private int userId;
|
||||
|
||||
|
||||
/**
|
||||
* 解析JSON数组,下载文件并入库
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getJlfj() {
|
||||
if (StringUtils.isBlank(jlfj)) {
|
||||
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");
|
||||
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(Convert.toInt(RecruitConstant.APPLICANTS_RESUMES_CATEGORY), imageFileId, new User(userId));
|
||||
resumeId = String.valueOf(docId);
|
||||
} else {
|
||||
baseBean.writeLog("千里聆附件下载失败" + response.body());
|
||||
}
|
||||
} else {
|
||||
baseBean.writeLog("千里聆附件下载失败,URL响应失败");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
baseBean.writeLog("千里聆附件下载失败", e);
|
||||
}
|
||||
return resumeId;
|
||||
}
|
||||
|
||||
public String getLyqd() {
|
||||
return ModeBrowserCommonInfo.getResumeSource(lyqd);
|
||||
}
|
||||
|
||||
public String getXb() {
|
||||
if ("男".equals(xb)) {
|
||||
return "0";
|
||||
} else if ("女".equals(xb)) {
|
||||
return "1";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getGzjy() {
|
||||
if (StringUtils.isBlank(gzjy)) {
|
||||
return null;
|
||||
}
|
||||
int parseInt = Integer.parseInt(gzjy);
|
||||
String year = parseInt + "年";
|
||||
if (0 == parseInt) {
|
||||
year = "1年以内";
|
||||
}
|
||||
if (parseInt > 20) {
|
||||
year = "20年以上";
|
||||
}
|
||||
return ModeBrowserCommonInfo.getWorkExperience(year);
|
||||
}
|
||||
|
||||
public String getZgxl() {
|
||||
return ModeBrowserCommonInfo.getEducationLevelId(zgxl);
|
||||
}
|
||||
|
||||
|
||||
public List<RecruitDataMap<Object>> getGzjl() {
|
||||
List<RecruitDataMap<Object>> list = new ArrayList<>();
|
||||
if (StringUtils.isNotBlank(gzjl)) {
|
||||
try {
|
||||
JSONArray jsonArray = JSONArray.parseArray(gzjl);
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
||||
String gsmc = jsonObject.getString("公司名称:");
|
||||
String zwmc = jsonObject.getString("职位名称:");
|
||||
String sj = jsonObject.getString("时间:");
|
||||
String gznr = jsonObject.getString("工作内容:");
|
||||
RecruitDataMap<Object> map = CheckRepeatResume.getDateRange(sj, false);
|
||||
map.put("gsmc", gsmc);
|
||||
map.put("gw", zwmc);
|
||||
map.put("gzzz", formatStr(gznr));
|
||||
list.add(map);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
new BaseBean().writeLog("工作经历解析失败", e);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public List<RecruitDataMap<Object>> getXmjl() {
|
||||
List<RecruitDataMap<Object>> list = new ArrayList<>();
|
||||
if (StringUtils.isNotBlank(xmjl)) {
|
||||
try {
|
||||
JSONArray jsonArray = JSONArray.parseArray(xmjl);
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
||||
String xmmc = jsonObject.getString("项目名称:");
|
||||
//String rzgs = jsonObject.getString("任职公司:");
|
||||
String sj = jsonObject.getString("时间:");
|
||||
String xmnr = jsonObject.getString("项目内容:");
|
||||
RecruitDataMap<Object> map = CheckRepeatResume.getDateRange(sj, false);
|
||||
map.put("xmmc", xmmc);
|
||||
map.put("xmms", formatStr(xmnr));
|
||||
list.add(map);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
new BaseBean().writeLog("项目经历解析失败", e);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public List<RecruitDataMap<Object>> getJyjl() {
|
||||
List<RecruitDataMap<Object>> list = new ArrayList<>();
|
||||
if (StringUtils.isNotBlank(jyjl)) {
|
||||
try {
|
||||
JSONArray jsonArray = JSONArray.parseArray(jyjl);
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
||||
String byyx = jsonObject.getString("毕业院校:");
|
||||
String xl = jsonObject.getString("学历:");
|
||||
String sj = jsonObject.getString("时间:");
|
||||
String zy = jsonObject.getString("专业:");
|
||||
RecruitDataMap<Object> map = CheckRepeatResume.getDateRange(sj, true);
|
||||
map.put("xxmc", byyx);
|
||||
map.put("xl", ModeBrowserCommonInfo.getEducationLevelId(xl));
|
||||
map.put("zy", zy);
|
||||
list.add(map);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
new BaseBean().writeLog("教育经历解析失败", e);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
private String formatStr(String str) {
|
||||
if (StringUtils.isBlank(str)) {
|
||||
return "";
|
||||
}
|
||||
return str.replaceAll("[\\pC]", "").replace("\\n", "\n").replace("\\r", "").replace("</br>","\n");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.engine.recruit.entity.workbench;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2023/10/19 3:03 PM
|
||||
* @Version 1.0
|
||||
*/
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class OptionVO {
|
||||
|
||||
private String text;
|
||||
|
||||
private List<String> xData;
|
||||
|
||||
private List<Integer> barSeriesData;
|
||||
|
||||
private LinkedList<SeriesParam> seriesData;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.engine.recruit.entity.workbench;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2023/10/19 11:39 AM
|
||||
* @Version 1.0
|
||||
*/
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class RecruitInterviewPO {
|
||||
|
||||
private String ids;
|
||||
|
||||
private String interviewDate;
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
package com.engine.recruit.entity.workbench;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2023/10/19 10:31 AM
|
||||
* @Version 1.0
|
||||
*/
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class RecruitPortalCommonVO {
|
||||
|
||||
private Integer id;
|
||||
|
||||
private String title;
|
||||
|
||||
private Integer count;
|
||||
|
||||
private String icon;
|
||||
|
||||
private String color;
|
||||
|
||||
private Double scale;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package com.engine.recruit.entity.workbench;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2023/9/28 2:02 PM
|
||||
* @Version 1.0
|
||||
*/
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class SeriesParam {
|
||||
|
||||
private Double value;
|
||||
|
||||
private String name;
|
||||
|
||||
private String color;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
package com.engine.recruit.entity.workplan;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2023/10/17 3:01 PM
|
||||
* @Description:
|
||||
* @Version 1.0
|
||||
*/
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class WorkPlanCreateParams {
|
||||
|
||||
private String operateType;
|
||||
|
||||
private String billId;
|
||||
|
||||
private String workPlanType;
|
||||
|
||||
private String planName;
|
||||
|
||||
private String memberIds;
|
||||
|
||||
private String urgentLevel;
|
||||
|
||||
private String beginDateTime;
|
||||
|
||||
private String endDateTime;
|
||||
|
||||
private String workId;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
package com.engine.recruit.enums;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/09/27
|
||||
* @version: 1.0
|
||||
*/
|
||||
public enum ApplicantOperateEnum {
|
||||
|
||||
/**
|
||||
* 应聘者相关操作类型
|
||||
*/
|
||||
ELIMINATE("eliminate", "淘汰"),
|
||||
REFERRAL("referral", "转推其他职位"),
|
||||
TRANSFER("transfer", "转移阶段"),
|
||||
ASSIGN("assign", "分配职位"),
|
||||
ARCHIVE("archive", "归档人才库"),
|
||||
;
|
||||
|
||||
ApplicantOperateEnum(String operateType, String operateDesc) {
|
||||
this.operateType = operateType;
|
||||
this.operateDesc = operateDesc;
|
||||
}
|
||||
|
||||
private String operateType;
|
||||
private String operateDesc;
|
||||
|
||||
public String getOperateType() {
|
||||
return operateType;
|
||||
}
|
||||
|
||||
public void setOperateType(String operateType) {
|
||||
this.operateType = operateType;
|
||||
}
|
||||
|
||||
public String getOperateDesc() {
|
||||
return operateDesc;
|
||||
}
|
||||
|
||||
public void setOperateDesc(String operateDesc) {
|
||||
this.operateDesc = operateDesc;
|
||||
}
|
||||
|
||||
public static ApplicantOperateEnum getOperateType(String operateType) {
|
||||
for (ApplicantOperateEnum item : ApplicantOperateEnum.values()) {
|
||||
if (item.operateType.equalsIgnoreCase(operateType)) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
throw new RuntimeException("不支持的操作类型");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
package com.engine.recruit.enums;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/09/27
|
||||
* @version: 1.0
|
||||
*/
|
||||
public enum ApplicationStatusEnum {
|
||||
/**
|
||||
* 应聘状态
|
||||
*/
|
||||
DISTRIBUTION("待分配", "0"),
|
||||
CANDIDATE("候选中", "1"),
|
||||
ARCHIVED("已归档", "2"),
|
||||
OBSOLETE("已淘汰", "3");
|
||||
|
||||
ApplicationStatusEnum(String name, String value) {
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public static ApplicationStatusEnum getStatus(String value) {
|
||||
for (ApplicationStatusEnum item : ApplicationStatusEnum.values()) {
|
||||
if (item.value.equalsIgnoreCase(value)) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
throw new RuntimeException("不支持的应聘状态");
|
||||
}
|
||||
|
||||
private String name;
|
||||
private String value;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
package com.engine.recruit.enums;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/16
|
||||
* @version: 1.0
|
||||
*/
|
||||
public enum CommonBrowserTypeEnum {
|
||||
/**
|
||||
* 聚才林招聘常用浏览按钮类型
|
||||
*/
|
||||
GENDER("性别"),
|
||||
RESUME_SOURCE("简历来源"),
|
||||
RECRUITMENT_CHANNELS("招聘渠道"),
|
||||
JOB_NATURE("职位性质"),
|
||||
JOB_EDUCATION_REQUIREMENTS("职位学历要求"),
|
||||
MARITAL_STATUS("婚姻状况"),
|
||||
ON_JOB_STATUS("在职状态"),
|
||||
RECRUITMENT_REASONS("招聘原因"),
|
||||
YEARS_OF_WORK("工作年限"),
|
||||
WORK_EXPERIENCE("工作经验"),
|
||||
POLITICAL_LANDSCAPE("政治面貌"),
|
||||
DEGREE("学位");
|
||||
|
||||
CommonBrowserTypeEnum(String desc) {
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
private String desc;
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public void setDesc(String desc) {
|
||||
this.desc = desc;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
package com.engine.recruit.enums;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/09/28
|
||||
* @version: 1.0
|
||||
*/
|
||||
public enum CurrentApplicationStageEnum {
|
||||
|
||||
/**
|
||||
* 当前操作阶段
|
||||
*/
|
||||
SCREENING("初筛", "0"),
|
||||
WRITTEN("笔试", "1"),
|
||||
INTERVIEW("面试", "2"),
|
||||
EVALUATION("测评", "3"),
|
||||
SALARY("薪酬谈判", "4"),
|
||||
BACK("背调", "5"),
|
||||
offer("offer", "6"),
|
||||
EMPLOYMENT("待入职", "8"),
|
||||
ENTRY("入职", "9 ");
|
||||
|
||||
CurrentApplicationStageEnum(String stageName, String stageValue) {
|
||||
this.stageName = stageName;
|
||||
this.stageValue = stageValue;
|
||||
}
|
||||
|
||||
private String stageName;
|
||||
private String stageValue;
|
||||
|
||||
public String getStageName() {
|
||||
return stageName;
|
||||
}
|
||||
|
||||
public void setStageName(String stageName) {
|
||||
this.stageName = stageName;
|
||||
}
|
||||
|
||||
public String getStageValue() {
|
||||
return stageValue;
|
||||
}
|
||||
|
||||
public void setStageValue(String stageValue) {
|
||||
this.stageValue = stageValue;
|
||||
}
|
||||
|
||||
public static CurrentApplicationStageEnum getOperateType(String operateType) {
|
||||
for (CurrentApplicationStageEnum item : CurrentApplicationStageEnum.values()) {
|
||||
if (item.stageValue.equalsIgnoreCase(operateType)) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
throw new RuntimeException("不支持的操作类型");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
package com.engine.recruit.enums;
|
||||
|
||||
/**
|
||||
* 入职状态枚举类
|
||||
*
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/10
|
||||
* @version: 1.0
|
||||
*/
|
||||
public enum EntryStatusEnum {
|
||||
/**
|
||||
* 入职状态
|
||||
*/
|
||||
PENDING("0", "待入职"),
|
||||
EMPLOYED("0", "已入职"),
|
||||
CANCEL("0", "取消入职");
|
||||
|
||||
EntryStatusEnum(String value, String desc) {
|
||||
this.value = value;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
private String value;
|
||||
private String desc;
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public void setDesc(String desc) {
|
||||
this.desc = desc;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
package com.engine.recruit.enums;
|
||||
|
||||
/**
|
||||
* 学历浏览按钮枚举类
|
||||
*
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/17
|
||||
* @version: 1.0
|
||||
*/
|
||||
public enum HighestDegreeEnum {
|
||||
/**
|
||||
* 学历浏览按钮枚举类
|
||||
*/
|
||||
OTHER(1, "其他"),
|
||||
JUNIOR_MIDDLE_SCHOOL(2, "初中"),
|
||||
HIGH_SCHOOL(3, "高中"),
|
||||
SECONDARY_TECHNOLOGY(4, "中技"),
|
||||
SECONDARY_SPECIALIZED_SCHOOL(5, "中专"),
|
||||
JUNIOR_COLLEGE(6, "大专"),
|
||||
UNDERGRADUATE(7, "本科"),
|
||||
MASTER_DEGREE(8, "硕士研究生"),
|
||||
DOCTORAL_STUDENTS(9, "博士研究生"),
|
||||
MBA(10, "MBA"),
|
||||
EMBA(11, "EMBA"),
|
||||
POST_DOCTORAL(12, "博士后");
|
||||
|
||||
HighestDegreeEnum(Integer id, String name) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public static HighestDegreeEnum getDegreeId(String name) {
|
||||
for (HighestDegreeEnum item : HighestDegreeEnum.values()) {
|
||||
if (item.name.equalsIgnoreCase(name)) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
return HighestDegreeEnum.OTHER;
|
||||
}
|
||||
|
||||
private Integer id;
|
||||
private String name;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
package com.engine.recruit.enums;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/24
|
||||
* @version: 1.0
|
||||
*/
|
||||
public enum InfoCollectEnum {
|
||||
/**
|
||||
* 信息采集状态
|
||||
*/
|
||||
NOT_SENT(0, "未发送"),
|
||||
HAS_SENT(1, "已发送"),
|
||||
NOT_SUBMITTED(2, "未提交"),
|
||||
SUBMITTED(3, "已提交");
|
||||
|
||||
InfoCollectEnum(Integer id, String name) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
private Integer id;
|
||||
private String name;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
package com.engine.recruit.enums;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/09/27
|
||||
* @version: 1.0
|
||||
*/
|
||||
public enum InterviewOperateTypeEnum {
|
||||
/**
|
||||
* 面试操作类型
|
||||
*/
|
||||
EVALUATE("evaluate", "面试评价"),
|
||||
CANCEL("cancel", "取消面试"),
|
||||
ARRANGE("arrange", "安排面试"),
|
||||
ADJUSTMENT("adjustment", "调整面试");
|
||||
|
||||
InterviewOperateTypeEnum(String operateType, String operateDesc) {
|
||||
this.operateType = operateType;
|
||||
this.operateDesc = operateDesc;
|
||||
}
|
||||
|
||||
private String operateType;
|
||||
private String operateDesc;
|
||||
|
||||
public String getOperateType() {
|
||||
return operateType;
|
||||
}
|
||||
|
||||
public void setOperateType(String operateType) {
|
||||
this.operateType = operateType;
|
||||
}
|
||||
|
||||
public String getOperateDesc() {
|
||||
return operateDesc;
|
||||
}
|
||||
|
||||
public void setOperateDesc(String operateDesc) {
|
||||
this.operateDesc = operateDesc;
|
||||
}
|
||||
|
||||
public static InterviewOperateTypeEnum getOperateType(String operateType) {
|
||||
for (InterviewOperateTypeEnum item : InterviewOperateTypeEnum.values()) {
|
||||
if (item.operateType.equalsIgnoreCase(operateType)) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
throw new RuntimeException("不支持的操作类型");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
package com.engine.recruit.enums;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/23
|
||||
* @version: 1.0
|
||||
*/
|
||||
public enum PositionOperateEnum {
|
||||
/**
|
||||
* 入职管理相关操作
|
||||
*/
|
||||
PREPARE("prepare", "入职准备"),
|
||||
HANDLE("prepare", "办理入职"),
|
||||
;
|
||||
|
||||
PositionOperateEnum(String operateType, String operateDesc) {
|
||||
this.operateType = operateType;
|
||||
this.operateDesc = operateDesc;
|
||||
}
|
||||
|
||||
private String operateType;
|
||||
private String operateDesc;
|
||||
|
||||
public String getOperateType() {
|
||||
return operateType;
|
||||
}
|
||||
|
||||
public void setOperateType(String operateType) {
|
||||
this.operateType = operateType;
|
||||
}
|
||||
|
||||
public String getOperateDesc() {
|
||||
return operateDesc;
|
||||
}
|
||||
|
||||
public void setOperateDesc(String operateDesc) {
|
||||
this.operateDesc = operateDesc;
|
||||
}
|
||||
|
||||
public static PositionOperateEnum getOperateType(String operateType) {
|
||||
for (PositionOperateEnum item : PositionOperateEnum.values()) {
|
||||
if (item.operateType.equalsIgnoreCase(operateType)) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
throw new RuntimeException("不支持的操作类型");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
package com.engine.recruit.enums;
|
||||
|
||||
import com.engine.recruit.exception.CustomizeRunTimeException;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/06/13
|
||||
* @version: 1.0
|
||||
*/
|
||||
public enum PositionReleaseStatusEnum {
|
||||
/**
|
||||
* 未发布
|
||||
*/
|
||||
UNPUBLISHED(0, "未发布"),
|
||||
/**
|
||||
* 已发布
|
||||
*/
|
||||
PUBLISHED(2, "已发布"),
|
||||
/**
|
||||
* 发布失败
|
||||
*/
|
||||
PUBLISHING_FAILED(3, "发布失败"),
|
||||
/**
|
||||
* 已下架
|
||||
*/
|
||||
CLOSED(5, "已下架"),
|
||||
;
|
||||
|
||||
PositionReleaseStatusEnum(Integer value, String label) {
|
||||
this.value = value;
|
||||
this.label = label;
|
||||
}
|
||||
|
||||
public static PositionReleaseStatusEnum getEnumByValue(Integer value) {
|
||||
for (PositionReleaseStatusEnum item : PositionReleaseStatusEnum.values()) {
|
||||
if (item.value.equals(value)) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
throw new CustomizeRunTimeException("不支持的发布状态");
|
||||
}
|
||||
|
||||
private Integer value;
|
||||
private String label;
|
||||
|
||||
public Integer getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(Integer value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getLabel() {
|
||||
return label;
|
||||
}
|
||||
|
||||
public void setLabel(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
package com.engine.recruit.enums;
|
||||
|
||||
import com.engine.recruit.exception.CustomizeRunTimeException;
|
||||
import com.weaver.rpa.sdk.clients.application.resume.common.ResumePlatform;
|
||||
|
||||
/**
|
||||
* 发布渠道枚举类
|
||||
*
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/10/08
|
||||
* @version: 1.0
|
||||
*/
|
||||
public enum PositionThirdChannelEnum {
|
||||
/**
|
||||
* 发布渠道
|
||||
*/
|
||||
BOSSZHIPIN("0", "BOSS直聘", ResumePlatform.BOSSZHIPIN),
|
||||
ZHILIANZHAOPIN("1", "智联招聘", ResumePlatform.ZHILIANZHAOPIN),
|
||||
QIANCHENGWUYOU("2", "前程无忧", ResumePlatform.QIANCHENGWUYOU),
|
||||
LAGO("3", "拉勾", ResumePlatform.LAGO),
|
||||
LIEPIN("4", "猎聘", ResumePlatform.LIEPIN),
|
||||
DXY("5", "丁香人才网", ResumePlatform.DXY);
|
||||
|
||||
PositionThirdChannelEnum(String value, String desc, int resumePlatformId) {
|
||||
this.value = value;
|
||||
this.desc = desc;
|
||||
this.resumePlatformId = resumePlatformId;
|
||||
}
|
||||
|
||||
private String value;
|
||||
private String desc;
|
||||
private int resumePlatformId;
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public void setDesc(String desc) {
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public int getResumePlatformId() {
|
||||
return resumePlatformId;
|
||||
}
|
||||
|
||||
public void setResumePlatformId(int resumePlatformId) {
|
||||
resumePlatformId = resumePlatformId;
|
||||
}
|
||||
|
||||
public static PositionThirdChannelEnum getEnumByValue(String value) {
|
||||
for (PositionThirdChannelEnum item : PositionThirdChannelEnum.values()) {
|
||||
if (item.value.equalsIgnoreCase(value)) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
throw new CustomizeRunTimeException("不支持的发布渠道");
|
||||
}
|
||||
|
||||
public static PositionThirdChannelEnum getEnumByPlatformId(int resumePlatformId) {
|
||||
for (PositionThirdChannelEnum item : PositionThirdChannelEnum.values()) {
|
||||
if (item.resumePlatformId == resumePlatformId) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
throw new CustomizeRunTimeException("不支持的发布渠道");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
package com.engine.recruit.enums;
|
||||
|
||||
import com.engine.recruit.entity.record.ApplicantRecordPo;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/11/02
|
||||
* @version: 1.0
|
||||
*/
|
||||
public interface RecordOperateAdapter {
|
||||
/**
|
||||
* 创建操作记录
|
||||
*
|
||||
* @param recordPo
|
||||
*/
|
||||
void createOperateRecord(ApplicantRecordPo recordPo);
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,489 @@
|
|||
package com.engine.recruit.enums;
|
||||
|
||||
import com.engine.recruit.conn.ApplicantCommonInfo;
|
||||
import com.engine.recruit.entity.record.ApplicantRecordPo;
|
||||
import com.engine.recruit.entity.recruitflow.po.RecruitStepPo;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/11/02
|
||||
* @version: 1.0
|
||||
*/
|
||||
public enum RecordOperateEnum implements RecordOperateAdapter {
|
||||
/**
|
||||
* 应聘过程操作类型
|
||||
*/
|
||||
RESUME_SUBMISSION("resumeSubmission", "简历投递", "简历投递", recordPo -> {
|
||||
recordPo.setPcId(recordPo.getBillId());
|
||||
recordPo.setContent("");
|
||||
}),
|
||||
|
||||
ELIMINATE("eliminate", "淘汰", "淘汰", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
RecruitStepPo currentStep = ApplicantCommonInfo.getCurrentStep(recordPo.getBillId());
|
||||
String content = user.getLastname() + "淘汰,操作阶段:" + currentStep.getDescription();
|
||||
recordPo.setPcId(recordPo.getBillId());
|
||||
recordPo.setContent(content);
|
||||
}),
|
||||
|
||||
TRANSFER_STAGE("transferStage", "转移阶段", "转移阶段", recordPo -> {
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
String sourceStep = Util.null2String(otherParam.get("sourceStep"));
|
||||
String targetStep = Util.null2String(otherParam.get("targetStep"));
|
||||
User user = recordPo.getUser();
|
||||
String content = user.getLastname() + "转移阶段,应聘阶段:“" + sourceStep + "”变更为“" + targetStep + "”";
|
||||
recordPo.setPcId(recordPo.getBillId());
|
||||
recordPo.setContent(content);
|
||||
}),
|
||||
|
||||
ARCHIVE_TALENT_POOL("archiveTalentPool", "归档人才库", "归档人才库", recordPo -> {
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
String gdyy = Util.null2String(otherParam.get("gdyy"));
|
||||
String gdxxyy = Util.null2String(otherParam.get("gdxxyy"));
|
||||
int formId = ApplicantCommonInfo.getFormIdByTableName("uf_jcl_yppc");
|
||||
String selectName = ApplicantCommonInfo.getSelectName(String.valueOf(formId), "gdyy", gdyy);
|
||||
User user = recordPo.getUser();
|
||||
RecruitStepPo currentStep = ApplicantCommonInfo.getCurrentStep(recordPo.getBillId());
|
||||
String content = user.getLastname() + "归档人才库,操作阶段:" + currentStep.getDescription() + ",归档原因:" + selectName + ",归档详细原因:" + gdxxyy;
|
||||
recordPo.setPcId(recordPo.getBillId());
|
||||
recordPo.setContent(content);
|
||||
}),
|
||||
|
||||
JOIN_BLACKLIST("joinBlacklist", "加入黑名单", "加入黑名单", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
RecruitStepPo currentStep = ApplicantCommonInfo.getCurrentStep(recordPo.getBillId());
|
||||
String content = user.getLastname() + "加入黑名单,操作阶段:" + currentStep.getDescription();
|
||||
recordPo.setPcId(recordPo.getBillId());
|
||||
recordPo.setContent(content);
|
||||
}),
|
||||
|
||||
ADD_SCREEN("addScreen", "部门筛选反馈", "部门筛选反馈", recordPo -> {
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
|
||||
String jg = Util.null2String(otherParam.get("jg"));
|
||||
String pj = Util.null2String(otherParam.get("pj"));
|
||||
String ypz = Util.null2String(otherParam.get("ypz"));
|
||||
String fkr = Util.null2String(otherParam.get("fkr"));
|
||||
String createName = Util.null2String(otherParam.get("createName"));
|
||||
String resourceNames = RecruitModeUtil.getResourceNames(fkr);
|
||||
String selectName = ApplicantCommonInfo.getSelectName(recordPo.getFormId(), "jg", jg);
|
||||
|
||||
String content = "创建人:" + createName + ",反馈人:" + resourceNames + ",结果:" + selectName + ",评价:" + pj;
|
||||
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(ypz);
|
||||
recordPo.autoCreateLink();
|
||||
}),
|
||||
|
||||
UPDATE_SCREEN("updateScreen", "修改筛选反馈", "部门筛选反馈", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
|
||||
String jg = Util.null2String(otherParam.get("jg"));
|
||||
String pj = Util.null2String(otherParam.get("pj"));
|
||||
String ypz = Util.null2String(otherParam.get("ypz"));
|
||||
String fkr = Util.null2String(otherParam.get("fkr"));
|
||||
String resourceNames = RecruitModeUtil.getResourceNames(fkr);
|
||||
String selectName = ApplicantCommonInfo.getSelectName(recordPo.getFormId(), "jg", jg);
|
||||
|
||||
String content = "更新关联数据,最近修改人:" + user.getLastname() + ",反馈人:" + resourceNames + ",结果:" + selectName + ",评价:" + pj;
|
||||
recordPo.setContent(content);
|
||||
|
||||
recordPo.autoCreateLink();
|
||||
recordPo.setPcId(ypz);
|
||||
}),
|
||||
|
||||
DELETE_SCREEN("deleteScreen", "删除筛选反馈", "部门筛选反馈", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
String ypz = Util.null2String(otherParam.get("ypz"));
|
||||
String content = user.getLastname() + "删除/隐藏关联记录数据";
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(ypz);
|
||||
}),
|
||||
|
||||
ADD_INTERVIEW_RESULT("addInterviewResult", "面试评价反馈", "面试评价反馈", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
|
||||
String msrq = Util.null2String(otherParam.get("msrq"));
|
||||
String jg = Util.null2String(otherParam.get("jg"));
|
||||
String pj = Util.null2String(otherParam.get("pj"));
|
||||
String ypz = Util.null2String(otherParam.get("ypz"));
|
||||
|
||||
String msg = Util.null2String(otherParam.get("msg"));
|
||||
String createName = Util.null2String(otherParam.get("createName"));
|
||||
String msgNames = RecruitModeUtil.getResourceNames(msg);
|
||||
String selectName = ApplicantCommonInfo.getSelectName(recordPo.getFormId(), "jg", jg);
|
||||
|
||||
String content = "创建人:" + createName + ",面试官:" + msgNames + " ,面试时间:" + msrq + ",反馈人:" + user.getLastname() + " , 结果:" + selectName + " ,评价:" + pj;
|
||||
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(ypz);
|
||||
recordPo.autoCreateLink();
|
||||
}),
|
||||
|
||||
UPDATE_INTERVIEW_RESULT("updateInterviewResult", "修改面试评价反馈", "面试评价反馈", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
|
||||
String msrq = Util.null2String(otherParam.get("msrq"));
|
||||
String jg = Util.null2String(otherParam.get("jg"));
|
||||
String pj = Util.null2String(otherParam.get("pj"));
|
||||
String ypz = Util.null2String(otherParam.get("ypz"));
|
||||
|
||||
String msg = Util.null2String(otherParam.get("msg"));
|
||||
String fkr = Util.null2String(otherParam.get("fkr"));
|
||||
String fkrNames = RecruitModeUtil.getResourceNames(fkr);
|
||||
String msgNames = RecruitModeUtil.getResourceNames(msg);
|
||||
String selectName = ApplicantCommonInfo.getSelectName(recordPo.getFormId(), "jg", jg);
|
||||
|
||||
String content = "更新关联数据,最近修改人:" + user.getLastname() + "面试官:" + msgNames + ",面试时间:" + msrq + ",反馈人:" + fkrNames + ", 结果:" + selectName + ",评价:" + pj;
|
||||
recordPo.setContent(content);
|
||||
|
||||
recordPo.autoCreateLink();
|
||||
recordPo.setPcId(ypz);
|
||||
}),
|
||||
|
||||
DELETE_INTERVIEW("deleteInterview", "删除面试", "面试评价反馈", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
String ypz = Util.null2String(otherParam.get("ypz"));
|
||||
String content = user.getLastname() + "删除/隐藏关联记录数据";
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(ypz);
|
||||
}),
|
||||
|
||||
ADD_WRITTEN_RESULT("addWrittenResult", "笔试结果录入", "笔试", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
|
||||
String bsmc = Util.null2String(otherParam.get("bsmc"));
|
||||
String bsjg = Util.null2String(otherParam.get("bsjg"));
|
||||
String bscj = Util.null2String(otherParam.get("bscj"));
|
||||
String ypz = Util.null2String(otherParam.get("ypz"));
|
||||
|
||||
String createName = Util.null2String(otherParam.get("createName"));
|
||||
String selectName = ApplicantCommonInfo.getSelectName(recordPo.getFormId(), "bsjg", bsjg);
|
||||
|
||||
String content = "创建人:" + createName + ",笔试名称:" + bsmc + " ,笔试结果:" + selectName + " ,笔试成绩:" + bscj;
|
||||
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(ypz);
|
||||
recordPo.autoCreateLink();
|
||||
|
||||
}),
|
||||
|
||||
UPDATE_WRITTEN_RESULT("updateWrittenResult", "编辑笔试结果", "笔试", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
|
||||
String bsmc = Util.null2String(otherParam.get("bsmc"));
|
||||
String bsjg = Util.null2String(otherParam.get("bsjg"));
|
||||
String bscj = Util.null2String(otherParam.get("bscj"));
|
||||
String ypz = Util.null2String(otherParam.get("ypz"));
|
||||
|
||||
String selectName = ApplicantCommonInfo.getSelectName(recordPo.getFormId(), "bsjg", bsjg);
|
||||
|
||||
String content = "更新关联数据:最近修改人:" + user.getLastname() + ",笔试名称:" + bsmc + ",笔试结果:" + selectName + " ,笔试成绩" + bscj;
|
||||
recordPo.setContent(content);
|
||||
|
||||
recordPo.autoCreateLink();
|
||||
recordPo.setPcId(ypz);
|
||||
}),
|
||||
|
||||
DELETE_WRITTEN_RESULT("deleteWrittenResult", "删除笔试结果", "笔试", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
String ypz = Util.null2String(otherParam.get("ypz"));
|
||||
String content = user.getLastname() + "删除/隐藏关联记录数据";
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(ypz);
|
||||
}),
|
||||
|
||||
ADD_SALARY_NEGOTIATION("addSalaryNegotiation", "薪酬谈判录入", "薪酬谈判", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
|
||||
String tpjg = Util.null2String(otherParam.get("tpjg"));
|
||||
String ypz = Util.null2String(otherParam.get("ypz"));
|
||||
|
||||
String createName = Util.null2String(otherParam.get("createName"));
|
||||
String selectName = ApplicantCommonInfo.getSelectName(recordPo.getFormId(), "tpjg", tpjg);
|
||||
|
||||
String content = "创建人:" + createName + ",谈判结果:" + selectName;
|
||||
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(ypz);
|
||||
recordPo.autoCreateLink();
|
||||
}),
|
||||
|
||||
UPDATE_SALARY_NEGOTIATION("updateSalaryNegotiation", "修改薪酬谈判记录", "薪酬谈判", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
|
||||
String tpjg = Util.null2String(otherParam.get("tpjg"));
|
||||
String ypz = Util.null2String(otherParam.get("ypz"));
|
||||
|
||||
String selectName = ApplicantCommonInfo.getSelectName(recordPo.getFormId(), "tpjg", tpjg);
|
||||
|
||||
String content = "更新关联数据:最近修改人:" + user.getLastname() + ",谈判结果:" + selectName;
|
||||
recordPo.setContent(content);
|
||||
|
||||
recordPo.autoCreateLink();
|
||||
recordPo.setPcId(ypz);
|
||||
}),
|
||||
|
||||
DELETE_SALARY_NEGOTIATION("deleteSalaryNegotiation", "删除薪酬谈判记录", "薪酬谈判", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
String ypz = Util.null2String(otherParam.get("ypz"));
|
||||
String content = user.getLastname() + "删除/隐藏关联记录数据";
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(ypz);
|
||||
}),
|
||||
|
||||
ADD_BACK_TONE("addBackTone", "背调录入", "背调", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
|
||||
String dcjg = Util.null2String(otherParam.get("dcjg"));
|
||||
String ypz = Util.null2String(otherParam.get("ypz"));
|
||||
String dcdw = Util.null2String(otherParam.get("dcdw"));
|
||||
|
||||
String createName = Util.null2String(otherParam.get("createName"));
|
||||
String selectName = ApplicantCommonInfo.getSelectName(recordPo.getFormId(), "dcjg", dcjg);
|
||||
|
||||
String content = "创建人:" + createName + ",调查结果:" + selectName + " ,调查单位:" + dcdw;
|
||||
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(ypz);
|
||||
recordPo.autoCreateLink();
|
||||
}),
|
||||
|
||||
UPDATE_BACK_TONE("updateBackTone", "修改背调记录", "背调", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
|
||||
String dcjg = Util.null2String(otherParam.get("dcjg"));
|
||||
String ypz = Util.null2String(otherParam.get("ypz"));
|
||||
String dcdw = Util.null2String(otherParam.get("dcdw"));
|
||||
|
||||
String selectName = ApplicantCommonInfo.getSelectName(recordPo.getFormId(), "dcjg", dcjg);
|
||||
|
||||
String content = "更新关联数据:最近修改人:" + user.getLastname() + ",调查结果:" + selectName + " ,调查单位" + dcdw;
|
||||
recordPo.setContent(content);
|
||||
|
||||
recordPo.autoCreateLink();
|
||||
recordPo.setPcId(ypz);
|
||||
}),
|
||||
|
||||
DELETE_BACK_TONE("deleteBackTone", "删除背调记录", "背调", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
String ypz = Util.null2String(otherParam.get("ypz"));
|
||||
String content = user.getLastname() + "删除/隐藏关联记录数据";
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(ypz);
|
||||
}),
|
||||
|
||||
CREATE_OFFER("createOffer", "创建offer", "创建offer", recordPo -> {
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
|
||||
|
||||
String createName = Util.null2String(otherParam.get("createName"));
|
||||
String requestName = Util.null2String(otherParam.get("requestName"));
|
||||
String xm = Util.null2String(otherParam.get("xm"));
|
||||
String content = "创建人:" + createName + ",offer流程:" + requestName;
|
||||
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(xm);
|
||||
}),
|
||||
|
||||
SEND_OFFER("sendOffer", "发送offer", "发送offer", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
String xm = Util.null2String(otherParam.get("xm"));
|
||||
String content = user.getLastname() + "发送offer";
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(xm);
|
||||
}),
|
||||
|
||||
OFFER_FEEDBACK("offerFeedback", "offer反馈", "offer反馈", recordPo -> {
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select xm,zt from uf_jcl_offer where id = ?", recordPo.getBillId());
|
||||
String xm = "";
|
||||
String zt = "";
|
||||
if (rs.next()) {
|
||||
xm = rs.getString("xm");
|
||||
zt = rs.getString("zt");
|
||||
}
|
||||
int formId = ApplicantCommonInfo.getFormIdByTableName("uf_jcl_offer");
|
||||
String selectName = ApplicantCommonInfo.getSelectName(String.valueOf(formId), "zt", zt);
|
||||
|
||||
String content = "offer反馈:" + selectName;
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(xm);
|
||||
}),
|
||||
|
||||
PENDING_EMPLOYMENT("pendingEmployment", "进入待入职", "进入待入职", recordPo -> {
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
|
||||
|
||||
String createName = Util.null2String(otherParam.get("createName"));
|
||||
String pcid = Util.null2String(otherParam.get("pcid"));
|
||||
String content = createName + "操作进入待入职";
|
||||
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(pcid);
|
||||
}),
|
||||
|
||||
ENTRY_PROCESS("entryProcess", "入职流程", "入职流程", recordPo -> {
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
|
||||
|
||||
String createName = Util.null2String(otherParam.get("createName"));
|
||||
String requestName = Util.null2String(otherParam.get("requestName"));
|
||||
String content = "创建人:" + createName + ",offer流程:" + requestName;
|
||||
|
||||
recordPo.setContent(content);
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select pcid from uf_jcl_rzgl where rzlc = ?", recordPo.getBillId());
|
||||
if (rs.next()) {
|
||||
String pcid = rs.getString("pcid");
|
||||
recordPo.setPcId(pcid);
|
||||
}
|
||||
}),
|
||||
|
||||
INFO_COLLECT("infoCollect", "信息采集", "信息采集", recordPo -> {
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
|
||||
String createName = Util.null2String(otherParam.get("createName"));
|
||||
String pcid = Util.null2String(otherParam.get("pcid"));
|
||||
String content = createName + "发送信息采集";
|
||||
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(pcid);
|
||||
|
||||
recordPo.autoCreateLink();
|
||||
}),
|
||||
|
||||
CANCEL_ENTRY("cancelEntry", "取消入职", "取消入职", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
|
||||
String qxyy = Util.null2String(otherParam.get("qxyy"));
|
||||
String pcid = Util.null2String(otherParam.get("pcid"));
|
||||
String content = user.getLastname() + "操作取消入职,取消原因:" + qxyy;
|
||||
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(pcid);
|
||||
}),
|
||||
|
||||
HANDLE_ENTRY("handleEntry", "办理入职", "办理入职", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
|
||||
String rzrq = Util.null2String(otherParam.get("rzrq"));
|
||||
String pcid = Util.null2String(otherParam.get("pcid"));
|
||||
String content = user.getLastname() + "操作办理入职,入职日期:" + rzrq;
|
||||
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(pcid);
|
||||
}),
|
||||
|
||||
ADD_REMARK("addRemark", "新建备注", "备注", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
|
||||
String bznr = Util.null2String(otherParam.get("bznr"));
|
||||
String pcid = Util.null2String(otherParam.get("pcid"));
|
||||
String createName = Util.null2String(otherParam.get("createName"));
|
||||
|
||||
String content = createName + "添加备注,备注内容:" + bznr;
|
||||
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(pcid);
|
||||
}),
|
||||
|
||||
UPDATE_REMARK("updateRemark", "编辑备注", "备注", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
|
||||
String bznr = Util.null2String(otherParam.get("bznr"));
|
||||
String pcid = Util.null2String(otherParam.get("pcid"));
|
||||
|
||||
String content = "更新关联数据:最近修改人:" + user.getLastname() + ",备注内容:" + bznr;
|
||||
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(pcid);
|
||||
}),
|
||||
|
||||
DELETE_REMARK("deleteRemark", "删除备注", "备注", recordPo -> {
|
||||
User user = recordPo.getUser();
|
||||
Map<String, Object> otherParam = recordPo.getOtherParam();
|
||||
String pcid = Util.null2String(otherParam.get("pcid"));
|
||||
String content = user.getLastname() + "删除/隐藏关联记录数据";
|
||||
recordPo.setContent(content);
|
||||
recordPo.setPcId(pcid);
|
||||
});
|
||||
|
||||
RecordOperateEnum(String operateType, String operateName, String showName, RecordOperateAdapter adapter) {
|
||||
this.operateName = operateName;
|
||||
this.operateType = operateType;
|
||||
this.showName = showName;
|
||||
this.adapter = adapter;
|
||||
}
|
||||
|
||||
public static RecordOperateEnum getOperateEnum(String operateType) {
|
||||
for (RecordOperateEnum item : RecordOperateEnum.values()) {
|
||||
if (item.operateType.equalsIgnoreCase(operateType)) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
private String operateName;
|
||||
private String operateType;
|
||||
private String showName;
|
||||
private RecordOperateAdapter adapter;
|
||||
|
||||
|
||||
public String getOperateName() {
|
||||
return operateName;
|
||||
}
|
||||
|
||||
public String getOperateType() {
|
||||
return operateType;
|
||||
}
|
||||
|
||||
public String getShowName() {
|
||||
return showName;
|
||||
}
|
||||
|
||||
public void setOperateName(String operateName) {
|
||||
this.operateName = operateName;
|
||||
}
|
||||
|
||||
public void setOperateType(String operateType) {
|
||||
this.operateType = operateType;
|
||||
}
|
||||
|
||||
public void setShowName(String showName) {
|
||||
this.showName = showName;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void createOperateRecord(ApplicantRecordPo recordPo) {
|
||||
adapter.createOperateRecord(recordPo);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
package com.engine.recruit.enums;
|
||||
|
||||
/**
|
||||
* <p>聚才林招聘</p>
|
||||
* 需求状态枚举类
|
||||
*
|
||||
* @author:dxfeng
|
||||
* @createTime: 2023/09/13
|
||||
* @version: 1.0
|
||||
*/
|
||||
public enum RecruitStatusEnum {
|
||||
/**
|
||||
* 进行中(0)
|
||||
*/
|
||||
RECRUITMENT_PROGRESS(0, "进行中"),
|
||||
/**
|
||||
* 招聘完成(1)
|
||||
*/
|
||||
RECRUITMENT_COMPLETED(1, "招聘完成"),
|
||||
/**
|
||||
* 招聘停止(2)
|
||||
*/
|
||||
RECRUITMENT_STOPS(2, "招聘停止");
|
||||
|
||||
RecruitStatusEnum(Integer value, String desc) {
|
||||
this.value = value;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
/**
|
||||
* 选择框对应ID
|
||||
*/
|
||||
private Integer value;
|
||||
|
||||
/**
|
||||
* 选择框对应描述
|
||||
*/
|
||||
private String desc;
|
||||
|
||||
public Integer getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(Integer value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public void setDesc(String desc) {
|
||||
this.desc = desc;
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue