Exemplo n.º 1
0
        /// <summary>
        /// 工程完成
        /// </summary>
        /// <param name="ID"></param>
        /// <param name="Reason"></param>
        public void Finish(int ID)
        {
            var entity = this._DB.Get(ID);

            entity.Status     = (int)EnumEngineeringStatus.完成;
            entity.FinishDate = DateTime.Now;
            this._DB.Edit(entity);

            var engInfo = new EngineeringInfo(entity);

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

            // 工程负责人
            users.Add(entity.Manager);

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

            _IEngineeringNoteService.Add(new EngineeringNoteInfo()
            {
                Content       = "工程完成",
                EngineeringID = ID,
                NoteDate      = DateTime.Now,
                NoteType      = (int)EnumEngineeringNoteType.完成,
                UserID        = 0
            });

            // 给每个相关人员发送专业完成提醒
            users.ForEach(u =>
            {
                _INotificationService.Add(new NotificationInfo()
                {
                    ReceiveUser = u,
                    Head        = "工程完成",
                    Title       = "工程完成",
                    Info        = entity.Name,
                    SendUser    = 0,
                    CreateDate  = DateTime.Now,
                    EffectDate  = DateTime.Now, // 生效日期
                    SourceID    = ID,
                    SourceName  = "Engineering",
                    SourceTag   = "Finish",
                });
            });
        }
Exemplo n.º 2
0
        /// <summary>
        /// 工程启动
        /// </summary>
        /// <param name="ID"></param>
        /// <param name="Reason"></param>
        public void Start(int ID, int UserID, List <int> ReceiveUserIDs = null)
        {
            var entity = this._DB.Get(ID);

            entity.Status    = (int)EnumEngineeringStatus.启动;
            entity.StartDate = DateTime.Now;
            this._DB.Edit(entity);

            var engInfo = new EngineeringInfo(entity);

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

            // 工程负责人
            users.Add(entity.Manager);

            // 其他相关人员
            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}启动", entity.Name),
                EngineeringID = ID,
                NoteDate      = DateTime.Now,
                NoteType      = (int)EnumEngineeringNoteType.启动,
                UserID        = UserID,
                ReceiveUsers  = receiveUserIDs,
                Engineering   = entity,
            });
        }
Exemplo n.º 3
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,
            });
        }