public void SaveHaveBeenQuantity(Hr_NeedQueryParam queryParam) { HKSJRecruitmentContext ctx = HttpContext.GetDbContext <HKSJRecruitmentContext>(); Expression <Func <THR_Needs, bool> > predicate = SearchPredicate(queryParam); IPageList <THR_Needs> models = ctx.THR_Needs .Where(predicate) .OrderUsingSortExpression(queryParam.Sort.Replace("deptname", "deptid").Replace("postname", "postid"), queryParam.Order) .ToPagedList(queryParam.PageIndex, queryParam.PageSize); List <THR_Needs> dtos = models.ToList(); // List<THR_Needs> list = ctx.THR_Needs //.Where(c => c.IsDelete == 0 && c.NeedQuantity > 0).ToList(); foreach (THR_Needs needmodel in dtos) { int Quantity = ctx.THR_Recruit .Where(c => c.IsDelete == 0 && c.NeedsId == needmodel.Id && c.Status == 82).ToList().Count;//已录用 needmodel.HaveBeenQuantity = Quantity; if (needmodel.NeedQuantity == needmodel.HaveBeenQuantity) { needmodel.IsHaveBeen = 1; } else { needmodel.IsHaveBeen = 0; } } ctx.SaveChanges(); }
public ActionResult List(Hr_NeedQueryParam queryParam) { SaveHaveBeenQuantity(queryParam); IPageList <Hr_NeedDto> models = GetNeedData(queryParam); List <Hr_NeedDto> dtos = models.ToList(); return(Content(this.GetJSON(new { total = models.PageInfo.TotalCount, rows = dtos }), this.JsonContentType())); }
public ActionResult ExportData(Hr_NeedQueryParam queryParam) { queryParam.PageIndex = 1; queryParam.PageSize = 999999; List <Hr_NeedDto> dtos = GetNeedData(queryParam).ToList(); MemoryStream ms = OutFileToStream(dtos); return(File(ms.ToArray(), "application/ms-excel", string.Format("{0}.xls", "招聘需求信息" + DateTime.Now.ToString("yyMMddhhmmss")))); }
private Expression <Func <THR_Needs, bool> > SearchPredicate(Hr_NeedQueryParam queryParam) { Expression <Func <THR_Needs, bool> > predicate = c => c.IsDelete == 0; var rolelist = this.LoadUserRole(); string roleid = string.Empty; foreach (UserRoleDto role in rolelist) { roleid += role.RoleId.ToString() + ","; } if (!roleid.Contains("1") && !roleid.Contains("26") && !roleid.Contains("25")) { string user = this.AppUser().UserName; predicate = predicate.And(c => c.CreateBy == user); } if (queryParam.IsHaveBeen != 2) { predicate = predicate.And(c => c.IsHaveBeen == queryParam.IsHaveBeen); //predicate = predicate.And(c => c.CutTime >= DateTime.Now); } if (queryParam.DeptId > 0) { predicate = predicate.And(c => c.DeptId == queryParam.DeptId); } if (queryParam.PostId > 0) { predicate = predicate.And(c => c.PostId == queryParam.PostId); } if (!string.IsNullOrEmpty(queryParam.Demander)) { predicate = predicate.And(c => c.Demander.StartsWith(queryParam.Demander)); } if (queryParam.NeedQuantity > 0) { predicate = predicate.And(c => c.NeedQuantity == queryParam.NeedQuantity); } if (queryParam.HaveBeenQuantity > 0) { predicate = predicate.And(c => c.HaveBeenQuantity == queryParam.HaveBeenQuantity); } if (queryParam.CutTimeStart.HasValue && queryParam.CutTimeEnd.HasValue && queryParam.CutTimeStart.Value < queryParam.CutTimeEnd.Value) { predicate = predicate.And(c => c.CutTime >= queryParam.CutTimeStart.Value && c.CutTime <= queryParam.CutTimeEnd.Value); } return(predicate); }
private IPageList <Hr_NeedDto> GetNeedData(Hr_NeedQueryParam queryParam) { HKSJRecruitmentContext ctx = HttpContext.GetDbContext <HKSJRecruitmentContext>(); Expression <Func <THR_Needs, bool> > predicate = SearchPredicate(queryParam); //var models = ctx.THR_Needs // .Join(ctx.HR_Employee, left => left.CreateBy, right => right.uid, (left, right) => new Hr_NeedDto // { // Id = left.Id, // DeptId = left.DeptId, // DeptName = left.TErp_Department.DeptName, // PostId = left.PostId, // PostName = left.TErp_Position.PositionName, // CutTime = left.CutTime, // Demander = left.Demander, // NeedQuantity = left.NeedQuantity, // Remarks = left.Remarks, // CreateBy = right.name, // CreateTime = left.CreateTime, // IsDelete = left.IsDelete, // DeleteBy = left.DeleteBy, // DeleteTime = left.DeleteTime, // EditBy = left.EditBy, // EditTime = left.EditTime, // HaveBeenQuantity = left.HaveBeenQuantity, // FileWord = left.FileWord // }) // .Where(predicate) // .OrderUsingSortExpression(queryParam.Sort, queryParam.Order) // .ToPagedList(queryParam.PageIndex, queryParam.PageSize); IPageList <Hr_NeedDto> models = ctx.THR_Needs .Where(predicate) .OrderUsingSortExpression(queryParam.Sort.Replace("deptname", "deptid").Replace("postname", "postid"), queryParam.Order) .Select(c => new Hr_NeedDto { Id = c.Id, DeptId = c.DeptId, DeptName = c.TErp_Department.DeptName, PostId = c.PostId, PostName = c.TErp_Position.PositionName, CutTime = c.CutTime, Demander = c.Demander, NeedQuantity = c.NeedQuantity, Remarks = c.Remarks, CreateBy = c.CreateBy, CreateTime = c.CreateTime, IsDelete = c.IsDelete, DeleteBy = c.DeleteBy, DeleteTime = c.DeleteTime, EditBy = c.EditBy, EditTime = c.EditTime, HaveBeenQuantity = c.HaveBeenQuantity, FileWord = c.FileWord, JobResponsibility = c.JobResponsibility, PostRequest = c.PostRequest, IsHaveBeen = c.IsHaveBeen.Value, InterviewAddress = c.InterviewAddress, Principal = c.Principal }) .ToPagedList(queryParam.PageIndex, queryParam.PageSize); foreach (var item in models) { HR_Employee emp = ctx.HR_Employee.FirstOrDefault(c => c.uid == item.CreateBy); if (emp != null) { item.CreateBy = emp.name; } } return(models); }