满分率,优秀率

This commit is contained in:
caoqianming 2020-12-04 15:51:06 +08:00
parent aa28846866
commit a75321c632
1 changed files with 10 additions and 8 deletions

View File

@ -478,26 +478,28 @@ def exam_rate(request):
for i in companys:
# 员工数
user_count = s_models.User.objects.filter(usecomp=i, deletemark=1).count()
# 参加考试员工数
# 参加考试员工数/考次数
base = s_models.ExamTestDetail.objects.filter(user__usecomp=i, user__deletemark=1, ison=1).exclude(examtest__nousecomps__contains=','+str(i.partid)+',')
if start:
base = base.filter(examtest__starttime__gte=start)
if end:
base = base.filter(examtest__starttime__lte=end)
# 参加考试员工数
testuser_count = base.values('user').distinct().count()
# 参考率
rate1 = testuser_count/user_count
# 考试总数
test_count = base.count()
# 满分
full_count = base.filter(score__gte= F('examtest__totalscore')).count()
# 满分
full_count = base.filter(score__gte= F('examtest__totalscore')).values('user').distinct().count()
# 满分率
rate2 = full_count/test_count if test_count else 0
# 90分数
ninety_count = base.filter(score__gte = F('examtest__totalscore')*0.9).count()
rate2 = full_count/user_count if user_count else 0
# 90分数人数
ninety_count = base.filter(score__gte = F('examtest__totalscore')*0.9).values('user').distinct().count()
# 90以上得分率
rate3 = ninety_count/test_count if test_count else 0
rate3 = ninety_count/user_count if user_count else 0
if base:
print(base, base[0].examtest.id, base[0].user.userid)
# rate1 = '%.2f' % (rate1*100)
rate1 = int(rate1*100+0.5)
rate2 = int(rate2*100+0.5)