diff --git a/src/com/engine/recruit/entity/card/process/BackProcess.java b/src/com/engine/recruit/entity/card/process/BackProcess.java index 73c6849..ce3104d 100644 --- a/src/com/engine/recruit/entity/card/process/BackProcess.java +++ b/src/com/engine/recruit/entity/card/process/BackProcess.java @@ -1,9 +1,46 @@ package com.engine.recruit.entity.card.process; +import org.apache.commons.lang3.StringUtils; + /** * @author:dxfeng * @createTime: 2024/08/07 * @version: 1.0 */ public class BackProcess { + public static final String ICON_NAME = "back.png"; + public static final String TITLE = "最近背调"; + + private String dcrq; + private String dcjg; + + public String getDcrq() { + return dcrq; + } + + public void setDcrq(String dcrq) { + this.dcrq = dcrq; + } + + public String getDcjg() { + if ("0".equals(dcjg)) { + return "通过"; + } else if ("1".equals(dcjg)) { + return "不通过"; + } + return "待定"; + } + + public void setDcjg(String dcjg) { + this.dcjg = dcjg; + } + + @Override + public String toString() { + if (StringUtils.isBlank(dcjg)) { + return "暂无背调结果"; + } else { + return getDcrq() + " " + getDcjg(); + } + } } diff --git a/src/com/engine/recruit/entity/card/process/InterviewProcess.java b/src/com/engine/recruit/entity/card/process/InterviewProcess.java index 22d1714..62f8f9b 100644 --- a/src/com/engine/recruit/entity/card/process/InterviewProcess.java +++ b/src/com/engine/recruit/entity/card/process/InterviewProcess.java @@ -1,14 +1,96 @@ 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 InterviewProcess { - public static final String ICON_NAME = "written.png"; - public static final String TITLE = "最近笔试"; + public static final String ICON_NAME = "interview.png"; + public static final String TITLE = "最近面试"; + + private String zt; + private String msrq; + private String msg; + private String ptmsg; + private String jg; + public String getZt() { + if ("0".equals(zt)) { + return "待面试"; + } else if ("1".equals(zt)) { + return "已反馈"; + } + return "已取消"; + } + public void setZt(String zt) { + this.zt = zt; + } + + public String getMsrq() { + return msrq; + } + + public void setMsrq(String msrq) { + this.msrq = msrq; + } + + public String getMsg() { + try { + String lastnames = new ResourceComInfo().getLastnames(msg); + if (StringUtils.isNotBlank(lastnames)) { + return "面试官:" + lastnames; + } + } catch (Exception e) { + new BaseBean().writeLog("人员姓名转换失败", e); + } + return ""; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public String getPtmsg() { + try { + String lastnames = new ResourceComInfo().getLastnames(ptmsg); + if (StringUtils.isNotBlank(lastnames)) { + return "陪同面试官:" + lastnames; + } + } catch (Exception e) { + new BaseBean().writeLog("人员姓名转换失败", e); + } + return ""; + } + + public void setPtmsg(String ptmsg) { + this.ptmsg = ptmsg; + } + + public String getJg() { + if ("0".equals(jg)) { + return "通过"; + } else if ("1".equals(jg)) { + return "不通过"; + } + return "待定"; + } + + public void setJg(String jg) { + this.jg = jg; + } + + @Override + public String toString() { + if ("0".equals(zt)) { + return getMsrq() + " " + getZt() + " (" + getMsg() + ")"; + } + return getMsrq() + " " + getJg() + " (" + getMsg() + ")"; + } } diff --git a/src/com/engine/recruit/entity/card/process/OfferProcess.java b/src/com/engine/recruit/entity/card/process/OfferProcess.java index 19fab8c..9819875 100644 --- a/src/com/engine/recruit/entity/card/process/OfferProcess.java +++ b/src/com/engine/recruit/entity/card/process/OfferProcess.java @@ -1,9 +1,59 @@ package com.engine.recruit.entity.card.process; +import org.apache.commons.lang3.StringUtils; + /** * @author:dxfeng * @createTime: 2024/08/07 * @version: 1.0 */ public class OfferProcess { + public static final String ICON_NAME = "offer.png"; + public static final String TITLE = "offer状态"; + + private String zt; + private String fksj; + + public String getZt() { + String ztStr = ""; + if (StringUtils.isNotBlank(zt)) { + switch (zt) { + case "0": + ztStr = "未发送"; + break; + case "1": + ztStr = "已发送待反馈"; + break; + case "2": + ztStr = "已拒绝"; + break; + case "3": + ztStr = "已接受"; + break; + case "5": + ztStr = "逾期未回复"; + break; + default: + break; + } + } + return ztStr; + } + + public void setZt(String zt) { + this.zt = zt; + } + + public String getFksj() { + return fksj; + } + + public void setFksj(String fksj) { + this.fksj = fksj; + } + + @Override + public String toString() { + return getZt() + " " + getFksj(); + } } diff --git a/src/com/engine/recruit/entity/card/process/SalaryProcess.java b/src/com/engine/recruit/entity/card/process/SalaryProcess.java index fc41a67..69da6e4 100644 --- a/src/com/engine/recruit/entity/card/process/SalaryProcess.java +++ b/src/com/engine/recruit/entity/card/process/SalaryProcess.java @@ -1,9 +1,46 @@ package com.engine.recruit.entity.card.process; +import org.apache.commons.lang3.StringUtils; + /** * @author:dxfeng * @createTime: 2024/08/07 * @version: 1.0 */ public class SalaryProcess { + public static final String ICON_NAME = "salray.png"; + public static final String TITLE = "最近薪酬谈判"; + + private String tpsj; + private String tpjg; + + public String getTpsj() { + return tpsj; + } + + public void setTpsj(String tpsj) { + this.tpsj = tpsj; + } + + public String getTpjg() { + if ("0".equals(tpjg)) { + return "成功"; + } else if ("1".equals(tpjg)) { + return "失败"; + } + return "待定"; + } + + public void setTpjg(String tpjg) { + this.tpjg = tpjg; + } + + @Override + public String toString() { + if (StringUtils.isBlank(tpjg)) { + return "暂无薪酬谈判结果"; + } else { + return getTpsj() + " " + getTpjg(); + } + } } diff --git a/src/com/engine/recruit/service/impl/ApplicantResumeServiceImpl.java b/src/com/engine/recruit/service/impl/ApplicantResumeServiceImpl.java index a900b3c..dafcf7c 100644 --- a/src/com/engine/recruit/service/impl/ApplicantResumeServiceImpl.java +++ b/src/com/engine/recruit/service/impl/ApplicantResumeServiceImpl.java @@ -3,8 +3,7 @@ package com.engine.recruit.service.impl; import com.engine.core.impl.Service; import com.engine.recruit.conn.*; 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.card.process.*; import com.engine.recruit.entity.record.ApplicantRecordPo; import com.engine.recruit.enums.ApplicantOperateEnum; import com.engine.recruit.enums.ApplicationStatusEnum; @@ -24,6 +23,7 @@ import weaver.hrm.resource.ResourceComInfo; import java.io.InputStream; import java.util.*; +import java.util.stream.Collectors; /** * @author:dxfeng @@ -469,6 +469,8 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu buildSalaryProcess(id, rs, recruitProcessList); // offer状态:若未产生数据则不显示,若有数据了,则显示offer状态,若反馈时间有数值,则显示,没数值则不现实 buildOfferProcess(id, rs, recruitProcessList); + + recruitProcessList = recruitProcessList.stream().sorted(Comparator.comparing(RecruitProcess::getCreateDateTime)).collect(Collectors.toList()); resumeCardInfo.setRecruitProcess(recruitProcessList); @@ -524,6 +526,7 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu /** * 最近笔试:若未发起,则不显示,若有记录但是无分数和结果的,显示“暂无得分结果”;若有结果则显示“得分、结果”;若存在多条,则显示最新的数据;若存在多条则取最新的【笔试时间】 + * * @param id * @param rs * @param recruitProcessList @@ -556,47 +559,133 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu /** * 最近面试:若未发起,则不显示,若有记录但是是“待面试”,显示“面试时间、待面试、面试官”;若有结果则显示“面试时间、结果、面试官”;若存在多条,则显示最新的数据;若存在多条则取最新的【面试时间】 + * * @param id * @param rs * @param recruitProcessList */ private void buildInterviewProcess(String id, RecordSet rs, List recruitProcessList) { - rs.executeQuery("select bsmc ,bscj ,bsjg ,modedatacreatedate ,modedatacreatetime from uf_jcl_bs where ypz = ? order by bssj desc", id); + rs.executeQuery("select zt, msrq, msg, ptmsg, jg, modedatacreatedate, modedatacreatetime from uf_jcl_ms where ypz = ? order by msrq desc", id); if (rs.next()) { - // 笔试名称 - String bsmc = rs.getString("bsmc"); - // 笔试成绩 - String bscj = rs.getString("bscj"); - // 笔试结果 - String bsjg = rs.getString("bsjg"); + // 面试状态 + String zt = rs.getString("zt"); + // 面试日期 + String msrq = rs.getString("msrq"); + // 面试官 + String msg = rs.getString("msg"); + // 陪同面试官 + String ptmsg = rs.getString("ptmsg"); + // 结果 + String jg = rs.getString("jg"); String date = rs.getString("modedatacreatedate"); String time = rs.getString("modedatacreatetime"); - WrittenProcess writtenProcess = new WrittenProcess(); - writtenProcess.setBsmc(bsmc); - writtenProcess.setBscj(bscj); - writtenProcess.setBsjg(bsjg); + InterviewProcess interviewProcess = new InterviewProcess(); + interviewProcess.setZt(zt); + interviewProcess.setMsrq(msrq); + interviewProcess.setMsg(msg); + interviewProcess.setPtmsg(ptmsg); + interviewProcess.setJg(jg); RecruitProcess process = new RecruitProcess(); - process.setTitle(WrittenProcess.TITLE); - process.setIcon(WrittenProcess.ICON_NAME); - process.setValue(writtenProcess.toString()); + process.setTitle(InterviewProcess.TITLE); + process.setIcon(InterviewProcess.ICON_NAME); + process.setValue(interviewProcess.toString()); process.setCreateDateTime(DateUtil.parseToDateTime(date + " " + time)); recruitProcessList.add(process); } } - + /** + * 最近背调:若未发起,则不显示,若有记录但是无结果的,显示“暂无背调结果”;若有结果则显示“背调日期,结果”;若存在多条,则显示最新的数据;若存在多条则取最新的【背调时间】 + * + * @param id + * @param rs + * @param recruitProcessList + */ private void buildBackProcess(String id, RecordSet rs, List recruitProcessList) { + rs.executeQuery("select dcrq, dcjg, modedatacreatedate, modedatacreatetime from uf_jcl_bd where ypz = ? order by dcrq desc", id); + if (rs.next()) { + // 调查日期 + String dcrq = rs.getString("dcrq"); + // 调查结果 + String dcjg = rs.getString("dcjg"); + String date = rs.getString("modedatacreatedate"); + String time = rs.getString("modedatacreatetime"); + + BackProcess backProcess = new BackProcess(); + backProcess.setDcjg(dcjg); + backProcess.setDcrq(dcrq); + + RecruitProcess process = new RecruitProcess(); + process.setTitle(BackProcess.TITLE); + process.setIcon(BackProcess.ICON_NAME); + process.setValue(backProcess.toString()); + process.setCreateDateTime(DateUtil.parseToDateTime(date + " " + time)); + recruitProcessList.add(process); + } } + /** + * 最近薪酬谈判:若未发起,则不显示,若有记录但是无结果的,显示“暂无薪酬谈判结果”;若有结果则显示“谈判日期,结果”;若存在多条,则显示最新的数据;若存在多条则取最新的【谈判时间】 + * @param id + * @param rs + * @param recruitProcessList + */ private void buildSalaryProcess(String id, RecordSet rs, List recruitProcessList) { + rs.executeQuery("select tpsj, tpjg, modedatacreatedate, modedatacreatetime from uf_jcl_xctp where ypz = ? order by tpsj desc", id); + if (rs.next()) { + // 谈判时间 + String tpsj = rs.getString("tpsj"); + // 谈判结果 + String tpjg = rs.getString("tpjg"); + String date = rs.getString("modedatacreatedate"); + String time = rs.getString("modedatacreatetime"); + + SalaryProcess salaryProcess = new SalaryProcess(); + salaryProcess.setTpjg(tpjg); + salaryProcess.setTpsj(tpsj); + + RecruitProcess process = new RecruitProcess(); + process.setTitle(SalaryProcess.TITLE); + process.setIcon(SalaryProcess.ICON_NAME); + process.setValue(salaryProcess.toString()); + process.setCreateDateTime(DateUtil.parseToDateTime(date + " " + time)); + recruitProcessList.add(process); + } } + /** + * offer状态:若未产生数据则不显示,若有数据了,则显示offer状态,若反馈时间有数值,则显示,没数值则不现实 + * @param id + * @param rs + * @param recruitProcessList + */ private void buildOfferProcess(String id, RecordSet rs, List recruitProcessList) { + rs.executeQuery("select zt, fksj, modedatacreatedate, modedatacreatetime from uf_jcl_offer where xm = ? order by modedatacreatedate desc,modedatacreatetime desc", id); + if (rs.next()) { + // offer状态 + String zt = rs.getString("zt"); + // 反馈时间 + String fksj = rs.getString("fksj"); + String date = rs.getString("modedatacreatedate"); + String time = rs.getString("modedatacreatetime"); + + OfferProcess offerProcess = new OfferProcess(); + offerProcess.setFksj(fksj); + offerProcess.setZt(zt); + + + RecruitProcess process = new RecruitProcess(); + process.setTitle(OfferProcess.TITLE); + process.setIcon(OfferProcess.ICON_NAME); + process.setValue(offerProcess.toString()); + process.setCreateDateTime(DateUtil.parseToDateTime(date + " " + time)); + recruitProcessList.add(process); + } } /**