|
@@ -124,18 +124,38 @@ namespace TEAMModelOS.Controllers.Analysis
|
|
|
touch = period.analysis.touch;
|
|
|
}
|
|
|
}
|
|
|
- //计算每个年级参考人数
|
|
|
- List<KeyValuePair<string, int>> keys = new List<KeyValuePair<string, int>>();
|
|
|
+ //计算每个年级参考人数并计算进线分数
|
|
|
+ List<KeyValuePair<string, double>> keys = new List<KeyValuePair<string, double>>();
|
|
|
foreach (Grade grade in info.grades) {
|
|
|
+ double ipoint = 0;
|
|
|
int gradeCount = 0;
|
|
|
+ List<double> gradeTotal = new List<double>();
|
|
|
+ HashSet<string> sno = new HashSet<string>();
|
|
|
foreach (ExamClassResult examClassResult in examClassResults) {
|
|
|
if (grade.id.Equals(examClassResult.gradeId)) {
|
|
|
gradeCount += examClassResult.studentIds.Count;
|
|
|
+ foreach (string s in examClassResult.studentIds) {
|
|
|
+ sno.Add(s);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ foreach (string sid in sno) {
|
|
|
+ double total = 0;
|
|
|
+ foreach (ExamClassResult examClassResult in examClassResults) {
|
|
|
+ if (grade.id.Equals(examClassResult.gradeId))
|
|
|
+ {
|
|
|
+ int index = examClassResult.studentIds.IndexOf(sid);
|
|
|
+ if (index == -1) continue;
|
|
|
+ total += examClassResult.studentScores[index].Sum();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ gradeTotal.Add(total);
|
|
|
+ }
|
|
|
+ gradeTotal.Sort((s1, s2) => { return s2.CompareTo(s1); });
|
|
|
//获取进线人数
|
|
|
int personCount = (int)System.Math.Round(gradeCount / info.subjects.Count * (touch / 100.0), MidpointRounding.AwayFromZero);
|
|
|
- keys.Add(new KeyValuePair<string, int>(grade.id, personCount));
|
|
|
+ ipoint = gradeTotal[personCount];
|
|
|
+ keys.Add(new KeyValuePair<string, double>(grade.id, ipoint));
|
|
|
}
|
|
|
//获取进线人数
|
|
|
//int personCount = (int)System.Math.Round(info.stuCount * (touch / 100.0), MidpointRounding.AwayFromZero);
|
|
@@ -156,7 +176,7 @@ namespace TEAMModelOS.Controllers.Analysis
|
|
|
subjectPaperDatas.Add(subjectData);
|
|
|
classSubjectPaperDatas.Add(classSubjectData);
|
|
|
subjectScatter.Add(DoSubjectScatter(examResult));
|
|
|
- gpoint = DoKnowledgePoint(examResult,info);
|
|
|
+ //gpoint = DoKnowledgePoint(examResult,info);
|
|
|
//获取一张试卷的满分
|
|
|
paperScore.Add(examResult.subjectId, examResult.paper.point.Sum());
|
|
|
List<double> StuSubjectTotals = new List<double>();
|
|
@@ -220,9 +240,11 @@ namespace TEAMModelOS.Controllers.Analysis
|
|
|
List<double> stuTotals = classStudents.Select(x=>x.total).ToList();
|
|
|
stuTotals.Sort( ( s1, s2) =>{ return s2.CompareTo(s1); });
|
|
|
double ipoint = 0;
|
|
|
- foreach (KeyValuePair<string, int> key1 in keys) {
|
|
|
- if (classroom.gradeId.Equals(key1.Key)) {
|
|
|
- ipoint = stuTotals[key1.Value];
|
|
|
+ foreach (KeyValuePair<string, double> key1 in keys)
|
|
|
+ {
|
|
|
+ if (classroom.gradeId.Equals(key1.Key))
|
|
|
+ {
|
|
|
+ ipoint = key1.Value;
|
|
|
}
|
|
|
}
|
|
|
//double ipoint = stuTotals[personCount];
|