generated from dxfeng/secondev-chapanda-feishu
133 lines
4.8 KiB
Java
133 lines
4.8 KiB
Java
|
|
package com.engine.recruit.service.impl;
|
|||
|
|
|
|||
|
|
import com.engine.core.impl.Service;
|
|||
|
|
import com.engine.recruit.conn.RecruitDataMap;
|
|||
|
|
import com.engine.recruit.conn.RecruitRecordSet;
|
|||
|
|
import com.engine.recruit.enums.InfoCollectEnum;
|
|||
|
|
import com.engine.recruit.enums.PositionOperateEnum;
|
|||
|
|
import com.engine.recruit.service.InductionManageService;
|
|||
|
|
import com.engine.recruit.util.RecruitMessageUtils;
|
|||
|
|
import org.apache.commons.lang3.StringUtils;
|
|||
|
|
import weaver.conn.RecordSet;
|
|||
|
|
import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil;
|
|||
|
|
import weaver.general.Util;
|
|||
|
|
|
|||
|
|
import java.util.*;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @author:dxfeng
|
|||
|
|
* @createTime: 2023/10/23
|
|||
|
|
* @version: 1.0
|
|||
|
|
*/
|
|||
|
|
public class InductionManageServiceImpl extends Service implements InductionManageService {
|
|||
|
|
@Override
|
|||
|
|
public Map<String, Object> updateInductionManageInfo(Map<String, Object> param) {
|
|||
|
|
String operateType = Util.null2String(param.get("operateType"));
|
|||
|
|
|
|||
|
|
if (PositionOperateEnum.PREPARE.getOperateType().equals(operateType)) {
|
|||
|
|
// 发起入职准备
|
|||
|
|
|
|||
|
|
// 反填流程信息到建模表
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@Override
|
|||
|
|
public Map<String, Object> sendCollectInfo(Map<String, Object> param) {
|
|||
|
|
String ids = Util.null2String(param.get("ids"));
|
|||
|
|
String[] split = ids.split(",");
|
|||
|
|
|
|||
|
|
RecordSet rs = new RecordSet();
|
|||
|
|
for (String billId : split) {
|
|||
|
|
// 根据入职管理信息完善信息采集表单
|
|||
|
|
Map<String, Object> dataMap = new RecruitDataMap<>();
|
|||
|
|
String uuid = UUID.randomUUID().toString();
|
|||
|
|
dataMap.put("modeuuid", uuid);
|
|||
|
|
int formModeId = -1;
|
|||
|
|
rs.executeQuery("select id from modeinfo where formid =( select id from workflow_bill where tablename = 'uf_jcl_xxcj' )");
|
|||
|
|
if (rs.next()) {
|
|||
|
|
formModeId = rs.getInt("id");
|
|||
|
|
}
|
|||
|
|
dataMap.put("formmodeid", formModeId);
|
|||
|
|
// 构建建模表基本数据
|
|||
|
|
RecruitRecordSet.buildModeBaseFields(dataMap, user.getUID());
|
|||
|
|
|
|||
|
|
rs.executeQuery("select * from uf_jcl_rzgl where id = ? ", billId);
|
|||
|
|
if (rs.next()) {
|
|||
|
|
dataMap.put("xm", RecruitModeUtil.parseBlankToNull(rs.getString("xm")));
|
|||
|
|
dataMap.put("sfzh", RecruitModeUtil.parseBlankToNull(rs.getString("sfzh")));
|
|||
|
|
dataMap.put("nl", RecruitModeUtil.parseBlankToNull(rs.getString("nl")));
|
|||
|
|
dataMap.put("xb", RecruitModeUtil.parseBlankToNull(rs.getString("xb")));
|
|||
|
|
dataMap.put("sjh", RecruitModeUtil.parseBlankToNull(rs.getString("sjhm")));
|
|||
|
|
dataMap.put("yx", RecruitModeUtil.parseBlankToNull(rs.getString("dzyx")));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// 生成登录密码
|
|||
|
|
String password = generatePassword();
|
|||
|
|
dataMap.put("mm", password);
|
|||
|
|
|
|||
|
|
|
|||
|
|
// 发送短信
|
|||
|
|
String mobile = Util.null2String(dataMap.get("sjh"));
|
|||
|
|
String messageContent = RecruitModeUtil.getRecruitPropValue("COLLECT_MESSAGE_CONTENT");
|
|||
|
|
// TODO
|
|||
|
|
if (StringUtils.isBlank(messageContent)) {
|
|||
|
|
//throw new CustomizeRunTimeException("未获取到短信内容,请检查配置");
|
|||
|
|
} else {
|
|||
|
|
RecruitMessageUtils.sendSMS(mobile, messageContent);
|
|||
|
|
}
|
|||
|
|
// 插入数据
|
|||
|
|
RecruitRecordSet.insertData(dataMap, "uf_jcl_xxcj");
|
|||
|
|
int id = RecruitRecordSet.refreshRight(uuid, "uf_jcl_xxcj", formModeId);
|
|||
|
|
|
|||
|
|
// 更新状态为已发送,反填信息采集ID
|
|||
|
|
rs.executeUpdate("update uf_jcl_rzgl set xxcj = ? ,xxcjid = ? where id = ? ", InfoCollectEnum.HAS_SENT, id, billId);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@Override
|
|||
|
|
public Map<String, Object> checkLoginInfo(Map<String, Object> param) {
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 随机八位不重复登录密码,含数字、字母
|
|||
|
|
*
|
|||
|
|
* @return 登录密码
|
|||
|
|
*/
|
|||
|
|
private String generatePassword() {
|
|||
|
|
String letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|||
|
|
String numbers = "0123456789";
|
|||
|
|
String characters = letters + numbers;
|
|||
|
|
|
|||
|
|
List<Character> randomChars = new ArrayList<>();
|
|||
|
|
Random random = new Random();
|
|||
|
|
|
|||
|
|
// 随机取得一个字母
|
|||
|
|
randomChars.add(letters.charAt(random.nextInt(letters.length())));
|
|||
|
|
|
|||
|
|
// 随机取得一个数字
|
|||
|
|
randomChars.add(numbers.charAt(random.nextInt(numbers.length())));
|
|||
|
|
|
|||
|
|
// 随机取得六个字符(字母或数字)
|
|||
|
|
for (int i = 0; i < 6; i++) {
|
|||
|
|
randomChars.add(characters.charAt(random.nextInt(characters.length())));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 打乱字符的顺序
|
|||
|
|
Collections.shuffle(randomChars);
|
|||
|
|
|
|||
|
|
// 将字符列表转为字符串
|
|||
|
|
StringBuilder sb = new StringBuilder();
|
|||
|
|
for (char c : randomChars) {
|
|||
|
|
sb.append(c);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return sb.toString();
|
|||
|
|
}
|
|||
|
|
}
|