Beispiel #1
0
        ///<summary>
        ///修改:
        ///</summary>
        /// <param name="model">要修改的model</param>
        /// <returns>受影响的行数</returns>
        public Result<int> UpdateVisa(VisaView model, List<Base_Files> fileList)
        {
            Result<int> result = new Result<int>();
            try
            {
                Epm_Visa visa = new Epm_Visa();
                List<Epm_VisaCompany> companys = new List<Epm_VisaCompany>();
                ViewToEmp(model, out visa, out companys);

                var rows = DataOperateBusiness<Epm_Visa>.Get().Update(visa);

                var list = DataOperateBusiness<Epm_VisaCompany>.Get().GetList(t => t.VisaId == visa.Id).ToList();
                if (list != null)
                    DataOperateBusiness<Epm_VisaCompany>.Get().DeleteRange(list);
                DataOperateBusiness<Epm_VisaCompany>.Get().AddRange(companys);


                if (fileList != null)
                {
                    //删除之前的附件
                    DeleteFilesByTable(visa.GetType().Name, new List<long>() { model.Id });
                    //新增附件
                    AddFilesByTable(visa, fileList);
                }

                //处理待办
                var tempApp = DataOperateBusiness<Epm_Approver>.Get().GetList(t => t.BusinessId == visa.Id && t.IsApprover == false).FirstOrDefault();
                if (tempApp != null)
                {
                    ComplateApprover(tempApp.Id);
                }

                if (model.State == (int)ApprovalState.WaitAppr)
                {
                    if (companys.Any() && companys.Count > 0)
                    {
                        for (int i = 0; i < companys.Count; i++)
                        {
                            var comID = companys[i].CompanyId;
                            var temp = DataOperateBusiness<Epm_ProjectStateTrack>.Get().GetList(t => t.CompanyId == comID).FirstOrDefault();
                            if (temp != null)
                            {
                                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 = CurrentUserName + "提报了隐蔽工程作业单,待审核";
                    app.Content = CurrentUserName + "提报了隐蔽工程作业单,待审核";
                    app.SendUserId = CurrentUserID.ToLongReq();
                    app.SendUserName = CurrentUserName;
                    app.SendTime = DateTime.Now;
                    app.LinkURL = string.Empty;
                    app.BusinessTypeNo = BusinessType.Visa.ToString();
                    app.Action = SystemRight.Add.ToString();
                    app.BusinessTypeName = BusinessType.Visa.GetText();
                    app.BusinessState = (int)(ApprovalState.WaitAppr);
                    app.BusinessId = visa.Id;
                    app.ApproverId = project.ContactUserId;
                    app.ApproverName = project.ContactUserName;
                    app.ProjectId = model.ProjectId;
                    app.ProjectName = project.Name;
                    listApp.Add(app);
                    AddApproverBatch(listApp);
                    WriteLog(BusinessType.Visa.GetText(), SystemRight.Add.GetText(), "提交签证生成待办: " + visa.Id);
                    #endregion

                    #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 = CurrentUserName + "提报了隐蔽工程作业单,待审核";
                        modelMsg.Content = CurrentUserName + "提报了隐蔽工程作业单,待审核";
                        modelMsg.Type = 2;
                        modelMsg.IsRead = false;
                        modelMsg.BussinessId = model.Id;
                        modelMsg.BussinesType = BusinessType.Visa.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

                    #region 发送短信
                    //Dictionary<string, string> parameterssm = new Dictionary<string, string>();
                    //parameterssm.Add("UserName", CurrentUserName);
                    //WriteSMS(project.ContactUserId.Value, project.CompanyId, MessageStep.VisaAdd, parameterssm);
                    #endregion
                }
                result.Data = rows;
                result.Flag = EResultFlag.Success;
                WriteLog(BusinessType.Visa.GetText(), SystemRight.Modify.GetText(), "修改: " + model.Id);
            }
            catch (Exception ex)
            {
                result.Data = -1;
                result.Flag = EResultFlag.Failure;
                result.Exception = new ExceptionEx(ex, "UpdateVisa");
            }
            return result;
        }