|
@@ -182,9 +182,168 @@ namespace TEAMModelOS.Controllers
|
|
|
dataCount = overallEducations.Count();
|
|
|
//pr计算 100 - (100 * (index + 1) - 50) / stuCount; index 整体排名 stuCount 总人数
|
|
|
}
|
|
|
+ double basic_Score = 60;
|
|
|
+ if (schoolSetting?.overallEducationSetting?.overallEducationInit!=null && schoolSetting?.overallEducationSetting?.overallEducationInit >= 0) {
|
|
|
+ basic_Score = schoolSetting.overallEducationSetting.overallEducationInit;
|
|
|
+ }
|
|
|
+ var hasData_labour = grade_overallEducations.Where(x => x.labour.Count > 0);
|
|
|
+ double max_labour = 0;
|
|
|
+ double min_labour = 0;
|
|
|
+ if (schoolSetting.overallEducationSetting.labour.Equals("avg"))
|
|
|
+ {
|
|
|
+ var data = hasData_labour.Select(x => new { score = x.labour.Average(x => x.sumScore) , studentId=x.studentId});
|
|
|
+ max_labour = data.Max(z => z.score);
|
|
|
+ min_labour = data.Min(z => z.score);
|
|
|
+
|
|
|
+ }
|
|
|
+ else if (schoolSetting.overallEducationSetting.labour.Equals("newest"))
|
|
|
+ {
|
|
|
+ var data = hasData_labour.Select(x => new { score= x.labour.OrderByDescending(y => y.examDate).First().sumScore , studentId=x.studentId});
|
|
|
+ max_labour = data.Max(z => z.score);
|
|
|
+ min_labour = data.Min(z => z.score);
|
|
|
+ }
|
|
|
+ else if (schoolSetting.overallEducationSetting.labour.Equals("sum"))
|
|
|
+ {
|
|
|
+ var data = hasData_labour.Select(x => new { score = x.labour.Sum(x => x.sumScore) , studentId = x.studentId });
|
|
|
+ max_labour = data.Max(z => z.score);
|
|
|
+ min_labour = data.Min(z => z.score);
|
|
|
+ }
|
|
|
+ var hasData_virtue = grade_overallEducations.Where(x => x.virtue.Count > 0);
|
|
|
+ double max_virtue = 0;
|
|
|
+ double min_virtue = 0;
|
|
|
+
|
|
|
+ if (schoolSetting.overallEducationSetting.virtue.Equals("avg"))
|
|
|
+ {
|
|
|
+ var data = hasData_virtue.Select(x =>new { score = x.virtue.Average(x => x.sumScore), studentId = x.studentId });
|
|
|
+ max_virtue = data.Max(z => z.score);
|
|
|
+ min_virtue = data.Min(z => z.score);
|
|
|
+ }
|
|
|
+ else if (schoolSetting.overallEducationSetting.virtue.Equals("newest"))
|
|
|
+ {
|
|
|
+ var data = hasData_virtue.Select(x => new { score= x.virtue.OrderByDescending(y => y.examDate).First().sumScore, studentId = x.studentId });
|
|
|
+ max_virtue = data.Max(z => z.score);
|
|
|
+ min_virtue = data.Min(z => z.score);
|
|
|
+ }
|
|
|
+ else if (schoolSetting.overallEducationSetting.virtue.Equals("sum"))
|
|
|
+ {
|
|
|
+ var data = hasData_virtue.Select(x => x.virtue.Sum(x => x.sumScore));
|
|
|
+ //max_virtue = data.Max(z => z.score);
|
|
|
+ //min_virtue = data.Min(z => z.score);
|
|
|
+ }
|
|
|
+ var hasData_lesson = grade_overallEducations.Where(x => x.lessonScore.Count > 0);
|
|
|
+ double max_lesson_gscore = 0;
|
|
|
+ double max_lesson_pscore = 0;
|
|
|
+ double max_lesson_tscore = 0;
|
|
|
+
|
|
|
+ double min_lesson_gscore = 0;
|
|
|
+ double min_lesson_pscore = 0;
|
|
|
+ double min_lesson_tscore = 0;
|
|
|
+ //if (schoolSetting.overallEducationSetting.lesson.Equals("avg"))
|
|
|
+ //{
|
|
|
+ // var gdata = hasData_lesson.Select(x => x.lessonScore.Average(x => x.gscore));
|
|
|
+ // max_lesson_gscore = gdata.Max(z => z.score);
|
|
|
+ // min_lesson_gscore = gdata.Min(z => z.score);
|
|
|
+ // var pdata = hasData_lesson.Select(x => x.lessonScore.Average(x => x.pscore));
|
|
|
+ // max_lesson_pscore = pdata.Max(z => z.score);
|
|
|
+ // min_lesson_pscore = pdata.Min(z => z.score);
|
|
|
+ // var tdata = hasData_lesson.Select(x => x.lessonScore.Average(x => x.tscore));
|
|
|
+ // max_lesson_tscore = tdata.Max(z => z.score);
|
|
|
+ // min_lesson_tscore = tdata.Min(z => z.score);
|
|
|
+ //}
|
|
|
+ //else if (schoolSetting.overallEducationSetting.lesson.Equals("newest"))
|
|
|
+ //{
|
|
|
+ // var gdata = hasData_lesson.Select(x => x.lessonScore.OrderByDescending(y => y.time).First().gscore);
|
|
|
+ // max_lesson_gscore = gdata.Max(z => z.score);
|
|
|
+ // min_lesson_gscore = gdata.Min(z => z.score);
|
|
|
+ // var pdata = hasData_lesson.Select(x => x.lessonScore.OrderByDescending(y => y.time).First().pscore);
|
|
|
+ // max_lesson_pscore = pdata.Max(z => z.score);
|
|
|
+ // min_lesson_pscore = pdata.Min(z => z.score);
|
|
|
+ // var tdata = hasData_lesson.Select(x => x.lessonScore.OrderByDescending(y => y.time).First().tscore);
|
|
|
+ // max_lesson_tscore = tdata.Max(z => z.score);
|
|
|
+ // min_lesson_tscore = tdata.Min(z => z.score);
|
|
|
+ //}
|
|
|
+ //else if (schoolSetting.overallEducationSetting.art.Equals("sum"))
|
|
|
+ //{
|
|
|
+ // var gdata = hasData_lesson.Select(x => x.lessonScore.Sum(x => x.gscore));
|
|
|
+ // max_lesson_gscore = gdata.Max(z => z.score);
|
|
|
+ // min_lesson_gscore = gdata.Min(z => z.score);
|
|
|
+ // var pdata = hasData_lesson.Select(x => x.lessonScore.Sum(x => x.pscore));
|
|
|
+ // max_lesson_pscore = pdata.Max(z => z.score);
|
|
|
+ // min_lesson_pscore = pdata.Min(z => z.score);
|
|
|
+ // var tdata = hasData_lesson.Select(x => x.lessonScore.Sum(x => x.tscore));
|
|
|
+ // max_lesson_tscore = tdata.Max(z => z.score);
|
|
|
+ // min_lesson_tscore = tdata.Min(z => z.score);
|
|
|
+ //}
|
|
|
+ foreach (var item in overallEducations) {
|
|
|
+ //体育
|
|
|
+ if (schoolSetting.overallEducationSetting.sports.Equals("avg"))
|
|
|
+ {
|
|
|
|
|
|
+ }
|
|
|
+ else if (schoolSetting.overallEducationSetting.sports.Equals("newest"))
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ else if (schoolSetting.overallEducationSetting.sports.Equals("sum"))
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ //智育
|
|
|
+ if (schoolSetting.overallEducationSetting.intelligence.Equals("avg"))
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ else if (schoolSetting.overallEducationSetting.intelligence.Equals("newest"))
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ else if (schoolSetting.overallEducationSetting.intelligence.Equals("sum"))
|
|
|
+ {
|
|
|
+ }
|
|
|
+ //艺术
|
|
|
+ if (schoolSetting.overallEducationSetting.art.Equals("avg"))
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ else if (schoolSetting.overallEducationSetting.art.Equals("newest"))
|
|
|
+ {
|
|
|
+ }
|
|
|
+ else if (schoolSetting.overallEducationSetting.art.Equals("sum"))
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
return Ok();
|
|
|
}
|
|
|
+ //排名指数计算=( 当前值分数- 298) / (9992 - 298) * (99 - 60) + 60
|
|
|
+ //将每个人的积分转化为60-100
|
|
|
+ //排名 = (积分 - 最低积分) / (最高积分 - 最低积分) * (最大排名 - 最小排名) + 最小排名
|
|
|
+ public class DimensionScore
|
|
|
+ {
|
|
|
+ public string classId { get; set; }
|
|
|
+ public string student { get; set; }
|
|
|
+ public double score { get; set; }
|
|
|
+ public double sports { get; set; }
|
|
|
+ public double art { get; set; }
|
|
|
+ public double labour { get; set; }
|
|
|
+ public double intelligence { get; set; }
|
|
|
+ public double virtue { get; set; }
|
|
|
+ public double lesson { get; set; }
|
|
|
+ }
|
|
|
|
|
|
/*
|
|
|
|