diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs index ae9de60e8..33503de6f 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs @@ -6,9 +6,11 @@ using IRaCIS.Core.Application.Contracts.DTO; using IRaCIS.Core.Application.Filter; using IRaCIS.Core.Domain.Models; using IRaCIS.Core.Domain.Share; +using IRaCIS.Core.Infrastructure.Extention; using MassTransit.Serialization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore.Storage.Json; +using NPOI.SS.Formula.Functions; using System; namespace IRaCIS.Core.Application.Service @@ -315,12 +317,16 @@ namespace IRaCIS.Core.Application.Service } - public async Task> GetTrialUserRoleList(Guid trialId, UserTypeEnum? userTypeEnum) + public async Task> GetTrialUserRoleList(Guid trialId, Guid? subjectVisitId, UserTypeEnum? userTypeEnum) { + //复审指派需要过滤初审的人 + var firstUserId = await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).Select(t => t.PreliminaryAuditUserId).FirstOrDefaultAsync(); + var list = await _trialIdentityUserRepository.Where(t => t.TrialId == trialId) .SelectMany(t => t.TrialUserRoleList) .WhereIf(userTypeEnum != null, t => t.UserRole.UserTypeEnum == userTypeEnum) .Where(t => t.UserRole.Id != _userInfo.UserRoleId)//iQC 指派过滤自己 + .WhereIf(firstUserId != null, t => t.UserRole.Id != firstUserId)//iQC 指派过滤自己 .Select(t => new TrialSelectUserBasicInfo() { FullName = t.TrialUser.IdentityUser.FullName,