generated from dxfeng/secondev-chapanda-feishu
Compare commits
No commits in common. "main" and "二开/晶测HR项目" have entirely different histories.
|
|
@ -1,4 +1,4 @@
|
||||||
.iml
|
/weaver-hrm-recruit.iml
|
||||||
/out/
|
/out/
|
||||||
/.idea/
|
/.idea/
|
||||||
|
|
||||||
|
|
@ -8,12 +8,19 @@ target/
|
||||||
|
|
||||||
### IntelliJ IDEA ###
|
### IntelliJ IDEA ###
|
||||||
.idea
|
.idea
|
||||||
|
HELP.md
|
||||||
|
target/
|
||||||
|
|
||||||
/src/test
|
/src/test
|
||||||
/src/rebel.xml
|
/src/rebel.xml
|
||||||
/src/META-INF
|
/src/META-INF
|
||||||
### IntelliJ IDEA ###
|
### IntelliJ IDEA ###
|
||||||
|
.idea
|
||||||
|
|
||||||
|
/log
|
||||||
|
|
||||||
|
/src/test
|
||||||
|
/src/rebel.xml
|
||||||
|
/src/META-INF
|
||||||
|
|
||||||
/log
|
/log
|
||||||
/build/
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,24 @@
|
||||||
|
#\u805A\u624D\u6797\u62DB\u8058\u6D88\u606F\u63D0\u9192\uFF0C\u6D88\u606F\u6765\u6E90
|
||||||
|
RECRUIT_MESSAGE_TYPE=2022061063
|
||||||
|
|
||||||
|
|
||||||
|
#\u9762\u8BD5\u76F8\u5173\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
|
||||||
|
SCREENING_MESSAGE_TYPE=2022061063
|
||||||
|
SCREENING_MESSAGE_TITLE=\u7B80\u5386\u7B5B\u9009
|
||||||
|
SCREENING_MESSAGE_URL=/wui/index.html#/main/cube/search?customid=65
|
||||||
|
|
||||||
|
#\u5E94\u8058\u8005\u7B80\u5386\u5B58\u653E\u76EE\u5F55ID
|
||||||
|
APPLICANTS_RESUMES_CATEGORY=110
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
<%@ page import="com.engine.jc.kq.AbnormalOvertimeRemind" %>
|
||||||
|
<%@ page import="cn.hutool.core.convert.Convert" %>
|
||||||
|
<%@ page contentType="text/html; charset=UTF-8" %>
|
||||||
|
<%
|
||||||
|
// 测试
|
||||||
|
String userId = request.getParameter("userId");
|
||||||
|
String kqDate = request.getParameter("kqDate");
|
||||||
|
|
||||||
|
AbnormalOvertimeRemind.remind(Convert.toInt(userId, 0), kqDate);
|
||||||
|
out.println("执行完成,userId="+userId+",kqDate="+kqDate);
|
||||||
|
%>
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
description = "子模块demo项目"
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
// 子项目私有依赖添加
|
|
||||||
implementation project(':secondev-chapanda-portal')
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.api.jc.controller;
|
||||||
|
|
||||||
|
import javax.ws.rs.Path;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2024/07/25
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
@Path("/jc/overtime")
|
||||||
|
public class JcAbnormalOvertimeController extends com.engine.jc.controller.JcAbnormalOvertimeController {
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.api.jc.controller;
|
||||||
|
|
||||||
|
import javax.ws.rs.Path;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2024/07/23
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
@Path("/jc/infocollect")
|
||||||
|
public class JcRecruitInfoCollectController extends com.engine.jc.controller.JcRecruitInfoCollectController {
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.api.jc.controller;
|
||||||
|
|
||||||
|
import javax.ws.rs.Path;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2024/07/22
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
@Path("/jc/recruitneeds")
|
||||||
|
public class JcRecruitNeedsController extends com.engine.jc.controller.JcRecruitNeedsController {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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: 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: 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: TODO
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Path("/jcl/recruit/workplan")
|
||||||
|
public class WorkPlanController extends com.engine.recruit.controller.WorkPlanController {
|
||||||
|
}
|
||||||
|
|
@ -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,10 @@
|
||||||
|
package com.api.resumestorage.web;
|
||||||
|
|
||||||
|
import com.engine.resumestorage.web.ResumeIdentifyQliAction;
|
||||||
|
import javax.ws.rs.Path;
|
||||||
|
|
||||||
|
@Path("/resume/identifyQli")
|
||||||
|
public class ResumeIdentifyQliApi extends ResumeIdentifyQliAction {
|
||||||
|
public ResumeIdentifyQliApi() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
package com.api.resumestorage.web;
|
||||||
|
|
||||||
|
import com.engine.resumestorage.web.ResumeStorageAction;
|
||||||
|
import javax.ws.rs.Path;
|
||||||
|
|
||||||
|
@Path("/demo/resume")
|
||||||
|
public class ResumeStorageApi extends ResumeStorageAction {
|
||||||
|
public ResumeStorageApi() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
package com.engine.jc.controller;
|
||||||
|
|
||||||
|
import com.engine.common.util.ParamUtil;
|
||||||
|
import com.engine.common.util.ServiceUtil;
|
||||||
|
import com.engine.jc.wrapper.JcAbnormalOvertimeWrapper;
|
||||||
|
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.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2024/07/25
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public class JcAbnormalOvertimeController {
|
||||||
|
public JcAbnormalOvertimeWrapper getJcAbnormalOvertimeWrapper(User user) {
|
||||||
|
return ServiceUtil.getService(JcAbnormalOvertimeWrapper.class, user);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Path("/getTableData")
|
||||||
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
|
public String getTableData(@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(getJcAbnormalOvertimeWrapper(user)::getTableData, param);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Path("/getSignDateTime")
|
||||||
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
|
public String getSignDateTime(@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(getJcAbnormalOvertimeWrapper(user)::getSignDateTime, param);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
package com.engine.jc.controller;
|
||||||
|
|
||||||
|
import com.engine.common.util.ParamUtil;
|
||||||
|
import com.engine.common.util.ServiceUtil;
|
||||||
|
import com.engine.jc.wrapper.JcRecruitInfoCollectWrapper;
|
||||||
|
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.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/07/23
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public class JcRecruitInfoCollectController {
|
||||||
|
|
||||||
|
public JcRecruitInfoCollectWrapper getJcRecruitInfoCollectWrapper(User user) {
|
||||||
|
return ServiceUtil.getService(JcRecruitInfoCollectWrapper.class, user);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Path("/getCandidateName")
|
||||||
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
|
public String getCandidateName(@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(getJcRecruitInfoCollectWrapper(user)::getCandidateName, param);
|
||||||
|
}
|
||||||
|
|
||||||
|
@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> param = ParamUtil.request2Map(request);
|
||||||
|
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getJcRecruitInfoCollectWrapper(user)::updateApplicantsInfo, param);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
package com.engine.jc.controller;
|
||||||
|
|
||||||
|
import com.engine.common.util.ParamUtil;
|
||||||
|
import com.engine.common.util.ServiceUtil;
|
||||||
|
import com.engine.jc.wrapper.JcRecruitNeedsWrapper;
|
||||||
|
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.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/07/22
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public class JcRecruitNeedsController {
|
||||||
|
|
||||||
|
public JcRecruitNeedsWrapper getJcRecruitNeedsWrapper(User user) {
|
||||||
|
return ServiceUtil.getService(JcRecruitNeedsWrapper.class, user);
|
||||||
|
}
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Path("/checkStaff")
|
||||||
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
|
public String checkStaff(@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(getJcRecruitNeedsWrapper(user)::checkStaff, param);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,156 @@
|
||||||
|
package com.engine.jc.kq;
|
||||||
|
|
||||||
|
import cn.hutool.core.convert.Convert;
|
||||||
|
import com.engine.recruit.conn.ApplicantCommonInfo;
|
||||||
|
import com.engine.recruit.conn.RecruitDataMap;
|
||||||
|
import com.engine.recruit.conn.RecruitRecordSet;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import weaver.conn.RecordSet;
|
||||||
|
import weaver.workflow.webservices.*;
|
||||||
|
|
||||||
|
import java.text.DecimalFormat;
|
||||||
|
import java.time.LocalTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2024/07/24
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public class AbnormalOvertimeRemind {
|
||||||
|
private static final String OVERTIME_EXCEPTION_FLOW_ID = "41";
|
||||||
|
|
||||||
|
public static void remind(int userId, String kqDate) {
|
||||||
|
if (0 == userId || StringUtils.isBlank(kqDate)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
RecordSet rs = new RecordSet();
|
||||||
|
rs.writeLog("AbnormalOvertimeRemind任务开始,userId=" + userId + ",kqDate=" + kqDate);
|
||||||
|
// 查询当前人员、当前日期的最早、最晚打卡时间
|
||||||
|
rs.executeQuery("select signindate ,signintime ,signoutdate ,signouttime,signMins from kq_format_detail where resourceid = ? and kqdate = ?", userId, kqDate);
|
||||||
|
if (rs.next()) {
|
||||||
|
String signMins = rs.getString("signMins");
|
||||||
|
double signHourInt = Convert.toDouble(signMins, 0.0) / 60;
|
||||||
|
// 如果当天打卡时间超过10H,判断是否有该日期的加班流程
|
||||||
|
rs.writeLog("signMins=" + signMins);
|
||||||
|
String signInDate = rs.getString("signindate");
|
||||||
|
String signInTime = rs.getString("signintime");
|
||||||
|
String signInDateTime = signInDate + " " + signInTime;
|
||||||
|
|
||||||
|
String signOutDate = rs.getString("signoutdate");
|
||||||
|
String signOutTime = rs.getString("signouttime");
|
||||||
|
String signOutDateTime = signOutDate + " " + signOutTime;
|
||||||
|
if (signHourInt > 10) {
|
||||||
|
// 没有加班流程,记录为加班异常
|
||||||
|
rs.executeQuery("select * from formtable_main_18 where resourceId = ? and fromDate <= ? and toDate >= ?", userId, kqDate, kqDate);
|
||||||
|
if (rs.getCounts() == 0) {
|
||||||
|
// 判断是否已经被记录异常,已经记录的不重复记录
|
||||||
|
rs.executeQuery("select * from uf_jbycb where ycry = ? and ycrq = ?", userId, kqDate);
|
||||||
|
if (rs.getCounts() == 0) {
|
||||||
|
// 打卡时长保留两位小数
|
||||||
|
DecimalFormat df = new DecimalFormat("#.##");
|
||||||
|
String formattedHours = df.format(signHourInt);
|
||||||
|
|
||||||
|
|
||||||
|
String uuid = UUID.randomUUID().toString();
|
||||||
|
int formModeId = ApplicantCommonInfo.getModeIdByTableName("uf_jbycb");
|
||||||
|
// 构建建模表基本数据
|
||||||
|
RecruitDataMap<Object> dataMap = new RecruitDataMap<>();
|
||||||
|
RecruitRecordSet.buildModeInsertFields(dataMap, 1);
|
||||||
|
dataMap.put("formmodeid", formModeId);
|
||||||
|
dataMap.put("modeuuid", uuid);
|
||||||
|
dataMap.put("ycry", userId);
|
||||||
|
dataMap.put("ycrq", kqDate);
|
||||||
|
dataMap.put("zzdksj", signInDateTime);
|
||||||
|
dataMap.put("zwdksj", signOutDateTime);
|
||||||
|
dataMap.put("dtdksc", formattedHours);
|
||||||
|
RecruitRecordSet.insertData(dataMap, "uf_jbycb");
|
||||||
|
RecruitRecordSet.refreshRight(uuid, "uf_jbycb", formModeId, 1);
|
||||||
|
rs.writeLog("异常数据插入完成");
|
||||||
|
|
||||||
|
// 给异常员工发送“加班异常确认流程”
|
||||||
|
// 姓名
|
||||||
|
WorkflowRequestTableField xm = createWorkflowRequestTableField("xm", String.valueOf(userId), true);
|
||||||
|
// 日期
|
||||||
|
WorkflowRequestTableField rq = createWorkflowRequestTableField("rq", kqDate, true);
|
||||||
|
// 上班打卡时间
|
||||||
|
WorkflowRequestTableField sbdksj = createWorkflowRequestTableField("sbdksj", getFormatTime(signInTime), true);
|
||||||
|
// 下班打卡时间
|
||||||
|
WorkflowRequestTableField xbdksj = createWorkflowRequestTableField("xbdksj", getFormatTime(signOutTime), true);
|
||||||
|
// 打卡时长
|
||||||
|
WorkflowRequestTableField dksc = createWorkflowRequestTableField("dksc", formattedHours, true);
|
||||||
|
WorkflowRequestTableField[] workflowRequestTableField = {xm, rq, sbdksj, xbdksj, dksc};
|
||||||
|
createWorkflow(workflowRequestTableField);
|
||||||
|
rs.writeLog("流程创建完成");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rs.writeLog("AbnormalOvertimeRemind任务结束,userId=" + userId + ",kqDate=" + kqDate);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建流程
|
||||||
|
*
|
||||||
|
* @param workflowRequestTableField
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private static String createWorkflow(WorkflowRequestTableField[] workflowRequestTableField) {
|
||||||
|
WorkflowBaseInfo workflowBaseInfo = new WorkflowBaseInfo();
|
||||||
|
workflowBaseInfo.setWorkflowId(OVERTIME_EXCEPTION_FLOW_ID);
|
||||||
|
WorkflowMainTableInfo workflowMainTableInfo = new WorkflowMainTableInfo();
|
||||||
|
WorkflowRequestTableRecord[] workflowRequestTableRecord = new WorkflowRequestTableRecord[1];
|
||||||
|
workflowMainTableInfo.setRequestRecords(workflowRequestTableRecord);
|
||||||
|
workflowRequestTableRecord[0] = new WorkflowRequestTableRecord();
|
||||||
|
workflowRequestTableRecord[0].setWorkflowRequestTableFields(workflowRequestTableField);
|
||||||
|
//工作流程请求信息
|
||||||
|
WorkflowRequestInfo workflowRequestInfo = new WorkflowRequestInfo();
|
||||||
|
//请求标题
|
||||||
|
workflowRequestInfo.setRequestName("流程标题");
|
||||||
|
//请求重要级别
|
||||||
|
workflowRequestInfo.setRequestLevel("1");
|
||||||
|
//显示
|
||||||
|
workflowRequestInfo.setCanView(true);
|
||||||
|
//创建者id
|
||||||
|
workflowRequestInfo.setCreatorId("1");
|
||||||
|
//工作流信息
|
||||||
|
workflowRequestInfo.setWorkflowBaseInfo(workflowBaseInfo);
|
||||||
|
//主表
|
||||||
|
workflowRequestInfo.setWorkflowMainTableInfo(workflowMainTableInfo);
|
||||||
|
//是否提交下一节点
|
||||||
|
workflowRequestInfo.setIsnextflow("1");
|
||||||
|
|
||||||
|
WorkflowService workflow = new WorkflowServiceImpl();
|
||||||
|
return workflow.doCreateWorkflowRequest(workflowRequestInfo, 1);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static WorkflowRequestTableField createWorkflowRequestTableField(String fieldName, String fieldValue, boolean view) {
|
||||||
|
WorkflowRequestTableField tableField = new WorkflowRequestTableField();
|
||||||
|
tableField.setFieldName(fieldName);
|
||||||
|
tableField.setFieldValue(fieldValue);
|
||||||
|
tableField.setView(view);
|
||||||
|
tableField.setEdit(true);
|
||||||
|
return tableField;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static String getFormatTime(String timeString){
|
||||||
|
if(StringUtils.isBlank(timeString)){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
// 定义输入时间字符串的格式
|
||||||
|
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
|
||||||
|
|
||||||
|
// 解析时间字符串为 LocalTime 对象
|
||||||
|
LocalTime time = LocalTime.parse(timeString, inputFormatter);
|
||||||
|
|
||||||
|
// 定义输出时间字符串的格式
|
||||||
|
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("HH:mm");
|
||||||
|
|
||||||
|
// 格式化 LocalTime 对象为所需的字符串格式
|
||||||
|
return time.format(outputFormatter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
package com.engine.jc.service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2024/07/25
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface JcAbnormalOvertimeService {
|
||||||
|
/**
|
||||||
|
* 获取列表数据
|
||||||
|
*
|
||||||
|
* @param params
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> getTableData(Map<String, Object> params);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取打卡时间
|
||||||
|
*
|
||||||
|
* @param params
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> getSignDateTime(Map<String, Object> params);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
package com.engine.jc.service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2024/07/22
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface JcRecruitInfoCollectService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取应聘者姓名
|
||||||
|
*
|
||||||
|
* @param params
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
String getCandidateName(Map<String, Object> params);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新应聘者信息
|
||||||
|
*
|
||||||
|
* @param params
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> updateApplicantsInfo(Map<String, Object> params);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.engine.jc.service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2024/07/22
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface JcRecruitNeedsService {
|
||||||
|
/**
|
||||||
|
* 校验招聘需求编制状态
|
||||||
|
*
|
||||||
|
* @param params
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> checkStaff(Map<String, Object> params);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
package com.engine.jc.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.convert.Convert;
|
||||||
|
import com.engine.core.impl.Service;
|
||||||
|
import com.engine.jc.service.JcAbnormalOvertimeService;
|
||||||
|
import weaver.conn.RecordSet;
|
||||||
|
import weaver.general.Util;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2024/07/25
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public class JcAbnormalOvertimeServiceImpl extends Service implements JcAbnormalOvertimeService {
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> getTableData(Map<String, Object> params) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> getSignDateTime(Map<String, Object> params) {
|
||||||
|
Map<String, Object> returnMap = new HashMap<>();
|
||||||
|
String startDate = Util.null2String(params.get("startDate"));
|
||||||
|
String endDate = Util.null2String(params.get("endDate"));
|
||||||
|
int userId = Convert.toInt(Util.null2String(params.get("userId")), 0);
|
||||||
|
RecordSet rs = new RecordSet();
|
||||||
|
// 查询当前人员、当前日期的最早、最晚打卡时间
|
||||||
|
rs.executeQuery("select signindate ,signintime from kq_format_detail where resourceid = ? and kqdate = ?", userId, startDate);
|
||||||
|
if (rs.next()) {
|
||||||
|
String signindate = rs.getString("signindate");
|
||||||
|
String signintime = rs.getString("signintime");
|
||||||
|
returnMap.put("signInDateTime", signindate + " " + signintime);
|
||||||
|
returnMap.put("signInDate", signindate);
|
||||||
|
returnMap.put("signInTime", signintime);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
rs.executeQuery("select signoutdate ,signouttime from kq_format_detail where resourceid = ? and kqdate = ?", userId, endDate);
|
||||||
|
if (rs.next()) {
|
||||||
|
String signoutdate = rs.getString("signoutdate");
|
||||||
|
String signouttime = rs.getString("signouttime");
|
||||||
|
returnMap.put("signOutDateTime", signoutdate + " " + signouttime);
|
||||||
|
returnMap.put("signOutDate", signoutdate);
|
||||||
|
returnMap.put("signOutTime", signouttime);
|
||||||
|
}
|
||||||
|
return returnMap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,368 @@
|
||||||
|
package com.engine.jc.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.convert.Convert;
|
||||||
|
import com.engine.core.impl.Service;
|
||||||
|
import com.engine.jc.service.JcRecruitInfoCollectService;
|
||||||
|
import com.engine.recruit.conn.ModeBrowserCommonInfo;
|
||||||
|
import com.engine.recruit.conn.RecruitDataMap;
|
||||||
|
import com.engine.recruit.conn.RecruitRecordSet;
|
||||||
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import weaver.conn.RecordSet;
|
||||||
|
import weaver.general.Util;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.Period;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2024/07/22
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public class JcRecruitInfoCollectServiceImpl extends Service implements JcRecruitInfoCollectService {
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getCandidateName(Map<String, Object> params) {
|
||||||
|
int candidateId = Convert.toInt(params.get("candidateId"), 0);
|
||||||
|
String candidateName = "";
|
||||||
|
if (candidateId == 0) {
|
||||||
|
return candidateName;
|
||||||
|
}
|
||||||
|
|
||||||
|
RecordSet rs = new RecordSet();
|
||||||
|
rs.executeQuery("select xm from uf_jcl_yppc where id = ? ", candidateId);
|
||||||
|
if (rs.next()) {
|
||||||
|
candidateName = rs.getString("xm");
|
||||||
|
}
|
||||||
|
return candidateName;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> updateApplicantsInfo(Map<String, Object> params) {
|
||||||
|
// 应聘者ID
|
||||||
|
int candidateId = Convert.toInt(params.get("candidateId"), 0);
|
||||||
|
// 面试ID
|
||||||
|
int interviewId = Convert.toInt(params.get("interviewId"), 0);
|
||||||
|
|
||||||
|
// 数据中心数据ID
|
||||||
|
int dataId = Convert.toInt(params.get("dataId"), 0);
|
||||||
|
|
||||||
|
RecordSet rs = new RecordSet();
|
||||||
|
rs.executeQuery("select * from edc_uf_table92 where id = ? ", dataId);
|
||||||
|
Map<String, Object> mainDataMap = RecruitRecordSet.getSingleRecordMap(rs);
|
||||||
|
// 更新应聘者信息
|
||||||
|
RecruitDataMap<Object> applicantDataMap = new RecruitDataMap<>();
|
||||||
|
applicantDataMap.put("id", candidateId);
|
||||||
|
// 姓名
|
||||||
|
applicantDataMap.put("xm", mainDataMap.get("field003"));
|
||||||
|
// 手机号码
|
||||||
|
applicantDataMap.put("sjhm", mainDataMap.get("field005"));
|
||||||
|
// 现税前月薪(K)
|
||||||
|
applicantDataMap.put("qwsqyxk", mainDataMap.get("field006"));
|
||||||
|
// 出生日期
|
||||||
|
applicantDataMap.put("csrq", mainDataMap.get("field007"));
|
||||||
|
// 年龄 根据出生日期计算
|
||||||
|
applicantDataMap.put("nl", ageCalculator(Util.null2String(mainDataMap.get("field007"))));
|
||||||
|
// 性别
|
||||||
|
applicantDataMap.put("xb", mainDataMap.get("field008"));
|
||||||
|
// 身份证号
|
||||||
|
applicantDataMap.put("sfz", mainDataMap.get("field009"));
|
||||||
|
// 民族
|
||||||
|
applicantDataMap.put("mz", mainDataMap.get("field010"));
|
||||||
|
// 政治面貌
|
||||||
|
applicantDataMap.put("zzmm", getPoliticalLandscape(Util.null2String(mainDataMap.get("field011"))));
|
||||||
|
// 职称/证书
|
||||||
|
applicantDataMap.put("zczs", mainDataMap.get("field012"));
|
||||||
|
|
||||||
|
// 简历照片
|
||||||
|
applicantDataMap.put("jlzp", mainDataMap.get("field013"));
|
||||||
|
// 婚姻状况
|
||||||
|
applicantDataMap.put("hyzk", getMaritalStatus(Util.null2String(mainDataMap.get("field014"))));
|
||||||
|
// 最高学历 转换为浏览按钮对应的值
|
||||||
|
applicantDataMap.put("zgxl", getEducationLevelIdByValue(Util.null2String(mainDataMap.get("field015"))));
|
||||||
|
// 现居住地
|
||||||
|
applicantDataMap.put("xjzd", mainDataMap.get("field016"));
|
||||||
|
// 户口性质
|
||||||
|
applicantDataMap.put("hkxz", getSelectValueByName(rs, "hkxz", Util.null2String(mainDataMap.get("field016"))));
|
||||||
|
// 户籍所在地
|
||||||
|
applicantDataMap.put("hjszd", mainDataMap.get("field018"));
|
||||||
|
// 电子邮箱
|
||||||
|
applicantDataMap.put("dzyx", mainDataMap.get("field019"));
|
||||||
|
// 英文水平
|
||||||
|
applicantDataMap.put("ywsp", Util.null2String(mainDataMap.get("field020")));
|
||||||
|
// 是否可配合出差、加班及关联企业调派
|
||||||
|
applicantDataMap.put("sfkphccjbjglqydp", Util.null2String(mainDataMap.get("field021")));
|
||||||
|
// 过去五年是否有与就业有关的争议
|
||||||
|
applicantDataMap.put("gqwnsfyyjyygdzy", Util.null2String(mainDataMap.get("field022")));
|
||||||
|
// 是否有竞业限制及保密协议
|
||||||
|
applicantDataMap.put("sfyjyxzjbmxy", Util.null2String(mainDataMap.get("field023")));
|
||||||
|
// 是否存在疾病、有无疾病史
|
||||||
|
applicantDataMap.put("sfczjbywjbs", Util.null2String(mainDataMap.get("field024")));
|
||||||
|
// 是否患过职业病或工伤?
|
||||||
|
applicantDataMap.put("sfhgzybhgs", Util.null2String(mainDataMap.get("field025")));
|
||||||
|
// 1、 请说明过去的工作职掌与职责
|
||||||
|
applicantDataMap.put("qsmgqdgzzzyzz", Util.null2String(mainDataMap.get("field027")));
|
||||||
|
// 2、 请说明如何纾解工作上的压力?
|
||||||
|
applicantDataMap.put("qsmrhsjgzsdyl", Util.null2String(mainDataMap.get("field028")));
|
||||||
|
// 3、 请说明过去的工作经验中最有成就的部分,最困难在于什么?如何克服?
|
||||||
|
applicantDataMap.put("qsmgqdgzjyzzycjdbfzknzysmrhkf", Util.null2String(mainDataMap.get("field029")));
|
||||||
|
// 4、 请说明过去工作经验中最感挫折的部分,您如何解决?
|
||||||
|
applicantDataMap.put("qsmgqgzjyzzgczdbfnrhjj", Util.null2String(mainDataMap.get("field030")));
|
||||||
|
// 5、 请说明过去工作经验中若跟主管或同事的意见不合时,如何解决?
|
||||||
|
applicantDataMap.put("qsmgqgzjyzrgzghtsdyjbhsrhjj", Util.null2String(mainDataMap.get("field031")));
|
||||||
|
// 6、 请说明未来3年的规划及目标。
|
||||||
|
applicantDataMap.put("qsmwl3ndghjmb", Util.null2String(mainDataMap.get("field032")));
|
||||||
|
// 7、 希望待遇:
|
||||||
|
applicantDataMap.put("xwdy", Util.null2String(mainDataMap.get("field033")));
|
||||||
|
// 8、 是否曾因案被判刑或特殊案件正在诉讼中?
|
||||||
|
applicantDataMap.put("sfzyabpxhtsajzzssz", Util.null2String(mainDataMap.get("field034")));
|
||||||
|
|
||||||
|
|
||||||
|
RecruitRecordSet.updateDataById(applicantDataMap, "uf_jcl_yppc");
|
||||||
|
|
||||||
|
// 插入工作经历明细表
|
||||||
|
rs.executeQuery("select * from edc_uf_table92_dt1 where mainid = ? ", dataId);
|
||||||
|
List<Map<String, Object>> workDetailDataList = RecruitRecordSet.getRecordMapList(rs);
|
||||||
|
if (CollectionUtils.isNotEmpty(workDetailDataList)) {
|
||||||
|
for (Map<String, Object> item : workDetailDataList) {
|
||||||
|
RecruitDataMap<Object> insertDataMap = new RecruitDataMap<>();
|
||||||
|
insertDataMap.put("mainid", candidateId);
|
||||||
|
// 公司名称
|
||||||
|
insertDataMap.put("gsmc", item.get("field002"));
|
||||||
|
// 开始时间
|
||||||
|
insertDataMap.put("kssj", item.get("field008"));
|
||||||
|
// 结束时间
|
||||||
|
insertDataMap.put("jssj", item.get("field009"));
|
||||||
|
// 岗位
|
||||||
|
insertDataMap.put("gw", item.get("field003"));
|
||||||
|
// 工作职责
|
||||||
|
// insertDataMap.put("gzzz", item.get("jssj"));
|
||||||
|
// 税前月薪(k)
|
||||||
|
insertDataMap.put("sqyxk", item.get("field004"));
|
||||||
|
|
||||||
|
|
||||||
|
RecruitRecordSet.insertData(insertDataMap, "uf_jcl_yppc_dt2");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 插入教育经历明细表
|
||||||
|
rs.executeQuery("select * from edc_uf_table92_dt2 where mainid = ? ", dataId);
|
||||||
|
List<Map<String, Object>> educationDetailDataList = RecruitRecordSet.getRecordMapList(rs);
|
||||||
|
if (CollectionUtils.isNotEmpty(educationDetailDataList)) {
|
||||||
|
for (Map<String, Object> item : educationDetailDataList) {
|
||||||
|
RecruitDataMap<Object> insertDataMap = new RecruitDataMap<>();
|
||||||
|
insertDataMap.put("mainid", candidateId);
|
||||||
|
// 学校名称
|
||||||
|
insertDataMap.put("xxmc", item.get("field002"));
|
||||||
|
// 学历
|
||||||
|
insertDataMap.put("xl", getEducationLevelId(Util.null2String(item.get("field005"))));
|
||||||
|
// 专业
|
||||||
|
insertDataMap.put("zy", item.get("field003"));
|
||||||
|
// 开始时间
|
||||||
|
insertDataMap.put("kssj", item.get("field007"));
|
||||||
|
// 结束时间
|
||||||
|
insertDataMap.put("jssj", item.get("field008"));
|
||||||
|
|
||||||
|
RecruitRecordSet.insertData(insertDataMap, "uf_jcl_yppc_dt1");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 培训学习及专业资质状况 uf_jcl_yppc_dt5
|
||||||
|
rs.executeQuery("select * from edc_uf_table92_dt3 where mainid = ? ", dataId);
|
||||||
|
List<Map<String, Object>> trainDataList = RecruitRecordSet.getRecordMapList(rs);
|
||||||
|
if (CollectionUtils.isNotEmpty(trainDataList)) {
|
||||||
|
for (Map<String, Object> item : trainDataList) {
|
||||||
|
RecruitDataMap<Object> insertDataMap = new RecruitDataMap<>();
|
||||||
|
insertDataMap.put("mainid", candidateId);
|
||||||
|
// 开始日期
|
||||||
|
insertDataMap.put("ksrq", item.get("field006"));
|
||||||
|
// 结束日期
|
||||||
|
insertDataMap.put("jsrq", item.get("field007"));
|
||||||
|
// 课程名称
|
||||||
|
insertDataMap.put("kcmc", item.get("field002"));
|
||||||
|
// 培训机构
|
||||||
|
insertDataMap.put("pxjg", item.get("field003"));
|
||||||
|
// 所获证书
|
||||||
|
insertDataMap.put("shzs", item.get("field004"));
|
||||||
|
// 证书有效开始日期
|
||||||
|
//insertDataMap.put("zsyxksrq", item.get("field005"));
|
||||||
|
// 证书失效日期
|
||||||
|
//insertDataMap.put("zssxrq", item.get(""));
|
||||||
|
|
||||||
|
RecruitRecordSet.insertData(insertDataMap, "uf_jcl_yppc_dt5");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 家庭成员状况 uf_jcl_yppc_dt6
|
||||||
|
rs.executeQuery("select * from edc_uf_table92_dt4 where mainid = ? ", dataId);
|
||||||
|
List<Map<String, Object>> familyDataList = RecruitRecordSet.getRecordMapList(rs);
|
||||||
|
if (CollectionUtils.isNotEmpty(familyDataList)) {
|
||||||
|
for (Map<String, Object> item : familyDataList) {
|
||||||
|
RecruitDataMap<Object> insertDataMap = new RecruitDataMap<>();
|
||||||
|
insertDataMap.put("mainid", candidateId);
|
||||||
|
// 关系
|
||||||
|
insertDataMap.put("gx", item.get("field001"));
|
||||||
|
// 姓名
|
||||||
|
insertDataMap.put("xm", item.get("field002"));
|
||||||
|
// 是否紧急联系人
|
||||||
|
insertDataMap.put("sfjjlxr", item.get("field003"));
|
||||||
|
// 所在地
|
||||||
|
insertDataMap.put("szd", item.get("field004"));
|
||||||
|
// 工作单位
|
||||||
|
insertDataMap.put("gzdw", item.get("field005"));
|
||||||
|
// 职务
|
||||||
|
insertDataMap.put("zw", item.get("field006"));
|
||||||
|
// 联系电话
|
||||||
|
insertDataMap.put("lxdh", item.get("field007"));
|
||||||
|
|
||||||
|
RecruitRecordSet.insertData(insertDataMap, "uf_jcl_yppc_dt6");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 本公司若有您的亲属或朋友请填写以下信息 uf_jcl_yppc_dt7
|
||||||
|
rs.executeQuery("select * from edc_uf_table92_dt5 where mainid = ? ", dataId);
|
||||||
|
List<Map<String, Object>> memberDataList = RecruitRecordSet.getRecordMapList(rs);
|
||||||
|
if (CollectionUtils.isNotEmpty(memberDataList)) {
|
||||||
|
for (Map<String, Object> item : memberDataList) {
|
||||||
|
RecruitDataMap<Object> insertDataMap = new RecruitDataMap<>();
|
||||||
|
insertDataMap.put("mainid", candidateId);
|
||||||
|
// 关系
|
||||||
|
insertDataMap.put("gx", item.get("field006"));
|
||||||
|
// 姓名
|
||||||
|
insertDataMap.put("xm", item.get("field002"));
|
||||||
|
// 部门
|
||||||
|
insertDataMap.put("bm", item.get("field003"));
|
||||||
|
// 职务
|
||||||
|
insertDataMap.put("zw", item.get("field004"));
|
||||||
|
// 联系方式
|
||||||
|
insertDataMap.put("lxfs", item.get("field005"));
|
||||||
|
|
||||||
|
RecruitRecordSet.insertData(insertDataMap, "uf_jcl_yppc_dt7");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新面试表信息
|
||||||
|
RecruitDataMap<Object> interviewInfoMap = new RecruitDataMap<>();
|
||||||
|
interviewInfoMap.put("id", interviewId);
|
||||||
|
// 手机号码
|
||||||
|
interviewInfoMap.put("sjhm", applicantDataMap.get("sjhm"));
|
||||||
|
// 电子邮箱
|
||||||
|
interviewInfoMap.put("dzyx", applicantDataMap.get("dzyx"));
|
||||||
|
|
||||||
|
RecruitRecordSet.updateDataById(interviewInfoMap, "uf_jcl_ms");
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计算年龄
|
||||||
|
*
|
||||||
|
* @param birthDateStr
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private Integer ageCalculator(String birthDateStr) {
|
||||||
|
if (StringUtils.isBlank(birthDateStr)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
// 获取当前日期
|
||||||
|
LocalDate today = LocalDate.now();
|
||||||
|
LocalDate birthDate = LocalDate.parse(birthDateStr);
|
||||||
|
|
||||||
|
// 计算年龄
|
||||||
|
Period age = Period.between(birthDate, today);
|
||||||
|
return age.getYears();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取学历
|
||||||
|
*
|
||||||
|
* @param name
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private String getEducationLevelId(String name) {
|
||||||
|
if ("小学".equals(name)) {
|
||||||
|
name = "其他";
|
||||||
|
}
|
||||||
|
return ModeBrowserCommonInfo.getEducationLevelId(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getEducationLevelIdByValue(String value) {
|
||||||
|
if (StringUtils.isBlank(value)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
switch (value) {
|
||||||
|
case "0":
|
||||||
|
// 小学
|
||||||
|
return "1";
|
||||||
|
case "1":
|
||||||
|
// 初中
|
||||||
|
return "2";
|
||||||
|
case "2":
|
||||||
|
// 高中
|
||||||
|
return "3";
|
||||||
|
case "3":
|
||||||
|
// 中专
|
||||||
|
return "5";
|
||||||
|
case "4":
|
||||||
|
// 大专
|
||||||
|
return "6";
|
||||||
|
case "5":
|
||||||
|
// 本科
|
||||||
|
return "7";
|
||||||
|
case "6":
|
||||||
|
// 硕士
|
||||||
|
return "8";
|
||||||
|
case "7":
|
||||||
|
// 博士
|
||||||
|
return "9";
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取下拉框值
|
||||||
|
*
|
||||||
|
* @param rs
|
||||||
|
* @param fieldName
|
||||||
|
* @param selectName
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private String getSelectValueByName(RecordSet rs, String fieldName, String selectName) {
|
||||||
|
rs.executeQuery("select selectvalue from workflow_selectitem where fieldid = ( select id from workflow_billfield where FIELDNAME = ? and BILLID =( select id from workflow_bill where tablename = 'uf_jcl_yppc')) and SELECTNAME = ? ", fieldName, selectName);
|
||||||
|
if (rs.next()) {
|
||||||
|
return rs.getString("selectvalue");
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取婚姻状况
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private String getMaritalStatus(String value) {
|
||||||
|
if (StringUtils.isBlank(value)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
String name = "未婚";
|
||||||
|
if (!"0".equals(value)) {
|
||||||
|
name = "已婚";
|
||||||
|
}
|
||||||
|
return ModeBrowserCommonInfo.getBrowserId(ModeBrowserCommonInfo.TYPE_MARITAL_STATUS, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取政治面貌
|
||||||
|
*
|
||||||
|
* @param name
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private String getPoliticalLandscape(String name) {
|
||||||
|
return ModeBrowserCommonInfo.getBrowserId(ModeBrowserCommonInfo.TYPE_POLITICAL_LANDSCAPE, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
package com.engine.jc.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.convert.Convert;
|
||||||
|
import com.engine.core.impl.Service;
|
||||||
|
import com.engine.jc.service.JcRecruitNeedsService;
|
||||||
|
import weaver.general.Util;
|
||||||
|
import weaver.interfaces.jc.action.RecruitCheckStaffAction;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2024/07/22
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public class JcRecruitNeedsServiceImpl extends Service implements JcRecruitNeedsService {
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> checkStaff(Map<String, Object> params) {
|
||||||
|
String departmentId = Util.null2String(params.get("departmentId"));
|
||||||
|
String staffNum = Util.null2String(params.get("staffNum"));
|
||||||
|
RecruitCheckStaffAction.checkDepartmentStaff(departmentId, Convert.toInt(staffNum, 0));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.engine.jc.wrapper;
|
||||||
|
|
||||||
|
import com.engine.common.util.ServiceUtil;
|
||||||
|
import com.engine.core.impl.Service;
|
||||||
|
import com.engine.jc.service.JcAbnormalOvertimeService;
|
||||||
|
import com.engine.jc.service.impl.JcAbnormalOvertimeServiceImpl;
|
||||||
|
import weaver.hrm.User;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2024/07/25
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public class JcAbnormalOvertimeWrapper extends Service {
|
||||||
|
private JcAbnormalOvertimeService getJcAbnormalOvertimeService(User user) {
|
||||||
|
return ServiceUtil.getService(JcAbnormalOvertimeServiceImpl.class, user);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, Object> getTableData(Map<String, Object> param) {
|
||||||
|
return getJcAbnormalOvertimeService(user).getTableData(param);
|
||||||
|
}
|
||||||
|
public Map<String, Object> getSignDateTime(Map<String, Object> param) {
|
||||||
|
return getJcAbnormalOvertimeService(user).getSignDateTime(param);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
package com.engine.jc.wrapper;
|
||||||
|
|
||||||
|
import com.engine.common.util.ServiceUtil;
|
||||||
|
import com.engine.core.impl.Service;
|
||||||
|
import com.engine.jc.service.JcRecruitInfoCollectService;
|
||||||
|
import com.engine.jc.service.impl.JcRecruitInfoCollectServiceImpl;
|
||||||
|
import weaver.hrm.User;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2024/07/23
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public class JcRecruitInfoCollectWrapper extends Service {
|
||||||
|
private JcRecruitInfoCollectService getJcRecruitInfoCollectService(User user) {
|
||||||
|
return ServiceUtil.getService(JcRecruitInfoCollectServiceImpl.class, user);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCandidateName(Map<String, Object> param) {
|
||||||
|
return getJcRecruitInfoCollectService(user).getCandidateName(param);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, Object> updateApplicantsInfo(Map<String, Object> param) {
|
||||||
|
return getJcRecruitInfoCollectService(user).updateApplicantsInfo(param);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
package com.engine.jc.wrapper;
|
||||||
|
|
||||||
|
import com.engine.common.util.ServiceUtil;
|
||||||
|
import com.engine.core.impl.Service;
|
||||||
|
import com.engine.jc.service.JcRecruitNeedsService;
|
||||||
|
import com.engine.jc.service.impl.JcRecruitNeedsServiceImpl;
|
||||||
|
import weaver.hrm.User;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2024/07/22
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public class JcRecruitNeedsWrapper extends Service {
|
||||||
|
private JcRecruitNeedsService getJcRecruitNeedsService(User user) {
|
||||||
|
return ServiceUtil.getService(JcRecruitNeedsServiceImpl.class, user);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, Object> checkStaff(Map<String, Object> param) {
|
||||||
|
return getJcRecruitNeedsService(user).checkStaff(param);
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,241 @@
|
||||||
|
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 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 = ?", id);
|
||||||
|
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 = ? ) 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,348 @@
|
||||||
|
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(Map<String, Object> param) {
|
||||||
|
Map<String, Object> map = insertResumeAndReturn(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(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);
|
||||||
|
if (joinBlackList) {
|
||||||
|
return returnMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 按照姓名+手机号查询正常展示的简历数据
|
||||||
|
List<Map<String, Object>> repeatResumeList = getRepeatResumeList(name, mobile);
|
||||||
|
if (CollectionUtils.isEmpty(repeatResumeList)) {
|
||||||
|
// 不存在重复数据,直接插入数据库
|
||||||
|
mainId = insertData(param);
|
||||||
|
returnMap.put("mainId", mainId);
|
||||||
|
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(param, sourceResume);
|
||||||
|
returnMap.put("mainId", mainId);
|
||||||
|
returnMap.put("sourceId", sourceId);
|
||||||
|
returnMap.put("isUpdate", true);
|
||||||
|
return returnMap;
|
||||||
|
} else {
|
||||||
|
// 直接入库,不做任何处理
|
||||||
|
mainId = insertData(param);
|
||||||
|
returnMap.put("mainId", mainId);
|
||||||
|
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(param);
|
||||||
|
returnMap.put("mainId", mainId);
|
||||||
|
return returnMap;
|
||||||
|
} else {
|
||||||
|
// 没有相同职位的数据,新简历直接入库,不做任何处理
|
||||||
|
mainId = insertData(param);
|
||||||
|
returnMap.put("mainId", mainId);
|
||||||
|
return returnMap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return returnMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 直接插入简历信息
|
||||||
|
*
|
||||||
|
* @param dataMap 数据集合
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private int insertData(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, 1);
|
||||||
|
RecruitRecordSet.insertData(dataMap, "uf_jcl_yppc");
|
||||||
|
return RecruitRecordSet.refreshRight(uuid, "uf_jcl_yppc", formModeId, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 插入数据库并隐藏
|
||||||
|
*
|
||||||
|
* @param dataMap 数据集合
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private int insertHideData(Map<String, Object> dataMap) {
|
||||||
|
String uuid = UUID.randomUUID().toString();
|
||||||
|
dataMap.put("modeuuid", uuid);
|
||||||
|
RecordSet rs = new RecordSet();
|
||||||
|
RecruitRecordSet.buildModeInsertFields(dataMap, 1);
|
||||||
|
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(Map<String, Object> param, Map<String, Object> sourceResume) {
|
||||||
|
replaceNullValues(param, sourceResume);
|
||||||
|
// 处理操作人员、操作时间
|
||||||
|
RecruitRecordSet.buildModeUpdateFields(sourceResume, 1);
|
||||||
|
RecruitRecordSet.updateDataById(sourceResume, "uf_jcl_yppc");
|
||||||
|
// 更新数据
|
||||||
|
RecruitRecordSet.buildModeInsertFields(param, 1);
|
||||||
|
return insertHideData(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,114 @@
|
||||||
|
package com.engine.recruit.conn;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import weaver.conn.RecordSet;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @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 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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,109 @@
|
||||||
|
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,29 @@
|
||||||
|
package com.engine.recruit.conn;
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,153 @@
|
||||||
|
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 Map<String, Object> getSingleRecordMap(RecordSet rs) {
|
||||||
|
Map<String, Object> dataMap = new RecruitDataMap<>();
|
||||||
|
if (rs.next()) {
|
||||||
|
String[] columnNames = rs.getColumnName();
|
||||||
|
for (String columnName : columnNames) {
|
||||||
|
dataMap.put(columnName.toLowerCase(), 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 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,94 @@
|
||||||
|
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.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("/fullOriginalResumeId")
|
||||||
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
|
public String fullOriginalResumeId(@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)::fullOriginalResumeId, param);
|
||||||
|
}
|
||||||
|
|
||||||
|
@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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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,43 @@
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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,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.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.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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,80 @@
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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.RecruitPositionWrapper;
|
||||||
|
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/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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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,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,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,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,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,64 @@
|
||||||
|
package com.engine.recruit.entity.recruitflow.po;
|
||||||
|
|
||||||
|
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 = ?", billId);
|
||||||
|
if (rs.next()) {
|
||||||
|
rs.executeQuery("select count(id) as num from uf_jcl_yppc where xm=? and sjhm =?", rs.getString("xm"), rs.getString("sjhm"));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
rs.executeQuery("select count(1) as num from " + tableName + " where ypz = ? ", billId);
|
||||||
|
}
|
||||||
|
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,209 @@
|
||||||
|
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 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 static final int SEC_CATEGORY = Convert.toInt(RecruitModeUtil.getRecruitPropValue("APPLICANTS_RESUMES_CATEGORY"));
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 解析JSON数组,下载文件并入库
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String getJlfj() {
|
||||||
|
if (StringUtils.isBlank(jlfj)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
String resumeId = null;
|
||||||
|
try {
|
||||||
|
JSONArray jsonArray = JSON.parseArray(jlfj);
|
||||||
|
JSONObject jsonObject = (JSONObject) jsonArray.get(0);
|
||||||
|
String name = jsonObject.getString("name");
|
||||||
|
String content = jsonObject.getString("content");
|
||||||
|
new BaseBean().writeLog("千里聆简历附件解析,id=" + id + ",jslf=" + jlfj);
|
||||||
|
HttpResponse response = HttpRequest.get(content).execute();
|
||||||
|
if (response.isOk()) {
|
||||||
|
String disposition = response.header("Content-Disposition");
|
||||||
|
if (StringUtils.isNotBlank(disposition)) {
|
||||||
|
InputStream inputStream = response.bodyStream();
|
||||||
|
int imageFileId = RecruitModeUtil.generateImageFileId(inputStream, name);
|
||||||
|
int docId = RecruitModeUtil.createDocId(SEC_CATEGORY, imageFileId, new User(1));
|
||||||
|
resumeId = String.valueOf(docId);
|
||||||
|
} else {
|
||||||
|
new BaseBean().writeLog("千里聆附件下载失败,Content-Disposition为空===" + response.body());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
new BaseBean().writeLog("千里聆附件下载失败,URL响应失败");
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
new 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", "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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,54 @@
|
||||||
|
package com.engine.recruit.enums;
|
||||||
|
|
||||||
|
import com.engine.recruit.exception.CustomizeRunTimeException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发布渠道枚举类
|
||||||
|
*
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2023/10/08
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public enum PositionThirdChannelEnum {
|
||||||
|
/**
|
||||||
|
* 发布渠道
|
||||||
|
*/
|
||||||
|
BOSSZHIPIN("0", "BOSS直聘"),
|
||||||
|
ZHILIANZHAOPIN("1", "智联"),
|
||||||
|
QIANCHENGWUYOU("2", "前程无忧"),
|
||||||
|
LAGO("3", "拉勾"),
|
||||||
|
LIEPIN("4", "猎聘");
|
||||||
|
|
||||||
|
PositionThirdChannelEnum(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;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static PositionThirdChannelEnum getEnum(String value) {
|
||||||
|
for (PositionThirdChannelEnum item : PositionThirdChannelEnum.values()) {
|
||||||
|
if (item.value.equalsIgnoreCase(value)) {
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
package com.engine.recruit.exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2023/09/18
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public class CustomizeRunTimeException extends RuntimeException{
|
||||||
|
|
||||||
|
public CustomizeRunTimeException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public CustomizeRunTimeException(Throwable cause) {
|
||||||
|
super(cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
public CustomizeRunTimeException(String message, Throwable cause) {
|
||||||
|
super(message, cause);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
package com.engine.recruit.factory;
|
||||||
|
|
||||||
|
import com.engine.core.impl.Service;
|
||||||
|
import com.engine.recruit.service.RecruitButtonService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>聚才林招聘</p>
|
||||||
|
* 招聘按钮工厂类
|
||||||
|
*
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2023/09/18
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public class RecruitButtonFactory {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据类的全路径获取类对象
|
||||||
|
*
|
||||||
|
* @param className 类全路径
|
||||||
|
* @param <T>
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static <T extends Service> Class<T> getClass(String className) {
|
||||||
|
Class<?> clazz;
|
||||||
|
try {
|
||||||
|
clazz = Class.forName(className);
|
||||||
|
if (!RecruitButtonService.class.isAssignableFrom(clazz)) {
|
||||||
|
throw new IllegalArgumentException("该类未实现RecruitButtonService");
|
||||||
|
}
|
||||||
|
return (Class<T>) clazz;
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
package com.engine.recruit.service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>聚才林招聘</p>
|
||||||
|
* <p>
|
||||||
|
* 应聘者简历服务类
|
||||||
|
*
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2023/09/20
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface ApplicantResumeService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取应聘者姓名
|
||||||
|
*
|
||||||
|
* @param ids 应聘者ID
|
||||||
|
* @return 应聘者姓名
|
||||||
|
*/
|
||||||
|
Map<String, Object> getApplicantsName(String ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据ID获取面试信息
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return 面试信息
|
||||||
|
*/
|
||||||
|
Map<String, Object> getInterviewInfoById(String id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取编辑布局对应的显示布局ID
|
||||||
|
*
|
||||||
|
* @param params 入参
|
||||||
|
* @return 显示布局ID
|
||||||
|
*/
|
||||||
|
Map<String, Object> getDisplayLayoutId(Map<String, Object> params);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取关联Tab页,数据统计条数
|
||||||
|
*
|
||||||
|
* @param params 入参
|
||||||
|
* @return 据统计条数
|
||||||
|
*/
|
||||||
|
Map<String, Object> getTabCount(Map<String, Object> params);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新应聘者信息
|
||||||
|
*
|
||||||
|
* @param params 入参
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> updateApplicantsInfo(Map<String, Object> params);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 完善OCR导入的简历,原始简历字段
|
||||||
|
*
|
||||||
|
* @param params
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> fullOriginalResumeId(Map<String, Object> params);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断是否重复简历,是否可以新增
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> checkRepeatResume(Map<String, Object> param);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
package com.engine.recruit.service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2023/10/23
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface InductionManageService {
|
||||||
|
/**
|
||||||
|
* 更新入职管理信息
|
||||||
|
*
|
||||||
|
* @param param 参数
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> updateInductionManageInfo(Map<String, Object> param);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发送信息采集
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> sendCollectInfo(Map<String, Object> param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提交前,校验身份证号
|
||||||
|
*
|
||||||
|
* @param params
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> verifyIDCard(Map<String, Object> params);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验登录信息
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> checkLoginInfo(Map<String, Object> param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description:
|
||||||
|
* @Author: liang.cheng
|
||||||
|
* @Date: 2023/10/25 10:30 AM
|
||||||
|
* @param: [id]
|
||||||
|
* @return: java.util.Map<java.lang.String, java.lang.Object>
|
||||||
|
*/
|
||||||
|
Map<String, Object> infoSubmit(String id);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
package com.engine.recruit.service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2023/11/22
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface InitRecruitDataService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验初始化状态
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> checkInitStatus();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 初始化招聘数据
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> initRecruitData();
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.engine.recruit.service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>聚才林招聘</p>
|
||||||
|
* 消息模板接口
|
||||||
|
*
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2023/09/26
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface MessageTemplateService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取邮件模板内容
|
||||||
|
*
|
||||||
|
* @param params 入参
|
||||||
|
* @return 模板内容
|
||||||
|
*/
|
||||||
|
Map<String, Object> getMessageContent(Map<String, Object> params);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
package com.engine.recruit.service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2023/10/30
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface OfferService {
|
||||||
|
/**
|
||||||
|
* 获取offer移动端地址
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> getOfferMobileLink(Map<String, Object> param);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取邮件内容
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> getOfferContent(Map<String, Object> param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新offer状态
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> updateOfferStatus(Map<String, Object> param);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.engine.recruit.service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>聚才林招聘</p>
|
||||||
|
* 招聘流程按钮功能实现接口
|
||||||
|
*
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2023/09/18
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface RecruitButtonService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按钮执行的业务逻辑
|
||||||
|
*
|
||||||
|
* @param params 参数集合
|
||||||
|
* @return 响应结果
|
||||||
|
*/
|
||||||
|
Map<String, Object> execute(Map<String, Object> params);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
package com.engine.recruit.service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>聚才林招聘</p>
|
||||||
|
* 招聘流程接口
|
||||||
|
*
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2023/09/22
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface RecruitFlowService {
|
||||||
|
/**
|
||||||
|
* 获取当前阶段操作按钮
|
||||||
|
*
|
||||||
|
* @param param 参数
|
||||||
|
* @return 操作按钮
|
||||||
|
*/
|
||||||
|
Map<String, Object> getButtonList(Map<String, Object> param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取招聘阶段信息
|
||||||
|
*
|
||||||
|
* @param param 参数
|
||||||
|
* @return 招聘阶段
|
||||||
|
*/
|
||||||
|
Map<String, Object> getRecruitStepList(Map<String, Object> param);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.engine.recruit.service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2023/11/28
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface RecruitInterviewService {
|
||||||
|
/**
|
||||||
|
* 更新面试状态
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> updateInterviewStatus(Map<String, Object> param);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
package com.engine.recruit.service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2023/10/09
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface RecruitPositionService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新职位信息
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> updatePostInfo(Map<String, Object> param);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
package com.engine.recruit.service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2023/10/27
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface RpaJclService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配置简历采集邮箱设置
|
||||||
|
*
|
||||||
|
* @param param 前段传参
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> setEmailSetting(Map<String, Object> param);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.engine.recruit.service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:dxfeng
|
||||||
|
* @createTime: 2023/10/20
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public interface TalentPoolService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 移出黑名单
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> removeBlacklist(Map<String, Object> param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建新应聘者
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> createNewApplicant(Map<String, Object> param);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
package com.engine.recruit.service;
|
||||||
|
|
||||||
|
import com.engine.recruit.entity.workbench.OptionVO;
|
||||||
|
import com.engine.recruit.entity.workbench.RecruitPortalCommonVO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author liang.cheng
|
||||||
|
* @Date 2023/10/18 4:43 PM
|
||||||
|
* @Description:
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
public interface WorkBenchPortalService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 顶部元素
|
||||||
|
* @Author: liang.cheng
|
||||||
|
* @Date: 2023/10/19 10:47 AM
|
||||||
|
* @param: []
|
||||||
|
* @return: com.engine.recruit.entity.workbench.RecruitPortalCommonVO
|
||||||
|
*/
|
||||||
|
List<RecruitPortalCommonVO> getRecruitPortalTop();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 职位年限要求分布
|
||||||
|
* @Author: liang.cheng
|
||||||
|
* @Date: 2023/10/19 3:15 PM
|
||||||
|
* @param: []
|
||||||
|
* @return: com.engine.recruit.entity.workbench.OptionVO
|
||||||
|
*/
|
||||||
|
OptionVO getJobTenure();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 候选中应聘者各阶段数
|
||||||
|
* @Author: liang.cheng
|
||||||
|
* @Date: 2023/10/20 9:35 AM
|
||||||
|
* @param: []
|
||||||
|
* @return: com.engine.recruit.entity.workbench.OptionVO
|
||||||
|
*/
|
||||||
|
OptionVO getWaitStepPerson();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 招聘转化
|
||||||
|
* @Author: liang.cheng
|
||||||
|
* @Date: 2023/10/20 10:04 AM
|
||||||
|
* @param: []
|
||||||
|
* @return: com.engine.recruit.entity.workbench.OptionVO
|
||||||
|
*/
|
||||||
|
OptionVO getRecruitTransform();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 人才来源
|
||||||
|
* @Author: liang.cheng
|
||||||
|
* @Date: 2023/10/20 11:07 AM
|
||||||
|
* @param: []
|
||||||
|
* @return: com.engine.recruit.entity.workbench.OptionVO
|
||||||
|
*/
|
||||||
|
OptionVO getPeopleFrom();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 招聘进度
|
||||||
|
* @Author: liang.cheng
|
||||||
|
* @Date: 2023/10/23 11:07 AM
|
||||||
|
* @param: []
|
||||||
|
* @return:
|
||||||
|
*/
|
||||||
|
List<RecruitPortalCommonVO> getRecruitProgress();
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue