diff --git a/src/com/engine/recruit/enums/ApplicantOperateEnum.java b/src/com/engine/recruit/enums/ApplicantOperateEnum.java index 6f8a843..4ffe32d 100644 --- a/src/com/engine/recruit/enums/ApplicantOperateEnum.java +++ b/src/com/engine/recruit/enums/ApplicantOperateEnum.java @@ -12,7 +12,10 @@ public enum ApplicantOperateEnum { */ ELIMINATE("eliminate", "淘汰"), REFERRAL("referral", "转推其他职位"), - TRANSFER("transfer", "转移阶段"); + TRANSFER("transfer", "转移阶段"), + ASSIGN("assign", "分配职位"), + ARCHIVE("archive", "归档人才库"), + ; ApplicantOperateEnum(String operateType, String operateDesc) { this.operateType = operateType; diff --git a/src/com/engine/recruit/service/impl/ApplicantResumeServiceImpl.java b/src/com/engine/recruit/service/impl/ApplicantResumeServiceImpl.java index cd4e1e6..7b70ea1 100644 --- a/src/com/engine/recruit/service/impl/ApplicantResumeServiceImpl.java +++ b/src/com/engine/recruit/service/impl/ApplicantResumeServiceImpl.java @@ -6,15 +6,14 @@ import com.engine.recruit.enums.ApplicantOperateEnum; import com.engine.recruit.enums.ApplicationStatusEnum; import com.engine.recruit.service.ApplicantResumeService; import org.apache.commons.lang3.StringUtils; +import weaver.common.DateUtil; import weaver.conn.RecordSet; import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil; +import weaver.formmode.setup.ModeRightInfo; import weaver.general.Util; import weaver.hrm.resource.ResourceComInfo; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author:dxfeng @@ -148,15 +147,38 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu String operateType = Util.null2String(params.get("operateType")); RecordSet rs = new RecordSet(); if (ApplicantOperateEnum.ELIMINATE.getOperateType().equals(operateType)) { + // 淘汰 String ids = Util.null2String(params.get("ids")); rs.executeUpdate("update uf_jcl_yppc set zt = ? where id in (" + ids + ")", ApplicationStatusEnum.OBSOLETE.getValue()); - } - if (ApplicantOperateEnum.TRANSFER.getOperateType().equals(operateType)) { - // TODO + returnMap.put("msg", "操作成功"); + } else if (ApplicantOperateEnum.TRANSFER.getOperateType().equals(operateType)) { + // 转移阶段 String dqypjd = Util.null2String(params.get("dqypjd")); String billid = Util.null2String(params.get("billid")); - // rs.executeUpdate("update uf_jcl_yppc set dqypjd = ? where id = ?", dqypjd, billid); rs.executeUpdate("update uf_jcl_yppc set zpjd = ? where id = ?", dqypjd, billid); + returnMap.put("msg", "操作成功"); + } else if (ApplicantOperateEnum.ASSIGN.getOperateType().equals(operateType)) { + // 分配职位 + String billid = Util.null2String(params.get("billid")); + String ypzw = Util.null2String(params.get("ypzw")); + rs.executeUpdate("update uf_jcl_yppc set ypzw = ? where id = ?", ypzw, billid); + returnMap.put("msg", "操作成功"); + } else if (ApplicantOperateEnum.ARCHIVE.getOperateType().equals(operateType)) { + // 归档人才库 + String gdyy = Util.null2String(params.get("gdyy")); + String gdxxyy = Util.null2String(params.get("gdxxyy")); + String ids = Util.null2String(params.get("ids")); + if (StringUtils.isNotBlank(ids)) { + String[] split = ids.split(","); + for (String id : split) { + rs.executeUpdate("update uf_jcl_yppc set gdyy = ?,gdxxyy = ? where id = ? ", gdyy, gdxxyy, id); + // 建模推送建模 + archiveTalentPool(id, false); + + } + } else { + returnMap.put("msg", "请至少选择一条数据"); + } } return returnMap; } @@ -270,4 +292,201 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu return browserMap; } + + /** + * 归档人才库 + * + * @param applicantId 应聘者ID + * @param joinBlacklist 是否加入黑名单 + */ + private void archiveTalentPool(String applicantId, boolean joinBlacklist) { + RecordSet rs = new RecordSet(); + String name = ""; + String mobile = ""; + String talentPoolId = ""; + rs.executeQuery("select xm,sjhm from uf_jcl_yppc"); + if (rs.next()) { + name = rs.getString("xm"); + mobile = rs.getString("sjhm"); + } + + rs.executeQuery("select id from uf_jcl_rck where xm = ? and sjhm = ?", name, mobile); + if (rs.next()) { + talentPoolId = rs.getString("id"); + } + + // 推送建模主表数据 + String insertSql = "insert into uf_jcl_rck (modeuuid, formmodeid, modedatacreater, modedatacreatedate, modedatacreatetime, modedatamodifier, modedatamodifydatetime, modedatacreatertype," + + "sfz,jlzp,zhypzw,ysjl,jlly,xm,xb,sjhm,dzyx,csrq,nl,zgxl,zgxw,byyx,zy,hyzk,gzjy,zzzt,dqszd,zhtdsj,cjr,zwpj,mz,jg,zzmm,sgcm,tzkg,gdjd,gdyy,gdxxyy,lstdcs,sfjrhmd)" + + " values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + rs.executeQuery("select * from uf_jcl_yppc where id = ?", applicantId); + List mainDataList = new ArrayList<>(); + String uuid = UUID.randomUUID().toString(); + mainDataList.add(uuid); + int formModeId = -1; + rs.executeQuery("select id from modeinfo where formid =( select id from workflow_bill where tablename = 'uf_jcl_rck' )"); + if (rs.next()) { + formModeId = rs.getInt("id"); + } + mainDataList.add(formModeId); + // 构建建模表基本数据 + buildBaseFields(mainDataList); + if (rs.next()) { + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("sfz"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("jlzp"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("ypzw"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("ysjl"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("jlly"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("xm"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("xb"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("sjhm"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("dzyx"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("csrq"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("nl"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zgxl"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zgxw"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("byyx"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zy"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("hyzk"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("gzjy"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zzzt"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("dqszd"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("tdsj"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("cjr"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zwpj"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("mz"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("jg"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zzmm"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("sgcm"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("tzkg"))); + // 归档阶段 + mainDataList.add(null); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("gdyy"))); + mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("gdxxyy"))); + } + // 历史投递次数 + rs.executeQuery("select count(id) as num from uf_jcl_yppc where xm=? and sjhm =?", rs.getString("xm"), rs.getString("sjhm")); + if (rs.next()) { + mainDataList.add(rs.getInt("num")); + } + // 是否加入黑名单 + mainDataList.add(joinBlacklist ? 0 : 1); + + rs.executeUpdate(insertSql, mainDataList); + refreshRight(uuid, formModeId, applicantId); + + + // 删除人才库原来的数据 + rs.executeUpdate("delete from uf_jcl_rck where id = ? ", talentPoolId); + } + + /** + * 构建建模表基本数据 + * + * @param mainDataList 参数集合 + */ + private void buildBaseFields(List mainDataList) { + String dateTime = DateUtil.getFullDate(); + String[] dateSplit = dateTime.split(" "); + // modedatacreater + mainDataList.add(user.getUID()); + // modedatacreatedate + mainDataList.add(dateSplit[0]); + // modedatacreatetime + mainDataList.add(dateSplit[1]); + // modedatamodifier + mainDataList.add(user.getUID()); + // modedatamodifydatetime + mainDataList.add(dateTime); + // modedatacreatertype + mainDataList.add("0"); + } + + /** + * 权限重构 + * + * @param uuid UUID + * @param formModeId 建模ID + * @param applicantId 应聘者ID + */ + private void refreshRight(String uuid, int formModeId, String applicantId) { + RecordSet rs = new RecordSet(); + rs.executeQuery("select id from uf_jcl_rck 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); + + // 插入明细表数据 + rs.executeQuery("select * from uf_jcl_yppc_dt1 where mainid = ? ", applicantId); + List> insertList = new ArrayList<>(); + while (rs.next()) { + List paramList = new ArrayList<>(); + // mainid + paramList.add(bid); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("xxmc"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("xl"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zy"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("kssj"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("jssj"))); + insertList.add(paramList); + } + for (List list : insertList) { + rs.executeUpdate("insert into uf_jcl_rck_dt1 (mainid, xxmc, xl, zy, kssj, jssj) values (?, ?, ?, ?, ?, ?)", list); + } + + rs.executeQuery("select * from uf_jcl_yppc_dt2 where mainid = ? ", applicantId); + insertList = new ArrayList<>(); + while (rs.next()) { + List paramList = new ArrayList<>(); + // mainid + paramList.add(bid); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("gsmc"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("kssj"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("jssj"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("gw"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("gzzz"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("sqyxk"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("lzyy"))); + insertList.add(paramList); + } + for (List list : insertList) { + rs.executeUpdate("insert into uf_jcl_rck_dt2 (mainid, gsmc, kssj, jssj, gw, gzzz, sqyxk, lzyy) values (?, ?, ?, ?, ?, ?, ?, ?)", list); + } + + rs.executeQuery("select * from uf_jcl_yppc_dt3 where mainid = ? ", applicantId); + insertList = new ArrayList<>(); + while (rs.next()) { + List paramList = new ArrayList<>(); + // mainid + paramList.add(bid); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("xmmc"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("kssj"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("jssj"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("drjs"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("xmms"))); + insertList.add(paramList); + } + for (List list : insertList) { + rs.executeUpdate("insert into uf_jcl_rck_dt3 (mainid, xmmc, kssj, jssj, drjs, xmms) values (?, ?, ?, ?, ?, ?)", list); + } + + rs.executeQuery("select * from uf_jcl_yppc_dt4 where mainid = ? ", applicantId); + insertList = new ArrayList<>(); + while (rs.next()) { + List paramList = new ArrayList<>(); + // mainid + paramList.add(bid); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("yylx"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zwcd"))); + insertList.add(paramList); + } + for (List list : insertList) { + rs.executeUpdate("insert into uf_jcl_rck_dt4 (mainid, yylx, zwcd) values (?, ?, ?)", list); + } + } + } }