|
@@ -591,7 +591,7 @@ namespace Hotline.Repository.SqlSugar.Orders
|
|
|
})
|
|
|
.MergeTable();
|
|
|
|
|
|
- var dt = await listHour.LeftJoin(listOrg, (x, p) => x.ColumnName.ToString() == p.Hour)
|
|
|
+ var list = await listHour.LeftJoin(listOrg, (x, p) => x.ColumnName.ToString() == p.Hour)
|
|
|
.OrderBy(x => x.ColumnName)
|
|
|
.Select((x, p) => new
|
|
|
{
|
|
@@ -600,8 +600,60 @@ namespace Hotline.Repository.SqlSugar.Orders
|
|
|
p.count
|
|
|
})
|
|
|
.ToPivotTableAsync(p => p.DicDataName, p => p.Hour, p => p.Sum(x => x.count));
|
|
|
+ var dtList = list.Clone();
|
|
|
|
|
|
- return InitDatatTable(dt, dto.AddColumnName);
|
|
|
+ if (await Db.Queryable<StatisticsPurTypeSatisfied>().Where(x => x.Time >= dto.StartTime && x.Time <= dto.EndTime).AnyAsync())
|
|
|
+ {
|
|
|
+ // 老系统数据
|
|
|
+ var oldData = await Db.Queryable<StatisticsPurTypeSatisfied>()
|
|
|
+ .Where(x => x.Time >= dto.StartTime && x.Time <= 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();
|
|
|
+
|
|
|
+ #region 处理数据
|
|
|
+
|
|
|
+ for (int i = 0; i < list.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ DataRow newRow = dtList.NewRow();
|
|
|
+ for (int j = 0; j < list.Columns.Count; j++)
|
|
|
+ {
|
|
|
+ if (i == 0)
|
|
|
+ {
|
|
|
+ dtList.Columns[i].DataType = list.Columns[i].ColumnName == "Hour" ? typeof(string) : typeof(Int64);
|
|
|
+ }
|
|
|
+ if (list.Columns[j].ColumnName == "Hour")
|
|
|
+ {
|
|
|
+ newRow[j] = list.Rows[i][j];
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var num = string.IsNullOrEmpty(list.Rows[i][j].ToString()) ? 0 : int.Parse(list.Rows[i][j].ToString());
|
|
|
+ var oldRow = oldData.AsEnumerable().Where(x => x.Field<string>("_Hour") == list.Rows[i]["hour"]).FirstOrDefault();
|
|
|
+ var allNum = oldRow == null ? num : oldRow.Field<int>(dtList.Columns[i].ColumnName) + num;
|
|
|
+ newRow[j] = allNum;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dtList.Rows.Add(newRow);
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion
|
|
|
+ }
|
|
|
+ return InitDatatTable(list, dto.AddColumnName);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|