修改文档关联标准
parent
af603b7bc6
commit
a59f2f2f60
|
@ -454,12 +454,11 @@
|
|||
<param name="inDto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.TrialEmailNoticeConfigService.SyncSystemEmainCofigDocListAsync(System.Guid,System.Nullable{IRaCIS.Core.Domain.Share.CriterionType})">
|
||||
<member name="M:IRaCIS.Core.Application.Service.TrialEmailNoticeConfigService.SyncSystemEmainCofigDocListAsync(System.Guid)">
|
||||
<summary>
|
||||
同步系统配置的文档到想项目中
|
||||
</summary>
|
||||
<param name="trialId"></param>
|
||||
<param name="criterionTypeEnum"></param>
|
||||
<returns></returns>
|
||||
|
||||
</member>
|
||||
|
|
|
@ -100,7 +100,11 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
|
||||
public CommonDocumentBusinessScenario? BusinessScenarioEnum { get; set; }
|
||||
|
||||
public CriterionType? CriterionTypeEnum { get; set; }
|
||||
//public CriterionType? CriterionTypeEnum { get; set; }
|
||||
|
||||
public Guid? TrialReadingCriterionId { get; set; }
|
||||
|
||||
public bool IsDistinguishCriteria { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -110,29 +110,49 @@ namespace IRaCIS.Core.Application.Service
|
|||
/// 同步系统配置的文档到想项目中
|
||||
/// </summary>
|
||||
/// <param name="trialId"></param>
|
||||
/// <param name="criterionTypeEnum"></param>
|
||||
/// <returns></returns>
|
||||
///
|
||||
private async Task SyncSystemEmainCofigDocListAsync(Guid trialId, CriterionType? criterionTypeEnum)
|
||||
private async Task SyncSystemEmainCofigDocListAsync(Guid trialId)
|
||||
{
|
||||
if (criterionTypeEnum != null)
|
||||
{
|
||||
var docmentList = _repository.Where<CommonDocument>(t => t.CriterionTypeEnum == criterionTypeEnum).Select(t => new { t.Path, t.Name, t.Code, t.BusinessScenarioEnum }).ToList();
|
||||
|
||||
var trialDocCount = _trialEmailNoticeConfigRepository.Where(t => t.CriterionTypeEnum == criterionTypeEnum && t.TrialId == trialId).Count();
|
||||
//判断流程配置是否确认 确认了一定确认了标准 可以进行同步
|
||||
|
||||
if (_repository.Where<Trial>(t => t.Id == trialId).Any(t => t.IsTrialProcessConfirmed == true))
|
||||
{
|
||||
|
||||
//只要有系统标准的文档 说明同步过了
|
||||
var trialDocCount = _trialEmailNoticeConfigRepository.Where(t =>/* t.CriterionTypeEnum == criterionTypeEnum &&*/ t.TrialId == trialId && t.TrialReadingCriterionId != null).Count();
|
||||
|
||||
if (trialDocCount == 0)
|
||||
{
|
||||
//找到确认的标准
|
||||
var list= await _repository.Where<ReadingQuestionCriterionTrial>(t => t.TrialId == trialId && t.IsConfirm).Select(t => new { t.CriterionType, TrialReadingCriterionId = t.Id }).ToListAsync();
|
||||
|
||||
var confirmedCriterionTypeList = list.Select(t => (CriterionType?) t.CriterionType).ToList();
|
||||
|
||||
var docmentList = _repository.Where<CommonDocument>(t => confirmedCriterionTypeList.Contains(t.CriterionTypeEnum) ).Select(t => new { t.Path, t.Name, t.Code, t.BusinessScenarioEnum ,t.CriterionTypeEnum}).ToList();
|
||||
|
||||
|
||||
foreach (var item in docmentList)
|
||||
{
|
||||
await _trialEmailNoticeConfigRepository.AddAsync(new TrialEmailNoticeConfig() { TrialId=trialId, CriterionTypeEnum= criterionTypeEnum.Value, FileName = item.Name, FilePath = item.Path, BusinessScenarioEnum = item.BusinessScenarioEnum, Code = item.Code });
|
||||
await _trialEmailNoticeConfigRepository.AddAsync(new TrialEmailNoticeConfig()
|
||||
{
|
||||
TrialId = trialId,
|
||||
TrialReadingCriterionId= list.Where(t=>t.CriterionType==item.CriterionTypeEnum).FirstOrDefault()?.TrialReadingCriterionId,
|
||||
FileName = item.Name,
|
||||
FilePath = item.Path,
|
||||
BusinessScenarioEnum = item.BusinessScenarioEnum,
|
||||
Code = item.Code
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
await _trialEmailNoticeConfigRepository.SaveChangesAsync();
|
||||
}
|
||||
|
||||
|
@ -814,11 +834,10 @@ namespace IRaCIS.Core.Application.Service
|
|||
public async Task<List<TrialEmailNoticeConfigView>> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery)
|
||||
{
|
||||
|
||||
await SyncSystemEmainCofigDocListAsync(inQuery.TrialId, inQuery.CriterionTypeEnum);
|
||||
|
||||
var trialEmailNoticeConfigQueryable = _trialEmailNoticeConfigRepository.Where(t => t.TrialId == inQuery.TrialId)
|
||||
.WhereIf(inQuery.CriterionTypeEnum != null, t => t.CriterionTypeEnum == inQuery.CriterionTypeEnum)
|
||||
.WhereIf(inQuery.CriterionTypeEnum == null, t => t.CriterionTypeEnum == null)
|
||||
.WhereIf(inQuery.IsDistinguishCriteria == false, t => t.TrialReadingCriterionId == null)
|
||||
.WhereIf(inQuery.TrialReadingCriterionId != null, t => t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)
|
||||
.WhereIf(inQuery.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == inQuery.BusinessScenarioEnum)
|
||||
.ProjectTo<TrialEmailNoticeConfigView>(_mapper.ConfigurationProvider);
|
||||
|
||||
|
@ -894,7 +913,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
private async Task TestEmailConfigAsync(TrialEmailNoticeConfigAddOrEdit config)
|
||||
{
|
||||
var toUserList = await _repository.Where<TrialUser>(t => t.TrialId == config.TrialId ).WhereIf(config.ToUserTypeList!=null,t=> config.ToUserTypeList.Contains(t.User.UserTypeEnum)).Select(t => new { t.User.EMail, t.User.FullName }).ToListAsync();
|
||||
var toUserList = await _repository.Where<TrialUser>(t => t.TrialId == config.TrialId && config.ToUserTypeList.Contains(t.User.UserTypeEnum)).Select(t => new { t.User.EMail, t.User.FullName }).ToListAsync();
|
||||
|
||||
|
||||
if (!config.FromEmail.Contains("@") || string.IsNullOrEmpty(config.FromEmail))
|
||||
|
|
|
@ -73,6 +73,9 @@ namespace IRaCIS.Core.Domain.Models
|
|||
|
||||
public CriterionType? CriterionTypeEnum { get; set; }
|
||||
|
||||
|
||||
public Guid? TrialReadingCriterionId { get; set; }
|
||||
|
||||
[Required]
|
||||
public string FilePath { get; set; } = string.Empty;
|
||||
|
||||
|
|
Loading…
Reference in New Issue