generated from dxfeng/secondev-chapanda-feishu
ADD-#3189154 应聘者、简历库列表卡片展示
This commit is contained in:
parent
401250be94
commit
ba0a6e6acb
|
|
@ -238,4 +238,19 @@ public class ApplicantCommonInfo {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取ImageField
|
||||
*
|
||||
* @param docId
|
||||
* @return
|
||||
*/
|
||||
public static int getImageFieldByDocId(String docId) {
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select imagefileid from docimagefile where docid = ? ", docId);
|
||||
if (rs.next()) {
|
||||
return rs.getInt("imagefileid");
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,6 +78,17 @@ public class ModeBrowserCommonInfo {
|
|||
return getBrowserId(TYPE_WORK_EXPERIENCE, name);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取学位ID
|
||||
*
|
||||
* @param name
|
||||
* @return
|
||||
*/
|
||||
public static String getDegreeId(String name) {
|
||||
return getBrowserId(TYPE_DEGREE, name);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取学历ID
|
||||
*
|
||||
|
|
@ -97,6 +108,24 @@ public class ModeBrowserCommonInfo {
|
|||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取学历名称
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public static String getEducationLevelById(String id) {
|
||||
if (StringUtils.isBlank(id)) {
|
||||
return null;
|
||||
}
|
||||
String name = null;
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select name from hrmeducationlevel where id = ?", id);
|
||||
if (rs.next()) {
|
||||
name = rs.getString("name");
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static String getBrowserId(String zdlxmc, String xxnr) {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
package com.engine.recruit.conn;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import weaver.general.Util;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
|
|
@ -26,4 +29,32 @@ public class RecruitDataMap<V> extends HashMap<String, V> {
|
|||
// 将键转为小写形式后作为真正的键
|
||||
return super.put(key.toLowerCase(), value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取int类型数据
|
||||
*
|
||||
* @param key
|
||||
* @return
|
||||
*/
|
||||
public Integer getInt(Object key) {
|
||||
if (key instanceof String) {
|
||||
// 将键转为小写形式再进行查找
|
||||
return Convert.toInt(super.get(((String) key).toLowerCase()),null);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取String类型数据
|
||||
*
|
||||
* @param key
|
||||
* @return
|
||||
*/
|
||||
public String getString(Object key) {
|
||||
if (key instanceof String) {
|
||||
// 将键转为小写形式再进行查找
|
||||
return Util.null2String(super.get(((String) key).toLowerCase()));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,12 +25,12 @@ public class RecruitRecordSet {
|
|||
* @param rs RecordSet
|
||||
* @return
|
||||
*/
|
||||
public static Map<String, Object> getSingleRecordMap(RecordSet rs) {
|
||||
Map<String, Object> dataMap = new RecruitDataMap<>();
|
||||
public static RecruitDataMap<Object> getSingleRecordMap(RecordSet rs) {
|
||||
RecruitDataMap<Object> dataMap = new RecruitDataMap<>();
|
||||
if (rs.next()) {
|
||||
String[] columnNames = rs.getColumnName();
|
||||
for (String columnName : columnNames) {
|
||||
dataMap.put(columnName.toLowerCase(), RecruitModeUtil.parseBlankToNull(rs.getString(columnName)));
|
||||
dataMap.put(columnName, RecruitModeUtil.parseBlankToNull(rs.getString(columnName)));
|
||||
}
|
||||
}
|
||||
return dataMap;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ 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;
|
||||
|
|
@ -91,4 +92,31 @@ public class ApplicantResumeController {
|
|||
Map<String, Object> param = ParamUtil.request2Map(request);
|
||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getApplicantResumeWrapper(user)::checkRepeatResume, param);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/getResumeCardInfo")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getResumeCardInfo(@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)::getResumeCardInfo, param);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/getResumeListStatus")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getResumeListStatus(@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(getApplicantResumeWrapper(user)::getResumeListStatus, param);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/updateResumeListStatus")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String updateResumeListStatus(@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)::updateResumeListStatus, param);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,86 @@
|
|||
package com.engine.recruit.entity.card;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.general.BaseBean;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/01
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class EduInfo {
|
||||
private String time;
|
||||
private String start;
|
||||
private String end;
|
||||
private String school;
|
||||
private String professional;
|
||||
|
||||
public void setStart(String start) {
|
||||
this.start = start;
|
||||
}
|
||||
|
||||
public void setEnd(String end) {
|
||||
this.end = end;
|
||||
}
|
||||
|
||||
public String getTime() {
|
||||
String dateTimeStart = formatEduDateTime(start);
|
||||
String dateTimeEnd = formatEduDateTime(end);
|
||||
if (StringUtils.isNotBlank(dateTimeStart) && StringUtils.isNotBlank(dateTimeEnd)) {
|
||||
return dateTimeStart + " - " + dateTimeEnd;
|
||||
}
|
||||
if (StringUtils.isNotBlank(dateTimeStart) && StringUtils.isBlank(dateTimeEnd)) {
|
||||
return dateTimeStart + " - 至今";
|
||||
}
|
||||
return "";
|
||||
|
||||
}
|
||||
|
||||
public void setTime(String time) {
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
public String getSchool() {
|
||||
return school;
|
||||
}
|
||||
|
||||
public void setSchool(String school) {
|
||||
this.school = school;
|
||||
}
|
||||
|
||||
public String getProfessional() {
|
||||
return professional;
|
||||
}
|
||||
|
||||
public void setProfessional(String professional) {
|
||||
this.professional = professional;
|
||||
}
|
||||
|
||||
/**
|
||||
* 日期格式化
|
||||
*
|
||||
* @param dateStr
|
||||
* @return
|
||||
*/
|
||||
private String formatEduDateTime(String dateStr) {
|
||||
if(StringUtils.isBlank(dateStr)){
|
||||
return "";
|
||||
}
|
||||
String dateTime = "";
|
||||
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy.MM");
|
||||
|
||||
try {
|
||||
// 解析输入日期字符串
|
||||
Date date = inputFormat.parse(dateStr);
|
||||
// 格式化为目标格式
|
||||
dateTime = outputFormat.format(date);
|
||||
} catch (Exception e) {
|
||||
new BaseBean().writeLog("教育信息日期格式化失败", e);
|
||||
}
|
||||
return dateTime;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package com.engine.recruit.entity.card;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/01
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class RecruitProcess {
|
||||
private String title;
|
||||
private String value;
|
||||
private String icon;
|
||||
private Date createDateTime;
|
||||
}
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
package com.engine.recruit.entity.card;
|
||||
|
||||
import com.engine.recruit.conn.ModeBrowserCommonInfo;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/01
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class ResumeCardInfo {
|
||||
private Integer id;
|
||||
private String image;
|
||||
private String lastName;
|
||||
private String applicantUrl;
|
||||
private String jobTitle;
|
||||
private String currentStage;
|
||||
private String sex;
|
||||
private String age;
|
||||
private String education;
|
||||
private String workYear;
|
||||
private String submissionTime;
|
||||
private String submissionFrom;
|
||||
private List<Tags> tags;
|
||||
private List<RecruitProcess> recruitProcess;
|
||||
private List<WorkInfo> workInfo;
|
||||
private List<EduInfo> eduInfo;
|
||||
|
||||
public String getSex() {
|
||||
if (StringUtils.isNotBlank(sex)) {
|
||||
if ("0".equals(sex)) {
|
||||
return "男";
|
||||
} else {
|
||||
return "女";
|
||||
}
|
||||
}
|
||||
return sex;
|
||||
}
|
||||
|
||||
public String getAge() {
|
||||
if (StringUtils.isNotBlank(age)) {
|
||||
return age + "岁";
|
||||
}
|
||||
return age;
|
||||
}
|
||||
|
||||
public String getWorkYear() {
|
||||
if (StringUtils.isNotBlank(workYear)) {
|
||||
return "工作" + workYear;
|
||||
}
|
||||
return workYear;
|
||||
}
|
||||
|
||||
public String getEducation() {
|
||||
return ModeBrowserCommonInfo.getEducationLevelById(education);
|
||||
}
|
||||
|
||||
public String getCurrentStage() {
|
||||
String stageStr = "";
|
||||
if (StringUtils.isNotBlank(currentStage)) {
|
||||
switch (currentStage) {
|
||||
case "0":
|
||||
stageStr = "初筛";
|
||||
break;
|
||||
case "1":
|
||||
stageStr = "笔试";
|
||||
break;
|
||||
case "2":
|
||||
stageStr = "面试";
|
||||
break;
|
||||
case "3":
|
||||
stageStr = "测评";
|
||||
break;
|
||||
case "4":
|
||||
stageStr = "薪酬谈判";
|
||||
break;
|
||||
case "5":
|
||||
stageStr = "背调";
|
||||
break;
|
||||
case "6":
|
||||
stageStr = "offer";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
return stageStr;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
package com.engine.recruit.entity.card;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/01
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class Tags {
|
||||
private String color;
|
||||
private String bgColor;
|
||||
private String bdColor;
|
||||
private String title;
|
||||
}
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
package com.engine.recruit.entity.card;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.common.DateUtil;
|
||||
import weaver.general.BaseBean;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.Period;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/01
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class WorkInfo {
|
||||
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
private String start;
|
||||
private String end;
|
||||
private String time;
|
||||
private String company;
|
||||
private String job;
|
||||
|
||||
public void setStart(String start) {
|
||||
this.start = start;
|
||||
}
|
||||
|
||||
public void setEnd(String end) {
|
||||
this.end = end;
|
||||
}
|
||||
|
||||
public String getTime() {
|
||||
if (StringUtils.isBlank(start)) {
|
||||
return "";
|
||||
}
|
||||
if (StringUtils.isBlank(end)) {
|
||||
return getDatePeriod(start, "");
|
||||
}
|
||||
return getDatePeriod(start, end);
|
||||
}
|
||||
|
||||
public void setTime(String time) {
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
public String getCompany() {
|
||||
return company;
|
||||
}
|
||||
|
||||
public void setCompany(String company) {
|
||||
this.company = company;
|
||||
}
|
||||
|
||||
public String getJob() {
|
||||
return job;
|
||||
}
|
||||
|
||||
public void setJob(String job) {
|
||||
this.job = job;
|
||||
}
|
||||
|
||||
|
||||
private String getDatePeriod(String start, String end) {
|
||||
try {
|
||||
String dateStr = start + " ~ " + end;
|
||||
// 解析日期字符串为 LocalDate 对象
|
||||
LocalDate startDate = LocalDate.parse(start, DATE_FORMATTER);
|
||||
if (StringUtils.isBlank(end)) {
|
||||
end = DateUtil.getCurrentDate();
|
||||
dateStr = start + " ~ 至今";
|
||||
}
|
||||
LocalDate endDate = LocalDate.parse(end, DATE_FORMATTER);
|
||||
|
||||
// 计算两个日期之间的 Period 对象
|
||||
Period period = Period.between(startDate, endDate);
|
||||
|
||||
String periodStr = "";
|
||||
// 提取相差的年和月
|
||||
int years = period.getYears();
|
||||
int months = period.getMonths();
|
||||
if (years > 0) {
|
||||
if (months == 0) {
|
||||
periodStr = years + "年";
|
||||
} else {
|
||||
periodStr = years + "年" + months + "个月";
|
||||
}
|
||||
} else {
|
||||
periodStr = months + "个月";
|
||||
}
|
||||
return dateStr + "(" + periodStr + ")";
|
||||
|
||||
} catch (Exception e) {
|
||||
new BaseBean().writeLog("工作信息日期计算失败", e);
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +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 = "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() + ")";
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +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();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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() + ")";
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
@ -70,4 +70,28 @@ public interface ApplicantResumeService {
|
|||
* @return
|
||||
*/
|
||||
Map<String, Object> checkRepeatResume(Map<String, Object> param);
|
||||
|
||||
/**
|
||||
* 获取简历卡片信息
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> getResumeCardInfo(Map<String, Object> param);
|
||||
|
||||
/**
|
||||
* 获取简历列表状态
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
String getResumeListStatus(Map<String, Object> param);
|
||||
|
||||
/**
|
||||
* 更新简历列表状态
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> updateResumeListStatus(Map<String, Object> param);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ package com.engine.recruit.service.impl;
|
|||
import cn.hutool.core.convert.Convert;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.recruit.conn.*;
|
||||
import com.engine.recruit.entity.card.*;
|
||||
import com.engine.recruit.entity.card.process.*;
|
||||
import com.engine.recruit.entity.record.ApplicantRecordPo;
|
||||
import com.engine.recruit.entity.resume.OcrResumePo;
|
||||
import com.engine.recruit.enums.ApplicantOperateEnum;
|
||||
|
|
@ -12,14 +14,18 @@ import com.engine.recruit.exception.CustomizeRunTimeException;
|
|||
import com.engine.recruit.service.ApplicantResumeService;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.util.IOUtils;
|
||||
import weaver.common.DateUtil;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.file.ImageFileManager;
|
||||
import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil;
|
||||
import weaver.formmode.setup.ModeRightInfo;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.resource.ResourceComInfo;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
|
|
@ -340,6 +346,339 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu
|
|||
}
|
||||
return returnMap;
|
||||
}
|
||||
@Override
|
||||
public Map<String, Object> getResumeCardInfo(Map<String, Object> param) {
|
||||
String idsString = Util.null2String(param.get("idsString"));
|
||||
List<ResumeCardInfo> resumeCardInfos = new ArrayList<>();
|
||||
if (StringUtils.isNotBlank(idsString)) {
|
||||
String[] ids = idsString.split(",");
|
||||
for (String id : ids) {
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select id, xm, jlzp, ypzw, xb, nl, zgxl, gzjy, tdsj, jlly, dqypjd from uf_jcl_yppc where id = ?", id);
|
||||
RecruitDataMap<Object> map = RecruitRecordSet.getSingleRecordMap(rs);
|
||||
ResumeCardInfo resumeCardInfo = new ResumeCardInfo();
|
||||
// 基本信息构建
|
||||
resumeCardInfo.setId(map.getInt("id"));
|
||||
resumeCardInfo.setLastName(map.getString("xm"));
|
||||
resumeCardInfo.setCurrentStage(map.getString("dqypjd"));
|
||||
String jlzp = map.getString("jlzp");
|
||||
if (StringUtils.isNotBlank(jlzp)) {
|
||||
try {
|
||||
int imageFieldByDocId = ApplicantCommonInfo.getImageFieldByDocId(jlzp);
|
||||
ImageFileManager manager = new ImageFileManager();
|
||||
manager.getImageFileInfoById(imageFieldByDocId);
|
||||
InputStream inputStream = manager.getInputStream();
|
||||
// 转base64
|
||||
String base64 = Base64.getEncoder().encodeToString(IOUtils.toByteArray(inputStream));
|
||||
resumeCardInfo.setImage("data:image/png;base64," + base64);
|
||||
} catch (Exception e) {
|
||||
rs.writeLog("简历头像转换失败", e);
|
||||
}
|
||||
}else {
|
||||
resumeCardInfo.setImage("/images/recruit/applicant.png");
|
||||
}
|
||||
resumeCardInfo.setJobTitle(ApplicantCommonInfo.getApplicantPosition(map.getString("ypzw")));
|
||||
resumeCardInfo.setSex(map.getString("xb"));
|
||||
resumeCardInfo.setAge(map.getString("nl"));
|
||||
resumeCardInfo.setEducation(map.getString("zgxl"));
|
||||
resumeCardInfo.setWorkYear(ApplicantCommonInfo.getRecruitCommonBrowserValue(map.getString("gzjy")));
|
||||
resumeCardInfo.setSubmissionTime(map.getString("tdsj"));
|
||||
resumeCardInfo.setSubmissionFrom(ApplicantCommonInfo.getRecruitCommonBrowserValue(map.getString("jlly")));
|
||||
// 标签构建
|
||||
List<Tags> tags = new ArrayList<>();
|
||||
List<Map<String, Object>> modeTabs = getModeTabs(id, rs);
|
||||
if (CollectionUtils.isNotEmpty(modeTabs)) {
|
||||
for (Map<String, Object> modeTab : modeTabs) {
|
||||
Tags tag = new Tags();
|
||||
tag.setTitle(Util.null2String(modeTab.get("tabname")));
|
||||
tag.setColor(Util.null2String(modeTab.get("color")));
|
||||
tag.setBgColor(Util.null2String(modeTab.get("bgcolor")));
|
||||
tag.setBdColor(Util.null2String(modeTab.get("bdcolor")));
|
||||
tags.add(tag);
|
||||
}
|
||||
}
|
||||
resumeCardInfo.setTags(tags);
|
||||
|
||||
// 教育经历 默认取最新的一段,若无,则显示“暂无学习经历”
|
||||
List<EduInfo> eduInfoList = new ArrayList<>();
|
||||
rs.executeQuery("select * from uf_jcl_yppc_dt1 where mainid =? order by kssj desc", id);
|
||||
RecruitDataMap<Object> eduInfoMap = RecruitRecordSet.getSingleRecordMap(rs);
|
||||
if (!eduInfoMap.isEmpty()) {
|
||||
EduInfo eduInfo = new EduInfo();
|
||||
String kssj = eduInfoMap.getString("kssj");
|
||||
String jssj = eduInfoMap.getString("jssj");
|
||||
eduInfo.setStart(kssj);
|
||||
eduInfo.setEnd(jssj);
|
||||
eduInfo.setProfessional(eduInfoMap.getString("zy"));
|
||||
eduInfo.setSchool(eduInfoMap.getString("xxmc"));
|
||||
eduInfoList.add(eduInfo);
|
||||
}
|
||||
resumeCardInfo.setEduInfo(eduInfoList);
|
||||
|
||||
// 工作经历 默认取最新的两段,时间倒序,若无,则显示“暂无工作经历”,增加工作时间计算(结束时间-开始时间,显示年月)
|
||||
List<WorkInfo> workInfoList = new ArrayList<>();
|
||||
rs.executeQuery("select * from uf_jcl_yppc_dt2 where mainid =? order by kssj desc", id);
|
||||
while (rs.next() && workInfoList.size() < 2) {
|
||||
WorkInfo workInfo = new WorkInfo();
|
||||
workInfo.setStart(rs.getString("kssj"));
|
||||
workInfo.setEnd(rs.getString("jssj"));
|
||||
workInfo.setCompany(rs.getString("gsmc"));
|
||||
workInfo.setJob(rs.getString("gw"));
|
||||
workInfoList.add(workInfo);
|
||||
}
|
||||
|
||||
resumeCardInfo.setWorkInfo(workInfoList);
|
||||
|
||||
// 招聘过程
|
||||
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);
|
||||
|
||||
recruitProcessList = recruitProcessList.stream().sorted(Comparator.comparing(RecruitProcess::getCreateDateTime)).collect(Collectors.toList());
|
||||
resumeCardInfo.setRecruitProcess(recruitProcessList);
|
||||
|
||||
|
||||
resumeCardInfos.add(resumeCardInfo);
|
||||
}
|
||||
}
|
||||
Map<String, Object> returnMap = new HashMap<>();
|
||||
returnMap.put("resumeCardInfos", resumeCardInfos);
|
||||
return returnMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getResumeListStatus(Map<String, Object> param) {
|
||||
int uid = user.getUID();
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select ypzlb from uf_jcl_recruit where userId = ?", uid);
|
||||
String listType = "0";
|
||||
if (rs.next()) {
|
||||
listType = rs.getString("ypzlb");
|
||||
}
|
||||
return listType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> updateResumeListStatus(Map<String, Object> param) {
|
||||
int uid = user.getUID();
|
||||
String listType = Util.null2String(param.get("listType"));
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select ypzlb from uf_jcl_recruit where userId = ?", uid);
|
||||
if (rs.next()) {
|
||||
rs.executeUpdate("update uf_jcl_recruit set ypzlb = ? where userId = ?", listType, uid);
|
||||
} else {
|
||||
rs.executeUpdate("insert into uf_jcl_recruit (ypzlb,userId) values (?,?)", listType, uid);
|
||||
}
|
||||
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 zt, msrq, msg, ptmsg, jg, modedatacreatedate, modedatacreatetime from uf_jcl_ms where ypz = ? order by msrq desc", id);
|
||||
if (rs.next()) {
|
||||
// 面试状态
|
||||
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");
|
||||
|
||||
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(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<RecruitProcess> 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<RecruitProcess> 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<RecruitProcess> 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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建普通数据格式
|
||||
|
|
@ -667,4 +1006,24 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu
|
|||
insertMap.put("zt", zt);
|
||||
return insertMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取标签信息
|
||||
*
|
||||
* @param applicantId
|
||||
* @return
|
||||
*/
|
||||
private static List<Map<String, Object>> getModeTabs(String applicantId, RecordSet rs) {
|
||||
int applicantModeId = ApplicantCommonInfo.getModeIdByTableName("uf_jcl_yppc");
|
||||
rs.executeQuery(" select modelableid from uf_jcl_yppc where id = ?", applicantId);
|
||||
String modelableid = "";
|
||||
if (rs.next()) {
|
||||
modelableid = rs.getString("modelableid");
|
||||
}
|
||||
if (StringUtils.isNotBlank(modelableid)) {
|
||||
rs.executeQuery("select a.tabname , a.color , a.bgcolor , a.bdcolor , a.type , a.creator , a.orderid from modeTabs_" + applicantModeId + " a where a.id in (" + modelableid + ")");
|
||||
return RecruitRecordSet.getRecordMapList(rs);
|
||||
}
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,4 +45,16 @@ public class ApplicantResumeWrapper extends Service {
|
|||
public Map<String, Object> checkRepeatResume(Map<String, Object> params) {
|
||||
return getApplicantResumeService(user).checkRepeatResume(params);
|
||||
}
|
||||
|
||||
public Map<String, Object> getResumeCardInfo(Map<String, Object> params) {
|
||||
return getApplicantResumeService(user).getResumeCardInfo(params);
|
||||
}
|
||||
|
||||
public String getResumeListStatus(Map<String, Object> params) {
|
||||
return getApplicantResumeService(user).getResumeListStatus(params);
|
||||
}
|
||||
|
||||
public Map<String, Object> updateResumeListStatus(Map<String, Object> params) {
|
||||
return getApplicantResumeService(user).updateResumeListStatus(params);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue