|
@@ -1,5 +1,6 @@
|
|
|
using Hotline.Caching.Interfaces;
|
|
|
using Hotline.CallCenter.Calls;
|
|
|
+using Hotline.Orders;
|
|
|
using Hotline.Repository.SqlSugar.DataPermissions;
|
|
|
using Hotline.Share.Dtos.CallCenter;
|
|
|
using Hotline.Share.Enums.CallCenter;
|
|
@@ -46,38 +47,53 @@ namespace Hotline.Repository.SqlSugar.CallCenter
|
|
|
// IvrByeCount = SqlFunc.AggregateSum(SqlFunc.IIF(o.CallDirection == ECallDirection.In && o.BeginIvrTime.HasValue && !o.BeginQueueTime.HasValue && !o.BeginRingTime.HasValue && o.OnState == EOnState.NoOn, 1, 0)), //IVR挂断
|
|
|
// }).ToListAsync();
|
|
|
//计算小时差
|
|
|
- if (!endDate.HasValue)
|
|
|
- {
|
|
|
- endDate = beginDate.Date.AddDays(1).AddMilliseconds(-1);
|
|
|
- }
|
|
|
- TimeSpan timeDifference = endDate.Value.Subtract(beginDate).Duration();
|
|
|
+ //if (!endDate.HasValue)
|
|
|
+ //{
|
|
|
+ // endDate = beginDate.Date.AddDays(1).AddMilliseconds(-1);
|
|
|
+ //}
|
|
|
+ //TimeSpan timeDifference = endDate.Value.Subtract(beginDate).Duration();
|
|
|
|
|
|
- int hourDiff = (int)(timeDifference.TotalHours);
|
|
|
- if (!endDate.HasValue)
|
|
|
- {
|
|
|
- endDate = beginDate.Date.AddDays(1).AddMilliseconds(-1);
|
|
|
- }
|
|
|
- //计算时间差
|
|
|
- int hour = Convert.ToInt32((endDate - beginDate).Value.TotalHours);
|
|
|
+ //int hourDiff = (int)(timeDifference.TotalHours);
|
|
|
+ //if (!endDate.HasValue)
|
|
|
+ //{
|
|
|
+ // endDate = beginDate.Date.AddDays(1).AddMilliseconds(-1);
|
|
|
+ //}
|
|
|
+ ////计算时间差
|
|
|
+ //int hour = Convert.ToInt32((endDate - beginDate).Value.TotalHours);
|
|
|
+
|
|
|
+ //List<DateTime> dts = new List<DateTime>() { beginDate };
|
|
|
+ //for (int i = 0; i < hour - 1; i++)
|
|
|
+ //{
|
|
|
+ // dts.Add(dts.Last().AddHours(1));
|
|
|
+ //}
|
|
|
+
|
|
|
+ //var list = await Db.Reportable(dts).ToQueryable<DateTime>()
|
|
|
+ // .LeftJoin<TrCallRecord>((it, o) => o.CreatedTime >= it.ColumnName && o.CreatedTime < it.ColumnName.AddHours(1))
|
|
|
+ // .GroupBy(it => it.ColumnName)
|
|
|
+ // .OrderBy(it => it.ColumnName)
|
|
|
+ // .Select((it, o) => new TrCallHourDto()
|
|
|
+ // {
|
|
|
+ // Dates = it.ColumnName,
|
|
|
+ // //Hour = it.ColumnName.Hour,
|
|
|
+ // Count = SqlFunc.AggregateSum(SqlFunc.IIF(o.CallDirection == ECallDirection.In, 1, 0)), //呼入总量
|
|
|
+ // })
|
|
|
+ // .ToListAsync();
|
|
|
|
|
|
- List<DateTime> dts = new List<DateTime>() { beginDate };
|
|
|
- for (int i = 0; i < hour - 1; i++)
|
|
|
+ List<DateTime> dts = new List<DateTime>() { beginDate.Date.AddDays(1) };
|
|
|
+ for (int i = 0; i < 24; i++)//搞出所有时间断
|
|
|
{
|
|
|
- dts.Add(dts.Last().AddHours(1));
|
|
|
+ dts.Add(dts.Last().AddHours(-1));
|
|
|
}
|
|
|
|
|
|
- var list = await Db.Reportable(dts).ToQueryable<DateTime>()
|
|
|
+ var list = Db.Reportable(dts).ToQueryable<DateTime>()
|
|
|
.LeftJoin<TrCallRecord>((it, o) => o.CreatedTime >= it.ColumnName && o.CreatedTime <= it.ColumnName.AddHours(1))
|
|
|
.GroupBy(it => it.ColumnName)
|
|
|
.OrderBy(it => it.ColumnName)
|
|
|
.Select((it, o) => new TrCallHourDto()
|
|
|
{
|
|
|
Dates = it.ColumnName,
|
|
|
- Hour = it.ColumnName.Hour,
|
|
|
- Count = SqlFunc.AggregateSum(SqlFunc.IIF(o.CallDirection == ECallDirection.In, 1, 0))
|
|
|
- }).ToListAsync();
|
|
|
-
|
|
|
- //Db.Queryable<TrCallRecord>().LeftJoin<>
|
|
|
+ Count = SqlFunc.AggregateSum(SqlFunc.IIF(o.CallDirection == ECallDirection.In,1,0))
|
|
|
+ }).ToList();
|
|
|
|
|
|
|
|
|
return list;
|