diff --git a/SGGL/BLL/PZHGL/GJSX/GJSXMonitorService.cs b/SGGL/BLL/PZHGL/GJSX/GJSXMonitorService.cs index 2629e70a..a96ed6a8 100644 --- a/SGGL/BLL/PZHGL/GJSX/GJSXMonitorService.cs +++ b/SGGL/BLL/PZHGL/GJSX/GJSXMonitorService.cs @@ -18,176 +18,6 @@ namespace BLL { public static Model.SGGLDB db = Funs.DB; - #region 启动监视器 定时清理推送日志 - /// - /// 监视组件 - /// - private static Timer messageTimer1; - - /// - /// 关键事项超期预警定时提醒邮箱 - /// - public static void StartMonitorOverdueWarningPushEmail() - { - int adTimeJ = 60 * 4; - if (messageTimer1 != null) - { - messageTimer1.Stop(); - messageTimer1.Dispose(); - messageTimer1 = null; - } - if (adTimeJ > 0) - { - messageTimer1 = new Timer - { - AutoReset = true - }; - messageTimer1.Elapsed += new ElapsedEventHandler(OverdueWarningPushEmail); - messageTimer1.Interval = 1000 * 60 * adTimeJ;// 60分钟 60000 * adTimeJ; - messageTimer1.Start(); - } - } - - /// - /// 流程确认 定时执行 系统启动5分钟 - /// - /// Timer组件 - /// 事件参数 - private static void OverdueWarningPushEmail(object sender, ElapsedEventArgs e) - { - try - { - Model.SGGLDB db = Funs.DB; - //取未关闭且已经超期的数据 - - string strSql = @"select - DATEDIFF(DAY, CompleteDate, isnull(CloseDate,getdate())) AS DateDiffDays - ,a.GJSXID,a.ProjectId,a.Detail,a.UserID,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,'') - ,b.UserName,b.Email as UserEmail - ,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,'') - ,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,'') - ,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.state<>'0' and GETDATE()>a.CompleteDate "; - - List listStr = new List(); - SqlParameter[] parameter = listStr.ToArray(); - - DataTable table = SQLHelper.GetDataTableRunText(strSql, parameter); - - // 使用LINQ将DataTable转换为List - 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(), - UserName = row["UserName"].ToString(), - //UserEmail = row["UserEmail"].ToString(), - User_ReceiveUserName = row["User_ReceiveUserName"].ToString(), - //User_ReceiveUserEmail = row["User_ReceiveUserEmail"].ToString(), - User_AcceptanceUserName = row["User_AcceptanceUserName"].ToString(), - //User_AcceptanceUserEmail = row["User_AcceptanceUserEmail"].ToString(), - User_CsUsers = row["User_CsUsers"].ToString(), - //User_CsUsersUserEmail = row["User_CsUsersUserEmail"].ToString(), - CompleteDate = Convert.ToDateTime(row["CompleteDate"].ToString()) - }) - .ToList(); - - ////超期一周 - //var allItems1 = from x in db.GJSX - // join a in db.Base_Project on x.ProjectId equals a.ProjectId - // join b in db.Base_Unit on x.UnitId equals b.UnitId - // where x.State != "0" && x.CloseDate == null && DateTime.Now > Convert.ToDateTime(x.CompleteDate).AddDays(7) - // && DateTime.Now < Convert.ToDateTime(x.CompleteDate).AddDays(14) - // select x; - - ////超期两周 - //var allItems2 = from x in db.GJSX - // where x.State != "0" && x.CloseDate == null && DateTime.Now > Convert.ToDateTime(x.CompleteDate).AddDays(14) - // && DateTime.Now < Convert.ToDateTime(x.CompleteDate).AddDays(21) - // select x; - - ////超期三周 - //var allItems3 = from x in db.GJSX - // where x.State != "0" && x.CloseDate == null && DateTime.Now > Convert.ToDateTime(x.CompleteDate).AddDays(21) - // select x; - - - if (lstOverdue.Any()) - { - foreach (var item in lstOverdue) - { - if (item.DateDiffDays > 6) - {//超期一周 - MailMessage mail = new MailMessage(); - //邮件主题 - mail.Subject = "关键事项超期预警提醒"; - //邮件正文 - mail.Body = $@"责任单位:{item.UnitName} -项目名称:{item.ProjectName} -事项ID:{item.GJSXID} -事项描述:{item.Detail} -事项类别:{item.GJSXTypeName} -紧急程度:{item.QuestionTypeName} -专业:{item.CNProfessionalName} -约定完成时间:{item.CompleteDate.ToShortDateString()}"; - - - mail.To.Add("1923421292@qq.com"); - mail.To.Add("765289303@qq.com"); - mail.CC.Add("1784803958@qq.com"); - //if (!string.IsNullOrWhiteSpace(item.UserEmail)) - //{//提出人 - // mail.To.Add(item.UserEmail); - //} - //if (!string.IsNullOrWhiteSpace(item.User_AcceptanceUserEmail)) - //{//责任人 - // mail.To.Add(item.User_AcceptanceUserEmail); - //} - //if (!string.IsNullOrWhiteSpace(item.User_ReceiveUserEmail)) - //{//跟踪人 - // mail.To.Add(item.User_ReceiveUserEmail); - //} - //if (!string.IsNullOrWhiteSpace(item.User_CsUsersUserEmail)) - //{//抄送人 - // //mail.CC.Add("765289303@qq.com"); - // mail.CC.Add(item.User_CsUsersUserEmail); - //} - if (item.DateDiffDays > 21) - {//超期三周——增加抄送主管 - - } - else if (item.DateDiffDays > 13) - {//超期两周——增加项目经理、部门主管 - - } - PushEmail(mail); - } - } - } - } - catch (Exception ex) - { - } - } - /// /// 关键事项超期预警定时提醒发送邮箱 /// @@ -334,6 +164,7 @@ namespace BLL

关键事项超期预警提醒

+中国五环智慧施工管理信息系统 @@ -397,7 +228,5 @@ namespace BLL } } - #endregion - } } diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj index cf00c480..57083727 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj @@ -42,7 +42,7 @@ bin\DEBUG;TRACEprompt - 4 + 0AnyCPUfalseMinimumRecommendedRules.ruleset @@ -19697,7 +19697,7 @@ - +