Explorar o código

Merge branch 'master' of http://git.12345lm.cn/Fengwo/hotline

Dun.Jason hai 1 ano
pai
achega
e824da30e9

+ 31 - 2
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -17,6 +17,8 @@ using XF.Domain.Exceptions;
 using Microsoft.AspNetCore.Authorization;
 using Hotline.CallCenter.Calls;
 using Hotline.Share.Enums.CallCenter;
+using Org.BouncyCastle.Utilities;
+using Polly.Caching;
 
 namespace Hotline.Api.Controllers.Bi
 {
@@ -657,7 +659,7 @@ namespace Hotline.Api.Controllers.Bi
         /// <param name="StartDate"></param>
         /// <param name="EndDate"></param>
         /// <returns></returns>
-        [HttpGet("Center_report_forms_statistics")]
+        [HttpGet("center_report_forms_statistics")]
         public async Task<CenterReportStatisticsDto> CenterReportFormsStatistics(DateTime StartDate, DateTime EndDate)
         {
             EndDate = EndDate.AddDays(1).AddSeconds(-1);
@@ -881,31 +883,58 @@ namespace Hotline.Api.Controllers.Bi
                 .Select((it, o) => new DepartmentAcceptanceTypeStatisticsDto
                 {
                     OrgName = it.OrgLevelOneCode == "001" ? "热线中心" : o.Name,
+                    OrgCode = it.OrgLevelOneCode,
                     OrgType = (int)o.OrgType == 2 ? "区县部门" : "市直部门",
                     ZxAllCount = SqlFunc.AggregateSum(SqlFunc.IIF(it.AcceptTypeCode == "10", 1, 0)),
-                    ZxAllTimes = SqlFunc.AggregateSum(SqlFunc.IIF(it.AcceptTypeCode == "10"&& it.AllDuration!=null, it.AllDuration, 0)),
+                    ZxAllTimes = SqlFunc.AggregateSum(SqlFunc.IIF(it.AcceptTypeCode == "10" && it.AllDuration != null, it.AllDuration, 0)),
+                    ZxAcceptanceTypeCode = "10",
 
                     JyAllCount = SqlFunc.AggregateSum(SqlFunc.IIF(it.AcceptTypeCode == "15", 1, 0)),
                     JyAllTimes = SqlFunc.AggregateSum(SqlFunc.IIF(it.AcceptTypeCode == "15" && it.FileDurationWorkday != null, it.FileDurationWorkday, 0)),
+                    JyAcceptanceTypeCode = "15",
 
                     QzAllCount = SqlFunc.AggregateSum(SqlFunc.IIF(it.AcceptTypeCode == "20", 1, 0)),
                     QzAllTimes = SqlFunc.AggregateSum(SqlFunc.IIF(it.AcceptTypeCode == "20" && it.FileDurationWorkday != null, it.FileDurationWorkday, 0)),
+                    QzAcceptanceTypeCode = "20",
 
                     ByAllCount = SqlFunc.AggregateSum(SqlFunc.IIF(it.AcceptTypeCode == "25", 1, 0)),
                     ByAllTimes = SqlFunc.AggregateSum(SqlFunc.IIF(it.AcceptTypeCode == "25" && it.FileDurationWorkday != null, it.FileDurationWorkday, 0)),
+                    ByAcceptanceTypeCode = "25",
 
                     JbAllCount = SqlFunc.AggregateSum(SqlFunc.IIF(it.AcceptTypeCode == "30", 1, 0)),
                     JbAllTimes = SqlFunc.AggregateSum(SqlFunc.IIF(it.AcceptTypeCode == "30" && it.FileDurationWorkday != null, it.FileDurationWorkday, 0)),
+                    JbAcceptanceTypeCode = "30",
 
                     TsAllCount = SqlFunc.AggregateSum(SqlFunc.IIF(it.AcceptTypeCode == "35", 1, 0)),
                     TsAllTimes = SqlFunc.AggregateSum(SqlFunc.IIF(it.AcceptTypeCode == "35" && it.FileDurationWorkday != null, it.FileDurationWorkday, 0)),
+                    TsAcceptanceTypeCode = "35",
 
                     QtAllCount = SqlFunc.AggregateSum(SqlFunc.IIF(it.AcceptTypeCode == "40", 1, 0)),
                     QtAllTimes = SqlFunc.AggregateSum(SqlFunc.IIF(it.AcceptTypeCode == "40" && it.FileDurationWorkday != null, it.FileDurationWorkday, 0)),
+                    QtAcceptanceTypeCode = "40"
                 })
               .ToListAsync();
 
             return orderData;
         }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpGet("department_acceptance_type_order_list")]
+        public async Task<PagedDto<OrderDto>> DepartmentAcceptanceTypeOrderList([FromQuery] DepartmentKeyWordRequest dto)
+        {
+            dto.EndDate = dto.EndDate.AddDays(1).AddSeconds(-1);
+            var (total, items) = await _orderRepository.Queryable()
+                .Where(p => p.CreationTime >= dto.StartDate && p.CreationTime <= dto.EndDate && (int)p.Status >= 300)
+                .WhereIF(!string.IsNullOrEmpty(dto.OrgLevelOneCode), p => p.OrgLevelOneCode == dto.OrgLevelOneCode)
+                .WhereIF(!string.IsNullOrEmpty(dto.AcceptTypeCode), p => p.AcceptTypeCode == dto.AcceptTypeCode)
+                .OrderByDescending(d => d.CreationTime)
+                .ToPagedListAsync(dto, HttpContext.RequestAborted);
+
+            return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
+        }
     }
 }

+ 9 - 0
src/Hotline.Share/Dtos/Order/DepartmentAcceptanceTypeStatisticsDto.cs

@@ -7,6 +7,7 @@
         /// 部门名称
         /// </summary>
         public string OrgName { get; set; }
+        public string OrgCode { get; set; }
 
         /// <summary>
         /// 部门类型
@@ -19,6 +20,7 @@
         public int AllCount => ZxAllCount + JyAllCount + QzAllCount + ByAllCount + JbAllCount + TsAllCount + QtAllCount;
         public double? AllTimes => ZxAllTimes + JyAllTimes + QzAllTimes + ByAllTimes + JbAllTimes + TsAllTimes + QtAllTimes;
         public double? AverageTime => GetCalculateAverage(AllCount, AllTimes);
+       public string? AcceptanceTypeCode { get; set; }
 
         /// <summary>
         /// 咨询
@@ -26,6 +28,7 @@
         public int ZxAllCount { get; set; }
         public double? ZxAllTimes { get; set; }
         public double? ZxAverageTime => GetCalculateAverage(ZxAllCount, ZxAllTimes);
+        public string? ZxAcceptanceTypeCode { get; set; }
 
         /// <summary>
         /// 建议
@@ -33,6 +36,7 @@
         public int JyAllCount { get; set; }
         public double? JyAllTimes { get; set; }
         public double? JyAverageTime => GetCalculateAverage(JyAllCount, JyAllTimes);
+        public string? JyAcceptanceTypeCode { get; set; }
 
         /// <summary>
         /// 求助
@@ -40,6 +44,7 @@
         public int QzAllCount { get; set; }
         public double? QzAllTimes { get; set; }
         public double? QzAverageTime => GetCalculateAverage(QzAllCount, QzAllTimes);
+        public string? QzAcceptanceTypeCode { get; set; }
 
         /// <summary>
         /// 表扬
@@ -47,6 +52,7 @@
         public int ByAllCount { get; set; }
         public double? ByAllTimes { get; set; }
         public double? ByAverageTime => GetCalculateAverage(ByAllCount, ByAllTimes);
+        public string? ByAcceptanceTypeCode { get; set; }
 
         /// <summary>
         /// 举报
@@ -54,6 +60,7 @@
         public int JbAllCount { get; set; }
         public double? JbAllTimes { get; set; }
         public double? JbAverageTime => GetCalculateAverage(JbAllCount, JbAllTimes);
+        public string? JbAcceptanceTypeCode { get; set; }
 
         /// <summary>
         /// 投诉
@@ -61,6 +68,7 @@
         public int TsAllCount { get; set; }
         public double? TsAllTimes { get; set; }
         public double? TsAverageTime => GetCalculateAverage(TsAllCount, TsAllTimes);
+        public string? TsAcceptanceTypeCode { get; set; }
 
         /// <summary>
         /// 其他
@@ -68,6 +76,7 @@
         public int QtAllCount { get; set; }
         public double? QtAllTimes { get; set; }
         public double? QtAverageTime => GetCalculateAverage(QtAllCount, QtAllTimes);
+        public string? QtAcceptanceTypeCode { get; set; }
 
         /// <summary>
         /// 计算平均

+ 25 - 0
src/Hotline.Share/Requests/DepartmentKeyWordRequest.cs

@@ -0,0 +1,25 @@
+namespace Hotline.Share.Requests
+{
+    public record DepartmentKeyWordRequest : PagedRequest
+    {
+        /// <summary>
+        /// 开始时间
+        /// </summary>
+        public DateTime StartDate { get; set; }
+
+        /// <summary>
+        /// 结束时间
+        /// </summary>
+        public DateTime EndDate { get; set; }
+
+        /// <summary>
+        /// 一级部门编码
+        /// </summary>
+        public string? OrgLevelOneCode { get; set; }
+
+        /// <summary>
+        /// 受理类型编码
+        /// </summary>
+        public string? AcceptTypeCode { get; set; }
+    }
+}