package com.engine.recruit.conn; import com.engine.recruit.entity.record.ApplicantRecordPo; import com.engine.recruit.entity.recruitflow.po.RecruitStepPo; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.formmode.setup.ModeRightInfo; import weaver.general.BaseBean; import weaver.general.Util; import java.util.ArrayList; import java.util.List; import java.util.UUID; /** * @author:dxfeng * @createTime: 2023/09/27 * @version: 1.0 */ public class ApplicantCommonInfo { /** * 获取应聘者姓名 * * @param applicantId 应聘者ID * @return 应聘者姓名 */ public static String getApplicantName(String applicantId) { RecordSet rs = new RecordSet(); rs.executeQuery("select xm from uf_jcl_yppc where id = ?", applicantId); if (rs.next()) { return rs.getString("xm"); } return ""; } /** * 获取应聘职位名称 * * @param positionId 职位ID * @return 职位名称 */ public static String getApplicantPosition(String positionId) { RecordSet rs = new RecordSet(); rs.executeQuery("select zpzwmc from uf_jcl_zp_zpzw where id = ?", positionId); if (rs.next()) { return rs.getString("zpzwmc"); } return ""; } /** * 获取表单下拉框展示文本 * * @param formId 表单ID * @param fieldName 字段明湖曾 * @param value 下拉框值 * @return */ public static String getSelectName(String formId, String fieldName, String value) { String cancelReason = ""; RecordSet rs = new RecordSet(); rs.executeQuery("select selectname from workflow_selectitem where fieldid =( select id from workflow_billfield where billid = ? and fieldname = ? ) and selectvalue = ?", formId, fieldName, value); if (rs.next()) { cancelReason = rs.getString("selectname"); } return cancelReason; } /** * 获取招聘通用浏览按钮展示内容 * * @param id 浏览按钮ID * @return 浏览按钮展示文本 */ public static String getRecruitCommonBrowserValue(String id) { if (StringUtils.isBlank(id)) { return ""; } List value = new ArrayList<>(); RecordSet rs = new RecordSet(); String[] split = id.split(","); for (String s : split) { rs.executeQuery("select xxnr from uf_sjzd where id = ?", id); if (rs.next()) { value.add(rs.getString("xxnr")); } } return StringUtils.join(value, ","); } /** * 根据建模表名,获取建模ID * * @param modeTable * @return */ public static int getModeIdByTableName(String modeTable) { int formModeId = -1; RecordSet rs = new RecordSet(); rs.executeQuery("select id from modeinfo where formid =( select id from workflow_bill where tablename = ? )", modeTable); if (rs.next()) { formModeId = rs.getInt("id"); } return formModeId; } /** * 建模表数据权限重构 * * @param rs * @param uuid * @param modeTable * @param formModeId */ public static int refreshRight(RecordSet rs, String uuid, String modeTable, int formModeId) { rs.executeQuery("select id from " + modeTable + " where modeuuid='" + uuid + "'"); if (rs.next()) { //建模数据的id int bid = Util.getIntValue(rs.getString("id")); ModeRightInfo modeRightInfo = new ModeRightInfo(); modeRightInfo.setNewRight(true); //新建的时候添加共享 modeRightInfo.editModeDataShare(1, formModeId, bid); return bid; } return -1; } /** * 创建操作记录数据 * * @param operateName 操作业务 * @param operateTime 操作时间 * @param content 操作内容 * @param operateId 操作者ID * @param linkUrl 操作链接地址 * @return 操作记录数据ID */ public static int createOperateRecord(String operateName, String operateTime, String content, int operateId, String linkUrl) { try { String operateTableName = "uf_jcl_ypgc"; RecruitDataMap dataMap = new RecruitDataMap<>(); String uuid = UUID.randomUUID().toString(); dataMap.put("modeuuid", uuid); int formModeId = getModeIdByTableName(operateTableName); dataMap.put("formmodeid", formModeId); RecruitRecordSet.buildModeInsertFields(dataMap, operateId); dataMap.put("czyw", operateName); dataMap.put("czsj", operateTime); dataMap.put("jlnr", content); dataMap.put("xqnr", linkUrl); RecruitRecordSet.insertData(dataMap, operateTableName); return RecruitRecordSet.refreshRight(uuid, operateTableName, formModeId, operateId); } catch (Exception e) { new BaseBean().writeLog("应聘过程记录数据插入失败", e); } return -1; } public static int createOperateRecord(ApplicantRecordPo recordPo) { try { int operateId = recordPo.getUser().getUID(); String operateTableName = "uf_jcl_ypgc"; RecruitDataMap dataMap = new RecruitDataMap<>(); String uuid = UUID.randomUUID().toString(); dataMap.put("modeuuid", uuid); int formModeId = getModeIdByTableName(operateTableName); dataMap.put("formmodeid", formModeId); RecruitRecordSet.buildModeInsertFields(dataMap, operateId); dataMap.put("czyw", recordPo.getRecordOperateType().getShowName()); dataMap.put("czsj", recordPo.getOperateTime()); dataMap.put("jlnr", recordPo.getContent()); dataMap.put("xqnr", recordPo.getLinkUrl()); dataMap.put("ypz", recordPo.getPcId()); RecruitRecordSet.insertData(dataMap, operateTableName); return RecruitRecordSet.refreshRight(uuid, operateTableName, formModeId, operateId); } catch (Exception e) { new BaseBean().writeLog("应聘过程记录数据插入失败", e); } return -1; } public static RecruitStepPo getCurrentStep(String billId) { RecruitStepPo stepPo = new RecruitStepPo(); RecordSet rs = new RecordSet(); // 招聘阶段ID String stageId = null; // 招聘流程ID int recruitFlowId = -1; rs.executeQuery("select zplc,zpjd from uf_jcl_yppc where id = ?", billId); if (rs.next()) { recruitFlowId = rs.getInt("zplc"); stageId = rs.getString("zpjd"); } if (-1 == recruitFlowId) { return stepPo; } if (StringUtils.isBlank(stageId)) { rs.executeQuery("select id,jdmc,hj from uf_jcl_zpjdsz where sfqy = 0 and id = ? ", stageId); } else { rs.executeQuery("select id,jdmc,hj from uf_jcl_zpjdsz where sfqy = 0 and zplc = ? and hj = 0", recruitFlowId); } if (rs.next()) { stepPo = RecruitStepPo.builder().key(rs.getInt("id")).description(rs.getString("jdmc")).type(rs.getString("hj")).build(); } return stepPo; } }