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>
<returns></returns>
</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)">
<summary>
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 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<VisitTask> _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();
}