Dun.Jason 8 月之前
父節點
當前提交
381f1f056e

+ 4 - 17
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -3966,22 +3966,9 @@ namespace Hotline.Api.Controllers.Bi
 
 
 
-        //public async Task<List<OrderVisitJudeStatisticsRep>> OrderVisitJudeStatistics([FromQuery]OrderVisitJudeStatisticsReq dto)
-        //{
-        //    if (!dto.EndTime.HasValue)
-        //    {
-        //        dto.EndTime = dto.StartTime?.AddDays(1).AddSeconds(-1);
-        //    }
-        //    _orderVisitRepository.Queryable()
-        //        .WhereIF(dto.StartTime.HasValue, x => x.VisitTime >= dto.StartTime)
-        //        .WhereIF(dto.EndTime.HasValue, x => x.VisitTime <= dto.EndTime)
-        //        .GroupBy(x => new { EmployeeId = x.EmployeeId, Name = x.Employee.Name })
-        //        .Select(x => new OrderVisitJudeStatisticsRep()
-        //        {
-        //             EmpId = x.EmployeeId,
-        //             EmpName = x.Employee.Name,
-
-        //        });
-        //}
+        public async Task<List<OrderVisitJudeStatisticsRep>> OrderVisitJudeStatistics([FromQuery] OrderVisitJudeStatisticsReq dto)
+        {
+            
+        }
     }
 }

+ 9 - 1
src/Hotline.Application/Orders/IOrderApplication.cs

@@ -273,5 +273,13 @@ namespace Hotline.Application.Orders
         /// </summary>
         /// <returns></returns>
 		ISugarQueryable<OrderCenterAcceptUserVo> OrderCenterAcceptUser(OrderCenterAcceptPagedRequest dto);
-	}
+
+        /// <summary>
+        /// 扭转信件统计
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        ISugarQueryable<OrderVisitJudeStatisticsRep> OrderVisitJudeStatistics(OrderVisitJudeStatisticsReq dto);
+
+    }
 }

+ 30 - 0
src/Hotline.Application/Orders/OrderApplication.cs

@@ -1993,5 +1993,35 @@ public class OrderApplication : IOrderApplication, IScopeDependency
     }
 
 
+    /// <summary>
+    /// 扭转信件统计
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    public ISugarQueryable<OrderVisitJudeStatisticsRep> OrderVisitJudeStatistics(OrderVisitJudeStatisticsReq dto)
+    {
+        if (!dto.EndTime.HasValue)
+        {
+            dto.EndTime = dto.StartTime?.AddDays(1).AddSeconds(-1);
+        }
+       return _orderVisitRepository.Queryable()
+            .WhereIF(dto.StartTime.HasValue, x => x.VisitTime >= dto.StartTime)
+            .WhereIF(dto.EndTime.HasValue, x => x.VisitTime <= dto.EndTime)
+            .GroupBy(x => new { EmployeeId = x.EmployeeId, Name = x.Employee.Name })
+            .Select(x => new OrderVisitJudeStatisticsRep()
+            {
+                EmpId = x.EmployeeId,
+                EmpName = x.Employee.Name,
+                OrgJudeCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.OrgJudge.HasValue, 1, 0)), //部门扭转总件
+                OrgJudeApprovalingCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.OrgJudge.HasValue && x.JudgeState == EJudgeState.Judging, 1, 0)),
+                OrgJudeSuccessCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.OrgJudge.HasValue && x.JudgeState == EJudgeState.Agreed, 1, 0)),
+                OrgJudeFailCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.OrgJudge.HasValue && x.JudgeState == EJudgeState.UnAgreed, 1, 0)),
+                SeatJudeCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.SeatJudge.HasValue, 1, 0)),
+                SeatJudeApprovalingCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.SeatJudge.HasValue && x.JudgeState == EJudgeState.Judging, 1, 0)),
+                SeatJudeSuccessCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.SeatJudge.HasValue && x.JudgeState == EJudgeState.Agreed, 1, 0)),
+                SeatJudeFailCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.SeatJudge.HasValue && x.JudgeState == EJudgeState.UnAgreed, 1, 0))
+            });
+    }
+
     #endregion
 }