From 54d17f2e24e2e521cefef36a5e8956ae712fc7f0 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Wed, 25 Dec 2024 13:07:57 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E4=B8=AD=E5=BF=83=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 12 +-- .../TrialSiteUser/DTO/TrialSiteViewModel.cs | 5 +- .../TrialSiteUser/DTO/UserTrialViewModel.cs | 26 +++++- .../Service/TrialSiteUser/TrialSiteService.cs | 79 +++++++++---------- .../Service/TrialSiteUser/_MapConfig.cs | 8 +- .../Service/TrialSiteUser/_MapConfig2.cs | 6 +- 6 files changed, 80 insertions(+), 56 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index db2ee53fe..d9f65053f 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -16205,6 +16205,12 @@ 获取某一Site下面的负责的CRC列表 + + 批量添加Site下 CRC的负责人 + + + 删除CRC人员 + Pannel 进去 SiteTab @@ -16224,12 +16230,6 @@ - - 批量添加Site下 CRC的负责人 - - - 删除CRC人员 - 获取项目下的 site 下拉框数据 CRC只看到他负责的 diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialSiteViewModel.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialSiteViewModel.cs index 8c44c703c..e09765994 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialSiteViewModel.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialSiteViewModel.cs @@ -73,8 +73,6 @@ namespace IRaCIS.Core.Application.Contracts.DTO [NotDefault] public Guid TrialSiteId { get; set; } public Guid UserId { get; set; } - public DateTime? CreateTime { get; set; } = DateTime.Now; - public string UserRealName { get; set; } = String.Empty; } @@ -94,6 +92,9 @@ namespace IRaCIS.Core.Application.Contracts.DTO public string Phone { get; set; } = String.Empty; public string EMail { get; set; } = string.Empty; + public DateTime? CreateTime { get; set; } = DateTime.Now; + public string UserRealName { get; set; } = String.Empty; + } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/UserTrialViewModel.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/UserTrialViewModel.cs index 64276c9fc..09afa1397 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/UserTrialViewModel.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/UserTrialViewModel.cs @@ -13,7 +13,31 @@ namespace IRaCIS.Application.Contracts public class TrialSiteCRCListDTO { + public Guid Id { get; set; } + public Guid TrialId { get; set; } + + public Guid UserId { get; set; } + + public Guid IdentityUserId { get; set; } + + public string UserType { get; set; } + + public string Phone { get; set; } = String.Empty; + + public string EMail { get; set; } = string.Empty; + + public string OrganizationName { get; set; } = String.Empty; + + public string UserName { get; set; } = String.Empty; + + public string FullName { get; set; } = String.Empty; + + public bool IsDeleted { get; set; } + + public DateTime? DeletedTime { get; set; } + public DateTime UpdateTime { get; set; } + public DateTime CreateTime { get; set; } } public class UserTrialDTO : UserTrialCommand @@ -364,7 +388,7 @@ namespace IRaCIS.Application.Contracts public Guid TrialSiteId { get; set; } - public int? UserCount { get; set; } + //public int? UserCount { get; set; } public string TrialSiteCode { get; set; } = String.Empty; diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs index d5b320fd0..6e3cdc5e9 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs @@ -22,16 +22,51 @@ namespace IRaCIS.Core.Application.Services /// 获取某一Site下面的负责的CRC列表 [HttpGet, Route("{trialId:guid}/{siteId:guid}")] - public async Task> GetTrialSiteCRCList(Guid trialId, Guid siteId) + public async Task> GetTrialSiteCRCList(Guid trialId, Guid siteId) { var query = _trialSiteUserRoleRepository.Where(t => t.TrialId == trialId && t.TrialSiteId == siteId).IgnoreQueryFilters() - .ProjectTo(_mapper.ConfigurationProvider); + .ProjectTo(_mapper.ConfigurationProvider); return await query.ToListAsync(); } + /// 批量添加Site下 CRC的负责人 + [HttpPost] + [TrialGlobalLimit("AfterStopCannNotOpt")] + //[Authorize(Policy = IRaCISPolicy.PM_APM)] + public async Task AssignSiteCRC(List trialSiteCRCList) + { + var addArray = _mapper.Map>(trialSiteCRCList); + + await _trialSiteUserRoleRepository.AddRangeAsync(addArray); + + await _trialSiteUserRoleRepository.SaveChangesAsync(); + + return ResponseOutput.Result(true); + } + + /// 删除CRC人员 + [HttpDelete, Route("{id:guid}/{trialId:guid}/{isDelete:bool}")] + [TrialGlobalLimit("AfterStopCannNotOpt")] + //[Authorize(Policy = IRaCISPolicy.PM_APM)] + public async Task DeleteSiteCRC(Guid id, bool isDelete) + { + + + await _trialSiteUserRoleRepository.UpdatePartialFromQueryAsync(t => t.Id == id, u => new TrialSiteUserRole() { IsDeleted = isDelete, DeletedTime = isDelete ? DateTime.Now : null }, true, true); + + //删除又启用改授权时间 + if (isDelete == false) + { + await _trialSiteUserRoleRepository.BatchUpdateNoTrackingAsync(t => t.Id == id, u => new TrialSiteUserRole() { CreateTime = DateTime.Now }); + } + + return ResponseOutput.Ok(); + } + + #endregion @@ -208,46 +243,6 @@ namespace IRaCIS.Core.Application.Services - /// 批量添加Site下 CRC的负责人 - [HttpPost] - [TrialGlobalLimit("AfterStopCannNotOpt")] - //[Authorize(Policy = IRaCISPolicy.PM_APM)] - public async Task AssignSiteCRC(List trialSiteCRCList) - { - var addArray = _mapper.Map>(trialSiteCRCList); - - await _trialSiteUserRoleRepository.AddRangeAsync(addArray); - - await _trialSiteUserRoleRepository.SaveChangesAsync(); - return ResponseOutput.Result(true); - } - - /// 删除CRC人员 - [HttpDelete, Route("{id:guid}/{trialId:guid}/{isDelete:bool}")] - [TrialGlobalLimit("AfterStopCannNotOpt")] - //[Authorize(Policy = IRaCISPolicy.PM_APM)] - public async Task DeleteSiteCRC(Guid id, bool isDelete) - { - - - await _trialSiteUserRoleRepository.UpdatePartialFromQueryAsync(t => t.Id == id, u => new TrialSiteUserRole() { IsDeleted = isDelete, DeletedTime = isDelete ? DateTime.Now : null }, true, true); - - //删除又启用改授权时间 - if (isDelete == false) - { - await _trialSiteUserRoleRepository.BatchUpdateNoTrackingAsync(t => t.Id == id, u => new TrialSiteUserRole() { CreateTime = DateTime.Now }); - } - - ////不跟踪 - //await _trialSiteUserRoleRepository.ExecuteUpdateAsync(t => t.Id == id, s=>s.SetProperty(t=>t.IsDeleted,u=>isDelete) - // .SetProperty(t=>t.DeletedTime,u=> isDelete ? DateTime.Now : null) - // .SetProperty(t=>t.CreateTime,u=>isDelete?u.CreateTime:DateTime.Now)); - - - - - return ResponseOutput.Ok(); - } /// /// 获取项目下的 site 下拉框数据 CRC只看到他负责的 diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs index 4545dcfd2..4e95d6fab 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs @@ -126,8 +126,8 @@ namespace IRaCIS.Core.Application.Service .ForMember(d => d.TrialSiteId, u => u.MapFrom(s => s.Id)) .ForMember(d => d.VisitCount, u => u.MapFrom(s => s.SubjectVisitList.Count())) .ForMember(d => d.SubjectCount, u => u.MapFrom(s => s.SubjectList.Count())) - .ForMember(d => d.UserCount, u => u.MapFrom(s => s.CRCUserList.Count())) - .ForMember(d => d.UserNameList, u => u.MapFrom(s => s.CRCUserList.Where(t => t.IsDeleted == false).Select(u => u.UserRole.FullName))); + //.ForMember(d => d.UserCount, u => u.MapFrom(s => s.CRCUserList.Count())) + .ForMember(d => d.UserNameList, u => u.MapFrom(s => s.CRCUserList.Where(t => t.IsDeleted == false).Select(u => u.UserRole.IdentityUser.FullName))); #endregion @@ -140,10 +140,10 @@ namespace IRaCIS.Core.Application.Service .ForMember(d => d.UpdateTime, u => u.MapFrom(s => s.UpdateTime)) //.ForMember(d => d.Site, u => u.MapFrom(s => isEn_Us ?s.Site.SiteName:s.Site.SiteNameCN)) //.ForMember(d => d.Hospital, u => u.MapFrom(s => s.Site.Hospital.HospitalName)) - .ForMember(d => d.UserCount, u => u.MapFrom(s => s.CRCUserList.Count())) + //.ForMember(d => d.UserCount, u => u.MapFrom(s => s.CRCUserList.Count())) .ForMember(d => d.VisitCount, u => u.MapFrom(s => s.SubjectVisitList.Count())) .ForMember(d => d.SubjectCount, u => u.MapFrom(s => s.SubjectList.Count())) - .ForMember(d => d.UserNameList, u => u.MapFrom(s => s.CRCUserList.Where(t => t.IsDeleted == false).Select(u => u.UserRole.FullName))) + .ForMember(d => d.UserNameList, u => u.MapFrom(s => s.CRCUserList.Where(t => t.IsDeleted == false).Select(u => u.UserRole.IdentityUser.FullName))) .ForMember(d => d.CallingAEList, u => u.MapFrom(s => s.TrialSiteDicomAEList.Select(u => u.CallingAE))); //CreateMap(); diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig2.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig2.cs index 24be0e2fc..e509f1513 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig2.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig2.cs @@ -58,10 +58,14 @@ namespace IRaCIS.Core.Application.Service CreateMap(); - + CreateMap() + .ForMember(t => t.IdentityUserId, u => u.MapFrom(c => c.UserRole.IdentityUserId)) + .ForMember(t => t.UserType, u => u.MapFrom(c => c.UserRole.UserTypeRole.UserTypeShortName)); + + } }