126 lines
4.8 KiB
Python
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) |