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')