Ejemplo n.º 1
0
        /// <summary>
        /// 从表格行数据中提取会议对象
        /// </summary>
        /// <param name="row">数据行</param>
        /// <returns>返回获取到的会议对象</returns>
        public MeetingData GetMeetingData(DataRow row)
        {
            MeetingData data = new MeetingData();

            data.标题      = row["标题"].ToString();
            data.创建人工号   = row["创建人工号"].ToString();
            data.创建人姓名   = row["创建人姓名"].ToString();
            data.创建日期    = (DateTime)row["创建日期"];
            data.开始时间    = (DateTime)row["开始时间"];
            data.结束时间    = (DateTime)row["结束时间"];
            data.会议编号    = row["会议编号"].ToString();
            data.会议正文    = row["会议正文"].ToString();
            data.会议状态    = (MeetingStatus)Enum.Parse(typeof(MeetingStatus), row["会议状态"].ToString());
            data.会议资源    = row["会议资源"].ToString();
            data.记录人工号   = row["记录人工号"].ToString();
            data.记录人姓名   = row["记录人姓名"].ToString();
            data.主持人工号   = row["主持人工号"].ToString();
            data.主持人姓名   = row["主持人姓名"].ToString();
            data.事务类别    = DailyWorkType.会议;
            data.与会人员    = row["与会人员"].ToString();
            data.提醒方式    = (MeetingAlarmMode)Enum.Parse(typeof(MeetingAlarmMode), row["提醒方式"].ToString());
            data.提醒提前分钟数 = (int)row["提醒提前分钟数"];
            data.重要性     = (TaskImportance)Enum.Parse(typeof(TaskImportance), row["重要性"].ToString());

            TaskManagementDataContext ctx = CommentParameter.TaskManagementDataContext;

            var peoples = from r in ctx.PRJ_DailyWorkNotifyPeople
                          where r.DailyWorkID == data.会议编号
                          select r.WorkID;

            List <PersonnelBasicInfo> lstPersonnel = new List <PersonnelBasicInfo>();

            foreach (var item in peoples)
            {
                lstPersonnel.Add(new PersonnelBasicInfo {
                    工号 = item, 姓名 = UniversalFunction.GetPersonnelName(item)
                });
            }

            data.与会人员对象集 = lstPersonnel;

            data.会议资源对象集 = (from r in ctx.PRJ_ResourceUsageList
                            join a in ctx.View_PRJ_Resource on r.ResourceID equals a.资源编号
                            where r.TaskID == data.会议编号
                            select a).ToList();

            return(data);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 保存会议信息
        /// </summary>
        /// <param name="info">要保存的数据</param>
        public void Save(MeetingData info)
        {
            if (ServerTime.Time > info.开始时间.AddMinutes(-10))
            {
                throw new Exception("会议开始时间必须在当前时间10分钟前");
            }

            TaskManagementDataContext ctx = CommentParameter.TaskManagementDataContext;

            var result = from r in ctx.PRJ_DailyWork
                         where r.ID == info.会议编号
                         select r;

            ctx.Connection.Open();
            ctx.Transaction = ctx.Connection.BeginTransaction();

            try
            {
                if (result.Count() > 0)
                {
                    Delete(ctx, info.会议编号);
                }

                PRJ_DailyWork dailyWork = new PRJ_DailyWork();

                DateTime date = ServerTime.Time;

                result = from r in ctx.PRJ_DailyWork
                         where r.TypeID == (int)DailyWorkType.会议 && r.ID.Substring(3, 4) == date.Year.ToString()
                         select r;

                int maxValue = 1;

                if (result.Count() > 0)
                {
                    maxValue += (from r in ctx.PRJ_DailyWork
                                 where r.TypeID == (int)DailyWorkType.会议 && r.ID.Substring(3, 4) == date.Year.ToString()
                                 select Convert.ToInt32(r.ID.Substring(9))).Max();
                }

                // HYX : 会议项
                dailyWork.ID = string.Format("HYX{0:D4}{1:D2}{2:D5}", date.Year, date.Month, maxValue);

                info.会议编号 = dailyWork.ID;

                dailyWork.ImportanceID = Convert.ToInt32(info.重要性);
                dailyWork.BeginTime    = info.开始时间.AddSeconds(-info.开始时间.Second);
                dailyWork.EndTime      = info.结束时间.AddSeconds(-info.结束时间.Second);
                dailyWork.Content      = info.会议正文;
                dailyWork.Date         = ServerTime.Time;
                dailyWork.NeedToReply  = false;
                dailyWork.Status       = MeetingStatus.待发.ToString();
                dailyWork.Title        = info.标题;
                dailyWork.TypeID       = (int)info.事务类别; // 类别为:会议
                dailyWork.WorkID       = BasicInfo.LoginID;

                ctx.PRJ_DailyWork.InsertOnSubmit(dailyWork);

                PRJ_MeetingExpandedInfo meetingExpandedInfo = new PRJ_MeetingExpandedInfo();

                meetingExpandedInfo.DailyWorkID = dailyWork.ID;
                meetingExpandedInfo.AlarmMode   = info.提醒方式.ToString();
                meetingExpandedInfo.AlarmValue  = info.提醒提前分钟数;
                meetingExpandedInfo.HostCode    = info.主持人工号;
                meetingExpandedInfo.Recorder    = info.记录人工号;

                ctx.PRJ_MeetingExpandedInfo.InsertOnSubmit(meetingExpandedInfo);

                // 设置与会人员
                if (info.与会人员对象集 != null)
                {
                    foreach (var item in info.与会人员对象集)
                    {
                        PRJ_DailyWorkNotifyPeople people = new PRJ_DailyWorkNotifyPeople();

                        people.WorkID      = item.工号;
                        people.DailyWorkID = dailyWork.ID;

                        ctx.PRJ_DailyWorkNotifyPeople.InsertOnSubmit(people);
                    }
                }

                // 设置会议使用的资源
                if (info.会议资源对象集 != null)
                {
                    foreach (var item in info.会议资源对象集)
                    {
                        PRJ_ResourceUsageList rul = new PRJ_ResourceUsageList();

                        rul.ResourceID = (int)item.资源编号;
                        rul.TaskID     = dailyWork.ID;
                        rul.BeginTime  = dailyWork.BeginTime;
                        rul.EndTime    = dailyWork.EndTime;
                        rul.Remark     = "";

                        ctx.PRJ_ResourceUsageList.InsertOnSubmit(rul);
                    }
                }

                ctx.SubmitChanges();

                ctx.Transaction.Commit();

                info.会议状态 = MeetingStatus.待发;
            }
            catch (Exception exce)
            {
                ctx.Transaction.Rollback();
                throw exce;
            }
        }