IR 拷贝原始表单

Uat_Study
hang 2022-06-30 15:56:15 +08:00
parent 242478fb2f
commit ff52842964
3 changed files with 33 additions and 19 deletions

View File

@ -504,6 +504,8 @@ namespace IRaCIS.Core.Application.ViewModel
public Guid TrialId { get; set; } public Guid TrialId { get; set; }
public bool IsCopyOrigenalForms { get; set; }
public RequestReReadingType RequestReReadingType { get; set; } public RequestReReadingType RequestReReadingType { get; set; }
public string RequestReReadingReason { get; set; } = string.Empty; public string RequestReReadingReason { get; set; } = string.Empty;

View File

@ -32,10 +32,12 @@ namespace IRaCIS.Core.Application.Service
private readonly IRepository<VisitTaskReReading> _visitTaskReReadingRepository; private readonly IRepository<VisitTaskReReading> _visitTaskReReadingRepository;
private readonly IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository;
public VisitTaskService(IRepository<VisitTask> visitTaskRepository, IRepository<Trial> trialRepository, IRepository<SubjectVisit> subjectVisitRepository, public VisitTaskService(IRepository<VisitTask> visitTaskRepository, IRepository<Trial> trialRepository, IRepository<SubjectVisit> subjectVisitRepository,
IRepository<Subject> subjectRepository, IRepository<SubjectUser> subjectUserRepository, IRepository<TaskAllocationRule> taskAllocationRuleRepository, IRepository<Subject> subjectRepository, IRepository<SubjectUser> subjectUserRepository, IRepository<TaskAllocationRule> taskAllocationRuleRepository,
IRepository<ReadModule> readModuleRepository, IRepository<VisitTaskReReading> visitTaskReReadingRepository IRepository<ReadModule> readModuleRepository, IRepository<VisitTaskReReading> visitTaskReReadingRepository, IRepository<ReadingTaskQuestionAnswer> readingTaskQuestionAnswerRepository
) )
{ {
_taskAllocationRuleRepository = taskAllocationRuleRepository; _taskAllocationRuleRepository = taskAllocationRuleRepository;
@ -46,6 +48,7 @@ namespace IRaCIS.Core.Application.Service
_subjectUserRepository = subjectUserRepository; _subjectUserRepository = subjectUserRepository;
_readModuleRepository = readModuleRepository; _readModuleRepository = readModuleRepository;
_visitTaskReReadingRepository = visitTaskReReadingRepository; _visitTaskReReadingRepository = visitTaskReReadingRepository;
_readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository;
} }
@ -1044,23 +1047,29 @@ namespace IRaCIS.Core.Application.Service
foreach (var item in agreeReReadingCommand.ConfirmReReadingList) foreach (var item in agreeReReadingCommand.ConfirmReReadingList)
{ {
await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == item.OriginalReReadingTaskId, u => new VisitTask() //await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == item.OriginalReReadingTaskId, u => new VisitTask()
{ //{
ReReadingApplyState = (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree ? ReReadingApplyState.Agree : ReReadingApplyState.Reject), // ReReadingApplyState = (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree ? ReReadingApplyState.Agree : ReReadingApplyState.Reject),
TaskState = (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree ? TaskState.HaveReturned : TaskState.Effect) // TaskState = (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree ? TaskState.HaveReturned : TaskState.Effect)
}); //});
var origenalTask = (await _visitTaskRepository.Where(t => item.OriginalReReadingTaskId == t.Id, true).FirstOrDefaultAsync()).IfNullThrowException();
//更新原始任务
origenalTask.ReReadingApplyState = (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree ? ReReadingApplyState.Agree : ReReadingApplyState.Reject);
origenalTask.TaskState = (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree ? TaskState.HaveReturned : origenalTask.TaskState);
//更新申请信息
var visitTaskReReadingAppply = await _visitTaskReReadingRepository.FirstOrDefaultAsync(t => t.Id == item.Id);
visitTaskReReadingAppply.RequestReReadingConfirmUserId = _userInfo.Id;
visitTaskReReadingAppply.RequestReReadingResultEnum = agreeReReadingCommand.RequestReReadingResultEnum;
visitTaskReReadingAppply.RequestReReadingRejectReason = agreeReReadingCommand.RequestReReadingRejectReason;
if (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree) if (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree)
{ {
var origenalTask = (await _visitTaskRepository.Where(t => item.OriginalReReadingTaskId == t.Id).FirstOrDefaultAsync()).IfNullThrowException();
//产生的新任务
//产生的新任务,状态保持跟申请的一致
await _visitTaskCommonService.AddTaskAsync(new GenerateTaskCommand() await _visitTaskCommonService.AddTaskAsync(new GenerateTaskCommand()
{ {
@ -1074,19 +1083,20 @@ namespace IRaCIS.Core.Application.Service
Action = (newTask) => Action = (newTask) =>
{ {
visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id;
_visitTaskReReadingRepository.UpdatePartialFromQueryAsync(t => t.Id == item.Id, u => new VisitTaskReReading()
{
RequestReReadingConfirmUserId = _userInfo.Id,
RequestReReadingResultEnum = agreeReReadingCommand.RequestReReadingResultEnum,
RequestReReadingRejectReason = agreeReReadingCommand.RequestReReadingRejectReason,
NewReReadingTaskId = newTask.Id,
}).Wait();
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer) if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer)
{ {
if (visitTaskReReadingAppply.IsCopyOrigenalForms)
{
var origenalAnswerList = _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == origenalTask.Id).ToList();
origenalAnswerList.ForEach(t => { t.VisitTaskId = newTask.Id});
_readingTaskQuestionAnswerRepository.AddRangeAsync(origenalAnswerList);
}
} }
//PM 立即分配 //PM 立即分配

View File

@ -58,6 +58,8 @@ namespace IRaCIS.Core.Domain.Models
public User RequestReReadingConfirmUser { get; set; } public User RequestReReadingConfirmUser { get; set; }
public bool IsCopyOrigenalForms { get; set; }
public Guid CreateUserId { get; set; } public Guid CreateUserId { get; set; }