1、补充角色:项目主管;

2、项目补充项目主管人;
3、关键事项逾期提醒项目主管和项目经理;
This commit is contained in:
2025-09-16 19:27:36 +08:00
parent 8409c7bc71
commit ffd65b87a1
11 changed files with 212 additions and 28 deletions
+95 -1
View File
@@ -125,7 +125,7 @@ namespace BLL
</body>
</html>";
//< p > 登录密码:{ user.RawPassword}</ p >
//< p > 登录密码:{ user.RawPassword}</ p >
mail.Body = bodyStr;
try
@@ -210,6 +210,7 @@ namespace BLL
//获取有邮箱的用户
var userIds = BLL.UserService.GetUserHaveEmailList();
if (userIds.Any() && lstOverdue.Any())
{
//int allnum = 0;
@@ -221,6 +222,9 @@ namespace BLL
if (lstProjectOverdue.Any())
{
string projectName = pro.ProjectName;
#region
foreach (var user in userIds)
{
//if (allnum > 100) { break; }
@@ -316,6 +320,96 @@ namespace BLL
//Thread.Sleep(1000); //暂停1秒
}
}
#endregion
#region
var projectSupervisors = ProjectUserService.GetProjectUserByRoleId(Const.ProjectSupervisor);
var projectManagers = ProjectUserService.GetProjectUserByRoleId(Const.ProjectManager);
List<string> remindUserIds = new List<string>();
List<string> projectSupervisorIds = projectSupervisors.Select(x => x.UserId).ToList();
List<string> projectManagerIds = projectManagers.Select(x => x.UserId).ToList();
if (projectSupervisorIds.Any()) { remindUserIds.AddRange(projectSupervisorIds); }
if (projectManagerIds.Any()) { remindUserIds.AddRange(projectManagerIds); }
var remindUsers = userIds.Where(x => remindUserIds.Contains(x.UserId));
foreach (var user in remindUsers)
{
MailMessage mail = new MailMessage();
//邮件主题
mail.Subject = $"关键事项超期预警提醒——{projectName}";
mail.To.Add(user.Email);
//mail.To.Add("test@test.com");
mail.IsBodyHtml = true;//确保邮件正文被当作HTML解析
StringBuilder tbodyStr = new StringBuilder();
int index = 0;
if (projectManagerIds.Contains(user.UserId))
{
foreach (var item in lstProjectOverdue)
{
index++;
tbodyStr.Append($"<tr><td>{index}</td><td>事项逾期</td><td>{item.UnitName}</td><td>{item.GJSXID}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : "")}</td></tr>");
}
}
if (projectSupervisorIds.Contains(user.UserId) && !projectManagerIds.Contains(user.UserId))
{
var lstProjectOverdue2 = lstOverdue.Where(x => x.ProjectId == pro.ProjectId && x.DateDiffDays > 13).ToList();
index = 0;
foreach (var item in lstProjectOverdue2)
{
index++;
tbodyStr.Append($"<tr><td>{index}</td><td>事项逾期</td><td>{item.UnitName}</td><td>{item.GJSXID}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : "")}</td></tr>");
}
}
//邮件正文
string bodyStr = @"<html>
<head>
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid black;
padding: 8px;
text-align: left;
}
</style>
</head>
<body>
<h2>关键事项超期预警提醒</h2>
<a href='https://zhgd.cwcec.com/'>请点击此处,查看详细信息,并及时处置关闭</a>
<table>
<thead>
<tr>
<th>序号</th>
<th>类型</th>
<th>责任单位</th>
<th>事项编号</th>
<th>事项描述</th>
<th>事项类别</th>
<th>发起人</th>
<th>责任人</th>
<th>约定完成时间</th>
<th>超期时间(天)</th>
</tr>
</thead>
<tbody>" + tbodyStr.ToString() + "</tbody></table></body></html>";
mail.Body = bodyStr;
if (index > 1)
{
//allnum++;
bool send = PushEmail(mail);
//Thread.Sleep(1000); //暂停1秒
}
}
#endregion
}
}
}