| | |
| | | using System.Linq; |
| | | using NewLife.Xml; |
| | | using AngleSharp.Dom; |
| | | using static Elastic.Clients.Elasticsearch.JoinField; |
| | | namespace FZCZTB.TSCL.Application; |
| | | |
| | | /// <summary> |
| | |
| | | public async Task<SqlSugarPagedList<ProcurementComplaintOutput>> Page(PageProcurementComplaintInput input) |
| | | { |
| | | input.Keyword = input.Keyword?.Trim(); |
| | | var query = _procurementComplaintRep.AsQueryable().Includes(x=>x.Complaints) |
| | | var query = _procurementComplaintRep.AsQueryable().Includes(u => u.Complaints) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.Keyword), u => u.Complaints.Any(uu=>uu.ItemDescription.Contains(input.Keyword))) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.ProjectCode), u => u.ProjectCode.Contains(input.ProjectCode.Trim())) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.ProjectName), u => u.ProjectName.Contains(input.ProjectName.Trim())) |
| | |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.ProcurementSupervisionDepartment), u => u.ProcurementSupervisionDepartment.Contains(input.ProcurementSupervisionDepartment.Trim())) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.Url), u => u.Url.Contains(input.Url.Trim())) |
| | | .WhereIF(input.DecisionDateRange?.Length == 2, u => u.DecisionDate >= input.DecisionDateRange[0] && u.DecisionDate <= input.DecisionDateRange[1]) |
| | | .Select<ProcurementComplaintOutput>(); |
| | | .WhereIF(input.Status != null && input.Status == PComplaintStatus.Valid, u =>( u.Complaints.Any(uu => uu.HandlingStatus == PComplaintStatus.Valid))) |
| | | .WhereIF(input.Status != null && input.Status == PComplaintStatus.Rejected, u => ( !u.Complaints.Any(uu=>uu.HandlingStatus== PComplaintStatus.Other||uu.HandlingStatus== PComplaintStatus.Valid||uu.HandlingStatus==null))) |
| | | .WhereIF(input.Status != null && input.Status == PComplaintStatus.Other, u =>!( u.Complaints.Any(uu=>uu.HandlingStatus== PComplaintStatus.Valid)|| (!u.Complaints.Any(uu => uu.HandlingStatus == PComplaintStatus.Other || uu.HandlingStatus == PComplaintStatus.Valid || uu.HandlingStatus == null)))) |
| | | .Select(n => new ProcurementComplaintOutput |
| | | { |
| | | Complaints = n.Complaints |
| | | },true) |
| | | .Mapper(n => |
| | | { |
| | | n.Status =n.Complaints==null? PComplaintStatus.Other:n.Complaints.Any(x => x.HandlingStatus == PComplaintStatus.Valid) ? PComplaintStatus.Valid : |
| | | n.Complaints.All(x => x.HandlingStatus == PComplaintStatus.Rejected) ? PComplaintStatus.Rejected : PComplaintStatus.Other ; |
| | | n.Complaints = null; |
| | | } |
| | | ); |
| | | |
| | | return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize); |
| | | } |
| | | |