safesite/safesite/viewsn.py

126 lines
4.8 KiB
Python

from .models import *
from .views import apicheck_login, getcompany
from django.http import JsonResponse
from django.db.models import Q
@apicheck_login
def apicountsafe(req):
type = req.GET.get('type')
userid = req.session['userid']
companyid = getcompany(userid)
ret = {}
if req.GET.get('userid', None):
userid = req.GET.get('userid')
dept = req.GET.get('dept', None)
startdate = req.GET.get('startdate', None)
enddate = req.GET.get('enddate', None)
if type == 'trouble':
objs = Trouble.objects.filter(deletemark=1, usecomp__partid=companyid)
if startdate:
objs = objs.filter(fxsj__gte=startdate)
if enddate:
objs = objs.filter(fxsj__lte=enddate)
if dept:
pass
else:
ret['fx_count'] = objs.filter(fxr__userid=userid).count()
ret['zg_count'] = objs.filter(zgr__userid=userid).count()
return JsonResponse(ret)
elif type == 'train':
objs = Trainuser.objects.filter(train__deletemark=1, train__usecomp__partid=companyid)
if startdate:
objs = objs.filter(train__starttime__gte=startdate)
if enddate:
objs = objs.filter(train__starttime__lte=enddate)
if dept:
pass
else:
ret['px_count'] = objs.filter(participant__userid=userid).count()
ret['qd_count'] = objs.filter(participant__userid=userid, checked=1).count()
return JsonResponse(ret)
elif type == 'operation':
objs = Operation.objects.filter(deletemark=1)
if startdate:
objs = objs.filter(kssj__gte=startdate)
if enddate:
objs = objs.filter(kssj__lte=enddate)
if dept:
pass
else:
ret['zy_count'] = objs.filter(Q(zyry__userid=userid)|Q(zyfzr__userid=userid)).count()
ret['zyfzr_count'] = objs.filter(zyfzr__userid=userid).count()
return JsonResponse(ret)
elif type == 'miss':
objs = Miss.objects.filter(deletemark=1)
if startdate:
objs = objs.filter(submittime__gte=startdate)
if enddate:
objs = objs.filter(submittime__lte=enddate)
if dept:
pass
else:
ret['ws_count'] = objs.filter(misser__userid=userid).count()
return JsonResponse(ret)
elif type == 'suggest':
objs = Suggest.objects.all()
if startdate:
objs = objs.filter(submittime__gte=startdate)
if enddate:
objs = objs.filter(submittime__lte=enddate)
if dept:
pass
else:
ret['jy_count'] = objs.filter(jyr__userid=userid).count()
ret['jycl_count'] = objs.filter(clr__userid=userid).count()
return JsonResponse(ret)
elif type == 'test':
objs = ExamTestDetail.objects.exclude(examtest__nousecomps__contains=','+companyid+',')
if startdate:
objs = objs.filter(starttime__gte=startdate)
if enddate:
objs = objs.filter(starttime__lte=enddate)
if dept:
pass
else:
ret['ks_count'] = objs.filter(user__userid=userid).count()
ret['kstg_count'] = objs.filter(user__userid=userid, passcode=1).count()
return JsonResponse(ret)
elif type == 'drill':
objs = Drill.objects.filter(deletemark=1)
if startdate:
objs = objs.filter(starttime__gte=startdate)
if enddate:
objs = objs.filter(starttime__lte=enddate)
if dept:
pass
else:
ret['yl_count'] = objs.filter(participant__userid=userid).count()
return JsonResponse(ret)
elif type == 'inspect':
objs = Inspect.objects.all()
if startdate:
objs = objs.filter(creattime__gte=startdate)
if enddate:
objs = objs.filter(creattime__lte=enddate)
if dept:
pass
else:
ret['xj_count'] = objs.filter(user__userid=userid).count()
ret['xjyc_count'] = objs.filter(user__userid=userid, state=0).count()
objs2 = InspectItem.objects.filter(state='异常已处理')
if startdate:
objs2 = objs2.filter(handletime__gte=startdate)
if enddate:
objs2 = objs2.filter(handletime__lte=enddate)
ret['clyc_count'] = objs2.filter(todouser__userid=userid).count()
return JsonResponse(ret)
elif type == 'cert':
objs1 = Socertificate.objects.all()
objs2 = Safecert.objects.all()
if dept:
pass
else:
ret['tz_count'] = objs1.filter(user__userid=userid).count()
ret['tzcq_count'] = objs1.filter(user__userid=userid, zszt=3).count()
ret['aq_count'] = objs2.filter(user__userid=userid).count()
ret['aqcq_count'] = objs2.filter(user__userid=userid, zszt=3).count()
return JsonResponse(ret)