소스 검색

受理类型分时统计---导出

田爽 4 달 전
부모
커밋
3b08a9bc4d
1개의 변경된 파일54개의 추가작업 그리고 2개의 파일을 삭제
  1. 54 2
      src/Hotline.Repository.SqlSugar/Orders/OrderRepository.cs

+ 54 - 2
src/Hotline.Repository.SqlSugar/Orders/OrderRepository.cs

@@ -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>