weaver-hrm-recruit/src/weaver/formmode/recruit/modeexpand/interview/InterviewEvaluate.java

164 lines
5.7 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package weaver.formmode.recruit.modeexpand.interview;
import com.engine.recruit.conn.ApplicantCommonInfo;
import com.engine.recruit.conn.RecruitDataMap;
import com.engine.recruit.conn.RecruitRecordSet;
import com.engine.recruit.exception.CustomizeRunTimeException;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import java.util.Map;
import java.util.UUID;
/**
* @author:dxfeng
* @createTime: 2024/09/23
* @version: 1.0
*/
public class InterviewEvaluate {
private static final String TABLE_NAME = "uf_jcl_mspjfk";
/**
* 创建面试针对面试官创建面试反馈记录同步批次ID面试ID
*
* @param mainDataMap
* @param msId
* @param user
*/
public static void createEvaluate(Map<String, Object> mainDataMap, int msId, User user) {
int formModeId = ApplicantCommonInfo.getModeIdByTableName(TABLE_NAME);
if (formModeId < 0) {
new BaseBean().writeLog("uf_jcl_mspjfk,未查询到对应模板");
}
String msg = Util.null2String(mainDataMap.get("msg"));
if (StringUtils.isBlank(msg)) {
throw new CustomizeRunTimeException("面试官为空,请检查面试官设置");
}
String[] split = msg.split(",");
for (String msgId : split) {
insertData(mainDataMap, msId, user, TABLE_NAME, formModeId, msgId);
}
}
/**
* 调整面试,同步调整面试反馈记录,若删除面试官则删除对应的面试反馈记录,若增加面试官,则创建增加面试的面试反馈记录
*
* @param mainDataMap
* @param msId
* @param user
*/
public static void updateEvaluate(Map<String, Object> mainDataMap, int msId, User user) {
RecordSet rs = new RecordSet();
int formModeId = ApplicantCommonInfo.getModeIdByTableName(TABLE_NAME);
if (formModeId < 0) {
rs.writeLog("uf_jcl_mspjfk,未查询到对应模板");
}
String msg = Util.null2String(mainDataMap.get("msg"));
if (StringUtils.isBlank(msg)) {
throw new CustomizeRunTimeException("面试官为空,请检查面试官设置");
}
// 删除非面试官数据
rs.executeUpdate("delete from " + TABLE_NAME + " where msid=" + msId + " and msg not in (" + msg + ")");
String[] split = msg.split(",");
String selectSql = "select id from " + TABLE_NAME + " where msid = ? and msg = ?";
for (String msgId : split) {
String billId = "";
rs.executeQuery(selectSql, msId, msgId);
if (rs.next()) {
billId = rs.getString("id");
}
if (StringUtils.isBlank(billId)) {
// 新增数据
insertData(mainDataMap, msId, user, TABLE_NAME, formModeId, msgId);
} else {
// 更新数据
RecruitDataMap<Object> dataMap = new RecruitDataMap<>();
// id
dataMap.put("id", billId);
// 应聘者
dataMap.put("ypz", mainDataMap.get("ypz"));
// 应聘职位
dataMap.put("ypzw", mainDataMap.get("ypzw"));
// 面试方式
dataMap.put("msfs", mainDataMap.get("msfs"));
// 面试环节
dataMap.put("mshj", mainDataMap.get("mshj"));
// 面试轮次
dataMap.put("msc", mainDataMap.get("msc"));
// 面试日期
dataMap.put("msrq", mainDataMap.get("msrq"));
// 面试地址
dataMap.put("msdd", mainDataMap.get("msdd"));
// 更新数据
RecruitRecordSet.updateDataById(dataMap, TABLE_NAME);
}
}
}
/**
* 取消面试,同步取消对应的面试反馈记录的面试状态为已取消
*
* @param msId
*/
public static void cancelEvaluate(int msId) {
RecordSet rs = new RecordSet();
rs.executeUpdate("update " + TABLE_NAME + " set fkzt = 3 where msid=" + msId);
}
/**
* 插入面试评价数据
*
* @param mainDataMap
* @param msId
* @param user
* @param tableName
* @param formModeId
* @param msgId
*/
private static void insertData(Map<String, Object> mainDataMap, int msId, User user, String tableName, int formModeId, String msgId) {
RecruitDataMap<Object> dataMap = new RecruitDataMap<>();
String uuid = UUID.randomUUID().toString();
dataMap.put("modeuuid", uuid);
dataMap.put("formmodeid", formModeId);
RecruitRecordSet.buildModeInsertFields(dataMap, user.getUID());
// 反馈状态(设置为待反馈)
dataMap.put("fkzt", "0");
// 批次ID
dataMap.put("pcid", mainDataMap.get("pcid"));
// 面试ID
dataMap.put("msid", msId);
// 应聘者
dataMap.put("ypz", mainDataMap.get("ypz"));
// 应聘职位
dataMap.put("ypzw", mainDataMap.get("ypzw"));
// 面试方式
dataMap.put("msfs", mainDataMap.get("msfs"));
// 面试环节
dataMap.put("mshj", mainDataMap.get("mshj"));
// 面试轮次
dataMap.put("msc", mainDataMap.get("msc"));
// 面试日期
dataMap.put("msrq", mainDataMap.get("msrq"));
// 面试地址
dataMap.put("msdd", mainDataMap.get("msdd"));
// 面试官
dataMap.put("msg", msgId);
// 创建数据
RecruitRecordSet.insertData(dataMap, tableName);
// 刷新权限
RecruitRecordSet.refreshRight(uuid, tableName, formModeId, user.getUID());
}
}