/// <summary> /// 得到一个对象实体 /// </summary> public tabPositionOutlineModel GetModel(int id) { StringBuilder strSql = new StringBuilder(); strSql.Append("select * "); strSql.Append(" from tabPositionOutline "); strSql.Append(" where id=@id"); SqlParameter[] parameters = { new SqlParameter("@id", SqlDbType.Int, 4) }; parameters[0].Value = id; tabPositionOutlineModel model = new tabPositionOutlineModel(); DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters); if (ds.Tables[0].Rows.Count > 0) { return(ModelHandler <tabPositionOutlineModel> .FillModel(ds.Tables[0].Rows[0])); } else { return(null); } }
void funPositionOutLine(int PositionID) { try { #region WinFormControlHelper.AddLog(rtbLog, "开始操作" + PositionID, ""); int count = 0; string _where = ""; string _order = " id desc"; //获取详情 tabPositionModel modelPos = tabPositionBLL.GetInstance().GetModel(PositionID); _where = string.Format(" id={0} ", modelPos.ParentID); tabOrgModel modelOrg = tabOrgBLL.GetInstance().GetModel(_where, 0); if (modelOrg.IsNull()) { modelOrg = new tabOrgModel(); } //组合成新的模型 bool IsExist = false; _where = string.Format(" PositionID={0} ", modelPos.id); tabPositionOutlineModel modelPosOtln = tabPositionOutlineBLL.GetInstance().GetModel(_where, 0); IsExist = modelPosOtln.IsNotNull(); if (!IsExist) { modelPosOtln = new tabPositionOutlineModel(); } #region modelPosOtln.PositionID = modelPos.id; modelPosOtln.PositionName = modelPos.PositionName; modelPosOtln.RequireWorkYear = modelPos.RequireYear; modelPosOtln.RequireXueLi = modelPos.RequireEdu; modelPosOtln.SalaryBein = modelPos.SalaryBein; modelPosOtln.SalaryEnd = modelPos.SalaryEnd; modelPosOtln.WordAddress = modelPos.WordAddress; modelPosOtln.OrgName = modelOrg.OrgName; modelPosOtln.OrgPro = modelOrg.OrgPro; modelPosOtln.OrgScale = modelOrg.Scale; string strSkill = " "; strSkill += modelPos.PositionDesc + " "; strSkill += modelPos.RequireContent + " "; strSkill += modelPos.RequireAbility + " "; strSkill += modelPos.RequireExperience + " "; strSkill += modelPos.AdditionInfo + " "; #region Skill // List <string> lsSkill = PanGuSegmentHelper.SegmentToStringList(strSkill); //分词 hsJDSkill = new HashSet <string>(); foreach (string key in lsSkill) //加入集合 { hsJDSkill.Add(key); hsCVJDSkillFull.Add(key); } //获得交集 hsJDSkill.IntersectWith(hsCVJDKeyWord); //转化成字符串 strSkill = ""; foreach (string str in hsJDSkill) { strSkill += str + " "; } modelPosOtln.RequireSkill = strSkill; WinFormControlHelper.AddLog(rtbLog, modelPosOtln.PositionName, modelPosOtln.RequireSkill); #endregion #endregion //插入或更新 if (IsExist) { tabPositionOutlineBLL.GetInstance().Update(modelPosOtln); } else { tabPositionOutlineBLL.GetInstance().Add(modelPosOtln); } #endregion } catch (Exception ex) { WinFormControlHelper.AddLog(rtbLog, "funPositionOutLine", ex.Message); } }
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); } }
/// <summary> /// 更新一条数据 /// </summary> public bool Update(tabPositionOutlineModel model) { return(dal.Update(model)); }
/// <summary> /// 增加一条数据 /// </summary> public int Add(tabPositionOutlineModel model) { return(dal.Add(model)); }
/// <summary> /// 更新一条数据 /// </summary> public bool Update(tabPositionOutlineModel model, List <string> ChangedFields) { StringBuilder strSql = new StringBuilder(); strSql.Append("update tabPositionOutline set "); strSql.Append(" PositionID = @PositionID , "); strSql.Append(" PositionName = @PositionName , "); strSql.Append(" CreateUser = @CreateUser , "); strSql.Append(" CreateDate = @CreateDate , "); strSql.Append(" ParentID = @ParentID , "); strSql.Append(" OrgName = @OrgName , "); strSql.Append(" OrgPro = @OrgPro , "); strSql.Append(" OrgScale = @OrgScale , "); strSql.Append(" WordAddress = @WordAddress , "); strSql.Append(" SalaryBein = @SalaryBein , "); strSql.Append(" SalaryEnd = @SalaryEnd , "); strSql.Append(" AgeBein = @AgeBein , "); strSql.Append(" AgeEnd = @AgeEnd , "); strSql.Append(" RequireWorkYear = @RequireWorkYear , "); strSql.Append(" RequireSchool = @RequireSchool , "); strSql.Append(" RequireMajor = @RequireMajor , "); strSql.Append(" RequireXueLi = @RequireXueLi , "); strSql.Append(" RequireSkill = @RequireSkill , "); strSql.Append(" RequireCoreSkill = @RequireCoreSkill , "); 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(" Status = @Status , "); 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("@PositionID", SqlDbType.Int, 4), new SqlParameter("@PositionName", SqlDbType.NVarChar, 50), new SqlParameter("@CreateUser", SqlDbType.Int, 4), new SqlParameter("@CreateDate", SqlDbType.NVarChar, 200), new SqlParameter("@ParentID", SqlDbType.Int, 4), new SqlParameter("@OrgName", SqlDbType.NVarChar, 50), new SqlParameter("@OrgPro", SqlDbType.NVarChar, 50), new SqlParameter("@OrgScale", SqlDbType.NVarChar, 50), new SqlParameter("@WordAddress", SqlDbType.NVarChar, -1), new SqlParameter("@SalaryBein", SqlDbType.Int, 4), new SqlParameter("@SalaryEnd", SqlDbType.Int, 4), new SqlParameter("@AgeBein", SqlDbType.NChar, 10), new SqlParameter("@AgeEnd", SqlDbType.NVarChar, 50), new SqlParameter("@RequireWorkYear", SqlDbType.NVarChar, 50), new SqlParameter("@RequireSchool", SqlDbType.NVarChar, 500), new SqlParameter("@RequireMajor", SqlDbType.NVarChar, 500), new SqlParameter("@RequireXueLi", SqlDbType.NVarChar, 500), new SqlParameter("@RequireSkill", SqlDbType.NText), new SqlParameter("@RequireCoreSkill", SqlDbType.NVarChar, 500), 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("@Status", 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.PositionID; parameters[2].Value = model.PositionName; parameters[3].Value = model.CreateUser; parameters[4].Value = model.CreateDate; parameters[5].Value = model.ParentID; parameters[6].Value = model.OrgName; parameters[7].Value = model.OrgPro; parameters[8].Value = model.OrgScale; parameters[9].Value = model.WordAddress; parameters[10].Value = model.SalaryBein; parameters[11].Value = model.SalaryEnd; parameters[12].Value = model.AgeBein; parameters[13].Value = model.AgeEnd; parameters[14].Value = model.RequireWorkYear; parameters[15].Value = model.RequireSchool; parameters[16].Value = model.RequireMajor; parameters[17].Value = model.RequireXueLi; parameters[18].Value = model.RequireSkill; parameters[19].Value = model.RequireCoreSkill; parameters[20].Value = model.AppID; parameters[21].Value = model.Version; parameters[22].Value = model.RandomNo; parameters[23].Value = model.Remark; parameters[24].Value = model.LableText; parameters[25].Value = model.ExJson; parameters[26].Value = model.Status; parameters[27].Value = model.OrderNo; parameters[28].Value = model.ModifyDate; parameters[29].Value = model.ModifyUser; int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters); if (rows > 0) { return(true); } else { return(false); } }
/// <summary> /// 增加一条数据 /// </summary> public int Add(tabPositionOutlineModel 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 tabPositionOutline("); strSql.Append("PositionID,PositionName,CreateUser,CreateDate,ParentID,OrgName,OrgPro,OrgScale,WordAddress,SalaryBein,SalaryEnd,AgeBein,AgeEnd,RequireWorkYear,RequireSchool,RequireMajor,RequireXueLi,RequireSkill,RequireCoreSkill,AppID,Version,RandomNo,Remark,LableText,ExJson,Status,OrderNo,ModifyDate,ModifyUser"); strSql.Append(") values ("); strSql.Append("@PositionID,@PositionName,@CreateUser,@CreateDate,@ParentID,@OrgName,@OrgPro,@OrgScale,@WordAddress,@SalaryBein,@SalaryEnd,@AgeBein,@AgeEnd,@RequireWorkYear,@RequireSchool,@RequireMajor,@RequireXueLi,@RequireSkill,@RequireCoreSkill,@AppID,@Version,@RandomNo,@Remark,@LableText,@ExJson,@Status,@OrderNo,@ModifyDate,@ModifyUser"); strSql.Append(") "); strSql.Append(";select @@IDENTITY"); SqlParameter[] parameters = { new SqlParameter("@PositionID", SqlDbType.Int, 4), new SqlParameter("@PositionName", SqlDbType.NVarChar, 50), new SqlParameter("@CreateUser", SqlDbType.Int, 4), new SqlParameter("@CreateDate", SqlDbType.NVarChar, 200), new SqlParameter("@ParentID", SqlDbType.Int, 4), new SqlParameter("@OrgName", SqlDbType.NVarChar, 50), new SqlParameter("@OrgPro", SqlDbType.NVarChar, 50), new SqlParameter("@OrgScale", SqlDbType.NVarChar, 50), new SqlParameter("@WordAddress", SqlDbType.NVarChar, -1), new SqlParameter("@SalaryBein", SqlDbType.Int, 4), new SqlParameter("@SalaryEnd", SqlDbType.Int, 4), new SqlParameter("@AgeBein", SqlDbType.NChar, 10), new SqlParameter("@AgeEnd", SqlDbType.NVarChar, 50), new SqlParameter("@RequireWorkYear", SqlDbType.NVarChar, 50), new SqlParameter("@RequireSchool", SqlDbType.NVarChar, 500), new SqlParameter("@RequireMajor", SqlDbType.NVarChar, 500), new SqlParameter("@RequireXueLi", SqlDbType.NVarChar, 500), new SqlParameter("@RequireSkill", SqlDbType.NText), new SqlParameter("@RequireCoreSkill", SqlDbType.NVarChar, 500), 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("@Status", 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.PositionID; parameters[1].Value = model.PositionName; parameters[2].Value = model.CreateUser; parameters[3].Value = model.CreateDate; parameters[4].Value = model.ParentID; parameters[5].Value = model.OrgName; parameters[6].Value = model.OrgPro; parameters[7].Value = model.OrgScale; parameters[8].Value = model.WordAddress; parameters[9].Value = model.SalaryBein; parameters[10].Value = model.SalaryEnd; parameters[11].Value = model.AgeBein; parameters[12].Value = model.AgeEnd; parameters[13].Value = model.RequireWorkYear; parameters[14].Value = model.RequireSchool; parameters[15].Value = model.RequireMajor; parameters[16].Value = model.RequireXueLi; parameters[17].Value = model.RequireSkill; parameters[18].Value = model.RequireCoreSkill; parameters[19].Value = model.AppID; parameters[20].Value = model.Version; parameters[21].Value = model.RandomNo; parameters[22].Value = model.Remark; parameters[23].Value = model.LableText; parameters[24].Value = model.ExJson; parameters[25].Value = model.Status; parameters[26].Value = model.OrderNo; parameters[27].Value = model.ModifyDate; parameters[28].Value = model.ModifyUser; object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters); if (obj == null) { return(0); } else { return(Convert.ToInt32(obj)); } }