public EngineeringInfo Get(int ID) { var entity = this._DB.Get(ID); var proj = this._PMContext.ProjectEntity.Find(entity.ProjectID); var result = new EngineeringInfo(entity); result.ProjectInfo = proj; return(result); }
public int Add(EngineeringInfo Engineering) { var entity = new EngineeringEntity(Engineering); entity.IsDelete = false; entity.Status = (int)EnumEngineeringStatus.新建; this._DB.Add(entity); // 启动工程 Start(entity.ID, Engineering.CreateUser); return(entity.ID); }
/// <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", }); }); }
public EngineeringEntity(EngineeringInfo Info) { this.ID = Info.ID; this.Name = Info.Name; this.Number = Info.Number; this.Type = Info.Type; this.Phase = Info.Phase; this.TaskType = Info.TaskType; this.Manager = Info.Manager; this.CreateDate = Info.CreateDate; this.DeliveryDate = Info.DeliveryDate; this.FinishDate = Info.FinishDate; this.StartDate = Info.StartDate; this.StopDate = Info.StopDate; this.Note = Info.Note; this.IsDelete = Info.IsDelete; this.ProjectID = Info.ProjectID; this.Status = Info.Status; this.VolLevel = Info.VolLevel; }
/// <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, }); }
public List <BizObject> Get(PageQueryParam PageParam, int Deep = int.MaxValue) { var currentUser = PageParam.CurrentUser; var p_All = _IPMPermissionCheck.CheckObjAll(currentUser); var p_Dept = _IPMPermissionCheck.CheckObjDept(currentUser); var viewLevl = ObjectViewLevel.全部; if (p_All != PermissionStatus.Reject) { // 可以查看全部进度 } else if (p_Dept != PermissionStatus.Reject) { // 可以查看部门工程进度 viewLevl = ObjectViewLevel.部门; _DeptUsers = _IDepartment.GetMyDeptUsers(currentUser); } else { // 查看与自己相关工程的进度 viewLevl = ObjectViewLevel.个人; } #region Filter Expression <Func <EngineeringEntity, bool> > expression = c => !c.IsDelete; if (PageParam.TextCondtion != null && !string.IsNullOrEmpty(PageParam.TextCondtion)) { expression = expression.And(p => p.Name.Contains(PageParam.TextCondtion) || p.Number.Contains(PageParam.TextCondtion)); } foreach (DictionaryEntry filter in PageParam.FilterCondtion) { var value = filter.Value.ToString(); if (value == "0" || string.IsNullOrEmpty(value)) { continue; } switch (filter.Key.ToString()) { case "Project.ID": { var intVal = int.Parse(value); expression = expression.And(c => c.ProjectID == intVal); break; } case "Engineering.ID": { var intVal = int.Parse(value); expression = expression.And(c => c.ID == intVal); break; } case "Engineering.Type": { var intVal = int.Parse(value); expression = expression.And(c => c.Type == intVal); break; } case "Engineering.Phase": { var intVal = int.Parse(value); expression = expression.And(c => c.Phase == intVal); break; } case "Engineering.VolLevel": { var intVal = int.Parse(value); expression = expression.And(c => c.VolLevel == intVal); break; } case "Engineering.TaskType": { var intVal = int.Parse(value); expression = expression.And(c => c.TaskType == intVal); break; } case "Engineering.Status": { var intVal = int.Parse(value); expression = expression.And(c => c.Status == intVal); break; } case "Engineering.Manager": { var intVal = int.Parse(value); expression = expression.And(c => c.Manager == intVal); break; } case "Engineering.DateRange": { var intVal = int.Parse(value); switch (intVal) { case 0: break; case 1: break; case 2: break; case 3: break; case 4: break; default: break; } break; } default: break; } } #endregion var list = _DB.GetList(expression); var result = new List <BizObject>(); var haspermission = false; foreach (var item in list) { var obj = new EngineeringInfo(item); haspermission = checkPermission(viewLevl, currentUser, obj); if (Deep > 1) { setChildren(obj, PageParam, haspermission, viewLevl, currentUser, 2, Deep); } if (haspermission || (obj.Children != null && obj.Children.Count > 0)) { result.Add(obj); } } return(result); }
public int Create(EngineeringInfo Info) { return(this._IEngineeringService.Add(Info)); }