117 lines
5.7 KiB
Python
117 lines
5.7 KiB
Python
from django.http import HttpResponse
|
|
from django.shortcuts import render
|
|
from django.shortcuts import redirect
|
|
from .models import Group,GroupUser
|
|
from .forms import GroupUserForm
|
|
from safesite import models as s_models
|
|
import time
|
|
from datetime import datetime,date,timedelta
|
|
from safesite.tasks import send_wechatmsgs,send_wechatmsg,yjjs,gettime,yjjs_px,yjjs_yl,updateTzzs,updateAqzs,yjjs_gc,yjjs_ws
|
|
from django.db.models import Q
|
|
from django.core.serializers.json import DjangoJSONEncoder
|
|
from django.db.models import F,Count,Sum
|
|
def index(request):
|
|
if not request.session.get('is_login', None):
|
|
return redirect('/groups/login/')
|
|
return render(request, 'groups/index.html')
|
|
|
|
def login(request):
|
|
# 不允许重复登录
|
|
if request.session.get('is_login', None):
|
|
return redirect('/groups/index/')
|
|
if request.method == "POST":
|
|
groups_form = GroupUserForm(request.POST)
|
|
message = '请检查填写的内容!'
|
|
if groups_form.is_valid():
|
|
username = groups_form.cleaned_data.get('username')
|
|
password = groups_form.cleaned_data.get('password')
|
|
|
|
try:
|
|
user = GroupUser.objects.get(username=username)
|
|
except:
|
|
message = '用户不存在!'
|
|
return render(request, 'groups/login.html', locals())
|
|
if user.password == password:
|
|
request.session['is_login'] = True
|
|
request.session['user_id'] = user.id
|
|
request.session['user_name'] = user.username
|
|
return redirect('/groups/index/')
|
|
else:
|
|
return render(request, 'groups/login.html', locals())
|
|
else:
|
|
return render(request, 'groups/login.html', locals())
|
|
groups_form = GroupUserForm()
|
|
return render(request, 'groups/login.html', locals())
|
|
|
|
def logout(request):
|
|
if not request.session.get('is_login', None):
|
|
return redirect('/groups/login')
|
|
request.session.flush()
|
|
return redirect('/groups/login')
|
|
|
|
import json
|
|
from captcha.models import CaptchaStore
|
|
from captcha.helpers import captcha_image_url
|
|
def refresh_captcha(request):
|
|
hashkey = CaptchaStore.generate_key()
|
|
image_url = captcha_image_url(hashkey)
|
|
return HttpResponse(json.dumps({'key': hashkey, 'image_url': image_url}), content_type='application/json')
|
|
|
|
|
|
def company(request):
|
|
companys = GroupUser.objects.get(id = request.session['user_id']).group.members.all()
|
|
for i in companys:
|
|
i.useradmin = s_models.User.objects.get(ubelongpart=i,issuper=1).username
|
|
return render(request, 'groups/company.html', locals())
|
|
|
|
def job(request):
|
|
return render(request, 'groups/job.html', locals())
|
|
def trouble(request):#隐患排查
|
|
return render(request, 'groups/troublepic.html', locals())
|
|
def observe(request):#行为观察
|
|
return render(request, 'groups/observe.html', locals())
|
|
def troubleChart(request):#隐患统计图
|
|
code = request.GET.get('code')
|
|
year = int(request.GET.get('year'))
|
|
month =int( request.GET.get('month'))
|
|
if code=='tbpic':
|
|
yhcompanys=[]
|
|
yhcompanyscount=[]
|
|
first_day,first_day_of_next_month = gettime(datetime(year,month,1))
|
|
companys = GroupUser.objects.get(id = request.session['user_id']).group.members.all()
|
|
troublelist = s_models.Trouble.objects.filter(deletemark=1,usecomp__in=companys,fxsj__range=(first_day, first_day_of_next_month)).values('usecomp__partid','usecomp__partname').annotate(number = Count('troubleid'))
|
|
return HttpResponse(json.dumps({'code':1,'data':{'troublelist':list(troublelist)}}), content_type='application/json')
|
|
def observeChart(request):#行为观察
|
|
code = request.GET.get('code')
|
|
year = int(request.GET.get('year'))
|
|
month =int( request.GET.get('month'))
|
|
if code=='tbpic':
|
|
userfy=[]#人员反映
|
|
userwz=[]#员工的位置
|
|
grfh=[]#个人防护装备
|
|
gjhsb=[]#工具和设备
|
|
cxhbz=[]#程序和标准
|
|
rtgcx=[]#人体工程学
|
|
hjzj=[]#环境整洁
|
|
first_day,first_day_of_next_month = gettime(datetime(year,month,1))
|
|
companys = GroupUser.objects.get(id = request.session['user_id']).group.members.all()
|
|
Observe = s_models.Observe.objects.filter(deletemark=1,usecomp__in=companys,looktime__range=(first_day, first_day_of_next_month)).values('usecomp__partid','usecomp__partname').annotate(number = Count('lookid'))
|
|
for j in Observe:
|
|
|
|
for i in s_models.Dicclass.objects.filter(parentid__dicid=23):
|
|
if i.dicid==24:
|
|
userfy.append(s_models.Unsafes.objects.filter(observe__in=j,unsafedicclass=i).count())
|
|
elif i.dicid==25:
|
|
userwz.append(s_models.Unsafes.objects.filter(observe__in=j,unsafedicclass=i).count())
|
|
elif i.dicid==26:
|
|
grfh.append(s_models.Unsafes.objects.filter(observe__in=j,unsafedicclass=i).count())
|
|
elif i.dicid==27:
|
|
gjhsb.append(s_models.Unsafes.objects.filter(observe__in=j,unsafedicclass=i).count())
|
|
elif i.dicid==28:
|
|
cxhbz.append(s_models.Unsafes.objects.filter(observe__in=j,unsafedicclass=i).count())
|
|
elif i.dicid==29:
|
|
rtgcx.append(s_models.Unsafes.objects.filter(observe__in=j,unsafedicclass=i).count())
|
|
elif i.dicid==30:
|
|
hjzj.append(s_models.Unsafes.objects.filter(observe__in=j,unsafedicclass=i).count())
|
|
|
|
return HttpResponse(json.dumps({'code':1,'data':{'list':list(Observe)},'userfy':userfy,'userwz':userwz,'grfh':grfh,'gjhsb':gjhsb,'cxhbz':cxhbz,'rtgcx':rtgcx,'hjzj':hjzj,}), content_type='application/json') |