/// <summary> /// 得到一个对象实体 /// </summary> public tabResumeOutlineModel GetModel(int id) { StringBuilder strSql = new StringBuilder(); strSql.Append("select * "); strSql.Append(" from tabResumeOutline "); strSql.Append(" where id=@id"); SqlParameter[] parameters = { new SqlParameter("@id", SqlDbType.Int, 4) }; parameters[0].Value = id; tabResumeOutlineModel model = new tabResumeOutlineModel(); DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters); if (ds.Tables[0].Rows.Count > 0) { return(ModelHandler <tabResumeOutlineModel> .FillModel(ds.Tables[0].Rows[0])); } else { return(null); } }
void MatchForCV(int ResumeID) { try { #region tabResumeOutlineModel modelRmOtln = tabResumeOutlineBLL.GetInstance().GetModel(ResumeID); #endregion } catch (Exception ex) { WinFormControlHelper.AddLog(rtbLog, "MatchForCV", ex.Message); } }
void funResumeOutLine(int ResumeID) { try { #region WinFormControlHelper.AddLog(rtbLog, "开始操作" + ResumeID, ""); int count = 0; string _where = ""; string _order = " id desc"; //获取详情 tabResumeModel modelRm = tabResumeBLL.GetInstance().GetModel(ResumeID); _where = string.Format(" id={0} ", modelRm.ParentID); tabUserModel modelUsr = tabUserBLL.GetInstance().GetModel(_where, 0); if (modelUsr.IsNull()) { modelUsr = new tabUserModel(); } _where = string.Format(" ParentID={0} ", modelRm.id); List <tabExperienceEduModel> lsmodelEdu = tabExperienceEduBLL.GetInstance().GetModelList(20, 1, _where, _order, out count); if (lsmodelEdu.IsNull()) { lsmodelEdu = new List <tabExperienceEduModel>(); } List <tabExperienceWorkModel> lsmodelWork = tabExperienceWorkBLL.GetInstance().GetModelList(20, 1, _where, _order, out count); if (lsmodelWork.IsNull()) { lsmodelWork = new List <tabExperienceWorkModel>(); } List <tabExperienceProjectModel> lsmodelProject = tabExperienceProjectBLL.GetInstance().GetModelList(20, 1, _where, _order, out count); if (lsmodelProject.IsNull()) { lsmodelProject = new List <tabExperienceProjectModel>(); } //组合成新的模型 bool IsExist = false; _where = string.Format(" ResumeID={0} ", modelRm.id); tabResumeOutlineModel modelRmOtln = tabResumeOutlineBLL.GetInstance().GetModel(_where, 0); IsExist = modelRmOtln.IsNotNull(); if (!IsExist) { modelRmOtln = new tabResumeOutlineModel(); } #region modelRmOtln.ResumeID = modelRm.id; modelRmOtln.ResumeNo = modelRm.ResumeNo; modelRmOtln.ResumeName = modelRm.ResumeName; modelRmOtln.HopeAddress = modelRm.HopeAddress; modelRmOtln.HopeIndustry = modelRm.HopeIndustry; modelRmOtln.HopePosition = modelRm.HopePosition; modelRmOtln.HopeSalary = modelRm.HopeSalary; modelRmOtln.RealName = modelUsr.RealName; modelRmOtln.Birthday = modelUsr.Birthday; modelRmOtln.Mobile = modelUsr.Mobile; modelRmOtln.Email = modelUsr.Email; modelRmOtln.Sex = modelUsr.Sex; string strSkill = modelRm.Other + " "; #region modelRmOtln.School = ""; modelRmOtln.Major = ""; foreach (tabExperienceEduModel model in lsmodelEdu) { modelRmOtln.School += model.SchoolName + " "; modelRmOtln.Major += model.ProfessionalName + " "; } #endregion #region foreach (tabExperienceWorkModel model in lsmodelWork) { strSkill += model.PositionDuties + " " + model.WorkPerformance + " "; } #endregion #region foreach (tabExperienceProjectModel model in lsmodelProject) { strSkill += model.ProjectDesc + " " + model.ProjectPerformance + " "; } #endregion #region Skill // List <string> lsSkill = PanGuSegmentHelper.SegmentToStringList(strSkill); //分词 hsCVSkill = new HashSet <string>(); foreach (string key in lsSkill) //加入集合 { hsCVSkill.Add(key); hsCVJDSkillFull.Add(key); } //获得交集 hsCVSkill.IntersectWith(hsCVJDKeyWord); //转化成字符串 strSkill = ""; foreach (string str in hsCVSkill) { strSkill += str + " "; } modelRmOtln.Skill = strSkill; WinFormControlHelper.AddLog(rtbLog, modelRmOtln.ResumeName, modelRmOtln.Skill); #endregion #endregion //插入或更新 if (IsExist) { tabResumeOutlineBLL.GetInstance().Update(modelRmOtln); } else { tabResumeOutlineBLL.GetInstance().Add(modelRmOtln); } #endregion } catch (Exception ex) { WinFormControlHelper.AddLog(rtbLog, "funResumeOutLine", ex.Message); } }
/// <summary> /// 增加一条数据 /// </summary> public int Add(tabResumeOutlineModel model) { return(dal.Add(model)); }
/// <summary> /// 更新一条数据 /// </summary> public bool Update(tabResumeOutlineModel model, List <string> ChangedFields) { StringBuilder strSql = new StringBuilder(); strSql.Append("update tabResumeOutline set "); strSql.Append(" ResumeID = @ResumeID , "); strSql.Append(" ResumeNo = @ResumeNo , "); strSql.Append(" ResumeName = @ResumeName , "); strSql.Append(" Status = @Status , "); strSql.Append(" CreateUser = @CreateUser , "); strSql.Append(" CreateDate = @CreateDate , "); strSql.Append(" ParentID = @ParentID , "); strSql.Append(" RealName = @RealName , "); strSql.Append(" Sex = @Sex , "); strSql.Append(" Birthday = @Birthday , "); strSql.Append(" Marriage = @Marriage , "); strSql.Append(" BeginJobYear = @BeginJobYear , "); strSql.Append(" Mobile = @Mobile , "); strSql.Append(" Email = @Email , "); strSql.Append(" XueLi = @XueLi , "); strSql.Append(" School = @School , "); strSql.Append(" Major = @Major , "); strSql.Append(" Company = @Company , "); strSql.Append(" Skill = @Skill , "); strSql.Append(" CoreSkill = @CoreSkill , "); strSql.Append(" HopeAddress = @HopeAddress , "); strSql.Append(" HopePosition = @HopePosition , "); strSql.Append(" HopeIndustry = @HopeIndustry , "); strSql.Append(" HopeSalary = @HopeSalary , "); strSql.Append(" AppID = @AppID , "); strSql.Append(" Version = @Version , "); strSql.Append(" RandomNo = @RandomNo , "); strSql.Append(" Remark = @Remark , "); strSql.Append(" LableText = @LableText , "); strSql.Append(" ExJson = @ExJson , "); strSql.Append(" OrderNo = @OrderNo , "); strSql.Append(" ModifyDate = @ModifyDate , "); strSql.Append(" ModifyUser = @ModifyUser "); strSql.Append(" where id=@id "); SqlParameter[] parameters = { new SqlParameter("@id", SqlDbType.Int, 4), new SqlParameter("@ResumeID", SqlDbType.Int, 4), new SqlParameter("@ResumeNo", SqlDbType.NVarChar, 50), new SqlParameter("@ResumeName", SqlDbType.NVarChar, 50), new SqlParameter("@Status", SqlDbType.NVarChar, -1), new SqlParameter("@CreateUser", SqlDbType.Int, 4), new SqlParameter("@CreateDate", SqlDbType.NVarChar, 200), new SqlParameter("@ParentID", SqlDbType.Int, 4), new SqlParameter("@RealName", SqlDbType.NVarChar, 50), new SqlParameter("@Sex", SqlDbType.NVarChar, 50), new SqlParameter("@Birthday", SqlDbType.NVarChar, 50), new SqlParameter("@Marriage", SqlDbType.NVarChar, 50), new SqlParameter("@BeginJobYear", SqlDbType.NVarChar, 50), new SqlParameter("@Mobile", SqlDbType.NVarChar, 50), new SqlParameter("@Email", SqlDbType.NVarChar, 500), new SqlParameter("@XueLi", SqlDbType.NVarChar, 500), new SqlParameter("@School", SqlDbType.NVarChar, 500), new SqlParameter("@Major", SqlDbType.NVarChar, 500), new SqlParameter("@Company", SqlDbType.NVarChar, 500), new SqlParameter("@Skill", SqlDbType.NText), new SqlParameter("@CoreSkill", SqlDbType.NVarChar, 500), new SqlParameter("@HopeAddress", SqlDbType.NVarChar, 100), new SqlParameter("@HopePosition", SqlDbType.NVarChar, 50), new SqlParameter("@HopeIndustry", SqlDbType.NVarChar, 50), new SqlParameter("@HopeSalary", SqlDbType.Decimal, 9), new SqlParameter("@AppID", SqlDbType.NVarChar, 100), new SqlParameter("@Version", SqlDbType.NVarChar, 100), new SqlParameter("@RandomNo", SqlDbType.NVarChar, 200), new SqlParameter("@Remark", SqlDbType.NVarChar, -1), new SqlParameter("@LableText", SqlDbType.NVarChar, -1), new SqlParameter("@ExJson", SqlDbType.NVarChar, -1), new SqlParameter("@OrderNo", SqlDbType.Int, 4), new SqlParameter("@ModifyDate", SqlDbType.NVarChar, 200), new SqlParameter("@ModifyUser", SqlDbType.Int, 4) }; parameters[0].Value = model.id; parameters[1].Value = model.ResumeID; parameters[2].Value = model.ResumeNo; parameters[3].Value = model.ResumeName; parameters[4].Value = model.Status; parameters[5].Value = model.CreateUser; parameters[6].Value = model.CreateDate; parameters[7].Value = model.ParentID; parameters[8].Value = model.RealName; parameters[9].Value = model.Sex; parameters[10].Value = model.Birthday; parameters[11].Value = model.Marriage; parameters[12].Value = model.BeginJobYear; parameters[13].Value = model.Mobile; parameters[14].Value = model.Email; parameters[15].Value = model.XueLi; parameters[16].Value = model.School; parameters[17].Value = model.Major; parameters[18].Value = model.Company; parameters[19].Value = model.Skill; parameters[20].Value = model.CoreSkill; parameters[21].Value = model.HopeAddress; parameters[22].Value = model.HopePosition; parameters[23].Value = model.HopeIndustry; parameters[24].Value = model.HopeSalary; parameters[25].Value = model.AppID; parameters[26].Value = model.Version; parameters[27].Value = model.RandomNo; parameters[28].Value = model.Remark; parameters[29].Value = model.LableText; parameters[30].Value = model.ExJson; parameters[31].Value = model.OrderNo; parameters[32].Value = model.ModifyDate; parameters[33].Value = model.ModifyUser; int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters); if (rows > 0) { return(true); } else { return(false); } }
/// <summary> /// 增加一条数据 /// </summary> public int Add(tabResumeOutlineModel model) { model.Version = model.Version.IsNotNullOrEmpty()? model.Version: "1"; model.RandomNo = model.RandomNo.IsNotNullOrEmpty()? model.RandomNo: Guid.NewGuid().ToString("N"); model.Status = model.Status.IsNotNullOrEmpty()? model.Status: "1"; model.OrderNo = model.OrderNo > 0? model.OrderNo: 1; model.CreateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); model.ModifyDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); StringBuilder strSql = new StringBuilder(); strSql.Append("insert into tabResumeOutline("); strSql.Append("ResumeID,ResumeNo,ResumeName,Status,CreateUser,CreateDate,ParentID,RealName,Sex,Birthday,Marriage,BeginJobYear,Mobile,Email,XueLi,School,Major,Company,Skill,CoreSkill,HopeAddress,HopePosition,HopeIndustry,HopeSalary,AppID,Version,RandomNo,Remark,LableText,ExJson,OrderNo,ModifyDate,ModifyUser"); strSql.Append(") values ("); strSql.Append("@ResumeID,@ResumeNo,@ResumeName,@Status,@CreateUser,@CreateDate,@ParentID,@RealName,@Sex,@Birthday,@Marriage,@BeginJobYear,@Mobile,@Email,@XueLi,@School,@Major,@Company,@Skill,@CoreSkill,@HopeAddress,@HopePosition,@HopeIndustry,@HopeSalary,@AppID,@Version,@RandomNo,@Remark,@LableText,@ExJson,@OrderNo,@ModifyDate,@ModifyUser"); strSql.Append(") "); strSql.Append(";select @@IDENTITY"); SqlParameter[] parameters = { new SqlParameter("@ResumeID", SqlDbType.Int, 4), new SqlParameter("@ResumeNo", SqlDbType.NVarChar, 50), new SqlParameter("@ResumeName", SqlDbType.NVarChar, 50), new SqlParameter("@Status", SqlDbType.NVarChar, -1), new SqlParameter("@CreateUser", SqlDbType.Int, 4), new SqlParameter("@CreateDate", SqlDbType.NVarChar, 200), new SqlParameter("@ParentID", SqlDbType.Int, 4), new SqlParameter("@RealName", SqlDbType.NVarChar, 50), new SqlParameter("@Sex", SqlDbType.NVarChar, 50), new SqlParameter("@Birthday", SqlDbType.NVarChar, 50), new SqlParameter("@Marriage", SqlDbType.NVarChar, 50), new SqlParameter("@BeginJobYear", SqlDbType.NVarChar, 50), new SqlParameter("@Mobile", SqlDbType.NVarChar, 50), new SqlParameter("@Email", SqlDbType.NVarChar, 500), new SqlParameter("@XueLi", SqlDbType.NVarChar, 500), new SqlParameter("@School", SqlDbType.NVarChar, 500), new SqlParameter("@Major", SqlDbType.NVarChar, 500), new SqlParameter("@Company", SqlDbType.NVarChar, 500), new SqlParameter("@Skill", SqlDbType.NText), new SqlParameter("@CoreSkill", SqlDbType.NVarChar, 500), new SqlParameter("@HopeAddress", SqlDbType.NVarChar, 100), new SqlParameter("@HopePosition", SqlDbType.NVarChar, 50), new SqlParameter("@HopeIndustry", SqlDbType.NVarChar, 50), new SqlParameter("@HopeSalary", SqlDbType.Decimal, 9), new SqlParameter("@AppID", SqlDbType.NVarChar, 100), new SqlParameter("@Version", SqlDbType.NVarChar, 100), new SqlParameter("@RandomNo", SqlDbType.NVarChar, 200), new SqlParameter("@Remark", SqlDbType.NVarChar, -1), new SqlParameter("@LableText", SqlDbType.NVarChar, -1), new SqlParameter("@ExJson", SqlDbType.NVarChar, -1), new SqlParameter("@OrderNo", SqlDbType.Int, 4), new SqlParameter("@ModifyDate", SqlDbType.NVarChar, 200), new SqlParameter("@ModifyUser", SqlDbType.Int, 4) }; parameters[0].Value = model.ResumeID; parameters[1].Value = model.ResumeNo; parameters[2].Value = model.ResumeName; parameters[3].Value = model.Status; parameters[4].Value = model.CreateUser; parameters[5].Value = model.CreateDate; parameters[6].Value = model.ParentID; parameters[7].Value = model.RealName; parameters[8].Value = model.Sex; parameters[9].Value = model.Birthday; parameters[10].Value = model.Marriage; parameters[11].Value = model.BeginJobYear; parameters[12].Value = model.Mobile; parameters[13].Value = model.Email; parameters[14].Value = model.XueLi; parameters[15].Value = model.School; parameters[16].Value = model.Major; parameters[17].Value = model.Company; parameters[18].Value = model.Skill; parameters[19].Value = model.CoreSkill; parameters[20].Value = model.HopeAddress; parameters[21].Value = model.HopePosition; parameters[22].Value = model.HopeIndustry; parameters[23].Value = model.HopeSalary; parameters[24].Value = model.AppID; parameters[25].Value = model.Version; parameters[26].Value = model.RandomNo; parameters[27].Value = model.Remark; parameters[28].Value = model.LableText; parameters[29].Value = model.ExJson; parameters[30].Value = model.OrderNo; parameters[31].Value = model.ModifyDate; parameters[32].Value = model.ModifyUser; object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters); if (obj == null) { return(0); } else { return(Convert.ToInt32(obj)); } }
/// <summary> /// 更新一条数据 /// </summary> public bool Update(tabResumeOutlineModel model) { return(dal.Update(model)); }
void MatchForJD(int PositionID) { try { #region // List <tabCVJDMatchModel> slsCVJDMatch = new List <tabCVJDMatchModel>();//用于存放匹配结果,最大数量为100 slsCVJDMatch.Capacity = 100; // #region 获取JD简要模型 tabPositionOutlineModel modelPosOtln = tabPositionOutlineBLL.GetInstance().GetModel(" PositionID=" + PositionID + " ", 0); if (modelPosOtln.IsNull()) { WinFormControlHelper.AddLog(rtbLog, "MatchForJD", "需要先进行要提取"); } //Skill string[] aryJDSkill = modelPosOtln.RequireSkill.Split(new char[] { ' ', ',' }); HashSet <string> hsJDSkill = new HashSet <string>(); foreach (string str in aryJDSkill) { hsJDSkill.Add(str); } hsJDSkill.Remove(""); WinFormControlHelper.AddLog(rtbLog, "职位 " + modelPosOtln.PositionName + " 技能关键字", modelPosOtln.RequireSkill);; #endregion //粗选适合的简历 string _where = ""; if (modelPosOtln.RequireSchool.IsNotNull()) { _where += " "; } if (modelPosOtln.RequireXueLi.IsNotNull()) { _where += " "; } if (modelPosOtln.RequireMajor.IsNotNull()) { _where += " "; } string.Format(" id in ( select [KEY] form containstable(tabCVJDMatch,' or or or ',1000) )"); string _orderby = ""; int count = 0; int pageSize = 100; int pageNo = 1; do { #region List <int> lsResumeID = tabCVJDMatchBLL.GetInstance().GetResumeIDListForJD(pageSize, pageNo, _where.ToString(), _orderby, out count); //逐个计算 foreach (int ResumeID in lsResumeID) { #region 获取CV简要模型 tabResumeOutlineModel modelRmOtln = tabResumeOutlineBLL.GetInstance().GetModel(" ResumeID=" + ResumeID + " ", 0); //Skill string[] aryCVSkill = modelRmOtln.Skill.Split(new char[] { ' ', ',' }); HashSet <string> hsCVSkill = new HashSet <string>(); foreach (string str in aryCVSkill) { hsCVSkill.Add(str); } hsJDSkill.Remove(""); WinFormControlHelper.AddLog(rtbLog, "简历" + modelRmOtln.ResumeNo + "技能关键字", modelRmOtln.Skill);; #endregion #region 计算匹配度 tabCVJDMatchModel modelMch = new tabCVJDMatchModel(); modelMch.PositionID = modelPosOtln.PositionID; modelMch.ResumeID = modelRmOtln.ResumeID; modelMch.ResumeNo = modelRmOtln.ResumeNo; modelMch.BaseOn = "Position"; hsCVSkill.IntersectWith(hsJDSkill); modelMch.Skill = (hsCVSkill.Count * 100) / hsJDSkill.Count; modelMch.MatchDegree = modelMch.Skill; WinFormControlHelper.AddLog(rtbLog, "简历" + modelRmOtln.ResumeNo + "综合评价", modelMch.MatchDegree.ToString()); #endregion #region 保存到内存列表中(只保存前100条记录) //是否要删除 if (slsCVJDMatch.Count == slsCVJDMatch.Capacity) { tabCVJDMatchModel modelMin = slsCVJDMatch[0]; foreach (tabCVJDMatchModel model in slsCVJDMatch) { if (model.MatchDegree < modelMin.MatchDegree) { modelMin = model; } } slsCVJDMatch.Remove(modelMin); } //是否添加 if (slsCVJDMatch.Count < slsCVJDMatch.Capacity) { slsCVJDMatch.Add(modelMch); } #endregion } #endregion pageNo++;// }while (pageNo * pageSize < count); #region 保存至数据库 //删除原来的 tabCVJDMatchBLL.GetInstance().Delete(" PositionID=" + PositionID + " and BaseOn='Position' "); //添加新的 string strLsResumeID = ""; foreach (tabCVJDMatchModel model in slsCVJDMatch) { tabCVJDMatchBLL.GetInstance().Add(model); strLsResumeID += model.ResumeID.ToString() + ","; } WinFormControlHelper.AddLog(rtbLog, "职位 " + PositionID.ToString() + " 匹配结果", strLsResumeID); #endregion #endregion } catch (Exception ex) { WinFormControlHelper.AddLog(rtbLog, "MatchForJD", ex.Message); } }