浏览代码

update 优化统计

Li 2 年之前
父节点
当前提交
3ff26a16e1
共有 2 个文件被更改,包括 45 次插入42 次删除
  1. 2 1
      TEAMModelBI/Controllers/Census/SchoolController.cs
  2. 43 41
      TEAMModelOS.SDK/Models/Service/BI/BICommonWay.cs

+ 2 - 1
TEAMModelBI/Controllers/Census/SchoolController.cs

@@ -710,6 +710,7 @@ namespace TEAMModelBI.Controllers.Census
             List<BIRelStats> bIRelStats = new();
 
             List<string> tempProduct = new();
+
             await foreach (var item in cosmosClient.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<BIRelStats>(queryText: scSql.ToString(), requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey("BIRel") }))
             {
                 bIRelStats.Add(item);
@@ -718,7 +719,7 @@ namespace TEAMModelBI.Controllers.Census
                 tempProduct.AddRange(item.hard);
             }
 
-            if(bIRelStats.Count > 0)
+            if (bIRelStats.Count > 0)
                 scIds = bIRelStats.Select(s => s.id).ToList();
             //scIds = await CommonFind.FindScIds(cosmosClient, scSql.ToString(), "BIRel");
 

+ 43 - 41
TEAMModelOS.SDK/Models/Service/BI/BICommonWay.cs

@@ -101,54 +101,56 @@ namespace TEAMModelOS.SDK.Models.Service.BI
         public static List<double> weekDoubleMerge(List<List<double>> doubles, DateTimeOffset dateTime)
         {
             List<double> weekTrend = new();
-            int year = dateTime.Year;
-            int dayOfweek = (int)DateTimeOffset.Parse($"{year}-1-1").DayOfWeek;
-            int currentTime = dateTime.DayOfYear / 7 + 1;
-            int currentTime1 = dateTime.DayOfYear / 7;
-            int days = (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) ? days = 366 : days = 365;
+            if (doubles.Count > 0)
+            {
+                int year = dateTime.Year;
+                int dayOfweek = (int)DateTimeOffset.Parse($"{year}-1-1").DayOfWeek;
+                int currentTime = dateTime.DayOfYear / 7 + 1;
+                int currentTime1 = dateTime.DayOfYear / 7;
+                int days = (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) ? days = 366 : days = 365;
 
-            var bmatrix = DenseMatrix.OfColumns(doubles);
+                var bmatrix = DenseMatrix.OfColumns(doubles);
 
-            //开学第一周周内开课                   
-            if (dayOfweek == 0)
-            {
-                dayOfweek = 7;
-            }
-            //第一周多少天
-            var dd = 7 - dayOfweek + 1;
-            //一年有几周
-            int sweeks = days / 7;
-            //查询天数
-            int dayYear = 0;
-            if (currentTime > 0)
-            {
-                for (int i = 0; i < currentTime; i++)
+                //开学第一周周内开课                   
+                if (dayOfweek == 0)
                 {
-                    if (i == 0)
-                    {
-                        var bsum = bmatrix.SubMatrix(dayYear, dd, 0, bmatrix.ColumnCount).ColumnSums().Sum();
-                        dayYear += dd;
-                        //weeks.Add(i, bsum);
-                        weekTrend.Add(bsum);
-                    }
-                    else
+                    dayOfweek = 7;
+                }
+                //第一周多少天
+                var dd = 7 - dayOfweek + 1;
+                //一年有几周
+                int sweeks = days / 7;
+                //查询天数
+                int dayYear = 0;
+                if (currentTime > 0)
+                {
+                    for (int i = 0; i < currentTime; i++)
                     {
-                        var bsum = bmatrix.SubMatrix(dayYear, 7, 0, bmatrix.ColumnCount).ColumnSums().Sum();
-                        dayYear += 7;
-                        //weeks.Add(i, bsum);
-                        weekTrend.Add(bsum);
+                        if (i == 0)
+                        {
+                            var bsum = bmatrix.SubMatrix(dayYear, dd, 0, bmatrix.ColumnCount).ColumnSums().Sum();
+                            dayYear += dd;
+                            //weeks.Add(i, bsum);
+                            weekTrend.Add(bsum);
+                        }
+                        else
+                        {
+                            var bsum = bmatrix.SubMatrix(dayYear, 7, 0, bmatrix.ColumnCount).ColumnSums().Sum();
+                            dayYear += 7;
+                            //weeks.Add(i, bsum);
+                            weekTrend.Add(bsum);
+                        }
                     }
                 }
+                //最后一周是否有余
+                int stary = days - dayYear;
+                if (stary > 0 && stary < 7)
+                {
+                    var bsum = bmatrix.SubMatrix(dayYear, stary - 1, 0, bmatrix.ColumnCount).ColumnSums().Sum();
+                    //weeks.Add((sweeks + 1), bsum);
+                    weekTrend.Add(bsum);
+                }
             }
-            //最后一周是否有余
-            int stary = days - dayYear;
-            if (stary > 0 && stary < 7)
-            {
-                var bsum = bmatrix.SubMatrix(dayYear, stary - 1, 0, bmatrix.ColumnCount).ColumnSums().Sum();
-                //weeks.Add((sweeks + 1), bsum);
-                weekTrend.Add(bsum);
-            }
-
             return weekTrend;
         }