BUG修复,发起新应聘

This commit is contained in:
dxfeng 2023-11-20 18:33:57 +08:00
parent 94f139f6b1
commit 4cd6bcfa9c
11 changed files with 340 additions and 14 deletions

View File

@ -42,10 +42,24 @@ public class CheckRepeatResume {
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();
// 查询状态为待分配候选中的且未隐藏的数据

View File

@ -34,4 +34,13 @@ public class TalentPoolController {
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);
}
}

View File

@ -16,4 +16,12 @@ public interface TalentPoolService {
* @return
*/
Map<String, Object> removeBlacklist(Map<String, Object> param);
/**
* 创建新应聘者
*
* @param param
* @return
*/
Map<String, Object> createNewApplicant(Map<String, Object> param);
}

View File

@ -218,7 +218,7 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu
for (String id : split) {
rs.executeUpdate("update uf_jcl_yppc set gdyy = ?,gdxxyy = ? where id = ? ", gdyy, gdxxyy, id);
// 建模推送建模
archiveTalentPool(id, false);
archiveTalentPool(id, false, "");
// 更新应聘状态为已归档
rs.executeUpdate("update uf_jcl_yppc set zt = ? where id = ? ", ApplicationStatusEnum.ARCHIVED.getValue(), id);
@ -243,19 +243,24 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu
// 转推其他职位
String sourceId = Util.null2String(params.get("sourceId"));
String ypzw = Util.null2String(params.get("ypzw"));
String zplc = null;
rs.executeQuery("select zplc from uf_jcl_zp_zpzw where id = ?", ypzw);
if (rs.next()) {
zplc = rs.getString("zplc");
}
rs.executeQuery("select * from uf_jcl_yppc where id = ?", sourceId);
Map<String, Object> mainDataMap = RecruitRecordSet.getSingleRecordMap(rs);
// 构建新数据
mainDataMap.put("ypzw", ypzw);
mainDataMap.put("zplc", zplc);
mainDataMap.put("zpjd", null);
mainDataMap.put("dqypjd", null);
String flowId = PositionCommonInfo.getRecruitFlowId(ypzw);
Map<String, String> initialStage = ApplicantCommonInfo.getInitialStage(flowId);
if (null != initialStage) {
String zpjd = initialStage.get("zpjd");
String dqypjd = initialStage.get("jdlx");
if (StringUtils.isNotBlank(zpjd) && StringUtils.isNotBlank(dqypjd)) {
mainDataMap.put("zplc", flowId);
mainDataMap.put("zpjd", zpjd);
mainDataMap.put("dqypjd", dqypjd);
}
}
mainDataMap.put("zt", ApplicationStatusEnum.CANDIDATE.getValue());
RecruitRecordSet.buildModeInsertFields(mainDataMap, user.getUID());
String uuid = UUID.randomUUID().toString();
@ -439,8 +444,9 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu
*
* @param applicantId 应聘者ID
* @param joinBlacklist 是否加入黑名单
* @param gdyy 归档原因
*/
public void archiveTalentPool(String applicantId, boolean joinBlacklist) {
public void archiveTalentPool(String applicantId, boolean joinBlacklist, String gdyy) {
RecordSet rs = new RecordSet();
String name = "";
String mobile = "";
@ -516,6 +522,11 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu
dataMap.put("sfjrhmd", 1);
}
if (StringUtils.isNotBlank(gdyy)) {
dataMap.put("gdyy", gdyy);
dataMap.put("gdxxyy", "");
}
RecruitRecordSet.insertData(dataMap, "uf_jcl_rck");
refreshRight(uuid, formModeId, applicantId);
@ -650,7 +661,7 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu
// String flowId = PositionCommonInfo.getRecruitFlowId(ypzw);
// Map<String, String> initialStage = ApplicantCommonInfo.getInitialStage(flowId);
// if (null != initialStage) {
// String zpjd = initialStage.get("id");
// String zpjd = initialStage.get("zpjd");
// String dqypjd = initialStage.get("jdlx");
// if (StringUtils.isNotBlank(zpjd) && StringUtils.isNotBlank(dqypjd)) {
// insertMap.put("ypzw", ypzw);

View File

@ -33,7 +33,7 @@ public class JoinBlacklistServiceImpl extends Service implements RecruitButtonSe
RecordSet rs = new RecordSet();
// 推人才表建模推建模更新人才表数据是否加入黑名单字段值变更为
ServiceUtil.getService(ApplicantResumeServiceImpl.class, user).archiveTalentPool(billId, true);
ServiceUtil.getService(ApplicantResumeServiceImpl.class, user).archiveTalentPool(billId, true,"16");
// 更新当前应聘者关联的所有简历状态为已淘汰
String name = "";

View File

@ -1,13 +1,19 @@
package com.engine.recruit.service.impl;
import com.engine.core.impl.Service;
import com.engine.recruit.conn.*;
import com.engine.recruit.enums.ApplicationStatusEnum;
import com.engine.recruit.exception.CustomizeRunTimeException;
import com.engine.recruit.service.TalentPoolService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.common.DateUtil;
import weaver.conn.RecordSet;
import weaver.general.Util;
import java.util.List;
import java.util.Map;
import java.util.UUID;
/**
* @author:dxfeng
@ -25,4 +31,96 @@ public class TalentPoolServiceImpl extends Service implements TalentPoolService
rs.executeUpdate("update uf_jcl_rck set sfjrhmd = 1 where id in (" + ids + ")");
return null;
}
@Override
public Map<String, Object> createNewApplicant(Map<String, Object> param) {
String rcId = Util.null2String(param.get("rcid"));
String ypzw = Util.null2String(param.get("ypzw"));
if (StringUtils.isBlank(ypzw)) {
throw new CustomizeRunTimeException("请选择应聘职位");
}
RecordSet rs = new RecordSet();
rs.executeQuery("select * from uf_jcl_rck where id = ? ", rcId);
Map<String, Object> mainDataMap = RecruitRecordSet.getSingleRecordMap(rs);
String xm = Util.null2String(mainDataMap.get("xm"));
String sjhm = Util.null2String(mainDataMap.get("sjhm"));
// 职位重复校验
List<Map<String, Object>> repeatPositionResumeList = CheckRepeatResume.getRepeatPositionResumeList(xm, sjhm, ypzw);
if (CollectionUtils.isNotEmpty(repeatPositionResumeList)) {
throw new CustomizeRunTimeException("该人员已有相同的应聘中的职位");
}
Map<String, Object> insertDataMap = buildInsertMap(ypzw, mainDataMap);
String uuid = UUID.randomUUID().toString();
insertDataMap.put("modeuuid", uuid);
int formModeId = -1;
rs.executeQuery("select id from modeinfo where formid =( select id from workflow_bill where tablename = 'uf_jcl_yppc' )");
if (rs.next()) {
formModeId = rs.getInt("id");
}
insertDataMap.put("formmodeid", formModeId);
RecruitRecordSet.buildModeInsertFields(insertDataMap, user.getUID());
RecruitRecordSet.insertData(insertDataMap, "uf_jcl_yppc");
int pcId = RecruitRecordSet.refreshRight(uuid, "uf_jcl_yppc", formModeId, user.getUID());
// 创建明细表数据
rs.executeUpdate("insert into uf_jcl_yppc_dt1 (mainid,xxmc,xl,zy,kssj,jssj) select ?,xxmc,xl,zy,kssj,jssj from uf_jcl_rck_dt1 where mainid = ?", pcId, rcId);
rs.executeUpdate("insert into uf_jcl_yppc_dt2 (mainid,gsmc,kssj,jssj,gw,sqyxk,lzyy,gzzz) select ?,gsmc,kssj,jssj,gw,sqyxk,lzyy,gzzz from uf_jcl_rck_dt2 where mainid = ?", pcId, rcId);
rs.executeUpdate("insert into uf_jcl_yppc_dt3 (mainid,xmmc,kssj,jssj,drjs,xmms) select ?,xmmc,kssj,jssj,drjs,xmms from uf_jcl_rck_dt3 where mainid = ?", pcId, rcId);
rs.executeUpdate("insert into uf_jcl_yppc_dt4 (mainid,yylx,zwcd) select ?,yylx,zwcd from uf_jcl_rck_dt4 where mainid = ?", pcId, rcId);
return null;
}
private Map<String, Object> buildInsertMap(String ypzw, Map<String, Object> mainDataMap) {
String zt = ApplicationStatusEnum.DISTRIBUTION.getValue();
Map<String, Object> insertDataMap = new RecruitDataMap<>();
insertDataMap.put("sfz", mainDataMap.get("sfz"));
insertDataMap.put("jlzp", mainDataMap.get("jlzp"));
insertDataMap.put("ysjl", mainDataMap.get("ysjl"));
insertDataMap.put("jlly", mainDataMap.get("jlly"));
insertDataMap.put("xm", mainDataMap.get("xm"));
insertDataMap.put("xb", mainDataMap.get("xb"));
insertDataMap.put("sjhm", mainDataMap.get("sjhm"));
insertDataMap.put("dzyx", mainDataMap.get("dzyx"));
insertDataMap.put("csrq", mainDataMap.get("csrq"));
insertDataMap.put("nl", mainDataMap.get("nl"));
insertDataMap.put("zgxl", mainDataMap.get("zgxl"));
insertDataMap.put("zgxw", mainDataMap.get("zgxw"));
insertDataMap.put("byyx", mainDataMap.get("byyx"));
insertDataMap.put("zy", mainDataMap.get("zy"));
insertDataMap.put("hyzk", mainDataMap.get("hyzk"));
insertDataMap.put("gzjy", mainDataMap.get("gzjy"));
insertDataMap.put("zzzt", mainDataMap.get("zzzt"));
insertDataMap.put("dqszd", mainDataMap.get("dqszd"));
insertDataMap.put("tdsj", DateUtil.getDateTime());
insertDataMap.put("cjr", user.getUID());
insertDataMap.put("zwpj", mainDataMap.get("zwpj"));
insertDataMap.put("mz", mainDataMap.get("mz"));
insertDataMap.put("jg", mainDataMap.get("jg"));
insertDataMap.put("zzmm", mainDataMap.get("zzmm"));
insertDataMap.put("sgcm", mainDataMap.get("sgcm"));
insertDataMap.put("tzkg", mainDataMap.get("tzkg"));
insertDataMap.put("ypzw", ypzw);
String flowId = PositionCommonInfo.getRecruitFlowId(ypzw);
Map<String, String> initialStage = ApplicantCommonInfo.getInitialStage(flowId);
if (null != initialStage) {
String zpjd = initialStage.get("zpjd");
String dqypjd = initialStage.get("jdlx");
if (StringUtils.isNotBlank(zpjd) && StringUtils.isNotBlank(dqypjd)) {
insertDataMap.put("zplc", flowId);
insertDataMap.put("zpjd", zpjd);
insertDataMap.put("dqypjd", dqypjd);
zt = ApplicationStatusEnum.CANDIDATE.getValue();
}
}
insertDataMap.put("zt", zt);
return insertDataMap;
}
}

View File

@ -21,4 +21,7 @@ public class TalentPoolWrapper extends Service {
public Map<String, Object> removeBlacklist(Map<String, Object> param) {
return getTalentPoolService(user).removeBlacklist(param);
}
public Map<String, Object> createNewApplicant(Map<String, Object> param) {
return getTalentPoolService(user).createNewApplicant(param);
}
}

View File

@ -0,0 +1,131 @@
package weaver.formmode.recruit.modeexpand.applicant;
import com.engine.recruit.conn.*;
import com.engine.recruit.enums.ApplicationStatusEnum;
import com.engine.recruit.exception.CustomizeRunTimeException;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.common.DateUtil;
import weaver.conn.RecordSet;
import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.soa.workflow.request.RequestInfo;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
/**
* @author:dxfeng
* @createTime: 2023/11/20
* @version: 1.0
*/
public class CreatRckApplicantExpand extends AbstractModeExpandJavaCodeNew {
@Override
public Map<String, String> doModeExpand(Map<String, Object> param) {
Map<String, String> result = new HashMap<>();
try {
int billId;
int modeId;
RequestInfo requestInfo = (RequestInfo) param.get("RequestInfo");
if (requestInfo != null) {
User user = (User) param.get("user");
billId = Util.getIntValue(requestInfo.getRequestid());
modeId = Util.getIntValue(requestInfo.getWorkflowid());
if (billId > 0 && modeId > 0) {
String rcId = Util.null2String(param.get("rcid"));
String ypzw = Util.null2String(param.get("ypzw"));
if (StringUtils.isBlank(ypzw)) {
throw new CustomizeRunTimeException("请选择应聘职位");
}
RecordSet rs = new RecordSet();
rs.executeQuery("select * from uf_jcl_rck where id = ? ", rcId);
Map<String, Object> mainDataMap = RecruitRecordSet.getSingleRecordMap(rs);
String xm = Util.null2String(mainDataMap.get("xm"));
String sjhm = Util.null2String(mainDataMap.get("sjhm"));
// 职位重复校验
List<Map<String, Object>> repeatPositionResumeList = CheckRepeatResume.getRepeatPositionResumeList(xm, sjhm, ypzw);
if (CollectionUtils.isNotEmpty(repeatPositionResumeList)) {
throw new CustomizeRunTimeException("该人员已有相同的应聘中的职位");
}
Map<String, Object> insertDataMap = buildInsertMap(user, ypzw, mainDataMap);
String uuid = UUID.randomUUID().toString();
insertDataMap.put("modeuuid", uuid);
int formModeId = -1;
rs.executeQuery("select id from modeinfo where formid =( select id from workflow_bill where tablename = 'uf_jcl_yppc' )");
if (rs.next()) {
formModeId = rs.getInt("id");
}
insertDataMap.put("formmodeid", formModeId);
insertDataMap.put("id", billId);
RecruitRecordSet.updateDataById(insertDataMap, "uf_jcl_yppc");
int pcId = RecruitRecordSet.refreshRight(uuid, "uf_jcl_yppc", formModeId, user.getUID());
// 创建明细表数据
rs.executeUpdate("insert into uf_jcl_yppc_dt1 (mainid,xxmc,xl,zy,kssj,jssj) select ?,xxmc,xl,zy,kssj,jssj from uf_jcl_rck_dt1 where mainid = ?", pcId, rcId);
rs.executeUpdate("insert into uf_jcl_yppc_dt2 (mainid,gsmc,kssj,jssj,gw,sqyxk,lzyy,gzzz) select ?,gsmc,kssj,jssj,gw,sqyxk,lzyy,gzzz from uf_jcl_rck_dt2 where mainid = ?", pcId, rcId);
rs.executeUpdate("insert into uf_jcl_yppc_dt3 (mainid,xmmc,kssj,jssj,drjs,xmms) select ?,xmmc,kssj,jssj,drjs,xmms from uf_jcl_rck_dt3 where mainid = ?", pcId, rcId);
rs.executeUpdate("insert into uf_jcl_yppc_dt4 (mainid,yylx,zwcd) select ?,yylx,zwcd from uf_jcl_rck_dt4 where mainid = ?", pcId, rcId);
}
}
} catch (Exception e) {
result.put("errmsg", "自定义出错信息");
result.put("flag", "false");
}
return result;
}
private Map<String, Object> buildInsertMap(User user, String ypzw, Map<String, Object> mainDataMap) {
String zt = ApplicationStatusEnum.DISTRIBUTION.getValue();
Map<String, Object> insertDataMap = new RecruitDataMap<>();
insertDataMap.put("sfz", mainDataMap.get("sfz"));
insertDataMap.put("jlzp", mainDataMap.get("jlzp"));
insertDataMap.put("ysjl", mainDataMap.get("ysjl"));
insertDataMap.put("jlly", mainDataMap.get("jlly"));
insertDataMap.put("xm", mainDataMap.get("xm"));
insertDataMap.put("xb", mainDataMap.get("xb"));
insertDataMap.put("sjhm", mainDataMap.get("sjhm"));
insertDataMap.put("dzyx", mainDataMap.get("dzyx"));
insertDataMap.put("csrq", mainDataMap.get("csrq"));
insertDataMap.put("nl", mainDataMap.get("nl"));
insertDataMap.put("zgxl", mainDataMap.get("zgxl"));
insertDataMap.put("zgxw", mainDataMap.get("zgxw"));
insertDataMap.put("byyx", mainDataMap.get("byyx"));
insertDataMap.put("zy", mainDataMap.get("zy"));
insertDataMap.put("hyzk", mainDataMap.get("hyzk"));
insertDataMap.put("gzjy", mainDataMap.get("gzjy"));
insertDataMap.put("zzzt", mainDataMap.get("zzzt"));
insertDataMap.put("dqszd", mainDataMap.get("dqszd"));
insertDataMap.put("tdsj", DateUtil.getDateTime());
insertDataMap.put("cjr", user.getUID());
insertDataMap.put("zwpj", mainDataMap.get("zwpj"));
insertDataMap.put("mz", mainDataMap.get("mz"));
insertDataMap.put("jg", mainDataMap.get("jg"));
insertDataMap.put("zzmm", mainDataMap.get("zzmm"));
insertDataMap.put("sgcm", mainDataMap.get("sgcm"));
insertDataMap.put("tzkg", mainDataMap.get("tzkg"));
insertDataMap.put("ypzw", ypzw);
String flowId = PositionCommonInfo.getRecruitFlowId(ypzw);
Map<String, String> initialStage = ApplicantCommonInfo.getInitialStage(flowId);
if (null != initialStage) {
String zpjd = initialStage.get("zpjd");
String dqypjd = initialStage.get("jdlx");
if (StringUtils.isNotBlank(zpjd) && StringUtils.isNotBlank(dqypjd)) {
insertDataMap.put("zplc", flowId);
insertDataMap.put("zpjd", zpjd);
insertDataMap.put("dqypjd", dqypjd);
zt = ApplicationStatusEnum.CANDIDATE.getValue();
}
}
insertDataMap.put("zt", zt);
return insertDataMap;
}
}

View File

@ -0,0 +1,52 @@
package weaver.formmode.recruit.modeexpand.entrymanager;
import com.engine.common.util.ServiceUtil;
import com.engine.recruit.service.impl.ApplicantResumeServiceImpl;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.soa.workflow.request.RequestInfo;
import java.util.HashMap;
import java.util.Map;
/**
* @author:dxfeng
* @createTime: 2023/11/20
* @version: 1.0
*/
public class AddEntryModeExpand extends AbstractModeExpandJavaCodeNew {
@Override
public Map<String, String> doModeExpand(Map<String, Object> param) {
Map<String, String> result = new HashMap<>();
try {
int billId;
int modeId;
RequestInfo requestInfo = (RequestInfo) param.get("RequestInfo");
if (requestInfo != null) {
User user = (User) param.get("user");
billId = Util.getIntValue(requestInfo.getRequestid());
modeId = Util.getIntValue(requestInfo.getWorkflowid());
if (billId > 0 && modeId > 0) {
String pcId = Util.null2String(param.get("pcid"));
String offerId = Util.null2String(param.get("offerid"));
if (StringUtils.isNotBlank(pcId)) {
// 归档人才库归档原因待入职
ServiceUtil.getService(ApplicantResumeServiceImpl.class, user).archiveTalentPool(pcId, false, "13");
}
if (StringUtils.isNotBlank(offerId)) {
// 是否待入职字段为是
RecordSet rs = new RecordSet();
rs.executeUpdate("update uf_jcl_offer set sfzdrz = 1 where id = ? ", offerId);
}
}
}
} catch (Exception e) {
result.put("errmsg", "自定义出错信息");
result.put("flag", "false");
}
return result;
}
}

View File

@ -84,7 +84,7 @@ public class CreateOfferModeExpand extends AbstractModeExpandJavaCodeNew {
}
// 更新状态为已发送,更新通知内容更新发送人发送时间
RecordSet rs = new RecordSet();
rs.executeUpdate("update uf_jcl_offer set zt = 1,tznr = ?,fsr=?,fssj=? where id = ? ", tznr, user.getUID(), DateUtil.getDateTime(), billId);
rs.executeUpdate("update uf_jcl_offer set zt = 1,tznr = ?,fsr=?,fssj=? where id = ? ", msgContent, user.getUID(), DateUtil.getDateTime(), billId);
}
}
} catch (Exception e) {

View File

@ -74,7 +74,7 @@ public class ExtractQllResumeThread extends Thread {
String flowId = PositionCommonInfo.getRecruitFlowId(ypzw);
Map<String, String> initialStage = ApplicantCommonInfo.getInitialStage(flowId);
if (null != initialStage) {
String zpjd = initialStage.get("id");
String zpjd = initialStage.get("zpjd");
String dqypjd = initialStage.get("jdlx");
if (StringUtils.isNotBlank(zpjd) && StringUtils.isNotBlank(dqypjd)) {
insertMap.put("ypzw", ypzw);