diff --git a/IRaCIS.Core.Application/Service/Document/AuditDocumentService.cs b/IRaCIS.Core.Application/Service/Document/AuditDocumentService.cs index ef695bb5c..4cf29b937 100644 --- a/IRaCIS.Core.Application/Service/Document/AuditDocumentService.cs +++ b/IRaCIS.Core.Application/Service/Document/AuditDocumentService.cs @@ -26,20 +26,20 @@ public class AuditDocumentService(IRepository _auditDocumentRepos IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer): BaseService { - /// - /// 获取稽查文档 - /// - /// - /// - [HttpPost] - public async Task> GetAuditDocumentList(AuditDocumentQuery inQuery) - { - var auditDocumentQueryable =_auditDocumentRepository - .ProjectTo(_mapper.ConfigurationProvider); - var pageList= await auditDocumentQueryable.ToPagedListAsync(inQuery); + ///// + ///// 获取稽查文档 + ///// + ///// + ///// + //[HttpPost] + //public async Task> GetAuditDocumentList(AuditDocumentQuery inQuery) + //{ + // var auditDocumentQueryable =_auditDocumentRepository + // .ProjectTo(_mapper.ConfigurationProvider); + // var pageList= await auditDocumentQueryable.ToPagedListAsync(inQuery); - return pageList; - } + // return pageList; + //} /// /// 修改稽查文档 @@ -190,26 +190,60 @@ public class AuditDocumentService(IRepository _auditDocumentRepos /// /// [HttpPost] - public async Task GetAuditDocumentData(GetAuditDocumentDataInDto inDto) + public async Task> GetAuditDocumentData(GetAuditDocumentDataInDto inDto) { var data= await _auditDocumentRepository .Where(x=>x.AuditDocumentTypeEnum!=AuditDocumentType.HistoricalVersion) .WhereIf(inDto.IsAuthorization!=null,x=>x.IsAuthorization==inDto.IsAuthorization).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); - var root= data - .WhereIf(inDto.Ids != null, x => inDto.Ids.Contains(x.Id.Value)) - .WhereIf(inDto.Ids == null,x=>x.ParentId==null).ToList(); + + + + if (inDto.Name.IsNotNullOrEmpty()) + { + List findIds = new List(); + var findData = data.Where(x => x.Name.Contains(inDto.Name)).Select(x => x.Id.Value).ToList(); + GetParentId(findIds, findData, data); + findIds.AddRange(findData); - foreach (var item in root) + data = data.Where(x => findIds.Contains(x.Id.Value)).ToList(); + + } + + + var query = data + .WhereIf(inDto.Id != null, x => inDto.Id == x.ParentId) + .WhereIf(inDto.Id == null, x => x.ParentId == null); + + + + PageOutput result = new PageOutput() + { + PageIndex = inDto.PageIndex, + PageSize = inDto.PageSize, + TotalCount = query.Count(), + }; + + var root = query + .OrderBy(x => x.Name) + .Skip(inDto.PageSize * (inDto.PageIndex - 1)).Take(inDto.PageSize).ToList(); + + foreach (var item in root) { GetChildren(item, data); } + result.CurrentPageData = root; + return result; - return new GetAuditDocumentDataOutDto() - { - Data = root - }; + } + public void GetParentId(List parentIds, List ids, List dataList) + { + var parentid = dataList.Where(x => ids.Contains(x.Id.Value) && x.ParentId != null).Select(x => x.ParentId.Value).ToList(); + + parentIds.AddRange(parentid); + + GetParentId(parentIds, parentid, dataList); } private void GetChildren(AuditDocumentData item, List dataList) diff --git a/IRaCIS.Core.Application/Service/Document/DTO/AuditDocumentViewModel.cs b/IRaCIS.Core.Application/Service/Document/DTO/AuditDocumentViewModel.cs index 26f168c5c..aa7c83243 100644 --- a/IRaCIS.Core.Application/Service/Document/DTO/AuditDocumentViewModel.cs +++ b/IRaCIS.Core.Application/Service/Document/DTO/AuditDocumentViewModel.cs @@ -24,11 +24,13 @@ public class DeleteAuditDocumentInDto public List Ids { get; set; } } -public class GetAuditDocumentDataInDto +public class GetAuditDocumentDataInDto:PageInput { - public List? Ids { get; set; } + public Guid? Id { get; set; } public bool? IsAuthorization { get; set; } + + public string Name { get; set; } = string.Empty; } public class GetAuditDocumentDataOutDto