Dun.Jason 1 năm trước cách đây
mục cha
commit
5003b09d4b
1 tập tin đã thay đổi với 16 bổ sung4 xóa
  1. 16 4
      src/Hotline.Api/Controllers/Bi/BiCallController.cs

+ 16 - 4
src/Hotline.Api/Controllers/Bi/BiCallController.cs

@@ -147,13 +147,25 @@ public class BiCallController : BaseController
                   InHangupImmediateWhenAnswered = SqlFunc.AggregateSum(SqlFunc.IIF(c.CallDirection == ECallDirection.In && c.AnsweredTime != null && c.Duration < connectByeTimes, 1, 0)),
               })
               .MergeTable()
-              .LeftJoin<Work>((it, o) => it.UserId == o.Id)
-              .GroupBy((it, o) => new { it.UserId,it.Name })
-              .Select((it, o) => new BiSeatCallsDto
+              .LeftJoin<Work>((it, o) => it.UserId == o.UserId && o.CreationTime>= dto.StartTime && o.CreationTime<= dto.EndTime)
+              .LeftJoin<TelRest>((it,o,c)=> it.UserId == c.UserId && c.CreationTime>= dto.StartTime && c.CreationTime<=dto.EndTime)
+              .GroupBy((it, o,c) => new { it.UserId,it.Name })
+              .Select((it, o,c) => new BiSeatCallsDto
               {
                   Name = it.Name,
                   UserId = it.UserId,
-
+                  InTotal = SqlFunc.AggregateSum(it.InTotal),
+                  OutTotal = SqlFunc.AggregateSum(it.OutTotal),
+                  InAnswered = SqlFunc.AggregateSum(it.InAnswered),
+                  OutAnswered = SqlFunc.AggregateSum(it.OutAnswered),
+                  InHangupImmediate = SqlFunc.AggregateSum(it.InHangupImmediate),
+                  InHanguped = SqlFunc.AggregateSum(it.InHanguped),
+                  InDurationAvg = SqlFunc.AggregateSum(it.InDurationAvg),
+                  OutDurationAvg = SqlFunc.AggregateSum(it.OutDurationAvg),
+                  InAvailableAnswer = SqlFunc.AggregateSum(it.InAvailableAnswer),
+                  InHangupImmediateWhenAnswered = SqlFunc.AggregateSum(it.InHangupImmediateWhenAnswered),
+                  LoginDuration = SqlFunc.AggregateSum(SqlFunc.IIF(o.WorkingDuration!=null, o.WorkingDuration.Value,0)),
+                  RestDuration = SqlFunc.AggregateSum(SqlFunc.IIF(c.RestDuration!=0,c.RestDuration,0)),
               })
               .ToListAsync(HttpContext.RequestAborted);
     }