Browse Source

平均分

zhouj1203@hotmail.com 2 years ago
parent
commit
ee2014d94d
1 changed files with 12 additions and 6 deletions
  1. 12 6
      TEAMModelOS.FunctionV4/CosmosDB/TriggerExam.cs

+ 12 - 6
TEAMModelOS.FunctionV4/CosmosDB/TriggerExam.cs

@@ -576,17 +576,23 @@ namespace TEAMModelOS.FunctionV4
                 losStu = losStu.Union(examResults[0].lostStus).ToList();
                 foreach (ExamResult examResult in examResults)
                 {
+                    //取交集
+                    losStu = losStu.Intersect(examResult.lostStus).ToList();
                     if (info.id == examResult.examId)
                     {
-                        foreach (List<double> sc in examResult.studentScores)
+                        //处理缺考的学生
+                        List<string> stus =  examResult.studentIds.Except(losStu).ToList();
+                        foreach (var id in stus) {
+                            int index = examResult.studentIds.IndexOf(id);
+                            score += examResult.studentScores[index].Sum();
+                        }
+                        /*foreach (List<double> sc in examResult.studentScores)
                         {
                             score += sc.Sum();
-                        }
-                        stuCount = examResult.studentIds.Count;
+                        }*/
+                        stuCount = examResult.studentIds.Count - losStu.Count;
                     }
-                    //powSum += Math.Pow(score - examResult.studentIds.Count > 0 ? Math.Round(score * 1.0 / examResult.studentIds.Count, 2) : 0, 2);
-                    //取交集
-                    losStu = losStu.Intersect(examResult.lostStus).ToList();
+                    //powSum += Math.Pow(score - examResult.studentIds.Count > 0 ? Math.Round(score * 1.0 / examResult.studentIds.Count, 2) : 0, 2);                   
                 }
                 double NewsRateScore = stuCount > 0 ? Math.Round(score * 1.0 / stuCount, 2) : 0;
                 foreach (PaperSimple simple in info.papers)