2023-09-20 11:49:52 +08:00
package com.engine.recruit.service.impl ;
2023-10-10 09:27:46 +08:00
import cn.hutool.core.convert.Convert ;
2023-09-20 11:49:52 +08:00
import com.engine.core.impl.Service ;
2023-09-28 09:11:08 +08:00
import com.engine.recruit.enums.ApplicantOperateEnum ;
import com.engine.recruit.enums.ApplicationStatusEnum ;
2023-09-20 11:49:52 +08:00
import com.engine.recruit.service.ApplicantResumeService ;
2023-09-25 16:35:14 +08:00
import org.apache.commons.lang3.StringUtils ;
2023-09-20 11:49:52 +08:00
import weaver.conn.RecordSet ;
2023-10-17 15:18:53 +08:00
import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil ;
2023-09-26 15:21:59 +08:00
import weaver.general.Util ;
2023-09-25 16:35:14 +08:00
import weaver.hrm.resource.ResourceComInfo ;
2023-09-20 11:49:52 +08:00
import java.util.ArrayList ;
import java.util.HashMap ;
import java.util.List ;
import java.util.Map ;
/ * *
* @author : dxfeng
* @createTime : 2023 / 09 / 20
* @version : 1 . 0
* /
public class ApplicantResumeServiceImpl extends Service implements ApplicantResumeService {
@Override
public Map < String , Object > getApplicantsName ( String ids ) {
2023-09-25 16:35:14 +08:00
Map < String , Object > returnMap = new HashMap < > ( 1 ) ;
2023-09-20 11:49:52 +08:00
RecordSet rs = new RecordSet ( ) ;
String [ ] split = ids . split ( " , " ) ;
List < Map < String , Object > > list = new ArrayList < > ( ) ;
for ( String id : split ) {
rs . executeQuery ( " select xm from uf_jcl_yppc where id = ? " , id ) ;
if ( rs . next ( ) ) {
Map < String , Object > rowMap = new HashMap < > ( ) ;
rowMap . put ( " id " , id ) ;
rowMap . put ( " name " , rs . getString ( " xm " ) ) ;
list . add ( rowMap ) ;
}
}
returnMap . put ( " rows " , list ) ;
return returnMap ;
}
2023-09-25 16:35:14 +08:00
@Override
public Map < String , Object > getInterviewInfoById ( String id ) {
Map < String , Object > returnMap = new HashMap < > ( 16 ) ;
String sql = " select a.ypz,b.xm,a.ypzw,b.tdsj,b.sjhm,b.dzyx,a.msfs,a.mshj ,a.msc,a.msg ,a.ptmsg,a.msrq,a.msdd ,a.msfkr from uf_jcl_ms a inner join uf_jcl_yppc b on a.ypz = b.id where a.id = ? " ;
RecordSet rs = new RecordSet ( ) ;
rs . executeQuery ( sql , id ) ;
if ( rs . next ( ) ) {
// 应聘者
returnMap . put ( " ypz " , createApplicantBrowserMap ( rs . getString ( " ypz " ) , rs . getString ( " xm " ) ) ) ;
// 应聘职位
returnMap . put ( " ypzw " , createAppliedPositionBrowserMap ( rs . getString ( " ypzw " ) ) ) ;
// 投递时间
returnMap . put ( " tdsj " , createApplicantBrowserMap ( rs . getString ( " tdsj " ) ) ) ;
// 手机号码
returnMap . put ( " sjhm " , createApplicantBrowserMap ( rs . getString ( " sjhm " ) ) ) ;
// 电子邮箱
returnMap . put ( " dzyx " , createApplicantBrowserMap ( rs . getString ( " dzyx " ) ) ) ;
// 面试方式
returnMap . put ( " msfs " , createApplicantBrowserMap ( rs . getString ( " msfs " ) ) ) ;
// 面试环节
returnMap . put ( " mshj " , createApplicantBrowserMap ( rs . getString ( " mshj " ) ) ) ;
// 面试轮次
returnMap . put ( " msc " , createApplicantBrowserMap ( rs . getString ( " msc " ) ) ) ;
// 面试官
returnMap . put ( " msg " , createResourceBrowserMap ( rs . getString ( " msg " ) ) ) ;
// 陪同面试官
returnMap . put ( " ptmsg " , createResourceBrowserMap ( rs . getString ( " ptmsg " ) ) ) ;
// 面试日期
returnMap . put ( " msrq " , createApplicantBrowserMap ( rs . getString ( " msrq " ) ) ) ;
// 面试地址
returnMap . put ( " msdd " , createApplicantBrowserMap ( rs . getString ( " msdd " ) ) ) ;
}
return returnMap ;
}
2023-09-26 15:21:59 +08:00
@Override
public Map < String , Object > getDisplayLayoutId ( Map < String , Object > params ) {
Map < String , Object > returnMap = new HashMap < > ( ) ;
String layoutId = Util . null2String ( params . get ( " layoutid " ) ) ;
String modeId = Util . null2String ( params . get ( " modeId " ) ) ;
returnMap . put ( " layoutId " , layoutId ) ;
RecordSet rs = new RecordSet ( ) ;
rs . executeQuery ( " select layoutname from modehtmllayout where modeid = ? and id = ? " , modeId , layoutId ) ;
if ( rs . next ( ) ) {
String layoutName = rs . getString ( " layoutname " ) ;
// 获取相同名称的显示布局ID
rs . executeQuery ( " select id from modehtmllayout where type = 0 and modeid = ? and layoutname =? " , modeId , layoutName ) ;
if ( rs . next ( ) ) {
returnMap . put ( " layoutId " , rs . getString ( " id " ) ) ;
}
}
return returnMap ;
}
2023-09-27 17:30:24 +08:00
@Override
public Map < String , Object > getTabCount ( Map < String , Object > params ) {
Map < String , Object > returnMap = new HashMap < > ( ) ;
String billId = Util . null2String ( params . get ( " billid " ) ) ;
List < Integer > countList = new ArrayList < > ( ) ;
RecordSet rs = new RecordSet ( ) ;
// 部门筛选反馈
rs . executeQuery ( " select count(id) as num from uf_jcl_bmsxfk where ypz = ? " , billId ) ;
if ( rs . next ( ) ) {
countList . add ( rs . getInt ( " num " ) ) ;
}
// 笔试
rs . executeQuery ( " select count(id) as num from uf_jcl_bs where ypz = ? " , billId ) ;
if ( rs . next ( ) ) {
countList . add ( rs . getInt ( " num " ) ) ;
}
// 面试
rs . executeQuery ( " select count(id) as num from uf_jcl_ms where ypz = ? " , billId ) ;
if ( rs . next ( ) ) {
countList . add ( rs . getInt ( " num " ) ) ;
}
// 背调
rs . executeQuery ( " select count(id) as num from uf_jcl_bd where ypz = ? " , billId ) ;
if ( rs . next ( ) ) {
countList . add ( rs . getInt ( " num " ) ) ;
}
// 薪酬谈判
rs . executeQuery ( " select count(id) as num from uf_jcl_xctp where ypz = ? " , billId ) ;
if ( rs . next ( ) ) {
countList . add ( rs . getInt ( " num " ) ) ;
}
// 历史投递记录
rs . executeQuery ( " select xm,sjhm from uf_jcl_yppc where id = ? " , billId ) ;
if ( rs . next ( ) ) {
rs . executeQuery ( " select count(id) as num from uf_jcl_yppc where xm=? and sjhm =? " , rs . getString ( " xm " ) , rs . getString ( " sjhm " ) ) ;
if ( rs . next ( ) ) {
countList . add ( rs . getInt ( " num " ) ) ;
}
2023-09-28 09:11:08 +08:00
} else {
2023-09-27 17:30:24 +08:00
countList . add ( 0 ) ;
}
returnMap . put ( " countList " , countList ) ;
return returnMap ;
}
2023-09-28 09:11:08 +08:00
@Override
public Map < String , Object > updateApplicantsInfo ( Map < String , Object > params ) {
Map < String , Object > returnMap = new HashMap < > ( ) ;
String operateType = Util . null2String ( params . get ( " operateType " ) ) ;
RecordSet rs = new RecordSet ( ) ;
if ( ApplicantOperateEnum . ELIMINATE . getOperateType ( ) . equals ( operateType ) ) {
2023-09-28 15:14:32 +08:00
String ids = Util . null2String ( params . get ( " ids " ) ) ;
2023-10-10 09:27:46 +08:00
rs . executeUpdate ( " update uf_jcl_yppc set zt = ? where id in ( " + ids + " ) " , ApplicationStatusEnum . OBSOLETE . getValue ( ) ) ;
2023-09-28 15:14:32 +08:00
}
if ( ApplicantOperateEnum . TRANSFER . getOperateType ( ) . equals ( operateType ) ) {
String dqypjd = Util . null2String ( params . get ( " dqypjd " ) ) ;
String billid = Util . null2String ( params . get ( " billid " ) ) ;
rs . executeUpdate ( " update uf_jcl_yppc set dqypjd = ? where id = ? " , dqypjd , billid ) ;
2023-09-28 09:11:08 +08:00
}
return returnMap ;
}
2023-10-10 09:27:46 +08:00
@Override
public Map < String , Object > fullOriginalResumeId ( Map < String , Object > params ) {
int imageFileId = Convert . toInt ( params . get ( " imageFileId " ) ) ;
int resumeId = Convert . toInt ( params . get ( " resumeId " ) ) ;
2023-10-17 15:18:53 +08:00
int secCategory = Convert . toInt ( RecruitModeUtil . getRecruitPropValue ( " APPLICANTS_RESUMES_CATEGORY " ) ) ;
2023-10-10 09:27:46 +08:00
RecordSet rs = new RecordSet ( ) ;
try {
2023-10-17 15:18:53 +08:00
int docId = RecruitModeUtil . createDocId ( secCategory , imageFileId , user ) ;
2023-10-11 15:50:18 +08:00
// 更新原始简历信息,设置应聘状态未待分配
rs . executeUpdate ( " update uf_jcl_yppc set ysjl=?,zt=? where id = ? " , docId , 0 , resumeId ) ;
2023-10-10 09:27:46 +08:00
} catch ( Exception e ) {
throw new RuntimeException ( e ) ;
}
return new HashMap < > ( ) ;
}
2023-09-25 16:35:14 +08:00
/ * *
* 构建普通数据格式
*
* @param value
* @return
* /
private Map < String , Object > createApplicantBrowserMap ( String value ) {
if ( StringUtils . isBlank ( value ) ) {
return null ;
}
Map < String , Object > browserMap = new HashMap < > ( 1 ) ;
browserMap . put ( " value " , value ) ;
return browserMap ;
}
/ * *
* 构建应聘者浏览按钮值
*
* @param id
* @param name
* @return
* /
private Map < String , Object > createApplicantBrowserMap ( String id , String name ) {
Map < String , Object > browserMap = new HashMap < > ( 2 ) ;
if ( StringUtils . isBlank ( id ) ) {
return browserMap ;
}
browserMap . put ( " value " , id ) ;
List < Map < String , Object > > objList = new ArrayList < > ( ) ;
Map < String , Object > obj = new HashMap < > ( 2 ) ;
obj . put ( " id " , id ) ;
obj . put ( " name " , name ) ;
objList . add ( obj ) ;
browserMap . put ( " specialobj " , objList ) ;
return browserMap ;
}
/ * *
* 构建应聘职位浏览按钮
*
* @param id
* @return
* /
private Map < String , Object > createAppliedPositionBrowserMap ( String id ) {
Map < String , Object > browserMap = new HashMap < > ( 2 ) ;
if ( StringUtils . isBlank ( id ) ) {
return browserMap ;
}
browserMap . put ( " value " , id ) ;
RecordSet rs = new RecordSet ( ) ;
rs . executeQuery ( " select zpzwmc from uf_jcl_zp_zpzw where id = ? " , id ) ;
if ( rs . next ( ) ) {
List < Map < String , Object > > objList = new ArrayList < > ( ) ;
Map < String , Object > obj = new HashMap < > ( 2 ) ;
obj . put ( " id " , id ) ;
obj . put ( " name " , rs . getString ( " zpzwmc " ) ) ;
objList . add ( obj ) ;
browserMap . put ( " specialobj " , objList ) ;
}
return browserMap ;
}
/ * *
* 构建人员浏览按钮值
*
* @param ids
* @return
* /
private Map < String , Object > createResourceBrowserMap ( String ids ) {
Map < String , Object > browserMap = new HashMap < > ( 2 ) ;
if ( StringUtils . isBlank ( ids ) ) {
return browserMap ;
}
browserMap . put ( " value " , ids ) ;
List < Map < String , Object > > objList = new ArrayList < > ( ) ;
String [ ] split = ids . split ( " , " ) ;
try {
ResourceComInfo resourceComInfo = new ResourceComInfo ( ) ;
for ( String s : split ) {
Map < String , Object > obj = new HashMap < > ( 2 ) ;
obj . put ( " id " , s ) ;
obj . put ( " name " , resourceComInfo . getLastname ( s ) ) ;
objList . add ( obj ) ;
}
} catch ( Exception e ) {
throw new RuntimeException ( e ) ;
}
browserMap . put ( " specialobj " , objList ) ;
return browserMap ;
}
2023-09-20 11:49:52 +08:00
}