123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- package com.kingdee.eas.custom.recuritment.service;
- import com.kingdee.bos.BOSException;
- import com.kingdee.bos.Context;
- import com.kingdee.bos.bsf.service.app.IHRMsfService;
- import com.kingdee.bos.dao.IObjectPK;
- import com.kingdee.eas.common.EASBizException;
- import com.kingdee.eas.custom.recuritment.ApplicantBeisenCollection;
- import com.kingdee.eas.custom.recuritment.ApplicantBeisenFactory;
- import com.kingdee.eas.custom.recuritment.ApplicantBeisenInfo;
- import com.kingdee.eas.custom.recuritment.IApplicantBeisen;
- import com.kingdee.util.StringUtils;
- import org.apache.log4j.Logger;
- import java.util.HashMap;
- import java.util.Map;
- /**
- * 同步北森简历:写入北森申请ID和应聘ID
- *
- * @author qingwu
- * @date 2025/6/25
- * @apiNote
- */
- public class SaveBeisenApplyIdService implements IHRMsfService {
- private static Logger logger =
- Logger.getLogger(SaveBeisenApplyIdService.class);
- @Override
- public Object process(Context ctx, Map<String, Object> map) throws EASBizException, BOSException {
- //申请id
- String applyId = (String) map.get("applyId");
- //应聘id
- String candidateId = (String) map.get("candidateId");
- if (StringUtils.isEmpty(applyId)) {
- return packageResult(500, "", "申请id不能为空!");
- }
- if (StringUtils.isEmpty(candidateId)) {
- return packageResult(500, "", "应聘id不能为空!");
- }
- try {
- IApplicantBeisen iApplicantBeisen = ApplicantBeisenFactory.getLocalInstance(ctx);
- String where = "where applyId='" + applyId + "' or candidateId = '" + candidateId + "'";
- ApplicantBeisenCollection applicantBeisenCollection = iApplicantBeisen.getApplicantBeisenCollection(where);
- if (applicantBeisenCollection.size() > 0) {
- ApplicantBeisenInfo applicantBeisenInfo = applicantBeisenCollection.get(0);
- String applyId2 = applicantBeisenInfo.getApplyId();
- String candidateId2 = applicantBeisenInfo.getCandidateId();
- String msg = "";
- if (applyId2.equals(applyId)) {
- msg = "申请id[" + applyId + "]、";
- }
- if (candidateId2.equals(candidateId)) {
- msg += "应聘id[" + candidateId + "]、";
- }
- msg.substring(0, msg.length() - 1);// 删除最后一个字符
- msg += "重复!";
- return packageResult(500, "", msg);
- }
- ApplicantBeisenInfo applicantBeisenInfo = new ApplicantBeisenInfo();
- applicantBeisenInfo.setApplyId(applyId);
- applicantBeisenInfo.setCandidateId(candidateId);
- //String billNumber = NumberCodeRule.readCodeRuleNumber(ctx, applicantBeisenInfo, NumberCodeRule.getMainOrgByCu(ctx));
- //applicantBeisenInfo.setNumber(billNumber);
- ////需求管理
- //RecuritmentDemandInfo recuritmentDemandInfo = getRecuritmentByApplyId(ctx, applyId);
- //if (recuritmentDemandInfo != null) {
- // applicantBeisenInfo.setRecuritment(recuritmentDemandInfo);
- //}
- IObjectPK addnew = iApplicantBeisen.addnew(applicantBeisenInfo);
- if (addnew != null) {
- return packageResult(200, addnew.toString(), "成功");
- }
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- return packageResult(500, "", "保存失败!");
- }
- ///**
- // * 通过申请ID获取需求管理
- // *
- // * @param applyId
- // */
- //public RecuritmentDemandInfo getRecuritmentByApplyId(Context ctx, String applyId) throws JSONException, IOException, URISyntaxException, BOSException, org.json.JSONException {
- // JSONObject pamas = new JSONObject();
- // JSONArray applyIds = new JSONArray();
- // applyIds.add(applyId);
- // pamas.put("applyIds", applyIds);
- // String jobId = "";
- // //根据申请ID获取申请信息
- // JSONObject applyJson = ItalentHelper.getApplyListByApplyId(pamas);
- // logger.error("applyJson--" + applyJson);
- // if (null != applyJson && applyJson.size() > 0 && "200".equals(applyJson.get("code") + "")) {
- // JSONArray data = applyJson.getJSONArray("data");
- // for (int i = 0; i < data.size(); i++) {
- // JSONObject applyData = data.getJSONObject(0);
- // //职位ID
- // jobId = applyData.getString("jobId");
- // }
- // } else {
- // logger.error("根据申请ID获取申请信息失败,原因:" + applyJson.get("message"));
- // }
- // logger.error("jobId--" + jobId);
- // //根据ID获取获取数据单条
- // JSONObject entity = ItalentHelper.getEntity(jobId);
- // logger.error("entity--" + entity);
- // JSONObject entityData = entity.getJSONObject("data");
- // //根据招聘需求ID获取招聘需求
- // JSONObject columns = entityData.getJSONObject("columns");
- // JSONObject recruit = columns.getJSONObject("RecruitRequirementIds");
- // String recruitRequirementId = recruit.getString("value");
- // JSONArray recruitRequirementIds = new JSONArray();
- // recruitRequirementIds.add(recruitRequirementId);
- // //根据招聘需求ID获取招聘需求
- // JSONObject requirements = ItalentHelper.getRequirements(recruitRequirementIds);
- // logger.error("requirements--" + requirements);
- // //一个职位可能关联多个招聘需求,建议校验需求状态,获取需求状态=进行中的招聘需求;
- // JSONArray data = requirements.getJSONArray("data");
- // //需求Id
- // String requirementId = "";
- // for (int i = 0; i < data.size(); i++) {
- // JSONObject requirementData = data.getJSONObject(i);
- // //需求状态 10=草稿,20=审批中,30=审批未通过,40=进行中,50=已关闭,60=已完成,70=已暂停,80=审批已终止
- // String requirementStatus = requirementData.getString("requirementStatus");
- // if ("40".equals(requirementStatus)) {
- // requirementId = requirementData.getString("requirementId");
- // }
- // }
- // //招聘需求
- // IRecuritmentDemand iRecuritmentDemand = RecuritmentDemandFactory.getLocalInstance(ctx);
- // //RecuritmentDemandCollection recuritmentDemandCollection = iRecuritmentDemand.getRecuritmentDemandCollection("where requirementId='" + requirementId + "");
- // //if (recuritmentDemandCollection.size() > 0) {
- // // return recuritmentDemandCollection.get(0);
- // //}
- // return null;
- //}
- /**
- * 封装结果
- *
- * @param code
- * @param number
- * @param msg
- * @return
- */
- public Map packageResult(int code, String number, String msg) {
- Map result = new HashMap();
- result.put("code", code);
- if (number != "") {
- result.put("number", number);
- }
- result.put("message", msg);
- return result;
- }
- }
|