田爽 6 сар өмнө
parent
commit
319f7a4c9f

+ 58 - 36
src/Hotline.Api/Controllers/OrderController.cs

@@ -274,33 +274,44 @@ public class OrderController : BaseController
     [HttpGet("publish")]
     public async Task<PagedDto<PublishDto>> PublishOrderList([FromQuery] QueryOrderPublishDto dto)
     {
-        var (total, items) = await _orderRepository.Queryable()
-            .Includes(d => d.OrderPublish)
-            .Where(x => x.Status == EOrderStatus.Filed)
-            .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.StartsWith(dto.Keyword!))
-            .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No == dto.No)
-            .WhereIF(dto.PubState == EPubState.Pub, d => d.Status >= EOrderStatus.Published)
-            .WhereIF(dto.PubState == EPubState.NoPub, d => d.Status < EOrderStatus.Published)
-            //.WhereIF(!string.IsNullOrEmpty(dto.PubMan),
-            //    d => d.AcceptorName.Contains(dto.PubMan!) || d.AcceptorStaffNo.Contains(dto.PubMan!))
-            .WhereIF(dto.PubRange == EPublicState.Pub, d => d.OrderPublish.PublishState)
-            .WhereIF(dto.PubRange == EPublicState.NoPub, d => !d.OrderPublish.PublishState)
-            .WhereIF(dto.FiledType != null && dto.FiledType == FiledType.CenterFiled, d => d.ProcessType == EProcessType.Zhiban)
-            .WhereIF(dto.FiledType != null && dto.FiledType == FiledType.OrgFiled, d => d.ProcessType == EProcessType.Jiaoban)
-            .WhereIF(dto.IsCountersign != null && dto.IsCountersign == true, d => d.CounterSignType != null)
-            .WhereIF(dto.IsCountersign != null && dto.IsCountersign == false, d => d.CounterSignType == null)
-            .WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptType))
-            .WhereIF(dto.HotspotIds.Any(), d => dto.HotspotIds.Contains(d.HotspotId))
-            .WhereIF(dto.Resolve.HasValue, d => d.OrderPublish.Resolve == dto.Resolve)
-            .WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart)
-            .WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd)
-            .WhereIF(dto.FiledTimeStart.HasValue, d => d.OrderPublish.CreationTime >= dto.CreationTimeStart)
-            .WhereIF(dto.FiledTimeEnd.HasValue, d => d.OrderPublish.CreationTime <= dto.CreationTimeEnd)
-            .WhereIF(dto.QuerySelf.HasValue && dto.QuerySelf.Value, d => d.WaitForPublisherId == _sessionContext.RequiredUserId)
-            .OrderByDescending(d => d.FiledTime)
-            .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
-
-        return new PagedDto<PublishDto>(total, _mapper.Map<IReadOnlyList<PublishDto>>(items));
+		var (total, items) = await _orderRepository.Queryable()
+	        .Includes(d => d.OrderPublish)
+	        .Where(x => x.Status == EOrderStatus.Filed)
+	        .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.StartsWith(dto.Keyword!))
+	        .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No.Contains(dto.No))
+	        .WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Title.Contains(dto.Title))
+	        .WhereIF(dto.PubState == EPubState.Pub, d => d.Status >= EOrderStatus.Published)
+	        .WhereIF(dto.PubState == EPubState.NoPub, d => d.Status < EOrderStatus.Published)
+	        .WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.SourceChannelCode == dto.Channel)
+	        .WhereIF(!string.IsNullOrEmpty(dto.OrderTag), d => d.OrderTagCode == dto.OrderTag!) //工单标签
+	        .WhereIF(!string.IsNullOrEmpty(dto.CenterToOrgHandlerName), d => d.CenterToOrgHandlerName == dto.CenterToOrgHandlerName!) //派单人
+	        .WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), d => d.AcceptorName == dto.NameOrNo! || d.AcceptorStaffNo == dto.NameOrNo!) //受理人/坐席
+	        .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), d => d.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门(综合查询模糊)
+	        .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.AcceptTypeCode == dto.AcceptType)//受理类型
+	        .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.HotspotSpliceName != null && d.HotspotSpliceName.Contains(dto.Hotspot))
+	        .WhereIF(!string.IsNullOrEmpty(dto.FromPhone), d => d.FromPhone == dto.FromPhone) //来电号码
+			//.WhereIF(!string.IsNullOrEmpty(dto.PubMan),
+			//    d => d.AcceptorName.Contains(dto.PubMan!) || d.AcceptorStaffNo.Contains(dto.PubMan!))
+	        .WhereIF(dto.PubRange == EPublicState.Pub, d => d.OrderPublish.PublishState)
+	        .WhereIF(dto.PubRange == EPublicState.NoPub, d => !d.OrderPublish.PublishState)
+	        .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == true, d => d.Source == ESource.ProvinceStraight)
+	        .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == false, d => d.Source != ESource.ProvinceStraight)
+	        .WhereIF(dto.FiledType != null && dto.FiledType == FiledType.CenterFiled, d => d.ProcessType == EProcessType.Zhiban)
+	        .WhereIF(dto.FiledType != null && dto.FiledType == FiledType.OrgFiled, d => d.ProcessType == EProcessType.Jiaoban)
+	        .WhereIF(dto.IsCountersign != null && dto.IsCountersign == true, d => d.CounterSignType != null)
+	        .WhereIF(dto.IsCountersign != null && dto.IsCountersign == false, d => d.CounterSignType == null)
+	        .WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptType))
+	        .WhereIF(dto.HotspotIds.Any(), d => dto.HotspotIds.Contains(d.HotspotId))
+	        .WhereIF(dto.Resolve.HasValue, d => d.OrderPublish.Resolve == dto.Resolve)
+	        .WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart)
+	        .WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd)
+	        .WhereIF(dto.FiledTimeStart.HasValue, d => d.OrderPublish.CreationTime >= dto.CreationTimeStart)
+	        .WhereIF(dto.FiledTimeEnd.HasValue, d => d.OrderPublish.CreationTime <= dto.CreationTimeEnd)
+	        .WhereIF(dto.QuerySelf.HasValue && dto.QuerySelf.Value, d => d.WaitForPublisherId == _sessionContext.RequiredUserId)
+	        .OrderByDescending(d => d.FiledTime)
+	        .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
+
+		return new PagedDto<PublishDto>(total, _mapper.Map<IReadOnlyList<PublishDto>>(items));
     }
 
     /// <summary>
@@ -639,15 +650,26 @@ public class OrderController : BaseController
     [HttpGet("published")]
     public async Task<PagedDto<PublishedDto>> PublishedOrderList([FromQuery] PublishedPagedRequest dto)
     {
-        var (total, items) = await _orderPublishRepository.Queryable()
-            .Includes(x => x.Order)
-            .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Order.Title.StartsWith(dto.Keyword!))
-            .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.Order.No == dto.No!)
-            .WhereIF(dto.Resolve.HasValue, x => x.Resolve == dto.Resolve)
-            .OrderByDescending(d => d.CreationTime)
-            .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
-
-        return new PagedDto<PublishedDto>(total, _mapper.Map<IReadOnlyList<PublishedDto>>(items));
+		var (total, items) = await _orderPublishRepository.Queryable()
+			.Includes(x => x.Order)
+			.WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Order.Title.StartsWith(dto.Keyword!))
+			.WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No.Contains(dto.No))
+			.WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Title.Contains(dto.Title))
+			.WhereIF(dto.CreationTimeStart.HasValue, d => d.Order.CreationTime >= dto.CreationTimeStart)
+			.WhereIF(dto.CreationTimeEnd.HasValue, d => d.Order.CreationTime <= dto.CreationTimeEnd)
+			.WhereIF(!string.IsNullOrEmpty(dto.FromPhone), d => d.Order.FromPhone == dto.FromPhone) //来电号码
+			.WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), d => d.Order.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门(综合查询模糊)
+			.WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.Order.AcceptTypeCode == dto.AcceptType)//受理类型
+			.WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.Order.HotspotSpliceName != null && d.Order.HotspotSpliceName.Contains(dto.Hotspot))
+			.WhereIF(!string.IsNullOrEmpty(dto.PublishName), d => d.CreatorName.Contains(dto.PublishName!))
+			.WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), d => d.Order.AcceptorName == dto.NameOrNo! || d.Order.AcceptorStaffNo == dto.NameOrNo!) //受理人/坐席
+			.WhereIF(dto.StartTime.HasValue, d => d.CreationTime >= dto.StartTime)
+			.WhereIF(dto.EndTime.HasValue, d => d.CreationTime <= dto.EndTime)
+			.WhereIF(dto.Resolve.HasValue, x => x.Resolve == dto.Resolve)
+			.OrderByDescending(d => d.CreationTime)
+			.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
+
+		return new PagedDto<PublishedDto>(total, _mapper.Map<IReadOnlyList<PublishedDto>>(items));
     }
 
     /// <summary>

+ 108 - 56
src/Hotline.Share/Dtos/Order/Publish/QueryOrderPublishDto.cs

@@ -4,60 +4,112 @@ namespace Hotline.Share.Dtos.Order.Publish;
 
 public record QueryOrderPublishDto : PagedKeywordRequest
 {
-    /// <summary>
-    /// 发布状态
-    /// </summary>
-    public EPubState? PubState { get; set; }
-
-    /// <summary>
-    /// 工单编号
-    /// </summary>
-    public string? No { get; set; }
-
-    /// <summary>
-    /// 发布范围
-    /// </summary>
-    public EPublicState? PubRange { get; set; }
-
-    /// <summary>
-    /// 受理类型
-    /// </summary>
-    public List<string>? AcceptTypes { get; set; } = new();
-
-    /// <summary>
-    /// 热点分类
-    /// </summary>
-    public List<string>? HotspotIds { get; set; } = new();
-
-    /// <summary>
-    /// 受理时间(工单创建时间)
-    /// </summary>
-    public DateTime? CreationTimeStart { get; set; }
-    public DateTime? CreationTimeEnd { get; set; }
-
-    /// <summary>
-    /// 归档时间
-    /// </summary>
-    public DateTime? FiledTimeStart { get; set; }
-    public DateTime? FiledTimeEnd { get; set; }
-
-    /// <summary>
-    /// 归档方式
-    /// </summary>
-    public FiledType? FiledType { get; set; }
-
-    /// <summary>
-    /// 是否会签
-    /// </summary>
-    public bool? IsCountersign { get; set; }
-
-    /// <summary>
-    /// 是否解决
-    /// </summary>
-    public bool? Resolve { get; set; }
-
-    /// <summary>
-    /// 是否只查询自己的待发布工单
-    /// </summary>
-    public bool? QuerySelf { get; set; }
+	/// <summary>
+	/// 发布状态
+	/// </summary>
+	public EPubState? PubState { get; set; }
+
+	/// <summary>
+	/// 工单编号
+	/// </summary>
+	public string? No { get; set; }
+
+	/// <summary>
+	/// 工单标题
+	/// </summary>
+	public string? Title { get; set; }
+
+	/// <summary>
+	/// 受理时间(工单创建时间)
+	/// </summary>
+	public DateTime? CreationTimeStart { get; set; }
+	public DateTime? CreationTimeEnd { get; set; }
+
+	/// <summary>
+	/// 来电号码(×)
+	/// </summary>
+	public string? FromPhone { get; set; }
+
+	/// <summary>
+	/// 接办名称(综合查询使用)
+	/// </summary>
+	public string? ActualHandleOrgName { get; set; }
+
+	/// <summary>
+	/// 受理类型
+	/// </summary>
+	public List<string>? AcceptTypes { get; set; } = new();
+
+
+	/// <summary>
+	/// 受理类型(√)
+	/// </summary>
+	public string? AcceptType { get; set; }
+
+	/// <summary>
+	/// 热点分类关键词
+	/// </summary>
+	public string? Hotspot { get; set; }
+
+	/// <summary>
+	/// 热点分类
+	/// </summary>
+	public List<string>? HotspotIds { get; set; } = new();
+
+	/// <summary>
+	/// 受理坐席名字或工号(×)
+	/// </summary>
+	public string? NameOrNo { get; set; }
+
+	/// <summary>
+	/// 派单人
+	/// </summary>
+	public string? CenterToOrgHandlerName { get; set; }
+
+	/// <summary>
+	/// 发布范围
+	/// </summary>
+	public EPublicState? PubRange { get; set; }
+
+	/// <summary>
+	/// 归档时间
+	/// </summary>
+	public DateTime? FiledTimeStart { get; set; }
+	public DateTime? FiledTimeEnd { get; set; }
+
+	/// <summary>
+	/// 工单标签
+	/// </summary>
+	public string? OrderTag { get; set; }
+
+	/// <summary>
+	/// 归档方式
+	/// </summary>
+	public FiledType? FiledType { get; set; }
+
+	/// <summary>
+	/// 是否会签
+	/// </summary>
+	public bool? IsCountersign { get; set; }
+
+	/// <summary>
+	/// 是否解决
+	/// </summary>
+	public bool? Resolve { get; set; }
+
+	/// <summary>
+	/// 是否只查询自己的待发布工单
+	/// </summary>
+	public bool? QuerySelf { get; set; }
+
+	/// <summary>
+	/// 是否省工单(空为全部  true为省工单 false为市工单)
+	/// </summary>
+	public bool? IsProvinceOrder { get; set; }
+
+	/// <summary>
+	/// 来源渠道(√)
+	/// </summary>
+	public string? Channel { get; set; }
+
 }

+ 49 - 8
src/Hotline.Share/Requests/PagedKeywordRequest.cs

@@ -156,15 +156,56 @@ public record OrgDataListAllDetailRequest : PagedRequest
 
 public record PublishedPagedRequest : PagedKeywordRequest
 {
-    /// <summary>
-    /// 是否解决
-    /// </summary>
-    public bool? Resolve { get; set; }
+	/// <summary>
+	/// 是否解决
+	/// </summary>
+	public bool? Resolve { get; set; }
 
-    /// <summary>
-    /// 工单编号
-    /// </summary>
-    public string? No { get; set; }
+	/// <summary>
+	/// 工单编号
+	/// </summary>
+	public string? No { get; set; }
+
+	/// <summary>
+	/// 工单标题
+	/// </summary>
+	public string? Title { get; set; }
+
+	/// <summary>
+	/// 受理时间(工单创建时间)
+	/// </summary>
+	public DateTime? CreationTimeStart { get; set; }
+	public DateTime? CreationTimeEnd { get; set; }
+
+	/// <summary>
+	/// 来电号码(×)
+	/// </summary>
+	public string? FromPhone { get; set; }
+
+	/// <summary>
+	/// 接办名称(综合查询使用)
+	/// </summary>
+	public string? ActualHandleOrgName { get; set; }
+
+	/// <summary>
+	/// 受理类型(√)
+	/// </summary>
+	public string? AcceptType { get; set; }
+
+	/// <summary>
+	/// 热点分类关键词
+	/// </summary>
+	public string? Hotspot { get; set; }
+
+	/// <summary>
+	/// 受理坐席名字或工号(×)
+	/// </summary>
+	public string? NameOrNo { get; set; }
+
+	/// <summary>
+	/// 发布人名称
+	/// </summary>
+	public string? PublishName { get; set; }
 }
 
 public record HotspotSubtotalReportPagedRequest : ReportPagedRequest