2023-11-20 18:33:57 +08:00
package weaver.formmode.recruit.modeexpand.applicant ;
import com.engine.recruit.conn.* ;
import com.engine.recruit.enums.ApplicationStatusEnum ;
import com.engine.recruit.exception.CustomizeRunTimeException ;
import org.apache.commons.collections.CollectionUtils ;
import org.apache.commons.lang3.StringUtils ;
import weaver.common.DateUtil ;
import weaver.conn.RecordSet ;
import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew ;
2024-03-25 15:46:12 +08:00
import weaver.general.BaseBean ;
2023-11-20 18:33:57 +08:00
import weaver.general.Util ;
import weaver.hrm.User ;
import weaver.soa.workflow.request.RequestInfo ;
import java.util.HashMap ;
import java.util.List ;
import java.util.Map ;
import java.util.UUID ;
/ * *
* @author : dxfeng
* @createTime : 2023 / 11 / 20
* @version : 1 . 0
* /
public class CreatRckApplicantExpand extends AbstractModeExpandJavaCodeNew {
@Override
public Map < String , String > doModeExpand ( Map < String , Object > param ) {
Map < String , String > result = new HashMap < > ( ) ;
try {
int billId ;
int modeId ;
RequestInfo requestInfo = ( RequestInfo ) param . get ( " RequestInfo " ) ;
if ( requestInfo ! = null ) {
User user = ( User ) param . get ( " user " ) ;
billId = Util . getIntValue ( requestInfo . getRequestid ( ) ) ;
modeId = Util . getIntValue ( requestInfo . getWorkflowid ( ) ) ;
if ( billId > 0 & & modeId > 0 ) {
String rcId = Util . null2String ( param . get ( " rcid " ) ) ;
String ypzw = Util . null2String ( param . get ( " ypzw " ) ) ;
if ( StringUtils . isBlank ( ypzw ) ) {
throw new CustomizeRunTimeException ( " 请选择应聘职位 " ) ;
}
RecordSet rs = new RecordSet ( ) ;
rs . executeQuery ( " select * from uf_jcl_rck where id = ? " , rcId ) ;
Map < String , Object > mainDataMap = RecruitRecordSet . getSingleRecordMap ( rs ) ;
String xm = Util . null2String ( mainDataMap . get ( " xm " ) ) ;
String sjhm = Util . null2String ( mainDataMap . get ( " sjhm " ) ) ;
// 职位重复校验
List < Map < String , Object > > repeatPositionResumeList = CheckRepeatResume . getRepeatPositionResumeList ( xm , sjhm , ypzw ) ;
if ( CollectionUtils . isNotEmpty ( repeatPositionResumeList ) ) {
throw new CustomizeRunTimeException ( " 该人员已有相同的应聘中的职位 " ) ;
}
Map < String , Object > insertDataMap = buildInsertMap ( user , ypzw , mainDataMap ) ;
String uuid = UUID . randomUUID ( ) . toString ( ) ;
insertDataMap . put ( " modeuuid " , uuid ) ;
2024-02-01 13:31:14 +08:00
int formModeId = ApplicantCommonInfo . getModeIdByTableName ( " uf_jcl_yppc " ) ;
2023-11-20 18:33:57 +08:00
insertDataMap . put ( " formmodeid " , formModeId ) ;
insertDataMap . put ( " id " , billId ) ;
RecruitRecordSet . updateDataById ( insertDataMap , " uf_jcl_yppc " ) ;
int pcId = RecruitRecordSet . refreshRight ( uuid , " uf_jcl_yppc " , formModeId , user . getUID ( ) ) ;
2024-10-21 09:39:59 +08:00
if ( pcId > 0 ) {
// 阶段提醒
StepMsgCommonInfo . sendMsg ( String . valueOf ( pcId ) , Util . null2String ( insertDataMap . get ( " ypzw " ) ) , Util . null2String ( insertDataMap . get ( " zplc " ) ) , Util . null2String ( insertDataMap . get ( " zpjd " ) ) , user ) ;
}
2023-11-20 18:33:57 +08:00
// 创建明细表数据
rs . executeUpdate ( " insert into uf_jcl_yppc_dt1 (mainid,xxmc,xl,zy,kssj,jssj) select ?,xxmc,xl,zy,kssj,jssj from uf_jcl_rck_dt1 where mainid = ? " , pcId , rcId ) ;
rs . executeUpdate ( " insert into uf_jcl_yppc_dt2 (mainid,gsmc,kssj,jssj,gw,sqyxk,lzyy,gzzz) select ?,gsmc,kssj,jssj,gw,sqyxk,lzyy,gzzz from uf_jcl_rck_dt2 where mainid = ? " , pcId , rcId ) ;
rs . executeUpdate ( " insert into uf_jcl_yppc_dt3 (mainid,xmmc,kssj,jssj,drjs,xmms) select ?,xmmc,kssj,jssj,drjs,xmms from uf_jcl_rck_dt3 where mainid = ? " , pcId , rcId ) ;
rs . executeUpdate ( " insert into uf_jcl_yppc_dt4 (mainid,yylx,zwcd) select ?,yylx,zwcd from uf_jcl_rck_dt4 where mainid = ? " , pcId , rcId ) ;
}
}
} catch ( Exception e ) {
2024-03-25 15:46:12 +08:00
new BaseBean ( ) . writeLog ( e ) ;
2024-10-21 09:39:59 +08:00
result . put ( " errmsg " , e . getMessage ( ) ) ;
2023-11-20 18:33:57 +08:00
result . put ( " flag " , " false " ) ;
}
return result ;
}
private Map < String , Object > buildInsertMap ( User user , String ypzw , Map < String , Object > mainDataMap ) {
String zt = ApplicationStatusEnum . DISTRIBUTION . getValue ( ) ;
Map < String , Object > insertDataMap = new RecruitDataMap < > ( ) ;
insertDataMap . put ( " sfz " , mainDataMap . get ( " sfz " ) ) ;
insertDataMap . put ( " jlzp " , mainDataMap . get ( " jlzp " ) ) ;
insertDataMap . put ( " ysjl " , mainDataMap . get ( " ysjl " ) ) ;
insertDataMap . put ( " jlly " , mainDataMap . get ( " jlly " ) ) ;
insertDataMap . put ( " xm " , mainDataMap . get ( " xm " ) ) ;
insertDataMap . put ( " xb " , mainDataMap . get ( " xb " ) ) ;
insertDataMap . put ( " sjhm " , mainDataMap . get ( " sjhm " ) ) ;
insertDataMap . put ( " dzyx " , mainDataMap . get ( " dzyx " ) ) ;
insertDataMap . put ( " csrq " , mainDataMap . get ( " csrq " ) ) ;
insertDataMap . put ( " nl " , mainDataMap . get ( " nl " ) ) ;
insertDataMap . put ( " zgxl " , mainDataMap . get ( " zgxl " ) ) ;
insertDataMap . put ( " zgxw " , mainDataMap . get ( " zgxw " ) ) ;
insertDataMap . put ( " byyx " , mainDataMap . get ( " byyx " ) ) ;
insertDataMap . put ( " zy " , mainDataMap . get ( " zy " ) ) ;
insertDataMap . put ( " hyzk " , mainDataMap . get ( " hyzk " ) ) ;
insertDataMap . put ( " gzjy " , mainDataMap . get ( " gzjy " ) ) ;
insertDataMap . put ( " zzzt " , mainDataMap . get ( " zzzt " ) ) ;
insertDataMap . put ( " dqszd " , mainDataMap . get ( " dqszd " ) ) ;
insertDataMap . put ( " tdsj " , DateUtil . getDateTime ( ) ) ;
insertDataMap . put ( " cjr " , user . getUID ( ) ) ;
insertDataMap . put ( " zwpj " , mainDataMap . get ( " zwpj " ) ) ;
insertDataMap . put ( " mz " , mainDataMap . get ( " mz " ) ) ;
insertDataMap . put ( " jg " , mainDataMap . get ( " jg " ) ) ;
insertDataMap . put ( " zzmm " , mainDataMap . get ( " zzmm " ) ) ;
insertDataMap . put ( " sgcm " , mainDataMap . get ( " sgcm " ) ) ;
insertDataMap . put ( " tzkg " , mainDataMap . get ( " tzkg " ) ) ;
insertDataMap . put ( " ypzw " , ypzw ) ;
String flowId = PositionCommonInfo . getRecruitFlowId ( ypzw ) ;
Map < String , String > initialStage = ApplicantCommonInfo . getInitialStage ( flowId ) ;
if ( null ! = initialStage ) {
String zpjd = initialStage . get ( " zpjd " ) ;
String dqypjd = initialStage . get ( " jdlx " ) ;
if ( StringUtils . isNotBlank ( zpjd ) & & StringUtils . isNotBlank ( dqypjd ) ) {
insertDataMap . put ( " zplc " , flowId ) ;
insertDataMap . put ( " zpjd " , zpjd ) ;
insertDataMap . put ( " dqypjd " , dqypjd ) ;
zt = ApplicationStatusEnum . CANDIDATE . getValue ( ) ;
}
}
insertDataMap . put ( " zt " , zt ) ;
return insertDataMap ;
}
}