|
@@ -25,6 +25,8 @@ using XF.Domain.Dependency;
|
|
|
using XF.Domain.Repository;
|
|
|
using System.Collections.Generic;
|
|
|
using Hotline.SeedData;
|
|
|
+using Hotline.Share.Notifications.NewRockCallCenter;
|
|
|
+using Hotline.Statistics;
|
|
|
|
|
|
namespace Hotline.Repository.SqlSugar.Orders
|
|
|
{
|
|
@@ -422,7 +424,7 @@ namespace Hotline.Repository.SqlSugar.Orders
|
|
|
/// </summary>
|
|
|
/// <param name="dto"></param>
|
|
|
/// <returns></returns>
|
|
|
- public async Task<object> OrderAcceptanceTime(TimeSharingPagedKeywordRequest dto)
|
|
|
+ public async Task<DataTable> OrderAcceptanceTime(TimeSharingPagedKeywordRequest dto)
|
|
|
{
|
|
|
List<int> dts = new List<int>();
|
|
|
for (int i = 0; i < 24; i++)
|
|
@@ -458,6 +460,7 @@ namespace Hotline.Repository.SqlSugar.Orders
|
|
|
.MergeTable();
|
|
|
|
|
|
var list = await listHour.LeftJoin(listOrg, (x, p) => x.ColumnName.ToString() == p.Hour)
|
|
|
+ .Where((x,p)=> !string.IsNullOrEmpty(p.DicDataValue))
|
|
|
.OrderBy(x => x.ColumnName)
|
|
|
.Select((x, p) => new
|
|
|
{
|
|
@@ -465,9 +468,85 @@ namespace Hotline.Repository.SqlSugar.Orders
|
|
|
p.DicDataValue,
|
|
|
p.count
|
|
|
})
|
|
|
- .ToPivotListAsync(p => p.DicDataValue, p => p.Hour, p => p.Sum(x => x.count));
|
|
|
- return list;
|
|
|
+ .ToPivotTableAsync(p => p.DicDataValue, p => p.Hour, p => p.Sum(x => x.count));
|
|
|
+ var dtList = list.Clone();
|
|
|
+
|
|
|
+ foreach (DataColumn col in dtList.Columns)
|
|
|
+ {
|
|
|
+ if (col.ColumnName != "Hour")
|
|
|
+ {
|
|
|
+ col.DataType = typeof(Int64);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach (DataRow row in list.Rows)
|
|
|
+ {
|
|
|
+ DataRow rowNew = dtList.NewRow();
|
|
|
+ for (int i = 0; i < list.Columns.Count; i++)
|
|
|
+ {
|
|
|
+ rowNew[i] = list.Columns[i].ColumnName == "Hour"? row[i]: int.Parse(row[i].ToString()) ;
|
|
|
+ }
|
|
|
+ dtList.Rows.Add(rowNew);
|
|
|
+ }
|
|
|
|
|
|
+ //foreach (DataColumn col in dtList.Columns)
|
|
|
+ //{
|
|
|
+ // if (col.ColumnName != "Hour" || col.ColumnName != "Column1")
|
|
|
+ // {
|
|
|
+ // col.DataType = typeof(Int64);
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ //foreach (DataColumn col in dtList.Columns)
|
|
|
+ //{
|
|
|
+ // if (col.ColumnName != "Hour" || col.ColumnName != "Column1")
|
|
|
+ // {
|
|
|
+ // col.DataType = typeof(Int64);
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+
|
|
|
+ //foreach (DataRow row in list.Rows)
|
|
|
+ //{
|
|
|
+ // DataRow rowNew = dtList.NewRow();
|
|
|
+ // rowNew = row;
|
|
|
+ // dtList.Rows.Add(rowNew);
|
|
|
+ //}
|
|
|
+ if (await Db.Queryable<StatisticsPurTypeSatisfied>().Where(x => x.DateTime >= dto.StartTime && x.DateTime <= dto.EndTime).AnyAsync())
|
|
|
+ {
|
|
|
+ // 老系统数据
|
|
|
+ var oldData = await Db.Queryable<StatisticsPurTypeSatisfied>()
|
|
|
+ .Where(x => x.DateTime >= dto.StartTime && x.DateTime <= dto.EndTime)
|
|
|
+ .GroupBy(x => x.Month)
|
|
|
+ .Select(x => new
|
|
|
+ {
|
|
|
+ Hour = x.Month.ToString() + ":00 - " + x.Month.ToString() + ":59",
|
|
|
+ _1 = SqlFunc.AggregateSum(x.Opinion),
|
|
|
+ _2 = SqlFunc.AggregateSum(x.PeopleHelp),
|
|
|
+ _3 = SqlFunc.AggregateSum(x.PollutionReporting),
|
|
|
+ _10 = SqlFunc.AggregateSum(x.Consult),
|
|
|
+ _15 = SqlFunc.AggregateSum(x.Suggest),
|
|
|
+ _20 = SqlFunc.AggregateSum(x.SeekHelp),
|
|
|
+ _25 = SqlFunc.AggregateSum(x.Praise),
|
|
|
+ _30 = SqlFunc.AggregateSum(x.Report),
|
|
|
+ _35 = SqlFunc.AggregateSum(x.Complaint),
|
|
|
+ _40 = SqlFunc.AggregateSum(x.Rests) + SqlFunc.AggregateSum(x.Invalid),
|
|
|
+ _50 = SqlFunc.AggregateSum(x.Epidemic),
|
|
|
+ _SB = SqlFunc.AggregateSum(x.Declare),
|
|
|
+ }).ToDataTableAsync();
|
|
|
+ // var listHour2 = Db.Reportable(dts).ToQueryable<int>();
|
|
|
+ //var oldData = await listHour2.MergeTable().LeftJoin(oldQuery, (x,p) => x.ColumnName.ToString() == p.Month.ToString())
|
|
|
+ // .OrderBy((x, p) => x.ColumnName)
|
|
|
+ // .Select((x, p) => new
|
|
|
+ // {
|
|
|
+ // Hour = x.ColumnName.ToString() + ":00 - " + x.ColumnName.ToString() + ":59", p._1,p._2,p._3,p._10,p._15,p._20,p._25,p._30,p._35,p._40,p._50,p._SB
|
|
|
+ // }).ToDataTableAsync();
|
|
|
+
|
|
|
+ foreach (DataColumn column in oldData.Columns)
|
|
|
+ {
|
|
|
+ column.ColumnName = column.ColumnName.Replace("_", "");
|
|
|
+ }
|
|
|
+ dtList.Merge(oldData);
|
|
|
+ }
|
|
|
+ return dtList;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|