From bbb3a41293d312183e3f030d3371d56cb3770605 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 7 Jan 2025 15:26:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=AD=E5=BF=83=E4=BA=BA=E5=91=98=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SiteSurvey/TrialSiteSurveyService.cs | 33 +++++++++++++++++++ .../SiteSurvey/TrialSiteUserSurvey.cs | 5 ++- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs index 8a8181101..b83e1601e 100644 --- a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs +++ b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs @@ -683,8 +683,10 @@ namespace IRaCIS.Core.Application.Contracts private async Task UnlockSyncSiteUserAsync(Guid trialId, Guid siteId, Guid trialSiteSurveyId, List userList) { + //获取调研表用户的数据 var existList = await _trialSiteUserSurveyRepository.Where(t => t.IsHistoryUser && t.TrialSiteSurvey.TrialId == trialId && t.TrialSiteSurvey.TrialSiteId == siteId, true).ToListAsync(); + //遍历中心用户最新的状态 foreach (var item in userList) { var find = existList.FirstOrDefault(t => t.SystemUserId == item.SystemUserId); @@ -692,11 +694,13 @@ namespace IRaCIS.Core.Application.Contracts //不存在就加入 if (find == null) { + //中心用户不在调研表里面,那么就添加到历史人员里面 item.TrialSiteSurveyId = trialSiteSurveyId; await _trialSiteUserSurveyRepository.AddAsync(item); } else { + //中心用户在调研表里面,那么就更新调研表用户的状态 find.IsHistoryUserOriginDeleted = item.IsHistoryUserOriginDeleted; } } @@ -864,6 +868,9 @@ namespace IRaCIS.Core.Application.Contracts var existSysUser = await _identityUserRepository.Where(t => t.EMail == userEmail, true).Include(t => t.UserRoleList).FirstOrDefaultAsync(); + #region 人员生成 + + if (existSysUser != null) { @@ -941,11 +948,14 @@ namespace IRaCIS.Core.Application.Contracts } + #endregion + await _identityUserRepository.SaveChangesAsync(); var identityUserId = existSysUser.Id; + #region 项目加入 var findTrialUser = await _trialIdentityUserRepository.Where(t => t.TrialId == trialId && t.IdentityUserId == identityUserId, true, true).Include(t => t.TrialUserRoleList).ThenInclude(t => t.UserRole).FirstOrDefaultAsync(); @@ -1011,6 +1021,29 @@ namespace IRaCIS.Core.Application.Contracts } } + #endregion + + #region 中心加入 + + foreach (var userTypeId in userTypeIdList) + { + var findUserRole = existSysUser.UserRoleList.Where(t => t.UserTypeId == userTypeId).FirstOrDefault(); + + var findTrialSiteUserRole = await _trialSiteUserRoleRepository.Where(t => t.TrialId == trialId && t.TrialSiteId == trialSiteId && t.UserId == findUserRole.Id, true, true).FirstOrDefaultAsync(); + + if (findTrialSiteUserRole != null) + { + findTrialSiteUserRole.IsDeleted = false; + findTrialSiteUserRole.DeletedTime = null; + + } + else + { + await _trialSiteUserRoleRepository.AddAsync(new TrialSiteUserRole() { TrialId = trialId, TrialSiteId = trialSiteId, UserId = findUserRole.Id }); + } + } + + #endregion if (isNeedSendEmail) { diff --git a/IRaCIS.Core.Domain/SiteSurvey/TrialSiteUserSurvey.cs b/IRaCIS.Core.Domain/SiteSurvey/TrialSiteUserSurvey.cs index cd8dc791a..df88dbed4 100644 --- a/IRaCIS.Core.Domain/SiteSurvey/TrialSiteUserSurvey.cs +++ b/IRaCIS.Core.Domain/SiteSurvey/TrialSiteUserSurvey.cs @@ -42,10 +42,13 @@ public class TrialSiteUserSurvey : BaseFullAuditEntity /// public bool IsHistoryUser { get; set; } + /// + /// 调研设置用户退出 + /// public bool? IsHistoryUserDeleted { get; set; } /// - /// 中心人员删除了 + /// 中心人员设置退出了 /// public bool? IsHistoryUserOriginDeleted { get; set; } }