package cn.timer.api.controller.zpgl.sevice; import cn.timer.api.bean.clazz.SysRegion; import cn.timer.api.bean.qyzx.QyzxEmpLogin; import cn.timer.api.bean.wechat.MessageTemplate; import cn.timer.api.bean.yggl.YgglMainEmp; import cn.timer.api.bean.zpgl.*; import cn.timer.api.bean.zzgl.ZzglBmgwM; import cn.timer.api.config.annotation.UserBean; import cn.timer.api.config.enuminterface.JxglEnumInterface; import cn.timer.api.controller.kqgl.ClockInTool; import cn.timer.api.dto.baidu.*; import cn.timer.api.bean.clazz.NationClass; import cn.timer.api.dto.email.SendMessageDto; import cn.timer.api.dto.template.InterviewNotice; import cn.timer.api.dto.zpgl.ImportCandidateDto; import cn.timer.api.dto.zpgl.ZpglRcxxDto; import cn.timer.api.utils.Result; import cn.timer.api.utils.ResultUtil; import cn.timer.api.utils.ZpglMessageTemplate; import cn.timer.api.utils.baidu.BaiduTicUtil; import cn.timer.api.utils.baidu.Base64; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.transaction.Transactional; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; /** * @author wuqingjun * @email 284718418@qq.com * @date 2022/3/18 */ @Slf4j @Service @Transactional(rollbackOn = Exception.class) public class ZpglServiceImpl implements ZpglService { @Value("${spring.mail.username}") private String username; @Autowired private BaiduTicUtil baiduTicUtil; @Autowired private JavaMailSender mailSender; @Autowired private ZpglMslcLogService zpglMslcLogService; @Autowired private ZpglWxgzptServiceImpl zpglWxgzptService; @Override public boolean updateZpglRcxx(UserBean userBean, ZpglRcxxDto zpglRcxxDto) { boolean count = false; ZpglRcxx zpglRcxxEntity = ZpglRcxx.builder().id(zpglRcxxDto.getId()).build().selectById(); if (StringUtils.isEmpty(zpglRcxxEntity)) { return count; } zpglRcxxDto.setName(zpglRcxxEntity.getName()); ZpglRcxx zpglRcxx = ZpglRcxx.builder().id(zpglRcxxDto.getId()).status(zpglRcxxDto.getStatus()).build(); ZpglMslcLog zpglMslcLog = new ZpglMslcLog(); zpglMslcLog.setZpglRcxxId(zpglRcxxDto.getId()); zpglMslcLog.setUserId(userBean.getEmpNum()); zpglMslcLog.setUserName(userBean.getQyzxEmpLogin().getUsername()); if (!StringUtils.isEmpty(zpglRcxxDto.getIfrck()) && zpglRcxxDto.getIfrck().intValue() == 1) { zpglRcxx.setIfrckTime(new Date()); } String detail = ""; // 类型,1状态变更,2面试,3Offer,4讨论,5其他 int zpglRcxxStatus = 0; switch (zpglRcxxDto.getStatus()) { case 1: zpglRcxxStatus = JxglEnumInterface.MslcLogStatus.CHANGEING.getType(); //待初筛 填充字段 detail = ZpglMessageTemplate.print(ZpglMessageTemplate.FILTERING, new String[]{ userBean.getQyzxEmpLogin().getUsername()}); break; case 2: zpglRcxxStatus = JxglEnumInterface.MslcLogStatus.CHANGEING.getType(); //初筛通过 填充字段 zpglRcxx.setIfrck(zpglRcxxDto.getIfrck()); detail = ZpglMessageTemplate.print(ZpglMessageTemplate.FILTER_PASS, new String[]{ userBean.getQyzxEmpLogin().getUsername()}); break; case 3: zpglRcxxStatus = JxglEnumInterface.MslcLogStatus.INTERVIEW.getType(); //安排面试 填充字段 zpglRcxx.setInterviewNum(zpglRcxxDto.getInterviewNum()); zpglRcxx.setInterviewWay(zpglRcxxDto.getInterviewWay()); zpglRcxx.setInterviewerId(zpglRcxxDto.getInterviewerId()); zpglRcxx.setInterviewTime(zpglRcxxDto.getInterviewTime()); zpglRcxx.setNoticeWay(zpglRcxxDto.getNoticeWay()); YgglMainEmp ygglMainEmp = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().select("name").lambda().eq(YgglMainEmp::getEmpNum, zpglRcxxDto.getInterviewerId())); detail = ZpglMessageTemplate.print(ZpglMessageTemplate.INTERVIEW, new String[]{ userBean.getQyzxEmpLogin().getUsername(), zpglRcxxDto.getInterviewNum().toString(), new SimpleDateFormat("yyyy-MM-dd' 'HH:mm:ss").format(zpglRcxxDto.getInterviewTime()), ygglMainEmp.getName()}); break; case 4: zpglRcxxStatus = JxglEnumInterface.MslcLogStatus.INTERVIEW.getType(); detail = ZpglMessageTemplate.print(ZpglMessageTemplate.INTERVIEWED, new String[]{ userBean.getQyzxEmpLogin().getUsername(), zpglRcxxEntity.getInterviewNum().toString()}); break; case 5: zpglRcxxStatus = JxglEnumInterface.MslcLogStatus.INTERVIEW.getType(); detail = ZpglMessageTemplate.print(ZpglMessageTemplate.INTERVIEW_PASS, new String[]{ userBean.getQyzxEmpLogin().getUsername()}); break; case 6: zpglRcxxStatus = JxglEnumInterface.MslcLogStatus.INTERVIEW.getType(); detail = ZpglMessageTemplate.print(ZpglMessageTemplate.EMPLOY, new String[]{ userBean.getQyzxEmpLogin().getUsername()}); break; case 7: zpglRcxxStatus = JxglEnumInterface.MslcLogStatus.OFFER.getType(); //发送offer 填充字段 zpglRcxx.setBmgwId(zpglRcxxDto.getBmgwId()); zpglRcxx.setJobType(zpglRcxxDto.getJobType()); zpglRcxx.setYjrzTime(zpglRcxxDto.getYjrzTime()); detail = ZpglMessageTemplate.print(ZpglMessageTemplate.OFFER, new String[]{ userBean.getQyzxEmpLogin().getUsername()}); //发送offer ZpglRcxxOffer zpglRcxxOffer = this.insertZpglRcxxOffer(userBean, zpglRcxxDto); zpglRcxxOffer.setReceiverEmail(zpglRcxxEntity.getMail()); Thread pthread = new Thread(new ZpglSendMessageThread(mailSender, zpglRcxxOffer)); pthread.start(); break; case 8: zpglRcxxStatus = JxglEnumInterface.MslcLogStatus.OTHER.getType(); //待入职 填充字段 zpglRcxx.setBmgwId(zpglRcxxDto.getBmgwId()); zpglRcxx.setJobType(zpglRcxxDto.getJobType()); zpglRcxx.setYjrzTime(zpglRcxxDto.getYjrzTime()); detail = ZpglMessageTemplate.print(ZpglMessageTemplate.WAIT, new String[]{ userBean.getQyzxEmpLogin().getUsername()}); break; case 9: //淘汰 填充字段 zpglRcxx.setZpglFailId(zpglRcxxDto.getZpglFailId()); zpglRcxx.setRemarks(zpglRcxxDto.getRemarks()); ZpglFail zpglFail = ZpglFail.builder().id(zpglRcxxDto.getZpglFailId()).build().selectById(); String messageTemplate = ZpglMessageTemplate.ENTRYING, titleLabel = ""; if (!StringUtils.isEmpty(zpglFail)) { if (zpglFail.getZpglRcxxStatus().equals(JxglEnumInterface.ResumeStatus.INTERVIEWED.getType())) { titleLabel = JxglEnumInterface.ResumeStatus.INTERVIEWED.getName(); zpglRcxxStatus = JxglEnumInterface.MslcLogStatus.OTHER.getType(); messageTemplate = ZpglMessageTemplate.INTERVIEWED_ENTRYING; } if (zpglFail.getZpglRcxxStatus().equals(JxglEnumInterface.ResumeStatus.INTERVIEW_PASS.getType())) { titleLabel = JxglEnumInterface.ResumeStatus.INTERVIEW_PASS.getName(); zpglRcxxStatus = JxglEnumInterface.MslcLogStatus.OTHER.getType(); messageTemplate = ZpglMessageTemplate.INTERVIEWED_ENTRYING; } if (zpglFail.getZpglRcxxStatus().equals(JxglEnumInterface.ResumeStatus.INTERVIEW.getType())) { titleLabel = JxglEnumInterface.ResumeStatus.INTERVIEW.getName(); zpglRcxxStatus = JxglEnumInterface.MslcLogStatus.OTHER.getType(); messageTemplate = ZpglMessageTemplate.INTERVIEWED_ENTRYING; } if (zpglFail.getZpglRcxxStatus().equals(JxglEnumInterface.ResumeStatus.EMPLOY.getType())) { titleLabel = JxglEnumInterface.ResumeStatus.EMPLOY.getName(); zpglRcxxStatus = JxglEnumInterface.MslcLogStatus.OTHER.getType(); messageTemplate = ZpglMessageTemplate.OFFER_ENTRYING; } if (zpglFail.getZpglRcxxStatus().equals(JxglEnumInterface.ResumeStatus.OFFER.getType())) { titleLabel = JxglEnumInterface.ResumeStatus.OFFER.getName(); zpglRcxxStatus = JxglEnumInterface.MslcLogStatus.OTHER.getType(); messageTemplate = ZpglMessageTemplate.OFFER_ENTRYING; } if (zpglFail.getZpglRcxxStatus().equals(JxglEnumInterface.ResumeStatus.ENTRYING.getType())) { titleLabel = JxglEnumInterface.ResumeStatus.ENTRYING.getName(); zpglRcxxStatus = JxglEnumInterface.MslcLogStatus.OTHER.getType(); messageTemplate = ZpglMessageTemplate.OFFER_ENTRYING; } if (zpglFail.getZpglRcxxStatus().equals(JxglEnumInterface.ResumeStatus.ENTRY.getType())) { titleLabel = JxglEnumInterface.ResumeStatus.ENTRY.getName(); zpglRcxxStatus = JxglEnumInterface.MslcLogStatus.OTHER.getType(); messageTemplate = ZpglMessageTemplate.OFFER_ENTRYING; } detail = ZpglMessageTemplate.print(messageTemplate, new String[]{ userBean.getQyzxEmpLogin().getUsername(), zpglFail.getFailCause(), zpglRcxxDto.getRemarks(), titleLabel}); } break; case 10: zpglRcxxStatus = JxglEnumInterface.MslcLogStatus.OTHER.getType(); //确认入职 detail = ZpglMessageTemplate.print(ZpglMessageTemplate.ENTRY, new String[]{ userBean.getQyzxEmpLogin().getUsername()}); break; default: break; } zpglMslcLog.setZpglRcxxStatus(zpglRcxxStatus); zpglMslcLog.setDetail(detail); count = zpglRcxx.updateById(); zpglMslcLogService.addZpglMslcLog(zpglMslcLog); // 发送面试通知 if (count && JxglEnumInterface.ResumeStatus.INTERVIEW.getType().equals(zpglRcxxDto.getStatus()) && JxglEnumInterface.NoticeWay.WECHAT_PUBLIC.getType().equals(zpglRcxxDto.getNoticeWay())) { InterviewNotice interviewNotice = new InterviewNotice(); ZpglZwxx zpglZwxx = ZpglZwxx.builder().id(zpglRcxxEntity.getZpglZwxxId()).build().selectById(); if (!StringUtils.isEmpty(zpglZwxx)) { interviewNotice.setZpglZwxxName(zpglZwxx.getName()); } interviewNotice.setName(zpglRcxxEntity.getName()); interviewNotice.setType(zpglRcxxDto.getNoticeWay()); interviewNotice.setEmail(zpglRcxxEntity.getMail()); //公众号类型 1:8小时企业管理 2:优领人才网 interviewNotice.setWxgzhType(1); //0 即时发送,1 定时发送 interviewNotice.setTiming(0); interviewNotice.setInterviewTime(zpglRcxxDto.getInterviewTime()); // 通知面试官 YgglMainEmp ygglMainEmp = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().select("phone").lambda() .eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()).eq(YgglMainEmp::getEmpNum, zpglRcxxDto.getInterviewerId())); if (!StringUtils.isEmpty(ygglMainEmp)) { interviewNotice.setMobile(ygglMainEmp.getPhone()); interviewNotice.setYgglMainEmpId(ygglMainEmp.getId()); } interviewNotice.setTemplateId(MessageTemplate.TEMPLATE_ID_TO_INTERVIEWER); interviewNotice.setContentStr(ZpglMessageTemplate.print(ZpglMessageTemplate.TO_INTERVIEWER, new String[]{interviewNotice.getZpglZwxxName(), interviewNotice.getName()})); log.info("TO_INTERVIEWER addInterviewMessageQueue info:{}", zpglWxgzptService.addInterviewMessageQueue(interviewNotice)); // 通知面试者 interviewNotice.setZpglRcxxId(zpglRcxxEntity.getId()); interviewNotice.setMobile(zpglRcxxEntity.getMobile()); interviewNotice.setRemark("如有疑问,请联系 HR"); interviewNotice.setContentStr(ZpglMessageTemplate.print(ZpglMessageTemplate.TO_INTERVIEWEE, new String[]{interviewNotice.getName(), interviewNotice.getZpglZwxxName()})); log.info("TO_INTERVIEWEE addInterviewMessageQueue info:{}", zpglWxgzptService.addInterviewMessageQueue(interviewNotice)); } return count; } @Override public SysRegion getSysRegion(Integer keyId) { return SysRegion.builder().build() .selectOne(new QueryWrapper<SysRegion>().lambda().eq(SysRegion::getKeyId, keyId).select( SysRegion::getRegionName, SysRegion::getKeyId, SysRegion::getZipCode, SysRegion::getRegionCode)); } @Override public Result<Object> addResumeImportCandidate(UserBean userBean, MultipartFile file, ImportCandidateDto importCandidateDto) { BaiduTicResumeDto baiduTicResumeDto = BaiduTicResumeDto.builder().filename(file.getOriginalFilename()).filetype(importCandidateDto.getSuffix()).filedata(Base64.getStrFromPath(file)).build(); ResponseEntity<String> resumeString = baiduTicUtil.getResumeByCvParser(baiduTicResumeDto); JSONObject json = (JSONObject) JSONObject.parse(resumeString.getBody()); log.info("招聘-导入候选人简历{}", resumeString.getBody()); ResumeExtract resumeExtract = null; if ("success".equals(json.get("error_msg"))) { if (StringUtils.isEmpty(json.get("results"))) { log.info("招聘-导入候选人简历:results is null"); return ResultUtil.error("导入简历失败,请检查是否为简历文件~"); } JSONArray array = (JSONArray) json.get("results"); if (StringUtils.isEmpty(array.get(0))) { log.info("招聘-导入候选人简历:results is null"); return ResultUtil.error("导入简历失败,请检查是否为简历文件~"); } JSONObject resultsJsonObject = (JSONObject) array.get(0); resumeExtract = JSONObject.toJavaObject((JSONObject) resultsJsonObject.get("extract"), ResumeExtract.class); } else { return ResultUtil.error("导入简历失败,请检查是否为简历文件~"); } if (StringUtils.isEmpty(resumeExtract) || StringUtils.isEmpty(resumeExtract.getBasic_infos())) { return ResultUtil.error("导入简历失败,请检查是否为简历文件~"); } return this.addZpglRcxx(userBean, resumeExtract, importCandidateDto); } @Override public boolean updateZpglRcxxZwxx(UserBean userBean, ZpglRcxxDto zpglRcxxDto) { ZpglRcxx zpglRcxx = ZpglRcxx.builder().id(zpglRcxxDto.getId()).zpglZwxxId(zpglRcxxDto.getZpglZwxxId()).build(); ZpglMslcLog zpglMslcLog = new ZpglMslcLog(); zpglMslcLog.setZpglRcxxId(zpglRcxxDto.getId()); zpglMslcLog.setUserId(userBean.getEmpNum()); zpglMslcLog.setUserName(userBean.getQyzxEmpLogin().getUsername()); zpglMslcLog.setZpglRcxxStatus(JxglEnumInterface.MslcLogStatus.OTHER.getType()); zpglMslcLog.setDetail(userBean.getQyzxEmpLogin().getUsername() + " 更改候选人应聘职位."); zpglRcxx.updateById(); return zpglMslcLogService.addZpglMslcLog(zpglMslcLog); } /** * 导入简历 * 同步人才信息 教育资讯 基本信息 其他信息 项目信息 工作信息 * * @param resumeExtract * @param importCandidateDto */ private Result<Object> addZpglRcxx(UserBean userBean, ResumeExtract resumeExtract, ImportCandidateDto importCandidateDto) { ZpglRcxx zpglRcxx = ZpglRcxx.builder().build(); zpglRcxx.setZpglZwxxId(importCandidateDto.getZpglZwxxId()); zpglRcxx.setStatus(importCandidateDto.getStatus()); zpglRcxx.setZpglZpqdId(importCandidateDto.getZpglZpqdId()); zpglRcxx.setOrgCode(userBean.getOrgCode().toString()); Integer highesteducation = null; // 添加人才信息 if (!StringUtils.isEmpty(resumeExtract.getBasic_infos())) { zpglRcxx.setName(resumeExtract.getBasic_infos().getName()); String phone = resumeExtract.getBasic_infos().getPhone_numbers(); if (StringUtils.isEmpty(phone)) { return ResultUtil.error("导入简历失败,手机号码不存在~"); } // 查询简历是否重复导入 ZpglRcxx zpglRcxxEntiyt = ZpglRcxx.builder().build().selectOne(new QueryWrapper<ZpglRcxx>().lambda().eq(ZpglRcxx::getMobile, phone).eq(ZpglRcxx::getDeleteFlag, 0)); if (!StringUtils.isEmpty(zpglRcxxEntiyt)) { return ResultUtil.error("简历已入库,请勿重复导入"); } zpglRcxx.setMobile(phone); zpglRcxx.setMail(resumeExtract.getBasic_infos().getEmail_address()); zpglRcxx.setWeixin(resumeExtract.getBasic_infos().getWechat()); zpglRcxx.setIdCard(resumeExtract.getBasic_infos().getId_number()); if (!StringUtils.isEmpty(resumeExtract.getBasic_infos().getGender())) { zpglRcxx.setSex(resumeExtract.getBasic_infos().getGender().indexOf("男") != -1 ? 0 : 1); } //出生日期,格式化为 年-月,如2000-01,若只有年,则只显示年,如2000 if (!StringUtils.isEmpty(resumeExtract.getBasic_infos().getBirth_date()) && resumeExtract.getBasic_infos().getBirth_date().length() > 0) { zpglRcxx.setDatebirth(this.getDate(resumeExtract.getBasic_infos().getBirth_date())); } if (!StringUtils.isEmpty(resumeExtract.getBasic_infos().getNation())) { NationClass nationClass = NationClass.builder().build().selectOne(new QueryWrapper<NationClass>().lambda().like(NationClass::getName, resumeExtract.getBasic_infos().getNation())); if (!StringUtils.isEmpty(nationClass)) { zpglRcxx.setNationClassId(nationClass.getId()); } } zpglRcxx.setAddress(resumeExtract.getBasic_infos().getHome_location()); zpglRcxx.setUniversitie(resumeExtract.getBasic_infos().getSchool()); if (!StringUtils.isEmpty(resumeExtract.getBasic_infos().getCur_duration())) { zpglRcxx.setWorkyears(Integer.parseInt(resumeExtract.getBasic_infos().getCur_duration())); } zpglRcxx.setCompany(resumeExtract.getBasic_infos().getCur_company()); zpglRcxx.insert(); } if (!StringUtils.isEmpty(zpglRcxx.getId())) { // 添加教育经历 if (!StringUtils.isEmpty(resumeExtract.getEducation_infos())) { ZpglRcxxStudy zpglRcxxStudy = ZpglRcxxStudy.builder().zpglRcxxId(zpglRcxx.getId()).build(); List<EducationInfo> list = resumeExtract.getEducation_infos(); for (EducationInfo entity : list) { if (!StringUtils.isEmpty(entity.getStart_time()) && entity.getStart_time().length() > 0) { zpglRcxxStudy.setStartTime(this.getDate(entity.getStart_time())); } if (!StringUtils.isEmpty(entity.getEnd_time()) && entity.getEnd_time().length() > 0) { zpglRcxxStudy.setEndTime(this.getDate(entity.getEnd_time())); } zpglRcxxStudy.setSubject(entity.getMajor()); zpglRcxxStudy.setSchoolName(StringUtils.isEmpty(entity.getSchool()) ? entity.getCollege() : entity.getSchool()); zpglRcxxStudy.setEducation(this.getEducation(entity.getSchooling_record())); highesteducation = zpglRcxxStudy.getEducation(); zpglRcxxStudy.insert(); } } // 添加工作经验 if (!StringUtils.isEmpty(resumeExtract.getWork_infos())) { ZpglRcxxExperience zpglRcxxExperience = ZpglRcxxExperience.builder().zpglRcxxId(zpglRcxx.getId()).build(); List<WorkInfo> list = resumeExtract.getWork_infos(); for (WorkInfo entity : list) { zpglRcxxExperience.setCompany(entity.getCompany()); zpglRcxxExperience.setJobName(entity.getJob()); zpglRcxxExperience.setDepartment(entity.getDepartment()); zpglRcxxExperience.setWorkContent(entity.getDescribe()); if (!StringUtils.isEmpty(entity.getEnd_time()) && entity.getEnd_time().length() > 0) { zpglRcxxExperience.setEndTime(this.getDate(entity.getEnd_time())); } if (!StringUtils.isEmpty(entity.getStart_time()) && entity.getStart_time().length() > 0) { zpglRcxxExperience.setStartTime(this.getDate(entity.getStart_time())); } zpglRcxxExperience.insert(); } } // 添加项目信息 if (!StringUtils.isEmpty(resumeExtract.getProject_infos())) { ZpglRcxxProject zpglRcxxProject = ZpglRcxxProject.builder().zpglRcxxId(zpglRcxx.getId()).build(); List<ProjectInfo> list = resumeExtract.getProject_infos(); for (ProjectInfo entity : list) { zpglRcxxProject.setProjectDescribe(entity.getDescribe()); zpglRcxxProject.setDuty(entity.getDuty()); zpglRcxxProject.setJob(entity.getJob()); zpglRcxxProject.setLocation(entity.getLocation()); zpglRcxxProject.setProjectName(entity.getProject_name()); if (!StringUtils.isEmpty(entity.getStart_time()) && entity.getStart_time().length() > 0) { zpglRcxxProject.setStartTime(this.getDate(entity.getStart_time())); } if (!StringUtils.isEmpty(entity.getEnd_time()) && entity.getEnd_time().length() > 0) { zpglRcxxProject.setEndTime(this.getDate(entity.getEnd_time())); } zpglRcxxProject.insert(); } } if (!StringUtils.isEmpty(highesteducation)) { ZpglRcxx.builder().id(zpglRcxx.getId()).highesteducation(highesteducation.toString()).build().updateById(); } } return ResultUtil.success(); } /** * 根据string时间获取date(2019-10或2019) * * @param date * @return */ private Date getDate(String date) { String datebirth = ""; String[] num = date.split("-"); if (num.length == 1) { datebirth = num[0] + "-1-1"; } else if (num.length == 2) { datebirth = num[0] + "-" + num[1] + "-1"; } return datebirth.length() > 0 ? ClockInTool.strToDateLong(datebirth) : null; } /** * 获取学历类型 * * @param str * @return */ private Integer getEducation(String str) { Integer education = null; if (StringUtils.isEmpty(str)) { return education; } // 博士研究生/硕士研究生/本科/专科/高中/中专/初中 if (str.indexOf("初中") != -1) { education = 2; } else if (str.indexOf("中专") != -1) { education = 4; } else if (str.indexOf("高中") != -1) { education = 3; } else if (str.indexOf("专科") != -1) { education = 5; } else if (str.indexOf("本科") != -1) { education = 6; } else if (str.indexOf("硕士研究生") != -1) { education = 7; } else if (str.indexOf("博士研究生") != -1) { education = 8; } return education; } /** * 添加offer记录 * * @param userBean * @param zpglRcxxDto * @return */ private ZpglRcxxOffer insertZpglRcxxOffer(UserBean userBean, ZpglRcxxDto zpglRcxxDto) { Integer orgCode = userBean.getOrgCode(); ZpglRcxxOffer zpglRcxxOffer = ZpglRcxxOffer.builder().build(); zpglRcxxOffer.setOrgCode(orgCode); zpglRcxxOffer.setRcxxName(zpglRcxxDto.getName()); zpglRcxxOffer.setZpglRcxxId(zpglRcxxDto.getId()); zpglRcxxOffer.setRzTime(zpglRcxxDto.getYjrzTime()); // 所在部门 ZzglBmgwM zzglBmgwM = ZzglBmgwM.builder().build().selectOne( new QueryWrapper<ZzglBmgwM>().lambda().eq(ZzglBmgwM::getOrgCode, orgCode).eq(ZzglBmgwM::getId, zpglRcxxDto.getBmgwId())); Integer bmid = null; if (!StringUtils.isEmpty(zzglBmgwM)) { zpglRcxxOffer.setGangwei(zzglBmgwM.getName()); bmid = zzglBmgwM.getUpId(); } // 所在职位 ZzglBmgwM z = ZzglBmgwM.builder().build().selectOne( new QueryWrapper<ZzglBmgwM>().lambda().eq(ZzglBmgwM::getOrgCode, orgCode).eq(ZzglBmgwM::getId, bmid)); if (!StringUtils.isEmpty(z)) { zpglRcxxOffer.setBumen(z.getName()); } // 所在公司 ZzglBmgwM company = ZzglBmgwM.builder().build().selectOne( new QueryWrapper<ZzglBmgwM>().select("name").lambda().eq(ZzglBmgwM::getOrgCode, orgCode).eq(ZzglBmgwM::getUpId, 0)); if (!StringUtils.isEmpty(company)) { zpglRcxxOffer.setTitle(company.getName() + "录用函"); zpglRcxxOffer.setCompanyName(company.getName()); } YgglMainEmp ygglMainEmp = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().select("phone", "name", "work_email").lambda() .eq(YgglMainEmp::getOrgCode, orgCode).eq(YgglMainEmp::getEmpNum, zpglRcxxDto.getLinkId())); if (!StringUtils.isEmpty(ygglMainEmp)) { zpglRcxxOffer.setLinkName(ygglMainEmp.getName()); zpglRcxxOffer.setLinkPhone(ygglMainEmp.getPhone()); zpglRcxxOffer.setLinkEmail(ygglMainEmp.getWorkEmail()); } zpglRcxxOffer.insert(); return zpglRcxxOffer; } }