diff --git a/IRaCIS.Core.Application/Service/Common/EmailNoticeConfigService.cs b/IRaCIS.Core.Application/Service/Common/EmailNoticeConfigService.cs index 768cf7a1b..0096f4495 100644 --- a/IRaCIS.Core.Application/Service/Common/EmailNoticeConfigService.cs +++ b/IRaCIS.Core.Application/Service/Common/EmailNoticeConfigService.cs @@ -46,12 +46,20 @@ namespace IRaCIS.Core.Application.Contracts { var verifyExp1 = new EntityVerifyExp() { - VerifyExp = t => t.BusinessScenarioEnum == addOrEditEmailNoticeConfig.BusinessScenarioEnum && t.CriterionTypeEnum== addOrEditEmailNoticeConfig.CriterionTypeEnum, + VerifyExp = t => t.BusinessScenarioEnum == addOrEditEmailNoticeConfig.BusinessScenarioEnum && t.CriterionTypeEnum == addOrEditEmailNoticeConfig.CriterionTypeEnum, VerifyMsg = _localizer["EmailNoticeConfig_RepeatEmailScenario"] }; + var verifyExp2 = new EntityVerifyExp() + { + VerifyExp = t => t.Code == addOrEditEmailNoticeConfig.Code && t.IsDistinguishCriteria == addOrEditEmailNoticeConfig.IsDistinguishCriteria && t.SystemLevel == addOrEditEmailNoticeConfig.SystemLevel, + + VerifyMsg = _localizer["EmailNoticeConfig_RepeatCode"] + + }; + // 匹配所有占位符的正则表达式,允许包含空格的占位符 var regex = new Regex(@"\{\s*\d+\s*\}"); @@ -63,14 +71,14 @@ namespace IRaCIS.Core.Application.Contracts } - - var entity=new EmailNoticeConfig() { }; + + var entity = new EmailNoticeConfig() { }; if (addOrEditEmailNoticeConfig.Id == null) { - entity = _mapper.Map(addOrEditEmailNoticeConfig); + entity = _mapper.Map(addOrEditEmailNoticeConfig); foreach (var item in addOrEditEmailNoticeConfig.ToUserTypeList) @@ -86,9 +94,9 @@ namespace IRaCIS.Core.Application.Contracts } - await _emailNoticeConfigrepository.AddAsync(entity, true, verifyExp1); + await _emailNoticeConfigrepository.AddAsync(entity, true, verifyExp1, verifyExp2); + - } else { @@ -109,21 +117,28 @@ namespace IRaCIS.Core.Application.Contracts } - entity = await _emailNoticeConfigrepository.UpdateFromDTOAsync(addOrEditEmailNoticeConfig, true, false, verifyExp1); + entity = await _emailNoticeConfigrepository.UpdateFromDTOAsync(addOrEditEmailNoticeConfig, true, false, verifyExp1, verifyExp2); + - } - if(entity.EmailCron != string.Empty && entity.IsAutoSend) + if (entity.EmailCron != string.Empty) { var jobId = $"{entity.Id}_({entity.BusinessScenarioEnum})"; - HangfireJobHelper.AddOrUpdateSystemCronJob(jobId, entity.BusinessScenarioEnum, entity.EmailCron); + //有的job 可能编辑控制直接不发,需要移除已存在的 + HangfireJobHelper.RemoveCronJob(jobId); + + if (entity.IsAutoSend && entity.IsEnable) + { + HangfireJobHelper.AddOrUpdateSystemCronJob(jobId, entity.BusinessScenarioEnum, entity.EmailCron); + } + } - + return ResponseOutput.Ok(entity.Id.ToString()); diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs index 6380d82ba..9d0e2636a 100644 --- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs +++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs @@ -1658,8 +1658,8 @@ namespace IRaCIS.Core.Application.Service.Common { var emailNoticeConfigQueryable = _emailNoticeConfigrepository //.WhereIf(inQuery.SystemLevel == null, t => t.SystemLevel == SysEmailLevel.not_sys) - //.WhereIf(inQuery.SystemLevel != null, t => t.SystemLevel == inQuery.SystemLevel) - //.WhereIf(inQuery.IsDistinguishCriteria != null, t => t.IsDistinguishCriteria == inQuery.IsDistinguishCriteria) + .WhereIf(inQuery.SystemLevel != null, t => t.SystemLevel == inQuery.SystemLevel) + .WhereIf(inQuery.IsDistinguishCriteria != null, t => t.IsDistinguishCriteria == inQuery.IsDistinguishCriteria) .WhereIf(inQuery.CriterionTypeEnum != null, t => t.CriterionTypeEnum == inQuery.CriterionTypeEnum) .WhereIf(inQuery.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == inQuery.BusinessScenarioEnum) .WhereIf(inQuery.IsReturnRequired != null, t => t.IsReturnRequired == inQuery.IsReturnRequired)