From a75321c63223e3b37b782f78d8a96f11068efe74 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 4 Dec 2020 15:51:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=BB=A1=E5=88=86=E7=8E=87,=E4=BC=98=E7=A7=80?= =?UTF-8?q?=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groups/views.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/groups/views.py b/groups/views.py index f9faf49e..4f20c5bd 100644 --- a/groups/views.py +++ b/groups/views.py @@ -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)