Example #1
0
        /// <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");
            }
        }
Example #2
0
        /// <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));
        }
Example #3
0
        /// <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);
        }