/// <summary> /// 获取颜色按钮 /// </summary> /// <param name="right"></param> /// <returns></returns> public static string GetButtonColor(SystemRight right) { switch (right) { case SystemRight.Check: return("#5cb85c"); case SystemRight.UnCheck: return("#5bc0de"); case SystemRight.Invalid: return("#f0ad4e"); case SystemRight.Delete: return("#d9534f"); case SystemRight.AuditRectif: return("#5cb85c"); case SystemRight.RejectRectif: return("#5bc0de"); default: return("#286090"); } }
/// <summary> /// 检查用户操作权限 /// </summary> /// <param name="businessType">业务类型</param> /// <param name="action">操作类型</param> /// <param name="user">用户</param> /// <returns></returns> public static bool CheckRight(BusinessType businessType, SystemRight action, UserView user) { string rightValue = ""; if (businessType == BusinessType.Project) { rightValue = string.Format("{0}_{1}", "ConProject", action.ToString()); } else { rightValue = string.Format("{0}_{1}", businessType.ToString(), action.ToString()); } return(user.Rights.ContainsValue(rightValue)); }
/// <summary> /// 更新状态 /// </summary> /// <param name="id"></param> /// <param name="state"></param> /// <returns></returns> public Result <int> UpdateChangeState(long id, string state) { Result <int> result = new Result <int>(); try { var model = DataOperateBusiness <Epm_Change> .Get().GetModel(id); if (model != null) { model.OperateUserId = CurrentUserID.ToLongReq(); model.OperateUserName = CurrentUserName; model.OperateTime = DateTime.Now; model.State = (int)state.ToEnumReq <ApprovalState>(); var rows = DataOperateBusiness <Epm_Change> .Get().Update(model); result.Data = rows; result.Flag = EResultFlag.Success; WriteLog(BusinessType.Change.GetText(), SystemRight.Modify.GetText(), "更新状态: " + rows); //处理待办 var tempApp = DataOperateBusiness <Epm_Approver> .Get().GetList(t => t.BusinessId == model.Id && t.IsApprover == false).FirstOrDefault(); if (tempApp != null) { ComplateApprover(tempApp.Id); } string title = ""; if (model.State == (int)ApprovalState.Discarded) { var list = DataOperateBusiness <Epm_ChangeCompany> .Get().GetList(t => t.ChangeId == model.Id).ToList(); if (list.Any()) { for (int i = 0; i < list.Count; i++) { var comID = list[i].CompanyId; var temp = DataOperateBusiness <Epm_ProjectStateTrack> .Get().GetList(t => t.CompanyId == comID).FirstOrDefault(); temp.Qty = (Convert.ToInt32(temp.Qty) - 1).ToString(); DataOperateBusiness <Epm_ProjectStateTrack> .Get().Update(temp); } } #region 生成待办 var project = DataOperateBusiness <Epm_Project> .Get().GetModel(model.ProjectId.Value); List <Epm_Approver> listApp = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.Title = model.CreateUserName + "提交了变更申请,已废弃"; app.Content = model.CreateUserName + "提交了变更申请,已废弃"; app.SendUserId = CurrentUserID.ToLongReq(); app.SendUserName = CurrentUserName; app.SendTime = DateTime.Now; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.Change.ToString(); app.Action = SystemRight.Invalid.ToString(); app.BusinessTypeName = BusinessType.Change.GetText(); app.BusinessState = (int)(ApprovalState.Discarded); app.BusinessId = model.Id; app.ApproverId = project.PMId; app.ApproverName = project.PMName; app.ProjectId = model.ProjectId; app.ProjectName = project.Name; listApp.Add(app); AddApproverBatch(listApp); WriteLog(BusinessType.Contract.GetText(), SystemRight.Invalid.GetText(), "废弃变更生成待办: " + model.Id); #endregion title = model.CreateUserName + "提交了变更申请,已废弃"; } if ((ApprovalState)Enum.ToObject(typeof(ApprovalState), model.State) == ApprovalState.ApprSuccess) { #region 更改项目状态表 var companys = DataOperateBusiness <Epm_ChangeCompany> .Get().GetList(t => t.ChangeId == model.Id).ToList(); if (companys.Any()) { var companyIds = companys.Select(t => t.CompanyId); var track = DataOperateBusiness <Epm_ProjectStateTrack> .Get().GetList(t => t.ProjectId == model.ProjectId && companyIds.Contains(t.CompanyId) && t.StateTrackNo == "ChangeNum"); if (track.Any()) { foreach (var item in track) { int qty = Convert.ToInt32(item.Qty) + 1; item.Qty = qty.ToString(); } DataOperateBusiness <Epm_ProjectStateTrack> .Get().UpdateRange(track); } } #endregion var project = DataOperateBusiness <Epm_Project> .Get().GetList(t => t.Id == model.ProjectId).FirstOrDefault(); if (project != null) { project.Amount = model.TotalAmount + model.ChangeAmount; DataOperateBusiness <Epm_Project> .Get().Update(project); } #region 生成待办 List <Epm_Approver> list = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.Title = model.CreateUserName + "提交的变更申请,审核通过"; app.Content = model.CreateUserName + "提交的变更申请,审核通过"; app.SendUserId = model.CreateUserId; app.SendUserName = model.CreateUserName; app.SendTime = model.CreateTime; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.Change.ToString(); app.Action = SystemRight.Check.ToString(); app.BusinessTypeName = BusinessType.Change.GetText(); app.BusinessState = (int)(ApprovalState.ApprSuccess); app.BusinessId = model.Id; app.ApproverId = model.CreateUserId; app.ApproverName = model.CreateUserName; app.ProjectId = model.ProjectId; app.ProjectName = model.ProjectName; list.Add(app); AddApproverBatch(list); WriteLog(BusinessType.Change.GetText(), SystemRight.Check.GetText(), "审核通过变更生成待办: " + model.Id); #endregion title = model.CreateUserName + "提交的变更申请,审核通过"; } else if ((ApprovalState)Enum.ToObject(typeof(ApprovalState), model.State) == ApprovalState.ApprFailure) { #region 生成待办 List <Epm_Approver> list = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.Title = model.CreateUserName + "提交的变更申请已被驳回,请处理"; app.Content = model.CreateUserName + "提交的变更申请已被驳回,请处理"; app.SendUserId = model.CreateUserId; app.SendUserName = model.CreateUserName; app.SendTime = model.CreateTime; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.Change.ToString(); app.Action = SystemRight.UnCheck.ToString(); app.BusinessTypeName = BusinessType.Change.GetText(); app.BusinessState = (int)(ApprovalState.ApprFailure); app.BusinessId = model.Id; app.ApproverId = model.CreateUserId; app.ApproverName = model.CreateUserName; app.ProjectId = model.ProjectId; app.ProjectName = model.ProjectName; list.Add(app); AddApproverBatch(list); WriteLog(BusinessType.Change.GetText(), SystemRight.UnCheck.GetText(), "驳回变更生成待办: " + model.Id); #endregion #region 发送短信 //WriteSMS(model.CreateUserId, 0, MessageStep.ChangeReject, null); #endregion title = model.CreateUserName + "提交的变更申请已被驳回,请处理"; } #region 消息 var waitSend = GetWaitSendMessageList(model.ProjectId.Value); foreach (var send in waitSend) { Epm_Massage modelMsg = new Epm_Massage(); modelMsg.ReadTime = null; modelMsg.RecId = send.Key; modelMsg.RecName = send.Value; modelMsg.RecTime = DateTime.Now; modelMsg.SendId = CurrentUserID.ToLongReq(); modelMsg.SendName = CurrentUserName; modelMsg.SendTime = DateTime.Now; modelMsg.Title = title; modelMsg.Content = title; modelMsg.Type = 2; modelMsg.IsRead = false; modelMsg.BussinessId = model.Id; modelMsg.BussinesType = BusinessType.Change.ToString(); modelMsg.ProjectId = model.ProjectId.Value; modelMsg.ProjectName = model.ProjectName; modelMsg = base.SetCurrentUser(modelMsg); modelMsg = base.SetCreateUser(modelMsg); DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg); } #endregion SystemRight right = (model.State == (int)ApprovalState.ApprSuccess) ? SystemRight.Check : SystemRight.UnCheck; WriteLog(BusinessType.Change.GetText(), right.GetText(), "生成消息: " + model.Id); } else { throw new Exception("id有误"); } } catch (Exception ex) { result.Data = -1; result.Flag = EResultFlag.Failure; result.Exception = new ExceptionEx(ex, "UpdateState"); } return(result); }