spm 逻辑修改
continuous-integration/drone/push Build is passing Details

Uat_IRC_Net8
hang 2025-01-03 15:09:56 +08:00
parent 517c799e00
commit 8303f9faae
2 changed files with 34 additions and 55 deletions

View File

@ -489,14 +489,6 @@
<param name="applyReReadingCommand"></param> <param name="applyReReadingCommand"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:IRaCIS.Core.Application.Service.Allocation.VisitTaskService.ReReadingTaskTrackingDeal(IRaCIS.Core.Domain.Models.VisitTask,IRaCIS.Core.Application.ViewModel.ConfirmReReadingCommand)">
<summary>
重阅原任务跟踪处理
</summary>
<param name="origenalTask"></param>
<param name="agreeReReadingCommand"></param>
<exception cref="T:IRaCIS.Core.Infrastructure.BusinessValidationFailedException"></exception>
</member>
<member name="M:IRaCIS.Core.Application.Service.Allocation.VisitTaskService.PMReReadingConfirmOrBackInfluenceAnalysisAsync(System.Guid)"> <member name="M:IRaCIS.Core.Application.Service.Allocation.VisitTaskService.PMReReadingConfirmOrBackInfluenceAnalysisAsync(System.Guid)">
<summary> <summary>
PM 申请重阅 被同意 或者 PM 直接退回的时候影响 PM 申请重阅 被同意 或者 PM 直接退回的时候影响

View File

@ -1325,6 +1325,12 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == trialReadingCriterionId).Select(x => new { x.ReadingTool, x.IsAutoCreate, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync()).IfNullThrowException(); 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) foreach (var task in taskList)
{ {
@ -1486,60 +1492,41 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
} }
//pm 申请重阅并且SPM不参与那么不增加申请记录直接退回
var rootReReadingTaskId = _visitTaskReReadingRepository.Where(t => t.NewReReadingTaskId == task.Id).Select(u => u.RootReReadingTaskId).FirstOrDefault(); if (!isSPMjoin && IsPMOrAPm())
//添加申请记录
var visitTaskReReading = await _visitTaskReReadingRepository.AddAsync(new VisitTaskReReading()
{ {
TrialId = applyReReadingCommand.TrialId, //不想看到申请记录
RootReReadingTaskId = rootReReadingTaskId == Guid.Empty ? task.Id : rootReReadingTaskId, foreach (var item in applyReReadingCommand.TaskIdList)
OriginalReReadingTaskId = task.Id, {
RequestReReadingTime = DateTime.Now, await AgreeReReading(item, RequestReReadingType.TrialGroupApply, null);
RequestReReadingUserId = _userInfo.UserRoleId, }
IsCopyOrigenalForms = applyReReadingCommand.IsCopyOrigenalForms,
IsCopyFollowForms = applyReReadingCommand.IsCopyFollowForms, }
RequestReReadingReason = applyReReadingCommand.RequestReReadingReason, {
RequestReReadingType = applyReReadingCommand.RequestReReadingType, 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(); 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(); return ResponseOutput.Ok();
} }