Kaynağa Gözat

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

tangjiang 9 ay önce
ebeveyn
işleme
7a9906a208

+ 27 - 41
src/Hotline.Api/Controllers/CallController.cs

@@ -142,48 +142,34 @@ namespace Hotline.Api.Controllers
         [HttpPost("calls/transliteration")]
         public async Task CallTransliteration([FromBody] CallTransliteration dto)
         {
-	        string audioFile;
-	        string fromNo;
-	        DateTime? callStartTime = null;
-            string Id;
-			//if (_callcenterOptions.Value.CallCenterType == AppDefaults.CallCenterType.TianRun)
-	  //      {
-		    var call = await _callApplication.GetTianrunCallAsync(dto.Id, HttpContext.RequestAborted);
-		    if (call is null)
-			    throw UserFriendlyException.SameMessage("通话信息错误");
-		    if (call.TransliterationState  == ECallTransliterationState.Underway)
-			    throw UserFriendlyException.SameMessage("正在转写中,请勿重复点击,请稍作等待");
-		    if (call.TransliterationState == ECallTransliterationState.Succeed)
-			    throw UserFriendlyException.SameMessage("转写成功,不能重新转写");
-			call.InitTransliterationId();
-			await _callApplication.EditTransliterationStateAsync(call.Id, ECallTransliterationState.Underway, call.TransliterationId, HttpContext.RequestAborted);
-			audioFile = call.RecordingAbsolutePath;
-		    fromNo = call.CPN;
-		    callStartTime = call.CreatedTime;
-		    Id = call.TransliterationId;
-			//}
-	  //      else if (_callcenterOptions.Value.CallCenterType == AppDefaults.CallCenterType.XingTang)
-	  //      {
-		 //       var call = await _callApplication.GetCallAsync(dto.Id, HttpContext.RequestAborted);
-		 //       if (call is null)
-			//        throw UserFriendlyException.SameMessage("通话信息错误");
-			//	audioFile = call.AudioFile;
-		 //       fromNo = call.FromNo;
-		 //       callStartTime = call.BeginIvrTime;
-		 //       Id = call.Id;
-			//}
-	        var setting = _systemSettingCacheManager.GetSetting(SettingConstants.ViteRecordPrefix);
-	       
-	        var handler = new AiQualityHandler()
+	        foreach (var id in dto.Ids)
 	        {
-		        Id = Id,
-		        Source = "AiAnswered",
-		        AudioFile = audioFile,
-		        FromNo = fromNo,
-		        CallStartTime = callStartTime,
-		        ViteRecordPrefix = setting?.SettingValue[0],
-	        };
-	        await _publisher.PublishAsync(new AiOrderQualityNotify(handler), PublishStrategy.ParallelNoWait, HttpContext.RequestAborted);
+				var call = await _callApplication.GetTianrunCallAsync(id, HttpContext.RequestAborted);
+				if (call is null)
+					throw UserFriendlyException.SameMessage("通话信息错误");
+				if (call.TransliterationState == ECallTransliterationState.Underway)
+					throw UserFriendlyException.SameMessage("正在转写中,请勿重复点击,请稍作等待");
+				if (call.TransliterationState == ECallTransliterationState.Succeed)
+					throw UserFriendlyException.SameMessage("转写成功,不能重新转写");
+				call.InitTransliterationId();
+				await _callApplication.EditTransliterationStateAsync(call.Id, ECallTransliterationState.Underway, call.TransliterationId, HttpContext.RequestAborted);
+				var audioFile = call.RecordingAbsolutePath;
+				var fromNo = call.CPN;
+				var callStartTime = call.CreatedTime;
+				var Id = call.TransliterationId;
+				var setting = _systemSettingCacheManager.GetSetting(SettingConstants.ViteRecordPrefix);
+
+				var handler = new AiQualityHandler()
+				{
+					Id = Id,
+					Source = "AiAnswered",
+					AudioFile = audioFile,
+					FromNo = fromNo,
+					CallStartTime = callStartTime,
+					ViteRecordPrefix = setting?.SettingValue[0],
+				};
+				await _publisher.PublishAsync(new AiOrderQualityNotify(handler), PublishStrategy.ParallelNoWait, HttpContext.RequestAborted);
+			}
         }
 	}
 }

+ 0 - 17
src/Hotline.Api/Controllers/OrderController.cs

@@ -2041,23 +2041,6 @@ public class OrderController : BaseController
         }
     }
 
-    /// <summary>
-    /// 甄别流程退回
-    /// </summary>
-    [HttpPost("screen/previous")]
-    public async Task ScreenPrevious([FromBody] PreviousWorkflowDto dto)
-    {
-        var workflow = await _workflowDomainService.GetWorkflowAsync(dto.WorkflowId, withSteps: true,
-            cancellationToken: HttpContext.RequestAborted);
-        var screen = await _orderScreenRepository.Queryable().Where(x => x.WorkflowId == dto.WorkflowId).FirstAsync();
-        if (screen == null)
-            throw UserFriendlyException.SameMessage("甄别信息错误!");
-        screen.SendBackApply = workflow.Steps.Count <= 2;
-        await _workflowApplication.PreviousAsync(dto, HttpContext.RequestAborted);
-        screen.Status = EScreenStatus.SendBack;
-        screen.SendBackNum++;
-        await _orderScreenRepository.UpdateAsync(screen, HttpContext.RequestAborted);
-    }
     /// <summary>
     /// 查询工单甄别流程开启参数
     /// </summary>

+ 6 - 2
src/Hotline.Application/Handlers/FlowEngine/WorkflowPreviousHandler.cs

@@ -167,12 +167,16 @@ namespace Hotline.Application.Handlers.FlowEngine
                         }
                         break;
                     case WorkflowModuleConsts.OrderScreen:
-                        var screen = await _orderScreenRepository.GetAsync(workflow.ExternalId, cancellationToken);
+	                    var workflowSteps = await _workflowDomainService.GetWorkflowAsync(workflow.Id,withSteps: true,cancellationToken:cancellationToken);
+						var screen = await _orderScreenRepository.GetAsync(workflow.ExternalId, cancellationToken);
                         if (screen != null)
                         {
                             screen.Flowed(workflow.FlowedUserIds, workflow.FlowedOrgIds, workflow.HandlerUsers, workflow.HandlerOrgs);
                             screen.SendBackTime = DateTime.Now;
-                            await _orderScreenRepository.UpdateAsync(screen, cancellationToken);
+                            screen.SendBackApply = workflowSteps.Steps.Count <= 2;
+                            screen.Status = EScreenStatus.SendBack;
+                            screen.SendBackNum++;
+							await _orderScreenRepository.UpdateAsync(screen, cancellationToken);
                         }
                         OrderScreenDetail detail = new OrderScreenDetail
                         {

+ 8 - 4
src/Hotline.Share/Dtos/Order/OrderVisitDto.cs

@@ -624,18 +624,22 @@ namespace Hotline.Share.Dtos.Order
         /// </summary>
         public string? VolveConent { get; set; }
 
-        public string ScreenSendBackText => GetScreenSendBack();
+        /// <summary>
+        /// 是否退回
+        /// </summary>
+        public string ScreenSendBackText => GetScreenSendBack() ? "是" : "否";
 
-        public string GetScreenSendBack() {
+        public bool GetScreenSendBack() {
             if (OrderScreens != null && OrderScreens.Any())
             {
                 if (OrderScreens.First().Status == EScreenStatus.SendBack && OrderScreens.First().SendBackApply)
                 {
-                    return "是";
+                    return true;
                 }
             }
-            return "否";
+            return false;
         }
+        public bool ScreenSendBack => GetScreenSendBack();
 
 	}
 

+ 1 - 1
src/Hotline.Share/Dtos/TrCallCenter/TrTelDao.cs

@@ -972,7 +972,7 @@ namespace Hotline.Share.Dtos.TrCallCenter
 		/// <summary>
 		/// 主叫
 		/// </summary>
-		public string? Id { get; set; }
+		public List<string> Ids { get; set; }
 	}
 	#endregion
 

+ 5 - 0
src/Hotline.Share/Enums/CallCenter/ECallTransliterationState.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.ComponentModel;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
@@ -11,21 +12,25 @@ namespace Hotline.Share.Enums.CallCenter
 		/// <summary>
 		/// 未开始
 		/// </summary>
+		[Description("未开始")]
 		NoBegin = 0,
 
 		/// <summary>
 		/// 进行中	
 		/// </summary>
+		[Description("进行中")]
 		Underway = 1,
 
 		/// <summary>
 		/// 转写成功
 		/// </summary>
+		[Description("转写成功")]
 		Succeed = 2,
 
 		/// <summary>
 		/// 转写失败
 		/// </summary>
+		[Description("转写失败")]
 		Fail = 3,
 	}
 }