diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index ea8c8d6b0..5c2f606f9 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -14370,12 +14370,12 @@ - 定时提醒 + 定时过期提醒 - 定时提醒 + 定时过期提醒 @@ -15837,7 +15837,7 @@ 系统邮件配置表 - + 系统邮件配置表 diff --git a/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs b/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs index 5fc87fafc..117d11991 100644 --- a/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs @@ -46,7 +46,7 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring var systemDocQuery = from sysDoc in _systemDocumentRepository.AsQueryable(false) from identityUser in _identityUserRepository.AsQueryable(false).Where(t => t.UserRoleList.Where(t => t.IsUserRoleDisabled == false).Any(t => sysDoc.NeedConfirmedUserTypeList.AsQueryable().Any(c => c.NeedConfirmUserTypeId == t.UserTypeId))) - join confirm in _systemDocConfirmedUserRepository.Where() on new { ConfirmUserId = identityUser.Id, SystemDocumentId = sysDoc.Id } equals new { confirm.ConfirmUserId, confirm.SystemDocumentId } into cc + join confirmc in _systemDocConfirmedUserRepository.Where() on new { ConfirmUserId = identityUser.Id, SystemDocumentId = sysDoc.Id } equals new { confirmc.ConfirmUserId, confirmc.SystemDocumentId } into cc from confirm in cc.DefaultIfEmpty() select new UnionDocumentWithConfirmInfoView() { @@ -61,7 +61,9 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring UpdateTime = sysDoc.UpdateTime, ConfirmUserId = identityUser.Id, ConfirmTime = confirm.ConfirmTime, - + UserCreateTime = identityUser.CreateTime, + CurrentStaffTrainDays = sysDoc.CurrentStaffTrainDays, + NewStaffTrainDays = sysDoc.NewStaffTrainDays, RealName = identityUser.FullName, UserName = identityUser.UserName, @@ -69,8 +71,8 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring IsNeedSendEmial = identityUser.IsZhiZhun || (!identityUser.IsZhiZhun && sysDoc.DocUserSignType == DocUserSignType.InnerAndOuter), FullFilePath = sysDoc.Path }; - var datalist = await systemDocQuery.IgnoreQueryFilters().Where(t => !(t.IsDeleted == true && t.ConfirmTime == null)) - .Where(x => x.ConfirmTime != null).ToListAsync(); + var datalist = await systemDocQuery.IgnoreQueryFilters().Where(t => t.IsDeleted==false && t.ConfirmTime == null) + .ToListAsync(); datalist = datalist.Where(x => x.SuggestFinishTime != null && x.SuggestFinishTime.Value.Date == DateTime.Now.Date) .Where(x => x.IsNeedSendEmial).ToList(); var confirmUserIdList = datalist.Select(t => t.ConfirmUserId).Distinct().ToList(); @@ -80,36 +82,44 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring int index = 1; foreach (var userinfo in userinfoList) { - Console.WriteLine($"{index}发送定时过期提醒,邮箱:{userinfo.EMail},姓名{userinfo.UserName}"); - index++; - var messageToSend = new MimeMessage(); - //发件地址 - messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); - messageToSend.To.Add(new MailboxAddress(String.Empty, userinfo.EMail)); - - - - var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; - Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => + try { - var topicStr = string.Format(input.topicStr, companyName); + Console.WriteLine($"{index}发送定时过期提醒,邮箱:{userinfo.EMail},姓名{userinfo.UserName}"); + index++; + var messageToSend = new MimeMessage(); + //发件地址 + messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); + messageToSend.To.Add(new MailboxAddress(String.Empty, userinfo.EMail)); - var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), - userinfo.UserName // 用户名 {0} - ); - return (topicStr, htmlBodyStr); - }; + var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => + { + var topicStr = string.Format(input.topicStr, companyName); - await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(_emailNoticeConfigrepository, + var htmlBodyStr = string.Format( + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), + userinfo.UserName // 用户名 {0} - EmailBusinessScenario.GeneralTraining_ExpirationNotification, + ); - messageToSend, emailConfigFunc); + return (topicStr, htmlBodyStr); + }; - await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); + await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(_emailNoticeConfigrepository, + + EmailBusinessScenario.GeneralTraining_ExpirationNotification, + + messageToSend, emailConfigFunc); + + await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); + } + catch (Exception) + { + + } + }