Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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()));
        }
Exemplo n.º 3
0
        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"))));
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }