|
@@ -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);
|
|
|
}
|