diff --git a/IRaCIS.Core.Application/Service/Reading/Segment/SegmentationService.cs b/IRaCIS.Core.Application/Service/Reading/Segment/SegmentationService.cs index 8f6274ff8..f1271ad5a 100644 --- a/IRaCIS.Core.Application/Service/Reading/Segment/SegmentationService.cs +++ b/IRaCIS.Core.Application/Service/Reading/Segment/SegmentationService.cs @@ -92,26 +92,24 @@ public class SegmentationService(IRepository _segmentationReposito private async Task SaveSegmentationVersionAsync(SaveSegmentationVersionAsyncInDto inDto) { var data = await _segmentationRepository.FirstOrDefaultNoTrackingAsync(x => x.Id == inDto.SegmentationId); - - var lastVersion=await _segmentationVersionRepository - .Where(x => x.SegmentationId == inDto.SegmentationId) + // 如果是新增或修改,记录一条版本信息 + var maxVersion = await _segmentationVersionRepository + .Where(x => x.SegmentationId == data.Id) .OrderByDescending(x => x.Version) .FirstOrDefaultAsync(); + var startTime = maxVersion != null ? maxVersion.CreateTime : data.UpdateTime; + var segmentList = await _segmentRepository - .WhereIf(lastVersion!=null,x=>x.CreateTime<= lastVersion.CreateTime) + .Where(x=>x.CreateTime<= startTime) .Where(x => x.SegmentationId == inDto.SegmentationId).OrderBy(x=>x.SegmentNumber).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); if (data.SEGUrl != string.Empty&&(inDto.SEGUrl!=data.SEGUrl||inDto.IsRestore)) { - // 如果是新增或修改,记录一条版本信息 - var maxVersion = await _segmentationVersionRepository - .Where(x => x.SegmentationId == data.Id) - .OrderByDescending(x => x.Version) - .FirstOrDefaultAsync(); + var newVersion = maxVersion == null ? 1 : maxVersion.Version + 1; - var startTime = maxVersion != null ? maxVersion.CreateTime : data.UpdateTime ; +