Exemplo n.º 1
0
        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
            });
        }
Exemplo n.º 4
0
 public PageSource <ObjectProcessEntity> GetPagedList(PageQueryParam PageParam)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 5
0
        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
            });
        }
Exemplo n.º 6
0
        public override List <BizObject> GetChildren(PageQueryParam PageParam)
        {
            IEngineeringService _IEngineeringService = UnityContainerHelper.GetServer <IEngineeringService>();

            return(_IEngineeringService.GetListByProjectID(this.ID, PageParam));
        }
Exemplo n.º 7
0
        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
            });
        }
Exemplo n.º 8
0
 public abstract List <BizObject> GetChildren(PageQueryParam PageParam);
Exemplo n.º 9
0
        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
            });
        }
Exemplo n.º 10
0
        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
            });
        }
Exemplo n.º 11
0
        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
            });
        }
Exemplo n.º 12
0
        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
            });
        }
Exemplo n.º 13
0
        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
            });
        }
Exemplo n.º 14
0
        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
            });
        }
Exemplo n.º 15
0
        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
            });
        }
Exemplo n.º 16
0
 public override List <BizObject> GetChildren(PageQueryParam PageParam)
 {
     return(null);
 }
Exemplo n.º 17
0
        /// <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
            });
        }
Exemplo n.º 18
0
        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
            });
        }