2023-11-24 15:44:26 +08:00
package com.engine.recruit.service.impl ;
import com.engine.core.impl.Service ;
import com.engine.recruit.conn.ApplicantCommonInfo ;
import com.engine.recruit.conn.RecruitDataMap ;
import com.engine.recruit.conn.RecruitRecordSet ;
2024-03-14 11:02:09 +08:00
import com.engine.recruit.constant.ModeSearchCodeConstant ;
import com.engine.recruit.constant.ModeTreeCodeConstant ;
2023-11-24 15:44:26 +08:00
import com.engine.recruit.entity.init.po.* ;
import com.engine.recruit.exception.CustomizeRunTimeException ;
import com.engine.recruit.service.InitRecruitDataService ;
import org.apache.commons.lang3.StringUtils ;
import weaver.conn.RecordSet ;
import weaver.formmode.recruit.modeexpand.process.StageDataInsert ;
2024-01-08 11:31:27 +08:00
import weaver.general.BaseBean ;
2023-11-24 15:44:26 +08:00
2024-01-08 11:31:27 +08:00
import java.util.* ;
2023-11-24 15:44:26 +08:00
import java.util.stream.Collectors ;
/ * *
* @author : dxfeng
* @createTime : 2023 / 11 / 22
* @version : 1 . 0
* /
public class InitRecruitDataServiceImpl extends Service implements InitRecruitDataService {
@Override
public Map < String , Object > checkInitStatus ( ) {
RecordSet rs = new RecordSet ( ) ;
rs . executeQuery ( " select id from uf_jcl_zplc " ) ;
if ( rs . next ( ) ) {
throw new CustomizeRunTimeException ( " 当前已存在招聘流程数据,无需重复初始化 " ) ;
}
return null ;
}
@Override
public Map < String , Object > initRecruitData ( ) {
RecordSet rs = new RecordSet ( ) ;
rs . executeUpdate ( " delete from uf_jcl_zplc; " ) ;
rs . executeUpdate ( " delete from uf_jcl_zpjdsz; " ) ;
rs . executeUpdate ( " delete from uf_jcl_zpjdsz_dt1; " ) ;
rs . executeUpdate ( " delete from uf_jcl_zpjdsz_dt2; " ) ;
rs . executeUpdate ( " delete from uf_jcl_lcczan; " ) ;
2024-01-08 11:31:27 +08:00
// 刷新页面菜单
2024-01-12 09:43:11 +08:00
rs . executeQuery ( " select * from hp_nonstandard_function_info where num='163' and name ='招聘管理' " ) ;
if ( rs . next ( ) ) {
refreshMenuUrl ( ) ;
}
2023-11-24 15:44:26 +08:00
// 插入操作按钮数据,
int buttonModeId = ApplicantCommonInfo . getModeIdByTableName ( " uf_jcl_lcczan " ) ;
Map < String , Object > baseMap = new RecruitDataMap < > ( ) ;
RecruitRecordSet . buildModeInsertFields ( baseMap , 1 ) ;
List < OperateButtonPo > operateButtonList = insertButtonData ( baseMap , buttonModeId ) ;
Map < String , OperateButtonPo > operateButtonMap = operateButtonList . stream ( ) . collect ( Collectors . toMap ( OperateButtonPo : : getButtonName , item - > item , ( k1 , k2 ) - > k1 ) ) ;
// 插入招聘阶段数据
int stageModeId = ApplicantCommonInfo . getModeIdByTableName ( " uf_jcl_zpjdsz " ) ;
insertStageData ( baseMap , stageModeId , operateButtonMap ) ;
// 创建内置流程
int flowModeId = ApplicantCommonInfo . getModeIdByTableName ( " uf_jcl_zplc " ) ;
insertFlowData ( baseMap , flowModeId ) ;
return null ;
}
2024-01-08 11:31:27 +08:00
/ * *
* 更新招聘管理相关菜单地址
* /
private void refreshMenuUrl ( ) {
List < String > menuSqlList = new ArrayList < > ( ) ;
// 招聘需求
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . RECRUITMENT_DEMAND_MANAGEMENT ) + " ' where id = " + 100189 ) ;
2024-01-08 11:31:27 +08:00
// 招聘职位
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . RECRUITMENT_POSITIONS ) + " ' where id = " + 100190 ) ;
2024-01-08 11:31:27 +08:00
// 应聘者
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . APPLICANTS ) + " ' where id = " + 100192 ) ;
2024-01-08 11:31:27 +08:00
// 部门筛选
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . SCREENING_FEEDBACK ) + " ' where id = " + 100193 ) ;
2024-01-08 11:31:27 +08:00
// 笔试
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . WRITTEN_RESULTS ) + " ' where id = " + 100194 ) ;
2024-01-08 11:31:27 +08:00
// 面试
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . INTERVIEW ) + " ' where id = " + 100195 ) ;
2024-01-08 11:31:27 +08:00
// 薪酬谈判
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . SALARY_NEGOTIATION ) + " ' where id = " + 100196 ) ;
2024-01-08 11:31:27 +08:00
// 背调
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . BACK_TONE ) + " ' where id = " + 100197 ) ;
2024-01-08 11:31:27 +08:00
// offer
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . OFFER ) + " ' where id = " + 100198 ) ;
2024-01-08 11:31:27 +08:00
// 人才库
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . TALENT_POOL ) + " ' where id = " + 100200 ) ;
2024-01-08 11:31:27 +08:00
// 简历库
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . RESUME_LIBRARY ) + " ' where id = " + 100201 ) ;
2024-01-08 11:31:27 +08:00
// 工作地点
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . WORK_LOCATION ) + " ' where id = " + 100203 ) ;
2024-01-08 11:31:27 +08:00
// 字段类型名称
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . DATA_DICTIONARY_TYPE_NAME ) + " ' where id = " + 100205 ) ;
2024-01-08 11:31:27 +08:00
// 邮件通知模板
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . EMAIL_NOTIFICATION_TEMPLATE ) + " ' where id = " + 100206 ) ;
2024-01-08 11:31:27 +08:00
// 千里聆邮箱配置
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . QLL_EMAIL_CONFIG ) + " ' where id = " + 100207 ) ;
2024-01-08 11:31:27 +08:00
// 招聘需求
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . RECRUITMENT_DEMAND_MANAGEMENT ) + " ' where id = " + 100209 ) ;
2024-01-08 11:31:27 +08:00
// 我的筛选
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . SCREENING_FEEDBACK ) + " ' where id = " + 100210 ) ;
2024-01-08 11:31:27 +08:00
// 我的面试
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . PARTICIPATE_IN_INTERVIEWS ) + " ' where id = " + 100211 ) ;
2024-01-08 11:31:27 +08:00
// 招聘流程
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . RECRUITMENT_PROCESS_LIST ) + " ' where id = " + 100213 ) ;
2024-01-08 11:31:27 +08:00
// 招聘阶段
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . RECRUITMENT_STAGE_LIST ) + " ' where id = " + 100214 ) ;
2024-01-08 11:31:27 +08:00
// 操作按钮
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl = '/spa/cube/index.html#/main/cube/search?customid= " + getCustomSearchId ( ModeSearchCodeConstant . LIST_OF_OPERATION_BUTTONS ) + " ' where id = " + 100215 ) ;
2024-01-08 11:31:27 +08:00
// 入职管理
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl= '/spa/cube/index.html#/main/cube/viewCustomPage?id= " + getCustomPageId ( " 入职管理 " , ModeSearchCodeConstant . ENTRY_MANAGEMENT ) + " &noTitleShow=1' where id = " + 100199 ) ;
2024-01-08 11:31:27 +08:00
// 数据字典
2024-03-14 11:02:09 +08:00
menuSqlList . add ( " update LeftMenuInfo set fullrouteurl= '/spa/cube/index.html#/main/cube/tree?id= " + getCustomTreeId ( ModeTreeCodeConstant . DATA_DICTIONARY_TREE ) + " &noTitleShow=1' where id = " + 100204 ) ;
2024-01-08 11:31:27 +08:00
RecordSet rs = new RecordSet ( ) ;
for ( String sql : menuSqlList ) {
new BaseBean ( ) . writeLog ( " 招聘目录初始化SQL: == " + sql ) ;
rs . executeUpdate ( sql ) ;
}
}
/ * *
* 获取建模查询列表ID
*
* @param customSearchCode
* @return
* /
private String getCustomSearchId ( String customSearchCode ) {
RecordSet rs = new RecordSet ( ) ;
rs . executeQuery ( " select id from mode_customsearch where customsearchcode = ? " , customSearchCode ) ;
if ( rs . next ( ) ) {
return rs . getString ( " id " ) ;
}
throw new CustomizeRunTimeException ( " 招聘管理菜单初始化失败,请检查建模引擎查询列表配置[ " + customSearchCode + " ] " ) ;
}
/ * *
* 获取建模自定义页面ID
*
2024-01-15 17:17:07 +08:00
* @param customPageName 自定义页面名称
* @param customSearchCode
2024-01-08 11:31:27 +08:00
* @return
* /
2024-01-15 17:17:07 +08:00
private String getCustomPageId ( String customPageName , String customSearchCode ) {
2024-01-08 11:31:27 +08:00
RecordSet rs = new RecordSet ( ) ;
2024-01-15 17:17:07 +08:00
rs . executeQuery ( " select appid from mode_customsearch where customsearchcode = ? " , customSearchCode ) ;
2024-01-08 11:31:27 +08:00
if ( rs . next ( ) ) {
2024-01-15 17:17:07 +08:00
String appId = rs . getString ( " appid " ) ;
rs . executeQuery ( " select id from mode_custompage where appid = ? and customname = ? " , appId , customPageName ) ;
if ( rs . next ( ) ) {
return rs . getString ( " id " ) ;
}
2024-01-08 11:31:27 +08:00
}
2024-01-15 17:17:07 +08:00
throw new CustomizeRunTimeException ( " 招聘管理菜单初始化失败,请检查建模引擎自定义页面配置[ " + customPageName + " , " + customSearchCode + " ] " ) ;
2024-01-08 11:31:27 +08:00
}
/ * *
* 获取建模树ID
*
* @param treeCode
* @return
* /
private String getCustomTreeId ( String treeCode ) {
RecordSet rs = new RecordSet ( ) ;
rs . executeQuery ( " select id from mode_customtree where treecode =? " , treeCode ) ;
if ( rs . next ( ) ) {
return rs . getString ( " id " ) ;
}
throw new CustomizeRunTimeException ( " 招聘管理菜单初始化失败,请检查建模引擎树配置[ " + treeCode + " ] " ) ;
}
/ * *
* 插入初始化流程数据
*
* @param baseMap
* @param modeId
* /
2023-11-24 15:44:26 +08:00
private void insertFlowData ( Map < String , Object > baseMap , int modeId ) {
OperateFlowPo flowPo = OperateFlowPo . builder ( )
. lcmc ( " 默认流程 " )
. lczt ( 0 )
. ksjd ( getStageIdByName ( " 筛选 " ) )
. gcjd ( getStageIdByName ( " 面试 " ) )
. jsjd ( getStageIdByName ( " offer " ) )
. build ( ) ;
RecruitDataMap < Object > flowDataMap = new RecruitDataMap < > ( ) ;
flowDataMap . putAll ( baseMap ) ;
String uuid = UUID . randomUUID ( ) . toString ( ) ;
flowDataMap . put ( " modeuuid " , uuid ) ;
flowDataMap . put ( " formmodeid " , modeId ) ;
flowDataMap . put ( " lcmc " , flowPo . getLcmc ( ) ) ;
flowDataMap . put ( " lczt " , flowPo . getLczt ( ) ) ;
flowDataMap . put ( " ksjd " , flowPo . getKsjd ( ) ) ;
flowDataMap . put ( " gcjd " , flowPo . getGcjd ( ) ) ;
flowDataMap . put ( " jsjd " , flowPo . getJsjd ( ) ) ;
RecruitRecordSet . insertData ( flowDataMap , " uf_jcl_zplc " ) ;
int billId = RecruitRecordSet . refreshRight ( uuid , " uf_jcl_zplc " , modeId , 1 ) ;
// 流程关联招聘阶段
StageDataInsert . relatedStageData ( 1 , String . valueOf ( billId ) , " zplc " , flowPo . getKsjd ( ) , flowPo . getGcjd ( ) , flowPo . getJsjd ( ) ) ;
}
/ * *
* 插入招聘阶段设置数据
*
* @param baseMap
* @param modeId
* @param operateButtonMap
* /
private void insertStageData ( Map < String , Object > baseMap , int modeId , Map < String , OperateButtonPo > operateButtonMap ) {
List < OperateStagePo > stageList = buildOperateStageList ( operateButtonMap ) ;
List < OperateStageDt2 > dt2List = buildStageDt2Data ( ) ;
for ( OperateStagePo stage : stageList ) {
RecruitDataMap < Object > stageDataMap = new RecruitDataMap < > ( ) ;
stageDataMap . putAll ( baseMap ) ;
String uuid = UUID . randomUUID ( ) . toString ( ) ;
stageDataMap . put ( " modeuuid " , uuid ) ;
stageDataMap . put ( " formmodeid " , modeId ) ;
stageDataMap . put ( " jdmc " , stage . getJdmc ( ) ) ;
stageDataMap . put ( " jdms " , stage . getJdms ( ) ) ;
stageDataMap . put ( " jdlx " , stage . getJdlx ( ) ) ;
stageDataMap . put ( " hj " , stage . getHj ( ) ) ;
stageDataMap . put ( " sfqy " , 0 ) ;
stageDataMap . put ( " zplc " , - 1 ) ;
RecruitRecordSet . insertData ( stageDataMap , " uf_jcl_zpjdsz " ) ;
int id = RecruitRecordSet . refreshRight ( uuid , " uf_jcl_zpjdsz " , modeId , 1 ) ;
stage . setId ( id ) ;
// 插入明细表1
List < OperateStageDt1 > dt1 = stage . getDt1 ( ) ;
for ( OperateStageDt1 stageDt1 : dt1 ) {
Map < String , Object > dt1Map = new RecruitDataMap < > ( ) ;
dt1Map . put ( " mainid " , id ) ;
dt1Map . put ( " czan " , stageDt1 . getCzan ( ) ) ;
dt1Map . put ( " zdyxsmc " , stageDt1 . getZdyxsmc ( ) ) ;
dt1Map . put ( " tzymdz " , stageDt1 . getTzymdz ( ) ) ;
dt1Map . put ( " sfqy " , 0 ) ;
dt1Map . put ( " zssx " , stageDt1 . getZssx ( ) ) ;
RecruitRecordSet . insertData ( dt1Map , " uf_jcl_zpjdsz_dt1 " ) ;
}
// 插入明细表2
for ( OperateStageDt2 stageDt2 : dt2List ) {
Map < String , Object > dt2Map = new RecruitDataMap < > ( ) ;
dt2Map . put ( " mainid " , id ) ;
dt2Map . put ( " ymbt " , stageDt2 . getYmbt ( ) ) ;
dt2Map . put ( " ymdz " , stageDt2 . getYmdz ( ) ) ;
dt2Map . put ( " zssx " , stageDt2 . getZssx ( ) ) ;
RecruitRecordSet . insertData ( dt2Map , " uf_jcl_zpjdsz_dt2 " ) ;
}
}
}
/ * *
* 构建招聘阶段设置 , 明细表2数据集合
*
* @return
* /
private List < OperateStageDt2 > buildStageDt2Data ( ) {
List < OperateStageDt2 > dt2List = new ArrayList < > ( ) ;
dt2List . add ( OperateStageDt2 . builder ( )
. ymbt ( " 基本信息 " )
. ymdz ( getModeLink ( " /spa/cube/index.html#/main/cube/card?type=0&modeId={modeId}&formId={formId}&billid=$parentid$&opentype=0&isRecruitCard=true " , " uf_jcl_yppc " , " " , " " ) )
. zssx ( 10 )
. build ( ) ) ;
dt2List . add ( OperateStageDt2 . builder ( )
. ymbt ( " 部门筛选反馈 " )
. ymdz ( getModeSearchUrl ( " /spa/cube/index.html#/main/cube/search?pcid=$parentid$&isRecruitCard=true&customid={customid} " , " uf_jcl_bmsxfk " , " 筛选反馈-简历卡片 " ) )
. zssx ( 20 )
. build ( ) ) ;
dt2List . add ( OperateStageDt2 . builder ( )
. ymbt ( " 笔试 " )
. ymdz ( getModeSearchUrl ( " /spa/cube/index.html#/main/cube/search?pcid=$parentid$&isRecruitCard=true&customid={customid} " , " uf_jcl_bs " , " 笔试-简历卡片 " ) )
. zssx ( 30 )
. build ( ) ) ;
dt2List . add ( OperateStageDt2 . builder ( )
. ymbt ( " 面试 " )
. ymdz ( getModeSearchUrl ( " /spa/cube/index.html#/main/cube/search?pcid=$parentid$&isRecruitCard=true&customid={customid} " , " uf_jcl_ms " , " 面试-简历卡片 " ) )
. zssx ( 40 )
. build ( ) ) ;
dt2List . add ( OperateStageDt2 . builder ( )
. ymbt ( " 背调 " )
. ymdz ( getModeSearchUrl ( " /spa/cube/index.html#/main/cube/search?pcid=$parentid$&isRecruitCard=true&customid={customid} " , " uf_jcl_bd " , " 背调-简历卡片 " ) )
. zssx ( 50 )
. build ( ) ) ;
dt2List . add ( OperateStageDt2 . builder ( )
. ymbt ( " 薪酬谈判 " )
. ymdz ( getModeSearchUrl ( " /spa/cube/index.html#/main/cube/search?pcid=$parentid$&isRecruitCard=true&customid={customid} " , " uf_jcl_xctp " , " 薪酬谈判-简历卡片 " ) )
. zssx ( 60 )
. build ( ) ) ;
dt2List . add ( OperateStageDt2 . builder ( )
. ymbt ( " 历史投递记录 " )
. ymdz ( getModeSearchUrl ( " /spa/cube/index.html#/main/cube/search?pcid=$parentid$&xm=$xm$&sjhm=$sjhm$&isRecruitCard=true&customid={customid} " , " uf_jcl_yppc " , " 相关历史投递记录 " ) )
. zssx ( 70 )
. build ( ) ) ;
dt2List . add ( OperateStageDt2 . builder ( )
. ymbt ( " 备注 " )
. ymdz ( getModeSearchUrl ( " /spa/cube/index.html#/main/cube/search?pcid=$parentid$&isRecruitCard=true&customid={customid} " , " uf_jcl_bz " , " 备注-简历卡片 " ) )
. zssx ( 80 )
. build ( ) ) ;
dt2List . add ( OperateStageDt2 . builder ( )
. ymbt ( " 应聘过程 " )
. ymdz ( getModeSearchUrl ( " /spa/cube/index.html#/main/cube/search?pcid=$parentid$&isRecruitCard=true&customid={customid} " , " uf_jcl_ypgc " , " 应聘过程-简历卡片 " ) )
. zssx ( 90 )
. build ( ) ) ;
return dt2List ;
}
private List < OperateStagePo > buildOperateStageList ( Map < String , OperateButtonPo > operateButtonMap ) {
List < OperateStagePo > stageList = new ArrayList < > ( ) ;
stageList . add ( buildStagePo ( OperateStagePo . builder ( ) . jdmc ( " 筛选 " ) . jdms ( " 筛选 " ) . jdlx ( 0 ) . hj ( 0 ) . build ( ) ,
operateButtonMap ,
" 进入下一阶段 " , " 部门筛选 " , " 淘汰 " , " 转移阶段 " , " 转推其他职位 " , " 归档人才库 " , " 添加备注 " , " 加入黑名单 " ) ) ;
stageList . add ( buildStagePo ( OperateStagePo . builder ( ) . jdmc ( " 笔试 " ) . jdms ( " 笔试 " ) . jdlx ( 1 ) . hj ( 1 ) . build ( ) ,
operateButtonMap ,
2024-01-05 11:17:42 +08:00
" 进入下一阶段 " , " 安排笔试 " , " 转移阶段 " , " 淘汰 " , " 转推其他职位 " , " 归档人才库 " , " 添加备注 " , " 加入黑名单 " ) ) ;
2023-11-24 15:44:26 +08:00
stageList . add ( buildStagePo ( OperateStagePo . builder ( ) . jdmc ( " 面试 " ) . jdms ( " 面试 " ) . jdlx ( 2 ) . hj ( 1 ) . build ( ) ,
operateButtonMap ,
" 进入下一阶段 " , " 安排面试 " , " 淘汰 " , " 转移阶段 " , " 转推其他职位 " , " 归档人才库 " , " 添加备注 " , " 加入黑名单 " ) ) ;
stageList . add ( buildStagePo ( OperateStagePo . builder ( ) . jdmc ( " 背调 " ) . jdms ( " 背调 " ) . jdlx ( 5 ) . hj ( 1 ) . build ( ) ,
operateButtonMap ,
" 进入下一阶段 " , " 背调结果登记 " , " 淘汰 " , " 转移阶段 " , " 转推其他职位 " , " 归档人才库 " , " 添加备注 " , " 加入黑名单 " ) ) ;
stageList . add ( buildStagePo ( OperateStagePo . builder ( ) . jdmc ( " 薪酬谈判 " ) . jdms ( " 薪酬谈判 " ) . jdlx ( 4 ) . hj ( 1 ) . build ( ) ,
operateButtonMap ,
" 进入下一阶段 " , " 谈判记录登记 " , " 淘汰 " , " 转移阶段 " , " 转推其他职位 " , " 归档人才库 " , " 添加备注 " , " 加入黑名单 " ) ) ;
stageList . add ( buildStagePo ( OperateStagePo . builder ( ) . jdmc ( " offer " ) . jdms ( " offer " ) . jdlx ( 6 ) . hj ( 2 ) . build ( ) ,
operateButtonMap ,
" 创建offer " , " 转为待入职 " , " 转移阶段 " , " 淘汰 " , " 转推其他职位 " , " 归档人才库 " , " 添加备注 " , " 加入黑名单 " ) ) ;
return stageList ;
}
private OperateStagePo buildStagePo ( OperateStagePo stagePo , Map < String , OperateButtonPo > operateButtonMap , String . . . buttonNames ) {
List < OperateStageDt1 > dt1 = new ArrayList < > ( ) ;
int index = 10 ;
for ( String buttonName : buttonNames ) {
OperateButtonPo operateButtonPo = operateButtonMap . get ( buttonName ) ;
dt1 . add ( OperateStageDt1 . builder ( )
. czan ( operateButtonPo . getId ( ) )
. zdyxsmc ( operateButtonPo . getButtonName ( ) )
. tzymdz ( operateButtonPo . getLinkUrl ( ) )
. zssx ( index )
. build ( ) ) ;
index + = 10 ;
}
stagePo . setDt1 ( dt1 ) ;
return stagePo ;
}
/ * *
* 插入操作按钮数据
*
* @param baseMap
* @param modeId
* @return
* /
private List < OperateButtonPo > insertButtonData ( Map < String , Object > baseMap , int modeId ) {
List < OperateButtonPo > buttonList = buildButtonList ( ) ;
for ( OperateButtonPo button : buttonList ) {
RecruitDataMap < Object > buttonDataMap = new RecruitDataMap < > ( ) ;
buttonDataMap . putAll ( baseMap ) ;
String uuid = UUID . randomUUID ( ) . toString ( ) ;
buttonDataMap . put ( " modeuuid " , uuid ) ;
buttonDataMap . put ( " formmodeid " , modeId ) ;
buttonDataMap . put ( " anmc " , button . getButtonName ( ) ) ;
buttonDataMap . put ( " sfqy " , " 0 " ) ;
buttonDataMap . put ( " anbs " , button . getButtonKey ( ) ) ;
buttonDataMap . put ( " andz " , button . getButtonAction ( ) ) ;
RecruitRecordSet . insertData ( buttonDataMap , " uf_jcl_lcczan " ) ;
int id = RecruitRecordSet . refreshRight ( uuid , " uf_jcl_lcczan " , modeId , 1 ) ;
button . setId ( id ) ;
}
return buttonList ;
}
/ * *
* 构建操作按钮基础信息
*
* @return
* /
private List < OperateButtonPo > buildButtonList ( ) {
List < OperateButtonPo > buttonList = new ArrayList < > ( ) ;
buttonList . add ( OperateButtonPo . builder ( ) . buttonName ( " 进入下一阶段 " ) . buttonAction ( " postAndReload " )
. buttonKey ( " com.engine.recruit.service.impl.NextStageServiceImpl " )
. build ( ) ) ;
buttonList . add ( OperateButtonPo . builder ( ) . buttonName ( " 部门筛选 " ) . buttonAction ( " openDialog " )
. linkUrl ( getModeLink ( " /spa/cube/index.html#/main/cube/card?type=1&modeId={modeId}&formId={formId}&{ypz}=$parentid$ " , " uf_jcl_bmsx " , " " , " ypz " ) )
. build ( ) ) ;
buttonList . add ( OperateButtonPo . builder ( ) . buttonName ( " 淘汰 " ) . buttonAction ( " confirmAndReload " )
. buttonKey ( " com.engine.recruit.service.impl.EliminateServiceImpl " )
. build ( ) ) ;
buttonList . add ( OperateButtonPo . builder ( ) . buttonName ( " 转推其他职位 " ) . buttonAction ( " openDialog " )
. linkUrl ( getModeLink ( " /spa/cube/index.html#/main/cube/card?type=1&modeId={modeId}&formId={formId}&layoutid={layoutid}&guid=card&sourceId=$parentid$ " , " uf_jcl_yppc " , " 转推其他职位-新建一个投递 " , " " ) )
. build ( ) ) ;
buttonList . add ( OperateButtonPo . builder ( ) . buttonName ( " 归档人才库 " ) . buttonAction ( " openDialog " )
2023-12-01 10:06:37 +08:00
. linkUrl ( getModeLink ( " /spa/cube/index.html#/main/cube/card?type=1&modeId={modeId}&formId={formId}&layoutid={layoutid}&guid=card&ids=$parentid$ " , " uf_jcl_yppc " , " 归档人才库-新建模板 " , " " ) )
2023-11-24 15:44:26 +08:00
. build ( ) ) ;
buttonList . add ( OperateButtonPo . builder ( ) . buttonName ( " 加入黑名单 " ) . buttonAction ( " confirmAndReload " )
. buttonKey ( " com.engine.recruit.service.impl.JoinBlacklistServiceImpl " )
. build ( ) ) ;
buttonList . add ( OperateButtonPo . builder ( ) . buttonName ( " 安排笔试 " ) . buttonAction ( " openDialog " )
. linkUrl ( getModeLink ( " /spa/cube/index.html#/main/cube/card?modeId={modeId}&formId={formId}&type=1&layoutid={layoutid}&{ypz}=$parentid$ " , " uf_jcl_bs " , " 笔试安排-新建模板 " , " ypz " ) )
. build ( ) ) ;
2023-12-28 17:04:16 +08:00
//buttonList.add(OperateButtonPo.builder().buttonName("笔试结果登记").buttonAction("openDialog")
// .linkUrl(getModeLink("/spa/cube/index.html#/main/cube/card?modeId={modeId}&formId={formId}&type=1&layoutid={layoutid}&{ypz}=$parentid$", "uf_jcl_bs", "笔试结果-编辑模板", "ypz"))
// .build());
2023-11-24 15:44:26 +08:00
buttonList . add ( OperateButtonPo . builder ( ) . buttonName ( " 安排面试 " ) . buttonAction ( " openDialog " )
. linkUrl ( getModeLink ( " /spa/cube/index.html#/main/cube/card?type=1&modeId={modeId}&formId={formId}&{ypz}=$parentid$ " , " uf_jcl_ms " , " " , " ypz " ) )
. build ( ) ) ;
buttonList . add ( OperateButtonPo . builder ( ) . buttonName ( " 背调结果登记 " ) . buttonAction ( " openDialog " )
2023-12-04 09:24:34 +08:00
. linkUrl ( getModeLink ( " /spa/cube/index.html#/main/cube/card?type=1&modeId={modeId}&formId={formId}&{ypz}=$parentid$&recordType=addBackTone " , " uf_jcl_bd " , " " , " ypz " ) )
2023-11-24 15:44:26 +08:00
. build ( ) ) ;
buttonList . add ( OperateButtonPo . builder ( ) . buttonName ( " 谈判记录登记 " ) . buttonAction ( " openDialog " )
. linkUrl ( getModeLink ( " /spa/cube/index.html#/main/cube/card?type=1&modeId={modeId}&formId={formId}&{ypz}=$parentid$&recordType=addSalaryNegotiation " , " uf_jcl_xctp " , " " , " ypz " ) )
. build ( ) ) ;
buttonList . add ( OperateButtonPo . builder ( ) . buttonName ( " 创建offer " ) . buttonAction ( " openDialog " )
. linkUrl ( getWorkFlowLink ( " /spa/workflow/index_form.jsp#/main/workflow/req?iscreate=1&workflowid={workflowid}&{xm}=$parentid$ " , " jcl_offer审批 " , " xm " ) )
. build ( ) ) ;
buttonList . add ( OperateButtonPo . builder ( ) . buttonName ( " 转为待入职 " ) . buttonAction ( " openDialog " )
2023-12-28 17:04:16 +08:00
. linkUrl ( getModeLink ( " /spa/cube/index.html#/main/cube/card?type=1&modeId={modeId}&formId={formId}&pcid=$parentid$&recordType=pendingEmployment " , " uf_jcl_rzgl " , " " , " " ) )
2023-11-24 15:44:26 +08:00
. build ( ) ) ;
buttonList . add ( OperateButtonPo . builder ( ) . buttonName ( " 转移阶段 " ) . buttonAction ( " openDialog " )
. linkUrl ( getModeLink ( " /spa/cube/index.html#/main/cube/card?billid=$parentid$&type=2&modeId={modeId}&formId={formId}&layoutid={layoutid}&guid=card&id=$parentid$ " , " uf_jcl_yppc " , " 转移阶段 " , " " ) )
. build ( ) ) ;
buttonList . add ( OperateButtonPo . builder ( ) . buttonName ( " 添加备注 " ) . buttonAction ( " openDialog " )
. linkUrl ( getModeLink ( " /spa/cube/index.html#/main/cube/card?type=1&modeId={modeId}&formId={formId}&{ypz}=$parentid$ " , " uf_jcl_bz " , " " , " ypz " ) )
. build ( ) ) ;
return buttonList ;
}
/ * *
* 获取阶段ID
*
* @param stageName
* @return
* /
private String getStageIdByName ( String stageName ) {
String stageId = null ;
RecordSet rs = new RecordSet ( ) ;
rs . executeQuery ( " select id from uf_jcl_zpjdsz where zplc =-1 and jdmc = ? " , stageName ) ;
if ( rs . next ( ) ) {
stageId = rs . getString ( " id " ) ;
}
return stageId ;
}
/ * *
* 完善查询相关URL
*
* @param url
* @param tableName
* @param customName
* @return
* /
private String getModeSearchUrl ( String url , String tableName , String customName ) {
String searchUrl = url ;
int modeId = ApplicantCommonInfo . getModeIdByTableName ( tableName ) ;
int customId = ApplicantCommonInfo . getCustomId ( modeId , customName ) ;
searchUrl = searchUrl . replace ( " {customid} " , String . valueOf ( customId ) ) ;
return searchUrl ;
}
/ * *
* 动态完善建模相关URL
*
* @param url
* @param tableName
* @param layoutName
* @param fieldName
* @return
* /
private String getModeLink ( String url , String tableName , String layoutName , String fieldName ) {
String modeLink = url ;
int modeId = ApplicantCommonInfo . getModeIdByTableName ( tableName ) ;
int formId = ApplicantCommonInfo . getFormIdByTableName ( tableName ) ;
modeLink = modeLink . replace ( " {modeId} " , String . valueOf ( modeId ) ) ;
modeLink = modeLink . replace ( " {formId} " , String . valueOf ( formId ) ) ;
if ( StringUtils . isNotBlank ( layoutName ) ) {
int layoutId = ApplicantCommonInfo . getLayoutId ( modeId , layoutName ) ;
modeLink = modeLink . replace ( " {layoutid} " , String . valueOf ( layoutId ) ) ;
}
if ( StringUtils . isNotBlank ( fieldName ) ) {
int fieldId = ApplicantCommonInfo . getFieldId ( formId , fieldName ) ;
modeLink = modeLink . replace ( " { " + fieldName + " } " , " field " + fieldId ) ;
}
return modeLink ;
}
/ * *
* 动态完善流程相关URL
*
* @param url
* @param workflowName
* @param fieldName
* @return
* /
private String getWorkFlowLink ( String url , String workflowName , String fieldName ) {
String workFlowLink = url ;
String workflowId = " " ;
int formId = - 1 ;
RecordSet rs = new RecordSet ( ) ;
2023-12-28 17:04:16 +08:00
rs . executeQuery ( " select id,formid from workflow_base where workflowname like ' " + workflowName + " %' " ) ;
2023-11-24 15:44:26 +08:00
if ( rs . next ( ) ) {
workflowId = rs . getString ( " id " ) ;
formId = rs . getInt ( " formid " ) ;
}
workFlowLink = workFlowLink . replace ( " {workflowid} " , workflowId ) ;
if ( StringUtils . isNotBlank ( fieldName ) ) {
int fieldId = ApplicantCommonInfo . getFieldId ( formId , fieldName ) ;
workFlowLink = workFlowLink . replace ( " { " + fieldName + " } " , " field " + fieldId ) ;
}
return workFlowLink ;
}
}