This commit is contained in:
parent
32549f64a1
commit
1b0eb339b1
|
@ -24,12 +24,12 @@ namespace BLL
|
||||||
//public static Model.SGGLDB db = Funs.DB;
|
//public static Model.SGGLDB db = Funs.DB;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 关键事项通知提醒责任人、抄送人
|
/// 关键事项新增通知提醒责任人、抄送人
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="userIds"></param>
|
|
||||||
/// <param name="gjsxId"></param>
|
/// <param name="gjsxId"></param>
|
||||||
public static void GJSXNoticeSendEmail(List<string> userIds, string gjsxId)
|
public static void GJSXNoticeSendEmail(string gjsxId)
|
||||||
{
|
{
|
||||||
|
List<string> userIds = new List<string>();
|
||||||
string strSql = $@"select
|
string strSql = $@"select
|
||||||
DATEDIFF(DAY, CompleteDate, isnull(CloseDate,getdate())) AS DateDiffDays
|
DATEDIFF(DAY, CompleteDate, isnull(CloseDate,getdate())) AS DateDiffDays
|
||||||
,a.GJSXID,a.ProjectId,a.Detail,a.createDate,Base_Project.ProjectName,Base_Unit.UnitName,a.CloseDate,a.IsManypeople,a.CompleteDate,a.AttachUrl
|
,a.GJSXID,a.ProjectId,a.Detail,a.createDate,Base_Project.ProjectName,Base_Unit.UnitName,a.CloseDate,a.IsManypeople,a.CompleteDate,a.AttachUrl
|
||||||
|
@ -89,6 +89,11 @@ namespace BLL
|
||||||
var gItem = lstOverdue.FirstOrDefault();
|
var gItem = lstOverdue.FirstOrDefault();
|
||||||
if (gItem != null)
|
if (gItem != null)
|
||||||
{
|
{
|
||||||
|
userIds.Add(gItem.User_AcceptanceUserId);
|
||||||
|
if (!string.IsNullOrWhiteSpace(gItem.User_CsUserIds))
|
||||||
|
{
|
||||||
|
userIds.AddRange(gItem.User_CsUserIds.Split(','));
|
||||||
|
}
|
||||||
foreach (var userId in userIds)
|
foreach (var userId in userIds)
|
||||||
{
|
{
|
||||||
var user = UserService.GetUserByUserId(userId);
|
var user = UserService.GetUserByUserId(userId);
|
||||||
|
@ -152,6 +157,255 @@ namespace BLL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 关键事项申请关闭通知提醒提出人和跟踪人
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="gjsxId"></param>
|
||||||
|
/// <param name="detail"></param>
|
||||||
|
public static void GJSXApplyCloseNoticeSendEmail(string gjsxId, string detail)
|
||||||
|
{
|
||||||
|
List<string> userIds = new List<string>();
|
||||||
|
string strSql = $@"select
|
||||||
|
DATEDIFF(DAY, CompleteDate, isnull(CloseDate,getdate())) AS DateDiffDays
|
||||||
|
,a.GJSXID,a.ProjectId,a.Detail,a.createDate,Base_Project.ProjectName,Base_Unit.UnitName,a.CloseDate,a.IsManypeople,a.CompleteDate,a.AttachUrl
|
||||||
|
,case a.state when 2 then '正在进行' when 3 then '待办' when 0 then '已关闭' when 1 then '开放' end as state
|
||||||
|
,CNProfessionalName = STUFF((SELECT ',' + Base_CNProfessional.ProfessionalName FROM dbo.Base_CNProfessional where PATINDEX('%,' + RTRIM(Base_CNProfessional.CNProfessionalId) + ',%', ',' + a.CNProfessional_ID + ',') > 0 FOR XML PATH('')), 1, 1,'')
|
||||||
|
,QuestionTypeName = STUFF((SELECT ',' + Base_QuestionType.QuestionTypeName FROM dbo.Base_QuestionType where PATINDEX('%,' + RTRIM(Base_QuestionType.QuestionTypeID) + ',%', ',' + a.QuestionTypeID + ',') > 0 FOR XML PATH('')), 1, 1,'')
|
||||||
|
,GJSXTypeName = STUFF((SELECT ',' + Base_GJSXType.GJSXTypeName FROM dbo.Base_GJSXType where PATINDEX('%,' + RTRIM(Base_GJSXType.GJSXTypeID) + ',%', ',' + a.GJSXTypeID + ',') > 0 FOR XML PATH('')), 1, 1,'')
|
||||||
|
,a.UserID,b.UserName
|
||||||
|
--,b.Email as UserEmail
|
||||||
|
,a.User_ReceiveID as User_ReceiveUserId
|
||||||
|
,User_ReceiveUserName = STUFF((SELECT ',' + p2.UserName FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%', ',' + a.User_ReceiveID + ',') > 0 FOR XML PATH('')), 1, 1,'')
|
||||||
|
--,User_ReceiveUserEmail = STUFF((SELECT ',' + p2.Email FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%', ',' + a.User_ReceiveID + ',') > 0 FOR XML PATH('')), 1, 1,'')
|
||||||
|
,a.user_Acceptance as User_AcceptanceUserId
|
||||||
|
,User_AcceptanceUserName = STUFF((SELECT ',' + p2.UserName FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%', ',' + a.user_Acceptance + ',') > 0 FOR XML PATH('')), 1, 1,'')
|
||||||
|
--,User_AcceptanceUserEmail = STUFF((SELECT ',' + p2.Email FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%', ',' + a.user_Acceptance + ',') > 0 FOR XML PATH('')), 1, 1,'')
|
||||||
|
,a.CsUsers as User_CsUserIds
|
||||||
|
,User_CsUsers = STUFF((SELECT ',' + p2.UserName FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%', ',' + a.CsUsers + ',') > 0 FOR XML PATH('')), 1, 1,'')
|
||||||
|
--,User_CsUsersUserEmail = STUFF((SELECT ',' + p2.Email FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%', ',' + a.CsUsers + ',') > 0 FOR XML PATH('')), 1, 1,'')
|
||||||
|
from GJSX as a
|
||||||
|
left join Sys_User as b on a.UserId = b.UserId
|
||||||
|
left join[dbo].[Base_Project] on a.ProjectId = Base_Project.ProjectId
|
||||||
|
left join[dbo].[Base_Unit] on a.UnitId = Base_Unit.UnitId
|
||||||
|
where 1=1 and a.GJSXID = '{gjsxId}' ";
|
||||||
|
|
||||||
|
List<SqlParameter> listStr = new List<SqlParameter>();
|
||||||
|
SqlParameter[] parameter = listStr.ToArray();
|
||||||
|
|
||||||
|
DataTable table = SQLHelper.GetDataTableRunText(strSql, parameter);
|
||||||
|
// 使用LINQ将DataTable转换为List<GJSXItem>
|
||||||
|
var lstOverdue = table.AsEnumerable().Select(row => new GJSXItem
|
||||||
|
{
|
||||||
|
DateDiffDays = Convert.ToInt32(row["DateDiffDays"]),
|
||||||
|
GJSXID = row["GJSXID"].ToString(),
|
||||||
|
ProjectId = row["ProjectId"].ToString(),
|
||||||
|
ProjectName = row["ProjectName"].ToString(),
|
||||||
|
UnitName = row["UnitName"].ToString(),
|
||||||
|
Detail = row["Detail"].ToString(),
|
||||||
|
CNProfessionalName = row["CNProfessionalName"].ToString(),
|
||||||
|
QuestionTypeName = row["QuestionTypeName"].ToString(),
|
||||||
|
GJSXTypeName = row["GJSXTypeName"].ToString(),
|
||||||
|
UserID = row["UserID"].ToString(),
|
||||||
|
UserName = row["UserName"].ToString(),
|
||||||
|
//UserEmail = row["UserEmail"].ToString(),
|
||||||
|
User_ReceiveUserId = row["User_ReceiveUserId"].ToString(),
|
||||||
|
User_ReceiveUserName = row["User_ReceiveUserName"].ToString(),
|
||||||
|
//User_ReceiveUserEmail = row["User_ReceiveUserEmail"].ToString(),
|
||||||
|
User_AcceptanceUserId = row["User_AcceptanceUserId"].ToString(),
|
||||||
|
User_AcceptanceUserName = row["User_AcceptanceUserName"].ToString(),
|
||||||
|
//User_AcceptanceUserEmail = row["User_AcceptanceUserEmail"].ToString(),
|
||||||
|
User_CsUserIds = row["User_CsUserIds"].ToString(),
|
||||||
|
User_CsUsers = row["User_CsUsers"].ToString(),
|
||||||
|
//User_CsUsersUserEmail = row["User_CsUsersUserEmail"].ToString(),
|
||||||
|
CompleteDate = Convert.ToDateTime(row["CompleteDate"].ToString())
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
var gItem = lstOverdue.FirstOrDefault();
|
||||||
|
if (gItem != null)
|
||||||
|
{
|
||||||
|
userIds.Add(gItem.UserID);
|
||||||
|
userIds.Add(gItem.User_ReceiveUserId);
|
||||||
|
foreach (var userId in userIds)
|
||||||
|
{
|
||||||
|
var user = UserService.GetUserByUserId(userId);
|
||||||
|
if (!string.IsNullOrWhiteSpace(user.Email))
|
||||||
|
{
|
||||||
|
MailMessage mail = new MailMessage();
|
||||||
|
//邮件主题
|
||||||
|
mail.Subject = $"有新的事项申请关闭——{gItem.ProjectName}";
|
||||||
|
mail.To.Add(user.Email);
|
||||||
|
//mail.To.Add("test@test.com");
|
||||||
|
mail.IsBodyHtml = true;//确保邮件正文被当作HTML解析
|
||||||
|
//邮件正文
|
||||||
|
string bodyStr = $@"<html>
|
||||||
|
<head>
|
||||||
|
<style>
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h2>事项申请关闭</h2>
|
||||||
|
<p>项目名称:{gItem.ProjectName}</p>
|
||||||
|
<p>事项编号:{gItem.GJSXID}</p>
|
||||||
|
<p>责任单位:{gItem.UnitName}</p>
|
||||||
|
<p>专业:{gItem.CNProfessionalName}</p>
|
||||||
|
<p>事项类别:{gItem.GJSXTypeName}</p>
|
||||||
|
<p>紧急程度:{gItem.QuestionTypeName}</p>
|
||||||
|
<p>事项描述:{gItem.Detail}</p>
|
||||||
|
<p>提出人:{gItem.UserName}</p>
|
||||||
|
<p>责任人:{gItem.User_AcceptanceUserName}</p>
|
||||||
|
<p>跟踪人:{gItem.User_ReceiveUserName}</p>
|
||||||
|
<p>抄送人:{gItem.User_CsUsers}</p>
|
||||||
|
<p>约定完成日期:{gItem.CompleteDate.ToShortDateString()}</p>
|
||||||
|
<p>申请关闭说明:{detail}</p>
|
||||||
|
|
||||||
|
<h2>智慧施工管理信息系统</h2>
|
||||||
|
<a href='https://zhgd.cwcec.com/'>请点击此处,进入智慧施工管理信息系统,查看事项详情</a>
|
||||||
|
<p>登录账号:{user.Account}</p>
|
||||||
|
<p>登录密码:CWCEC.+身份证号后四位(示例:CWCEC.1234)</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>";
|
||||||
|
//< p > 登录密码:{ user.RawPassword}</ p >
|
||||||
|
mail.Body = bodyStr;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
bool send = PushEmail(mail);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ErrLogInfo.WriteLog($"关键事项申请关闭通知提醒责任人;项目名称:{gItem.ProjectName},事项编号:{gItem.GJSXID}", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 关键事项驳回申请关闭通知提醒责任人
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="gjsxId"></param>
|
||||||
|
/// <param name="detail"></param>
|
||||||
|
public static void GJSXRejectApplyCloseNoticeSendEmail(string gjsxId, string detail)
|
||||||
|
{
|
||||||
|
List<string> userIds = new List<string>();
|
||||||
|
string strSql = $@"select
|
||||||
|
DATEDIFF(DAY, CompleteDate, isnull(CloseDate,getdate())) AS DateDiffDays
|
||||||
|
,a.GJSXID,a.ProjectId,a.Detail,a.createDate,Base_Project.ProjectName,Base_Unit.UnitName,a.CloseDate,a.IsManypeople,a.CompleteDate,a.AttachUrl
|
||||||
|
,case a.state when 2 then '正在进行' when 3 then '待办' when 0 then '已关闭' when 1 then '开放' end as state
|
||||||
|
,CNProfessionalName = STUFF((SELECT ',' + Base_CNProfessional.ProfessionalName FROM dbo.Base_CNProfessional where PATINDEX('%,' + RTRIM(Base_CNProfessional.CNProfessionalId) + ',%', ',' + a.CNProfessional_ID + ',') > 0 FOR XML PATH('')), 1, 1,'')
|
||||||
|
,QuestionTypeName = STUFF((SELECT ',' + Base_QuestionType.QuestionTypeName FROM dbo.Base_QuestionType where PATINDEX('%,' + RTRIM(Base_QuestionType.QuestionTypeID) + ',%', ',' + a.QuestionTypeID + ',') > 0 FOR XML PATH('')), 1, 1,'')
|
||||||
|
,GJSXTypeName = STUFF((SELECT ',' + Base_GJSXType.GJSXTypeName FROM dbo.Base_GJSXType where PATINDEX('%,' + RTRIM(Base_GJSXType.GJSXTypeID) + ',%', ',' + a.GJSXTypeID + ',') > 0 FOR XML PATH('')), 1, 1,'')
|
||||||
|
,a.UserID,b.UserName
|
||||||
|
--,b.Email as UserEmail
|
||||||
|
,a.User_ReceiveID as User_ReceiveUserId
|
||||||
|
,User_ReceiveUserName = STUFF((SELECT ',' + p2.UserName FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%', ',' + a.User_ReceiveID + ',') > 0 FOR XML PATH('')), 1, 1,'')
|
||||||
|
--,User_ReceiveUserEmail = STUFF((SELECT ',' + p2.Email FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%', ',' + a.User_ReceiveID + ',') > 0 FOR XML PATH('')), 1, 1,'')
|
||||||
|
,a.user_Acceptance as User_AcceptanceUserId
|
||||||
|
,User_AcceptanceUserName = STUFF((SELECT ',' + p2.UserName FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%', ',' + a.user_Acceptance + ',') > 0 FOR XML PATH('')), 1, 1,'')
|
||||||
|
--,User_AcceptanceUserEmail = STUFF((SELECT ',' + p2.Email FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%', ',' + a.user_Acceptance + ',') > 0 FOR XML PATH('')), 1, 1,'')
|
||||||
|
,a.CsUsers as User_CsUserIds
|
||||||
|
,User_CsUsers = STUFF((SELECT ',' + p2.UserName FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%', ',' + a.CsUsers + ',') > 0 FOR XML PATH('')), 1, 1,'')
|
||||||
|
--,User_CsUsersUserEmail = STUFF((SELECT ',' + p2.Email FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%', ',' + a.CsUsers + ',') > 0 FOR XML PATH('')), 1, 1,'')
|
||||||
|
from GJSX as a
|
||||||
|
left join Sys_User as b on a.UserId = b.UserId
|
||||||
|
left join[dbo].[Base_Project] on a.ProjectId = Base_Project.ProjectId
|
||||||
|
left join[dbo].[Base_Unit] on a.UnitId = Base_Unit.UnitId
|
||||||
|
where 1=1 and a.GJSXID = '{gjsxId}' ";
|
||||||
|
|
||||||
|
List<SqlParameter> listStr = new List<SqlParameter>();
|
||||||
|
SqlParameter[] parameter = listStr.ToArray();
|
||||||
|
|
||||||
|
DataTable table = SQLHelper.GetDataTableRunText(strSql, parameter);
|
||||||
|
// 使用LINQ将DataTable转换为List<GJSXItem>
|
||||||
|
var lstOverdue = table.AsEnumerable().Select(row => new GJSXItem
|
||||||
|
{
|
||||||
|
DateDiffDays = Convert.ToInt32(row["DateDiffDays"]),
|
||||||
|
GJSXID = row["GJSXID"].ToString(),
|
||||||
|
ProjectId = row["ProjectId"].ToString(),
|
||||||
|
ProjectName = row["ProjectName"].ToString(),
|
||||||
|
UnitName = row["UnitName"].ToString(),
|
||||||
|
Detail = row["Detail"].ToString(),
|
||||||
|
CNProfessionalName = row["CNProfessionalName"].ToString(),
|
||||||
|
QuestionTypeName = row["QuestionTypeName"].ToString(),
|
||||||
|
GJSXTypeName = row["GJSXTypeName"].ToString(),
|
||||||
|
UserID = row["UserID"].ToString(),
|
||||||
|
UserName = row["UserName"].ToString(),
|
||||||
|
//UserEmail = row["UserEmail"].ToString(),
|
||||||
|
User_ReceiveUserId = row["User_ReceiveUserId"].ToString(),
|
||||||
|
User_ReceiveUserName = row["User_ReceiveUserName"].ToString(),
|
||||||
|
//User_ReceiveUserEmail = row["User_ReceiveUserEmail"].ToString(),
|
||||||
|
User_AcceptanceUserId = row["User_AcceptanceUserId"].ToString(),
|
||||||
|
User_AcceptanceUserName = row["User_AcceptanceUserName"].ToString(),
|
||||||
|
//User_AcceptanceUserEmail = row["User_AcceptanceUserEmail"].ToString(),
|
||||||
|
User_CsUserIds = row["User_CsUserIds"].ToString(),
|
||||||
|
User_CsUsers = row["User_CsUsers"].ToString(),
|
||||||
|
//User_CsUsersUserEmail = row["User_CsUsersUserEmail"].ToString(),
|
||||||
|
CompleteDate = Convert.ToDateTime(row["CompleteDate"].ToString())
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
var gItem = lstOverdue.FirstOrDefault();
|
||||||
|
if (gItem != null)
|
||||||
|
{
|
||||||
|
userIds.Add(gItem.User_AcceptanceUserId);
|
||||||
|
foreach (var userId in userIds)
|
||||||
|
{
|
||||||
|
var user = UserService.GetUserByUserId(userId);
|
||||||
|
if (!string.IsNullOrWhiteSpace(user.Email))
|
||||||
|
{
|
||||||
|
MailMessage mail = new MailMessage();
|
||||||
|
//邮件主题
|
||||||
|
mail.Subject = $"有事项申请关闭被驳回了——{gItem.ProjectName}";
|
||||||
|
mail.To.Add(user.Email);
|
||||||
|
//mail.To.Add("test@test.com");
|
||||||
|
mail.IsBodyHtml = true;//确保邮件正文被当作HTML解析
|
||||||
|
//邮件正文
|
||||||
|
string bodyStr = $@"<html>
|
||||||
|
<head>
|
||||||
|
<style>
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h2>事项申请关闭被驳回</h2>
|
||||||
|
<p>项目名称:{gItem.ProjectName}</p>
|
||||||
|
<p>事项编号:{gItem.GJSXID}</p>
|
||||||
|
<p>责任单位:{gItem.UnitName}</p>
|
||||||
|
<p>专业:{gItem.CNProfessionalName}</p>
|
||||||
|
<p>事项类别:{gItem.GJSXTypeName}</p>
|
||||||
|
<p>紧急程度:{gItem.QuestionTypeName}</p>
|
||||||
|
<p>事项描述:{gItem.Detail}</p>
|
||||||
|
<p>提出人:{gItem.UserName}</p>
|
||||||
|
<p>责任人:{gItem.User_AcceptanceUserName}</p>
|
||||||
|
<p>跟踪人:{gItem.User_ReceiveUserName}</p>
|
||||||
|
<p>抄送人:{gItem.User_CsUsers}</p>
|
||||||
|
<p>约定完成日期:{gItem.CompleteDate.ToShortDateString()}</p>
|
||||||
|
<p>驳回申请关闭说明:{detail}</p>
|
||||||
|
|
||||||
|
<h2>智慧施工管理信息系统</h2>
|
||||||
|
<a href='https://zhgd.cwcec.com/'>请点击此处,进入智慧施工管理信息系统,查看事项详情</a>
|
||||||
|
<p>登录账号:{user.Account}</p>
|
||||||
|
<p>登录密码:CWCEC.+身份证号后四位(示例:CWCEC.1234)</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>";
|
||||||
|
//< p > 登录密码:{ user.RawPassword}</ p >
|
||||||
|
mail.Body = bodyStr;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
bool send = PushEmail(mail);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ErrLogInfo.WriteLog($"关键事项申请关闭通知提醒责任人;项目名称:{gItem.ProjectName},事项编号:{gItem.GJSXID}", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 关键事项超期预警定时提醒发送邮箱
|
/// 关键事项超期预警定时提醒发送邮箱
|
||||||
|
@ -185,7 +439,7 @@ namespace BLL
|
||||||
left join Sys_User as b on a.UserId = b.UserId
|
left join Sys_User as b on a.UserId = b.UserId
|
||||||
left join[dbo].[Base_Project] on a.ProjectId = Base_Project.ProjectId
|
left join[dbo].[Base_Project] on a.ProjectId = Base_Project.ProjectId
|
||||||
left join[dbo].[Base_Unit] on a.UnitId = Base_Unit.UnitId
|
left join[dbo].[Base_Unit] on a.UnitId = Base_Unit.UnitId
|
||||||
where 1=1 and a.state<>'0' and a.state<>'1' and (GETDATE()>a.CompleteDate or DATEDIFF(DAY, CompleteDate, isnull(CloseDate,getdate()))=-7 or DATEDIFF(DAY, CompleteDate, isnull(CloseDate,getdate()))=-6 ) ";
|
where 1=1 and a.state<>'0' and a.state<>'1' and (GETDATE()>a.CompleteDate or DATEDIFF(DAY, CompleteDate, isnull(CloseDate,getdate()))=-7 or DATEDIFF(DAY, CompleteDate, isnull(CloseDate,getdate()))=-6 or DATEDIFF(DAY, CompleteDate, isnull(CloseDate,getdate()))=-1 ) ";
|
||||||
|
|
||||||
List<SqlParameter> listStr = new List<SqlParameter>();
|
List<SqlParameter> listStr = new List<SqlParameter>();
|
||||||
SqlParameter[] parameter = listStr.ToArray();
|
SqlParameter[] parameter = listStr.ToArray();
|
||||||
|
@ -224,6 +478,7 @@ namespace BLL
|
||||||
//获取有邮箱的用户
|
//获取有邮箱的用户
|
||||||
var userIds = BLL.UserService.GetUserHaveEmailList();
|
var userIds = BLL.UserService.GetUserHaveEmailList();
|
||||||
|
|
||||||
|
userIds = userIds.Where(x => x.UserName == "张邦兴").ToList();
|
||||||
if (userIds.Any() && lstOverdue.Any())
|
if (userIds.Any() && lstOverdue.Any())
|
||||||
{
|
{
|
||||||
//int allnum = 0;
|
//int allnum = 0;
|
||||||
|
@ -256,12 +511,12 @@ namespace BLL
|
||||||
{
|
{
|
||||||
foreach (var item in acceptanceItems)
|
foreach (var item in acceptanceItems)
|
||||||
{
|
{
|
||||||
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.QuestionTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : item.DateDiffDays < 0 ? "还有一周就逾期了" : "半")}</td></tr>");
|
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.QuestionTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : item.DateDiffDays < -1 ? "还有一周就逾期了" : "半")}</td></tr>");
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//发起人为本人
|
//发起人为本人
|
||||||
var userItems = lstProjectOverdue.Where(x => x.UserID == user.UserId).OrderByDescending(x => x.DateDiffDays).ToList();
|
var userItems = lstProjectOverdue.Where(x => x.UserID == user.UserId && x.DateDiffDays > -1).OrderByDescending(x => x.DateDiffDays).ToList();
|
||||||
if (userItems.Any())
|
if (userItems.Any())
|
||||||
{
|
{
|
||||||
foreach (var item in userItems)
|
foreach (var item in userItems)
|
||||||
|
@ -271,7 +526,7 @@ namespace BLL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//跟踪人为本人--x.User_ReceiveUserId != null && x.User_ReceiveUserId != "" &&
|
//跟踪人为本人--x.User_ReceiveUserId != null && x.User_ReceiveUserId != "" &&
|
||||||
var receiveItems = lstProjectOverdue.Where(x => x.User_ReceiveUserId.Contains(user.UserId)).OrderByDescending(x => x.DateDiffDays).ToList();
|
var receiveItems = lstProjectOverdue.Where(x => x.User_ReceiveUserId.Contains(user.UserId) && x.DateDiffDays > -1).OrderByDescending(x => x.DateDiffDays).ToList();
|
||||||
if (receiveItems.Any())
|
if (receiveItems.Any())
|
||||||
{
|
{
|
||||||
foreach (var item in receiveItems)
|
foreach (var item in receiveItems)
|
||||||
|
@ -286,7 +541,7 @@ namespace BLL
|
||||||
{
|
{
|
||||||
foreach (var item in csUserItems)
|
foreach (var item in csUserItems)
|
||||||
{
|
{
|
||||||
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.QuestionTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : item.DateDiffDays < 0 ? "还有一周就逾期了" : "半")}</td></tr>");
|
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.QuestionTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : item.DateDiffDays < -1 ? "还有一周就逾期了" : "半")}</td></tr>");
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -365,7 +620,7 @@ namespace BLL
|
||||||
{
|
{
|
||||||
index = 0;
|
index = 0;
|
||||||
//超期当日提醒项目经理
|
//超期当日提醒项目经理
|
||||||
var lstProjectOverdue1 = lstProjectOverdue.Where(x => x.DateDiffDays == 0).ToList();
|
var lstProjectOverdue1 = lstProjectOverdue.Where(x => x.DateDiffDays == 0 || x.DateDiffDays == -1).ToList();
|
||||||
//超期一周的重要、紧急事项提醒项目经理
|
//超期一周的重要、紧急事项提醒项目经理
|
||||||
var lstProjectOverdue7 = lstProjectOverdue.Where(x => x.DateDiffDays >= 7 && x.QuestionTypeName != "一般").ToList();
|
var lstProjectOverdue7 = lstProjectOverdue.Where(x => x.DateDiffDays >= 7 && x.QuestionTypeName != "一般").ToList();
|
||||||
lstProjectOverdue1.AddRange(lstProjectOverdue7);
|
lstProjectOverdue1.AddRange(lstProjectOverdue7);
|
||||||
|
|
|
@ -3,6 +3,7 @@ namespace BLL
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.ServiceModel.Security;
|
||||||
using System.Web.UI.WebControls;
|
using System.Web.UI.WebControls;
|
||||||
|
|
||||||
public static class UserService
|
public static class UserService
|
||||||
|
@ -390,6 +391,27 @@ namespace BLL
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 根据用户Id判断用户是否有维护邮箱,返回姓名
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="userId"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static bool IsUserHaveEmail(string userId, out string userName)
|
||||||
|
{
|
||||||
|
bool result = false;
|
||||||
|
userName = string.Empty;
|
||||||
|
if (!string.IsNullOrWhiteSpace(userId))
|
||||||
|
{
|
||||||
|
var user = (from x in Funs.DB.Sys_User where x.UserId == userId select x).FirstOrDefault();
|
||||||
|
if (user != null)
|
||||||
|
{
|
||||||
|
result = !string.IsNullOrWhiteSpace(user.Email);
|
||||||
|
userName = user.UserName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 根据用户Id获取用户邮箱
|
/// 根据用户Id获取用户邮箱
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -112,12 +112,13 @@ namespace FineUIPro.Web.PZHGL.GJSX
|
||||||
protected void SaveData()
|
protected void SaveData()
|
||||||
{
|
{
|
||||||
var progressStatus = this.ddlProgressStatus.SelectedValue;
|
var progressStatus = this.ddlProgressStatus.SelectedValue;
|
||||||
|
var progress_detail = this.txtProgress_detail.Text.Trim();
|
||||||
Model.SGGLDB db = Funs.DB;
|
Model.SGGLDB db = Funs.DB;
|
||||||
var model = new Model.GJSX_detail
|
var model = new Model.GJSX_detail
|
||||||
{
|
{
|
||||||
GJSXID = this.GJSXID,
|
GJSXID = this.GJSXID,
|
||||||
//Cuid = this.GJSXDetailId,
|
//Cuid = this.GJSXDetailId,
|
||||||
Progress_detail = this.txtProgress_detail.Text.Trim(),
|
Progress_detail = progress_detail,
|
||||||
ProgressStatus = progressStatus,
|
ProgressStatus = progressStatus,
|
||||||
Progress_user = this.CurrUser.UserId,
|
Progress_user = this.CurrUser.UserId,
|
||||||
Date = DateTime.Now,
|
Date = DateTime.Now,
|
||||||
|
@ -150,6 +151,11 @@ namespace FineUIPro.Web.PZHGL.GJSX
|
||||||
}
|
}
|
||||||
|
|
||||||
db.SubmitChanges();
|
db.SubmitChanges();
|
||||||
|
if (progressStatus == "申请关闭")
|
||||||
|
{
|
||||||
|
//申请关闭邮件提醒:提出人和跟踪人
|
||||||
|
GJSXMonitorService.GJSXApplyCloseNoticeSendEmail(this.GJSXID, progress_detail);
|
||||||
|
}
|
||||||
//ShowNotify("保存成功", MessageBoxIcon.Success);
|
//ShowNotify("保存成功", MessageBoxIcon.Success);
|
||||||
//PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
|
//PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,7 @@ using System.Web.UI;
|
||||||
using System.Web.UI.WebControls;
|
using System.Web.UI.WebControls;
|
||||||
using static System.Runtime.CompilerServices.RuntimeHelpers;
|
using static System.Runtime.CompilerServices.RuntimeHelpers;
|
||||||
using System.Xml.Linq;
|
using System.Xml.Linq;
|
||||||
|
using RestSharp.Extensions;
|
||||||
|
|
||||||
namespace FineUIPro.Web.PZHGL.GJSX
|
namespace FineUIPro.Web.PZHGL.GJSX
|
||||||
{
|
{
|
||||||
|
@ -745,22 +746,60 @@ namespace FineUIPro.Web.PZHGL.GJSX
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//跟踪人
|
||||||
|
var DropUser_ReceiveID = this.DropUser_ReceiveID.SelectedValue;
|
||||||
|
|
||||||
string rNotice = this.rblNotice.SelectedValue;
|
string rNotice = this.rblNotice.SelectedValue;
|
||||||
//勾选邮件即时通知责任人,先判断责任人是否已维护邮箱
|
//勾选邮件即时通知责任人,先判断责任人是否已维护邮箱
|
||||||
if (rNotice == "1")
|
if (rNotice == "1")
|
||||||
{
|
{
|
||||||
if (!BLL.UserService.IsUserHaveEmail(DropUser_AcceptanceId))
|
//if (!BLL.UserService.IsUserHaveEmail(this.CurrUser.UserId))
|
||||||
|
//{
|
||||||
|
// Alert.ShowInParent("请先给提出人维护邮箱!", MessageBoxIcon.Warning);
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
|
//if (!BLL.UserService.IsUserHaveEmail(DropUser_AcceptanceId))
|
||||||
|
//{
|
||||||
|
// Alert.ShowInParent("请先给责任人维护邮箱!", MessageBoxIcon.Warning);
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
|
//if (!BLL.UserService.IsUserHaveEmail(DropUser_ReceiveID))
|
||||||
|
//{
|
||||||
|
// Alert.ShowInParent("请先给跟踪人维护邮箱!", MessageBoxIcon.Warning);
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
|
List<string> verifyUser = new List<string>();
|
||||||
|
verifyUser.Add(this.CurrUser.UserId);
|
||||||
|
verifyUser.Add(DropUser_AcceptanceId);
|
||||||
|
verifyUser.Add(DropUser_ReceiveID);
|
||||||
|
if (!string.IsNullOrEmpty(drpCsUsers.Value))
|
||||||
{
|
{
|
||||||
Alert.ShowInParent("请先给责任人维护邮箱!", MessageBoxIcon.Warning);
|
//抄送人
|
||||||
|
var sendUserIds = string.Join(",", drpCsUsers.Values);
|
||||||
|
var sendUserId = sendUserIds.Split(',');
|
||||||
|
verifyUser.AddRange(sendUserId);
|
||||||
|
}
|
||||||
|
string verifyMsg = string.Empty;
|
||||||
|
foreach (var verify in verifyUser)
|
||||||
|
{
|
||||||
|
string verUserName = string.Empty;
|
||||||
|
if (!BLL.UserService.IsUserHaveEmail(verify, out verUserName))
|
||||||
|
{
|
||||||
|
verifyMsg = !string.IsNullOrWhiteSpace(verifyMsg) ? $"{verifyMsg}、{verUserName}" : verUserName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!string.IsNullOrWhiteSpace(verifyMsg))
|
||||||
|
{
|
||||||
|
Alert.ShowInParent($"请先给{verifyMsg}维护邮箱!", MessageBoxIcon.Warning);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
List<string> userIds = new List<string>();
|
//List<string> userIds = new List<string>();
|
||||||
userIds.Add(DropUser_AcceptanceId);
|
//userIds.Add(DropUser_AcceptanceId);
|
||||||
userIds.AddRange(drpCsUsers.Values);
|
//userIds.AddRange(drpCsUsers.Values);
|
||||||
string EditType = Request.Params["EditType"];
|
string EditType = Request.Params["EditType"];
|
||||||
string ID = Request.Params["ID"];
|
string ID = Request.Params["ID"];
|
||||||
if (string.IsNullOrEmpty(ID))
|
if (string.IsNullOrEmpty(ID))
|
||||||
|
@ -769,7 +808,7 @@ namespace FineUIPro.Web.PZHGL.GJSX
|
||||||
//勾选邮件即时通知责任人,邮箱通知提醒关键事项
|
//勾选邮件即时通知责任人,邮箱通知提醒关键事项
|
||||||
if (rNotice == "1")
|
if (rNotice == "1")
|
||||||
{
|
{
|
||||||
GJSXMonitorService.GJSXNoticeSendEmail(userIds, this.txtGJSXID.Text.Trim());
|
GJSXMonitorService.GJSXNoticeSendEmail(this.txtGJSXID.Text.Trim());
|
||||||
//if (BLL.UserService.IsUserHaveEmail(DropUser_AcceptanceId))
|
//if (BLL.UserService.IsUserHaveEmail(DropUser_AcceptanceId))
|
||||||
//{
|
//{
|
||||||
// GJSXMonitorService.GJSXNoticeSendEmail(DropUser_AcceptanceId, this.txtGJSXID.Text.Trim());
|
// GJSXMonitorService.GJSXNoticeSendEmail(DropUser_AcceptanceId, this.txtGJSXID.Text.Trim());
|
||||||
|
@ -786,7 +825,7 @@ namespace FineUIPro.Web.PZHGL.GJSX
|
||||||
//勾选邮件即时通知责任人,邮箱通知提醒关键事项
|
//勾选邮件即时通知责任人,邮箱通知提醒关键事项
|
||||||
if (rNotice == "1")
|
if (rNotice == "1")
|
||||||
{
|
{
|
||||||
GJSXMonitorService.GJSXNoticeSendEmail(userIds, this.txtGJSXID.Text.Trim());
|
GJSXMonitorService.GJSXNoticeSendEmail(this.txtGJSXID.Text.Trim());
|
||||||
//if (BLL.UserService.IsUserHaveEmail(DropUser_AcceptanceId))
|
//if (BLL.UserService.IsUserHaveEmail(DropUser_AcceptanceId))
|
||||||
//{
|
//{
|
||||||
// GJSXMonitorService.GJSXNoticeSendEmail(DropUser_AcceptanceId, this.txtGJSXID.Text.Trim());
|
// GJSXMonitorService.GJSXNoticeSendEmail(DropUser_AcceptanceId, this.txtGJSXID.Text.Trim());
|
||||||
|
@ -838,6 +877,12 @@ namespace FineUIPro.Web.PZHGL.GJSX
|
||||||
ProgressStatus = $"{(progressResult == "0" ? "同意" : "驳回")}申请",
|
ProgressStatus = $"{(progressResult == "0" ? "同意" : "驳回")}申请",
|
||||||
};
|
};
|
||||||
GJSXItemService.AddGJSXMX(detail);
|
GJSXItemService.AddGJSXMX(detail);
|
||||||
|
|
||||||
|
//事项申请关闭被驳回,邮箱提醒
|
||||||
|
if (progressResult == "1")
|
||||||
|
{
|
||||||
|
GJSXMonitorService.GJSXRejectApplyCloseNoticeSendEmail(detail.GJSXID, progressReason);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1016,7 +1061,7 @@ namespace FineUIPro.Web.PZHGL.GJSX
|
||||||
orderby y.UserCode
|
orderby y.UserCode
|
||||||
select y);
|
select y);
|
||||||
DataTable table2 = LINQToDataTable(userList);
|
DataTable table2 = LINQToDataTable(userList);
|
||||||
if (table2 == null|| table2.Rows.Count==0) return table2;
|
if (table2 == null || table2.Rows.Count == 0) return table2;
|
||||||
DataView view2 = table2.DefaultView;
|
DataView view2 = table2.DefaultView;
|
||||||
view2.Sort = String.Format("{0} {1}", sortField, sortDirection);
|
view2.Sort = String.Format("{0} {1}", sortField, sortDirection);
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ namespace WebAPI.Controllers
|
||||||
/// <param name="dates"></param>
|
/// <param name="dates"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public Model.ResponeData SynDateIDPDesignDrawingData([FromBody] List<string> dates)
|
public Model.ResponeData SynIDPDesignDrawingDataByDate([FromBody] List<string> dates)
|
||||||
{
|
{
|
||||||
var responeData = new Model.ResponeData();
|
var responeData = new Model.ResponeData();
|
||||||
try
|
try
|
||||||
|
|
|
@ -90,6 +90,7 @@ namespace WebAPI.Filter
|
||||||
"HazardRegister*getHazardRegisterByProjectIdStates",
|
"HazardRegister*getHazardRegisterByProjectIdStates",
|
||||||
"PMP*SynPMPProjectData",
|
"PMP*SynPMPProjectData",
|
||||||
"IDP*SynIDPDesignDrawingData",
|
"IDP*SynIDPDesignDrawingData",
|
||||||
|
"IDP*SynIDPDesignDrawingDataByDate",
|
||||||
"IDP*SynIDPPreRunData",
|
"IDP*SynIDPPreRunData",
|
||||||
"IDP*SynOADesignDrawingDataBlueprintInfo",
|
"IDP*SynOADesignDrawingDataBlueprintInfo",
|
||||||
"IDP*SynOADesignDrawingDataPrintInfo",
|
"IDP*SynOADesignDrawingDataPrintInfo",
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_PublishTargetUrl>G:\发布\五环WebApi</_PublishTargetUrl>
|
<_PublishTargetUrl>G:\发布\五环WebApi</_PublishTargetUrl>
|
||||||
<History>True|2025-09-22T06:54:19.5237685Z||;True|2025-09-18T09:53:17.9300539+08:00||;True|2025-09-16T19:11:12.4383069+08:00||;True|2025-09-02T11:14:00.9580707+08:00||;True|2025-09-02T10:52:20.0445598+08:00||;True|2025-08-29T17:56:01.6245615+08:00||;True|2025-08-29T17:55:41.2802685+08:00||;True|2025-08-09T21:27:40.2103961+08:00||;True|2025-08-06T15:31:52.1166645+08:00||;True|2025-08-04T18:56:13.9675910+08:00||;True|2025-07-23T11:12:18.0134770+08:00||;True|2025-07-23T10:36:09.9990536+08:00||;True|2025-07-23T10:35:51.8814789+08:00||;True|2025-07-21T17:46:45.4620710+08:00||;True|2025-07-21T17:40:43.9871097+08:00||;True|2025-07-21T17:29:11.9275869+08:00||;True|2025-07-21T17:05:21.7763763+08:00||;True|2025-07-18T17:55:59.4892329+08:00||;True|2025-07-18T11:08:56.2628896+08:00||;True|2025-07-18T10:53:44.2534260+08:00||;True|2025-07-18T10:27:52.6751668+08:00||;True|2025-07-18T10:03:09.1785776+08:00||;True|2025-07-18T10:02:38.1252107+08:00||;True|2025-07-17T18:19:07.5837609+08:00||;True|2025-07-17T15:40:11.9126705+08:00||;True|2025-07-11T17:54:03.0298703+08:00||;True|2025-07-11T16:19:50.3283029+08:00||;True|2025-07-11T15:49:22.5920473+08:00||;True|2025-07-02T14:39:27.0436873+08:00||;True|2025-07-02T11:18:29.1208369+08:00||;True|2025-07-01T15:52:16.6767496+08:00||;True|2025-07-01T10:14:59.0471052+08:00||;True|2025-06-28T11:40:36.0544739+08:00||;True|2025-06-27T15:10:24.4628086+08:00||;True|2025-06-27T10:31:14.8332810+08:00||;True|2025-06-27T10:13:13.3022394+08:00||;True|2025-06-26T23:51:04.1304509+08:00||;True|2025-06-26T23:34:06.4223762+08:00||;True|2025-06-26T22:42:08.9018138+08:00||;True|2025-06-26T22:16:01.8954571+08:00||;True|2025-06-26T21:19:42.2638204+08:00||;True|2025-06-25T23:22:39.7267591+08:00||;True|2025-06-25T23:19:33.2378458+08:00||;True|2025-06-25T22:18:16.2863303+08:00||;True|2025-06-25T22:10:29.2540175+08:00||;True|2025-06-25T22:00:58.5212166+08:00||;True|2025-06-25T22:00:31.2531214+08:00||;True|2025-06-25T18:33:01.5770030+08:00||;True|2025-06-25T17:47:33.7779622+08:00||;True|2025-06-25T17:40:26.9905954+08:00||;True|2025-06-20T11:24:58.4099232+08:00||;True|2025-06-19T16:42:45.2358810+08:00||;True|2025-06-16T19:28:10.6447738+08:00||;True|2025-06-12T11:00:02.3559090+08:00||;True|2025-06-12T10:40:29.0324520+08:00||;True|2025-06-04T23:24:01.0324973+08:00||;True|2025-06-04T18:39:41.7304136+08:00||;True|2025-06-04T11:23:17.3803405+08:00||;True|2025-06-04T11:04:32.4212196+08:00||;True|2025-05-26T19:19:09.7246357+08:00||;True|2025-05-26T19:16:39.1283077+08:00||;True|2025-05-26T19:09:24.1561616+08:00||;True|2025-04-07T16:11:44.5172315+08:00||;True|2025-04-02T18:10:22.8695984+08:00||;True|2025-04-02T17:59:51.2978116+08:00||;True|2025-04-02T17:50:55.8630437+08:00||;True|2025-04-02T17:49:22.5114405+08:00||;True|2025-04-02T17:47:11.0650205+08:00||;True|2025-04-02T17:39:09.8576853+08:00||;True|2025-04-02T17:38:15.3079030+08:00||;True|2025-04-02T17:22:03.6735964+08:00||;True|2025-04-02T17:19:04.4220913+08:00||;True|2025-04-02T17:17:14.0244636+08:00||;True|2025-04-02T17:11:09.6583011+08:00||;True|2025-04-02T17:07:23.6330597+08:00||;True|2025-04-02T16:58:45.4070649+08:00||;True|2025-04-02T16:50:20.5907511+08:00||;True|2025-04-02T16:44:18.5351224+08:00||;True|2025-04-02T16:31:11.1297141+08:00||;True|2025-04-02T16:18:43.1126995+08:00||;True|2025-04-02T14:50:42.5384021+08:00||;True|2025-04-01T10:53:08.9403414+08:00||;True|2025-04-01T10:52:08.7646389+08:00||;True|2025-04-01T09:52:56.3095742+08:00||;True|2025-03-13T16:44:25.3220313+08:00||;True|2025-03-13T15:31:10.3223071+08:00||;True|2025-03-13T10:58:17.1401575+08:00||;True|2025-01-23T23:10:37.9664637+08:00||;True|2024-09-24T09:51:10.8028974+08:00||;True|2024-09-20T17:30:59.6144803+08:00||;True|2024-09-20T15:28:40.2547949+08:00||;True|2024-09-19T16:30:51.3047517+08:00||;True|2024-09-19T15:53:23.2431713+08:00||;True|2024-09-19T15:48:55.0571748+08:00||;True|2024-09-19T15:06:29.5748482+08:00||;True|2024-09-19T14:55:42.1477578+08:00||;True|2024-09-19T10:07:53.8666329+08:00||;True|2024-09-03T16:26:17.4985546+08:00||;True|2024-07-17T10:29:15.9472548+08:00||;</History>
|
<History>True|2025-09-22T07:14:22.9602725Z||;True|2025-09-22T15:08:27.5989706+08:00||;True|2025-09-22T14:54:19.5237685+08:00||;True|2025-09-18T09:53:17.9300539+08:00||;True|2025-09-16T19:11:12.4383069+08:00||;True|2025-09-02T11:14:00.9580707+08:00||;True|2025-09-02T10:52:20.0445598+08:00||;True|2025-08-29T17:56:01.6245615+08:00||;True|2025-08-29T17:55:41.2802685+08:00||;True|2025-08-09T21:27:40.2103961+08:00||;True|2025-08-06T15:31:52.1166645+08:00||;True|2025-08-04T18:56:13.9675910+08:00||;True|2025-07-23T11:12:18.0134770+08:00||;True|2025-07-23T10:36:09.9990536+08:00||;True|2025-07-23T10:35:51.8814789+08:00||;True|2025-07-21T17:46:45.4620710+08:00||;True|2025-07-21T17:40:43.9871097+08:00||;True|2025-07-21T17:29:11.9275869+08:00||;True|2025-07-21T17:05:21.7763763+08:00||;True|2025-07-18T17:55:59.4892329+08:00||;True|2025-07-18T11:08:56.2628896+08:00||;True|2025-07-18T10:53:44.2534260+08:00||;True|2025-07-18T10:27:52.6751668+08:00||;True|2025-07-18T10:03:09.1785776+08:00||;True|2025-07-18T10:02:38.1252107+08:00||;True|2025-07-17T18:19:07.5837609+08:00||;True|2025-07-17T15:40:11.9126705+08:00||;True|2025-07-11T17:54:03.0298703+08:00||;True|2025-07-11T16:19:50.3283029+08:00||;True|2025-07-11T15:49:22.5920473+08:00||;True|2025-07-02T14:39:27.0436873+08:00||;True|2025-07-02T11:18:29.1208369+08:00||;True|2025-07-01T15:52:16.6767496+08:00||;True|2025-07-01T10:14:59.0471052+08:00||;True|2025-06-28T11:40:36.0544739+08:00||;True|2025-06-27T15:10:24.4628086+08:00||;True|2025-06-27T10:31:14.8332810+08:00||;True|2025-06-27T10:13:13.3022394+08:00||;True|2025-06-26T23:51:04.1304509+08:00||;True|2025-06-26T23:34:06.4223762+08:00||;True|2025-06-26T22:42:08.9018138+08:00||;True|2025-06-26T22:16:01.8954571+08:00||;True|2025-06-26T21:19:42.2638204+08:00||;True|2025-06-25T23:22:39.7267591+08:00||;True|2025-06-25T23:19:33.2378458+08:00||;True|2025-06-25T22:18:16.2863303+08:00||;True|2025-06-25T22:10:29.2540175+08:00||;True|2025-06-25T22:00:58.5212166+08:00||;True|2025-06-25T22:00:31.2531214+08:00||;True|2025-06-25T18:33:01.5770030+08:00||;True|2025-06-25T17:47:33.7779622+08:00||;True|2025-06-25T17:40:26.9905954+08:00||;True|2025-06-20T11:24:58.4099232+08:00||;True|2025-06-19T16:42:45.2358810+08:00||;True|2025-06-16T19:28:10.6447738+08:00||;True|2025-06-12T11:00:02.3559090+08:00||;True|2025-06-12T10:40:29.0324520+08:00||;True|2025-06-04T23:24:01.0324973+08:00||;True|2025-06-04T18:39:41.7304136+08:00||;True|2025-06-04T11:23:17.3803405+08:00||;True|2025-06-04T11:04:32.4212196+08:00||;True|2025-05-26T19:19:09.7246357+08:00||;True|2025-05-26T19:16:39.1283077+08:00||;True|2025-05-26T19:09:24.1561616+08:00||;True|2025-04-07T16:11:44.5172315+08:00||;True|2025-04-02T18:10:22.8695984+08:00||;True|2025-04-02T17:59:51.2978116+08:00||;True|2025-04-02T17:50:55.8630437+08:00||;True|2025-04-02T17:49:22.5114405+08:00||;True|2025-04-02T17:47:11.0650205+08:00||;True|2025-04-02T17:39:09.8576853+08:00||;True|2025-04-02T17:38:15.3079030+08:00||;True|2025-04-02T17:22:03.6735964+08:00||;True|2025-04-02T17:19:04.4220913+08:00||;True|2025-04-02T17:17:14.0244636+08:00||;True|2025-04-02T17:11:09.6583011+08:00||;True|2025-04-02T17:07:23.6330597+08:00||;True|2025-04-02T16:58:45.4070649+08:00||;True|2025-04-02T16:50:20.5907511+08:00||;True|2025-04-02T16:44:18.5351224+08:00||;True|2025-04-02T16:31:11.1297141+08:00||;True|2025-04-02T16:18:43.1126995+08:00||;True|2025-04-02T14:50:42.5384021+08:00||;True|2025-04-01T10:53:08.9403414+08:00||;True|2025-04-01T10:52:08.7646389+08:00||;True|2025-04-01T09:52:56.3095742+08:00||;True|2025-03-13T16:44:25.3220313+08:00||;True|2025-03-13T15:31:10.3223071+08:00||;True|2025-03-13T10:58:17.1401575+08:00||;True|2025-01-23T23:10:37.9664637+08:00||;True|2024-09-24T09:51:10.8028974+08:00||;True|2024-09-20T17:30:59.6144803+08:00||;True|2024-09-20T15:28:40.2547949+08:00||;True|2024-09-19T16:30:51.3047517+08:00||;True|2024-09-19T15:53:23.2431713+08:00||;True|2024-09-19T15:48:55.0571748+08:00||;True|2024-09-19T15:06:29.5748482+08:00||;True|2024-09-19T14:55:42.1477578+08:00||;True|2024-09-19T10:07:53.8666329+08:00||;True|2024-09-03T16:26:17.4985546+08:00||;</History>
|
||||||
<LastFailureDetails />
|
<LastFailureDetails />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -86,10 +86,10 @@
|
||||||
<publishTime>10/28/2024 14:02:50</publishTime>
|
<publishTime>10/28/2024 14:02:50</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/App_global.asax.compiled">
|
<File Include="bin/App_global.asax.compiled">
|
||||||
<publishTime>09/22/2025 14:54:17</publishTime>
|
<publishTime>09/22/2025 15:14:22</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/App_global.asax.dll">
|
<File Include="bin/App_global.asax.dll">
|
||||||
<publishTime>09/22/2025 14:54:17</publishTime>
|
<publishTime>09/22/2025 15:14:22</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/Aspose.Words.dll">
|
<File Include="bin/Aspose.Words.dll">
|
||||||
<publishTime>12/06/2024 20:13:58</publishTime>
|
<publishTime>12/06/2024 20:13:58</publishTime>
|
||||||
|
@ -389,13 +389,13 @@
|
||||||
<publishTime>02/09/2013 00:42:28</publishTime>
|
<publishTime>02/09/2013 00:42:28</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/WebAPI.dll">
|
<File Include="bin/WebAPI.dll">
|
||||||
<publishTime>09/22/2025 14:53:56</publishTime>
|
<publishTime>09/22/2025 15:14:12</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/WebAPI.pdb">
|
<File Include="bin/WebAPI.pdb">
|
||||||
<publishTime>09/22/2025 14:53:56</publishTime>
|
<publishTime>09/22/2025 15:14:12</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/WebAPI.xml">
|
<File Include="bin/WebAPI.xml">
|
||||||
<publishTime>09/22/2025 14:53:56</publishTime>
|
<publishTime>09/22/2025 15:14:12</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/WebGrease.dll">
|
<File Include="bin/WebGrease.dll">
|
||||||
<publishTime>01/23/2014 21:57:34</publishTime>
|
<publishTime>01/23/2014 21:57:34</publishTime>
|
||||||
|
@ -479,7 +479,7 @@
|
||||||
<publishTime>10/28/2024 14:02:50</publishTime>
|
<publishTime>10/28/2024 14:02:50</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="PrecompiledApp.config">
|
<File Include="PrecompiledApp.config">
|
||||||
<publishTime>09/22/2025 14:53:58</publishTime>
|
<publishTime>09/22/2025 15:14:13</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="Scripts/bootstrap.js">
|
<File Include="Scripts/bootstrap.js">
|
||||||
<publishTime>10/28/2024 14:02:50</publishTime>
|
<publishTime>10/28/2024 14:02:50</publishTime>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
|
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
|
||||||
<UseIISExpress>true</UseIISExpress>
|
<UseIISExpress>true</UseIISExpress>
|
||||||
<Use64BitIISExpress />
|
<Use64BitIISExpress />
|
||||||
<IISExpressSSLPort />
|
<IISExpressSSLPort />
|
||||||
|
|
Loading…
Reference in New Issue