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 bool IsCopyOrigenalForms { get; set; }
public RequestReReadingType RequestReReadingType { get; set; }
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<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository;
public VisitTaskService(IRepository<VisitTask> visitTaskRepository, IRepository<Trial> trialRepository, IRepository<SubjectVisit> subjectVisitRepository,
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;
@ -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 立即分配

View File

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