应聘者列表卡片改造,暂存

This commit is contained in:
dxfeng 2024-08-09 11:11:47 +08:00
parent 39c0a582cd
commit fc01647ef0
8 changed files with 291 additions and 6 deletions

View File

@ -5,6 +5,8 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @author:dxfeng
* @createTime: 2024/08/01
@ -18,4 +20,5 @@ public class RecruitProcess {
private String title;
private String value;
private String icon;
private Date createDateTime;
}

View File

@ -0,0 +1,9 @@
package com.engine.recruit.entity.card.process;
/**
* @author:dxfeng
* @createTime: 2024/08/07
* @version: 1.0
*/
public class BackProcess {
}

View File

@ -0,0 +1,14 @@
package com.engine.recruit.entity.card.process;
/**
* @author:dxfeng
* @createTime: 2024/08/07
* @version: 1.0
*/
public class InterviewProcess {
public static final String ICON_NAME = "written.png";
public static final String TITLE = "最近笔试";
}

View File

@ -0,0 +1,9 @@
package com.engine.recruit.entity.card.process;
/**
* @author:dxfeng
* @createTime: 2024/08/07
* @version: 1.0
*/
public class OfferProcess {
}

View File

@ -0,0 +1,9 @@
package com.engine.recruit.entity.card.process;
/**
* @author:dxfeng
* @createTime: 2024/08/07
* @version: 1.0
*/
public class SalaryProcess {
}

View File

@ -0,0 +1,67 @@
package com.engine.recruit.entity.card.process;
import org.apache.commons.lang3.StringUtils;
import weaver.general.BaseBean;
import weaver.hrm.resource.ResourceComInfo;
/**
* @author:dxfeng
* @createTime: 2024/08/07
* @version: 1.0
*/
public class ScreenProcess {
private String zt;
private String jg;
private String fkr;
public static final String ICON_NAME = "screen.png";
public static final String TITLE = "最近筛选结果";
public String getZt() {
if("1".equals(zt)){
return "已反馈";
}
return "待反馈";
}
public void setZt(String zt) {
this.zt = zt;
}
public String getJg() {
if ("0".equals(jg)) {
return "通过";
} else if ("1".equals(jg)) {
return "不通过";
}
return "待定";
}
public void setJg(String jg) {
this.jg = jg;
}
public String getFkr() {
try {
String lastnames = new ResourceComInfo().getLastnames(fkr);
if (StringUtils.isNotBlank(lastnames)) {
return "反馈人:" + lastnames;
}
} catch (Exception e) {
new BaseBean().writeLog("人员姓名转换失败", e);
}
return "";
}
public void setFkr(String fkr) {
this.fkr = fkr;
}
@Override
public String toString() {
if ("1".equals(zt)) {
return getJg() + "(" + getFkr() + ")";
}
return getZt() + "(" + getFkr() + ")";
}
}

View File

@ -0,0 +1,54 @@
package com.engine.recruit.entity.card.process;
import org.apache.commons.lang3.StringUtils;
/**
* @author:dxfeng
* @createTime: 2024/08/07
* @version: 1.0
*/
public class WrittenProcess {
private String bsmc;
private String bscj;
private String bsjg;
public static final String ICON_NAME = "written.png";
public static final String TITLE = "最近笔试";
public String getBsmc() {
return bsmc;
}
public void setBsmc(String bsmc) {
this.bsmc = bsmc;
}
public String getBscj() {
return bscj;
}
public void setBscj(String bscj) {
this.bscj = bscj;
}
public String getBsjg() {
if ("0".equals(bsjg)) {
return "通过";
} else if ("1".equals(bsjg)) {
return "不通过";
}
return "待定";
}
public void setBsjg(String bsjg) {
this.bsjg = bsjg;
}
@Override
public String toString() {
if (StringUtils.isBlank(bscj) || StringUtils.isBlank(bsjg)) {
return getBsmc() + " 暂无得分结果";
}
return getBsmc() + " " + getBscj() + "" + getBsjg();
}
}

View File

@ -2,10 +2,9 @@ package com.engine.recruit.service.impl;
import com.engine.core.impl.Service;
import com.engine.recruit.conn.*;
import com.engine.recruit.entity.card.EduInfo;
import com.engine.recruit.entity.card.ResumeCardInfo;
import com.engine.recruit.entity.card.Tags;
import com.engine.recruit.entity.card.WorkInfo;
import com.engine.recruit.entity.card.*;
import com.engine.recruit.entity.card.process.ScreenProcess;
import com.engine.recruit.entity.card.process.WrittenProcess;
import com.engine.recruit.entity.record.ApplicantRecordPo;
import com.engine.recruit.enums.ApplicantOperateEnum;
import com.engine.recruit.enums.ApplicationStatusEnum;
@ -390,7 +389,6 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu
// 基本信息构建
resumeCardInfo.setId(map.getInt("id"));
resumeCardInfo.setLastName(map.getString("xm"));
// TODO 照片处理
String jlzp = map.getString("jlzp");
if (StringUtils.isNotBlank(jlzp)) {
try {
@ -458,7 +456,20 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu
resumeCardInfo.setWorkInfo(workInfoList);
// 招聘过程
resumeCardInfo.setRecruitProcess(new ArrayList<>());
List<RecruitProcess> recruitProcessList = new ArrayList<>();
// 若未发起反馈则不展示若有且均为待反馈的则显示待反馈反馈人若存在已反馈记录的则显示反馈结果反馈人取最新反馈的结果若存在多条则取最新的创建时间
buildScreenProcess(id, rs, recruitProcessList);
// 最近笔试若未发起则不显示若有记录但是无分数和结果的显示暂无得分结果若有结果则显示得分结果若存在多条则显示最新的数据若存在多条则取最新的笔试时间
buildWrittenProcess(id, rs, recruitProcessList);
// 最近面试若未发起则不显示若有记录但是是待面试显示面试时间待面试面试官若有结果则显示面试时间结果面试官若存在多条则显示最新的数据若存在多条则取最新的面试时间
buildInterviewProcess(id, rs, recruitProcessList);
// 最近背调若未发起则不显示若有记录但是无结果的显示暂无背调结果若有结果则显示背调日期结果若存在多条则显示最新的数据若存在多条则取最新的背调时间
buildBackProcess(id, rs, recruitProcessList);
// 最近薪酬谈判若未发起则不显示若有记录但是无结果的显示暂无薪酬谈判结果若有结果则显示谈判日期结果若存在多条则显示最新的数据若存在多条则取最新的谈判时间
buildSalaryProcess(id, rs, recruitProcessList);
// offer状态若未产生数据则不显示若有数据了则显示offer状态若反馈时间有数值则显示没数值则不现实
buildOfferProcess(id, rs, recruitProcessList);
resumeCardInfo.setRecruitProcess(recruitProcessList);
resumeCardInfos.add(resumeCardInfo);
@ -479,6 +490,115 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu
return null;
}
/**
* 若未发起反馈则不展示若有且均为待反馈的则显示待反馈反馈人若存在已反馈记录的则显示反馈结果反馈人取最新反馈的结果若存在多条则取最新的创建时间
*
* @param id
* @param rs
* @param recruitProcessList
*/
private void buildScreenProcess(String id, RecordSet rs, List<RecruitProcess> recruitProcessList) {
rs.executeQuery("select zt,fkr,jg,modedatacreatedate,modedatacreatetime from uf_jcl_bmsxfk where ypz = ? order by modedatacreatedate desc,modedatacreatetime desc", id);
if (rs.next()) {
// 状态
String zt = rs.getString("zt");
// 反馈人
String fkr = rs.getString("fkr");
// 结果
String jg = rs.getString("jg");
String date = rs.getString("modedatacreatedate");
String time = rs.getString("modedatacreatetime");
ScreenProcess screenProcess = new ScreenProcess();
screenProcess.setZt(zt);
screenProcess.setFkr(fkr);
screenProcess.setJg(jg);
RecruitProcess process = new RecruitProcess();
process.setTitle(ScreenProcess.TITLE);
process.setIcon(ScreenProcess.ICON_NAME);
process.setValue(screenProcess.toString());
process.setCreateDateTime(DateUtil.parseToDateTime(date + " " + time));
recruitProcessList.add(process);
}
}
/**
* 最近笔试若未发起则不显示若有记录但是无分数和结果的显示暂无得分结果若有结果则显示得分结果若存在多条则显示最新的数据若存在多条则取最新的笔试时间
* @param id
* @param rs
* @param recruitProcessList
*/
private void buildWrittenProcess(String id, RecordSet rs, List<RecruitProcess> recruitProcessList) {
rs.executeQuery("select bsmc ,bscj ,bsjg ,modedatacreatedate ,modedatacreatetime from uf_jcl_bs where ypz = ? order by bssj desc", id);
if (rs.next()) {
// 笔试名称
String bsmc = rs.getString("bsmc");
// 笔试成绩
String bscj = rs.getString("bscj");
// 笔试结果
String bsjg = rs.getString("bsjg");
String date = rs.getString("modedatacreatedate");
String time = rs.getString("modedatacreatetime");
WrittenProcess writtenProcess = new WrittenProcess();
writtenProcess.setBsmc(bsmc);
writtenProcess.setBscj(bscj);
writtenProcess.setBsjg(bsjg);
RecruitProcess process = new RecruitProcess();
process.setTitle(WrittenProcess.TITLE);
process.setIcon(WrittenProcess.ICON_NAME);
process.setValue(writtenProcess.toString());
process.setCreateDateTime(DateUtil.parseToDateTime(date + " " + time));
recruitProcessList.add(process);
}
}
/**
* 最近面试若未发起则不显示若有记录但是是待面试显示面试时间待面试面试官若有结果则显示面试时间结果面试官若存在多条则显示最新的数据若存在多条则取最新的面试时间
* @param id
* @param rs
* @param recruitProcessList
*/
private void buildInterviewProcess(String id, RecordSet rs, List<RecruitProcess> recruitProcessList) {
rs.executeQuery("select bsmc ,bscj ,bsjg ,modedatacreatedate ,modedatacreatetime from uf_jcl_bs where ypz = ? order by bssj desc", id);
if (rs.next()) {
// 笔试名称
String bsmc = rs.getString("bsmc");
// 笔试成绩
String bscj = rs.getString("bscj");
// 笔试结果
String bsjg = rs.getString("bsjg");
String date = rs.getString("modedatacreatedate");
String time = rs.getString("modedatacreatetime");
WrittenProcess writtenProcess = new WrittenProcess();
writtenProcess.setBsmc(bsmc);
writtenProcess.setBscj(bscj);
writtenProcess.setBsjg(bsjg);
RecruitProcess process = new RecruitProcess();
process.setTitle(WrittenProcess.TITLE);
process.setIcon(WrittenProcess.ICON_NAME);
process.setValue(writtenProcess.toString());
process.setCreateDateTime(DateUtil.parseToDateTime(date + " " + time));
recruitProcessList.add(process);
}
}
private void buildBackProcess(String id, RecordSet rs, List<RecruitProcess> recruitProcessList) {
}
private void buildSalaryProcess(String id, RecordSet rs, List<RecruitProcess> recruitProcessList) {
}
private void buildOfferProcess(String id, RecordSet rs, List<RecruitProcess> recruitProcessList) {
}
/**
* 构建普通数据格式
*