Beispiel #1
0
        /// <summary>
        /// 获取人数记录项合计数
        /// </summary>
        /// <param name="populationId">人数统计ID</param>
        /// <returns></returns>
        public IEnumerable <PopulationDetail> FindSumDetails(string populationId)
        {
            List <PopulationDetail> data = new List <PopulationDetail>();
            var records = this.baseDal.FindListByField("populationId", populationId);

            foreach (var record in records)
            {
                foreach (var item in record.Details)
                {
                    if (item.InTotal)
                    {
                        var detail = data.Find(r => r.Code == item.Code);
                        if (detail == null)
                        {
                            PopulationDetail pd = new PopulationDetail
                            {
                                Name   = item.Name,
                                Code   = item.Code,
                                Number = item.Number
                            };
                            data.Add(pd);
                        }
                        else
                        {
                            detail.Number += item.Number;
                        }
                    }
                }
            }

            return(data);
        }
        /// <summary>
        /// 设置人数记录表格
        /// </summary>
        private void SetDetailGrid()
        {
            List <PopulationDetail> details = new List <PopulationDetail>();

            details.AddRange(this.currentRecord.Details);

            var dict1 = BusinessFactory <DictBusiness> .Instance.FindItems(EnergyConstant.TeacherDictCode);

            foreach (var dictItem in dict1)
            {
                if (details.Any(r => r.Code == dictItem.Value))
                {
                    continue;
                }

                PopulationDetail detail = new PopulationDetail
                {
                    Code    = dictItem.Value,
                    Name    = dictItem.Remark,
                    Number  = 0,
                    InTotal = false
                };

                details.Add(detail);
            }

            var dict2 = BusinessFactory <DictBusiness> .Instance.FindItems(EnergyConstant.StudentDictCode);

            foreach (var dictItem in dict2)
            {
                if (details.Any(r => r.Code == dictItem.Value))
                {
                    continue;
                }

                PopulationDetail detail = new PopulationDetail
                {
                    Code    = dictItem.Value,
                    Name    = dictItem.Remark,
                    Number  = 0,
                    InTotal = false
                };

                details.Add(detail);
            }

            this.popDetailsGrid.DataSource = details;
        }
Beispiel #3
0
        /// <summary>
        /// BsonDocument转实体对象
        /// </summary>
        /// <param name="doc">Bson文档</param>
        /// <returns></returns>
        protected override PopulationRecord DocToEntity(BsonDocument doc)
        {
            PopulationRecord entity = new PopulationRecord();

            entity.Id           = doc["_id"].ToString();
            entity.PopulationId = doc["populationId"].ToString();
            entity.DepartmentId = doc["departmentId"].ToString();

            var createBy = doc["createBy"].ToBsonDocument();

            entity.CreateBy = new UpdateStamp
            {
                UserId = createBy["userId"].ToString(),
                Name   = createBy["name"].ToString(),
                Time   = createBy["time"].ToLocalTime()
            };

            var updateBy = doc["updateBy"].ToBsonDocument();

            entity.UpdateBy = new UpdateStamp
            {
                UserId = updateBy["userId"].ToString(),
                Name   = updateBy["name"].ToString(),
                Time   = updateBy["time"].ToLocalTime()
            };

            entity.Remark = doc["remark"].ToString();
            entity.Status = doc["status"].ToInt32();

            entity.Details = new List <PopulationDetail>();
            if (doc.Contains("details"))
            {
                BsonArray array = doc["details"].AsBsonArray;
                foreach (BsonDocument item in array)
                {
                    PopulationDetail detail = new PopulationDetail();
                    detail.Name    = item["name"].ToString();
                    detail.Code    = item["code"].ToString();
                    detail.Number  = item["number"].ToInt32();
                    detail.InTotal = item.GetValue("inTotal", true).ToBoolean();

                    entity.Details.Add(detail);
                }
            }

            return(entity);
        }
Beispiel #4
0
        /// <summary>
        /// 自定义数据显示
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgvEntity_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
        {
            int rowIndex = e.ListSourceRowIndex;

            if (rowIndex < 0 || rowIndex >= this.bsEntity.Count)
            {
                return;
            }

            var record = this.bsEntity[rowIndex] as PopulationRecord;

            switch (e.Column.FieldName)
            {
            case "colEstablishment":
            {
                var detail = record.Details.Find(r => r.Code == "Establishment");
                if (detail == null)
                {
                    detail = new PopulationDetail
                    {
                        Name    = "在职在编",
                        Code    = "Establishment",
                        Number  = 0,
                        InTotal = true
                    };
                    record.Details.Add(detail);
                }

                if (e.IsGetData)
                {
                    e.Value = detail.Number;
                }
                if (e.IsSetData)
                {
                    detail.Number = Convert.ToInt32(e.Value);
                }
            }
            break;

            case "colPersonnelAgency":
            {
                var detail = record.Details.Find(r => r.Code == "PersonnelAgency");
                if (detail == null)
                {
                    detail = new PopulationDetail
                    {
                        Name    = "人事代理",
                        Code    = "PersonnelAgency",
                        Number  = 0,
                        InTotal = true
                    };
                    record.Details.Add(detail);
                }

                if (e.IsGetData)
                {
                    e.Value = detail.Number;
                }
                if (e.IsSetData)
                {
                    detail.Number = Convert.ToInt32(e.Value);
                }
            }
            break;

            case "colUndergraduate":
            {
                var detail = record.Details.Find(r => r.Code == "Undergraduate");
                if (detail == null)
                {
                    detail = new PopulationDetail
                    {
                        Name    = "本科生",
                        Code    = "Undergraduate",
                        Number  = 0,
                        InTotal = true
                    };
                    record.Details.Add(detail);
                }

                if (e.IsGetData)
                {
                    e.Value = detail.Number;
                }
                if (e.IsSetData)
                {
                    detail.Number = Convert.ToInt32(e.Value);
                }
            }
            break;

            case "colMaster":
            {
                var detail = record.Details.Find(r => r.Code == "Master");
                if (detail == null)
                {
                    detail = new PopulationDetail
                    {
                        Name    = "硕士生",
                        Code    = "Master",
                        Number  = 0,
                        InTotal = true
                    };
                    record.Details.Add(detail);
                }

                if (e.IsGetData)
                {
                    e.Value = detail.Number;
                }
                if (e.IsSetData)
                {
                    detail.Number = Convert.ToInt32(e.Value);
                }
            }
            break;

            case "colProfessionalMaster":
            {
                var detail = record.Details.Find(r => r.Code == "ProfessionalMaster");
                if (detail == null)
                {
                    detail = new PopulationDetail
                    {
                        Name    = "专业硕士生",
                        Code    = "ProfessionalMaster",
                        Number  = 0,
                        InTotal = true
                    };
                    record.Details.Add(detail);
                }

                if (e.IsGetData)
                {
                    e.Value = detail.Number;
                }
                if (e.IsSetData)
                {
                    detail.Number = Convert.ToInt32(e.Value);
                }
            }
            break;

            case "colDoctor":
            {
                var detail = record.Details.Find(r => r.Code == "Doctor");
                if (detail == null)
                {
                    detail = new PopulationDetail
                    {
                        Name    = "博士生",
                        Code    = "Doctor",
                        Number  = 0,
                        InTotal = true
                    };
                    record.Details.Add(detail);
                }

                if (e.IsGetData)
                {
                    e.Value = detail.Number;
                }
                if (e.IsSetData)
                {
                    detail.Number = Convert.ToInt32(e.Value);
                }
            }
            break;

            case "colAbroadStudent":
            {
                var detail = record.Details.Find(r => r.Code == "AbroadStudent");
                if (detail == null)
                {
                    detail = new PopulationDetail
                    {
                        Name    = "留学生",
                        Code    = "AbroadStudent",
                        Number  = 0,
                        InTotal = true
                    };
                    record.Details.Add(detail);
                }

                if (e.IsGetData)
                {
                    e.Value = detail.Number;
                }
                if (e.IsSetData)
                {
                    detail.Number = Convert.ToInt32(e.Value);
                }
            }
            break;
            }
        }