From ff52842964a0a10efbe5c7ee4335c119f17145b8 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 30 Jun 2022 15:56:15 +0800 Subject: [PATCH] =?UTF-8?q?IR=20=E6=8B=B7=E8=B4=9D=E5=8E=9F=E5=A7=8B?= =?UTF-8?q?=E8=A1=A8=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Allocation/DTO/VisitTaskViewModel.cs | 2 + .../Service/Allocation/VisitTaskService.cs | 48 +++++++++++-------- .../Allocation/VisitTaskReReading.cs | 2 + 3 files changed, 33 insertions(+), 19 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs index eaf2b1520..476fb5cf4 100644 --- a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs @@ -504,6 +504,8 @@ namespace IRaCIS.Core.Application.ViewModel public Guid TrialId { get; set; } + public bool IsCopyOrigenalForms { get; set; } + public RequestReReadingType RequestReReadingType { get; set; } public string RequestReReadingReason { get; set; } = string.Empty; diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index d75eb2e03..6bded7b8a 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -32,10 +32,12 @@ namespace IRaCIS.Core.Application.Service private readonly IRepository _visitTaskReReadingRepository; + private readonly IRepository _readingTaskQuestionAnswerRepository; + public VisitTaskService(IRepository visitTaskRepository, IRepository trialRepository, IRepository subjectVisitRepository, IRepository subjectRepository, IRepository subjectUserRepository, IRepository taskAllocationRuleRepository, - IRepository readModuleRepository, IRepository visitTaskReReadingRepository + IRepository readModuleRepository, IRepository visitTaskReReadingRepository, IRepository readingTaskQuestionAnswerRepository ) { _taskAllocationRuleRepository = taskAllocationRuleRepository; @@ -46,6 +48,7 @@ namespace IRaCIS.Core.Application.Service _subjectUserRepository = subjectUserRepository; _readModuleRepository = readModuleRepository; _visitTaskReReadingRepository = visitTaskReReadingRepository; + _readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository; } @@ -1044,23 +1047,29 @@ namespace IRaCIS.Core.Application.Service foreach (var item in agreeReReadingCommand.ConfirmReReadingList) { - await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == item.OriginalReReadingTaskId, u => new VisitTask() - { - ReReadingApplyState = (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree ? ReReadingApplyState.Agree : ReReadingApplyState.Reject), - TaskState = (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree ? TaskState.HaveReturned : TaskState.Effect) + //await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == item.OriginalReReadingTaskId, u => new VisitTask() + //{ + // ReReadingApplyState = (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree ? ReReadingApplyState.Agree : ReReadingApplyState.Reject), + // 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) { - var origenalTask = (await _visitTaskRepository.Where(t => item.OriginalReReadingTaskId == t.Id).FirstOrDefaultAsync()).IfNullThrowException(); - - - - //产生的新任务,状态保持跟申请的一致 + //产生的新任务 await _visitTaskCommonService.AddTaskAsync(new GenerateTaskCommand() { @@ -1074,19 +1083,20 @@ namespace IRaCIS.Core.Application.Service 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 (visitTaskReReadingAppply.IsCopyOrigenalForms) + { + var origenalAnswerList = _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == origenalTask.Id).ToList(); + + origenalAnswerList.ForEach(t => { t.VisitTaskId = newTask.Id}); + + _readingTaskQuestionAnswerRepository.AddRangeAsync(origenalAnswerList); + } } //PM 立即分配 diff --git a/IRaCIS.Core.Domain/Allocation/VisitTaskReReading.cs b/IRaCIS.Core.Domain/Allocation/VisitTaskReReading.cs index 04dcfb2a8..913f57247 100644 --- a/IRaCIS.Core.Domain/Allocation/VisitTaskReReading.cs +++ b/IRaCIS.Core.Domain/Allocation/VisitTaskReReading.cs @@ -58,6 +58,8 @@ namespace IRaCIS.Core.Domain.Models public User RequestReReadingConfirmUser { get; set; } + + public bool IsCopyOrigenalForms { get; set; } public Guid CreateUserId { get; set; }