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-10 09:27:46 +08:00
import weaver.docs.docs.DocCoder ;
import weaver.docs.docs.DocComInfo ;
import weaver.docs.docs.DocImageManager ;
import weaver.docs.docs.DocManager ;
import weaver.file.ImageFileManager ;
import weaver.general.TimeUtil ;
2023-09-26 15:21:59 +08:00
import weaver.general.Util ;
2023-10-10 09:27:46 +08:00
import weaver.hrm.User ;
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 " ) ) ;
int secCategory = Convert . toInt ( params . get ( " secCategory " ) ) ;
RecordSet rs = new RecordSet ( ) ;
try {
int docId = createDocId ( secCategory , imageFileId , user ) ;
rs . executeUpdate ( " update uf_jcl_yppc set ysjl=? where id = ? " , docId , resumeId ) ;
} 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-10-10 09:27:46 +08:00
/ * *
* 原始简历imageFieldId生成docId
* @param secCategory
* @param imageFieldId
* @param user
* @return
* @throws Exception
* /
public int createDocId ( int secCategory , int imageFieldId , User user ) throws Exception {
ImageFileManager manager = new ImageFileManager ( ) ;
manager . getImageFileInfoById ( imageFieldId ) ;
String filenameqc = manager . getImageFileName ( ) ;
String filenamebc = filenameqc . substring ( 0 , filenameqc . lastIndexOf ( " . " ) ) ;
RecordSet rs = new RecordSet ( ) ;
DocManager dm = new DocManager ( ) ;
DocImageManager imgManger = new DocImageManager ( ) ;
imgManger . setDocfiletype ( " 2 " ) ;
int docId = dm . getNextDocId ( rs ) ;
imgManger . setDocid ( docId ) ;
imgManger . setImagefileid ( imageFieldId ) ;
imgManger . setImagefilename ( filenameqc ) ;
imgManger . setIsextfile ( " 1 " ) ;
imgManger . AddDocImageInfo ( ) ;
String date = TimeUtil . getCurrentDateString ( ) ;
String time = TimeUtil . getOnlyCurrentTimeString ( ) ;
dm . setId ( docId ) ;
dm . setMaincategory ( 0 ) ;
dm . setSubcategory ( 0 ) ;
dm . setSeccategory ( secCategory ) ;
dm . setLanguageid ( user . getLanguage ( ) ) ;
dm . setDocstatus ( " 1 " ) ;
dm . setDocsubject ( filenamebc ) ;
dm . setDoccreaterid ( user . getUID ( ) ) ;
dm . setDocCreaterType ( user . getLogintype ( ) ) ;
dm . setUsertype ( user . getLogintype ( ) ) ;
dm . setOwnerid ( user . getUID ( ) ) ;
dm . setOwnerType ( user . getLogintype ( ) ) ;
dm . setDoclastmoduserid ( user . getUID ( ) ) ;
dm . setDocLastModUserType ( user . getLogintype ( ) ) ;
dm . setDoccreatedate ( date ) ;
dm . setDoclastmoddate ( date ) ;
dm . setDoccreatetime ( time ) ;
dm . setDoclastmodtime ( time ) ;
dm . setDoclangurage ( user . getLanguage ( ) ) ;
dm . setKeyword ( filenameqc ) ;
dm . setIsapprover ( " 0 " ) ;
dm . setIsreply ( " " ) ;
dm . setDocdepartmentid ( user . getUserDepartment ( ) ) ;
dm . setDocreplyable ( " 1 " ) ;
dm . setAccessorycount ( 1 ) ;
dm . setParentids ( " " + docId ) ;
dm . setUserid ( user . getUID ( ) ) ;
DocCoder docCoder = new DocCoder ( ) ;
dm . setDocCode ( docCoder . getDocCoder ( " " + secCategory ) ) ;
dm . setDocEditionId ( dm . getNextEditionId ( rs ) ) ;
dm . setDocEdition ( 1 ) ;
dm . AddDocInfo ( ) ;
dm . AddShareInfo ( ) ;
DocComInfo dc = new DocComInfo ( ) ;
dc . addDocInfoCache ( " " + docId ) ;
return docId ;
}
2023-09-20 11:49:52 +08:00
}