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