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
}
}