public ActionResult Reply(Epm_QuestionTrack model) { string errorMsg = ""; if (model.QuestionId <= 0) { errorMsg = "请选择要回复的问题!"; } if (string.IsNullOrWhiteSpace(model.Content)) { errorMsg = "请填写回复内容!"; } if (!string.IsNullOrWhiteSpace(errorMsg)) { return Json(new ResultView<bool>() { Flag = false, Data = false, Message = errorMsg }); } using (ClientSiteClientProxy proxy = new ClientSiteClientProxy(ProxyEx(Request))) { var result = proxy.ReplyQuestion(model); return Json(result.ToResultView()); } }
/// <summary> /// 回复问题 /// </summary> /// <param name="model"></param> /// <returns></returns> public Result <bool> ReplyQuestion(Epm_QuestionTrack model) { Result <bool> result = new Result <bool>(); try { Epm_Question question = DataOperateBusiness <Epm_Question> .Get().GetModel(model.QuestionId ?? 0); if (question == null) { throw new Exception("问题不存在或已被删除!"); } if (model.State == 2) { throw new Exception("该问题已关闭,无法在进行回复操作!"); } model = SetCurrentUser(model); DataOperateBusiness <Epm_QuestionTrack> .Get().Add(model); result.Data = true; result.Flag = EResultFlag.Success; WriteLog(BusinessType.Question.GetText(), SystemRight.Add.GetText(), "回复问题: " + model.Id); #region 处理待办 var tempApp = DataOperateBusiness <Epm_Approver> .Get().GetList(t => t.BusinessId == question.Id && t.IsApprover == false).FirstOrDefault(); if (tempApp != null) { ComplateApprover(tempApp.Id); #region 生成待办 List <Epm_Approver> list = new List <Epm_Approver>(); Epm_Approver app = new Epm_Approver(); app.ApproverId = CurrentUserID.ToLongReq(); app.ApproverName = CurrentUserName; app.Title = question.CreateUserName + "发起的问题沟通,已有回复"; app.Content = question.CreateUserName + "发起的问题沟通,已有回复"; app.SendUserId = CurrentUserID.ToLongReq(); app.SendUserName = CurrentUserName; app.SendTime = DateTime.Now; app.LinkURL = string.Empty; app.BusinessTypeNo = BusinessType.Question.ToString(); app.Action = SystemRight.Reply.ToString(); app.BusinessTypeName = BusinessType.Question.GetText(); app.BusinessState = (int)(EnumState.Normal); app.BusinessId = question.Id; app.ProjectId = question.ProjectId; app.ProjectName = question.ProjectName; list.Add(app); AddApproverBatch(list); WriteLog(BusinessType.Question.GetText(), SystemRight.Add.GetText(), "提交问题生成待办: " + question.Id); #endregion } #endregion #region 消息 var waitSend = GetWaitSendMessageList(question.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 = question.CreateUserName + "发起了问题沟通," + CurrentUserName + "有回复"; modelMsg.Content = question.CreateUserName + "发起了问题沟通," + CurrentUserName + "有回复"; modelMsg.Type = 2; modelMsg.IsRead = false; modelMsg.BussinessId = model.Id; modelMsg.BussinesType = BusinessType.Question.ToString(); modelMsg.ProjectId = question.ProjectId.Value; modelMsg.ProjectName = question.ProjectName; modelMsg = base.SetCurrentUser(modelMsg); modelMsg = base.SetCreateUser(modelMsg); DataOperateBusiness <Epm_Massage> .Get().Add(modelMsg); } #endregion } catch (Exception ex) { result.Flag = EResultFlag.Failure; result.Data = false; result.Exception = new ExceptionEx(ex, "QuestionClose"); } return(result); }