diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 2748d09e1..950364f69 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -2707,10 +2707,29 @@ namespace IRaCIS.Application.Services } - var c = _provider.Get(clearSkipReadingCacheKey).Value; - Console.WriteLine(c); - // 加这个测试 - Thread.Sleep(3000); // 3000毫秒 = 3秒 + /// + /// 设置跳过阅片的缓存 + /// + /// + /// + [HttpPost] + public async Task SetSkipReadingCache(SetSkipReadingCacheInDto inDto ) + { + var clearSkipReadingCacheKey = _userInfo.Id.ToString() + "SkipReadingCache"; + var clearSkipReadingCache = _provider.Get(clearSkipReadingCacheKey).Value; + if (clearSkipReadingCache == null|| clearSkipReadingCache==string.Empty) + { + List cacheIds = new List(); + cacheIds.Add(inDto.VisitTaskId); + + _provider.Set(clearSkipReadingCacheKey, JsonConvert.SerializeObject(cacheIds), TimeSpan.FromHours(24)); + } + else + { + List? cacheIds=JsonConvert.DeserializeObject>(clearSkipReadingCache); + cacheIds.Add(inDto.VisitTaskId); + _provider.Set(clearSkipReadingCacheKey, JsonConvert.SerializeObject(cacheIds), TimeSpan.FromHours(24)); + } return true; } @@ -2820,12 +2839,25 @@ namespace IRaCIS.Application.Services })).CurrentPageData; + + + + + if (subjectTaskList.Count() == 0) { throw new BusinessValidationFailedException(_localizer["ReadingImage_TaskFinish"], ApiResponseCodeEnum.CloseCurrentWindows); } var taskList = subjectTaskList.FirstOrDefault()!.UnReadCanReadTaskList; + // 排除跳过的 + List remainingItems = taskList.Select(x => x.Id).Except(cacheSkipIds).ToList(); + + taskList = taskList.Where(x => remainingItems.Contains(x.Id)).ToList(); + if (taskList.Count() == 0) + { + throw new BusinessValidationFailedException(_localizer["ReadingImage_TaskFinish"], ApiResponseCodeEnum.CloseCurrentWindows); + } Random random = new Random(); //返回的范围是 0- taskList.Count-1