分配职位、归档人才库接口开发

This commit is contained in:
dxfeng 2023-10-18 18:32:15 +08:00
parent 59f7fe1125
commit d2ee88918f
2 changed files with 231 additions and 9 deletions

View File

@ -12,7 +12,10 @@ public enum ApplicantOperateEnum {
*/
ELIMINATE("eliminate", "淘汰"),
REFERRAL("referral", "转推其他职位"),
TRANSFER("transfer", "转移阶段");
TRANSFER("transfer", "转移阶段"),
ASSIGN("assign", "分配职位"),
ARCHIVE("archive", "归档人才库"),
;
ApplicantOperateEnum(String operateType, String operateDesc) {
this.operateType = operateType;

View File

@ -6,15 +6,14 @@ import com.engine.recruit.enums.ApplicantOperateEnum;
import com.engine.recruit.enums.ApplicationStatusEnum;
import com.engine.recruit.service.ApplicantResumeService;
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 weaver.hrm.resource.ResourceComInfo;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* @author:dxfeng
@ -148,15 +147,38 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu
String operateType = Util.null2String(params.get("operateType"));
RecordSet rs = new RecordSet();
if (ApplicantOperateEnum.ELIMINATE.getOperateType().equals(operateType)) {
// 淘汰
String ids = Util.null2String(params.get("ids"));
rs.executeUpdate("update uf_jcl_yppc set zt = ? where id in (" + ids + ")", ApplicationStatusEnum.OBSOLETE.getValue());
}
if (ApplicantOperateEnum.TRANSFER.getOperateType().equals(operateType)) {
// TODO
returnMap.put("msg", "操作成功");
} else if (ApplicantOperateEnum.TRANSFER.getOperateType().equals(operateType)) {
// 转移阶段
String dqypjd = Util.null2String(params.get("dqypjd"));
String billid = Util.null2String(params.get("billid"));
// rs.executeUpdate("update uf_jcl_yppc set dqypjd = ? where id = ?", dqypjd, billid);
rs.executeUpdate("update uf_jcl_yppc set zpjd = ? where id = ?", dqypjd, billid);
returnMap.put("msg", "操作成功");
} else if (ApplicantOperateEnum.ASSIGN.getOperateType().equals(operateType)) {
// 分配职位
String billid = Util.null2String(params.get("billid"));
String ypzw = Util.null2String(params.get("ypzw"));
rs.executeUpdate("update uf_jcl_yppc set ypzw = ? where id = ?", ypzw, billid);
returnMap.put("msg", "操作成功");
} else if (ApplicantOperateEnum.ARCHIVE.getOperateType().equals(operateType)) {
// 归档人才库
String gdyy = Util.null2String(params.get("gdyy"));
String gdxxyy = Util.null2String(params.get("gdxxyy"));
String ids = Util.null2String(params.get("ids"));
if (StringUtils.isNotBlank(ids)) {
String[] split = ids.split(",");
for (String id : split) {
rs.executeUpdate("update uf_jcl_yppc set gdyy = ?,gdxxyy = ? where id = ? ", gdyy, gdxxyy, id);
// 建模推送建模
archiveTalentPool(id, false);
}
} else {
returnMap.put("msg", "请至少选择一条数据");
}
}
return returnMap;
}
@ -270,4 +292,201 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu
return browserMap;
}
/**
* 归档人才库
*
* @param applicantId 应聘者ID
* @param joinBlacklist 是否加入黑名单
*/
private void archiveTalentPool(String applicantId, boolean joinBlacklist) {
RecordSet rs = new RecordSet();
String name = "";
String mobile = "";
String talentPoolId = "";
rs.executeQuery("select xm,sjhm from uf_jcl_yppc");
if (rs.next()) {
name = rs.getString("xm");
mobile = rs.getString("sjhm");
}
rs.executeQuery("select id from uf_jcl_rck where xm = ? and sjhm = ?", name, mobile);
if (rs.next()) {
talentPoolId = rs.getString("id");
}
// 推送建模主表数据
String insertSql = "insert into uf_jcl_rck (modeuuid, formmodeid, modedatacreater, modedatacreatedate, modedatacreatetime, modedatamodifier, modedatamodifydatetime, modedatacreatertype," +
"sfz,jlzp,zhypzw,ysjl,jlly,xm,xb,sjhm,dzyx,csrq,nl,zgxl,zgxw,byyx,zy,hyzk,gzjy,zzzt,dqszd,zhtdsj,cjr,zwpj,mz,jg,zzmm,sgcm,tzkg,gdjd,gdyy,gdxxyy,lstdcs,sfjrhmd)" +
" values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
rs.executeQuery("select * from uf_jcl_yppc where id = ?", applicantId);
List<Object> mainDataList = new ArrayList<>();
String uuid = UUID.randomUUID().toString();
mainDataList.add(uuid);
int formModeId = -1;
rs.executeQuery("select id from modeinfo where formid =( select id from workflow_bill where tablename = 'uf_jcl_rck' )");
if (rs.next()) {
formModeId = rs.getInt("id");
}
mainDataList.add(formModeId);
// 构建建模表基本数据
buildBaseFields(mainDataList);
if (rs.next()) {
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("sfz")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("jlzp")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("ypzw")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("ysjl")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("jlly")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("xm")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("xb")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("sjhm")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("dzyx")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("csrq")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("nl")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zgxl")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zgxw")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("byyx")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zy")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("hyzk")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("gzjy")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zzzt")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("dqszd")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("tdsj")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("cjr")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zwpj")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("mz")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("jg")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zzmm")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("sgcm")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("tzkg")));
// 归档阶段
mainDataList.add(null);
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("gdyy")));
mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("gdxxyy")));
}
// 历史投递次数
rs.executeQuery("select count(id) as num from uf_jcl_yppc where xm=? and sjhm =?", rs.getString("xm"), rs.getString("sjhm"));
if (rs.next()) {
mainDataList.add(rs.getInt("num"));
}
// 是否加入黑名单
mainDataList.add(joinBlacklist ? 0 : 1);
rs.executeUpdate(insertSql, mainDataList);
refreshRight(uuid, formModeId, applicantId);
// 删除人才库原来的数据
rs.executeUpdate("delete from uf_jcl_rck where id = ? ", talentPoolId);
}
/**
* 构建建模表基本数据
*
* @param mainDataList 参数集合
*/
private void buildBaseFields(List<Object> mainDataList) {
String dateTime = DateUtil.getFullDate();
String[] dateSplit = dateTime.split(" ");
// modedatacreater
mainDataList.add(user.getUID());
// modedatacreatedate
mainDataList.add(dateSplit[0]);
// modedatacreatetime
mainDataList.add(dateSplit[1]);
// modedatamodifier
mainDataList.add(user.getUID());
// modedatamodifydatetime
mainDataList.add(dateTime);
// modedatacreatertype
mainDataList.add("0");
}
/**
* 权限重构
*
* @param uuid UUID
* @param formModeId 建模ID
* @param applicantId 应聘者ID
*/
private void refreshRight(String uuid, int formModeId, String applicantId) {
RecordSet rs = new RecordSet();
rs.executeQuery("select id from uf_jcl_rck where modeuuid='" + uuid + "'");
if (rs.next()) {
//建模数据的id
int bid = Util.getIntValue(rs.getString("id"));
ModeRightInfo modeRightInfo = new ModeRightInfo();
modeRightInfo.setNewRight(true);
//新建的时候添加共享
modeRightInfo.editModeDataShare(1, formModeId, bid);
// 插入明细表数据
rs.executeQuery("select * from uf_jcl_yppc_dt1 where mainid = ? ", applicantId);
List<List<Object>> insertList = new ArrayList<>();
while (rs.next()) {
List<Object> paramList = new ArrayList<>();
// mainid
paramList.add(bid);
paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("xxmc")));
paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("xl")));
paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zy")));
paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("kssj")));
paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("jssj")));
insertList.add(paramList);
}
for (List<Object> list : insertList) {
rs.executeUpdate("insert into uf_jcl_rck_dt1 (mainid, xxmc, xl, zy, kssj, jssj) values (?, ?, ?, ?, ?, ?)", list);
}
rs.executeQuery("select * from uf_jcl_yppc_dt2 where mainid = ? ", applicantId);
insertList = new ArrayList<>();
while (rs.next()) {
List<Object> paramList = new ArrayList<>();
// mainid
paramList.add(bid);
paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("gsmc")));
paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("kssj")));
paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("jssj")));
paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("gw")));
paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("gzzz")));
paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("sqyxk")));
paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("lzyy")));
insertList.add(paramList);
}
for (List<Object> list : insertList) {
rs.executeUpdate("insert into uf_jcl_rck_dt2 (mainid, gsmc, kssj, jssj, gw, gzzz, sqyxk, lzyy) values (?, ?, ?, ?, ?, ?, ?, ?)", list);
}
rs.executeQuery("select * from uf_jcl_yppc_dt3 where mainid = ? ", applicantId);
insertList = new ArrayList<>();
while (rs.next()) {
List<Object> paramList = new ArrayList<>();
// mainid
paramList.add(bid);
paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("xmmc")));
paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("kssj")));
paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("jssj")));
paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("drjs")));
paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("xmms")));
insertList.add(paramList);
}
for (List<Object> list : insertList) {
rs.executeUpdate("insert into uf_jcl_rck_dt3 (mainid, xmmc, kssj, jssj, drjs, xmms) values (?, ?, ?, ?, ?, ?)", list);
}
rs.executeQuery("select * from uf_jcl_yppc_dt4 where mainid = ? ", applicantId);
insertList = new ArrayList<>();
while (rs.next()) {
List<Object> paramList = new ArrayList<>();
// mainid
paramList.add(bid);
paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("yylx")));
paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zwcd")));
insertList.add(paramList);
}
for (List<Object> list : insertList) {
rs.executeUpdate("insert into uf_jcl_rck_dt4 (mainid, yylx, zwcd) values (?, ?, ?)", list);
}
}
}
}