public PageSource <EngineeringNoteInfo> GetPagedList(PageQueryParam PageParam) { #region Filter Expression <Func <EngineeringNoteInfo, bool> > expression = c => true; if (!string.IsNullOrEmpty(PageParam.TextCondtion)) { expression = expression.And(p => p.Engineering.Name.Contains(PageParam.TextCondtion) || p.Engineering.Number.Contains(PageParam.TextCondtion)); } foreach (DictionaryEntry filter in PageParam.FilterCondtion) { var val = filter.Value.ToString(); if (string.IsNullOrEmpty(val)) { continue; } switch (filter.Key.ToString()) { case "ID": { var id = int.Parse(val); expression = expression.And(c => c.ID == id); break; } case "IDs": { var ids = val.Split(',').Select(i => int.Parse(i)).AsQueryable(); expression = expression.And(c => ids.Contains(c.Engineering.ID)); break; } case "Type": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Type == intVal); } break; } case "Phase": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Phase == intVal); } break; } case "VolLevel": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.VolLevel == intVal); } break; } case "TaskType": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.TaskType == intVal); } break; } case "Status": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Status == intVal); } break; } case "Manager": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Manager == intVal); } break; } case "CreateDateFrom": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.CreateDate >= dateVal); break; } case "CreateDateTo": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.CreateDate < dateVal); break; } case "DeliveryDateFrom": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.DeliveryDate >= dateVal); break; } case "DeliveryDateTo": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.DeliveryDate < dateVal); break; } default: break; } } #endregion var query = from nt in this._PMContext.EngineeringNoteEntity join en in this._PMContext.EngineeringEntity on nt.EngineeringID equals en.ID where !en.IsDelete orderby en.ID descending select new EngineeringNoteInfo { Engineering = en, ID = nt.ID, Content = nt.Content, EngineeringID = nt.EngineeringID, NoteType = nt.NoteType, NoteDate = nt.NoteDate, UserID = nt.UserID }; query = query.Where(expression); var result = query.AsEnumerable().ToPagedList(PageParam.PageIndex, PageParam.PageSize); return(new PageSource <EngineeringNoteInfo>() { Source = result, PageCount = result.TotalPageCount, TotalCount = result.TotalItemCount }); }
public PageSource <EngineeringSpecialtyProvideInfo> GetPagedList(PageQueryParam PageParam) { Expression <Func <EngineeringSpecialtyProvideInfo, bool> > expression = c => true; #region Filter if (!string.IsNullOrEmpty(PageParam.TextCondtion)) { var engIDs = (from eng in this._PMContext.Set <EngineeringEntity>().Where( o => o.Name.Contains(PageParam.TextCondtion) || o.Number.Contains(PageParam.TextCondtion)) select eng.ID); expression = expression.And(p => engIDs.Contains(p.Engineering.ID)); } foreach (DictionaryEntry filter in PageParam.FilterCondtion) { var val = filter.Value.ToString(); if (string.IsNullOrEmpty(val)) { continue; } switch (filter.Key.ToString()) { case "Type": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Type == intVal); } break; } case "Phase": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Phase == intVal); } break; } case "VolLevel": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.VolLevel == intVal); } break; } case "TaskType": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.TaskType == intVal); } break; } case "Status": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Status == intVal); } break; } case "Specialty": { var intVal = long.Parse(val); if (intVal > 0L) { expression = expression.And(c => c.Specialty.SpecialtyID == intVal); } break; } case "Manager": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Manager == intVal); } break; } case "CreateDateFrom": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.CreateDate >= dateVal); break; } case "CreateDateTo": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.CreateDate < dateVal); break; } case "DeliveryDateFrom": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.DeliveryDate >= dateVal); break; } case "DeliveryDateTo": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.DeliveryDate < dateVal); break; } case "MyReceive": { var intVal = int.Parse(val); if (intVal > 0) { var id = "," + PageParam.CurrentUser.ToString() + ","; expression = expression.And(c => c.CanReceive && (!c.LimitDate.HasValue || c.LimitDate >= DateTime.Now) && ("," + c.ReceiveUserIDs + ",").IndexOf(id) >= 0); } else { var volQuery = from v in this._PMContext.EngineeringVolumeEntity where v.Designer == PageParam.CurrentUser && !v.IsDelete select new { v.EngineeringID, v.SpecialtyID }; expression = expression.And(c => volQuery.Contains(new { c.EngineeringID, c.Specialty.SpecialtyID })); } break; } default: break; } } #endregion //var volQuery = from v in this._PMContext.EngineeringVolumeEntity // where v.Designer == PageParam.CurrentUser && !v.IsDelete // select new // { // v.EngineeringID, // v.SpecialtyID // }; var query = from en in this._PMContext.EngineeringEntity join es in this._PMContext.EngineeringSpecialtyEntity on en.ID equals es.EngineeringID into temp1 from t1 in temp1.DefaultIfEmpty() join sp in this._PMContext.EngineeringSpecialtyProvideEntity on new { engID = en.ID, specID = t1.SpecialtyID, IsDelete = false } equals new { engID = sp.EngineeringID, specID = sp.SendSpecialtyID, IsDelete = sp.IsDelete } into temp2 from t2 in temp2.DefaultIfEmpty() where (en.Status == (int)EnumEngineeringStatus.启动 || en.Status == (int)EnumEngineeringStatus.完成) && !en.IsDelete && t1 != null //&& volQuery.Contains(new { t1.EngineeringID ,t1.SpecialtyID }) select new EngineeringSpecialtyProvideInfo { ID = t2 == null ? 0 : t2.ID, DocName = t2 == null ? "" : t2.DocName, CreateDate = t2 == null ? DateTime.Now : t2.CreateDate, LimitDate = t2 == null ? null : t2.LimitDate, DocContent = t2 == null ? "" : t2.DocContent, EngineeringID = en.ID, ReceiveSpecialtyID = t2 == null ? 0l : t2.ReceiveSpecialtyID, ReceiveUserIDs = t2 == null ? "" : t2.ReceiveUserIDs, SendSpecialtyID = t1.SpecialtyID, SendUserID = t2 == null ? 0 : t2.SendUserID, CanReceive = t2 == null ? false : t2.CanReceive, Engineering = en, Specialty = t1 }; query = query.Where(expression).MyOrder <EngineeringSpecialtyProvideInfo>(PageParam.OrderFiled, PageParam.IsDesc);; var result = query.AsEnumerable().ToPagedList(PageParam.PageIndex, PageParam.PageSize); return(new PageSource <EngineeringSpecialtyProvideInfo>() { Source = result, PageCount = result.TotalPageCount, TotalCount = result.TotalItemCount }); }
public PageSource <BookInfo> GetPagedList(PageQueryParam PageParam) { Expression <Func <BookEntity, bool> > expression = c => true; #region Filter if (!string.IsNullOrEmpty(PageParam.TextCondtion)) { expression = expression.And(p => p.Name.Contains(PageParam.TextCondtion) || p.Number.Contains(PageParam.TextCondtion) || p.BarCode == PageParam.TextCondtion); } foreach (DictionaryEntry filter in PageParam.FilterCondtion) { if (filter.Value == null) { continue; } var val = filter.Value.ToString(); if (string.IsNullOrEmpty(val)) { continue; } switch (filter.Key.ToString()) { case "Category": { expression = expression.And(c => c.Category == val); break; } default: break; } } #endregion var query = from b in this._DMContext.BookItemEntity join i in this._DMContext.BookEntity on b.BookID equals i.ID into temp join pr in this._PMContext.ProjectEntity on en.ProjectID equals pr.ID from tt in temp.DefaultIfEmpty() where en.Status == (int)EnumEngineeringStatus.启动 && !en.IsDelete && !pr.IsDeleted && (en.Manager == PageParam.CurrentUser || pr.Manager == PageParam.CurrentUser || permissionCheck != PermissionStatus.Reject) select new EngineeringProductionInfo { Engineering = en, Project = pr, Specialty = tt }; //var pageSource = this._DBBook.GetOrderPagedList(expression, PageParam); var result = new List <BookInfo>(); foreach (var item in pageSource) { result.Add(new BookInfo() { Entity = item, Books = this._DBBookItem.GetList(b => b.BookID == item.ID).ToList() }); } return(new PageSource <BookInfo>() { Source = result, PageCount = pageSource.TotalPageCount, TotalCount = pageSource.TotalItemCount }); }
public PageSource <ObjectProcessEntity> GetPagedList(PageQueryParam PageParam) { throw new NotImplementedException(); }
public PageSource <NotificationInfo> GetPagedList(PageQueryParam PageParam) { Expression <Func <NotificationEntity, bool> > expression = c => !c.IsDelete; #region Filter if (!string.IsNullOrEmpty(PageParam.TextCondtion)) { //expression = expression.And(p => p.Name.Contains(PageParam.TextCondtion) || p.Number.Contains(PageParam.TextCondtion)); } foreach (DictionaryEntry filter in PageParam.FilterCondtion) { var val = filter.Value.ToString(); if (string.IsNullOrEmpty(val)) { continue; } switch (filter.Key.ToString()) { case "User": { var id = int.Parse(val); if (id > 0) { expression = expression.And(c => c.ReceiveUser == id); } break; } case "Effect": { var id = int.Parse(val); if (id > 0) { expression = expression.And(c => c.EffectDate <= DateTime.Now && (!c.InvalidDate.HasValue || c.InvalidDate > DateTime.Now)); } break; } case "Read": { var id = int.Parse(val); if (id == 1) { expression = expression.And(c => c.IsRead); } else if (id == 2) { expression = expression.And(c => !c.IsRead); } break; } default: break; } } #endregion var pageSource = this._DB.GetOrderPagedList(expression, PageParam); var source = new List <NotificationInfo>(); foreach (var entity in pageSource) { source.Add(new NotificationInfo(entity) { }); } return(new PageSource <NotificationInfo>() { Source = source, PageCount = pageSource.TotalPageCount, TotalCount = pageSource.TotalItemCount }); }
public override List <BizObject> GetChildren(PageQueryParam PageParam) { IEngineeringService _IEngineeringService = UnityContainerHelper.GetServer <IEngineeringService>(); return(_IEngineeringService.GetListByProjectID(this.ID, PageParam)); }
public PageSource <EngineeringSpecialtyInfo> GetPagedList(PageQueryParam PageParam) { Expression <Func <EngineeringProductionInfo, bool> > expression = c => true; #region Filter if (!string.IsNullOrEmpty(PageParam.TextCondtion)) { var engIDs = (from eng in this._PMContext.Set <EngineeringEntity>().Where( o => o.Name.Contains(PageParam.TextCondtion) || o.Number.Contains(PageParam.TextCondtion)) select eng.ID); expression = expression.And(p => engIDs.Contains(p.Engineering.ID)); } foreach (DictionaryEntry filter in PageParam.FilterCondtion) { var val = filter.Value.ToString(); if (string.IsNullOrEmpty(val)) { continue; } switch (filter.Key.ToString()) { case "Type": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Type == intVal); } break; } case "Phase": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Phase == intVal); } break; } case "VolLevel": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.VolLevel == intVal); } break; } case "TaskType": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.TaskType == intVal); } break; } case "Status": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Status == intVal); } break; } case "Specialty": { var longVal = long.Parse(val); if (longVal > 0L) { expression = expression.And(c => c.Specialty.SpecialtyID == longVal); } break; } case "Manager": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Manager == intVal); } break; } case "CreateDateFrom": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.CreateDate >= dateVal); break; } case "CreateDateTo": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.CreateDate < dateVal); break; } case "DeliveryDateFrom": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.DeliveryDate >= dateVal); break; } case "DeliveryDateTo": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.DeliveryDate < dateVal); break; } default: break; } } #endregion // 判断是否可以策划全部工程的专业,不然只能策划项目经理或者工程经理是自己的工程 var permissionCheck = _IPMPermissionCheck.Check("DATA_SpecialtyAllPlan", PageParam.CurrentUser.ToString()); var query = from en in this._PMContext.EngineeringEntity join es in this._PMContext.EngineeringSpecialtyEntity on en.ID equals es.EngineeringID into temp join pr in this._PMContext.ProjectEntity on en.ProjectID equals pr.ID from tt in temp.DefaultIfEmpty() where en.Status == (int)EnumEngineeringStatus.启动 && !en.IsDelete && !pr.IsDeleted && (en.Manager == PageParam.CurrentUser || pr.Manager == PageParam.CurrentUser || permissionCheck != PermissionStatus.Reject) select new EngineeringProductionInfo { Engineering = en, Project = pr, Specialty = tt }; query = query.Where(expression); var result = query.OrderByDescending(a => a.Engineering.ProjectID).ThenByDescending(a => a.Engineering.ID).AsEnumerable().ToPagedList(PageParam.PageIndex, PageParam.PageSize); PageParam.Count = result.TotalItemCount; var source = new List <EngineeringSpecialtyInfo>(); foreach (var entity in result) { source.Add(new EngineeringSpecialtyInfo(entity) { Engineering = entity.Engineering, Project = entity.Project, Specialtys = entity.Specialty == null ? null : this._PMContext.EngineeringSpecialtyEntity .Where(e => e.EngineeringID == entity.Engineering.ID).ToList() }); } return(new PageSource <EngineeringSpecialtyInfo>() { Source = source, PageCount = result.TotalPageCount, TotalCount = result.TotalItemCount }); }
public abstract List <BizObject> GetChildren(PageQueryParam PageParam);
public PageSource <ProjectInfo> GetPagedList(PageQueryParam PageParam) { Expression <Func <ProjectEntity, bool> > expression = c => c.IsDeleted == PageParam.IsDelete; if (!string.IsNullOrEmpty(PageParam.TextCondtion)) { expression = expression.And(p => p.Name.Contains(PageParam.TextCondtion) || p.Number.Contains(PageParam.TextCondtion)); } #region FilterCondtion foreach (DictionaryEntry filter in PageParam.FilterCondtion) { if (filter.Value == null) { continue; } var val = filter.Value.ToString(); if (string.IsNullOrEmpty(val)) { continue; } switch (filter.Key.ToString()) { case "ID": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.ID == intVal); } break; } case "Kind": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Kind == intVal); } break; } case "Type": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Type == intVal); } break; } case "Vollevel": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.VolLevel == intVal); } break; } case "Manager": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Manager == intVal); } break; } case "Secretlevel": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.SecretLevel == intVal); } break; } case "CreateDateFrom": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.CreateDate >= dateVal); break; } case "CreateDateTo": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.CreateDate < dateVal); break; } case "DeliveryDateFrom": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.DeliveryDate >= dateVal); break; } case "DeliveryDateTo": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.DeliveryDate < dateVal); break; } default: break; } } #endregion var pageSource = this._DB.GetOrderPagedList(expression, PageParam); var source = new List <ProjectInfo>(); var i = 1; foreach (var proj in pageSource) { source.Add(new ProjectInfo(proj) { Index = (PageParam.PageIndex - 1) * PageParam.PageSize + i++, Customer = _ICustomerService.Get(proj.CustomerID), Engineerings = _PMContext.EngineeringEntity.Where(e => !e.IsDelete && e.ProjectID == proj.ID).ToList() }); } return(new PageSource <ProjectInfo>() { Source = source, PageCount = pageSource.TotalPageCount, TotalCount = pageSource.TotalItemCount }); }
public PageSource <ProjectInfo> GetPagedList(PageQueryParam PageParam) { Expression <Func <ProjectEntity, bool> > expression = c => !c.IsDelete; if (!string.IsNullOrEmpty(PageParam.TextCondtion)) { expression = expression.And(p => p.Name.Contains(PageParam.TextCondtion) || p.Number.Contains(PageParam.TextCondtion)); } #region FilterCondtion foreach (DictionaryEntry filter in PageParam.FilterCondtion) { if (filter.Value == null) { continue; } var val = filter.Value.ToString(); if (string.IsNullOrEmpty(val)) { continue; } switch (filter.Key.ToString()) { case "ID": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.ID == intVal); } break; } case "Number": { expression = expression.And(c => c.Number == val); break; } case "Manager": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Manager == intVal); } break; } case "Area": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Area == intVal); } break; } case "CreateDateFrom": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.CreateDate >= dateVal); break; } case "CreateDateTo": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.CreateDate < dateVal); break; } default: break; } } #endregion var pageSource = this._DB.GetOrderPagedList(expression, PageParam); var result = new List <ProjectInfo>(); foreach (var item in pageSource) { result.Add(new ProjectInfo(item) { ProjSpecils = _DBContext.ProjectSpecialtyEntity.Where(s => s.ProjectID == item.ID).ToList() }); } return(new PageSource <ProjectInfo>() { Source = result, PageCount = pageSource.TotalPageCount, TotalCount = pageSource.TotalItemCount }); }
public PageSource <CarUseInfo> GetPagedList(PageQueryParam PageParam) { Expression <Func <CarUseEntity, bool> > expression = c => true; #region Filter if (!string.IsNullOrEmpty(PageParam.TextCondtion)) { //expression = expression.And(p => p.Name.Contains(PageParam.TextCondtion) || p.Number.Contains(PageParam.TextCondtion)); } foreach (DictionaryEntry filter in PageParam.FilterCondtion) { var val = filter.Value.ToString(); if (string.IsNullOrEmpty(val)) { continue; } switch (filter.Key.ToString()) { case "MyApply": { var id = int.Parse(val); if (id > 0) { expression = expression.And(c => c.Manager == id); } break; } case "Car": { var id = int.Parse(val); if (id > 0) { expression = expression.And(c => c.CarID == id); } break; } default: break; } } #endregion var pageSource = this._DB.GetOrderPagedList(expression, PageParam); var source = new List <CarUseInfo>(); foreach (var entity in pageSource) { source.Add(new CarUseInfo(entity) { }); } return(new PageSource <CarUseInfo>() { Source = source, PageCount = pageSource.TotalPageCount, TotalCount = pageSource.TotalItemCount }); }
public PageSource <BidInfo> GetPagedList(PageQueryParam PageParam) { Expression <Func <BidEntity, bool> > expression = c => c.IsDelete == PageParam.IsDelete; #region Filter if (!string.IsNullOrEmpty(PageParam.TextCondtion)) { expression = expression.And(p => p.Name.Contains(PageParam.TextCondtion)); } foreach (DictionaryEntry filter in PageParam.FilterCondtion) { var val = filter.Value.ToString(); if (string.IsNullOrEmpty(val)) { continue; } switch (filter.Key.ToString()) { case "ID": { var id = int.Parse(val); if (id > 0) { expression = expression.And(c => c.ID == id); } break; } case "BidStatus": { if (val == "false") { expression = expression.And(c => !c.IsDelete); } break; } case "DepositStatus": { var id = int.Parse(val); if (id > 0) { expression = expression.And(c => c.DepositFeeStatus == id); } break; } default: break; } } #endregion var pageSource = this._DB.GetOrderPagedList(expression, PageParam); var source = new List <BidInfo>(); foreach (var entity in pageSource) { source.Add(new BidInfo(entity) { Customer = this._PMContext.CustomerEntity.SingleOrDefault(c => c.ID == entity.CustomerID), Person = this._PMContext.CustomerPersonEntity.SingleOrDefault(c => c.ID == entity.PersonID) }); } return(new PageSource <BidInfo>() { Source = source, PageCount = pageSource.TotalPageCount, TotalCount = pageSource.TotalItemCount }); }
public PageSource <EngineeringVolumeInfo> GetVolumePlanPagedList(PageQueryParam PageParam) { Expression <Func <EngineeringProductionInfo, bool> > expression = c => true; #region Filter if (!string.IsNullOrEmpty(PageParam.TextCondtion)) { var engIDs = (from eng in this._PMContext.Set <EngineeringEntity>().Where( o => o.Name.Contains(PageParam.TextCondtion) || o.Number.Contains(PageParam.TextCondtion)) select eng.ID); expression = expression.And(p => engIDs.Contains(p.Engineering.ID)); } foreach (DictionaryEntry filter in PageParam.FilterCondtion) { var val = filter.Value.ToString(); if (string.IsNullOrEmpty(val)) { continue; } switch (filter.Key.ToString()) { case "Type": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Type == intVal); } break; } case "Phase": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Phase == intVal); } break; } case "VolLevel": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.VolLevel == intVal); } break; } case "TaskType": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.TaskType == intVal); } break; } case "Status": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Status == intVal); } break; } case "Specialty": { var intVal = long.Parse(val); if (intVal > 0L) { expression = expression.And(c => c.Specialty.SpecialtyID == intVal); } break; } case "Manager": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Manager == intVal); } break; } case "CreateDateFrom": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.CreateDate >= dateVal); break; } case "CreateDateTo": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.CreateDate < dateVal); break; } case "DeliveryDateFrom": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.DeliveryDate >= dateVal); break; } case "DeliveryDateTo": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.DeliveryDate < dateVal); break; } default: break; } } #endregion // 判断是否可以策划全部工程的卷册,不然只能项目经理或者工程经理或者专业负责人策划卷册 var permissionCheck = _IPMPermissionCheck.Check("DATA_VolumeAllPlan", PageParam.CurrentUser.ToString()); var query = from en in this._PMContext.EngineeringEntity join pr in this._PMContext.ProjectEntity on en.ProjectID equals pr.ID join es in this._PMContext.EngineeringSpecialtyEntity on en.ID equals es.EngineeringID into temp1 from t1 in temp1.DefaultIfEmpty() join vo in this._PMContext.EngineeringVolumeEntity on new { engID = en.ID, specID = t1.SpecialtyID, IsDelete = false } equals new { engID = vo.EngineeringID, specID = vo.SpecialtyID, IsDelete = vo.IsDelete } into temp3 from t3 in temp3.DefaultIfEmpty() //join p in this._PMContext.ObjectProcessEntity //on new { ID = t3.ID, Key = this.Const_BusinessKeyName } equals new { ID = p.ObjectID, Key = p.ObjectKey } into temp4 //from t4 in temp4.DefaultIfEmpty() where en.Status == (int)EnumEngineeringStatus.启动 && !en.IsDelete && t1 != null && !pr.IsDeleted && (en.Manager == PageParam.CurrentUser || pr.Manager == PageParam.CurrentUser || t1.Manager == PageParam.CurrentUser || permissionCheck != PermissionStatus.Reject) //orderby en.ID descending select new EngineeringProductionInfo { Engineering = en, Project = pr, Specialty = t1, Volume = t3, //ProcessID = t4.ProcessID }; query = query.Where(expression); var result = query.OrderByDescending(a => a.Engineering.ProjectID) .ThenByDescending(a => a.Engineering.ID) .ThenByDescending(a => a.Specialty.ID) .AsEnumerable().ToPagedList(PageParam.PageIndex, PageParam.PageSize); PageParam.Count = result.TotalItemCount; var source = new List <EngineeringVolumeInfo>(); foreach (var entity in result) { source.Add(new EngineeringVolumeInfo(entity) { //Volumes = this._PMContext.EngineeringVolumeEntity.Where(v => v.EngineeringID == entity.Engineering.ID && v.SpecialtyID == entity.Specialty.SpecialtyID).ToList(), //Tasks = this._IBPMTaskInstanceService.GetList(t => t.ProcessID == entity.ProcessID && t.Type == (int)TaskType.Manual && !t.IsDelete) }); } return(new PageSource <EngineeringVolumeInfo>() { Source = source, PageCount = result.TotalPageCount, TotalCount = result.TotalItemCount }); }
public PageSource <ContractInfo> GetPagedList(PageQueryParam PageParam) { Expression <Func <ContractEntity, bool> > expression = c => c.IsDelete == PageParam.IsDelete; #region Filter if (!string.IsNullOrEmpty(PageParam.TextCondtion)) { expression = expression.And(p => p.Name.Contains(PageParam.TextCondtion) || p.Number.Contains(PageParam.TextCondtion)); } foreach (DictionaryEntry filter in PageParam.FilterCondtion) { var val = filter.Value.ToString(); if (string.IsNullOrEmpty(val)) { continue; } switch (filter.Key.ToString()) { case "ID": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.ID == intVal); } break; } case "Type": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Type == intVal); } break; } case "Status": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Status == intVal); } break; } case "Customer": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.CustomerID == intVal); } break; } case "CreateDateFrom": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.CreateDate >= dateVal); break; } case "CreateDateTo": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.CreateDate < dateVal); break; } case "SigndateFrom": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.SignDate >= dateVal); break; } case "SigndateTo": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.SignDate < dateVal); break; } default: break; } } #endregion var pageSource = this._DB.GetOrderPagedList(expression, PageParam); var source = new List <ContractInfo>(); // 这里扩展合同的数据 foreach (var entity in pageSource) { //IQueryable<int>,一个查询计划 var engIDs = (from conObj in this._PMContext.Set <ContractObjectEntity>().Where( o => o.ContractID == entity.ID && o.ObjectKey == "Engineering") select conObj.ObjectID); //IQueryable<int>,一个查询计划 var objIDs = from conObj in this._PMContext.ContractObjectEntity where conObj.ContractID == entity.ID select conObj.ID; var data = from item in this._PMContext.ContractPayeeEntity where !item.IsDelete && objIDs.Contains(item.ContractObjectID) group item by new { item.Type } into b select new { Type = b.Key.Type, Fee = b.Sum(c => c.Fee) }; var feeInfo = data.FirstOrDefault(d => d.Type == 2); var invoiceInfo = data.FirstOrDefault(d => d.Type == 3); var info = new ContractInfo(entity) { Customer = this._PMContext.CustomerEntity.Find(entity.CustomerID), Engineerings = this._PMContext.EngineeringEntity.Where(e => engIDs.Contains(e.ID)).ToList(), PayeeFee = feeInfo == null ? 0M : feeInfo.Fee, PayeeInvoice = invoiceInfo == null ? 0M : invoiceInfo.Fee, }; source.Add(info); } return(new PageSource <ContractInfo>() { Source = source, PageCount = pageSource.TotalPageCount, TotalCount = pageSource.TotalItemCount }); }
public PageSource <BookInfo> GetPagedList(PageQueryParam PageParam) { Expression <Func <BookInfo, bool> > expression = c => true; #region Filter if (!string.IsNullOrEmpty(PageParam.TextCondtion)) { expression = expression.And(p => p.Name.Contains(PageParam.TextCondtion) || p.Number.Contains(PageParam.TextCondtion) || p.BarCode == PageParam.TextCondtion); } foreach (DictionaryEntry filter in PageParam.FilterCondtion) { if (filter.Value == null) { continue; } var val = filter.Value.ToString(); if (string.IsNullOrEmpty(val)) { continue; } switch (filter.Key.ToString()) { case "Category": { expression = expression.And(c => c.Category == val); break; } default: break; } } #endregion var query = from i in this._DMContext.BookItemEntity join b in this._DMContext.BookEntity on i.BookID equals b.ID select new BookInfo { BookID = i.BookID, Author = b.Author, BackDate = i.BackDate, BarCode = i.BarCode, BorrowOutDate = i.BorrowOutDate, BorrowUser = i.BorrowUser, Category = b.Category, Count = b.Count, CreateDate = b.CreateDate, CreateUser = b.CreateUser, DestroyDate = i.DestroyDate, ItemID = i.ID, LastModifyDate = b.LastModifyDate, LastModifyUser = b.LastModifyUser, Name = b.Name, Note = b.Note, Number = b.Number, Press = b.Press, Price = b.Price, Status = i.Status, Style = b.Style, Type = b.Type, Year = b.Year }; query = query.Where(expression); var result = query.OrderByDescending(a => a.Year).ThenByDescending(a => a.Category).AsEnumerable().ToPagedList(PageParam.PageIndex, PageParam.PageSize); PageParam.Count = result.TotalItemCount; return(new PageSource <BookInfo>() { Source = result, PageCount = result.TotalPageCount, TotalCount = result.TotalItemCount }); }
public override List <BizObject> GetChildren(PageQueryParam PageParam) { return(null); }
/// <summary> /// 提资任务 /// </summary> /// <param name="PageParam"></param> /// <returns></returns> public PageSource <UserTaskInfo> GetProvideTasks(PageQueryParam PageParam) { Expression <Func <UserTaskInfo, bool> > expression = c => true; #region Filter if (!string.IsNullOrEmpty(PageParam.TextCondtion)) { //expression = expression.And(p => p.Name.Contains(PageParam.TextCondtion) || p.Number.Contains(PageParam.TextCondtion)); } foreach (DictionaryEntry filter in PageParam.FilterCondtion) { var val = filter.Value.ToString(); if (string.IsNullOrEmpty(val)) { continue; } switch (filter.Key.ToString()) { case "User": { var id = int.Parse(val); if (id > 0) { expression = expression.And(c => c.UserID == id); } break; } case "Status": { var id = int.Parse(val); if (id > 0) { expression = expression.And(c => c.Status == id); } else if (id == -1) { // 超期 expression = expression.And(c => c.LctDate.HasValue && c.LctDate < c.FinishDate); } break; } default: break; } } #endregion var query = from ut in this._PMContext.UserTaskEntity join op in this._PMContext.ObjectProcessEntity on ut.ProcessID equals op.ProcessID join ev in this._PMContext.EngineeringSpecialtyProvideEntity on new { ID = op.ObjectID, Key = op.ObjectKey } equals new { ID = ev.ID, Key = "EngineeringSpecialtyProvide" } join en in this._PMContext.EngineeringEntity on ev.EngineeringID equals en.ID where !en.IsDelete && !ut.IsDelete && ut.Source == (int)TaskSource.提资 orderby ut.ReceiveDate descending select new UserTaskInfo { ID = ut.ID, FinishDate = ut.FinishDate, UserID = ut.UserID, Identity = ut.Identity, Name = ut.Name, ProcessID = ut.ProcessID, ReceiveDate = ut.ReceiveDate, Source = ut.Source, Status = ut.Status, Type = ut.Type, Args = ut.Args, IsDelete = ut.IsDelete, TaskModelID = ut.TaskModelID, Time = ut.Time, Engineering = en, SpecialtyProvide = ev }; query = query.Where(expression); var result = query.AsEnumerable().ToPagedList(PageParam.PageIndex, PageParam.PageSize); PageParam.Count = result.TotalItemCount; return(new PageSource <UserTaskInfo>() { Source = result, PageCount = result.TotalPageCount, TotalCount = result.TotalItemCount }); }
public PageSource <FormChangeInfo> GetPagedList(PageQueryParam PageParam) { Expression <Func <FormChangeInfo, bool> > expression = c => true; #region Filter if (!string.IsNullOrEmpty(PageParam.TextCondtion)) { var engIDs = (from eng in this._PMContext.Set <EngineeringEntity>().Where( o => o.Name.Contains(PageParam.TextCondtion) || o.Number.Contains(PageParam.TextCondtion)) select eng.ID); expression = expression.And(p => engIDs.Contains(p.Engineering.ID)); } foreach (DictionaryEntry filter in PageParam.FilterCondtion) { var val = filter.Value.ToString(); if (string.IsNullOrEmpty(val)) { continue; } switch (filter.Key.ToString()) { case "Type": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Type == intVal); } break; } case "Phase": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Phase == intVal); } break; } case "VolLevel": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.VolLevel == intVal); } break; } case "TaskType": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.TaskType == intVal); } break; } case "Status": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Status == intVal); } break; } case "Specialty": { var intVal = long.Parse(val); if (intVal > 0L) { expression = expression.And(c => c.SpecialtyID == intVal); } break; } case "Manager": { var intVal = int.Parse(val); if (intVal > 0) { expression = expression.And(c => c.Engineering.Manager == intVal); } break; } case "CreateDateFrom": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.CreateDate >= dateVal); break; } case "CreateDateTo": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.CreateDate < dateVal); break; } case "DeliveryDateFrom": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.DeliveryDate >= dateVal); break; } case "DeliveryDateTo": { var dateVal = DateTime.Parse(val); expression = expression.And(c => c.Engineering.DeliveryDate < dateVal); break; } case "Self": { if (val.ToLower() == "true") { expression = expression.And(c => c.CreateUserID == PageParam.CurrentUser); } break; } default: break; } } #endregion var query = from fc in this._PMContext.FormChangeEntity join en in this._PMContext.EngineeringEntity on fc.EngineeringID equals en.ID join ev in this._PMContext.EngineeringVolumeEntity on fc.VolumeID equals ev.ID where !en.IsDelete && !fc.IsDelete select new FormChangeInfo { ID = fc.ID, EngineeringID = fc.EngineeringID, SpecialtyID = fc.SpecialtyID, VolumeID = fc.VolumeID, CopyCustomerID = fc.CopyCustomerID, MainCustomerID = fc.MainCustomerID, Reason = fc.Reason, Content = fc.Content, AttachID = fc.AttachID, CreateDate = fc.CreateDate, CreateUserID = fc.CreateUserID, Engineering = en, Volume = ev, }; var result = query.Where(expression) .MyOrder <FormChangeInfo>(PageParam.OrderFiled, PageParam.IsDesc) .ToPagedList(PageParam.PageIndex, PageParam.PageSize); return(new PageSource <FormChangeInfo>() { Source = result, PageCount = result.TotalPageCount, TotalCount = result.TotalItemCount }); }