Przeglądaj źródła

Merge branch 'test' of http://110.188.24.182:10023/Fengwo/hotline into test

tangjiang 5 miesięcy temu
rodzic
commit
d2297eb13d

+ 8 - 2
src/Hotline.Api/Controllers/OrderController.cs

@@ -993,7 +993,10 @@ public class OrderController : BaseController
     [HttpPost("visit")]
     [LogFilter("工单回访")]
     public async Task Visit([FromBody] VisitDto dto)
-        => await _orderApplication.SaveOrderVisit(dto, HttpContext.RequestAborted);
+    {
+        dto.CallId = await _callApplication.GetOrSetCallIdAsync(dto.CallId, HttpContext.RequestAborted);
+        await _orderApplication.SaveOrderVisit(dto, HttpContext.RequestAborted);
+    }
 
     /// <summary>
     /// 批量保存回访
@@ -1063,7 +1066,10 @@ public class OrderController : BaseController
                             VisitOrgCode = orgDetail.VisitOrgCode,
                         });
                 }
-
+                if (visitDto.CallId != null)
+                { 
+                    visitDto.CallId = await _callApplication.GetOrSetCallIdAsync(visitDto.CallId, HttpContext.RequestAborted);
+                }
                 await _orderApplication.SaveOrderVisit(visitDto, HttpContext.RequestAborted);
                 await _orderVisitRepository.Updateable()
                     .Where(m => m.Id == visit.VisitId)

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

@@ -623,7 +623,7 @@ namespace Hotline.Api.Controllers
         /// <param name="dto"></param>
         /// <returns></returns>
         [HttpPut("cache/remove")]
-        public async Task<IActionResult> ClearCache([FromQuery] CleanCacheInDto dto)
+        public async Task<IActionResult> ClearCache([FromBody] CleanCacheInDto dto)
         {
             foreach (var key in dto.Keys)
             {

+ 9 - 0
src/Hotline.Application.Tests/Application/DefaultCallApplicationTest.cs

@@ -61,4 +61,13 @@ public class DefaultCallApplicationTest
             item.OrderNo.ShouldNotBeNull();
         }
     }
+
+    [Fact]
+    public async Task GetCall_Test()
+    {
+        var result = await _defaultCallApplication.GetCallAsync("01J2ZP7J6X3K5FXN4B5KD54FBA", CancellationToken.None);
+        result.ShouldNotBeNull();
+        result = await _defaultCallApplication.GetCallAsync("2024062419085100943CTI", CancellationToken.None);
+        result.ShouldNotBeNull();
+    }
 }

+ 2 - 0
src/Hotline.Application/CallCenter/DefaultCallApplication.cs

@@ -323,6 +323,8 @@ public abstract class DefaultCallApplication : ICallApplication
     public virtual async Task<CallNative> GetCallAsync(string callId, CancellationToken cancellationToken)
     {
         if (string.IsNullOrEmpty(callId)) return null;
+        if (callId.StartsWith("2024"))
+            return await _callNativeRepository.GetAsync(m => m.CallNo == callId, cancellationToken);
         return await _callNativeRepository.GetAsync(callId, cancellationToken);
     }
 

+ 1 - 0
src/Hotline.Application/Orders/IOrderApplication.cs

@@ -78,6 +78,7 @@ namespace Hotline.Application.Orders
 
         /// <summary>
         /// 回访保存
+        /// 调用本方法前, 先调用 _callApplication.GetOrSetCallIdAsync 转换 CallId
         /// </summary>
         /// <param name="dto"></param>
         /// <param name="cancellationToken"></param>

+ 6 - 4
src/Hotline.Application/Orders/OrderApplication.cs

@@ -71,6 +71,7 @@ using static NPOI.SS.Format.CellNumberFormatter;
 using System.Linq;
 using System.Linq.Dynamic.Core;
 using System.Threading;
+using Hotline.Application.CallCenter;
 
 namespace Hotline.Application.Orders;
 
@@ -854,6 +855,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
 
     /// <summary>
     /// 回访保存
+    /// 调用本方法前, 先调用 _callApplication.GetOrSetCallIdAsync 转换 CallId
     /// </summary>
     /// <param name="dto"></param>
     /// <param name="cancellationToken"></param>
@@ -1081,8 +1083,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
                                                                                                         //.WhereIF(!string.IsNullOrEmpty(dto.OrgId), d => d.CurrentHandleOrgId == dto.OrgId)//接办部门
          .WhereIF(!string.IsNullOrEmpty(dto.OrgLevelOneName), d => d.OrgLevelOneName.Contains(dto.OrgLevelOneName)) //一级部门
          .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), d => d.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门(综合查询模糊)
-
-         .WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart) //受理时间开始
+         .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.Contains(dto.FromPhone)) //来电号码
@@ -2427,8 +2429,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             .WhereIF(dto.TabStatus.HasValue && dto.Status == EScreenStatus.MyHandle, d => (d.Status != EScreenStatus.Apply))
             .WhereIF(dto.DataScope is 1, d => d.CreatorId == _sessionContext.RequiredUserId)
             .WhereIF(dto.Status.HasValue, d => d.Status == dto.Status)
-            .WhereIF(dto.QueryScreenType is EQueryOrderScreenType.Org, d => d.ScreenType == EOrderScreenType.Org)
-            .WhereIF(dto.QueryScreenType is EQueryOrderScreenType.Seat, d => d.ScreenType == EOrderScreenType.Seat)
+            .WhereIF(_appOptions.Value.IsZiGong && dto.QueryScreenType is EQueryOrderScreenType.Org, d => d.ScreenType == EOrderScreenType.Org)
+            .WhereIF(_appOptions.Value.IsZiGong && dto.QueryScreenType is EQueryOrderScreenType.Seat, d => d.ScreenType == EOrderScreenType.Seat)
             .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.Order!.AcceptTypeCode! == dto.AcceptType!)
             .WhereIF(!string.IsNullOrEmpty(dto.HotspotSpliceName), d => d.Order!.Hotspot.HotSpotFullName!.StartsWith(dto.HotspotSpliceName!))
             .WhereIF(!string.IsNullOrEmpty(dto.SourceChannel), d => d.Order!.SourceChannelCode! == dto.SourceChannel!)