package cn.timer.api.controller.zpgl.sevice; import cn.timer.api.bean.clazz.SysRegion; import cn.timer.api.bean.yggl.YgglMainEmp; import cn.timer.api.bean.zpgl.ZpglFail; import cn.timer.api.bean.zpgl.ZpglMslcLog; import cn.timer.api.bean.zpgl.ZpglRcxx; import cn.timer.api.config.annotation.UserBean; import cn.timer.api.config.enuminterface.JxglEnumInterface; import cn.timer.api.dto.zpgl.ZpglRcxxDto; import cn.timer.api.utils.ZpglMessageTemplate; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import javax.transaction.Transactional; import java.text.SimpleDateFormat; import java.util.Date; /** * @author wuqingjun * @email 284718418@qq.com * @date 2022/3/18 */ @Service @Transactional(rollbackOn = Exception.class) public class ZpglServiceImpl implements ZpglService { @Autowired private ZpglMslcLogService zpglMslcLogService; @Override public boolean updateZpglRcxx(UserBean userBean, ZpglRcxxDto zpglRcxxDto) { boolean count = false; 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 = ""; switch (zpglRcxxDto.getStatus()) { case 1: //待初筛 填充字段 detail = ZpglMessageTemplate.print(ZpglMessageTemplate.FILTERING, new String[]{ userBean.getQyzxEmpLogin().getUsername()}); break; case 2: //初筛通过 填充字段 zpglRcxx.setIfrck(zpglRcxxDto.getIfrck()); detail = ZpglMessageTemplate.print(ZpglMessageTemplate.FILTER_PASS, new String[]{ userBean.getQyzxEmpLogin().getUsername()}); break; case 3: //安排面试 填充字段 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: detail = ZpglMessageTemplate.print(ZpglMessageTemplate.INTERVIEWED, new String[]{ userBean.getQyzxEmpLogin().getUsername(), zpglRcxxDto.getInterviewNum().toString()}); break; case 5: detail = ZpglMessageTemplate.print(ZpglMessageTemplate.INTERVIEW_PASS, new String[]{ userBean.getQyzxEmpLogin().getUsername()}); break; case 6: detail = ZpglMessageTemplate.print(ZpglMessageTemplate.EMPLOY, new String[]{ userBean.getQyzxEmpLogin().getUsername()}); break; case 7: //发送offer 填充字段 zpglRcxx.setBmgwId(zpglRcxxDto.getBmgwId()); zpglRcxx.setJobType(zpglRcxxDto.getJobType()); zpglRcxx.setYjrzTime(zpglRcxxDto.getYjrzTime()); detail = ZpglMessageTemplate.print(ZpglMessageTemplate.OFFER, new String[]{ userBean.getQyzxEmpLogin().getUsername()}); //发送offer break; case 8: //待入职 填充字段 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; if (!StringUtils.isEmpty(zpglFail)) { if (zpglFail.getZpglRcxxStatus().equals(JxglEnumInterface.ResumeStatus.INTERVIEW_PASS.getType())) { messageTemplate = ZpglMessageTemplate.INTERVIEWED_ENTRYING; } if (zpglFail.getZpglRcxxStatus().equals(JxglEnumInterface.ResumeStatus.OFFER.getType())) { messageTemplate = ZpglMessageTemplate.OFFER_ENTRYING; } detail = ZpglMessageTemplate.print(messageTemplate, new String[]{ userBean.getQyzxEmpLogin().getUsername(), zpglFail.getFailCause(), zpglRcxxDto.getRemarks()}); } break; case 10: //确认入职 detail = ZpglMessageTemplate.print(ZpglMessageTemplate.ENTRY, new String[]{ userBean.getQyzxEmpLogin().getUsername()}); break; default: break; } zpglMslcLog.setDetail(detail); count = zpglRcxx.updateById(); zpglMslcLogService.addZpglMslcLog(zpglMslcLog); 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)); } }