spm 逻辑修改
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
517c799e00
commit
8303f9faae
|
@ -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 直接退回的时候影响
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue