package weaver.formmode.recruit.modeexpand.departmentscreening; 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; import weaver.formmode.recruit.modeexpand.util.ApplicantCommonInfo; import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil; import weaver.formmode.setup.ModeRightInfo; import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.User; import weaver.soa.workflow.request.MainTableInfo; import weaver.soa.workflow.request.Property; import weaver.soa.workflow.request.RequestInfo; import java.util.*; /** *

聚才林招聘

* 单一发起部门筛选,转部门筛选反馈数据 * * @author:dxfeng * @createTime: 2023/09/18 * @version: 1.0 */ public class SingleAddDeptScreeningModeExpand extends AbstractModeExpandJavaCodeNew { /** * JCL_部门筛选反馈(uf_jcl_bmsxfk) */ private static final String MODE_TABLE_NAME = "uf_jcl_bmsxfk"; @Override public Map doModeExpand(Map param) { Map result = new HashMap<>(); try { RequestInfo requestInfo = (RequestInfo) param.get("RequestInfo"); if (requestInfo != null) { Map dataMap = new HashMap<>(); MainTableInfo mainTableInfo = requestInfo.getMainTableInfo(); Property[] properties = mainTableInfo.getProperty(); for (Property property : properties) { dataMap.put(property.getName(), property.getValue()); } int formModeId = -1; RecordSet rs = new RecordSet(); rs.executeQuery("select id from modeinfo where formid =( select id from workflow_bill where tablename = ? )", MODE_TABLE_NAME); if (rs.next()) { formModeId = rs.getInt("id"); } User user = (User) param.get("user"); // 部门筛选ID dataMap.put("bmsxid", requestInfo.getRequestid()); // 状态 dataMap.put("zt", "0"); // 填充建模数据基本信息 dataMap.put("formmodeid", formModeId); dataMap.put("modedatacreater", user.getUID()); String dateTime = DateUtil.getFullDate(); String[] split = dateTime.split(" "); dataMap.put("modedatacreatedate", split[0]); dataMap.put("modedatacreatetime", split[1]); dataMap.put("modedatamodifier", user.getUID()); dataMap.put("modedatamodifydatetime", dateTime); dataMap.put("modedatacreatertype", "0"); List> paramList = new ArrayList<>(); buildParamList(dataMap, paramList); if (CollectionUtils.isNotEmpty(paramList)) { String insertSql = "insert into " + MODE_TABLE_NAME + " (modeuuid, modedatacreatertype, formmodeid, modedatacreater, modedatacreatedate, modedatacreatetime, modedatamodifier, modedatamodifydatetime, bmsxid, ypz, ypzw, tdsj, zt, pcid, fkr) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; for (List objects : paramList) { String uuid = UUID.randomUUID().toString(); objects.add(0, uuid); rs.executeUpdate(insertSql, objects); refreshRight(rs, uuid, formModeId); } } // 发送待办消息 String messageType = RecruitModeUtil.getRecruitPropValue("SCREENING_MESSAGE_TYPE"); String messageTitle = RecruitModeUtil.getRecruitPropValue("SCREENING_MESSAGE_TITLE"); String linkUrl = RecruitModeUtil.getRecruitPropValue("SCREENING_MESSAGE_URL"); String fkr = Util.null2String(dataMap.get("fkr")); String applicantName = ApplicantCommonInfo.getApplicantName(Util.null2String(param.get("ypz"))); String applicantPosition = ApplicantCommonInfo.getApplicantPosition(Util.null2String(param.get("ypzw"))); String messageContent = user.getLastname() + "给你发来简历进行筛选,请查看。
" + "【应聘者:" + applicantName + ",应聘职位:" + applicantPosition + "】"; Set userIdSet = new HashSet<>(Arrays.asList(fkr.split(","))); RecruitModeUtil.messagePush(messageType, messageTitle, messageContent, userIdSet, user.getUID(), linkUrl, ""); } } catch (Exception e) { new BaseBean().writeLog(e); result.put("errmsg", "自定义出错信息"); result.put("flag", "false"); } return result; } /** * 构建批量插入数据集合 * * @param map 表单参数 * @param paramList 待插入数据集合 */ private void buildParamList(Map map, List> paramList) { List param = new ArrayList<>(); // 填充建模表相关字段 param.add(map.get("modedatacreatertype")); param.add(map.get("formmodeid")); param.add(map.get("modedatacreater")); param.add(map.get("modedatacreatedate")); param.add(map.get("modedatacreatetime")); param.add(map.get("modedatamodifier")); param.add(map.get("modedatamodifydatetime")); //部门筛选ID param.add(map.get("bmsxid")); // 应聘者 param.add(map.get("ypz")); // 应聘职位 param.add(map.get("ypzw")); // 投递时间 param.add(map.get("tdsj")); // 状态 param.add(map.get("zt")); // 批次ID param.add(map.get("pcid")); // 反馈人 String fkr = Util.null2String(map.get("fkr")); if (StringUtils.isNotBlank(fkr)) { String[] fkrArray = fkr.split(","); for (String fkrId : fkrArray) { ArrayList objects = new ArrayList<>(param); objects.add(fkrId); paramList.add(objects); } } } /** * 权限重构 * * @param rs RecordSet * @param uuid UUID * @param formModeId 建模ID */ private void refreshRight(RecordSet rs, String uuid, int formModeId) { rs.executeQuery("select id from " + MODE_TABLE_NAME + " 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); } } }