generated from dxfeng/secondev-chapanda-feishu
Merge branch 'feature/dxf' into 20260108
This commit is contained in:
commit
c46ed8ca25
|
|
@ -5,6 +5,7 @@ import com.engine.recruit.exception.CustomizeRunTimeException;
|
|||
import com.weaver.rpa.sdk.clients.application.resume.ERPAResumeSDKClient;
|
||||
import com.weaver.rpa.sdk.clients.application.resume.entity.ResumeJobDynamicField;
|
||||
import com.weaver.rpa.sdk.clients.core.ERPASDKClients;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import weaver.formmode.recruit.modeexpand.util.RecruitPositionUtil;
|
||||
import weaver.general.BaseBean;
|
||||
|
||||
|
|
@ -51,58 +52,62 @@ public class PositionSdkInstance {
|
|||
|
||||
}
|
||||
|
||||
|
||||
public static PositionSdkInstance getPositionSdkInstance() {
|
||||
if (positionSdkInstance == null) {
|
||||
public static PositionSdkInstance getPositionSdkInstance() {
|
||||
if (positionSdkInstance == null || CollectionUtils.isEmpty(positionSdkInstance.getBoss_type())) {
|
||||
synchronized (PositionSdkInstance.class) {
|
||||
if (positionSdkInstance == null) {
|
||||
ERPAResumeSDKClient client = null;
|
||||
try {
|
||||
client = ERPASDKClients.getResumeSDKClient();
|
||||
} catch (Exception e) {
|
||||
new BaseBean().writeLog("client get resumeSDKClient failed!");
|
||||
}
|
||||
if (!RecruitPositionUtil.checkAvailable(client)) {
|
||||
throw new CustomizeRunTimeException("checkAvailable失败!千里聆SDK不可用");
|
||||
}
|
||||
ResumeJobDynamicField resumeJobDynamicField = client.getResumeJobDynamicField();
|
||||
positionSdkInstance = new PositionSdkInstance();
|
||||
positionSdkInstance.setResumeSDKClient(client);
|
||||
client.addResumeSavedListener(resumeMqMessage -> {
|
||||
// 处理获取到的简历信息
|
||||
new BaseBean().writeLog("【简历接收回调】:" + JSON.toJSONString(resumeMqMessage));
|
||||
//Thread thread = new Thread(new SdkResumeSavedThread(resumeMqMessage));
|
||||
//thread.start();
|
||||
});
|
||||
client.start();
|
||||
positionSdkInstance.setBoss_resident(resumeJobDynamicField.getBoss_resident());
|
||||
// 去除千里聆返回的重复数据
|
||||
List<ResumeJobDynamicField.Item> boss_resident_country1 = resumeJobDynamicField.getBoss_resident_country();
|
||||
List<ResumeJobDynamicField.Item> collect = new ArrayList<>(boss_resident_country1.stream()
|
||||
.collect(Collectors.toMap(
|
||||
ResumeJobDynamicField.Item::getValue,
|
||||
item -> item,
|
||||
(existing, replacement) -> existing
|
||||
))
|
||||
.values());
|
||||
positionSdkInstance.setBoss_resident_country(collect);
|
||||
positionSdkInstance.setBoss_resident_language(resumeJobDynamicField.getBoss_resident_language());
|
||||
positionSdkInstance.setBoss_resident_time_2(resumeJobDynamicField.getBoss_resident_time_2());
|
||||
positionSdkInstance.setBoss_resident_time(resumeJobDynamicField.getBoss_resident_time());
|
||||
if (positionSdkInstance == null || CollectionUtils.isEmpty(positionSdkInstance.getBoss_type())) {
|
||||
if (null == positionSdkInstance) {
|
||||
ERPAResumeSDKClient client = null;
|
||||
try {
|
||||
client = ERPASDKClients.getResumeSDKClient();
|
||||
} catch (Exception e) {
|
||||
new BaseBean().writeLog("client get resumeSDKClient failed!");
|
||||
}
|
||||
if (!RecruitPositionUtil.checkAvailable(client)) {
|
||||
throw new CustomizeRunTimeException("checkAvailable失败!千里聆SDK不可用");
|
||||
}
|
||||
|
||||
positionSdkInstance.setJob51_city(resumeJobDynamicField.getJob51_city());
|
||||
positionSdkInstance.setJob51_industry(resumeJobDynamicField.getJob51_industry_txt());
|
||||
positionSdkInstance = new PositionSdkInstance();
|
||||
positionSdkInstance.setResumeSDKClient(client);
|
||||
client.addResumeSavedListener(resumeMqMessage -> {
|
||||
// 处理获取到的简历信息
|
||||
new BaseBean().writeLog("【简历接收回调】:" + JSON.toJSONString(resumeMqMessage));
|
||||
//Thread thread = new Thread(new SdkResumeSavedThread(resumeMqMessage));
|
||||
//thread.start();
|
||||
});
|
||||
client.start();
|
||||
}
|
||||
ResumeJobDynamicField resumeJobDynamicField = positionSdkInstance.getResumeSDKClient().getResumeJobDynamicField();
|
||||
if(CollectionUtils.isEmpty(positionSdkInstance.getBoss_resident())) {
|
||||
positionSdkInstance.setBoss_resident(resumeJobDynamicField.getBoss_resident());
|
||||
// 去除千里聆返回的重复数据
|
||||
List<ResumeJobDynamicField.Item> boss_resident_country1 = resumeJobDynamicField.getBoss_resident_country();
|
||||
List<ResumeJobDynamicField.Item> collect = new ArrayList<>(boss_resident_country1.stream()
|
||||
.collect(Collectors.toMap(
|
||||
ResumeJobDynamicField.Item::getValue,
|
||||
item -> item,
|
||||
(existing, replacement) -> existing
|
||||
))
|
||||
.values());
|
||||
positionSdkInstance.setBoss_resident_country(collect);
|
||||
positionSdkInstance.setBoss_resident_language(resumeJobDynamicField.getBoss_resident_language());
|
||||
positionSdkInstance.setBoss_resident_time_2(resumeJobDynamicField.getBoss_resident_time_2());
|
||||
positionSdkInstance.setBoss_resident_time(resumeJobDynamicField.getBoss_resident_time());
|
||||
|
||||
positionSdkInstance.setBoss_type(resumeJobDynamicField.getBoss_type());
|
||||
positionSdkInstance.setLiepin_type(resumeJobDynamicField.getLiepin_type());
|
||||
positionSdkInstance.setLagou_type(resumeJobDynamicField.getLagou_type());
|
||||
positionSdkInstance.setJob51_type(resumeJobDynamicField.getJob51_type());
|
||||
positionSdkInstance.setZhilian_type(resumeJobDynamicField.getZhilian_type());
|
||||
positionSdkInstance.setDxrcw_type(resumeJobDynamicField.getDxrcw_type());
|
||||
positionSdkInstance.setDxrcw_major(resumeJobDynamicField.getDxrcw_major());
|
||||
positionSdkInstance.setDxrcw_yydj(resumeJobDynamicField.getDxrcw_yydj());
|
||||
positionSdkInstance.setDxrcw_zdzc(resumeJobDynamicField.getDxrcw_zdzc());
|
||||
positionSdkInstance.setDxrcw_zwfl(resumeJobDynamicField.getDxrcw_zwfl());
|
||||
positionSdkInstance.setJob51_city(resumeJobDynamicField.getJob51_city());
|
||||
positionSdkInstance.setJob51_industry(resumeJobDynamicField.getJob51_industry_txt());
|
||||
|
||||
positionSdkInstance.setBoss_type(resumeJobDynamicField.getBoss_type());
|
||||
positionSdkInstance.setLiepin_type(resumeJobDynamicField.getLiepin_type());
|
||||
positionSdkInstance.setLagou_type(resumeJobDynamicField.getLagou_type());
|
||||
positionSdkInstance.setJob51_type(resumeJobDynamicField.getJob51_type());
|
||||
positionSdkInstance.setZhilian_type(resumeJobDynamicField.getZhilian_type());
|
||||
positionSdkInstance.setDxrcw_type(resumeJobDynamicField.getDxrcw_type());
|
||||
positionSdkInstance.setDxrcw_major(resumeJobDynamicField.getDxrcw_major());
|
||||
positionSdkInstance.setDxrcw_yydj(resumeJobDynamicField.getDxrcw_yydj());
|
||||
positionSdkInstance.setDxrcw_zdzc(resumeJobDynamicField.getDxrcw_zdzc());
|
||||
positionSdkInstance.setDxrcw_zwfl(resumeJobDynamicField.getDxrcw_zwfl());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -207,6 +207,6 @@ public class QllResumePo {
|
|||
if (StringUtils.isBlank(str)) {
|
||||
return "";
|
||||
}
|
||||
return str.replaceAll("[\\pC]", "").replace("\\n", "\n").replace("\\r", "");
|
||||
return str.replaceAll("[\\pC]", "").replace("\\n", "\n").replace("\\r", "").replace("</br>","\n");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.engine.recruit.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.recruit.conn.ApplicantCommonInfo;
|
||||
import com.engine.recruit.conn.RecruitDataMap;
|
||||
|
|
@ -79,6 +80,8 @@ public class InductionManageServiceImpl extends Service implements InductionMana
|
|||
// 查询当前数据字段值
|
||||
rs.executeQuery("select * from uf_jcl_rzgl where id = ? ", billId);
|
||||
Map<String, Object> mainDataMap = RecruitRecordSet.getSingleRecordMap(rs);
|
||||
rs.writeLog("billid==" + billId);
|
||||
rs.writeLog("mainDataMap==" + JSON.toJSONString(mainDataMap));
|
||||
|
||||
|
||||
// 根据入职管理信息完善信息采集表单
|
||||
|
|
@ -97,6 +100,8 @@ public class InductionManageServiceImpl extends Service implements InductionMana
|
|||
dataMap.put("yx", RecruitModeUtil.parseBlankToNull(mainDataMap.get("dzyx")));
|
||||
|
||||
String xxcjid = Util.null2String(mainDataMap.get("xxcjid"));
|
||||
rs.writeLog("xxcjid==" + xxcjid);
|
||||
|
||||
String password = "";
|
||||
// 已发送信息采集通知的可以继续发送邮件通知,沿用原先的账号、密码
|
||||
if (StringUtils.isNotBlank(xxcjid)) {
|
||||
|
|
@ -106,11 +111,17 @@ public class InductionManageServiceImpl extends Service implements InductionMana
|
|||
password = rs.getString("mm");
|
||||
mainDataMap.put("sjhm", RecruitModeUtil.parseBlankToNull(rs.getString("sjh")));
|
||||
}
|
||||
rs.writeLog("password-old==" + password);
|
||||
rs.writeLog("mainDataMap==" + JSON.toJSONString(mainDataMap));
|
||||
|
||||
|
||||
}
|
||||
// 如果密码为空,则创建信息采集数据
|
||||
if (StringUtils.isBlank(password)) {
|
||||
// 生成登录密码
|
||||
password = generatePassword();
|
||||
rs.writeLog("password-new==" + password);
|
||||
|
||||
dataMap.put("mm", password);
|
||||
|
||||
dataMap.put("modedatastatus", "1");
|
||||
|
|
@ -121,27 +132,37 @@ public class InductionManageServiceImpl extends Service implements InductionMana
|
|||
xxcjid = String.valueOf(id);
|
||||
// 更新状态为已发送,反填信息采集ID
|
||||
rs.executeUpdate("update uf_jcl_rzgl set xxcj = ? ,xxcjid = ? where id = ? ", InfoCollectEnum.HAS_SENT.getId(), id, billId);
|
||||
|
||||
rs.writeLog("dataMap==" + JSON.toJSONString(dataMap));
|
||||
rs.writeLog("xxcjid==" + xxcjid);
|
||||
|
||||
}
|
||||
|
||||
String smsContent;
|
||||
String emailContent;
|
||||
String emailContent = yjnr;
|
||||
// 发送短信
|
||||
String mobile = Util.null2String(dataMap.get("sjh"));
|
||||
String email = Util.null2String(dataMap.get("yx"));
|
||||
|
||||
String messageLink = RecruitConstant.COLLECT_MESSAGE_LINK;
|
||||
//messageLink += "&billId=" + id;
|
||||
rs.writeLog("emailContent[替换前]==" + emailContent);
|
||||
|
||||
yjnr = yjnr.replace("{初始密码}", password);
|
||||
emailContent = emailContent.replace("{初始密码}", password);
|
||||
rs.writeLog("emailContent[替换后]==" + emailContent);
|
||||
|
||||
smsContent = yjnr.replace("{链接地址}", messageLink);
|
||||
|
||||
smsContent = emailContent.replace("{链接地址}", messageLink);
|
||||
smsContent = RecruitModeUtil.getReplaceContent(smsContent, fieldMapList, mainDataMap);
|
||||
|
||||
rs.writeLog("smsContent==" + smsContent);
|
||||
|
||||
if (StringUtils.isNotBlank(messageLink)) {
|
||||
messageLink = "<span><a href='" + messageLink + "' target='_blank'>链接地址</a></span>";
|
||||
}
|
||||
emailContent = yjnr.replace("{链接地址}", messageLink);
|
||||
emailContent = emailContent.replace("{链接地址}", messageLink);
|
||||
emailContent = RecruitModeUtil.getReplaceContent(emailContent, fieldMapList, mainDataMap);
|
||||
rs.writeLog("emailContent==" + emailContent);
|
||||
// 发送邮件
|
||||
RecruitMessageUtils.sendEmail(email, yjzt, emailContent);
|
||||
// 发送短信
|
||||
|
|
@ -199,23 +220,32 @@ public class InductionManageServiceImpl extends Service implements InductionMana
|
|||
String mobile = Util.null2String(param.get("mobile"));
|
||||
String pwd = Util.null2String(param.get("pwd"));
|
||||
rs.executeQuery("select id from uf_jcl_xxcj where sjh = ? and mm = ?", mobile, pwd);
|
||||
rs.writeLog("mobile=="+mobile);
|
||||
rs.writeLog("pwd=="+pwd);
|
||||
String xxcjId = "";
|
||||
if (rs.next()) {
|
||||
xxcjId = rs.getString("id");
|
||||
} else {
|
||||
throw new CustomizeRunTimeException("手机号或密码错误");
|
||||
}
|
||||
rs.writeLog("xxcjId=="+xxcjId);
|
||||
|
||||
|
||||
// 校验当前链接的有效期
|
||||
rs.executeQuery("select * from uf_jcl_rzgl where xxcjid = ? ", xxcjId);
|
||||
if (rs.next()) {
|
||||
// 当前关联入职已取消入职/已入职;点击提示当前链接已失效,且不可操作
|
||||
String entryStatus = rs.getString("rzzt");
|
||||
rs.writeLog("entryStatus=="+entryStatus);
|
||||
|
||||
if ("1".equals(entryStatus) || "2".equals(entryStatus)) {
|
||||
throw new CustomizeRunTimeException("当前链接已失效");
|
||||
}
|
||||
// 当前信息采集链接的地址默认有效期为发出日期~预计入职日期
|
||||
String date = rs.getString("yjrzrq");
|
||||
rs.writeLog("date=="+date);
|
||||
rs.writeLog("currentDate=="+DateUtil.getCurrentDate());
|
||||
|
||||
int compDate = DateUtil.compDate(DateUtil.getCurrentDate(), date);
|
||||
if (compDate < 0) {
|
||||
throw new CustomizeRunTimeException("当前链接已失效");
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package weaver.formmode.recruit.modeexpand.offer;
|
||||
|
||||
import com.engine.recruit.conn.ApplicantCommonInfo;
|
||||
import com.engine.recruit.constant.RecruitConstant;
|
||||
import com.engine.recruit.enums.RecordOperateEnum;
|
||||
import com.engine.recruit.util.RecruitMessageUtils;
|
||||
|
|
@ -67,7 +68,9 @@ public class CreateOfferModeExpand extends AbstractModeExpandJavaCodeNew {
|
|||
}
|
||||
if (sendSms) {
|
||||
String name = Util.null2String(mainDataMap.get("xm"));
|
||||
name= ApplicantCommonInfo.getApplicantName(name);
|
||||
String positionName = Util.null2String(mainDataMap.get("zpzwmc"));
|
||||
positionName=ApplicantCommonInfo.getApplicantPosition(positionName);
|
||||
String endDate = Util.null2String(mainDataMap.get("sxrq"));
|
||||
String companyId = Util.null2String(mainDataMap.get("rzgs"));
|
||||
//if (StringUtils.isAnyBlank(name, positionName, endDate, companyId)) {
|
||||
|
|
|
|||
|
|
@ -47,8 +47,6 @@ public class RecruitFlowToModeAction implements Action {
|
|||
@Override
|
||||
public String execute(RequestInfo requestInfo) {
|
||||
MainTableInfo mainTableInfo = requestInfo.getMainTableInfo();
|
||||
int billId = requestInfo.getRequestManager().getBillid();
|
||||
int formid = requestInfo.getRequestManager().getFormid();
|
||||
User user = requestInfo.getRequestManager().getUser();
|
||||
|
||||
DetailTableInfo detailTableInfo = requestInfo.getDetailTableInfo();
|
||||
|
|
@ -58,6 +56,7 @@ public class RecruitFlowToModeAction implements Action {
|
|||
// 需求审批流程ID
|
||||
mainMap.put("xqsplc", requestInfo.getRequestid());
|
||||
int formModeId = ApplicantCommonInfo.getModeIdByTableName(MODE_TABLE_NAME);
|
||||
int formId = ApplicantCommonInfo.getFormIdByTableName(MODE_TABLE_NAME);
|
||||
|
||||
Property[] propertyArray = mainTableInfo.getProperty();
|
||||
for (Property property : propertyArray) {
|
||||
|
|
@ -75,8 +74,7 @@ public class RecruitFlowToModeAction implements Action {
|
|||
mainMap.put("modedatacreatertype", "0");
|
||||
|
||||
Map<String, String> messageMap = new HashMap<>();
|
||||
messageMap.put("billId", String.valueOf(billId));
|
||||
messageMap.put("formId", String.valueOf(formid));
|
||||
messageMap.put("formId", String.valueOf(formId));
|
||||
messageMap.put("modeId", String.valueOf(formModeId));
|
||||
|
||||
List<Map<String, Object>> insertList = new ArrayList<>();
|
||||
|
|
@ -105,7 +103,8 @@ public class RecruitFlowToModeAction implements Action {
|
|||
String uuid = UUID.randomUUID().toString();
|
||||
objects.add(0, uuid);
|
||||
rst.executeUpdate(sql, objects);
|
||||
RecruitRecordSet.refreshRight(uuid, MODE_TABLE_NAME, formModeId, requestInfo.getRequestManager().getCreater());
|
||||
int billid = RecruitRecordSet.refreshRight(uuid, MODE_TABLE_NAME, formModeId, requestInfo.getRequestManager().getCreater());
|
||||
messageMap.put("billId", String.valueOf(billid));
|
||||
|
||||
// 申请人ID
|
||||
String applicant = Util.null2String(map.get("sqr"));
|
||||
|
|
|
|||
Loading…
Reference in New Issue