ソースを参照

处理学情数据以及修复BUG

zhouj1203@hotmail.com 4 年 前
コミット
d256e128dc

+ 1 - 1
TEAMModelOS.SDK/TEAMModelOS.SDK.csproj

@@ -16,7 +16,7 @@
     <PackageReference Include="Azure.Messaging.ServiceBus" Version="7.1.0" />
     <PackageReference Include="Azure.Storage.Blobs.Batch" Version="12.5.0" />
     <PackageReference Include="Azure.Storage.Queues" Version="12.6.0" />
-    <PackageReference Include="ClouDASLibx" Version="1.1.4" />
+    <PackageReference Include="ClouDASLibx" Version="1.2.3" />
     <PackageReference Include="DocumentFormat.OpenXml" Version="2.11.3" />
     <PackageReference Include="HtmlAgilityPack" Version="1.11.28" />
     <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.10" />

+ 8 - 4
TEAMModelOS/Controllers/Analysis/AchievementController.cs

@@ -2881,11 +2881,13 @@ namespace TEAMModelOS.Controllers.Analysis
                                     ex.studentScores = newScores;
                                     int index = 0;
                                     List<Task<string>> tasks = new List<Task<string>>();
+                                    List<List<string>> answers = new List<List<string>>();
                                     foreach (List<string> an in examClass.studentAnswers)
                                     {
-                                        List<string> ans = new List<string>();
+                                        //List<List<string>> stuAns = new List<List<string>>();
                                         an.ForEach(aa =>
                                         {
+                                            List<string> ans = new List<string>();
                                             if (aa.Length > 1)
                                             {
                                                 char[] str = aa.ToCharArray();
@@ -2909,6 +2911,7 @@ namespace TEAMModelOS.Controllers.Analysis
                                                             ans.Add("");
                                                             break;
                                                     }
+                                                    answers.Add(ans);
                                                 }
                                             }
                                             else
@@ -2931,13 +2934,13 @@ namespace TEAMModelOS.Controllers.Analysis
                                                         ans.Add("");
                                                         break;
                                                 }
-
+                                                answers.Add(ans);
                                             }
-
+                                            //answers.Add(stuAns);
                                         });
                                         string FileName = ex.examId + "/" + ex.subjectId + "/" + examClass.studentIds[index];
                                         string blob =  FileName + "/" + "ans.json";
-                                        tasks.Add(_azureStorage.UploadFileByContainer(ex.school.ToString(), ans.ToJsonString(), "exam", FileName + "/" + "ans.json"));
+                                        tasks.Add(_azureStorage.UploadFileByContainer(ex.school.ToString(), answers.ToJsonString(), "exam", FileName + "/" + "ans.json"));
                                         ex.studentAnswers[index].Add(blob);
                                         index++;
                                     }
@@ -2948,6 +2951,7 @@ namespace TEAMModelOS.Controllers.Analysis
                     }
                 }
                 foreach (ExamClassResult result in examClassResults) {
+                    result.progress = true;
                    await client.GetContainer("TEAMModelOS", "Common").ReplaceItemAsync(result, result.id, new PartitionKey($"{result.code}"));
                 }
                 return Ok(new { examClassResults });

+ 4 - 5
TEAMModelOS/Controllers/Analysis/AnalysisController.cs

@@ -445,6 +445,7 @@ namespace TEAMModelOS.Controllers.Analysis
                         ff.ForEach(s => {
                             fieldPoints.Add(stuCount > 0 ? Math.Round(s * 1.0 / stuCount, 2) : 0);
                         });
+                        double val = examClassResults.FirstOrDefault(c => c.subjectId == key && c.info.id == classId).standard;
                         classAys.subjects.Add(new AysSubject {
                             point = tt,
                             field = fieldPoints,
@@ -452,7 +453,7 @@ namespace TEAMModelOS.Controllers.Analysis
                             passPercent = passPercent,
                             passCount = passCount,
                             average = average,
-                            standard = examClassResults.FirstOrDefault(c => c.id == key).standard,
+                            standard = val,
                             sRate = paperScore[key] > 0 ? Math.Round(average / paperScore[key] * 100, 2) : 0,
                             name = info.subjects.Where(x => x.id == key).FirstOrDefault().name,
                             item = classSubjectPaperDatas.Where(subd => subd.Key == key).First().Value.Where(cls => cls.Key == classId).First().Value
@@ -665,7 +666,7 @@ namespace TEAMModelOS.Controllers.Analysis
                 //试题区域
                 List<string> topic = cdm.TopicFallArea;
                 //试题相关分析结果
-                List<(double Diff, double Identify, double R1, double R2, double R3, double R4, double R5, double R6, double RH, double RL)> rs = cdm.RS;
+                List<(double Diff, double D, double R1, double R2, double R3, double R4, double R5, double R6, double PH, double PL)> rs = cdm.RS;
                 for (int i = 0; i < rs.Count; i++)
                 {
                     string[] ex = new string[] { };
@@ -740,9 +741,7 @@ namespace TEAMModelOS.Controllers.Analysis
                     values[8] = gstr.Substring(0,gstr.Length-1);
                     values[20] = quality[k].ToString();
                     values[21] = answer[k].ToString();
-                    // string pointName = "";
-                   
-                    
+                    // string pointName = "";                                     
                     values[23] = examPersent[k];
                     datas.Add(values);
                 }

+ 7 - 5
TEAMModelOS/Controllers/Common/ExamController.cs

@@ -511,10 +511,13 @@ namespace TEAMModelOS.Controllers
                         tasks.Add(_azureStorage.UploadFileByContainer(school.ToString(), ans.ToJsonString(), "exam", builder.ToString(), false));
                         result.studentAnswers[newIndex].Add(builder.ToString());
                     //}                  
+                    //List<(int index ,string content, double count)> acount = new List<(int index,string content, double count)>();
                     for (int i = 0; i < ans.Count; i++)
                     {
                         var ac = ans[i].Count;
                         var sc = standard[i].Count;
+                        //记录次数
+                        int n = 0;
                         //result.studentAnswers[index][i] = ans[i];
                         //算分处理
                         if (sc > 0)
@@ -523,7 +526,6 @@ namespace TEAMModelOS.Controllers
                             {
                                 foreach (string right in ans[i])
                                 {
-
                                     if (standard[i].Contains(right))
                                     {
                                         result.studentScores[newIndex][i] = points[i];
@@ -651,7 +653,7 @@ namespace TEAMModelOS.Controllers
                     {
                         ExamInfo exam = await client.GetContainer("TEAMModelOS", "Common").ReadItemAsync<ExamInfo>(id.ToString(), new PartitionKey($"{scode}"));
                         result.progress = true;
-                        //标记单科单班总得分
+                        /*//标记单科单班总得分
                         double score = 0;
                         //标准差
                         double powSum = 0;
@@ -665,7 +667,7 @@ namespace TEAMModelOS.Controllers
 
                         }
                         result.standard = Math.Round(scount > 0 ? Math.Pow(powSum / scount, 0.5) : 0, 2);
-                        result.average = scount > 0 ? Math.Round(score / scount, 2) : 0;
+                        result.average = scount > 0 ? Math.Round(score / scount, 2) : 0;*/
                         exam.subjects.ForEach(s =>
                         {
                             if (s.id.Equals(subjectId.ToString()))
@@ -754,7 +756,7 @@ namespace TEAMModelOS.Controllers
                         {
                             ExamInfo exam = await client.GetContainer("TEAMModelOS", "Common").ReadItemAsync<ExamInfo>(id.ToString(), new PartitionKey($"Exam-{school}"));
                             result.progress = true;
-                            //标记单科单班总得分
+                            /*//标记单科单班总得分
                             double score = 0;
                             //标准差
                             double powSum = 0;
@@ -770,7 +772,7 @@ namespace TEAMModelOS.Controllers
 
                             }
                             result.standard = Math.Round(scount > 0 ? Math.Pow(powSum / scount, 0.5) : 0, 2);
-                            result.average = scount > 0 ? Math.Round(score / scount, 2) : 0;
+                            result.average = scount > 0 ? Math.Round(score / scount, 2) : 0;*/
                             exam.subjects.ForEach(s =>
                             {
                                 if (s.id.Equals(subjectId.ToString()))