导出Excel 提交
parent
fa924736a8
commit
62b6d4176b
|
@ -1131,7 +1131,7 @@
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
<exception cref="T:System.Exception"></exception>
|
<exception cref="T:System.Exception"></exception>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Services.TrialMaintenanceService.TrialSiteUserSummaryListExport(System.Guid,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialSiteSurvey},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialSiteUserSurvey})">
|
<member name="M:IRaCIS.Core.Application.Services.TrialMaintenanceService.TrialSiteUserSummaryListExport(IRaCIS.Core.Application.Contracts.TrialSiteUserSurveyExportQueryDto,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialSiteSurvey},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialSiteUserSurvey})">
|
||||||
<summary>
|
<summary>
|
||||||
Site用户汇总表导出
|
Site用户汇总表导出
|
||||||
</summary>
|
</summary>
|
||||||
|
|
|
@ -63,6 +63,29 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class TrialSiteUserSurveyExportQueryDto
|
||||||
|
{
|
||||||
|
[NotDefault]
|
||||||
|
public Guid TrialId { get; set; }
|
||||||
|
public Guid? SiteId { get; set; }
|
||||||
|
|
||||||
|
public Guid? UserTypeId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public bool? IsGenerateAccount { get; set; }
|
||||||
|
public Guid? TrialRoleNameId { get; set; }
|
||||||
|
|
||||||
|
public TrialSiteUserStateEnum? State { get; set; }
|
||||||
|
|
||||||
|
public string FormWriterKeyInfo { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
|
||||||
|
public string UserName { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public string OrganizationName { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public class TrialSiteUserSurveyAllQuery : PageInput
|
public class TrialSiteUserSurveyAllQuery : PageInput
|
||||||
{
|
{
|
||||||
|
|
|
@ -71,24 +71,34 @@ namespace IRaCIS.Core.Application.Services
|
||||||
/// <param name="_trialSiteUserSurveyRepository"></param>
|
/// <param name="_trialSiteUserSurveyRepository"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <exception cref="Exception"></exception>
|
/// <exception cref="Exception"></exception>
|
||||||
[HttpGet, Route("{trialId:guid}")]
|
[HttpPost]
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
public async Task<IActionResult> TrialSiteUserSummaryListExport(Guid trialId,
|
public async Task<IActionResult> TrialSiteUserSummaryListExport(TrialSiteUserSurveyExportQueryDto queryParam,
|
||||||
[FromServices] IRepository<CommonDocument> _commonDocumentRepository,
|
[FromServices] IRepository<CommonDocument> _commonDocumentRepository,
|
||||||
[FromServices] IRepository<TrialSiteSurvey> _trialSiteSurveyRepository,
|
[FromServices] IRepository<TrialSiteSurvey> _trialSiteSurveyRepository,
|
||||||
[FromServices] IRepository<TrialSiteUserSurvey> _trialSiteUserSurveyRepository
|
[FromServices] IRepository<TrialSiteUserSurvey> _trialSiteUserSurveyRepository
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
|
||||||
var data = (await _trialRepository.Where(t => t.Id == trialId).IgnoreQueryFilters().ProjectTo<TrialSiteUserSummaryExportDto>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
|
var data = (await _trialRepository.Where(t => t.Id == queryParam.TrialId).IgnoreQueryFilters().ProjectTo<TrialSiteUserSummaryExportDto>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
|
||||||
|
|
||||||
var groupSelectIdQuery =
|
var groupSelectIdQuery =
|
||||||
_trialSiteSurveyRepository.Where(t => t.TrialId == trialId)
|
_trialSiteSurveyRepository.Where(t => t.TrialId == queryParam.TrialId)
|
||||||
|
.WhereIf(queryParam.SiteId != null, t => t.SiteId == queryParam.SiteId)
|
||||||
|
.WhereIf(!string.IsNullOrEmpty(queryParam.FormWriterKeyInfo), t => (t.UserName).Contains(queryParam.FormWriterKeyInfo) || t.Email.Contains(queryParam.FormWriterKeyInfo) || t.Phone.Contains(queryParam.FormWriterKeyInfo))
|
||||||
.GroupBy(t => t.SiteId)
|
.GroupBy(t => t.SiteId)
|
||||||
.Select(g => g.OrderByDescending(u => u.CreateTime).Select(t => t.Id).First());
|
.Select(g => g.OrderByDescending(u => u.CreateTime).Select(t => t.Id).First());
|
||||||
|
|
||||||
|
|
||||||
var query = _trialSiteUserSurveyRepository
|
var query = _trialSiteUserSurveyRepository
|
||||||
.Where(t => groupSelectIdQuery.Contains(t.TrialSiteSurveyId))
|
.Where(t => groupSelectIdQuery.Contains(t.TrialSiteSurveyId))
|
||||||
|
.WhereIf(queryParam.UserTypeId != null, t => t.UserTypeId == queryParam.UserTypeId)
|
||||||
|
.WhereIf(queryParam.IsGenerateAccount != null, t => t.IsGenerateAccount == queryParam.IsGenerateAccount)
|
||||||
|
.WhereIf(queryParam.TrialRoleNameId != null, t => t.TrialRoleNameId == queryParam.TrialRoleNameId)
|
||||||
|
.WhereIf(queryParam.State != null && queryParam.State != TrialSiteUserStateEnum.OverTime, t => t.InviteState == queryParam.State)
|
||||||
|
.WhereIf(queryParam.State != null && queryParam.State == TrialSiteUserStateEnum.OverTime, t => t.InviteState == TrialSiteUserStateEnum.HasSend && t.ExpireTime < DateTime.Now)
|
||||||
|
.WhereIf(!string.IsNullOrEmpty(queryParam.UserName), t => (t.LastName + " / " + t.FirstName).Contains(queryParam.UserName))
|
||||||
|
.WhereIf(!string.IsNullOrEmpty(queryParam.OrganizationName), t => t.OrganizationName.Contains(queryParam.OrganizationName))
|
||||||
.ProjectTo<TrialSiteUserSummaryDto>(_mapper.ConfigurationProvider);
|
.ProjectTo<TrialSiteUserSummaryDto>(_mapper.ConfigurationProvider);
|
||||||
|
|
||||||
data.TrialSiteUserList = await query.ToListAsync();
|
data.TrialSiteUserList = await query.ToListAsync();
|
||||||
|
|
|
@ -221,11 +221,14 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CreateMap<Trial, TrialSiteUserSummaryExportDto>();
|
CreateMap<Trial, TrialSiteUserSummaryExportDto>()
|
||||||
|
.ForMember(t => t.TrialSiteUserList, u => u.Ignore());
|
||||||
|
|
||||||
CreateMap<TrialSiteUserSurvey, TrialSiteUserSummaryDto>()
|
CreateMap<TrialSiteUserSurvey, TrialSiteUserSummaryDto>()
|
||||||
.ForMember(t => t.TrialRoleName, u => u.MapFrom(d => d.TrialRoleName.Value))
|
.ForMember(t => t.TrialRoleName, u => u.MapFrom(d => d.TrialRoleName.Value))
|
||||||
.ForMember(d => d.UserType, u => u.MapFrom(s => s.UserTypeRole.UserTypeShortName));
|
.ForMember(d => d.UserType, u => u.MapFrom(s => s.UserTypeRole.UserTypeShortName))
|
||||||
|
.ForMember(t => t.TrialSiteCode, u => u.MapFrom(d => d.TrialSiteSurvey.TrialSite.TrialSiteCode))
|
||||||
|
.ForMember(d => d.TrialSiteAliasName, u => u.MapFrom(s => s.TrialSiteSurvey.TrialSite.TrialSiteAliasName));
|
||||||
|
|
||||||
|
|
||||||
CreateMap<Trial, TrialSiteSurveyStat>()
|
CreateMap<Trial, TrialSiteSurveyStat>()
|
||||||
|
|
Loading…
Reference in New Issue