using BLL; using BLL.Common; using FineUIPro.Web.common; using Model; using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.Web.UI.WebControls; using System.Data; namespace FineUIPro.Web.SendEmail { public partial class SendEmail : PageBase { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { GetButtonPower(); //加载菜单树 this.InitMenuTree(); string strSql = @"SELECT t.Requisitioner FROM (SELECT b.UserId,a.Requisitioner FROM FC_SESReport AS a LEFT JOIN Sys_User AS b ON LOWER(a.Requisitioner)=LOWER(b.Account) WHERE YEAR(CASE WHEN a.Claim_sheets_receive IS NULL THEN a.TECO_Date ELSE a.Claim_sheets_receive END)=(CASE MONTH(GETDATE()) WHEN 1 THEN YEAR(GETDATE())-1 ELSE YEAR(GETDATE()) END) AND MONTH(CASE WHEN a.Claim_sheets_receive IS NULL THEN a.TECO_Date ELSE a.Claim_sheets_receive END)=(CASE MONTH(GETDATE()) WHEN 1 THEN 12 ELSE MONTH(GETDATE())-1 END) AND ISNULL(a.Requisitioner,'')!='' AND ISNULL(a.Deleted,'')='' AND ISNULL(a.Blocked,'')='' AND (a.Claim_sheets_receive IS NOT NULL OR a.TECO_Date IS NOT NULL) GROUP BY a.Requisitioner,a.FO,YEAR(CASE WHEN a.Claim_sheets_receive IS NULL THEN a.TECO_Date ELSE a.Claim_sheets_receive END),MONTH(CASE WHEN a.Claim_sheets_receive IS NULL THEN a.TECO_Date ELSE a.Claim_sheets_receive END),b.Email,b.UserId )t WHERE t.UserId IS NULL GROUP BY t.Requisitioner"; DataTable dt = BLL.SQLHelper.GetDataTableRunText(strSql, null); string user = string.Empty; if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { user = user + dt.Rows[i]["Requisitioner"].ToString() + ","; } lbUser.Text = user.Substring(0, user.Length - 1); } } } #region 初始化系统菜单树 /// /// 加载菜单树:动态加载 /// private void InitMenuTree() { this.tvMenu.Nodes.Clear(); TreeNode rootNode = new TreeNode();//定义根节点 rootNode.Text = "ALL People"; rootNode.NodeID = "0"; rootNode.Expanded = true; rootNode.EnableCheckEvent = true; rootNode.EnableCheckBox = true; this.tvMenu.Nodes.Add(rootNode); this.GetNodes(rootNode.Nodes, rootNode.NodeID); } #endregion #region 遍历节点方法(系统功能) /// /// 遍历节点方法 /// /// 节点集合 /// 父节点 private void GetNodes(TreeNodeCollection nodes, string parentId) { var emailUser = UserEmail(); var userList = emailUser.GroupBy(p => new { p.UserId, p.UserName, p.Email, p.IsSafetyEvaluate }).Select(p => new { p.Key.UserId, p.Key.UserName, p.Key.Email ,p.Key.IsSafetyEvaluate }).ToList(); if (userList.Count > 0) { userList = userList.OrderBy(x => x.UserName).ToList(); foreach (var item in userList) { var u = from x in Funs.DB.View_Sys_Users where x.UserId == item.UserId select x; string safeTyEva = string.Empty; if (item.IsSafetyEvaluate == 1) { safeTyEva = "-特殊作业安全评估"; } TreeNode newNode = new TreeNode(); string nodeText = (item.UserName + "(" + item.Email + ")" + safeTyEva).ToString(); if (!string.IsNullOrEmpty(u.First().DepartCode)) { nodeText = u.First().DepartCode + "-" + nodeText; } if (u.First().IsPost == false) { nodeText = nodeText + "-OFF"; } newNode.Text = nodeText; newNode.NodeID = item.UserId; newNode.NavigateUrl = item.Email; newNode.EnableCheckEvent = true; newNode.EnableCheckBox = true; if (!string.IsNullOrEmpty(item.Email)) { newNode.Selectable = true; } else { newNode.Selectable = false; newNode.Checked = false; } nodes.Add(newNode); } lbUserNum.Text = userList.Count().ToString(); } #region 注释原代码 //List sysUserMenu = null; //sysUserMenu = (from x in BLL.Funs.DB.Sys_User where x.Account != "gly" orderby x.UserName select x).ToList(); //foreach (var q in sysUserMenu) //{ // TreeNode newNode = new TreeNode(); // newNode.Text = (q.UserName + "(" + q.Email + ")").ToString(); // newNode.NodeID = q.UserId; // newNode.NavigateUrl = q.Email; // newNode.EnableCheckEvent = true; // newNode.EnableCheckBox = true; // newNode.Selectable = true; // nodes.Add(newNode); //} #endregion } #endregion #region 加载人员信息 /// /// 加载人员信息 /// /// public List UserEmail() { var emailSendList = Funs.DB.View_EmailUser_Send.Where(p => p.EmailType != 2 && p.IsEvaluateType != 1).ToList(); var emailSendLeaderList = Funs.DB.View_EmailUserLeader_Send.Where(p => p.EmailType != 2 && p.IsEvaluateType != 1).ToList(); List eUserList = new List(); foreach (var item in emailSendList) { EmailUser eUserModel = new EmailUser(); eUserModel.ConGuid = item.ConGuid.ToString(); eUserModel.UserId = item.UserId; eUserModel.UserName = item.UserName; eUserModel.FO_NO = item.FO_NO; eUserModel.Email = item.Email; eUserModel.UserType = item.UserType; eUserModel.dateYear = item.DateYear; eUserModel.dateMonth = item.DateMonth; eUserModel.emailType = item.EmailType; eUserModel.emailName = item.EmailName; eUserModel.IsEvaluateType = item.IsEvaluateType; eUserModel.IsEvaluateName = item.IsEvaluateName; eUserModel.IsSafetyEvaluate = item.IsSafetyEvaluate; eUserList.Add(eUserModel); } foreach (var item in emailSendLeaderList) { EmailUser eUserModel = new EmailUser(); eUserModel.ConGuid = item.ConGuid.ToString(); eUserModel.UserId = item.UserId; eUserModel.UserName = item.UserName; eUserModel.FO_NO = item.FO_NO; eUserModel.Email = item.Email; eUserModel.UserType = item.UserType; eUserModel.dateYear = item.DateYear; eUserModel.dateMonth = item.DateMonth; eUserModel.emailType = item.EmailType; eUserModel.emailName = item.EmailName; eUserModel.IsEvaluateType = item.IsEvaluateType; eUserModel.IsEvaluateName = item.IsEvaluateName; eUserModel.IsSafetyEvaluate = item.IsSafetyEvaluate; eUserList.Add(eUserModel); } return eUserList; } #endregion #region 全选、全不选 /// /// 全选、全不选 /// /// /// protected void tvMenu_NodeCheck(object sender, FineUIPro.TreeCheckEventArgs e) { if (e.Checked) { this.tvMenu.CheckAllNodes(e.Node.Nodes); SetCheckParentNode(e.Node); } else { this.tvMenu.UncheckAllNodes(e.Node.Nodes); } } /// /// 选中父节点 /// /// private void SetCheckParentNode(TreeNode node) { if (node.ParentNode != null && node.ParentNode.NodeID != "0") { node.ParentNode.Checked = true; if (node.ParentNode.ParentNode.NodeID != "0") { SetCheckParentNode(node.ParentNode); } } } #endregion /// /// 发送邮件 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { EmailPop pop = MailHelper.getEmailPop(BLL.Const.EmailPopId); if (pop == null) { ShowNotify("Please configure mailbox sender!", MessageBoxIcon.Warning); return; } string mailFrom = pop.EmailYx; string[] mailTo = null; string[] sMailTo = null; string mailSubject = string.Empty; string mailBody = string.Empty; string mailAttch = string.Empty; string mailCode = string.Empty; string mailPriority = string.Empty; string[] mailCC = null; string resultMessage = ""; List namelist = new List(); List safetyNamelist = new List(); foreach (TreeNode tn in this.tvMenu.GetCheckedNodes()) { if (tn.NodeID != "0" && !string.IsNullOrEmpty(tn.NavigateUrl)) { if (tn.Text.Contains("特殊作业安全评估")) { safetyNamelist.Add(tn.NavigateUrl); } else { namelist.Add(tn.NavigateUrl); } } } mailTo = namelist.ToList().Distinct().ToArray(); sMailTo = safetyNamelist.ToList().Distinct().ToArray(); try { if (mailTo.Count() > 0) { var EmailTemplate = Funs.DB.SendEmailTemplate.Where(x => x.EmailName.Contains("Evaluation") && !x.EmailName.Contains("Safety")); if (EmailTemplate.Count() > 0) { var emailUserList = UserEmail(); string templetpath = EmailTemplate.Select(p => p.EmailContext).FirstOrDefault(); NameValueCollection myCol = new NameValueCollection(); mailBody = TemplateHelper.BulidByFile2(templetpath, myCol); bool f = MailHelper.SendNetMail(pop, mailFrom, mailTo, "[提醒]承包商绩效评估", mailBody, mailAttch, mailCode, mailPriority, mailCC, emailUserList, out resultMessage); if (f == true) { InitMenuTree(); ShowNotify("Send Successfully!", MessageBoxIcon.Success); } else { ShowNotify(resultMessage, MessageBoxIcon.Error); } } else { ShowNotify("Template free", MessageBoxIcon.Warning); } } if (sMailTo.Count() > 0) { var EmailTemplate = Funs.DB.SendEmailTemplate.Where(x => x.EmailName.Contains("Evaluation") && x.EmailName.Contains("Safety")); if (EmailTemplate.Count() > 0) { var emailUserList = UserEmail(); string templetpath = EmailTemplate.Select(p => p.EmailContext).FirstOrDefault(); NameValueCollection myCol = new NameValueCollection(); mailBody = TemplateHelper.BulidByFile2(templetpath, myCol); bool f = MailHelper.SendNetMail(pop, mailFrom, sMailTo, "[提醒]特殊作业安全监护服务-承包商绩效评估", mailBody, mailAttch, mailCode, mailPriority, mailCC, emailUserList, out resultMessage); if (f == true) { InitMenuTree(); ShowNotify("Send Successfully!", MessageBoxIcon.Success); } else { ShowNotify(resultMessage, MessageBoxIcon.Error); } } else { ShowNotify("Template free", MessageBoxIcon.Warning); } } } catch (Exception ex) { ShowNotify(ex.Message, MessageBoxIcon.Error); } } #region 权限设置 /// /// 菜单按钮权限 /// private void GetButtonPower() { var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.UserId, BLL.Const.SendEmailMenuId); if (buttonList.Count() > 0) { if (buttonList.Contains(BLL.Const.BtnSend)) { this.btnSave.Hidden = false; } } } #endregion } }