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

增加话务日期统计详情反惨

qinchaoyue пре 6 месеци
родитељ
комит
d6900bb1fd

+ 28 - 0
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -24,6 +24,7 @@ using Hotline.Share.Enums.Order;
 using Hotline.Share.Requests;
 using Hotline.Share.Tools;
 using Hotline.Tools;
+using Mapster;
 using MapsterMapper;
 using MediatR;
 using Microsoft.AspNetCore.Authorization;
@@ -4198,5 +4199,32 @@ namespace Hotline.Api.Controllers.Bi
             var stream = ExcelHelper.CreateStream(dtos);
             return ExcelStreamResult(stream, "扭转信件统计");
         }
+
+        /// <summary>
+        /// 部门延期统计明细-单独菜单
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpGet("order_delay_detail")]
+        public async Task<PagedDto<OrderDelayDto>> QueryOrderDelayDataDetailAsync([FromQuery]QueryOrderDelayDataDetailRequest dto)
+        {
+            var query = _orderDelayRepository.Queryable()
+                 .Includes(x => x.Order)
+                 .WhereIF(dto.StartTime.HasValue, x => x.CreationTime >= dto.StartTime)
+                 .WhereIF(dto.EndTime.HasValue, x => x.CreationTime <= dto.EndTime)
+                .WhereIF(dto.TypeId != null && dto.TypeId == 1, x => x.Order.IdentityType == EIdentityType.Citizen)
+                .WhereIF(dto.TypeId != null && dto.TypeId == 2, x => x.Order.IdentityType == EIdentityType.Enterprise)
+                 .WhereIF(dto.Type is 1, x => x.DelayState == EDelayState.Pass)
+                 .WhereIF(dto.Type is 2, x => x.DelayState == EDelayState.NoPass)
+                 .WhereIF(dto.Type is 3, x => x.DelayState == EDelayState.Examining)
+                 .WhereIF(dto.Type is 4, x => x.DelayState < EDelayState.Withdraw)
+             .MergeTable();
+
+            if (_sessionContext.OrgIsCenter == false)
+                query = query.Where(x => x.ApplyOrgCode.StartsWith(_sessionContext.OrgId));
+
+            var (total, items) = await query.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
+            return new PagedDto<OrderDelayDto>(total, _mapper.Map<IReadOnlyList<OrderDelayDto>>(items));
+        }
     }
 }

+ 8 - 0
src/Hotline.Share/Dtos/CallCenter/BiQueryCallsDto.cs

@@ -112,6 +112,9 @@ public record QueryCallsStatisticsDetailInDto : PagedStartEndTimeDto
 
 public class QueryCallsStatisticsDetailOutDto
 {
+    public string Id { get; set; }
+    public string? OrderId { get; set; }
+
     /// <summary>
     /// 工单号
     /// </summary>
@@ -173,4 +176,9 @@ public class QueryCallsStatisticsDetailOutDto
     /// 通话时长(秒)
     /// </summary>
     public int Duration { get; set; }
+
+    /// <summary>
+    /// 语音文件路径
+    /// </summary>
+    public string AudioFile { get; set; }
 }

+ 1 - 1
src/Hotline.Share/Requests/PagedKeywordRequest.cs

@@ -296,7 +296,7 @@ public record QueryOrderDelayDataListRequest : ReportPagedRequest
     public string? OrgName { get; set; }
 }
 
-public record QueryOrderDelayDataDetailRequest : ReportPagedRequest
+public record QueryOrderDelayDataDetailRequest : ReportRequiredPagedRequest
 {
     public string? OrgCode { get; set; }