Преглед изворни кода

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

tangjiang пре 9 месеци
родитељ
комит
cff3324fdc

+ 7 - 0
src/Hotline.Ai.Jths/AiVisitService.cs

@@ -194,6 +194,13 @@ namespace Hotline.Ai.Jths
             return null;
         }
 
+        public async Task<AiVisitQueryData> QueryAiVisitTaskResult(string batchId,DateTime beginTime,DateTime endTime,CancellationToken cancellationToken)
+        {
+            var dto = new AiVisitServiceQueryResultRequest { StartTime = beginTime, EndTime = endTime, BatchUid = batchId };
+            var response = await ExecuteAsync<AiVisitServiceQueryResultRequest, AiVisitServiceQueryResultResponse>(_baseUrl + "/edas/task/result", Method.Get, dto, cancellationToken) ;
+            return new AiVisitQueryData() {  };
+        }
+
 
         public async Task<TResponse> ExecuteAsync<TRequest,TResponse>(string path, Method httpMethod, TRequest request,
             CancellationToken cancellationToken)

+ 13 - 0
src/Hotline.Ai.Jths/OrderVisits/AiVisitServiceQueryRequest.cs

@@ -11,4 +11,17 @@ namespace Hotline.Ai.Jths.OrderVisits
 
         public int PageSize { get; set; }
     }
+
+    public class AiVisitServiceQueryResultRequest
+    {
+        public DateTime StartTime { get; set; }
+
+        public DateTime EndTime { get; set; }
+
+        public string BatchUid { get; set; }
+
+        public int PageNo { get; set; } = 1;
+
+        public int PageSize { get; set; } = 100;
+    }
 }

+ 13 - 0
src/Hotline.Ai.Jths/OrderVisits/AiVisitServiceQueryResponse.cs

@@ -44,4 +44,17 @@ namespace Hotline.Ai.Jths.OrderVisits
         [JsonPropertyName("status")]
         public int Status { get; set; }
     }
+
+
+
+
+
+
+
+    public class AiVisitServiceQueryResultResponse
+    {
+        public int code { get; set; }
+
+        public string msg { get; set; }
+    }
 }

+ 2 - 2
src/Hotline.Api/Controllers/AiController.cs

@@ -559,7 +559,7 @@ namespace Hotline.Api.Controllers
                             {
                                 aiOrderVisitDetail.AiOrderVisitState = Share.Enums.Ai.EAiOrderVisitState.Ended; //更新AI子表
                                 aiOrderVisitDetail.AiVisitTime = DateTime.Now;
-                                //aiOrderVisitDetail.CallTime = callRecord.CallTime;
+                                aiOrderVisitDetail.CallTime = string.IsNullOrEmpty(callRecord.CallTime)? null : DateTime.Parse(callRecord.CallTime);
                                 aiOrderVisit.VisitedCount++;
                                 //处理结果
                                 var visitDetail = _orderVisitDetailRepository.Queryable().Where(x => x.VisitId == aiOrderVisitDetail.OrderVisit.Id).ToList();
@@ -704,7 +704,7 @@ namespace Hotline.Api.Controllers
                                 aiOrderVisitDetail.AiOrgProcessingResults = orgProcessingResults;
                                 aiOrderVisitDetail.AiOrgNoSatisfiedReason = visitContent;
                                 aiOrderVisitDetail.AiSeatNoSatisfiedReason = seatVisitContent;
-                                //aiOrderVisitDetail.CallTimes = dto.CallTimes.Value;
+                                aiOrderVisitDetail.CallTimes = dto.CallTimes.Value;
 
                                 if (orgProcessingResults != null)
                                 {

+ 1 - 0
src/Hotline.Api/Controllers/CommonPController.cs

@@ -178,6 +178,7 @@ namespace Hotline.Api.Controllers
                 .Where(d => d.DelayState == EDelayState.Examining).CountAsync();
             //甄别
             var screenAudit = await _orderScreenRepository.Queryable(hasHandled: false)
+                .Where(x=>x.CreationTime < DateTime.Now && x.CreationTime > DateTime.Now.AddMonths(-2))
                 .Where(d => d.Status == EScreenStatus.Apply)
                 .CountAsync();
             //var workTime = _timeLimitDomainService.CalcWorkTimeReduce(DateTime.Now, 5);

+ 13 - 8
src/Hotline.Api/Controllers/QualityController.cs

@@ -52,8 +52,9 @@ namespace Hotline.Api.Controllers
         private readonly ISystemSettingCacheManager _systemSettingCacheManager;
         private readonly ICallApplication _callApplication;
         private readonly IOptionsSnapshot<CallCenterConfiguration> _callcenterOptions;
+        private readonly IRepository<SystemLog> _logRepository;
 
-        public QualityController(
+		public QualityController(
             ISessionContext sessionContext,
             IMapper mapper,
             IQualityRepository qualitey,
@@ -70,7 +71,8 @@ namespace Hotline.Api.Controllers
             ILogger<QualityController> logger,
             ISystemSettingCacheManager systemSettingCacheManager,
             ICallApplication callApplication,
-            IOptionsSnapshot<CallCenterConfiguration> callcenterOptions)
+            IOptionsSnapshot<CallCenterConfiguration> callcenterOptions,
+            IRepository<SystemLog> logRepository)
         {
             _sessionContext = sessionContext;
             _mapper = mapper;
@@ -89,7 +91,8 @@ namespace Hotline.Api.Controllers
             _systemSettingCacheManager = systemSettingCacheManager;
             _callApplication = callApplication;
             _callcenterOptions = callcenterOptions;
-        }
+            _logRepository = logRepository;
+		}
         #region 质检管理
         /// <summary>
         /// 删除质检
@@ -630,7 +633,7 @@ namespace Hotline.Api.Controllers
         }
 
         /// <summary>
-        /// 智能质检结果返回接收
+        /// 智能质检结果返回接收 
         /// </summary>
         /// <param name="dto"></param>
         /// <returns></returns>
@@ -639,10 +642,12 @@ namespace Hotline.Api.Controllers
         [LogFilter("智能质检结果返回接收")]
         public async Task AiResult([FromBody] List<AiQualityResultDto> dto)
         {
-	        Request.EnableBuffering();
-	        var sr = new StreamReader(Request.Body);
-	        var data = await sr.ReadToEndAsync(HttpContext.RequestAborted);
-	        _logger.LogInformation(data);
+            //Request.EnableBuffering();
+            //var sr = new StreamReader(Request.Body);
+            //var data = await sr.ReadToEndAsync(HttpContext.RequestAborted);
+            //   _logger.LogInformation(data);
+            //   await _logRepository.Updateable().SetColumns( x=> new SystemLog(){ ExecuteParam = data }).Where(x => x.Id == "08dcb132-cf60-4d1f-84ae-eb0c463f2175").ExecuteCommandAsync();
+
             await _qualityApplication.AiResultAsync(dto, HttpContext.RequestAborted);
         }
 

+ 2 - 3
src/Hotline.Api/Controllers/TestController.cs

@@ -591,9 +591,8 @@ IRepository<Hotspot> hotspotRepository
         //.CalcEndTime(DateTime.Parse("2024-07-09 14:57:51"), ETimeType.WorkDay, -3, 0, 0);///.EndTime;
         //var timeResult = _timeLimitDomainService.CalcEndTime(DateTime.Now, ETimeType.WorkDay, 3, 80, 50);
         //var t = _timeLimitDomainService.CalcWorkTimeEx(DateTime.Parse("2024-07-22 11:30:00"), DateTime.Parse("2024-07-23 14:00:00"), false);
-        var r = await _aiVisitService.QueryAiVisitTaskEx("MTAwMDAx173ASS0kSUAqK2rl2sFGME", "", HttpContext.RequestAborted);
-
-
+        //var r = await _aiVisitService.QueryAiVisitTaskEx("MTAwMDAx173ASS0kSUAqK2rl2sFGME", "", HttpContext.RequestAborted);
+        var r = await _aiVisitService.QueryAiVisitTaskResult(batchId, DateTime.Parse("2024-07-28"), DateTime.Parse("2024-08-01"), HttpContext.RequestAborted);
         return OpenResponse.Ok(DateTime.Now.ToString("F"));
     }
 

+ 1 - 1
src/Hotline.Application/Handlers/FlowEngine/WorkflowEndHandler.cs

@@ -203,7 +203,7 @@ public class WorkflowEndHandler : INotificationHandler<EndWorkflowNotify>
                     {
                         order.FileUserRole = EFileUserType.Org;
                     }
-
+                    
                     //是否已解决
                     order.IsResolved = notification.Dto.External == null ? false : notification.Dto.External.IsResolved;
 

+ 4 - 4
src/Hotline.Application/Orders/OrderSecondaryHandlingApplication.cs

@@ -202,9 +202,9 @@ namespace Hotline.Application.Orders
         /// <returns></returns>
         public ISugarQueryable<OrderVisitDetail> ApplyQuery(MayScreenListDto dto, CancellationToken cancellationToken)
         {
-            dto.CreationTimeEnd = DateTime.Now;
-            //dto.CreationTimeStart = DateTime.Now;
-            dto.CreationTimeStart = _timeLimitDomainService.CalcWorkTimeReduce(DateTime.Now, 5);
+            //dto.CreationTimeEnd = DateTime.Now;
+            ////dto.CreationTimeStart = DateTime.Now;
+            //dto.CreationTimeStart = _timeLimitDomainService.CalcWorkTimeReduce(DateTime.Now, 5);
 
             var query = _orderVisitedDetailRepository.Queryable(false, true)
                 .Includes(x => x.OrderVisit)
@@ -214,7 +214,7 @@ namespace Hotline.Application.Orders
                 .Where(x => x.OrderVisit.Order.IsProvince == false)
                 .LeftJoin<OrderScreen>((x, s) => x.Id == s.VisitDetailId && s.Status < EScreenStatus.End && s.IsDeleted == false)
                 .Where((x, s) => s.Id == null && (x.SecondaryHandling.State == ESecondaryHandlingState.NotApply || x.SecondaryHandling.Id == null))
-                .Where(x => x.OrderVisit.VisitTime < dto.CreationTimeEnd && x.OrderVisit.VisitTime > dto.CreationTimeStart)
+                //.Where(x => x.OrderVisit.VisitTime < dto.CreationTimeEnd && x.OrderVisit.VisitTime > dto.CreationTimeStart)
                 .WhereIF(!string.IsNullOrEmpty(dto.No), x => x.OrderVisit.Order!.No!.Contains(dto.No!))
                 .WhereIF(dto.IsProvince.HasValue, x => x.OrderVisit.Order!.IsProvince == dto.IsProvince)
                 .WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.OrderVisit.Order!.Title!.Contains(dto.Title!))

+ 2 - 2
src/Hotline.Share/Dtos/Ai/AiDto.cs

@@ -196,7 +196,7 @@ namespace Hotline.Share.Dtos.Ai
         /// </summary>
         public int TaskStatus { get; set; }
 
-        public string? CallTimes { get; set; }
+        public int? CallTimes { get; set; }
 
         public List<CallRecordDto> CallRecordList { get; set; }
     }
@@ -206,7 +206,7 @@ namespace Hotline.Share.Dtos.Ai
         public int CallNo { get; set; }
 
         //public DateTime? CallTime { get; set; }
-        //public string? CallTime { get; set; }
+        public string? CallTime { get; set; }
 
         /// <summary>
         /// 呼叫状态(1:呼叫中、2:完成、3:呼叫失败)

+ 18 - 2
src/Hotline.Share/Dtos/TrCallCenter/TrTelDao.cs

@@ -749,8 +749,24 @@ namespace Hotline.Share.Dtos.TrCallCenter
         /// </summary>
         public string? OperatorName { get; set; }
 
-        #endregion
-    }
+
+        /// <summary>
+        /// 转写内容
+        /// </summary>
+        public string? TransliterationContent { get; set; }
+
+        /// <summary>
+        /// 转写状态
+        /// </summary>
+        public ECallTransliterationState TransliterationState { get; set; }
+
+        /// <summary>
+        /// 转写id  涉及转写失败后再次推送  id需要更换
+        /// </summary>
+        public string? TransliterationId { get; set; }
+
+		#endregion
+	}
 
     public class TrCallDtoNew
     {

+ 2 - 0
src/Hotline/Ai/Visit/IAiVisitService.cs

@@ -18,5 +18,7 @@ namespace Hotline.Ai.Visit
         Task<AiVisitQueryData> QueryAiVisitTaskEx(string batchId, string taskId, CancellationToken cancellationToken);
 
         Task<bool> ChangeStatusAsync(string batchUid, string status, CancellationToken cancellationToken);
+
+        Task<AiVisitQueryData> QueryAiVisitTaskResult(string batchId, DateTime beginTime, DateTime endTime, CancellationToken cancellationToken);
     }
 }

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

@@ -107,7 +107,7 @@ namespace Hotline.FlowEngine.Workflows
             {
                 await _publisher.PublishAsync(
                     new StartWorkflowNotify(workflow, dto, flowAssignInfo, startStep.WorkflowTrace),
-                    PublishStrategy.ParallelNoWait, cancellationToken);
+                    PublishStrategy.ParallelWhenAll, cancellationToken);
 
                 //firstStep是否为end,t: 实际办理节点为startStep, 并且handlerId赋值 f: 实际办理节点为firstStep, handlerId未赋值
                 workflow.UpdateActualStepWhenHandle(startStep,

+ 1 - 1
src/Hotline/Orders/OrderVisitDetail.cs

@@ -20,7 +20,7 @@ namespace Hotline.Orders
         public OrderVisit OrderVisit { get; set; }
 
         /// <summary>
-        /// 通话记录
+        /// 二次办理申请
         /// </summary>
         [Navigate(NavigateType.OneToOne, nameof(Id),nameof(OrderSecondaryHandling.VisitDetailId))]
         public OrderSecondaryHandling SecondaryHandling { get; set; }

+ 10 - 0
src/Hotline/Permissions/EPermission.cs

@@ -2340,6 +2340,16 @@ namespace Hotline.Permissions
         /// </summary>
         [Display(GroupName ="中心办件统计",Name ="市州互转信息列表",Description ="市州互转信息列表")]
         TransferCity = 110504,
+        /// <summary>
+        /// 回退错件统计
+        /// </summary>
+        [Display(GroupName = "中心办件统计", Name = "回退错件统计", Description = "回退错件统计")]
+        WrongItemOrder = 110505,
+        /// <summary>
+        /// 应急清单
+        /// </summary>
+        [Display(GroupName = "中心办件统计", Name = "应急清单", Description = "应急清单")]
+        EmergencyList = 110506,
         #endregion
 
         #region 部门办件统计(11,06,00)