Forráskód Böngészése

Merge branch 'test' into test_20250305tj

tangjiang 1 hónapja
szülő
commit
b95155c39f

+ 2 - 1
src/Hotline.Api/Controllers/HomeController.cs

@@ -195,7 +195,8 @@ public class HomeController : BaseController
             CallInOpenType = int.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.CallInOpenType).SettingValue[0]),
             Snapshot = _systemSettingCacheManager.Snapshot,
             IsTelRest = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.IsTelRest).SettingValue[0]),
-            TelRestNum = int.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.TelRestNum).SettingValue[0])
+            TelRestNum = int.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.TelRestNum).SettingValue[0]),
+            IsOpenSpecialPhone = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.IsOpenSpecialPhone).SettingValue[0])
         };
         return rsp;
     }

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

@@ -3532,8 +3532,17 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             .WhereIF(!string.IsNullOrEmpty(dto.OrderTagCode),
                 d => SqlFunc.Subqueryable<OrderRelationTag>().InnerJoin<SystemDicData>((s, p) => s.TagId == p.Id)
                     .Where((s, p) => p.DicDataValue == dto.OrderTagCode && d.OrderId == s.OrderId).Any()) //工单标签
-            .OrderByIF(dto.VisitStateQuery != EVisitStateQuery.Visited, d => d.Order.IsUrgent, OrderByType.Desc)
-            .OrderByDescending(d => d.PublishTime);
+            .OrderByIF(_appOptions.Value.IsYiBin && dto.VisitStateQuery != EVisitStateQuery.Visited, d => d.Order.IsUrgent, OrderByType.Desc)
+             .OrderByIF(_appOptions.Value.IsZiGong == false, d => d.PublishTime, OrderByType.Desc)
+            //.OrderByDescending(d => d.PublishTime)
+            .OrderByIF(dto is { SortField: "publishTime", SortRule: 0 }, x => x.PublishTime, OrderByType.Asc) // 发布时间升序
+            .OrderByIF(dto is { SortField: "publishTime", SortRule: 1 }, x => x.PublishTime, OrderByType.Desc)// 发布时间升序
+            .OrderByIF(dto is { SortField: "order.creationTime", SortRule: 0 }, x => x.Order.CreationTime, OrderByType.Asc) // 受理时间升序
+            .OrderByIF(dto is { SortField: "order.creationTime", SortRule: 1 }, x => x.Order.CreationTime, OrderByType.Desc) // 受理时间升序
+            .OrderByIF(dto is { SortField: "order.filedTime", SortRule: 0 }, x => x.Order.FiledTime, OrderByType.Asc) // 办结时间升序
+            .OrderByIF(dto is { SortField: "order.filedTime", SortRule: 1 }, x => x.Order.FiledTime, OrderByType.Desc) // 办结时间升序
+            .OrderByIF(_appOptions.Value.IsZiGong && string.IsNullOrEmpty(dto.SortField), d => d.PublishTime, OrderByType.Desc)
+            ;
         return query;
     }
 
@@ -5331,9 +5340,9 @@ public class OrderApplication : IOrderApplication, IScopeDependency
                 user = await _userRepository.Queryable()
                     .Where(d => d.Roles.Any(x => x.Name == roleSeat))
                     .FirstAsync(cancellationToken);
-                if(user is null)
+                if (user is null)
                     throw UserFriendlyException.SameMessage("坐席角色未设置用户");
-               break;
+                break;
             case EBusinessType.Send:
                 var roleSend = _systemSettingCacheManager.GetSetting(SettingConstants.RolePaiDan)?.SettingValue.FirstOrDefault();
                 if (string.IsNullOrEmpty(roleSend))

+ 4 - 6
src/Hotline.Application/SpecialNumber/SpecialNumberApplication.cs

@@ -138,9 +138,8 @@ namespace Hotline.Application.SpecialNumber
         public async Task<SpecialNumberInfoDto> GetSpecialNumberAsync(string Id, CancellationToken cancellationToken)
         {
             var data = await _specialNumberRepository.Queryable()
-                .Where(x => x.Id == Id).FirstAsync();
-            if (data == null)
-                throw UserFriendlyException.SameMessage("特殊号码查询失败");
+                .FirstAsync(x => x.Id == Id, cancellationToken);
+            if (data == null) return new();
             return _mapper.Map<SpecialNumberInfoDto>(data);
         }
 
@@ -156,9 +155,8 @@ namespace Hotline.Application.SpecialNumber
         public async Task<SpecialNumberInfoDto> GetSpecialNumberByAsync(string PhoneNumber, CancellationToken cancellationToken)
         {
             var data = await _specialNumberRepository.Queryable()
-                .Where(x => x.PhoneNumber == PhoneNumber).FirstAsync();
-            if (data == null)
-                throw UserFriendlyException.SameMessage("特殊号码查询失败");
+                .FirstAsync(x => x.PhoneNumber == PhoneNumber, cancellationToken);
+            if (data == null) return new();
             return _mapper.Map<SpecialNumberInfoDto>(data);
         }
 

+ 2 - 1
src/Hotline/FlowEngine/Workflows/WorkflowDomainService.cs

@@ -988,7 +988,8 @@ namespace Hotline.FlowEngine.Workflows
                 newPrevStep.Assign(handle.UserId, handle.Username, handle.OrgId, handle.OrgName, handle.RoleId, handle.RoleName);
             }
 
-            await Task.Run(() => newStepConfig?.Invoke(workflow, currentStep, prevStepDefine, prevStep, newPrevStep), cancellationToken);
+            //await Task.Run(() => newStepConfig?.Invoke(workflow, currentStep, prevStepDefine, prevStep, newPrevStep), cancellationToken);
+            newStepConfig?.Invoke(workflow, currentStep, prevStepDefine, prevStep, newPrevStep);
             await _workflowStepRepository.AddAsync(newPrevStep, cancellationToken);
             await CreateTraceAsync(workflow, newPrevStep, EWorkflowTraceType.Previous, cancellationToken);
 

+ 12 - 9
src/Hotline/Orders/DatabaseEventHandler/OrderVisitDetailEventHandler.cs

@@ -45,12 +45,13 @@ public class OrderVisitDetailEventHandler : IUpdateDatabaseEvent<OrderVisitDetai
         var name = "回填Order回访字段";
         if (visit.VisitTarget == EVisitTarget.Org && visit.OrgProcessingResults != null)
         {
-            if (visit.OrgProcessingResults.Value == "不满意") return;
-
             var orderId = _orderVisitRepository.Queryable()
-                .Where(m => m.Id == visit.VisitId)
-                .Select(m => new { m.OrderId, m.No })
-                .First();
+               .Where(m => m.Id == visit.VisitId)
+               .Select(m => new { m.OrderId, m.No, m.VisitState })
+               .First();
+
+            if (visit.OrgProcessingResults.Value == "不满意" && orderId.VisitState!= EVisitState.Visited) return;
+           
             _orderRepository.Updateable()
                 .SetColumns(m => m.OrgProcessingResults == visit.OrgProcessingResults)
                 .Where(m => m.Id == orderId.OrderId && m.Status == EOrderStatus.Visited)
@@ -60,11 +61,13 @@ public class OrderVisitDetailEventHandler : IUpdateDatabaseEvent<OrderVisitDetai
 
         if (visit.VisitTarget == EVisitTarget.Seat && visit.SeatEvaluate != null)
         {
-            if (visit.SeatEvaluate == ESeatEvaluate.NoSatisfied || visit.SeatEvaluate == ESeatEvaluate.VeryNoSatisfied) return;
             var orderId = _orderVisitRepository.Queryable()
-                .Where(m => m.Id == visit.VisitId)
-                .Select(m => new { m.OrderId, m.No })
-                .First();
+               .Where(m => m.Id == visit.VisitId)
+               .Select(m => new { m.OrderId, m.No,m.VisitState })
+               .First();
+
+            if ((visit.SeatEvaluate == ESeatEvaluate.NoSatisfied || visit.SeatEvaluate == ESeatEvaluate.VeryNoSatisfied) && orderId.VisitState!= EVisitState.Visited) return;
+           
             _orderRepository.Updateable()
                 .SetColumns(m => m.SeatEvaluate == visit.SeatEvaluate)
                 .Where(m => m.Id == orderId.OrderId && m.Status == EOrderStatus.Visited)

+ 5 - 0
src/Hotline/Settings/SettingConstants.cs

@@ -733,5 +733,10 @@ namespace Hotline.Settings
         /// 是否不推送呼出的无文件的通话记录
         /// </summary>
         public const string IsNoPushCallNativeOutNoFile = "IsNoPushCallNativeOutNoFile";
+
+        /// <summary>
+        /// 是否开启特殊号码功能
+        /// </summary>
+        public const string IsOpenSpecialPhone = "IsOpenSpecialPhone";
     }
 }