/// <summary> /// 年度计划非第一次审批通知 /// </summary> /// <param name="classIds">主键Ids</param> /// <param name="comefrom">0 年度计划 1 培训班 2 委外培训 </param> public void SendApproval2(string classIds, int comefrom) { var firstId = classIds != "" ? Convert.ToInt32(classIds.Split(',')[0]) : 0; //此时为通一个审批批次,查询第一个的下个节点即可 var userId = _planManager.GetNextApprovalUserID(firstId, comefrom); var user = SystemUsers.FirstOrDefault(p => p.UserId == userId); //查询审批流 #region 审批流程 var maxbatch = _planManager.GetMaxBatch(firstId); var approvelist = _planManager.GeTrPlanApproveList(firstId, 0, maxbatch).OrderBy(p => p.Step); var approveStr = ""; foreach (var approve in approvelist) { approveStr += approve.DeptName + "," + approve.PostName + "," + approve.Realname + "(" + approve.ApproveStatuStr + ")——"; } // ViewBag.approvelist = newApprovelist; #endregion if (comefrom == 0)//年度计划 { var emailContent = GetFormworkContent(2); var emailContent2 = GetFormworkContent(6); var planList = _planManager.GetClassForSend(" tpc.PlanClassID in (" + classIds + ")"); var url = Url.RetechAction("PlanApproval", "Approval", new { area = "Train" }); #region 年度计划 int totalCount = planList.Count(p => p.UpdateCount == 0); var htmlbody = new StringBuilder(); var DeptName = ""; var Year = 0; foreach (var plan in planList.Where(p => p.UpdateCount == 0)) { DeptName = plan.DeptName; Year = plan.Year; htmlbody.Append("<tr>"); htmlbody.Append("<td>" + plan.TrainCode + "</td>"); htmlbody.Append("<td>" + plan.TrainName + "</td>"); htmlbody.Append("<td>" + plan.Realname + "</td>"); htmlbody.Append("<td>" + plan.Number + "</td>"); htmlbody.Append("<td>" + plan.StartTimeStr + "至" + plan.EndTimeStr + "</td>"); htmlbody.Append("<td>" + plan.TrainCost + "</td>"); htmlbody.Append("</tr>"); } var sendEmail = string.Format(emailContent, user.Realname, DeptName, Year, totalCount, htmlbody, approveStr.TrimEnd(new char[] { '—', '—' }), url); SendMessage("年度计划审批通知", sendEmail, new int[] { user.UserId }, 0); #endregion #region 年度计划调整 foreach (var item in planList.Where(p => p.UpdateCount > 0)) { var sendEmail2 = string.Format(emailContent2, user.Realname, item.Year, item.TrainName, item.TrainCode, item.TrainName, item.UpdateTypeStr, item.UpdateReason, approveStr.TrimEnd(new char[] { '—', '—' }), url); SendMessage("年度计划调整审批通知", sendEmail2, new int[] { user.UserId }, 0); } #endregion } else if (comefrom == 1)//培训班 { var emailContent = GetFormworkContent(9); var emailContent2 = GetFormworkContent(13); var classList = _otherManager.GetClassForSend(" tt.ClassId in (" + classIds.TrimEnd(',').TrimStart(',') + ")"); var url = Url.RetechAction("ClassApproval", "Approval", new { area = "Train" }); foreach (var item in classList) { if (item.UpdateType == 0)//正常的培训班 { var sendEmail = string.Format(emailContent, user.Realname, item.TrainName, item.Code, item.TrainName, item.Realname, item.StartTimeStr, item.EndTimeStr, item.Number, item.sumCost, url); SendMessage("培训班开班策划审批", sendEmail, new int[] { user.UserId }, 0); } else//调整过后的 { var sendEmail = string.Format(emailContent2, user.Realname, item.TrainName, item.Code, item.TrainName, item.Realname, item.StartTimeStr, item.EndTimeStr, item.Number, item.sumCost, item.UpdateReason, approveStr.TrimEnd(new char[] { '—', '—' }), url); SendMessage("培训班调整审批通知", sendEmail, new int[] { user.UserId }, 0); } } } else//委外培训 { var totalCount = 0; var emailContent = GetFormworkContent(22); var outplanList = _planManager.GetOuterPlanApproveLogList(out totalCount, " opu.ID in (" + classIds + ")"); var url = Url.RetechAction("OuterPlanApprove", "Plan", new { area = "Train" }); foreach (var outplan in outplanList) { var sendEmail = string.Format(emailContent, user.Realname, outplan.DeptName, outplan.PostName, outplan.RealName, outplan.PlanName, outplan.LearnCompany, outplan.LearnAdress, outplan.StartTimeStr, outplan.EndTimeStr, outplan.LearnType, outplan.LearnCost, approveStr.TrimEnd(new char[] { '—', '—' }), url); SendMessage("委外培训审批通知", sendEmail, new int[] { user.UserId }, 0); } } }