修改一版

Uat_Study
he 2022-06-23 13:53:43 +08:00
parent df9d4fa7e5
commit ec26ce377e
2 changed files with 29 additions and 2 deletions

View File

@ -16,6 +16,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string FileName { get; set; } public string FileName { get; set; }
} }
public class SubjectTask
{
public Guid SubjectId { get; set; }
public int UnReadTaskCount { get; set; }
public int Index { get; set; }
}
public class GetReadingTaskDto public class GetReadingTaskDto
{ {
public Guid VisistTaskId { get; set; } public Guid VisistTaskId { get; set; }
@ -23,6 +32,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid SubjectId { get; set; } public Guid SubjectId { get; set; }
public string SubjectCode { get; set; }
public ReadingCategory ReadingCategory { get; set; } public ReadingCategory ReadingCategory { get; set; }
public decimal VisitNum { get; set; } public decimal VisitNum { get; set; }

View File

@ -31,6 +31,7 @@ namespace IRaCIS.Application.Services
private readonly IRepository<VisitTask> _visitTaskRepository; private readonly IRepository<VisitTask> _visitTaskRepository;
private readonly IVisitTaskHelpeService _visitTaskHelpeService; private readonly IVisitTaskHelpeService _visitTaskHelpeService;
private readonly IRepository<SubjectVisit> _subjectVisitRepository; private readonly IRepository<SubjectVisit> _subjectVisitRepository;
private readonly IRepository<Subject> _subjectRepository;
private readonly IRepository<ReadModule> _readModuleRepository; private readonly IRepository<ReadModule> _readModuleRepository;
private readonly IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository; private readonly IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository;
private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository; private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository;
@ -43,6 +44,7 @@ namespace IRaCIS.Application.Services
IRepository<VisitTask> visitTaskRepository, IRepository<VisitTask> visitTaskRepository,
IVisitTaskHelpeService visitTaskHelpeService, IVisitTaskHelpeService visitTaskHelpeService,
IRepository<SubjectVisit> subjectVisitRepository, IRepository<SubjectVisit> subjectVisitRepository,
IRepository<Subject> subjectRepository,
IRepository<ReadModule> readModuleRepository, IRepository<ReadModule> readModuleRepository,
IRepository<ReadingTaskQuestionAnswer> readingTaskQuestionAnswerRepository, IRepository<ReadingTaskQuestionAnswer> readingTaskQuestionAnswerRepository,
IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrialRepository, IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrialRepository,
@ -54,6 +56,7 @@ namespace IRaCIS.Application.Services
this._visitTaskRepository = visitTaskRepository; this._visitTaskRepository = visitTaskRepository;
this._visitTaskHelpeService = visitTaskHelpeService; this._visitTaskHelpeService = visitTaskHelpeService;
this._subjectVisitRepository = subjectVisitRepository; this._subjectVisitRepository = subjectVisitRepository;
this._subjectRepository = subjectRepository;
this._readModuleRepository = readModuleRepository; this._readModuleRepository = readModuleRepository;
this._readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository; this._readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository;
this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository; this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository;
@ -85,7 +88,19 @@ namespace IRaCIS.Application.Services
} }
if (subjectId != null) if (subjectId != null)
{ {
task = await _visitTaskRepository.Where(x => x.TrialId == trialId && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.SubjectId == subjectId.Value&&x.DoctorUserId == _userInfo.Id).Select(x => new GetReadingTaskDto()
var subjectList = await _subjectRepository.Where(t => t.TrialId == trialId)
.Where(t => t.SubjectDoctorList.Any(t => t.DoctorUserId == _userInfo.Id))
.Select((s,index) => new SubjectTask()
{
Index=index,
SubjectId = s.Id,
UnReadTaskCount = s.SubjectVisitTaskList.Count(t => t.ReadingTaskState != ReadingTaskState.HaveSigned && t.DoctorUserId == _userInfo.Id),
}).ToListAsync();
var subjectIndex = subjectList.Where(x => x.SubjectId == subjectId).Select(x=>x.Index).FirstOrDefault();
var newSubjectId = subjectList.Where(x => x.Index >= subjectIndex && x.UnReadTaskCount != 0).Select(x=>x.SubjectId).FirstOrDefault();
task = await _visitTaskRepository.Where(x => x.TrialId == trialId && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.SubjectId == newSubjectId && x.DoctorUserId == _userInfo.Id).Select(x => new GetReadingTaskDto()
{ {
VisistTaskId=x.Id, VisistTaskId=x.Id,
ReadingCategory = x.ReadingCategory, ReadingCategory = x.ReadingCategory,
@ -115,7 +130,7 @@ namespace IRaCIS.Application.Services
} }
task.SubjectId = await _subjectVisitRepository.Where(x => x.Id == task.VisistId).Select(x => x.SubjectId).FirstOrDefaultAsync(); task.SubjectId = await _subjectVisitRepository.Where(x => x.Id == task.VisistId).Select(x => x.SubjectId).FirstOrDefaultAsync();
} }
task.SubjectCode= await _subjectRepository.Where(x => x.Id == task.SubjectId).Select(x => x.Code).FirstOrDefaultAsync();
return task; return task;
@ -149,6 +164,7 @@ namespace IRaCIS.Application.Services
return (result, new { return (result, new {
VisitTaskId= task.VisistTaskId, VisitTaskId= task.VisistTaskId,
SubjectId=task.SubjectId, SubjectId=task.SubjectId,
SubjectCode=task.SubjectCode,
}); });
} }