Selaa lähdekoodia

智能回访明细

Dun.Jason 10 kuukautta sitten
vanhempi
commit
3e94f45f59

+ 4 - 0
src/Hotline.Application/Mappers/MapperConfigs.cs

@@ -3,6 +3,7 @@ using Hotline.JudicialManagement;
 using Hotline.Orders;
 using Hotline.Push.FWMessage;
 using Hotline.Settings;
+using Hotline.Share.Dtos.Ai;
 using Hotline.Share.Dtos.CallCenter;
 using Hotline.Share.Dtos.JudicialManagement;
 using Hotline.Share.Dtos.OrderExportWord;
@@ -37,6 +38,8 @@ namespace Hotline.Application.Mappers
 
             #endregion
 
+            
+
             config.ForType<EnforcementOrders, EnforcementOrderListDto>()
                 .Map(d => d.Id, x => x.Id)
                 .Map(d => d.WorkflowId, x => x.Order.WorkflowId)
@@ -84,6 +87,7 @@ namespace Hotline.Application.Mappers
              .Map(d => d.ExpiredTime, x => x.ExpiredTime == null ? "" : x.ExpiredTime.Value.ToString("yyyy-MM-dd HH:mm:ss"))
              ;
 
+           
         }
     }
 }

+ 32 - 0
src/Hotline.Application/Mappers/OrderMapperConfigs.cs

@@ -1,7 +1,9 @@
 using Hotline.FlowEngine.Workflows;
 using Hotline.Orders;
+using Hotline.Share.Dtos.Ai;
 using Hotline.Share.Dtos.Order;
 using Hotline.Share.Dtos.Settings;
+using Hotline.Share.Enums.Order;
 using Mapster;
 
 namespace Hotline.Application.Mappers;
@@ -14,6 +16,36 @@ public class OrderMapperConfigs : IRegister
             .IgnoreIf((s, d) => s.OrderExtension == null, d => d.OrderExtension)
             .IgnoreIf((s, d) => s.Hotspot == null, d => d.Hotspot)
             ;
+        //TODO 等待测试
+        config.ForType<AiOrderVisitDetail, AiOrderVisitDetailDto>()
+            .IgnoreIf((s, d) => s.Order == null, d => d.No)
+            .IgnoreIf((s, d) => s.Order == null, d => d.Title)
+            .IgnoreIf((s, d) => s.Order == null, d => d.FromName)
+            .IgnoreIf((s, d) => s.Order == null, d => d.FromGender)
+            .IgnoreIf((s, d) => s.Order == null, d => d.StartTime)
+            .IgnoreIf((s, d) => s.Order == null, d => d.FiledTime)
+            .Map(d => d.No, s => s.Order.No)
+            .Map(d => d.Title, s => s.Order.Title)
+            .Map(d => d.FromName, s => s.Order.FromName)
+            .Map(d => d.FromGender, s => s.Order.FromGender)
+            .Map(d => d.StartTime, s => s.Order.StartTime)
+            .Map(d => d.FiledTime, s => s.Order.FiledTime)
+            //.IgnoreIf((s, d) => s.OrderVisit.OrderVisitDetails == null || !s.OrderVisit.OrderVisitDetails.Any() || s.OrderVisit.OrderVisitDetails.All(x=>x.VisitTarget != Share.Enums.Order.EVisitTarget.Seat), d => d.SeatEvaluate)
+            // .IgnoreIf((s, d) => s.OrderVisit.OrderVisitDetails == null && s.OrderVisit.OrderVisitDetails.Count > 0, d => d.OrgProcessingResults)
+            //.IgnoreIf((s, d) => s.OrderVisit.OrderVisitDetails == null && s.OrderVisit.OrderVisitDetails.Count > 0, d => d.IsContact)
+            //.IgnoreIf((s, d) => s.OrderVisit.OrderVisitDetails == null && s.OrderVisit.OrderVisitDetails.Count > 0, d => d.Volved)
+            //.Ignore(d=>d.SeatEvaluate)
+            //.Map(d=>d.SeatEvaluate, s=>s.OrderVisit.OrderVisitDetails.First(x=> x.VisitTarget == EVisitTarget.Seat))
+            .AfterMapping((s, d) =>
+            {
+                d.SeatEvaluate = s.OrderVisit.OrderVisitDetails.FirstOrDefault(x => x.VisitTarget == EVisitTarget.Seat)?.SeatEvaluate;
+                d.OrgProcessingResults = s.OrderVisit.OrderVisitDetails.FirstOrDefault(x => x.VisitTarget == EVisitTarget.Org)?.OrgProcessingResults?.Value;
+                d.IsContact = s.OrderVisit.OrderVisitDetails.FirstOrDefault(x => x.VisitTarget == EVisitTarget.Org)?.IsContact;
+                d.Volved = s.OrderVisit.OrderVisitDetails.FirstOrDefault(x => x.VisitTarget == EVisitTarget.Org)?.Volved;
+            })
+            ;
+
+
 
         config.ForType<AddOrderDto, Order>()
             .IgnoreIf((s, d) => s.OrderExtension == null, d => d.OrderExtension)

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

@@ -1,5 +1,6 @@
 using Hotline.Share.Dtos.Order;
 using Hotline.Share.Enums.Ai;
+using Hotline.Share.Enums.Order;
 using Hotline.Share.Requests;
 using System;
 using System.Collections.Generic;
@@ -310,6 +311,62 @@ namespace Hotline.Share.Dtos.Ai
         /// </summary>
         public string OrderId { get; set; }
 
+        /// <summary>
+        /// 工单号
+        /// </summary>
+        public string No { get; set; }
+        /// <summary>
+        /// 工单标题
+        /// </summary>
+        public string Title { get; set; }
+
+        /// <summary>
+        /// 姓名
+        /// </summary>
+        public string FromName { get; set; }
+
+        /// <summary>
+        /// 来电/信人性别
+        /// </summary>
+        public EGender FromGender { get; set; }
+
+        /// <summary>
+        /// 来电/信人性别
+        /// </summary>
+        public string FromGenderText => FromGender.GetDescription();
+
+        /// <summary>
+        /// 工单开始时间(受理/接办时间=流程开启时间)
+        /// </summary>
+        public DateTime? StartTime { get; set; }
+
+        /// <summary>
+        /// 归档时间(暂为流程结束时间,因流程结束自动归档)
+        /// </summary>
+        public DateTime? FiledTime { get; set; }
+
+        /// <summary>
+        /// 话务员评价
+        /// </summary>
+        public ESeatEvaluate? SeatEvaluate { get; set; }
+
+        public string SeatEvaluateText => SeatEvaluate.GetDescription();
+
+        /// <summary>
+        /// 部门办件结果
+        /// </summary>
+        public string? OrgProcessingResults { get; set; }
+
+        /// <summary>
+        /// 是否联系
+        /// </summary>
+        public bool? IsContact { get; set; }
+
+        /// <summary>
+        /// 处理结果
+        /// </summary>
+        public bool? Volved { get; set; }
+
         /// <summary>
         /// 工单
         /// </summary>