Dun.Jason 11 kuukautta sitten
vanhempi
commit
5c2117bb8d

+ 14 - 1
src/Hotline.Api/Controllers/AiController.cs

@@ -47,8 +47,10 @@ namespace Hotline.Api.Controllers
         private readonly IQualityApplication _qualityApplication;
         private readonly ISystemDicDataCacheManager _sysDicDataCacheManager;
         private readonly IRepository<CallOutTemplate> _callOutTemplateRepository;
+        private readonly IRepository<CallOutTask> _callOutTaskRepository;
+        private readonly IRepository<CallOutTaskDetail> _callOutTaskDetailRepository;
 
-        public AiController(ISystemSettingCacheManager systemSettingCacheManager,IRepository<AiOrderVisit> aiOrderVisitRepository,IRepository<AiOrderVisitDetail>  aiOrderVisitDetailRepository,IRepository<OrderVisit> orderVisitRepository,IRepository<OrderVisitDetail> orderVisitDetailRepository,IMapper mapper, /*IOptionsSnapshot<AiVisitConfig> options,*/IAiVisitService aiVisitService, ILogger<AiController> logger,ICapPublisher capPublisher,IOrderRepository orderRepository,IQualityApplication qualityApplication, ISystemDicDataCacheManager sysDicDataCacheManager,IRepository<CallOutTemplate> callOutTemplateRepository)
+        public AiController(ISystemSettingCacheManager systemSettingCacheManager,IRepository<AiOrderVisit> aiOrderVisitRepository,IRepository<AiOrderVisitDetail>  aiOrderVisitDetailRepository,IRepository<OrderVisit> orderVisitRepository,IRepository<OrderVisitDetail> orderVisitDetailRepository,IMapper mapper, /*IOptionsSnapshot<AiVisitConfig> options,*/IAiVisitService aiVisitService, ILogger<AiController> logger,ICapPublisher capPublisher,IOrderRepository orderRepository,IQualityApplication qualityApplication, ISystemDicDataCacheManager sysDicDataCacheManager,IRepository<CallOutTemplate> callOutTemplateRepository, IRepository<CallOutTask> callOutTaskRepository,IRepository<CallOutTaskDetail> callOutTaskDetailRepository)
         {
            _systemSettingCacheManager = systemSettingCacheManager;
             _aiOrderVisitRepository = aiOrderVisitRepository;
@@ -64,6 +66,8 @@ namespace Hotline.Api.Controllers
             _qualityApplication = qualityApplication;
             _sysDicDataCacheManager = sysDicDataCacheManager;
             _callOutTemplateRepository = callOutTemplateRepository;
+            _callOutTaskRepository = callOutTaskRepository;
+            _callOutTaskDetailRepository = callOutTaskDetailRepository;
         }
 
 
@@ -222,7 +226,16 @@ namespace Hotline.Api.Controllers
 
         #region 批量外呼任务
 
+        public async Task<PagedDto<AiCallOutListRep>> AiCallOutList([FromQuery] AiCallOutListRequest dto)
+        {
+            await _callOutTaskRepository.Queryable()
+                .Includes(x => x.CallOutTemplate)
+                .WhereIF(!string.IsNullOrEmpty(dto.TaskName), x => x.TaskName.Contains(dto.TaskName))
+                .WhereIF(dto.AiCallOutTaskState != null, x => x.AiCallOutTaskState == dto.AiCallOutTaskState)
+                .OrderByDescending(x => x.CreationTime)
+                .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
 
+        }
 
 
         #endregion

+ 68 - 0
src/Hotline.Share/Dtos/Ai/AiDto.cs

@@ -10,6 +10,74 @@ using XF.Utility.EnumExtensions;
 
 namespace Hotline.Share.Dtos.Ai
 {
+
+    public record AiCallOutListRequest:PagedRequest
+    {
+        public string TaskName { get; set; }
+
+        public EAiCallOutTaskState? AiCallOutTaskState { get; set; }
+
+        public DateTime? StartTime { get; set; }
+
+        public DateTime? EndTime { get; set;}
+
+    }
+
+    public class AiCallOutListRep
+    {
+        public string Id { get; set; }
+
+        public string TaskName { get; set; }
+
+        public EAiCallOutTaskState AiCallOutTaskState { get; set; }
+
+        /// <summary>
+        /// 批次上报结果ID
+        /// </summary>
+        public string? BatchUid { get; set; }
+
+        public string CallOutTemplateId { get; set; }
+
+        public string CallOutTemplateName { get; set; }
+
+        /// <summary>
+        /// 应回访数量
+        /// </summary>
+        public int HasVisitCount { get; set; }
+
+        /// <summary>
+        /// 已回访成功数量
+        /// </summary>
+        public int VisitedCount { get; set; }
+
+        /// <summary>
+        /// 已回访失败数量
+        /// </summary>
+        public int VisitedFailCount { get; set; }
+
+        /// <summary>
+        /// 节日禁呼 0:否 1:是
+        /// </summary>
+        public int FestivalBan { get; set; }
+
+        public DateTime BeginTime { get; set; }
+
+        public DateTime EndTime { get; set; }
+
+        public DateTime CreationTime { get; set; }
+
+        /// <summary>
+        /// 创建人
+        /// </summary>
+        public string? CreatorName { get; set; }
+
+        /// <summary>
+        /// 创建部门
+        /// </summary>
+        public string? CreatorOrgName { get; set; }
+    }
+
+
     public class CallOutTemplateDto
     {
         public string TemplateName { get; set; }

+ 30 - 0
src/Hotline.Share/Enums/Ai/EAiCallOutState.cs

@@ -0,0 +1,30 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Hotline.Share.Enums.Ai
+{
+    public enum EAiCallOutState
+    {
+        [Description("待执行")]
+        NoStarted = 1,
+
+        [Description("暂停中")]
+        Stop = 2,
+
+        [Description("执行中")]
+        InProgress = 3,
+
+        [Description("失效")]
+        LoseEfficacy = 4,
+
+        [Description("呼叫失败")]
+        CallFail = 5,
+
+        [Description("已结束")]
+        Ended = 6,
+    }
+}

+ 5 - 0
src/Hotline/Ai/CallOut/CallOutTask.cs

@@ -1,5 +1,6 @@
 
 using Hotline.Share.Enums.Ai;
+using SqlSugar;
 using XF.Domain.Repository;
 
 namespace Hotline.Ai.CallOut
@@ -22,6 +23,10 @@ namespace Hotline.Ai.CallOut
         public string? BatchUid { get; set; }
 
         public string CallOutTemplateId { get; set; }
+
+        [Navigate(NavigateType.OneToOne, nameof(CallOutTemplateId))]
+        public CallOutTemplate CallOutTemplate { get; set; }
+
         /// <summary>
         /// 应回访数量
         /// </summary>

+ 2 - 0
src/Hotline/Ai/CallOut/CallOutTaskDetail.cs

@@ -25,5 +25,7 @@ namespace Hotline.Ai.CallOut
         /// 批此上传成功后任务ID
         /// </summary>
         public string? TaskUid { get; set; }
+
+
     }
 }