示例#1
0
        /// <summary>
        /// 工程暂停
        /// </summary>
        /// <param name="ID"></param>
        /// <param name="Reason"></param>
        public void Stop(int ID, int UserID, string Reason, List <int> ReceiveUserIDs = null)
        {
            var entity = this._DB.Get(ID);

            entity.Status   = (int)EnumEngineeringStatus.暂停;
            entity.StopDate = DateTime.Now;
            this._DB.Edit(entity);

            var engInfo = new EngineeringInfo(entity);

            // 项目负责人
            var users = engInfo.GetParentMainUsers();

            // 工程相关人员
            users.AddRange(engInfo.GetChildrenMainUsers());

            // 其他相关人员
            if (ReceiveUserIDs != null)
            {
                users.AddRange(ReceiveUserIDs);
            }

            // 去除重复人员
            var receiveUserIDs = users.Where((x, i) => users.FindIndex(z => z == x) == i).ToList();

            _IEngineeringNoteService.Add(new EngineeringNoteInfo()
            {
                Content       = string.Format("工程:{0}暂停,暂停时间:{1},说明:{2}", entity.Name, entity.StopDate, Reason),
                EngineeringID = ID,
                NoteDate      = DateTime.Now,
                NoteType      = (int)EnumEngineeringNoteType.暂停,
                UserID        = UserID,
                ReceiveUsers  = receiveUserIDs,
                Engineering   = entity,
            });
        }