/// <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", }); }); }
/// <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, }); }
/// <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, }); }