|
@@ -134,8 +134,8 @@ namespace TEAMModelOS.Controllers.Analysis
|
|
|
double min = subjectScore.name.Min(s => Math.Abs(s));
|
|
|
double total = subjectScore.name.Sum();
|
|
|
double average = Math.Round(total / stus.Count, 2);
|
|
|
- double excellent = Math.Round(subjectScore.name.Where(s => s >= 80).Count() * 1.0 / stus.Count, 2);
|
|
|
- double pass = Math.Round(subjectScore.name.Where(s => s >= 60).Count() * 1.0 / stus.Count, 2);
|
|
|
+ double excellent = Math.Round(subjectScore.name.Where(s => s >= 80).Count() * 1.0 / stus.Count, 4);
|
|
|
+ double pass = Math.Round(subjectScore.name.Where(s => s >= 60).Count() * 1.0 / stus.Count, 4);
|
|
|
double powSum = 0;
|
|
|
foreach (var sc in subjectScore.name)
|
|
|
{
|
|
@@ -249,7 +249,7 @@ namespace TEAMModelOS.Controllers.Analysis
|
|
|
{
|
|
|
x.name,
|
|
|
x.score,
|
|
|
- persent = Math.Round(x.score > 0 ? x.av / x.score : 0, 2),
|
|
|
+ persent = Math.Round(x.score > 0 ? x.av / x.score : 0, 4),
|
|
|
dimension = setting.dimensions.Where(s => s.blocks.Contains(x.name)).Select(x => x.dimension)
|
|
|
});
|
|
|
//获取维度得分率
|
|
@@ -295,7 +295,7 @@ namespace TEAMModelOS.Controllers.Analysis
|
|
|
persent =
|
|
|
blockScore.Where(z => z.name.Equals(c)).Sum(v => v.score) > 0 ?
|
|
|
blockScore.Where(z => z.name.Equals(c)).Sum(v => v.av) / blockScore.Where(z => z.name.Equals(c)).Sum(v => v.score) : 0
|
|
|
- }).Sum(o => o.persent) / x.blocks.Count, 2)
|
|
|
+ }).Sum(o => o.persent) / x.blocks.Count, 4)
|
|
|
});
|
|
|
|
|
|
|
|
@@ -316,22 +316,22 @@ namespace TEAMModelOS.Controllers.Analysis
|
|
|
examResults[0].classes.Where(c => c.id.Equals(s.cd)).FirstOrDefault()?.gradeId,
|
|
|
//key.Value.Where(c => c.id.Equals(s.sIds))?.FirstOrDefault().sta,
|
|
|
//key.Value.Where(c => c.id.Equals(s.sIds))?.FirstOrDefault().pass,
|
|
|
- // key.Value.Where(c => c.id.Equals(s.sIds))?.FirstOrDefault().stu,
|
|
|
+ // key.Value.Where(c => c.id.Equals(s.sIds))?.FirstOrDefault().stu,
|
|
|
kno = key6.Value.Where(c => c.sId.Equals(s.sIds))?.Select(z => new
|
|
|
{
|
|
|
z.name,
|
|
|
- persent = z.point > 0 ? Math.Round(z.score / z.point, 2) : 0,
|
|
|
+ persent = z.point > 0 ? Math.Round(z.score / z.point, 4) : 0,
|
|
|
block = knos.Where(v => null != v.kno && v.kno.Contains(z.name))?.Select(x => x.name)
|
|
|
}),
|
|
|
block = stuBlock.Where(c => c.Key.Equals(s.sIds)).FirstOrDefault()?.block.Select(x => new
|
|
|
{
|
|
|
name = x.Key,
|
|
|
- persent = x.point > 0 ? Math.Round(x.score / x.point, 2) : 0
|
|
|
+ persent = x.point > 0 ? Math.Round(x.score / x.point, 4) : 0
|
|
|
}),
|
|
|
dim = stuDims.Where(c => c.stuId.Equals(s.sIds))?.Select(z => new
|
|
|
{
|
|
|
name = z.dim,
|
|
|
- persent = z.point > 0 ? Math.Round(z.score / z.point, 2) : 0
|
|
|
+ persent = z.point > 0 ? Math.Round(z.score / z.point, 4) : 0
|
|
|
})
|
|
|
});
|
|
|
List<(string cId, double sc, double max, double min, double excellent, double pass, double count)> clsInfo = new();
|
|
@@ -341,24 +341,24 @@ namespace TEAMModelOS.Controllers.Analysis
|
|
|
name = x.Key.className,
|
|
|
max = x.ToList().Where(p => p.score > 0).Select(z => z.score).ToList().Count > 0 ? x.ToList().Where(p => p.score > 0).Select(z => z.score).ToList().Max(s => Math.Abs((double)s)) : 0,
|
|
|
min = x.ToList().Where(p => p.score > 0).Select(z => z.score).ToList().Count > 0 ? x.ToList().Where(p => p.score > 0).Select(z => z.score).ToList().Min(s => Math.Abs((double)s)) : 0,
|
|
|
- excellent = x.ToList().Where(p => p.score > 0).Select(z => z.score).ToList().Count > 0 ? Math.Round(x.ToList().Where(p => p.score > 0).Select(z => z.score).ToList().Where(s => s >= 80).Count() * 1.0 / x.ToList().Count, 2) : 0,
|
|
|
- pass = x.ToList().Where(p => p.score > 0).Select(z => z.score).ToList().Count > 0 ? Math.Round(x.ToList().Where(p => p.score > 0).Select(z => z.score).ToList().Where(s => s >= 60).Count() * 1.0 / x.ToList().Count, 2) : 0,
|
|
|
+ excellent = x.ToList().Where(p => p.score > 0).Select(z => z.score).ToList().Count > 0 ? Math.Round(x.ToList().Where(p => p.score > 0).Select(z => z.score).ToList().Where(s => s >= 80).Count() * 1.0 / x.ToList().Count, 4) : 0,
|
|
|
+ pass = x.ToList().Where(p => p.score > 0).Select(z => z.score).ToList().Count > 0 ? Math.Round(x.ToList().Where(p => p.score > 0).Select(z => z.score).ToList().Where(s => s >= 60).Count() * 1.0 / x.ToList().Count, 4) : 0,
|
|
|
score = x.ToList().Count > 0 ? Math.Round((double)x.ToList().Sum(z => z.score) * 1.0 / x.ToList().Count, 2) : 0,
|
|
|
kno = key5.Value.Where(c => c.cId.Equals(x.Key.classId)).Select(z => new
|
|
|
{
|
|
|
z.name,
|
|
|
- persent = Math.Round(z.point > 0 ? z.score / x.ToList().Count / z.point : 0, 2),
|
|
|
+ persent = Math.Round(z.point > 0 ? z.score / x.ToList().Count / z.point : 0, 4),
|
|
|
block = knos.Where(v => null != v.kno && v.kno.Contains(z.name)).Select(x => x.name)
|
|
|
}),
|
|
|
block = claBlock.Count() > 0 ? claBlock.Where(c => c.Key.Equals(x.Key.classId))?.FirstOrDefault().block.Select(z => new
|
|
|
{
|
|
|
name = z.Key,
|
|
|
- persent = Math.Round(z.point > 0 ? z.score / x.ToList().Count / z.point : 0, 2)
|
|
|
+ persent = Math.Round(z.point > 0 ? z.score / x.ToList().Count / z.point : 0, 4)
|
|
|
}) : null,
|
|
|
dim = claDims.Where(c => c.claId.Equals(x.Key.classId)).Select(z => new
|
|
|
{
|
|
|
name = z.dim,
|
|
|
- persent = Math.Round(z.point > 0 ? z.score / x.ToList().Count / z.point : 0, 2)
|
|
|
+ persent = Math.Round(z.point > 0 ? z.score / x.ToList().Count / z.point : 0, 4)
|
|
|
}),
|
|
|
examResults[0].classes.Where(c => c.id.Equals(x.Key.classId))?.FirstOrDefault().gradeId
|
|
|
});
|
|
@@ -371,8 +371,8 @@ namespace TEAMModelOS.Controllers.Analysis
|
|
|
score = x.list.Any() ? Math.Round((double)(x.list.Sum() / x.list.Count()), 2) : 0,
|
|
|
max = x.list.Any() ? x.list.Max(s => Math.Abs((double)s)) : 0,
|
|
|
min = x.list.Any() ? x.list.Min(s => Math.Abs((double)s)) : 0,
|
|
|
- excellent = x.list.Any() ? Math.Round(x.list.Where(s => s >= 80).Count() * 1.0 / x.list.Count(), 2) : 0,
|
|
|
- pass = x.list.Any() ? Math.Round(x.list.Where(s => s >= 60).Count() * 1.0 / x.list.Count(), 2) : 0
|
|
|
+ excellent = x.list.Any() ? Math.Round(x.list.Where(s => s >= 80).Count() * 1.0 / x.list.Count(), 4) : 0,
|
|
|
+ pass = x.list.Any() ? Math.Round(x.list.Where(s => s >= 60).Count() * 1.0 / x.list.Count(), 4) : 0
|
|
|
});
|
|
|
//获奖次数
|
|
|
List<ArtAttachment> artAttachments = new();
|
|
@@ -405,14 +405,18 @@ namespace TEAMModelOS.Controllers.Analysis
|
|
|
url = _azureStorage.GetBlobContainerClient($"{code}").GetBlobClient($"/art/{id}/{subjectId}.json").Uri.ToString();
|
|
|
}*/
|
|
|
var realCount = stus.Count - info.lostStu.Count;
|
|
|
- /*if (classIds.Count == 1)
|
|
|
+ if (classIds.Count == 1)
|
|
|
+ {
|
|
|
+ return Ok(new { count = tchList.Count, scount = realCount, max, min, average, excellent, pass, pow, blk, kno, dim, optCount, students, cInfo, gscore });
|
|
|
+ }
|
|
|
+ else if (classIds.Count == 0)
|
|
|
{
|
|
|
- return Ok(new { count = tchList.Count, scount = realCount, max, min, average, excellent, pass, pow, blk, kno, dim, optCount, students, cInfo , gscore });
|
|
|
+ return Ok(new { count = tchList.Count, scount = realCount, max, min, average, excellent, pass, pow, blk, kno, dim, optCount });
|
|
|
}
|
|
|
else {
|
|
|
- return Ok(new { count = tchList.Count, scount = realCount, max, min, average, excellent, pass, pow, blk, kno, dim, optCount, cInfo });
|
|
|
- }*/
|
|
|
- return Ok(new { count = tchList.Count, scount = realCount, max, min, average, excellent, pass, pow, blk, kno, dim, optCount, students, cInfo, gscore });
|
|
|
+ return Ok(new { count = tchList.Count, scount = realCount, max, min, average, excellent, pass, pow, blk, kno, dim, optCount,cInfo });
|
|
|
+ }
|
|
|
+ //return Ok(new { count = tchList.Count, scount = realCount, max, min, average, excellent, pass, pow, blk, kno, dim, optCount, gscore });
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|