Ver Fonte

综合查询多选参数改为单选

xf há 9 meses atrás
pai
commit
cf6d6a71ac

+ 29 - 23
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -2014,27 +2014,32 @@ namespace Hotline.Api.Controllers.Bi
 
             var (total, items) = await _orderRepository.Queryable()
            .Includes(x => x.OrderScreens)
-           .Where(p => data.Contains(p.Id))
-           .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.Contains(dto.Keyword!)) //标题
-           .WhereIF(!string.IsNullOrEmpty(dto.ProvinceNo), d => d.ProvinceNo.Contains(dto.ProvinceNo)) //省本地编号
-           .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No.Contains(dto.No)) //工单编码
-           .WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptTypeCode)) //受理类型
-           .WhereIF(dto.Channels.Any(), d => dto.Channels.Contains(d.SourceChannelCode)) //来源渠道
-           .WhereIF(dto.HotspotIds.Any(), d => dto.HotspotIds.Contains(d.HotspotId)) //热点类型
-           .WhereIF(!string.IsNullOrEmpty(dto.TransferPhone), d => d.TransferPhone.Contains(dto.TransferPhone!)) //转接号码
-           .WhereIF(dto.OrgCodes.Any(), d => dto.OrgCodes.Contains(d.ActualHandleOrgCode)) //接办部门
-           .WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), d => d.AcceptorName.Contains(dto.NameOrNo!) || d.AcceptorStaffNo.Contains(dto.NameOrNo!)) //受理人/坐席
-           .WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart) //受理时间开始
-           .WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd) //受理时间结束
-           .WhereIF(dto.EmergencyLevels.Any(), d => dto.EmergencyLevels.Contains(d.EmergencyLevel))  //紧急程度
-                                                                                                     //  .WhereIF(!string.IsNullOrEmpty(dto.FromPhone), d => d.FromPhone.Contains(dto.FromPhone)) //来电号码
-           .WhereIF(!string.IsNullOrEmpty(dto.PhoneNo), d => d.Contact.Contains(dto.PhoneNo!)) //联系电话
-           .WhereIF(!string.IsNullOrEmpty(dto.PushTypeCode), d => d.PushTypeCode == dto.PushTypeCode) //推送分类
-           .WhereIF(dto.ExpiredTimeStart.HasValue, d => d.ExpiredTime >= dto.ExpiredTimeStart) //超期时间开始
-           .WhereIF(dto.ExpiredTimeEnd.HasValue, d => d.ExpiredTime <= dto.ExpiredTimeEnd) //超期时间结束
-           .WhereIF(dto.Statuses.Any(), d => dto.Statuses.Contains(d.Status))  //工单状态
-           .WhereIF(dto.Statuses.Any(d => d == EOrderStatus.SpecialToUnAccept), d => d.Status <= EOrderStatus.SpecialToUnAccept)
-           .WhereIF(!string.IsNullOrEmpty(dto.ActualHandlerName), d => d.ActualHandlerName.Contains(dto.ActualHandlerName)) //接办人
+            .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.StartsWith(dto.Keyword!)) //标题
+            .WhereIF(!string.IsNullOrEmpty(dto.ProvinceNo), d => d.ProvinceNo == dto.ProvinceNo) //省本地编号
+            .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No == dto.No) //工单编码
+            .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.AcceptType == dto.AcceptType)//受理类型
+            //.WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptTypeCode)) //受理类型
+            .WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.SourceChannel == dto.Channel)
+            //.WhereIF(dto.Channels.Any(), d => dto.Channels.Contains(d.SourceChannelCode)) //来源渠道
+            //.WhereIF(dto.HotspotIds.Any(), d => dto.HotspotIds.Contains(d.HotspotId)) //热点类型
+            .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.HotspotSpliceName != null && d.HotspotSpliceName.Contains(dto.Hotspot))
+            .WhereIF(!string.IsNullOrEmpty(dto.TransferPhone), d => d.TransferPhone == dto.TransferPhone!) //转接号码
+                                                                                                           //.WhereIF(dto.OrgCodes.Any(), d => d.Workflow.Assigns.Any(s => dto.OrgCodes.Contains(s.OrgCode)))
+                                                                                                           //.WhereIF(dto.OrgCodes.Any(), d => dto.OrgCodes.Contains(d.ActualHandleOrgCode)) //接办部门
+            .WhereIF(!string.IsNullOrEmpty(dto.OrgName), d => d.CurrentHandleOrgName == dto.OrgName)//接办部门
+            .WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), d => d.AcceptorName == dto.NameOrNo! || d.AcceptorStaffNo == dto.NameOrNo!) //受理人/坐席
+            .WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart) //受理时间开始
+            .WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd) //受理时间结束
+            //.WhereIF(dto.EmergencyLevels.Any(), d => dto.EmergencyLevels.Contains(d.EmergencyLevel))  //紧急程度
+            .WhereIF(!string.IsNullOrEmpty(dto.FromPhone), d => d.FromPhone == dto.FromPhone) //来电号码
+            .WhereIF(!string.IsNullOrEmpty(dto.PhoneNo), d => d.Contact == dto.PhoneNo!) //联系电话
+            .WhereIF(!string.IsNullOrEmpty(dto.PushTypeCode), d => d.PushTypeCode == dto.PushTypeCode) //推送分类
+            .WhereIF(dto.ExpiredTimeStart.HasValue, d => d.ExpiredTime >= dto.ExpiredTimeStart) //超期时间开始
+            .WhereIF(dto.ExpiredTimeEnd.HasValue, d => d.ExpiredTime <= dto.ExpiredTimeEnd) //超期时间结束
+            //.WhereIF(dto.Statuses.Any(), d => dto.Statuses.Contains(d.Status))  //工单状态
+            .WhereIF(dto.Status.HasValue, d => d.Status == dto.Status)//工单状态
+            //.WhereIF(dto.Statuses.Any(d => d == EOrderStatus.SpecialToUnAccept), d => d.Status <= EOrderStatus.SpecialToUnAccept)
+            .WhereIF(!string.IsNullOrEmpty(dto.ActualHandlerName), d => d.ActualHandlerName == dto.ActualHandlerName) //接办人
             .WhereIF(dto.IsScreen == true, d => d.OrderScreens.Any(x => x.Status != EScreenStatus.Refuse)) //有甄别
             .WhereIF(dto.IsScreen == false, d => !d.OrderScreens.Any(x => x.Status != EScreenStatus.Refuse)) //无甄别
             .WhereIF(!string.IsNullOrEmpty(dto.CurrentStepCode), d => d.ActualHandleStepCode == dto.CurrentStepCode) //当前办理节点
@@ -2043,8 +2048,9 @@ namespace Hotline.Api.Controllers.Bi
             .WhereIF(dto.IsOverTime == true, d => (d.ExpiredTime < DateTime.Now && d.Status < EOrderStatus.Filed) || (d.ExpiredTime < d.ActualHandleTime && d.Status >= EOrderStatus.Filed)) //是 超期
             .WhereIF(dto.IsOverTime == false, d => (d.ExpiredTime > DateTime.Now && d.Status < EOrderStatus.Filed) || (d.ExpiredTime > d.ActualHandleTime && d.Status >= EOrderStatus.Filed)) //否 超期
             .WhereIF(dto.IdentityType != null, d => d.IdentityType == dto.IdentityType) //来电主体
-            .WhereIF(!string.IsNullOrEmpty(dto.FromName), d => d.FromName.Contains(dto.FromName)) //来电人姓名
-            .WhereIF(dto.AreaCodes.Any(), d => dto.AreaCodes.Contains(d.AreaCode)) //区域
+            .WhereIF(!string.IsNullOrEmpty(dto.FromName), d => d.FromName == dto.FromName) //来电人姓名
+            //.WhereIF(dto.AreaCodes.Any(), d => dto.AreaCodes.Contains(d.AreaCode)) //区域
+            .WhereIF(!string.IsNullOrEmpty(dto.AreaCode), d => d.AreaCode == dto.AreaCode)//区域
             .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == true, x => x.IsProvince == true)
             .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == false, x => x.IsProvince == false)
            .OrderByDescending(d => d.CreationTime)

+ 1 - 1
src/Hotline.Api/Controllers/EnforcementOrderController.cs

@@ -101,7 +101,7 @@ namespace Hotline.Api.Controllers
            .WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), d => d.Order.AcceptorName.Contains(dto.NameOrNo!) || d.Order.AcceptorStaffNo.Contains(dto.NameOrNo!)) //受理人/坐席
            .WhereIF(dto.CreationTimeStart.HasValue, d => d.Order.CreationTime >= dto.CreationTimeStart) //受理时间开始
            .WhereIF(dto.CreationTimeEnd.HasValue, d => d.Order.CreationTime <= dto.CreationTimeEnd) //受理时间结束
-           .WhereIF(dto.EmergencyLevels.Any(), d => dto.EmergencyLevels.Contains(d.Order.EmergencyLevel))  //紧急程度
+           //.WhereIF(dto.EmergencyLevels.Any(), d => dto.EmergencyLevels.Contains(d.Order.EmergencyLevel))  //紧急程度
            .WhereIF(!string.IsNullOrEmpty(dto.FromPhone), d => d.Order.FromPhone.Contains(dto.FromPhone)) //来电号码
            .WhereIF(!string.IsNullOrEmpty(dto.PhoneNo), d => d.Order.Contact.Contains(dto.PhoneNo!)) //联系电话
            .WhereIF(!string.IsNullOrEmpty(dto.PushTypeCode), d => d.Order.PushTypeCode == dto.PushTypeCode) //推送分类

+ 61 - 59
src/Hotline.Api/Controllers/OrderController.cs

@@ -1648,9 +1648,9 @@ public class OrderController : BaseController
             .Includes(x => x.OrderVisit)
             .Includes(x => x.OrderVisit, y => y.Order)
             .Includes(x => x.OrderVisit, y => y.Employee)
-            .LeftJoin<OrderScreen>((x, s) => x.Id == s.VisitDetailId  && s.IsDeleted == false)
-                    //&& s.Status < EScreenStatus.End
-			.Where((x, s) => s.Id == null)
+            .LeftJoin<OrderScreen>((x, s) => x.Id == s.VisitDetailId && s.IsDeleted == false)
+            //&& s.Status < EScreenStatus.End
+            .Where((x, s) => s.Id == null)
             .WhereIF(dto.IsHomePage.HasValue && dto.IsHomePage == true,
                 x => x.OrderVisit.VisitTime < dto.CreationTimeEnd && x.OrderVisit.VisitTime > dto.CreationTimeStart)
             .WhereIF(!string.IsNullOrEmpty(dto.No), x => x.OrderVisit.Order!.No!.Contains(dto.No!))
@@ -1779,11 +1779,11 @@ public class OrderController : BaseController
         var endTime = DateTime.Now;
         if (int.Parse(setting?.SettingValue[0]) > 0)
         {
-	        endTime = _timeLimitDomainService
-		        .CalcEndTime(visit.VisitTime.Value, ETimeType.WorkDay, int.Parse(setting?.SettingValue[0]),0,0).EndTime;
-	        if (DateTime.Now > endTime)
-		        throw UserFriendlyException.SameMessage("甄别申请时限已超过系统预定设置,不能申请");
-		}
+            endTime = _timeLimitDomainService
+                .CalcEndTime(visit.VisitTime.Value, ETimeType.WorkDay, int.Parse(setting?.SettingValue[0]), 0, 0).EndTime;
+            if (DateTime.Now > endTime)
+                throw UserFriendlyException.SameMessage("甄别申请时限已超过系统预定设置,不能申请");
+        }
 
         var model = _mapper.Map<OrderScreen>(dto.Data);
         model.Status = EScreenStatus.Apply;
@@ -1849,28 +1849,29 @@ public class OrderController : BaseController
     /// 甄别流程退回
     /// </summary>
     [HttpPost("screen/previous")]
-	public async Task ScreenPrevious([FromBody] PreviousWorkflowDto dto) 
+    public async Task ScreenPrevious([FromBody] PreviousWorkflowDto dto)
     {
-	    var workflow = await _workflowDomainService.GetWorkflowAsync(dto.WorkflowId, withSteps: true,
-		    cancellationToken: HttpContext.RequestAborted);
+        var workflow = await _workflowDomainService.GetWorkflowAsync(dto.WorkflowId, withSteps: true,
+            cancellationToken: HttpContext.RequestAborted);
         if (workflow.Steps.Count > 2)
         {
             await _workflowApplication.PreviousAsync(dto, HttpContext.RequestAborted);
         }
-        else {
+        else
+        {
             TerminateDto terDto = new TerminateDto
             {
                 WorkflowId = dto.WorkflowId,
                 Opinion = "退回申请人"
             };
-			await _workflowDomainService.TerminateAsync(terDto, HttpContext.RequestAborted);
-		}
-	}
-	/// <summary>
-	/// 查询工单甄别流程开启参数
-	/// </summary>
-	/// <returns></returns>
-	[HttpGet("screen/startflow")]
+            await _workflowDomainService.TerminateAsync(terDto, HttpContext.RequestAborted);
+        }
+    }
+    /// <summary>
+    /// 查询工单甄别流程开启参数
+    /// </summary>
+    /// <returns></returns>
+    [HttpGet("screen/startflow")]
     public async Task<NextStepsDto> GetScreenFlowStartOptionsAsync()
     {
         //return await _workflowApplication.GetStartOptionsAsync(WorkflowModuleConsts.OrderScreen,
@@ -2548,15 +2549,15 @@ public class OrderController : BaseController
                     {
                         canInsteadHandle = false;
                     };
-				}
-				if (canInsteadHandle)
-				{
-					var unhandleSteps =
-						await _workflowDomainService.GetUnhandleStepsByOthersAsync(order.WorkflowId, HttpContext.RequestAborted);
-					// 会签多节点 不允许班长代办  归档没有待办节点
-					if (unhandleSteps.Count != 1)
-						canInsteadHandle = false;
-					if (isEnable < 3 && unhandleSteps.Count == 1)
+                }
+                if (canInsteadHandle)
+                {
+                    var unhandleSteps =
+                        await _workflowDomainService.GetUnhandleStepsByOthersAsync(order.WorkflowId, HttpContext.RequestAborted);
+                    // 会签多节点 不允许班长代办  归档没有待办节点
+                    if (unhandleSteps.Count != 1)
+                        canInsteadHandle = false;
+                    if (isEnable < 3 && unhandleSteps.Count == 1)
                     {
                         var type = isEnable - 1;
                         var step = unhandleSteps.FirstOrDefault(d => d.BusinessType == (EBusinessType)type);
@@ -2699,9 +2700,9 @@ public class OrderController : BaseController
             dto.OrderRemarks = remarks;
             if (order.Status == EOrderStatus.SendBack || order.Status == EOrderStatus.SendBackAudit)
             {
-				var sendBack = await _orderSendBackAuditRepository.Queryable().Where(x => x.OrderId == dto.Id).OrderByDescending(x => x.CreationTime).FirstAsync();
-				dto.SendBackOpinion = sendBack is { Id: not null } && !string.IsNullOrEmpty(sendBack.Content) ? sendBack.Content : string.Empty;
-			}
+                var sendBack = await _orderSendBackAuditRepository.Queryable().Where(x => x.OrderId == dto.Id).OrderByDescending(x => x.CreationTime).FirstAsync();
+                dto.SendBackOpinion = sendBack is { Id: not null } && !string.IsNullOrEmpty(sendBack.Content) ? sendBack.Content : string.Empty;
+            }
         }
 
         return dto;
@@ -3172,7 +3173,7 @@ public class OrderController : BaseController
         if (order is null)
             throw new UserFriendlyException($"工单未开启流程, workflowId: {workflow.Id}");
         order.UpdateHandlingStatus(workflow.IsInCountersign);
-		_mapper.Map(workflow, order);
+        _mapper.Map(workflow, order);
         await _orderRepository.UpdateAsync(order, HttpContext.RequestAborted);
     }
 
@@ -3328,7 +3329,7 @@ public class OrderController : BaseController
         var (total, items) = await _orderRepository
             .Queryable(hasHandled: isHandled)
             .Includes(d => d.OrderSpecials)
-            .Where(d=>d.Status != EOrderStatus.WaitForAccept && d.Status != EOrderStatus.BackToUnAccept && d.Status != EOrderStatus.SpecialToUnAccept)
+            .Where(d => d.Status != EOrderStatus.WaitForAccept && d.Status != EOrderStatus.BackToUnAccept && d.Status != EOrderStatus.SpecialToUnAccept)
             .WhereIF(dto.IsProvince.HasValue, d => d.IsProvince == dto.IsProvince)
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.StartsWith(dto.Keyword))
             .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No == dto.No)
@@ -3716,8 +3717,8 @@ public class OrderController : BaseController
                 };
                 await _orderSendBackAuditRepository.AddAsync(audit, HttpContext.RequestAborted);
                 await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { Status = EOrderStatus.SendBackAudit })
-	                .Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
-			}
+                    .Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
+            }
             else
             {
                 var flowDirection = await _workflowApplication.PreviousAsync(dto, HttpContext.RequestAborted);
@@ -3817,7 +3818,7 @@ public class OrderController : BaseController
                 var processType = flowDirection == EFlowDirection.OrgToCenter || flowDirection == EFlowDirection.CenterToCenter
                     ? EProcessType.Zhiban
                     : EProcessType.Jiaoban;
-                await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ProcessType = processType})
+                await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ProcessType = processType })
                     .Where(o => o.Id == sendBack.OrderId).ExecuteCommandAsync(HttpContext.RequestAborted);
                 //发送短信TODO
             }
@@ -4164,7 +4165,7 @@ public class OrderController : BaseController
             //var expiredTime = _timeLimitDomainService.CalcEndTime(DateTime.Now,
             //	ETimeType.WorkDay,
             //	dto.TimeLimit.Value, order.AcceptTypeCode);
-            await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ExpiredTime = expiredTime.ExpiredTime, NearlyExpiredTime = expiredTime.NearlyExpiredTime, NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne, ProcessType = processType,Status = EOrderStatus.Special })
+            await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ExpiredTime = expiredTime.ExpiredTime, NearlyExpiredTime = expiredTime.NearlyExpiredTime, NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne, ProcessType = processType, Status = EOrderStatus.Special })
                 .Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
             var orderDto = _mapper.Map<OrderDto>(order);
             await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderExpiredTimeUpdate, orderDto,
@@ -4214,10 +4215,11 @@ public class OrderController : BaseController
                 //}
             }
         }
-        else {
-			await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { Status = EOrderStatus.SpecialAudit })
-				.Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
-		}
+        else
+        {
+            await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { Status = EOrderStatus.SpecialAudit })
+                .Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
+        }
     }
 
     /// <summary>
@@ -4313,7 +4315,7 @@ public class OrderController : BaseController
                 ? EProcessType.Zhiban
                 : EProcessType.Jiaoban;
             await _workflowApplication.RecallAsync(recall, endTime, order.Status >= EOrderStatus.Filed, HttpContext.RequestAborted);
-			var publish = await _orderPublishRepository.GetAsync(x => x.OrderId == dto.OrderId);
+            var publish = await _orderPublishRepository.GetAsync(x => x.OrderId == dto.OrderId);
             if (publish != null)
             {
                 var publishHistory = _mapper.Map<OrderPublishHistory>(publish);
@@ -4329,7 +4331,7 @@ public class OrderController : BaseController
             }
 
             var reTransactNum = order.ReTransactNum.HasValue ? order.ReTransactNum.Value + 1 : 1;
-            await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ProcessType = processType,ReTransactNum = reTransactNum, Status = EOrderStatus.BackToUnAccept }).Where(o => o.Id == order.Id)
+            await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ProcessType = processType, ReTransactNum = reTransactNum, Status = EOrderStatus.BackToUnAccept }).Where(o => o.Id == order.Id)
                 .ExecuteCommandAsync(HttpContext.RequestAborted);
 
             var visit = await _orderVisitRepository.GetAsync(x => x.OrderId == dto.OrderId && x.VisitState != EVisitState.None);
@@ -4387,7 +4389,7 @@ public class OrderController : BaseController
             var processType = special.FlowDirection is EFlowDirection.OrgToCenter or EFlowDirection.CenterToCenter or EFlowDirection.FiledToCenter
                 ? EProcessType.Zhiban
                 : EProcessType.Jiaoban;
-            await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ExpiredTime = expiredTime.ExpiredTime, NearlyExpiredTime = expiredTime.NearlyExpiredTime, NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne, ProcessType = processType,Status = EOrderStatus.Special })
+            await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ExpiredTime = expiredTime.ExpiredTime, NearlyExpiredTime = expiredTime.NearlyExpiredTime, NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne, ProcessType = processType, Status = EOrderStatus.Special })
                 .Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
             var orderDto = _mapper.Map<OrderDto>(order);
             await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderExpiredTimeUpdate, orderDto,
@@ -4489,7 +4491,7 @@ public class OrderController : BaseController
                 var processType = special.FlowDirection is EFlowDirection.OrgToCenter or EFlowDirection.CenterToCenter or EFlowDirection.FiledToCenter
                     ? EProcessType.Zhiban
                     : EProcessType.Jiaoban;
-                await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ExpiredTime = expiredTime.ExpiredTime, NearlyExpiredTime = expiredTime.NearlyExpiredTime, NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne, ProcessType = processType,Status = EOrderStatus.Special })
+                await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ExpiredTime = expiredTime.ExpiredTime, NearlyExpiredTime = expiredTime.NearlyExpiredTime, NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne, ProcessType = processType, Status = EOrderStatus.Special })
                     .Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
                 var orderDto = _mapper.Map<OrderDto>(order);
                 await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderExpiredTimeUpdate, orderDto,
@@ -4631,24 +4633,24 @@ public class OrderController : BaseController
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword),
                 d => d.Title.Contains(dto.Keyword!) || d.No.Contains(dto.Keyword!))
             //.WhereIF(!string.IsNullOrEmpty(dto.Content), d => d.Content.Contains(dto.Content!))
-            .WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptType))
-            .WhereIF(dto.Channels.Any(), d => dto.Channels.Contains(d.SourceChannel))
-            .WhereIF(dto.HotspotIds.Any(), d => dto.HotspotIds.Contains(d.HotspotId))
+            .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.AcceptType == dto.AcceptType)//受理类型
+                                                                                                //.WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptTypeCode)) //受理类型
+            .WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.SourceChannel == dto.Channel)//来源渠道
+            .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.HotspotSpliceName != null && d.HotspotSpliceName.Contains(dto.Hotspot))
             .WhereIF(!string.IsNullOrEmpty(dto.TransferPhone), d => d.TransferPhone.Contains(dto.TransferPhone!))
-            .WhereIF(dto.OrgCodes.Any(), d => dto.OrgCodes.Contains(d.Workflow.ActualHandleOrgCode))
+            .WhereIF(!string.IsNullOrEmpty(dto.OrgName), d => d.CurrentHandleOrgName == dto.OrgName)//接办部门
             .WhereIF(!string.IsNullOrEmpty(dto.NameOrNo),
                 d => d.AcceptorName.Contains(dto.NameOrNo!) || d.AcceptorStaffNo.Contains(dto.NameOrNo!))
             .WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart)
             .WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd)
-            .WhereIF(dto.EmergencyLevels.Any(), d => dto.EmergencyLevels.Contains(d.EmergencyLevel))
+            //.WhereIF(dto.EmergencyLevels.Any(), d => dto.EmergencyLevels.Contains(d.EmergencyLevel))
             .WhereIF(!string.IsNullOrEmpty(dto.PhoneNo),
                 d => d.FromPhone.Contains(dto.PhoneNo!) || d.Contact.Contains(dto.PhoneNo!))
             .WhereIF(!string.IsNullOrEmpty(dto.PushTypeCode), d => d.PushTypeCode == dto.PushTypeCode)
             .WhereIF(dto.ExpiredTimeStart.HasValue, d => d.ExpiredTime >= dto.ExpiredTimeStart)
             .WhereIF(dto.ExpiredTimeEnd.HasValue, d => d.ExpiredTime <= dto.ExpiredTimeEnd)
-            .WhereIF(dto.Statuses.Any(), d => dto.Statuses.Contains(d.Status))
-            .WhereIF(dto.Statuses.Any(d => d == EOrderStatus.BackToUnAccept),
-                d => d.Status <= EOrderStatus.SpecialToUnAccept);
+            .WhereIF(dto.Status.HasValue, d => d.Status == dto.Status)//工单状态
+            .WhereIF(dto.Status != null && dto.Status == EOrderStatus.BackToUnAccept, d => d.Status <= EOrderStatus.SpecialToUnAccept);
         if (!_sessionContext.OrgIsCenter && _sessionContext.OrgId.Length >= 6)
         {
             var oneCode = _sessionContext.OrgId.Substring(0, 6);
@@ -6198,7 +6200,7 @@ public class OrderController : BaseController
         if (string.IsNullOrEmpty(dto.StepId))
         {
             await _orderRepository.Updateable()
-                .SetColumns(o => new Orders.Order() { SignerId = dto.Handler.UserId, SignerName = dto.Handler.Username,Status = EOrderStatus.HandOver })
+                .SetColumns(o => new Orders.Order() { SignerId = dto.Handler.UserId, SignerName = dto.Handler.Username, Status = EOrderStatus.HandOver })
                 .Where(o => o.Id == dto.OrderId).ExecuteCommandAsync(HttpContext.RequestAborted);
         }
         else
@@ -6212,10 +6214,10 @@ public class OrderController : BaseController
             {
                 new(dto.Handler.UserId,dto.Handler.Username,dto.Handler.OrgId,dto.Handler.OrgName,step.RoleId,step.RoleName, new List<WorkflowStep>{step})
             }, HttpContext.RequestAborted);
-			await _orderRepository.Updateable()
-				.SetColumns(o => new Orders.Order() { Status = EOrderStatus.HandOver })
-				.Where(o => o.Id == dto.OrderId).ExecuteCommandAsync(HttpContext.RequestAborted);
-		}
+            await _orderRepository.Updateable()
+                .SetColumns(o => new Orders.Order() { Status = EOrderStatus.HandOver })
+                .Where(o => o.Id == dto.OrderId).ExecuteCommandAsync(HttpContext.RequestAborted);
+        }
     }
 
     #endregion

+ 12 - 8
src/Hotline.Application/Orders/OrderApplication.cs

@@ -494,25 +494,28 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.StartsWith(dto.Keyword!)) //标题
             .WhereIF(!string.IsNullOrEmpty(dto.ProvinceNo), d => d.ProvinceNo == dto.ProvinceNo) //省本地编号
             .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No == dto.No) //工单编码
-                                                                         //.WhereIF(!string.IsNullOrEmpty(dto.Content), d => d.Content.Contains(dto.Content!))
-            .WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptTypeCode)) //受理类型
-            .WhereIF(dto.Channels.Any(), d => dto.Channels.Contains(d.SourceChannelCode)) //来源渠道
+            .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.AcceptType == dto.AcceptType)//受理类型
+            //.WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptTypeCode)) //受理类型
+            .WhereIF(!string.IsNullOrEmpty(dto.Channel), d=> d.SourceChannel == dto.Channel)
+            //.WhereIF(dto.Channels.Any(), d => dto.Channels.Contains(d.SourceChannelCode)) //来源渠道
                                                                                           //.WhereIF(dto.HotspotIds.Any(), d => dto.HotspotIds.Contains(d.HotspotId)) //热点类型
             .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.HotspotSpliceName != null && d.HotspotSpliceName.Contains(dto.Hotspot))
             .WhereIF(!string.IsNullOrEmpty(dto.TransferPhone), d => d.TransferPhone == dto.TransferPhone!) //转接号码
                                                                                                            //.WhereIF(dto.OrgCodes.Any(), d => d.Workflow.Assigns.Any(s => dto.OrgCodes.Contains(s.OrgCode)))
-            .WhereIF(dto.OrgCodes.Any(), d => dto.OrgCodes.Contains(d.ActualHandleOrgCode)) //接办部门
+            //.WhereIF(dto.OrgCodes.Any(), d => dto.OrgCodes.Contains(d.ActualHandleOrgCode)) //接办部门
+            .WhereIF(!string.IsNullOrEmpty(dto.OrgName), d=>d.CurrentHandleOrgName == dto.OrgName)//接办部门
             .WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), d => d.AcceptorName == dto.NameOrNo! || d.AcceptorStaffNo == dto.NameOrNo!) //受理人/坐席
             .WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart) //受理时间开始
             .WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd) //受理时间结束
-            .WhereIF(dto.EmergencyLevels.Any(), d => dto.EmergencyLevels.Contains(d.EmergencyLevel))  //紧急程度
+            //.WhereIF(dto.EmergencyLevels.Any(), d => dto.EmergencyLevels.Contains(d.EmergencyLevel))  //紧急程度
             .WhereIF(!string.IsNullOrEmpty(dto.FromPhone), d => d.FromPhone == dto.FromPhone) //来电号码
             .WhereIF(!string.IsNullOrEmpty(dto.PhoneNo), d => d.Contact == dto.PhoneNo!) //联系电话
             .WhereIF(!string.IsNullOrEmpty(dto.PushTypeCode), d => d.PushTypeCode == dto.PushTypeCode) //推送分类
             .WhereIF(dto.ExpiredTimeStart.HasValue, d => d.ExpiredTime >= dto.ExpiredTimeStart) //超期时间开始
             .WhereIF(dto.ExpiredTimeEnd.HasValue, d => d.ExpiredTime <= dto.ExpiredTimeEnd) //超期时间结束
-            .WhereIF(dto.Statuses.Any(), d => dto.Statuses.Contains(d.Status))  //工单状态
-            .WhereIF(dto.Statuses.Any(d => d == EOrderStatus.SpecialToUnAccept), d => d.Status <= EOrderStatus.SpecialToUnAccept)
+            //.WhereIF(dto.Statuses.Any(), d => dto.Statuses.Contains(d.Status))  //工单状态
+            .WhereIF(dto.Status.HasValue, d=>d.Status == dto.Status)//工单状态
+            //.WhereIF(dto.Statuses.Any(d => d == EOrderStatus.SpecialToUnAccept), d => d.Status <= EOrderStatus.SpecialToUnAccept)
             .WhereIF(!string.IsNullOrEmpty(dto.ActualHandlerName), d => d.ActualHandlerName == dto.ActualHandlerName) //接办人
             .WhereIF(dto.IsScreen == true, d => d.OrderScreens.Any(x => x.Status != EScreenStatus.Refuse)) //有甄别
             .WhereIF(dto.IsScreen == false, d => !d.OrderScreens.Any(x => x.Status != EScreenStatus.Refuse)) //无甄别
@@ -523,7 +526,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             .WhereIF(dto.IsOverTime == false, d => (d.ExpiredTime > DateTime.Now && d.Status < EOrderStatus.Filed) || (d.ExpiredTime > d.ActualHandleTime && d.Status >= EOrderStatus.Filed)) //否 超期
             .WhereIF(dto.IdentityType != null, d => d.IdentityType == dto.IdentityType) //来电主体
             .WhereIF(!string.IsNullOrEmpty(dto.FromName), d => d.FromName == dto.FromName) //来电人姓名
-            .WhereIF(dto.AreaCodes.Any(), d => dto.AreaCodes.Contains(d.AreaCode)) //区域
+            //.WhereIF(dto.AreaCodes.Any(), d => dto.AreaCodes.Contains(d.AreaCode)) //区域
+            .WhereIF(!string.IsNullOrEmpty(dto.AreaCode), d=>d.AreaCode == dto.AreaCode)//区域
             .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(!string.IsNullOrEmpty(dto.SensitiveWord), d => SqlFunc.JsonArrayAny(d.Sensitive, dto.SensitiveWord))

+ 35 - 33
src/Hotline.Share/Dtos/Order/OrderDto.cs

@@ -391,10 +391,17 @@ namespace Hotline.Share.Dtos.Order
         ///// </summary>
         ////public string AcceptTypeText => AcceptType.GetDescription();
 
+        ///// <summary>
+        ///// 紧急程度
+        ///// </summary>
+        //public string EmergencyLevelText => EmergencyLevel.GetDescription();
         /// <summary>
         /// 紧急程度
         /// </summary>
-        public string EmergencyLevelText => EmergencyLevel.GetDescription();
+        //public EEmergencyLevel EmergencyLevel { get; set; }
+        public EEmergencyLevel EmergencyLevel => IsUrgent
+            ? EEmergencyLevel.Emergency
+            : EEmergencyLevel.UnEmergency;
 
         ///// <summary>
         ///// 超期时间描述(需求:超期3天、0.5天后超期)
@@ -441,7 +448,7 @@ namespace Hotline.Share.Dtos.Order
         /// 是否可办理
         /// </summary>
         public bool CanHandle { get; set; }
-        
+
         /// <summary>
         /// 退回意见
         /// </summary>
@@ -452,10 +459,10 @@ namespace Hotline.Share.Dtos.Order
         /// </summary>
         public bool CanInsteadHandle { get; set; }
 
-		/// <summary>
-		/// 延期申请数量
-		/// </summary>
-		public int DelayingCount => OrderDelays?.Count ?? 0;
+        /// <summary>
+        /// 延期申请数量
+        /// </summary>
+        public int DelayingCount => OrderDelays?.Count ?? 0;
 
         /// <summary>
         /// 是否紧急
@@ -464,10 +471,10 @@ namespace Hotline.Share.Dtos.Order
 
         public string IsUrgentText => IsUrgent ? "紧急" : "";
 
-		/// <summary>
-		/// 发布范围
-		/// </summary>
-		public bool? PublishState { get; set; }
+        /// <summary>
+        /// 发布范围
+        /// </summary>
+        public bool? PublishState { get; set; }
 
         /// <summary>
         /// 是否延期 
@@ -518,7 +525,7 @@ namespace Hotline.Share.Dtos.Order
         /// </summary>
         public string DaysOverdueOrgName { get; set; }
 
-		public EExpiredStatus? CalculateExpiredState()
+        public EExpiredStatus? CalculateExpiredState()
         {
             DateTime? dateTime = DateTime.Now;
             if (Status >= EOrderStatus.Filed)
@@ -532,7 +539,7 @@ namespace Hotline.Share.Dtos.Order
                 {
                     return EExpiredStatus.Normal;
                 }
-                else if(!NearlyExpiredTimeOne.HasValue && dateTime< NearlyExpiredTime)
+                else if (!NearlyExpiredTimeOne.HasValue && dateTime < NearlyExpiredTime)
                 {
                     return EExpiredStatus.Normal;
                 }
@@ -649,21 +656,21 @@ namespace Hotline.Share.Dtos.Order
         /// </summary>
         public DateTime? SendBackAuditTime { get; set; }
 
-		/// <summary>
-		/// 退回意见
-		/// </summary>
-		public List<OrderRemarksDto> OrderRemarks { get; set; }
+        /// <summary>
+        /// 退回意见
+        /// </summary>
+        public List<OrderRemarksDto> OrderRemarks { get; set; }
 
-		/// <summary>
-		/// 交办人(派单员)
-		/// </summary>
-		public string? CenterToOrgHandlerId { get; set; }
+        /// <summary>
+        /// 交办人(派单员)
+        /// </summary>
+        public string? CenterToOrgHandlerId { get; set; }
 
-		/// <summary>
-		/// 交办人(派单员)
-		/// </summary>
-		public string? CenterToOrgHandlerName { get; set; }
-	}
+        /// <summary>
+        /// 交办人(派单员)
+        /// </summary>
+        public string? CenterToOrgHandlerName { get; set; }
+    }
 
     public class UpdateOrderDto : AddOrderDto
     {
@@ -769,11 +776,6 @@ namespace Hotline.Share.Dtos.Order
         public string? AcceptType { get; set; }
         public string? AcceptTypeCode { get; set; }
 
-        /// <summary>
-        /// 紧急程度
-        /// </summary>
-        public EEmergencyLevel EmergencyLevel { get; set; }
-
         public string Title { get; set; }
 
         #region 热点
@@ -1026,8 +1028,8 @@ namespace Hotline.Share.Dtos.Order
         public decimal UnsignedTime { get; set; }
     }
 
-    public class OrderRemarksDto 
-    { 
+    public class OrderRemarksDto
+    {
         /// <summary>
         /// 备注信息
         /// </summary>
@@ -1043,5 +1045,5 @@ namespace Hotline.Share.Dtos.Order
         /// </summary>
         public DateTime RemarkTime { get; set; }
 
-	}
+    }
 }

+ 18 - 12
src/Hotline.Share/Dtos/Order/QueryOrderDto.cs

@@ -28,32 +28,35 @@ namespace Hotline.Share.Dtos.Order
         /// <summary>
         /// 受理类型(√)
         /// </summary>
-        public List<string> AcceptTypes { get; set; } = new();
+        public string? AcceptType { get; set; }
+        //public List<string> AcceptTypes { get; set; } = new();
 
         /// <summary>
         /// 来源渠道(√)
         /// </summary>
-        public List<string> Channels { get; set; } = new();
+        public string? Channel { get; set; }
+        //public List<string> Channels { get; set; } = new();
 
         /// <summary>
         /// 转接号码(转接来源)(√)
         /// </summary>
         public string? TransferPhone { get; set; }
 
-        /// <summary>
-        /// 热点分类(√)
-        /// </summary>
-        public List<string> HotspotIds { get; set; } = new();
+        ///// <summary>
+        ///// 热点分类(√)
+        ///// </summary>
+        //public List<string> HotspotIds { get; set; } = new();
 
         /// <summary>
         /// 热点分类关键词
         /// </summary>
-        public string Hotspot { get; set; }
+        public string? Hotspot { get; set; }
 
         /// <summary>
         /// 接办部门(√)
         /// </summary>
-        public List<string> OrgCodes { get; set; } = new();
+        public string? OrgName { get; set; }
+        //public List<string> OrgCodes { get; set; } = new();
 
         /// <summary>
         /// 受理坐席名字或工号(×)
@@ -69,7 +72,8 @@ namespace Hotline.Share.Dtos.Order
         /// <summary>
         /// 紧急程度(√)
         /// </summary>
-        public List<EEmergencyLevel> EmergencyLevels { get; set; } = new();
+        public EEmergencyLevel? EmergencyLevel { get; set; }
+        //public List<EEmergencyLevel> EmergencyLevels { get; set; } = new();
 
         /// <summary>
         /// 来电号码(×)
@@ -97,7 +101,8 @@ namespace Hotline.Share.Dtos.Order
         /// <summary>
         /// 工单状态(√)
         /// </summary>
-        public List<EOrderStatus> Statuses { get; set; } = new();
+        public EOrderStatus? Status { get; set; }
+        //public List<EOrderStatus> Statuses { get; set; } = new();
 
         /// <summary>
         /// 接办人(√)
@@ -112,7 +117,7 @@ namespace Hotline.Share.Dtos.Order
         /// <summary>
         /// 当前办理节点(√)(单选)
         /// </summary>
-        public string CurrentStepCode { get; set; }
+        public string? CurrentStepCode { get; set; }
         /// <summary>
         /// 办结时间(√)
         /// </summary>
@@ -137,7 +142,8 @@ namespace Hotline.Share.Dtos.Order
         /// <summary>
         /// 区域(×)(多选)
         /// </summary>
-        public List<string> AreaCodes { get; set; } = new();
+        public string? AreaCode { get; set; }
+        //public List<string> AreaCodes { get; set; } = new();
 
         /// <summary>
         /// 是否省工单(空为全部  true为省工单 false为市工单)

+ 0 - 5
src/Hotline/Orders/Order.cs

@@ -140,11 +140,6 @@ namespace Hotline.Orders
 
         public string? AcceptTypeCode { get; set; }
 
-        /// <summary>
-        /// 紧急程度
-        /// </summary>
-        public EEmergencyLevel EmergencyLevel { get; set; } = EEmergencyLevel.Normal;
-
         public string Title { get; set; }
 
         #region 热点