From 8303f9faaeea84bcfb5248f6e253ee0fded9f588 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Fri, 3 Jan 2025 15:09:56 +0800 Subject: [PATCH] =?UTF-8?q?spm=20=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 8 -- .../Service/Allocation/VisitTaskService.cs | 81 ++++++++----------- 2 files changed, 34 insertions(+), 55 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 7a0f169d3..a464a5c18 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -489,14 +489,6 @@ - - - 重阅原任务跟踪处理 - - - - - PM 申请重阅 被同意 或者 PM 直接退回的时候影响 diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index a147ff0c8..c6670ca53 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -1325,6 +1325,12 @@ public class VisitTaskService(IRepository _visitTaskRepository, var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == trialReadingCriterionId).Select(x => new { x.ReadingTool, x.IsAutoCreate, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync()).IfNullThrowException(); + var isSPMJoinReReadingApproval = _trialRepository.Any(t => t.Id == trialId && t.IsSPMJoinReReadingApproval); + + var hasSPMOrCPM = await _trialRepository.Where(t => t.Id == trialId).SelectMany(t => t.TrialIdentityUserList).AnyAsync(t => t.TrialUserRoleList.Any(t => t.UserRole.UserTypeEnum == UserTypeEnum.SPM || t.UserRole.UserTypeEnum == UserTypeEnum.CPM)); + + var isSPMjoin = isSPMJoinReReadingApproval && hasSPMOrCPM; + foreach (var task in taskList) { @@ -1486,60 +1492,41 @@ public class VisitTaskService(IRepository _visitTaskRepository, } - - var rootReReadingTaskId = _visitTaskReReadingRepository.Where(t => t.NewReReadingTaskId == task.Id).Select(u => u.RootReReadingTaskId).FirstOrDefault(); - - //添加申请记录 - var visitTaskReReading = await _visitTaskReReadingRepository.AddAsync(new VisitTaskReReading() + //pm 申请重阅,并且SPM不参与,那么不增加申请记录,直接退回 + if (!isSPMjoin && IsPMOrAPm()) { - TrialId = applyReReadingCommand.TrialId, - RootReReadingTaskId = rootReReadingTaskId == Guid.Empty ? task.Id : rootReReadingTaskId, - OriginalReReadingTaskId = task.Id, - RequestReReadingTime = DateTime.Now, - RequestReReadingUserId = _userInfo.UserRoleId, - IsCopyOrigenalForms = applyReReadingCommand.IsCopyOrigenalForms, - IsCopyFollowForms = applyReReadingCommand.IsCopyFollowForms, - RequestReReadingReason = applyReReadingCommand.RequestReReadingReason, - RequestReReadingType = applyReReadingCommand.RequestReReadingType, + //不想看到申请记录 + foreach (var item in applyReReadingCommand.TaskIdList) + { + await AgreeReReading(item, RequestReReadingType.TrialGroupApply, null); + } + + } + { + var rootReReadingTaskId = _visitTaskReReadingRepository.Where(t => t.NewReReadingTaskId == task.Id).Select(u => u.RootReReadingTaskId).FirstOrDefault(); + + //添加申请记录 + var visitTaskReReading = await _visitTaskReReadingRepository.AddAsync(new VisitTaskReReading() + { + TrialId = applyReReadingCommand.TrialId, + RootReReadingTaskId = rootReReadingTaskId == Guid.Empty ? task.Id : rootReReadingTaskId, + OriginalReReadingTaskId = task.Id, + RequestReReadingTime = DateTime.Now, + RequestReReadingUserId = _userInfo.UserRoleId, + IsCopyOrigenalForms = applyReReadingCommand.IsCopyOrigenalForms, + IsCopyFollowForms = applyReReadingCommand.IsCopyFollowForms, + RequestReReadingReason = applyReReadingCommand.RequestReReadingReason, + RequestReReadingType = applyReReadingCommand.RequestReReadingType, + + }); + } + - }); } await _visitTaskRepository.SaveChangesAsync(); - #region 处理SPM 是否参与审批流程 - - var isSPMJoinReReadingApproval = _trialRepository.Any(t => t.Id == trialId && t.IsSPMJoinReReadingApproval); - - var hasSPMOrCPM = await _trialRepository.Where(t => t.Id == trialId).SelectMany(t => t.TrialIdentityUserList).AnyAsync(t => t.TrialUserRoleList.Any(t => t.UserRole.UserTypeEnum == UserTypeEnum.SPM || t.UserRole.UserTypeEnum == UserTypeEnum.CPM)); - - var isSPMjoin = isSPMJoinReReadingApproval && hasSPMOrCPM; - - if (!isSPMjoin && IsPMOrAPm()) - { - //var requestRecordList = await _visitTaskReReadingRepository.Where(t => applyReReadingCommand.TaskIdList.Contains(t.OriginalReReadingTaskId) && t.RequestReReadingUserId == _userInfo.UserRoleId).ToListAsync(); - - //await ConfirmReReading(new ConfirmReReadingCommand() - //{ - // TrialId = trialId, - // RequestReReadingResultEnum = RequestReReadingResult.Agree, - // ConfirmReReadingList = requestRecordList.Select(t => new ConfirmReReadingDTO() { Id = t.Id, OriginalReReadingTaskId = t.OriginalReReadingTaskId }).ToList() - //}); - - //不想看到申请记录 - - foreach (var item in applyReReadingCommand.TaskIdList) - { - await AgreeReReading(item, RequestReReadingType.TrialGroupApply, null); - - } - - } - - #endregion - - return ResponseOutput.Ok(); }