/// <summary> /// 保存审批 /// </summary> /// <param name="classIds"></param> /// <param name="status">2通过 1拒绝</param> /// <param name="reason"></param> /// <returns></returns> public JsonResult SaveApproval(string classIds, int status, string reason = "") { if (string.IsNullOrWhiteSpace(classIds)) { return(Json(new { result = 0, content = "审批错误", error = "id为空" }, JsonRequestBehavior.AllowGet)); } try { using (TransactionScope tran = new TransactionScope()) { //UpdateApprovalByQuery方法目前处理不了多个批处理操作,只能单一处理 var ids = classIds.Split(','); foreach (var item in ids) { _planManager.UpdateApprovalByQuery(item, status, reason, CurrentUser.UserId); } if (status == 2) { var passIdList = _planManager.GetCanPassIdList(classIds); if (passIdList.Count > 0) { var query = " ApproveStatus=2,ApproveTime=getdate()"; _planManager.UpdateByQuery(string.Join(",", passIdList), query); try { SendPass(classIds, 0); } catch { } } else//还没结束,就发邮件吧 { //发送邮件不再监控事务范围内,即使发生异常也不会影响下面的事务操作 try { SendApproval2(classIds, 0); } catch { } } } else { var query = " ApproveStatus=3,ApproveTime=getdate()"; _planManager.UpdateByQuery(classIds, query); try { SendNoPass(classIds, 0, CurrentUser.Realname, reason); } catch { } } tran.Complete(); } return(Json(new { result = 1 }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new { result = 0, content = "审批错误", error = ex.Message }, JsonRequestBehavior.AllowGet)); } }