From 501272a2a27632a56cdc9c41eb9a71e228d204f8 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Wed, 6 Nov 2024 14:28:57 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=89=B9=E9=87=8F=E6=B7=BB?=
=?UTF-8?q?=E5=8A=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Common/DTO/EmailNoticeConfigViewModel.cs | 3 ++
.../Document/TrialEmailNoticeConfigService.cs | 51 ++++++++++---------
.../Service/Document/_MapConfig.cs | 2 +-
3 files changed, 31 insertions(+), 25 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Common/DTO/EmailNoticeConfigViewModel.cs b/IRaCIS.Core.Application/Service/Common/DTO/EmailNoticeConfigViewModel.cs
index 28960a9bf..0af514bd5 100644
--- a/IRaCIS.Core.Application/Service/Common/DTO/EmailNoticeConfigViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Common/DTO/EmailNoticeConfigViewModel.cs
@@ -5,6 +5,7 @@
//--------------------------------------------------------------------
using IRaCIS.Core.Application.Helper;
using IRaCIS.Core.Domain.Share;
+using System.ComponentModel.DataAnnotations;
namespace IRaCIS.Core.Application.Contracts
{
public class TrialSelectEmailNoticeConfigView : EmailNoticeConfigView
@@ -71,6 +72,8 @@ namespace IRaCIS.Core.Application.Contracts
public UserTypeEnum? CopyUserType { get; set; }
+
+
}
/// EmailNoticeConfigAddOrEdit 列表查询参数模型
diff --git a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs
index 61440b5bd..f176eedc1 100644
--- a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs
+++ b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs
@@ -1242,6 +1242,8 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
public async Task> GetSysEmailNoticeConfigList(EmailNoticeConfigQuery inQuery)
{
+ var trialConfig = _trialRepository.Where(t => t.Id == inQuery.TrialId).Select(t => new { t.IsEnrollementQualificationConfirm, t.IsPDProgressView }).First();
+
var emailNoticeConfigQueryable = _emailNoticeConfigRepository
.WhereIf(inQuery.SystemLevel == null, t => t.SystemLevel == SysEmailLevel.not_sys)
.WhereIf(inQuery.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == inQuery.BusinessScenarioEnum)
@@ -1252,11 +1254,34 @@ namespace IRaCIS.Core.Application.Service
.WhereIf(inQuery.EmailUrgentEnum != null, t => t.EmailUrgentEnum == inQuery.EmailUrgentEnum)
.WhereIf(inQuery.ToUserType != null, t => t.EmailNoticeUserTypeList.Any(t => t.UserType == inQuery.ToUserType && t.EmailUserType == EmailUserType.To))
.WhereIf(inQuery.CopyUserType != null, t => t.EmailNoticeUserTypeList.Any(t => t.UserType == inQuery.CopyUserType && t.EmailUserType == EmailUserType.Copy))
+ .WhereIf(trialConfig.IsEnrollementQualificationConfirm == false, t => t.BusinessModuleEnum != BusinessModule.EligibilityVerification)
+ .WhereIf(trialConfig.IsPDProgressView == false, t => t.BusinessModuleEnum != BusinessModule.PDVerification)
+ .WhereIf(trialConfig.IsPDProgressView == false && trialConfig.IsEnrollementQualificationConfirm == false, t => t.BusinessModuleEnum != BusinessModule.PDVerification
+ && t.BusinessModuleEnum != BusinessModule.EligibilityVerification)
.ProjectTo(_mapper.ConfigurationProvider, new { trialId = inQuery.TrialId });
return await emailNoticeConfigQueryable.ToPagedListAsync(inQuery);
}
+ public async Task BatchAddEnrollOrPdEmailConfig(Guid trialId)
+ {
+ var trialConfig = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.IsEnrollementQualificationConfirm, t.IsPDProgressView }).First();
+
+ var emailNoticeConfigQueryable = _emailNoticeConfigRepository
+
+ .WhereIf(trialConfig.IsEnrollementQualificationConfirm == true, t => t.BusinessModuleEnum == BusinessModule.EligibilityVerification)
+ .WhereIf(trialConfig.IsPDProgressView == true, t => t.BusinessModuleEnum == BusinessModule.PDVerification)
+ .WhereIf(trialConfig.IsPDProgressView == true && trialConfig.IsEnrollementQualificationConfirm == true, t => t.BusinessModuleEnum == BusinessModule.PDVerification
+ && t.BusinessModuleEnum == BusinessModule.EligibilityVerification)
+ .ProjectTo(_mapper.ConfigurationProvider);
+
+
+ var list = await emailNoticeConfigQueryable.ToListAsync();
+
+
+ return await BatchAddSysEmailConfig(_mapper.Map>(list.Where(t => t.IsHaveSelected == false).ToList()));
+
+ }
///
/// 批量勾选 传递列表每行数据,后台进行处理转换,建立关联关系
///
@@ -1320,32 +1345,13 @@ namespace IRaCIS.Core.Application.Service
}
- public async Task BatchAddEnrollOrPdEmailConfig(Guid trialId)
- {
- var trialConfig = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.IsEnrollementQualificationConfirm, t.IsPDProgressView }).First();
-
- var trialEmailNoticeConfigQueryable = _trialEmailNoticeConfigRepository.Where(t => t.TrialId == trialId)
-
- .WhereIf(trialConfig.IsEnrollementQualificationConfirm == true, t => t.BusinessModuleEnum == BusinessModule.EligibilityVerification)
- .WhereIf(trialConfig.IsPDProgressView == true, t => t.BusinessModuleEnum == BusinessModule.PDVerification)
- .WhereIf(trialConfig.IsPDProgressView == true && trialConfig.IsEnrollementQualificationConfirm == true, t => t.BusinessModuleEnum == BusinessModule.PDVerification
- && t.BusinessModuleEnum == BusinessModule.EligibilityVerification)
- .ProjectTo(_mapper.ConfigurationProvider);
-
-
- var list = await trialEmailNoticeConfigQueryable.ToListAsync();
-
-
- return await BatchAddSysEmailConfig(_mapper.Map>(list));
-
- }
[HttpPost]
public async Task>> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery)
{
//await SyncSystemEmainCofigDocListAsync(inQuery.TrialId);
- var trialConfig = _trialRepository.Where(t => t.Id == inQuery.TrialId).Select(t => new { t.IsEnrollementQualificationConfirm, t.IsPDProgressView }).First();
+
var trialEmailNoticeConfigQueryable = _trialEmailNoticeConfigRepository.Where(t => t.TrialId == inQuery.TrialId)
.WhereIf(inQuery.IsDistinguishCriteria == false, t => t.TrialReadingCriterionId == null)
@@ -1358,10 +1364,7 @@ namespace IRaCIS.Core.Application.Service
.WhereIf(inQuery.CopyUserType != null, t => t.TrialEmailNoticeUserList.Any(t => t.UserType == inQuery.CopyUserType && t.EmailUserType == EmailUserType.Copy))
.WhereIf(inQuery.BusinessModuleEnum != null, t => t.BusinessModuleEnum == inQuery.BusinessModuleEnum)
- .WhereIf(trialConfig.IsEnrollementQualificationConfirm == false, t => t.BusinessModuleEnum != BusinessModule.EligibilityVerification)
- .WhereIf(trialConfig.IsPDProgressView == false, t => t.BusinessModuleEnum != BusinessModule.PDVerification)
- .WhereIf(trialConfig.IsPDProgressView == false && trialConfig.IsEnrollementQualificationConfirm == false, t => t.BusinessModuleEnum != BusinessModule.PDVerification
- && t.BusinessModuleEnum != BusinessModule.EligibilityVerification)
+
.ProjectTo(_mapper.ConfigurationProvider);
var sortField = string.IsNullOrWhiteSpace(inQuery.SortField) ? nameof(TrialEmailNoticeConfigView.Code) : inQuery.SortField;
diff --git a/IRaCIS.Core.Application/Service/Document/_MapConfig.cs b/IRaCIS.Core.Application/Service/Document/_MapConfig.cs
index 2311b6420..e78bebdf4 100644
--- a/IRaCIS.Core.Application/Service/Document/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Document/_MapConfig.cs
@@ -53,7 +53,7 @@ namespace IRaCIS.Core.Application.Service
CreateMap();
- CreateMap ();
+ CreateMap ();
CreateMap()