From fec9589d03de136b8b4293ce47a285900e213c78 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 6 Dec 2019 17:36:05 +0800 Subject: [PATCH 1/2] operation commit --- .../migrations/0296_auto_20191206_1559.py | 21 + safesite/models.py | 1 - safesite/static/safesite/mystatic/js/util.js | 16 + safesite/templates/operation.html | 20 +- safesite/templates/operationadd.html | 310 +- safesite/urls.py | 2 +- safesite/views.py | 6070 +++++++++-------- 7 files changed, 3603 insertions(+), 2837 deletions(-) create mode 100644 safesite/migrations/0296_auto_20191206_1559.py diff --git a/safesite/migrations/0296_auto_20191206_1559.py b/safesite/migrations/0296_auto_20191206_1559.py new file mode 100644 index 00000000..0de6373e --- /dev/null +++ b/safesite/migrations/0296_auto_20191206_1559.py @@ -0,0 +1,21 @@ +# Generated by Django 2.2.8 on 2019-12-06 15:59 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('safesite', '0295_auto_20191205_1702'), + ] + + operations = [ + # migrations.RemoveField( + # model_name='companyinfo', + # name='liaison_fax', + # ), + migrations.RemoveField( + model_name='operation', + name='issimple', + ), + ] diff --git a/safesite/models.py b/safesite/models.py index 5c2fa554..d90f696c 100644 --- a/safesite/models.py +++ b/safesite/models.py @@ -471,7 +471,6 @@ class Operation(models.Model):#作业表 zyimg = models.CharField(max_length=1000,default='') zyimg2 = models.CharField(max_length=1000,default='') deletemark = models.IntegerField(default='1') - issimple = models.IntegerField(default=1) zyzt = JSONField() fxcs = models.CharField(max_length=200) todouser = models.ForeignKey(User,related_name='zyclr',on_delete=models.CASCADE,null=True,blank=True) diff --git a/safesite/static/safesite/mystatic/js/util.js b/safesite/static/safesite/mystatic/js/util.js index c921e5ca..685679b2 100644 --- a/safesite/static/safesite/mystatic/js/util.js +++ b/safesite/static/safesite/mystatic/js/util.js @@ -349,6 +349,22 @@ function choseusers(x) { }); $('#userdd').window('center'); } +function choseuser(x) { + var x = x || 'lecturer'; + var myh = screen.availHeight * 0.7; + $('#userdd').dialog({ + maximizable: true, + title: '选择人员', + width: 900, + height: myh, + closed: false, + cache: false, + href: 'getuserf?a=' + x, + modal: true, + border: false, + }); + $('#userdd').window('center'); +} //导出excel function JSONToCSVConvertor(JSONData, ReportTitle, ShowLabel) { //If JSONData is not an object then JSON.parse will parse the JSON string in an Object diff --git a/safesite/templates/operation.html b/safesite/templates/operation.html index 184e534f..937fdb5d 100644 --- a/safesite/templates/operation.html +++ b/safesite/templates/operation.html @@ -1,7 +1,7 @@
- + 申请作业(无审批) 详细筛选 删除 查看详情 @@ -74,10 +74,20 @@ border:false, columns: [[ { field: 'zyid', title: 'ID', hidden: true }, - { field: 'zynum', title: '编号', width: 120 }, - { field: 'zyzt', title: '作业状态', width: 120 ,formatter: function (value, row, index) { - return value.zyzt; - } }, + { field: 'zynum', title: '编号', width: 100 }, + { field: 'zyzt', title: '作业状态', width: 60 ,formatter: function (value, row, index) { + if(value.splc==0){ + return value.zyzt + '(无流程)' + }else{ + return value.zyzt; + } + + }, styler: function (value, row, index) { + switch (value.zyzt) { + case '已关闭': return 'background-color:green;color:white'; break; + case '待关闭': return 'background-color:orange;'; break; + } + }}, { field: 'zylx__dickeyname', title: '作业类型', width: 120 }, { field: 'zyfzr__name', title: '作业负责人', width: 120 }, { field: 'zynr', title: '作业内容', width: 200 }, diff --git a/safesite/templates/operationadd.html b/safesite/templates/operationadd.html index c3212b4a..d4aca0b0 100644 --- a/safesite/templates/operationadd.html +++ b/safesite/templates/operationadd.html @@ -6,9 +6,56 @@
+
+ +
+
+ +
- +
+
+ +
- -
-
- -
-
- + + + 选择
选择
+ +
+ +
+
+ +
+ +
+
\ No newline at end of file diff --git a/safesite/urls.py b/safesite/urls.py index 0946863c..c9b9fbee 100644 --- a/safesite/urls.py +++ b/safesite/urls.py @@ -47,7 +47,7 @@ urlpatterns = [ path('html/notice/detail//', views.noticedetail), path('html/zuoyepeizhi', views.zuoyepeizhi), path('html/operation', views.operation), - path('html/operation/add//', views.operationadd), + path('html/operation/add', views.operationadd), path('html/operation/detail//', views.operationdetail), path('html/fxcs/add', views.fxcsadd), path('html/operationspjd/add', views.operationspjdadd), diff --git a/safesite/views.py b/safesite/views.py index cc304e51..39377320 100644 --- a/safesite/views.py +++ b/safesite/views.py @@ -1,7 +1,9 @@ -from django.shortcuts import render,redirect,render_to_response -from django.http import HttpResponse, HttpResponseRedirect,JsonResponse -from .models import User,Trouble,Dickey,Partment,Dicclass,Train,Drill,TroubleAccess,Group,Yjyc,Trainuser,Drilluser,Yjsetup,Menu,Observe,Observeto,Unsafes,Miss,Socertificate,Userprofile,Suggest,Notice,Noticeto,Operation,Operzyry,Fxcs,Operationspjd,Operspxq,Question,ExamPaper,ExamTest,ExamPaperDetail,ExamTestDetail,Questioncat,Safecert,Map,Area,Missto,Suggestflow,Equipment,Inspect,Risk,RiskAct,Risktask,Riskcheck,Report,RiskActTask,Riskcheck2 +from captcha.helpers import captcha_image_url +from captcha.models import CaptchaStore +from django.shortcuts import render, redirect, render_to_response +from django.http import HttpResponse, HttpResponseRedirect, JsonResponse +from .models import User, Trouble, Dickey, Partment, Dicclass, Train, Drill, TroubleAccess, Group, Yjyc, Trainuser, Drilluser, Yjsetup, Menu, Observe, Observeto, Unsafes, Miss, Socertificate, Userprofile, Suggest, Notice, Noticeto, Operation, Operzyry, Fxcs, Operationspjd, Operspxq, Question, ExamPaper, ExamTest, ExamPaperDetail, ExamTestDetail, Questioncat, Safecert, Map, Area, Missto, Suggestflow, Equipment, Inspect, Risk, RiskAct, Risktask, Riskcheck, Report, RiskActTask, Riskcheck2 from django.template import RequestContext from django.views.decorators.csrf import csrf_exempt from django.core import serializers @@ -10,14 +12,14 @@ import json from uuid import UUID import os import time -from datetime import datetime,date,timedelta -from django.db.models import F,Count,Sum +from datetime import datetime, date, timedelta +from django.db.models import F, Count, Sum import requests -from .tasks import send_wechatmsgs,send_wechatmsg,yjjs,gettime,yjjs_px,yjjs_yl,updateTzzs,updateAqzs,yjjs_gc,yjjs_ws -from .export import exportdoc,exportxlsx,exportyjdoc,exportsimplexlsx,exportdoc2 -from .daoru import drusers,drequipments,drrisks,drquestions,cal_riskact_level,cal_area_risk_level,makeqr,makeqr_train,makeqr_riskact,makeqr_examtest,makeqr_area +from .tasks import send_wechatmsgs, send_wechatmsg, yjjs, gettime, yjjs_px, yjjs_yl, updateTzzs, updateAqzs, yjjs_gc, yjjs_ws +from .export import exportdoc, exportxlsx, exportyjdoc, exportsimplexlsx, exportdoc2 +from .daoru import drusers, drequipments, drrisks, drquestions, cal_riskact_level, cal_area_risk_level, makeqr, makeqr_train, makeqr_riskact, makeqr_examtest, makeqr_area from django.forms.models import model_to_dict -from .safespider import getTzzs,getAqzs +from .safespider import getTzzs, getAqzs from duibiao import calsim from django.db.models import Q from django.core.serializers.json import DjangoJSONEncoder @@ -33,364 +35,467 @@ import logging from django.contrib.auth.hashers import make_password, check_password logger = logging.getLogger('log') -#分页功能 -def fenye(req): - if req.GET.get('page',None) and req.GET.get('rows',None): - page=int(req.GET.get('page')) - rows=int(req.GET.get('rows')) - endnum=page*rows - startnum=endnum-rows - else: - startnum=0 - endnum=10 - return startnum,endnum +# 分页功能 + + +def fenye(req): + if req.GET.get('page', None) and req.GET.get('rows', None): + page = int(req.GET.get('page')) + rows = int(req.GET.get('rows')) + endnum = page*rows + startnum = endnum-rows + else: + startnum = 0 + endnum = 10 + return startnum, endnum + +# 特殊字符转json + -#特殊字符转json class MyEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, datetime): return obj.strftime('%Y-%m-%d %H:%M') elif isinstance(obj, date): return obj.strftime("%Y-%m-%d") - elif isinstance(obj,decimal.Decimal): + elif isinstance(obj, decimal.Decimal): return float(obj) elif isinstance(obj, UUID): - # if the obj is uuid, we simply return the value of uuid + # if the obj is uuid, we simply return the value of uuid return obj.hex else: return json.JSONEncoder.default(self, obj) -#获取user所在公司 +# 获取user所在公司 + + def getcompany(x): - a = User.objects.get(userid = x) + a = User.objects.get(userid=x) if a.ubelongpart.iscompany == 1: return str(a.ubelongpart.partid) else: return a.ubelongpart.partlink.split(',')[1] -def getparts(partid):#获取该部门及下属部门 + +def getparts(partid): # 获取该部门及下属部门 return Partment.objects.filter(Q(partid=partid) | Q(partlink__contains=',' + str(partid) + ',')) -#转换为datagrid所用json +# 转换为datagrid所用json + + def transjson(total, obj): - a = {'total':total,'rows':list(obj),'code':1} - jsondata = json.dumps(a,cls=MyEncoder) + a = {'total': total, 'rows': list(obj), 'code': 1} + jsondata = json.dumps(a, cls=MyEncoder) return jsondata + + def transjson2(v): return json.dumps(list(v), cls=DjangoJSONEncoder) -#转换为combobox所用string -def transstr(obj,str1,str2): +# 转换为combobox所用string + + +def transstr(obj, str1, str2): keylist = [] for i in list(obj): - keydictstr = '{"value":"'+ str(i[str1])+'","text":"'+i[str2]+'"}' - keylist.append(keydictstr) + keydictstr = '{"value":"' + str(i[str1])+'","text":"'+i[str2]+'"}' + keylist.append(keydictstr) keystr = '['+','.join(keylist)+']' return keystr + def check_login(func): - def warpper(request,*args,**kwargs): + def warpper(request, *args, **kwargs): is_login = request.session.get('userid', None) if is_login: - return func(request,*args,**kwargs) + return func(request, *args, **kwargs) else: return redirect('login') return warpper + def apicheck_login(func): - def warpper(request,*args,**kwargs): + def warpper(request, *args, **kwargs): is_login = request.session.get('userid', None) if is_login: - return func(request,*args,**kwargs) + return func(request, *args, **kwargs) else: - return JsonResponse({'code':0,'msg':'login required'}) + return JsonResponse({'code': 0, 'msg': 'login required'}) return warpper -def check_session(req): - if req.session.get('userid',None): - return JsonResponse({"code":1}) - else: - return JsonResponse({"code":0}) -#存储文件 +def check_session(req): + if req.session.get('userid', None): + return JsonResponse({"code": 1}) + else: + return JsonResponse({"code": 0}) + +# 存储文件 + + def upfile(req): username = User.objects.get(userid=req.session['userid']).username - file_name = (time.strftime('%Y%m%d%H%M%S')+ '_' + req.FILES['upfile'].name).replace('#','号') + file_name = (time.strftime('%Y%m%d%H%M%S') + '_' + + req.FILES['upfile'].name).replace('#', '号') user_upload_folder = os.path.join('media', username) if not os.path.exists(user_upload_folder): os.mkdir(user_upload_folder) filepath = os.path.join(user_upload_folder, file_name) - filepath = filepath.replace('\\','/') - with open( filepath, 'wb') as f: + filepath = filepath.replace('\\', '/') + with open(filepath, 'wb') as f: f.write(req.FILES['upfile'].read()) - return JsonResponse({"code":1,"filename":file_name,"filepath":filepath}) + return JsonResponse({"code": 1, "filename": file_name, "filepath": filepath}) + +# html页面 -#html页面 def riskas(req): - return render(req,'riskas.html') + return render(req, 'riskas.html') + def reportedit(req): - return render(req,'reportedit.html',{'year':req.GET.get('year'),'month':req.GET.get('month'),'part':req.GET.get('part')}) + return render(req, 'reportedit.html', {'year': req.GET.get('year'), 'month': req.GET.get('month'), 'part': req.GET.get('part')}) -def riskedit(req,id): - return render(req,'riskedit.html',{'id':id}) -def riskcheck(req):#风险点排查记录 - return render(req,'riskactcheck.html') +def riskedit(req, id): + return render(req, 'riskedit.html', {'id': id}) + + +def riskcheck(req): # 风险点排查记录 + return render(req, 'riskactcheck.html') + def taskdo(req): - return render(req,'taskdo.html') + return render(req, 'taskdo.html') + def task(req): - return render(req,'task.html') + return render(req, 'task.html') + def riskactchose(req): area = 0 - if req.GET.get('area',None): + if req.GET.get('area', None): area = req.GET.get('area') - return render(req,'riskactchose.html',locals()) + return render(req, 'riskactchose.html', locals()) + + +def riskactedit(req, id): + return render(req, 'riskactedit.html', {'id': id}) -def riskactedit(req,id): - return render(req,'riskactedit.html',{'id':id}) def riskactadd(req): - return render(req,'riskactadd.html') + return render(req, 'riskactadd.html') + + +def riskadd(req, id): + return render(req, 'riskadd.html', {'id': id}) -def riskadd(req,id): - return render(req,'riskadd.html',{'id':id}) def risk(req): - return render(req,'risk.html') + return render(req, 'risk.html') + def inspect(req): - return render(req,'inspect.html') + return render(req, 'inspect.html') + def equipment(req): - return render(req,'equipment.html') + return render(req, 'equipment.html') + + +def areaedit(req, id): + return render(req, 'areaedit.html', {'id': id}) -def areaedit(req,id): - return render(req,'areaedit.html',{'id':id}) def areaadd(req): - return render(req,'areaadd.html') + return render(req, 'areaadd.html') + def areadetail(req): id = req.GET.get('id') - return render(req,'areadetail.html',{'id':id}) + return render(req, 'areadetail.html', {'id': id}) + def mapshow(req): - return render(req,'mapshow.html') + return render(req, 'mapshow.html') + def area(req): - return render(req,'area.html') + return render(req, 'area.html') + def personaltrain(req): - return render(req,'personaltrain.html') + return render(req, 'personaltrain.html') + def examtest(req): - return render(req,'examtest.html') + return render(req, 'examtest.html') + def safecert(req): - return render(req,'safecert.html') + return render(req, 'safecert.html') + def safecertadd(req): - return render(req,'safecertadd.html') + return render(req, 'safecertadd.html') + + +def examtestdetail(req, id): + return render(req, 'examtestdetail.html', {'id': id}) -def examtestdetail(req,id): - return render(req,'examtestdetail.html',{'id':id}) def examtestadd(req): - return render(req,'examtestadd.html') - + return render(req, 'examtestadd.html') + + def examtestadd2(req): - return render(req,'examtestadd2.html') + return render(req, 'examtestadd2.html') + def questionchoose(req): - return render(req,'questionchoose.html') + return render(req, 'questionchoose.html') + + +def exampaperedit(req, id): + return render(req, 'exampaperedit.html', {'id': id}) -def exampaperedit(req,id): - return render(req,'exampaperedit.html',{'id':id}) def exampaperadd(req): - return render(req,'exampaperadd.html') + return render(req, 'exampaperadd.html') + def exampaper(req): - return render(req,'exampaper.html') + return render(req, 'exampaper.html') + + +def examhistory(req, id): + return render(req, 'examhistory.html', {'id': id}) -def examhistory(req,id): - return render(req,'examhistory.html',{'id':id}) def questionadd(req): - return render(req,'questionadd.html') + return render(req, 'questionadd.html') + def questionadd2(req): - return render(req,'questionadd2.html') + return render(req, 'questionadd2.html') + def questionadd3(req): - return render(req,'questionadd3.html') + return render(req, 'questionadd3.html') -def questionedit(req,id): + +def questionedit(req, id): obj = Question.objects.get(id=id) - if obj.type==1: - return render(req,'questionedit.html',{'id':id}) - elif obj.type==2: - return render(req,'questionedit2.html',{'id':id}) - elif obj.type==3: - return render(req,'questionedit3.html',{'id':id}) + if obj.type == 1: + return render(req, 'questionedit.html', {'id': id}) + elif obj.type == 2: + return render(req, 'questionedit2.html', {'id': id}) + elif obj.type == 3: + return render(req, 'questionedit3.html', {'id': id}) + def question(req): - return render(req,'question.html') + return render(req, 'question.html') + def questioncatadd(req): - return render(req,'questioncatadd.html') + return render(req, 'questioncatadd.html') + + +def questioncatedit(req, id): + return render(req, 'questioncatedit.html', {'id': id}) -def questioncatedit(req,id): - return render(req,'questioncatedit.html',{'id':id}) def operationspjdadd(req): - return render(req,'operationspjdadd.html') + return render(req, 'operationspjdadd.html') + def fxcsadd(req): - return render(req,'fxcsadd.html') + return render(req, 'fxcsadd.html') -def operationadd(req,zyid): - return render(req,'operationadd.html',{'zyid':zyid}) -def operationdetail(req,zyid): - return render(req,'operationdetail.html',{'zyid':zyid}) +def operationadd(req): + return render(req, 'operationadd.html') + + +def operationdetail(req, zyid): + return render(req, 'operationdetail.html', {'zyid': zyid}) + def operation(req): - return render(req,'operation.html') + return render(req, 'operation.html') + def zuoyepeizhi(req): - return render(req,'zuoyepeizhi.html') + return render(req, 'zuoyepeizhi.html') + def notice(req): - return render(req,'notice.html') + return render(req, 'notice.html') + def noticeadd(req): - return render(req,'noticeadd.html') + return render(req, 'noticeadd.html') -def noticedetail(req,id): - return render(req,'noticedetail.html',{'id':id}) -def noticeedit(req,id): - return render(req,'noticeedit.html',{'id':id}) +def noticedetail(req, id): + return render(req, 'noticedetail.html', {'id': id}) -def suggestupdate(req,jyid): - return render(req,'suggestupdate.html',{'jyid':jyid}) -def suggestdetail(req,jyid): - return render(req,'suggestdetail.html',{'jyid':jyid}) +def noticeedit(req, id): + return render(req, 'noticeedit.html', {'id': id}) + + +def suggestupdate(req, jyid): + return render(req, 'suggestupdate.html', {'jyid': jyid}) + + +def suggestdetail(req, jyid): + return render(req, 'suggestdetail.html', {'jyid': jyid}) + def suggestadd(req): - return render(req,'suggestadd.html') + return render(req, 'suggestadd.html') + def suggest(req): - return render(req,'suggest.html') + return render(req, 'suggest.html') + def medetail(req): - return render(req,'medetail.html') + return render(req, 'medetail.html') + def socerthtml(req): - return render(req,'socert.html') + return render(req, 'socert.html') + def socertadd(req): - return render(req,'socertadd.html') + return render(req, 'socertadd.html') + def rightshtml(req): groupid = req.GET.get('groupid') - return render(req,'rights.html',{'groupid':groupid}) + return render(req, 'rights.html', {'groupid': groupid}) + def misshtml(req): - return render(req,'miss.html') + return render(req, 'miss.html') + def missadd(req): - return render(req,'missadd.html') + return render(req, 'missadd.html') + + +def missdetail(req, missid): + return render(req, 'missdetail.html', {'missid': missid}) -def missdetail(req,missid): - return render(req,'missdetail.html',{'missid':missid}) def troublehtml(req): - return render(req,'trouble.html') + return render(req, 'trouble.html') + def observehtml(req): - return render(req,'observe.html') + return render(req, 'observe.html') + def addobserve(req): - return render(req,'addobserve.html') + return render(req, 'addobserve.html') + def accesstrouble(req): - return render(req,'accesstrouble.html') + return render(req, 'accesstrouble.html') + def addtrouble(req): - return render(req,'addtrouble.html') + return render(req, 'addtrouble.html') + def dichtml(req): - return render(req,'dichtml.html') + return render(req, 'dichtml.html') + def putreehtml(req): - return render(req,'putree.html') + return render(req, 'putree.html') + def usergroup(req): - return render(req,'usergroup.html') + return render(req, 'usergroup.html') + def getuserf(req): - return render(req,'getuser.html') + return render(req, 'getuser.html') + def getusersf(req): - return render(req,'getusers.html') + return render(req, 'getusers.html') + def trainhtml(req): - return render(req,'train.html') + return render(req, 'train.html') + def abtrain(req): - return render(req,'abtrain.html') + return render(req, 'abtrain.html') + def drillhtml(req): - return render(req,'drill.html') + return render(req, 'drill.html') + def abdrill(req): - return render(req,'abdrill.html') + return render(req, 'abdrill.html') + def reporthtml(req): - return render(req,'report.html') + return render(req, 'report.html') + def troubleashtml(req): - return render(req,'troubleashtml.html') + return render(req, 'troubleashtml.html') + def userhtml(req): - return render(req,'userhtml.html') + return render(req, 'userhtml.html') + def bhrhtml(req): - return render(req,'behavior.html') + return render(req, 'behavior.html') + def trainfigure(req): - return render(req,'trainfigure.html') + return render(req, 'trainfigure.html') + def equipmentfigure(req): - return render(req,'equipmentfigure.html') + return render(req, 'equipmentfigure.html') + def mainhtml(req): - #计算一些数据 + # 计算一些数据 userid = req.session['userid'] companyid = getcompany(userid) - first_day,first_day_of_next_month=gettime() - #查询 - a = Trouble.objects.filter(usecomp__partid=companyid,deletemark=1) + first_day, first_day_of_next_month = gettime() + # 查询 + a = Trouble.objects.filter(usecomp__partid=companyid, deletemark=1) totalyh = a.count() - monthyh = a.filter(fxsj__range=(first_day, first_day_of_next_month)).count() + monthyh = a.filter(fxsj__range=( + first_day, first_day_of_next_month)).count() yhnum = a.filter(todouser__userid=userid).count() - b = Train.objects.filter(usecomp__partid=companyid,deletemark=1) - pxnum = b.filter(state=0,submituser__userid=userid).count() + b = Train.objects.filter(usecomp__partid=companyid, deletemark=1) + pxnum = b.filter(state=0, submituser__userid=userid).count() totalpx = b.count() - monthpx = b.filter(starttime__range=(first_day, first_day_of_next_month)).count() - c = Drill.objects.filter(usecomp__partid=companyid,deletemark=1) - totalyl=c.count() - ylnum =c.filter(state=0,submituser__userid=userid).count() - monthyl=c.filter(starttime__range=(first_day, first_day_of_next_month)).count() - return render(req,'main.html',{'yhnum':yhnum,'totalyh':totalyh,'monthyh':monthyh,'pxnum':pxnum,'totalpx':totalpx,'monthpx':monthpx,'ylnum':ylnum,'totalyl':totalyl,'monthyl':monthyl}) + monthpx = b.filter(starttime__range=( + first_day, first_day_of_next_month)).count() + c = Drill.objects.filter(usecomp__partid=companyid, deletemark=1) + totalyl = c.count() + ylnum = c.filter(state=0, submituser__userid=userid).count() + monthyl = c.filter(starttime__range=( + first_day, first_day_of_next_month)).count() + return render(req, 'main.html', {'yhnum': yhnum, 'totalyh': totalyh, 'monthyh': monthyh, 'pxnum': pxnum, 'totalpx': totalpx, 'monthpx': monthpx, 'ylnum': ylnum, 'totalyl': totalyl, 'monthyl': monthyl}) + + def login(req): if req.session.get('userid', None): return redirect('index') @@ -399,9 +504,9 @@ def login(req): if user_form.is_valid(): username = req.POST.get('username') password = req.POST.get('password') - user = User.objects.filter(username = username,deletemark=1) + user = User.objects.filter(username=username, deletemark=1) if user.exists(): - if check_password(password,user[0].epassword): + if check_password(password, user[0].epassword): req.session['userid'] = user[0].userid req.session.set_expiry(60*40) return redirect('index') @@ -410,29 +515,33 @@ def login(req): return render(req, 'login.html', locals()) else: msg = '用户不存在或被禁用' - return render(req,'login.html', locals()) + return render(req, 'login.html', locals()) else: msg = '验证码错误' return render(req, 'login.html', locals()) else: user_form = UserForm() - return render(req,'login.html', locals()) + return render(req, 'login.html', locals()) + def index(req): if not req.session.get('userid', None): return redirect('login') userid = req.session['userid'] - user=User.objects.get(userid=userid) + user = User.objects.get(userid=userid) companyname = user.usecomp.partname name = user.name - openid=user.openid - headimgurl=user.headimgurl - nickname=user.nickname + openid = user.openid + headimgurl = user.headimgurl + nickname = user.nickname issuper = user.issuper - return render(req, 'index.html',{'username':name,'userid':userid,'openid':openid,'headimgurl':headimgurl,'nickname':nickname,'companyname':companyname,'issuper':issuper,'token':user.token}) + return render(req, 'index.html', {'username': name, 'userid': userid, 'openid': openid, 'headimgurl': headimgurl, 'nickname': nickname, 'companyname': companyname, 'issuper': issuper, 'token': user.token}) + + def logout(req): - if req.session.get('userid',None): - logger.info('method: %s user: %s 登出' % (req.method,req.session['userid'])) + if req.session.get('userid', None): + logger.info('method: %s user: %s 登出' % + (req.method, req.session['userid'])) req.session.flush() return redirect('login') @@ -442,50 +551,58 @@ def changepwd(req): oldpassword = req.POST.get('oldpassword') newpassword = req.POST.get('newpassword') a = User.objects.get(userid=userid) - if check_password(oldpassword,a.epassword): + if check_password(oldpassword, a.epassword): a.password = newpassword a.epassword = make_password(newpassword) a.save() del req.session['userid'] - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":2}) + return JsonResponse({"code": 2}) + def mainapi(req): - #计算一些数据 + # 计算一些数据 userid = req.session['userid'] companyid = getcompany(userid) - first_day,first_day_of_next_month=gettime() - #查询 - a = Trouble.objects.filter(usecomp__partid=companyid,deletemark=1) + first_day, first_day_of_next_month = gettime() + # 查询 + a = Trouble.objects.filter(usecomp__partid=companyid, deletemark=1) totalyh = a.count() - monthyh = a.filter(fxsj__range=(first_day, first_day_of_next_month)).count() + monthyh = a.filter(fxsj__range=( + first_day, first_day_of_next_month)).count() yhnum = a.filter(todouser__userid=userid).count() - b = Train.objects.filter(usecomp__partid=companyid,deletemark=1) - pxnum = b.filter(state=0,submituser__userid=userid).count() + b = Train.objects.filter(usecomp__partid=companyid, deletemark=1) + pxnum = b.filter(state=0, submituser__userid=userid).count() totalpx = b.count() - monthpx = b.filter(starttime__range=(first_day, first_day_of_next_month)).count() + monthpx = b.filter(starttime__range=( + first_day, first_day_of_next_month)).count() - c = Drill.objects.filter(usecomp__partid=companyid,deletemark=1) - totalyl=c.count() - ylnum =c.filter(state=0,submituser__userid=userid).count() - monthyl = c.filter(starttime__range=(first_day, first_day_of_next_month)).count() + c = Drill.objects.filter(usecomp__partid=companyid, deletemark=1) + totalyl = c.count() + ylnum = c.filter(state=0, submituser__userid=userid).count() + monthyl = c.filter(starttime__range=( + first_day, first_day_of_next_month)).count() - gcobjs = Observe.objects.filter(deletemark=1,usecomp__partid=companyid) - gcnum = gcobjs.filter(looktime__range=(first_day,first_day_of_next_month)).count() - monthgc = gcobjs.filter(submittime__range=(first_day, first_day_of_next_month)).count() + gcobjs = Observe.objects.filter(deletemark=1, usecomp__partid=companyid) + gcnum = gcobjs.filter(looktime__range=( + first_day, first_day_of_next_month)).count() + monthgc = gcobjs.filter(submittime__range=( + first_day, first_day_of_next_month)).count() - wsobjs = Miss.objects.filter(deletemark=1,usecomp__partid=companyid) - monthws = wsobjs.filter(submittime__range=(first_day, first_day_of_next_month)).count() + wsobjs = Miss.objects.filter(deletemark=1, usecomp__partid=companyid) + monthws = wsobjs.filter(submittime__range=( + first_day, first_day_of_next_month)).count() - return JsonResponse({"code":1,"yhnum":yhnum,"totalyh":totalyh,"monthyh":monthyh,"pxnum":pxnum,"totalpx":totalpx,"monthpx":monthpx,"ylnum":monthyl,"totalyl":totalyl,"xwnum":monthgc,"wsnum":monthws}) + return JsonResponse({"code": 1, "yhnum": yhnum, "totalyh": totalyh, "monthyh": monthyh, "pxnum": pxnum, "totalpx": totalpx, "monthpx": monthpx, "ylnum": monthyl, "totalyl": totalyl, "xwnum": monthgc, "wsnum": monthws}) -def getpgr_ubp(userid,ubp): - a=ubp - if a.aqy!=',': + +def getpgr_ubp(userid, ubp): + a = ubp + if a.aqy != ',': if ','+str(userid)+',' in a.aqy: - if a.bmzg !=',': + if a.bmzg != ',': if ','+str(userid)+',' in a.bmzg: return False else: @@ -506,7 +623,7 @@ def getpgr_ubp(userid,ubp): todouser = User.objects.get(userid=aqylist[0]) return todouser else: - if a.bmzg !=',': + if a.bmzg != ',': if ','+str(userid)+',' in a.bmzg: return False else: @@ -518,24 +635,27 @@ def getpgr_ubp(userid,ubp): else: return False -def getpgr(userid,ubp): - currentpart=ubp + +def getpgr(userid, ubp): + currentpart = ubp if userid == 'zpbm': - return getpgr_ubp(userid,currentpart) + return getpgr_ubp(userid, currentpart) else: - a=getpgr_ubp(userid,currentpart) - while a==False: - currentpart=currentpart.parentid #已找不到上级部门 + a = getpgr_ubp(userid, currentpart) + while a == False: + currentpart = currentpart.parentid # 已找不到上级部门 if currentpart: - a=getpgr_ubp(userid,currentpart) + a = getpgr_ubp(userid, currentpart) else: return User.objects.get(userid=userid) return a -#系统智能选取评估审核人 主管 -def getpgr_ubp2(userid,ubp): - a=ubp - if a.bmzg !=',': +# 系统智能选取评估审核人 主管 + + +def getpgr_ubp2(userid, ubp): + a = ubp + if a.bmzg != ',': zgstr = a.bmzg zglist = zgstr.split(',') zglist = list(filter(None, zglist)) @@ -544,21 +664,24 @@ def getpgr_ubp2(userid,ubp): else: return False -def getpgr2(userid,ubp): - currentpart=ubp - a=getpgr_ubp2(userid,currentpart) - while a==False: - currentpart=currentpart.parentid #已找不到上级部门 + +def getpgr2(userid, ubp): + currentpart = ubp + a = getpgr_ubp2(userid, currentpart) + while a == False: + currentpart = currentpart.parentid # 已找不到上级部门 if currentpart: - a=getpgr_ubp2(userid,currentpart) + a = getpgr_ubp2(userid, currentpart) else: return User.objects.get(userid=userid) return a -#系统智能选取作业审批人 +# 系统智能选取作业审批人 + + def getspr_ubp(ubp): - a=ubp - if a.bmzg !=',': + a = ubp + if a.bmzg != ',': zgstr = a.bmzg zglist = zgstr.split(',') zglist = list(filter(None, zglist)) @@ -566,31 +689,34 @@ def getspr_ubp(ubp): else: return False + def getspr(ubp): - currentpart=ubp - a=getspr_ubp(currentpart) - while a==False: - currentpart=currentpart.parentid #已找不到上级部门 + currentpart = ubp + a = getspr_ubp(currentpart) + while a == False: + currentpart = currentpart.parentid # 已找不到上级部门 if currentpart: - a=getspr_ubp(currentpart) + a = getspr_ubp(currentpart) else: - return User.objects.get(ubelongpart=currentpart,issuper=1) + return User.objects.get(ubelongpart=currentpart, issuper=1) return a -def getsprs(userid,ubp): - currentpart=ubp - a=getsprs_ubp(userid,currentpart) - while a==False: - currentpart=currentpart.parentid #已找不到上级部门 + +def getsprs(userid, ubp): + currentpart = ubp + a = getsprs_ubp(userid, currentpart) + while a == False: + currentpart = currentpart.parentid # 已找不到上级部门 if currentpart: - a=getsprs_ubp(userid,currentpart) + a = getsprs_ubp(userid, currentpart) else: - return User.objects.get(ubelongpart=currentpart,issuper=1) + return User.objects.get(ubelongpart=currentpart, issuper=1) return a -def getsprs_ubp(userid,ubp):#主管 - a=ubp - if a.bmzg !=',': + +def getsprs_ubp(userid, ubp): # 主管 + a = ubp + if a.bmzg != ',': zgstr = a.bmzg zglist = zgstr.split(',') zglist = list(map(int, list(filter(None, zglist)))) @@ -601,20 +727,22 @@ def getsprs_ubp(userid,ubp):#主管 else: return False -def getsprs2(userid,ubp): - currentpart=ubp - a=getsprs_ubp2(userid,currentpart) - while a==False: - currentpart=currentpart.parentid #已找不到上级部门 + +def getsprs2(userid, ubp): + currentpart = ubp + a = getsprs_ubp2(userid, currentpart) + while a == False: + currentpart = currentpart.parentid # 已找不到上级部门 if currentpart: - a=getsprs_ubp2(userid,currentpart) + a = getsprs_ubp2(userid, currentpart) else: - return User.objects.get(ubelongpart=currentpart,issuper=1) + return User.objects.get(ubelongpart=currentpart, issuper=1) return a -def getsprs_ubp2(userid,ubp):#主管和被授权人员 - a=ubp - if a.bmzg !=',': + +def getsprs_ubp2(userid, ubp): # 主管和被授权人员 + a = ubp + if a.bmzg != ',': zgstr = a.bmzg zglist = zgstr.split(',') zglist = list(map(int, list(filter(None, zglist)))) @@ -633,12 +761,11 @@ def getsprs_ubp2(userid,ubp):#主管和被授权人员 return False - def menutree(req): userid = req.session['userid'] - if User.objects.get(userid=userid).issuper == 1:#如果是超管 + if User.objects.get(userid=userid).issuper == 1: # 如果是超管 companyid = getcompany(userid) - x = Group.objects.get(usecomp__partid=companyid,grouptype=0).menulink + x = Group.objects.get(usecomp__partid=companyid, grouptype=0).menulink list1 = x.split(',') else: bgroups = User.objects.get(userid=userid).userg.all() @@ -646,48 +773,54 @@ def menutree(req): for i in bgroups: x = x + ',' + i.menulink list1 = x.split(',') - #del list1[0]#删除首空字符 - menus = Menu.objects.exclude(menuid__in=[11,9]).filter(menuid__in=list(filter(None,list(set(list1)))),deletemark=1).order_by('sortnum').values('menuid','menucode','parentid','url','menuname','icon').distinct() - return HttpResponse(json.dumps(list(menus)),content_type="application/json") + # del list1[0]#删除首空字符 + menus = Menu.objects.exclude(menuid__in=[11, 9]).filter(menuid__in=list(filter(None, list(set(list1)))), deletemark=1).order_by( + 'sortnum').values('menuid', 'menucode', 'parentid', 'url', 'menuname', 'icon').distinct() + return HttpResponse(json.dumps(list(menus)), content_type="application/json") def apirights(req): a = req.GET.get('a') - if a=='detail': + if a == 'detail': groupid = req.GET.get('groupid') haverights = Group.objects.get(groupid=groupid).menulink.split(',') userid = req.session['userid'] companyid = getcompany(userid) - allrights = Group.objects.get(usecomp__partid=companyid,grouptype=0).menulink.split(',') - menus = Menu.objects.exclude(menuid__in=[11,9]).filter(menuid__in = allrights,deletemark=1).order_by('menuid').values('menuid','menucode','parentid','url','menuname','icon').distinct() + allrights = Group.objects.get( + usecomp__partid=companyid, grouptype=0).menulink.split(',') + menus = Menu.objects.exclude(menuid__in=[11, 9]).filter(menuid__in=allrights, deletemark=1).order_by( + 'menuid').values('menuid', 'menucode', 'parentid', 'url', 'menuname', 'icon').distinct() for i in menus: if str(i['menuid']) in haverights and i['url'] != None: - i['checked']=True + i['checked'] = True else: - i['checked']=False - return HttpResponse(json.dumps(list(menus)),content_type="application/json") - elif a=='edit': + i['checked'] = False + return HttpResponse(json.dumps(list(menus)), content_type="application/json") + elif a == 'edit': groupid = req.GET.get('groupid') data = req.POST.get('data') data = json.loads(data) - rlist = ['11','9'] + rlist = ['11', '9'] for i in data: rlist.append(str(i['id'])) # x = i['id'] # while Menu.objects.get(menuid=x).parentid != None: # x = Menu.objects.get(menuid=x).parentid.menuid # rlist.append(str(x)) - Group.objects.filter(groupid=groupid).update(menulink=','.join(list(set(rlist)))) - return JsonResponse({"code":1}) - elif a=='have': + Group.objects.filter(groupid=groupid).update( + menulink=','.join(list(set(rlist)))) + return JsonResponse({"code": 1}) + elif a == 'have': userid = req.session['userid'] companyid = getcompany(userid) - allrights = Group.objects.get(usecomp__partid=companyid,grouptype=0).menulink.split(',') - return JsonResponse({'code':1,'rights':allrights}) + allrights = Group.objects.get( + usecomp__partid=companyid, grouptype=0).menulink.split(',') + return JsonResponse({'code': 1, 'rights': allrights}) + def addyh(req): - userid=req.session['userid'] - user=User.objects.get(userid=userid) + userid = req.session['userid'] + user = User.objects.get(userid=userid) yhdata = json.loads(req.body.decode('utf-8')) troubleid = yhdata['troubleid'] if 'troubleid' in yhdata else '' fxsj = yhdata['fxsj'] @@ -706,327 +839,336 @@ def addyh(req): zgr = yhdata['zgr'] if 'zgr' in yhdata else '' zgqx = yhdata['zgqx'] if 'zgqx' in yhdata else '' zgms = yhdata['zgms'] if 'zgms' in yhdata else '' - sybzt=0 - if troubleid!='': + sybzt = 0 + if troubleid != '': a = Trouble.objects.get(troubleid=troubleid) else: a = Trouble() - companyid=getcompany(userid) - a.usecomp=Partment.objects.get(partid=companyid) + companyid = getcompany(userid) + a.usecomp = Partment.objects.get(partid=companyid) a.fxsj = fxsj a.fxbm = user.ubelongpart a.fxr = user a.yhdd = yhdd if 'yhqy' in yhdata: if yhdata['yhqy']: - a.yhqy = Area.objects.get(id= yhdata['yhqy']) + a.yhqy = Area.objects.get(id=yhdata['yhqy']) a.yhms = yhms a.yhtp = yhtp - a.yhnum='YH'+time.strftime('%Y%m%d%H%M%S') + a.yhnum = 'YH'+time.strftime('%Y%m%d%H%M%S') a.yyfx = yyfx a.zgcs = zgcs a.zgms = zgms - if yhdj !='': + if yhdj != '': a.yhdj = Dickey.objects.get(dickeyid=yhdj) - if yhpg !='': + if yhpg != '': a.yhpg = Dickey.objects.get(dickeyid=yhpg) - if jclx !='': + if jclx != '': a.jclx = Dickey.objects.get(dickeyid=jclx) - if yhlx !='': + if yhlx != '': a.yhlx = Dicclass.objects.get(dicid=yhlx) - if yhlb !='': + if yhlb != '': a.yhlb = Dickey.objects.get(dickeyid=yhlb) - if a.yhdj.dickeyname =='无隐患' or zgms !='': - #直接到待复查 + if a.yhdj.dickeyname == '无隐患' or zgms != '': + # 直接到待复查 a.zghtp = zghtp a.yhzt = 5 - x=getpgr(userid,user.ubelongpart) - a.todouser=x - a.fcr=x - a.zpr=user - a.pgr=user + x = getpgr(userid, user.ubelongpart) + a.todouser = x + a.fcr = x + a.zpr = user + a.pgr = user a.csqrr = user a.shr = user - a.sybzt=0 + a.sybzt = 0 if zgbm and zgr: a.zgbm = Partment.objects.get(partid=zgbm) a.zgr = User.objects.get(userid=zgr) a.save() - m=TroubleAccess(troubleid=a,clr=user,yhzt=0,action='新增隐患已整改',result=1) + m = TroubleAccess(troubleid=a, clr=user, yhzt=0, + action='新增隐患已整改', result=1) m.save() - postdict={ - 'touser':'oPGqkweX75QtLmgehUN-ipR4hcyc', - 'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', - "miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/trouble/accesstrouble?troubleid="+str(a.troubleid) }, - 'data':{ - 'first':{ - 'value':a.yhdj.dickeyname + '待复查:' + postdict = { + 'touser': 'oPGqkweX75QtLmgehUN-ipR4hcyc', + 'template_id': 'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', + "miniprogram": {"appid": "wx5c39b569f01c27db", "path": "pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, + 'data': { + 'first': { + 'value': a.yhdj.dickeyname + '待复查:' }, - 'keyword1':{ - 'value':a.yhms + 'keyword1': { + 'value': a.yhms }, - 'keyword2':{ - 'value':a.fxsj + 'keyword2': { + 'value': a.fxsj }, - 'keyword3':{ - 'value':a.yhdd + 'keyword3': { + 'value': a.yhdd }, - 'remark':{ - 'value':'该隐患已完成整改,请及时复查。' + 'remark': { + 'value': '该隐患已完成整改,请及时复查。' } } } - postdict['touser']=a.todouser.openid + postdict['touser'] = a.todouser.openid send_wechatmsg.delay(postdict) yjjs.delay(companyid) - return JsonResponse({"code":1,"trouble":a.troubleid,"yhnum":a.yhnum}) - elif zgr !='' and (yyfx == '' or zgcs ==''): - #直接到整改措施待上传 - a.zgbm=Partment.objects.get(partid=zgbm) - a.zgr=User.objects.get(userid=zgr) - a.zgqx=zgqx + return JsonResponse({"code": 1, "trouble": a.troubleid, "yhnum": a.yhnum}) + elif zgr != '' and (yyfx == '' or zgcs == ''): + # 直接到整改措施待上传 + a.zgbm = Partment.objects.get(partid=zgbm) + a.zgr = User.objects.get(userid=zgr) + a.zgqx = zgqx a.yhzt = 7 a.todouser = User.objects.get(userid=zgr) if a.zgr != user: - a.fcr=user + a.fcr = user else: - a.fcr=getpgr(userid,user.ubelongpart.parentid) - a.pgr=user - a.zpr=user - a.shr=user - a.csqrr=user - a.sybzt=0 + a.fcr = getpgr(userid, user.ubelongpart.parentid) + a.pgr = user + a.zpr = user + a.shr = user + a.csqrr = user + a.sybzt = 0 a.save() - m=TroubleAccess(troubleid=a,clr=user,yhzt=0,action='新增隐患并指派整改人',result=1) + m = TroubleAccess(troubleid=a, clr=user, yhzt=0, + action='新增隐患并指派整改人', result=1) m.save() - postdict={ - 'touser':'oPGqkweX75QtLmgehUN-ipR4hcyc', - 'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', - "miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, - 'data':{ + postdict = { + 'touser': 'oPGqkweX75QtLmgehUN-ipR4hcyc', + 'template_id': 'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', + "miniprogram": {"appid": "wx5c39b569f01c27db", "path": "pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, + 'data': { - 'first':{ - 'value':a.yhdj.dickeyname + '原因分析/整改措施待上传:' + 'first': { + 'value': a.yhdj.dickeyname + '原因分析/整改措施待上传:' }, - 'keyword1':{ - 'value':a.yhms + 'keyword1': { + 'value': a.yhms }, - 'keyword2':{ - 'value':a.fxsj + 'keyword2': { + 'value': a.fxsj }, - 'keyword3':{ - 'value':a.yhdd + 'keyword3': { + 'value': a.yhdd }, - 'remark':{ - 'value':'整改期限为'+zgqx+',请您先及时填写原因分析,制定整改措施。' + 'remark': { + 'value': '整改期限为'+zgqx+',请您先及时填写原因分析,制定整改措施。' } } } - postdict['touser']=a.todouser.openid + postdict['touser'] = a.todouser.openid send_wechatmsg.delay(postdict) yjjs.delay(companyid) - return JsonResponse({"code":1,"trouble":a.troubleid,"yhnum":a.yhnum}) - elif zgr !='' and yyfx != '' and zgcs !='': - #到待整改 - a.zgbm=Partment.objects.get(partid=zgbm) - a.zgr=User.objects.get(userid=zgr) - a.zgqx=zgqx + return JsonResponse({"code": 1, "trouble": a.troubleid, "yhnum": a.yhnum}) + elif zgr != '' and yyfx != '' and zgcs != '': + # 到待整改 + a.zgbm = Partment.objects.get(partid=zgbm) + a.zgr = User.objects.get(userid=zgr) + a.zgqx = zgqx a.yhzt = 3 a.todouser = User.objects.get(userid=zgr) if a.zgr != user: - a.fcr=user + a.fcr = user else: parentpart = user.ubelongpart.parentid if parentpart: - a.fcr=getpgr(userid,user.ubelongpart.parentid) + a.fcr = getpgr(userid, user.ubelongpart.parentid) else: - a.fcr=user - a.shr=user - a.pgr=user - a.zpr=user - a.csqrr=user - a.sybzt=0 + a.fcr = user + a.shr = user + a.pgr = user + a.zpr = user + a.csqrr = user + a.sybzt = 0 a.save() - m=TroubleAccess(troubleid=a,clr=user,yhzt=0,action='新增隐患并指派整改人',result=1) + m = TroubleAccess(troubleid=a, clr=user, yhzt=0, + action='新增隐患并指派整改人', result=1) m.save() - postdict={ - 'touser':'oPGqkweX75QtLmgehUN-ipR4hcyc', - 'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', - "miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, - 'data':{ + postdict = { + 'touser': 'oPGqkweX75QtLmgehUN-ipR4hcyc', + 'template_id': 'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', + "miniprogram": {"appid": "wx5c39b569f01c27db", "path": "pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, + 'data': { - 'first':{ - 'value':a.yhdj.dickeyname + '待整改:' + 'first': { + 'value': a.yhdj.dickeyname + '待整改:' }, - 'keyword1':{ - 'value':a.yhms + 'keyword1': { + 'value': a.yhms }, - 'keyword2':{ - 'value':a.fxsj + 'keyword2': { + 'value': a.fxsj }, - 'keyword3':{ - 'value':a.yhdd + 'keyword3': { + 'value': a.yhdd }, - 'remark':{ - 'value':'整改期限为'+zgqx+',请您及时完成整改。' + 'remark': { + 'value': '整改期限为'+zgqx+',请您及时完成整改。' } } } - postdict['touser']=a.todouser.openid + postdict['touser'] = a.todouser.openid send_wechatmsg.delay(postdict) yjjs.delay(companyid) - return JsonResponse({"code":1,"trouble":a.troubleid,"yhnum":a.yhnum}) - elif zgbm!='' and zgr =='' : - #到整改部门待评估 指派部门整改 + return JsonResponse({"code": 1, "trouble": a.troubleid, "yhnum": a.yhnum}) + elif zgbm != '' and zgr == '': + # 到整改部门待评估 指派部门整改 a.yhzt = 1 - x=getpgr('zpbm',Partment.objects.get(partid=zgbm)) - if x==False: - return JsonResponse({"code":101}) - a.todouser=x - a.shr=x - a.csqrr=x - a.fcr=user - a.pgr=user - a.zgbm=Partment.objects.get(partid=zgbm) - a.sybzt=0 + x = getpgr('zpbm', Partment.objects.get(partid=zgbm)) + if x == False: + return JsonResponse({"code": 101}) + a.todouser = x + a.shr = x + a.csqrr = x + a.fcr = user + a.pgr = user + a.zgbm = Partment.objects.get(partid=zgbm) + a.sybzt = 0 a.save() - m=TroubleAccess(troubleid=a,clr=user,yhzt=0,action='新增隐患并指派整改部门',result=1) + m = TroubleAccess(troubleid=a, clr=user, yhzt=0, + action='新增隐患并指派整改部门', result=1) m.save() - postdict={ - 'touser':'oPGqkweX75QtLmgehUN-ipR4hcyc', - 'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', - "miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, - 'data':{ + postdict = { + 'touser': 'oPGqkweX75QtLmgehUN-ipR4hcyc', + 'template_id': 'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', + "miniprogram": {"appid": "wx5c39b569f01c27db", "path": "pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, + 'data': { - 'first':{ - 'value':a.yhdj.dickeyname + '待评估:' + 'first': { + 'value': a.yhdj.dickeyname + '待评估:' }, - 'keyword1':{ - 'value':a.yhms + 'keyword1': { + 'value': a.yhms }, - 'keyword2':{ - 'value':a.fxsj + 'keyword2': { + 'value': a.fxsj }, - 'keyword3':{ - 'value':a.yhdd + 'keyword3': { + 'value': a.yhdd }, - 'remark':{ - 'value':'请您及时评估并制定整改通知单。' + 'remark': { + 'value': '请您及时评估并制定整改通知单。' } } } - postdict['touser']=a.todouser.openid + postdict['touser'] = a.todouser.openid send_wechatmsg.delay(postdict) - return JsonResponse({"code":1,"trouble":a.troubleid,"yhnum":a.yhnum}) + return JsonResponse({"code": 1, "trouble": a.troubleid, "yhnum": a.yhnum}) else: - #正常流程到待评估 + # 正常流程到待评估 a.yhzt = 1 - x=getpgr(userid,user.ubelongpart) + x = getpgr(userid, user.ubelongpart) a.pgr = x - a.todouser=x - a.sybzt=0 + a.todouser = x + a.sybzt = 0 a.save() - m=TroubleAccess(troubleid=a,clr=user,yhzt=0,action='新增隐患',result=1) + m = TroubleAccess(troubleid=a, clr=user, yhzt=0, + action='新增隐患', result=1) m.save() - postdict={ - 'touser':'oPGqkweX75QtLmgehUN-ipR4hcyc', - 'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', - "miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, - 'data':{ + postdict = { + 'touser': 'oPGqkweX75QtLmgehUN-ipR4hcyc', + 'template_id': 'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', + "miniprogram": {"appid": "wx5c39b569f01c27db", "path": "pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, + 'data': { - 'first':{ - 'value':a.yhdj.dickeyname + '待评估:' + 'first': { + 'value': a.yhdj.dickeyname + '待评估:' }, - 'keyword1':{ - 'value':a.yhms + 'keyword1': { + 'value': a.yhms }, - 'keyword2':{ - 'value':a.fxsj + 'keyword2': { + 'value': a.fxsj }, - 'keyword3':{ - 'value':a.yhdd + 'keyword3': { + 'value': a.yhdd }, - 'remark':{ - 'value':'请您及时评估并制定整改通知单。' + 'remark': { + 'value': '请您及时评估并制定整改通知单。' } } } - postdict['touser']=a.todouser.openid + postdict['touser'] = a.todouser.openid send_wechatmsg.delay(postdict) - return JsonResponse({"code":1,"trouble":a.troubleid,"yhnum":a.yhnum}) + return JsonResponse({"code": 1, "trouble": a.troubleid, "yhnum": a.yhnum}) def getyh(req): if 'userid' in req.session: userid = req.session['userid'] - troubleid =req.GET.get('troubleid') - a = Trouble.objects.filter(troubleid=troubleid).values('sybzt','troubleid','fxr__userid','fxr__name','yhms','yhzt','fxsj','tbsj','yhlb__dickeyname','yhlb__dickeyid','todouser__name','yhpg__dickeyname','yhnum','yhdd','fxbm__partname','yhdj__dickeyname','yhdj__dickeyid','yhpg__dickeyname','yhpg__dickeyid','jclx__dickeyname','jclx__dickeyid','yhlx__dicname','yhlx__dicid','yyfx','zgcs','yhtp','zghtp','zgms','zgbm__partname','zgbm__partid','zgr__name','zgqx','fcr__ubelongpart__partname','fcr__name','shr__ubelongpart__partname','shr__name','pgr__ubelongpart__partname','pgr__name','zpr__ubelongpart__partname','zpr__name','csqrr__ubelongpart__partname','csqrr__name','shyj','fcyj','shresult','zgbm','zgr','pgyj')[0] - #print(a['yhtp']) - if a['yhtp']!='': + troubleid = req.GET.get('troubleid') + a = Trouble.objects.filter(troubleid=troubleid).values('sybzt', 'troubleid', 'fxr__userid', 'fxr__name', 'yhms', 'yhzt', 'fxsj', 'tbsj', 'yhlb__dickeyname', 'yhlb__dickeyid', 'todouser__name', 'yhpg__dickeyname', 'yhnum', 'yhdd', 'fxbm__partname', 'yhdj__dickeyname', 'yhdj__dickeyid', 'yhpg__dickeyname', 'yhpg__dickeyid', 'jclx__dickeyname', 'jclx__dickeyid', 'yhlx__dicname', + 'yhlx__dicid', 'yyfx', 'zgcs', 'yhtp', 'zghtp', 'zgms', 'zgbm__partname', 'zgbm__partid', 'zgr__name', 'zgqx', 'fcr__ubelongpart__partname', 'fcr__name', 'shr__ubelongpart__partname', 'shr__name', 'pgr__ubelongpart__partname', 'pgr__name', 'zpr__ubelongpart__partname', 'zpr__name', 'csqrr__ubelongpart__partname', 'csqrr__name', 'shyj', 'fcyj', 'shresult', 'zgbm', 'zgr', 'pgyj')[0] + # print(a['yhtp']) + if a['yhtp'] != '': a['yhtp'] = a['yhtp'].split('?') - if a['zghtp']!='': - a['zghtp']= a['zghtp'].split('?') + if a['zghtp'] != '': + a['zghtp'] = a['zghtp'].split('?') for key in a: if a[key] == None: a[key] = '' - #print(a['yhtp']) + # print(a['yhtp']) return JsonResponse(a) - #return JsonResponse() + # return JsonResponse() else: - return JsonResponse({"code":0}) + return JsonResponse({"code": 0}) + def accessyh(req): userid = req.session['userid'] yhdata = json.loads(req.body.decode('utf-8')) - troubleid =yhdata['troubleid'] + troubleid = yhdata['troubleid'] a = Trouble.objects.get(troubleid=troubleid) companyid = a.usecomp.partid b = User.objects.get(userid=userid) - shresult=yhdata['shresult'] - if a.yhzt==5:#待复查 - fcyj=yhdata['fcyj'] - if shresult=='reject': - a.shresult=3 - a.yhzt=3 - a.sybzt=5 + shresult = yhdata['shresult'] + if a.yhzt == 5: # 待复查 + fcyj = yhdata['fcyj'] + if shresult == 'reject': + a.shresult = 3 + a.yhzt = 3 + a.sybzt = 5 if a.zgr != None: a.todouser = a.zgr else: a.todouser = a.fxr - a.fcyj=fcyj + a.fcyj = fcyj a.save() - m=TroubleAccess(troubleid=a,clr=b,yhzt=5,action='复查未通过',opinion=fcyj,result=0) + m = TroubleAccess(troubleid=a, clr=b, yhzt=5, + action='复查未通过', opinion=fcyj, result=0) m.save() - postdict={ - 'touser':'oPGqkweX75QtLmgehUN-ipR4hcyc', - 'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', - "miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, - 'data':{ - 'first':{'value':a.yhdj.dickeyname + '待整改:'}, - 'keyword1':{'value':a.yhms}, - 'keyword2':{'value':a.fxsj}, - 'keyword3':{'value':a.yhdd}, - 'remark':{'value':'您提交的整改结果未通过复查,请重新整改。'} - } + postdict = { + 'touser': 'oPGqkweX75QtLmgehUN-ipR4hcyc', + 'template_id': 'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', + "miniprogram": {"appid": "wx5c39b569f01c27db", "path": "pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, + 'data': { + 'first': {'value': a.yhdj.dickeyname + '待整改:'}, + 'keyword1': {'value': a.yhms}, + 'keyword2': {'value': a.fxsj}, + 'keyword3': {'value': a.yhdd}, + 'remark': {'value': '您提交的整改结果未通过复查,请重新整改。'} } - postdict['touser']=a.todouser.openid + } + postdict['touser'] = a.todouser.openid send_wechatmsg.delay(postdict) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - a.yhzt=6 - a.sybzt=5 - a.todouser=None - a.fcyj=fcyj + a.yhzt = 6 + a.sybzt = 5 + a.todouser = None + a.fcyj = fcyj a.save() - m=TroubleAccess(troubleid=a,clr=b,yhzt=5,action='整改结果复查通过',opinion=fcyj,result=1) + m = TroubleAccess(troubleid=a, clr=b, yhzt=5, + action='整改结果复查通过', opinion=fcyj, result=1) m.save() objs = Inspect.objects.filter(trouble=a) if objs.exists(): obj = objs[0] - obj.equipment.state=1 + obj.equipment.state = 1 obj.equipment.save() yjjs.delay(companyid) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) # elif a.zgr==None and a.zgms=='':#无隐患 # a.yhzt=6 # a.sybzt=5 @@ -1048,62 +1190,65 @@ def accessyh(req): # yjjs.delay(companyid) # return JsonResponse({"code":1}) - elif a.yhzt==3:#提交整改后 - if a.sybzt==4 or a.sybzt== 5: - a.shresult=4 + elif a.yhzt == 3: # 提交整改后 + if a.sybzt == 4 or a.sybzt == 5: + a.shresult = 4 else: - a.shresult=1 - if a.shr==a.fcr or a.shr==None: - a.yhzt=5 - a.sybzt=3 - a.todouser=a.fcr + a.shresult = 1 + if a.shr == a.fcr or a.shr == None: + a.yhzt = 5 + a.sybzt = 3 + a.todouser = a.fcr else: - a.yhzt=4 - a.sybzt=3 - a.todouser=a.shr - a.zgms=yhdata['zgms'] - a.zghtp='?'.join(yhdata['zghtp']) - a.zgsj=datetime.now() + a.yhzt = 4 + a.sybzt = 3 + a.todouser = a.shr + a.zgms = yhdata['zgms'] + a.zghtp = '?'.join(yhdata['zghtp']) + a.zgsj = datetime.now() a.save() - m=TroubleAccess(troubleid=a,clr=b,yhzt=3,action='提交整改结果',result=1) + m = TroubleAccess(troubleid=a, clr=b, yhzt=3, + action='提交整改结果', result=1) m.save() - return JsonResponse({"code":1}) - elif a.yhzt==4:#待审核 - shyj=yhdata['shyj'] - if shresult=='reject': - a.shresult=2 - a.yhzt=3 - a.sybzt=4 - a.todouser=a.zgr - a.shyj=shyj + return JsonResponse({"code": 1}) + elif a.yhzt == 4: # 待审核 + shyj = yhdata['shyj'] + if shresult == 'reject': + a.shresult = 2 + a.yhzt = 3 + a.sybzt = 4 + a.todouser = a.zgr + a.shyj = shyj a.save() - m=TroubleAccess(troubleid=a,clr=b,yhzt=4,action='审核未通过',opinion=shyj,result=0) + m = TroubleAccess(troubleid=a, clr=b, yhzt=4, + action='审核未通过', opinion=shyj, result=0) m.save() - postdict={ - 'touser':'oPGqkweX75QtLmgehUN-ipR4hcyc', - 'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', - "miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, - 'data':{ - 'first':{'value':a.yhdj.dickeyname + '待整改:'}, - 'keyword1':{'value':a.yhms}, - 'keyword2':{'value':a.fxsj}, - 'keyword3':{'value':a.yhdd}, - 'remark':{'value':'您提交的整改结果未通过审核,请重新整改。'} - } - } - postdict['touser']=a.todouser.openid + postdict = { + 'touser': 'oPGqkweX75QtLmgehUN-ipR4hcyc', + 'template_id': 'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', + "miniprogram": {"appid": "wx5c39b569f01c27db", "path": "pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, + 'data': { + 'first': {'value': a.yhdj.dickeyname + '待整改:'}, + 'keyword1': {'value': a.yhms}, + 'keyword2': {'value': a.fxsj}, + 'keyword3': {'value': a.yhdd}, + 'remark': {'value': '您提交的整改结果未通过审核,请重新整改。'} + } + } + postdict['touser'] = a.todouser.openid send_wechatmsg.delay(postdict) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - a.yhzt=5 - a.sybzt=4 - a.todouser=a.fcr - a.shyj=shyj + a.yhzt = 5 + a.sybzt = 4 + a.todouser = a.fcr + a.shyj = shyj a.save() - m=TroubleAccess(troubleid=a,clr=b,yhzt=4,action='整改结果审核通过',opinion=shyj,result=1) + m = TroubleAccess(troubleid=a, clr=b, yhzt=4, + action='整改结果审核通过', opinion=shyj, result=1) m.save() - return JsonResponse({"code":1}) - elif a.yhzt==1: + return JsonResponse({"code": 1}) + elif a.yhzt == 1: if yhdata['shresult'] == 'reject': if 'accept' in yhdata: if yhdata['accept'] == 'no': @@ -1113,23 +1258,24 @@ def accessyh(req): a.todouser = None a.pgyj = yhdata['pgyj'] a.save() - m=TroubleAccess(troubleid=a,clr=a.pgr,yhzt=6,action='未采纳',opinion=yhdata['pgyj']) + m = TroubleAccess( + troubleid=a, clr=a.pgr, yhzt=6, action='未采纳', opinion=yhdata['pgyj']) m.save() - postdict={ - 'touser':'oPGqkweX75QtLmgehUN-ipR4hcyc', - 'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', - "miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, - 'data':{ - 'first':{'value':a.yhdj.dickeyname + '未被采纳:'}, - 'keyword1':{'value':a.yhms}, - 'keyword2':{'value':a.fxsj}, - 'keyword3':{'value':a.yhdd}, - 'remark':{'value':'请查看未采纳原因'} - } - } - postdict['touser']=a.fxr.openid + postdict = { + 'touser': 'oPGqkweX75QtLmgehUN-ipR4hcyc', + 'template_id': 'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', + "miniprogram": {"appid": "wx5c39b569f01c27db", "path": "pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, + 'data': { + 'first': {'value': a.yhdj.dickeyname + '未被采纳:'}, + 'keyword1': {'value': a.yhms}, + 'keyword2': {'value': a.fxsj}, + 'keyword3': {'value': a.yhdd}, + 'remark': {'value': '请查看未采纳原因'} + } + } + postdict['touser'] = a.fxr.openid send_wechatmsg.delay(postdict) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: a.shresult = 5 a.yhzt = 0 @@ -1137,382 +1283,400 @@ def accessyh(req): a.todouser = a.fxr a.pgyj = yhdata['pgyj'] a.save() - m=TroubleAccess(troubleid=a,clr=a.pgr,yhzt=0,action='请'+a.fxr.name+'重新填报',result=0) + m = TroubleAccess( + troubleid=a, clr=a.pgr, yhzt=0, action='请'+a.fxr.name+'重新填报', result=0) m.save() - postdict={ - 'touser':'oPGqkweX75QtLmgehUN-ipR4hcyc', - 'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', - "miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, - 'data':{ - 'first':{'value':a.yhdj.dickeyname + '被退回需重新上报:'}, - 'keyword1':{'value':a.yhms}, - 'keyword2':{'value':a.fxsj}, - 'keyword3':{'value':a.yhdd}, - 'remark':{'value':'请查看评估意见并修改后上传。'} - } - } - postdict['touser']=a.todouser.openid + postdict = { + 'touser': 'oPGqkweX75QtLmgehUN-ipR4hcyc', + 'template_id': 'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', + "miniprogram": {"appid": "wx5c39b569f01c27db", "path": "pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, + 'data': { + 'first': {'value': a.yhdj.dickeyname + '被退回需重新上报:'}, + 'keyword1': {'value': a.yhms}, + 'keyword2': {'value': a.fxsj}, + 'keyword3': {'value': a.yhdd}, + 'remark': {'value': '请查看评估意见并修改后上传。'} + } + } + postdict['touser'] = a.todouser.openid send_wechatmsg.delay(postdict) - return JsonResponse({"code":1}) - elif 'zppg' in yhdata and yhdata['zppg']=='yes': - a.yhzt=1 - a.sybzt=1 - #a.yhms=req.POST.get('yhms') + return JsonResponse({"code": 1}) + elif 'zppg' in yhdata and yhdata['zppg'] == 'yes': + a.yhzt = 1 + a.sybzt = 1 + # a.yhms=req.POST.get('yhms') a.todouser = User.objects.get(userid=yhdata['newr']) a.fcr = a.todouser a.pgr = a.todouser a.save() - m=TroubleAccess(troubleid=a,clr=b,yhzt=1,action='请'+a.fcr.name+'继续评估和复查',result=1) + m = TroubleAccess(troubleid=a, clr=b, yhzt=1, + action='请'+a.fcr.name+'继续评估和复查', result=1) m.save() - postdict={ - 'touser':'oPGqkweX75QtLmgehUN-ipR4hcyc', - 'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', - "miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, - 'data':{ - 'first':{'value':a.yhdj.dickeyname + '待评估:'}, - 'keyword1':{'value':a.yhms}, - 'keyword2':{'value':a.fxsj}, - 'keyword3':{'value':a.yhdd}, - 'remark':{'value':'请及时评估该隐患并制定整改通知单。'} - } - } - postdict['touser']=a.todouser.openid + postdict = { + 'touser': 'oPGqkweX75QtLmgehUN-ipR4hcyc', + 'template_id': 'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', + "miniprogram": {"appid": "wx5c39b569f01c27db", "path": "pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, + 'data': { + 'first': {'value': a.yhdj.dickeyname + '待评估:'}, + 'keyword1': {'value': a.yhms}, + 'keyword2': {'value': a.fxsj}, + 'keyword3': {'value': a.yhdd}, + 'remark': {'value': '请及时评估该隐患并制定整改通知单。'} + } + } + postdict['touser'] = a.todouser.openid send_wechatmsg.delay(postdict) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - #print(yhdata['zgcs']=='') - if yhdata['zgcs']!='': - a.yhzt=3 - a.sybzt=1 - a.yyfx=yhdata['yyfx'] - a.zgcs=yhdata['zgcs'] - a.yhpg=Dickey.objects.get(dickeyid=yhdata['yhpg']) - a.yhlx=Dicclass.objects.get(dicid=yhdata['yhlx']) - a.yhlb=Dickey.objects.get(dickeyid=yhdata['yhlb']) - a.zgbm=Partment.objects.get(partid=yhdata['zgbm']) - a.zgr=User.objects.get(userid=yhdata['zgr']) - a.zgqx=yhdata['zgqx'] - a.todouser=a.zgr - if a.pgr==None: - a.pgr=b - a.zpr=b + # print(yhdata['zgcs']=='') + if yhdata['zgcs'] != '': + a.yhzt = 3 + a.sybzt = 1 + a.yyfx = yhdata['yyfx'] + a.zgcs = yhdata['zgcs'] + a.yhpg = Dickey.objects.get(dickeyid=yhdata['yhpg']) + a.yhlx = Dicclass.objects.get(dicid=yhdata['yhlx']) + a.yhlb = Dickey.objects.get(dickeyid=yhdata['yhlb']) + a.zgbm = Partment.objects.get(partid=yhdata['zgbm']) + a.zgr = User.objects.get(userid=yhdata['zgr']) + a.zgqx = yhdata['zgqx'] + a.todouser = a.zgr + if a.pgr == None: + a.pgr = b + a.zpr = b if a.fcr: pass else: - a.fcr=b - a.csqrr=b - a.shr=b + a.fcr = b + a.csqrr = b + a.shr = b a.save() - m=TroubleAccess(troubleid=a,clr=b,yhzt=1,action='指派'+a.zgr.name+'整改',result=1) + m = TroubleAccess(troubleid=a, clr=b, yhzt=1, + action='指派'+a.zgr.name+'整改', result=1) m.save() - postdict={ - 'touser':'oPGqkweX75QtLmgehUN-ipR4hcyc', - 'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', - "miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, - 'data':{ - 'first':{'value':a.yhdj.dickeyname + '待整改:'}, - 'keyword1':{'value':a.yhms}, - 'keyword2':{'value':a.fxsj}, - 'keyword3':{'value':a.yhdd}, - 'remark':{'value':'整改期限为'+yhdata['zgqx']+',请您及时完成整改。'} - } + postdict = { + 'touser': 'oPGqkweX75QtLmgehUN-ipR4hcyc', + 'template_id': 'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', + "miniprogram": {"appid": "wx5c39b569f01c27db", "path": "pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, + 'data': { + 'first': {'value': a.yhdj.dickeyname + '待整改:'}, + 'keyword1': {'value': a.yhms}, + 'keyword2': {'value': a.fxsj}, + 'keyword3': {'value': a.yhdd}, + 'remark': {'value': '整改期限为'+yhdata['zgqx']+',请您及时完成整改。'} } - postdict['touser']=a.todouser.openid + } + postdict['touser'] = a.todouser.openid send_wechatmsg.delay(postdict) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - a.yhzt=7 - a.sybzt=1 - #a.yhms=req.POST.get('yhms') - #print(req.POST.get('yhms')) - a.yhpg=Dickey.objects.get(dickeyid=yhdata['yhpg']) - a.yhlx=Dicclass.objects.get(dicid=yhdata['yhlx']) - a.yhlb=Dickey.objects.get(dickeyid=yhdata['yhlb']) - a.zgbm=Partment.objects.get(partid=yhdata['zgbm']) - a.zgr=User.objects.get(userid=yhdata['zgr']) - a.zgqx=yhdata['zgqx'] - a.todouser=a.zgr - if a.pgr==None: - a.pgr=b - a.zpr=b - a.csqrr=b - a.shr=b + a.yhzt = 7 + a.sybzt = 1 + # a.yhms=req.POST.get('yhms') + # print(req.POST.get('yhms')) + a.yhpg = Dickey.objects.get(dickeyid=yhdata['yhpg']) + a.yhlx = Dicclass.objects.get(dicid=yhdata['yhlx']) + a.yhlb = Dickey.objects.get(dickeyid=yhdata['yhlb']) + a.zgbm = Partment.objects.get(partid=yhdata['zgbm']) + a.zgr = User.objects.get(userid=yhdata['zgr']) + a.zgqx = yhdata['zgqx'] + a.todouser = a.zgr + if a.pgr == None: + a.pgr = b + a.zpr = b + a.csqrr = b + a.shr = b if a.fcr: pass else: - a.fcr=b + a.fcr = b a.save() - m=TroubleAccess(troubleid=a,clr=b,yhzt=1,action='指派'+a.zgr.name+'整改',result=1) + m = TroubleAccess(troubleid=a, clr=b, yhzt=1, + action='指派'+a.zgr.name+'整改', result=1) m.save() - postdict={ - 'touser':'oPGqkweX75QtLmgehUN-ipR4hcyc', - 'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', - "miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, - 'data':{ - 'first':{'value':a.yhdj.dickeyname + '待整改:'}, - 'keyword1':{'value':a.yhms}, - 'keyword2':{'value':a.fxsj}, - 'keyword3':{'value':a.yhdd}, - 'remark':{'value':'整改期限为'+yhdata['zgqx']+',请您及时完成整改。'} - } + postdict = { + 'touser': 'oPGqkweX75QtLmgehUN-ipR4hcyc', + 'template_id': 'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', + "miniprogram": {"appid": "wx5c39b569f01c27db", "path": "pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, + 'data': { + 'first': {'value': a.yhdj.dickeyname + '待整改:'}, + 'keyword1': {'value': a.yhms}, + 'keyword2': {'value': a.fxsj}, + 'keyword3': {'value': a.yhdd}, + 'remark': {'value': '整改期限为'+yhdata['zgqx']+',请您及时完成整改。'} } - postdict['touser']=a.todouser.openid + } + postdict['touser'] = a.todouser.openid send_wechatmsg.delay(postdict) - return JsonResponse({"code":1}) - elif a.yhzt==7: - a.yhzt=2 - a.sybzt=7 - a.yyfx=yhdata['yyfx'] - a.zgcs=yhdata['zgcs'] + return JsonResponse({"code": 1}) + elif a.yhzt == 7: + a.yhzt = 2 + a.sybzt = 7 + a.yyfx = yhdata['yyfx'] + a.zgcs = yhdata['zgcs'] a.todouser = a.zpr a.save() - m=TroubleAccess(troubleid=a,clr=b,yhzt=7,action='制定整改措施/方案',result=1) + m = TroubleAccess(troubleid=a, clr=b, yhzt=7, + action='制定整改措施/方案', result=1) m.save() - postdict={ - 'touser':'oPGqkweX75QtLmgehUN-ipR4hcyc', - 'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', - "miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, - 'data':{ - 'first':{'value':a.yhdj.dickeyname + '待整改:'}, - 'keyword1':{'value':a.yhms}, - 'keyword2':{'value':a.fxsj}, - 'keyword3':{'value':a.yhdd}, - 'remark':{'value':'整改期限为'+a.zgqx.strftime("%Y-%m-%d %H:%M")+',请您先先制定整改措施/方案。'} - } - } - postdict['touser']=a.todouser.openid + postdict = { + 'touser': 'oPGqkweX75QtLmgehUN-ipR4hcyc', + 'template_id': 'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', + "miniprogram": {"appid": "wx5c39b569f01c27db", "path": "pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, + 'data': { + 'first': {'value': a.yhdj.dickeyname + '待整改:'}, + 'keyword1': {'value': a.yhms}, + 'keyword2': {'value': a.fxsj}, + 'keyword3': {'value': a.yhdd}, + 'remark': {'value': '整改期限为'+a.zgqx.strftime("%Y-%m-%d %H:%M")+',请您先先制定整改措施/方案。'} + } + } + postdict['touser'] = a.todouser.openid send_wechatmsg.delay(postdict) - return JsonResponse({"code":1}) - elif a.yhzt==0: + return JsonResponse({"code": 1}) + elif a.yhzt == 0: a.yhzt = 1 a.todouser = a.pgr - a.sybzt=0 + a.sybzt = 0 a.save() - m=TroubleAccess(troubleid=a,clr=a.fxr,yhzt=0,action='重新修改隐患',result=1) + m = TroubleAccess(troubleid=a, clr=a.fxr, yhzt=0, + action='重新修改隐患', result=1) m.save() - postdict={ - 'touser':'oPGqkweX75QtLmgehUN-ipR4hcyc', - 'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', - "miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, - 'data':{ + postdict = { + 'touser': 'oPGqkweX75QtLmgehUN-ipR4hcyc', + 'template_id': 'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', + "miniprogram": {"appid": "wx5c39b569f01c27db", "path": "pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, + 'data': { - 'first':{ - 'value':a.yhdj.dickeyname + '待评估:' + 'first': { + 'value': a.yhdj.dickeyname + '待评估:' }, - 'keyword1':{ - 'value':a.yhms + 'keyword1': { + 'value': a.yhms }, - 'keyword2':{ - 'value':a.fxsj + 'keyword2': { + 'value': a.fxsj }, - 'keyword3':{ - 'value':a.yhdd + 'keyword3': { + 'value': a.yhdd }, - 'remark':{ - 'value':'发现人重新提交隐患,请您及时评估并制定整改通知单。' + 'remark': { + 'value': '发现人重新提交隐患,请您及时评估并制定整改通知单。' } } } - postdict['touser']=a.todouser.openid + postdict['touser'] = a.todouser.openid send_wechatmsg.delay(postdict) - return JsonResponse({"code":1}) - elif a.yhzt==2: - a.yhzt=3 - a.sybzt=2 - a.yyfx=yhdata['yyfx'] - a.zgcs=yhdata['zgcs'] + return JsonResponse({"code": 1}) + elif a.yhzt == 2: + a.yhzt = 3 + a.sybzt = 2 + a.yyfx = yhdata['yyfx'] + a.zgcs = yhdata['zgcs'] a.todouser = a.zgr a.save() - m=TroubleAccess(troubleid=a,clr=a.csqrr,yhzt=2,action='确认整改措施',result=1) + m = TroubleAccess(troubleid=a, clr=a.csqrr, yhzt=2, + action='确认整改措施', result=1) m.save() - postdict={ - 'touser':'oPGqkweX75QtLmgehUN-ipR4hcyc', - 'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', - "miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, - 'data':{ - 'first':{'value':a.yhdj.dickeyname + '待整改:'}, - 'keyword1':{'value':a.yhms}, - 'keyword2':{'value':a.fxsj}, - 'keyword3':{'value':a.yhdd}, - 'remark':{'value':'整改措施已确认,请您及时完成整改。'} - } + postdict = { + 'touser': 'oPGqkweX75QtLmgehUN-ipR4hcyc', + 'template_id': 'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', + "miniprogram": {"appid": "wx5c39b569f01c27db", "path": "pages/trouble/accesstrouble?troubleid="+str(a.troubleid)}, + 'data': { + 'first': {'value': a.yhdj.dickeyname + '待整改:'}, + 'keyword1': {'value': a.yhms}, + 'keyword2': {'value': a.fxsj}, + 'keyword3': {'value': a.yhdd}, + 'remark': {'value': '整改措施已确认,请您及时完成整改。'} } - postdict['touser']=a.todouser.openid + } + postdict['touser'] = a.todouser.openid send_wechatmsg.delay(postdict) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) def parttree2(req): userid = req.session['userid'] companyid = getcompany(userid) - list_items = (Partment.objects.filter(partlink__contains=','+companyid+',')).annotate(id=F('partid'),parentId=F('parentid'),name=F('partname')).values('id','parentId','name') - return HttpResponse(json.dumps(list(list_items)),content_type="application/json") + list_items = (Partment.objects.filter(partlink__contains=','+companyid+',')).annotate( + id=F('partid'), parentId=F('parentid'), name=F('partname')).values('id', 'parentId', 'name') + return HttpResponse(json.dumps(list(list_items)), content_type="application/json") + def getdicclass(req): - dicid=req.GET.get('dicid') - a=Dicclass.objects.filter(parentid=dicid).values('dicid','dicname') - str = transstr(a,'dicid','dicname') - return HttpResponse(str,content_type="application/json") + dicid = req.GET.get('dicid') + a = Dicclass.objects.filter(parentid=dicid).values('dicid', 'dicname') + str = transstr(a, 'dicid', 'dicname') + return HttpResponse(str, content_type="application/json") + def getdickey(req): userid = req.session['userid'] companyid = getcompany(userid) - a = Dickey.objects.filter(dicparent=req.GET.get('dicclass'),deletemark=1) - a = (a.filter(usecomps__contains=',1,')|a.filter(usecomps__contains=','+companyid+',')).exclude(nousecomps__contains=','+companyid+',') - a = a.values('dickeyid','dicparent__dicname','dickeyname','dicparent__dicid','detail').order_by('dickeyid') - total=a.count() - if req.GET.get('a')=='combobox': - return HttpResponse(transstr(a,'dickeyid','dickeyname'),content_type="application/json") + a = Dickey.objects.filter(dicparent=req.GET.get('dicclass'), deletemark=1) + a = (a.filter(usecomps__contains=',1,') | a.filter(usecomps__contains=',' + + companyid+',')).exclude(nousecomps__contains=','+companyid+',') + a = a.values('dickeyid', 'dicparent__dicname', 'dickeyname', + 'dicparent__dicid', 'detail').order_by('dickeyid') + total = a.count() + if req.GET.get('a') == 'combobox': + return HttpResponse(transstr(a, 'dickeyid', 'dickeyname'), content_type="application/json") else: - if req.GET.get('dicclass')=='33': + if req.GET.get('dicclass') == '33': for i in a: - objs = Operationspjd.objects.filter(zylx=Dickey.objects.get(dickeyid=i['dickeyid']),usecomp=Partment.objects.get(partid=companyid)) - str='作业负责人-作业部门-属地部门' + objs = Operationspjd.objects.filter(zylx=Dickey.objects.get( + dickeyid=i['dickeyid']), usecomp=Partment.objects.get(partid=companyid)) + str = '作业负责人-作业部门-属地部门' for x in objs: str = str + '-' + x.jdmc i['splcdetail'] = str a = a - return HttpResponse(transjson(total,a),content_type="application/json") + return HttpResponse(transjson(total, a), content_type="application/json") def addtrain(req): userid = req.session['userid'] companyid = getcompany(userid) - a=Train() - a.trainname=req.POST.get('trainname') - a.trainplace=req.POST.get('trainplace') - a.starttime=req.POST.get('starttime') - a.usecomp=Partment.objects.get(partid=companyid) - a.trainlevel=Dicclass.objects.get(dicid=req.POST.get('trainlevel')) - a.traincontent=Dickey.objects.get(dickeyid=req.POST.get('traincontent')) - a.manlevel=Dickey.objects.get(dickeyid=req.POST.get('manlevel')) - a.traintype=Dickey.objects.get(dickeyid=req.POST.get('traintype')) - a.detailcontent=req.POST.get('detailcontent') - a.teacher = req.POST.get('teacher',None) - if req.POST.get('lecturer',None): + a = Train() + a.trainname = req.POST.get('trainname') + a.trainplace = req.POST.get('trainplace') + a.starttime = req.POST.get('starttime') + a.usecomp = Partment.objects.get(partid=companyid) + a.trainlevel = Dicclass.objects.get(dicid=req.POST.get('trainlevel')) + a.traincontent = Dickey.objects.get(dickeyid=req.POST.get('traincontent')) + a.manlevel = Dickey.objects.get(dickeyid=req.POST.get('manlevel')) + a.traintype = Dickey.objects.get(dickeyid=req.POST.get('traintype')) + a.detailcontent = req.POST.get('detailcontent') + a.teacher = req.POST.get('teacher', None) + if req.POST.get('lecturer', None): x = User.objects.get(userid=req.POST.get('lecturer')) a.lecturer = x a.teacher = x.name - a.state=0 - a.participantnum=req.POST.get('participantnum') - a.submituser=User.objects.get(userid=userid) - a.duration=req.POST.get('duration') - a.trainnum='PX'+time.strftime('%Y%m%d%H%M%S') - a.material= req.POST.get('upfile') + a.state = 0 + a.participantnum = req.POST.get('participantnum') + a.submituser = User.objects.get(userid=userid) + a.duration = req.POST.get('duration') + a.trainnum = 'PX'+time.strftime('%Y%m%d%H%M%S') + a.material = req.POST.get('upfile') a.save() - a.checkqr = makeqr_train('https://safeyun.ctcshe.com/miniprogram/checktrain?trainid='+str(a.trainid)) + a.checkqr = makeqr_train( + 'https://safeyun.ctcshe.com/miniprogram/checktrain?trainid='+str(a.trainid)) a.save() - plist=req.POST.getlist('trainpart') + plist = req.POST.getlist('trainpart') ustr = req.POST.get('participant') - ulist=ustr.split(',') - b=[] + ulist = ustr.split(',') + b = [] for i in ulist: - x=User.objects.get(userid=i) - m = Trainuser(train=a,participant=x) + x = User.objects.get(userid=i) + m = Trainuser(train=a, participant=x) m.save() b.append(x.openid) for i in plist: a.trainpart.add(Partment.objects.get(partid=i)) - postdict={ - 'touser':'', - 'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', - 'data':{ - 'first':{ - 'value':a.trainlevel.dicname + '培训通知:' + postdict = { + 'touser': '', + 'template_id': 'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', + 'data': { + 'first': { + 'value': a.trainlevel.dicname + '培训通知:' }, - 'keyword1':{ - 'value':a.trainname + 'keyword1': { + 'value': a.trainname }, - 'keyword2':{ - 'value':a.starttime + 'keyword2': { + 'value': a.starttime }, - 'keyword3':{ - 'value':a.trainplace + 'keyword3': { + 'value': a.trainplace }, - 'remark':{ - 'value':a.teacher+'授课,时长为'+a.duration+'小时,请您务必参加' + 'remark': { + 'value': a.teacher+'授课,时长为'+a.duration+'小时,请您务必参加' } } } - send_wechatmsgs.delay(postdict,b) - return JsonResponse({"code":1}) + send_wechatmsgs.delay(postdict, b) + return JsonResponse({"code": 1}) def adddrill(req): userid = req.session['userid'] companyid = getcompany(userid) - a=Drill() - a.drillname=req.POST.get('drillname') - a.drillplace=req.POST.get('drillplace') - a.starttime=req.POST.get('starttime') - a.usecomp=Partment.objects.get(partid=companyid) - a.drilllevel=Dicclass.objects.get(dicid=req.POST.get('drilllevel')) - a.drillcontent=Dickey.objects.get(dickeyid=req.POST.get('drillcontent')) - a.drilltype=Dickey.objects.get(dickeyid=req.POST.get('drilltype')) - a.detailcontent=req.POST.get('detailcontent') + a = Drill() + a.drillname = req.POST.get('drillname') + a.drillplace = req.POST.get('drillplace') + a.starttime = req.POST.get('starttime') + a.usecomp = Partment.objects.get(partid=companyid) + a.drilllevel = Dicclass.objects.get(dicid=req.POST.get('drilllevel')) + a.drillcontent = Dickey.objects.get(dickeyid=req.POST.get('drillcontent')) + a.drilltype = Dickey.objects.get(dickeyid=req.POST.get('drilltype')) + a.detailcontent = req.POST.get('detailcontent') if req.POST.get('chief'): - a.chief=User.objects.get(userid=req.POST.get('chief')) - a.state=0 - a.participantnum=req.POST.get('participantnum') - a.submituser=User.objects.get(userid=userid) - a.drillnum='YL'+time.strftime('%Y%m%d%H%M%S') + a.chief = User.objects.get(userid=req.POST.get('chief')) + a.state = 0 + a.participantnum = req.POST.get('participantnum') + a.submituser = User.objects.get(userid=userid) + a.drillnum = 'YL'+time.strftime('%Y%m%d%H%M%S') a.save() - plist=req.POST.getlist('drillpart') + plist = req.POST.getlist('drillpart') ustr = req.POST.get('participant') - ulist=ustr.split(',') - b=[] + ulist = ustr.split(',') + b = [] for i in ulist: - x=User.objects.get(userid=i) - m = Drilluser(drillid=a,participant=x) + x = User.objects.get(userid=i) + m = Drilluser(drillid=a, participant=x) m.save() b.append(x.openid) for i in plist: a.drillpart.add(Partment.objects.get(partid=i)) - postdict={ - 'touser':'oPGqkweX75QtLmgehUN-ipR4hcyc', - 'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', - 'data':{ - 'first':{ - 'value':a.drilllevel.dicname + '演练通知:' + postdict = { + 'touser': 'oPGqkweX75QtLmgehUN-ipR4hcyc', + 'template_id': 'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', + 'data': { + 'first': { + 'value': a.drilllevel.dicname + '演练通知:' }, - 'keyword1':{ - 'value':a.drillname + 'keyword1': { + 'value': a.drillname }, - 'keyword2':{ - 'value':a.starttime + 'keyword2': { + 'value': a.starttime }, - 'keyword3':{ - 'value':a.drillplace + 'keyword3': { + 'value': a.drillplace }, - 'remark':{ - 'value':a.chief.name+'为总指挥,请务必参加!' + 'remark': { + 'value': a.chief.name+'为总指挥,请务必参加!' } } } - send_wechatmsgs.delay(postdict,b) - return JsonResponse({"code":1}) + send_wechatmsgs.delay(postdict, b) + return JsonResponse({"code": 1}) + def accesstrain(req): - userid=req.session.get('userid') + userid = req.session.get('userid') trainid = req.GET.get('trainid') detailcontent = req.POST.get('detailcontent') pxxg = req.POST.get('pxxg') knownum = req.POST.get('knownum') - duration=req.POST.get('duration') + duration = req.POST.get('duration') upfile = req.POST.get('upfile') - a=Train.objects.filter(trainid=trainid) - a.update(detailcontent=detailcontent,knownum=knownum,material=upfile,state=1,duration=duration,pxxg=pxxg) + a = Train.objects.filter(trainid=trainid) + a.update(detailcontent=detailcontent, knownum=knownum, + material=upfile, state=1, duration=duration, pxxg=pxxg) companyid = getcompany(userid) - #绑定考试 + # 绑定考试 if req.POST.get('examtest'): a.update(examtest=ExamTest.objects.get(id=req.POST.get('examtest'))) for i in Trainuser.objects.filter(train__trainid=trainid): - objs = ExamTestDetail.objects.filter(examtest__id=req.POST.get('examtest'),user=i.participant) + objs = ExamTestDetail.objects.filter( + examtest__id=req.POST.get('examtest'), user=i.participant) if objs.exists(): i.examtestdetail = objs[0] i.save() yjjs_px.delay(companyid) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) + def accessdrill(req): drillid = req.GET.get('drillid') @@ -1520,117 +1684,126 @@ def accessdrill(req): participantnum = req.POST.get('participantnum') knownum = req.POST.get('knownum') upfile = req.POST.get('upfile') - a=Drill.objects.filter(drillid=drillid) - a.update(detailcontent=detailcontent,participantnum=participantnum,knownum=knownum,material=upfile,state=1) + a = Drill.objects.filter(drillid=drillid) + a.update(detailcontent=detailcontent, participantnum=participantnum, + knownum=knownum, material=upfile, state=1) if req.POST.get('participant'): a[0].participant.clear() ustr = req.POST.get('participant') - ulist=ustr.split(',') + ulist = ustr.split(',') for i in ulist: - x=User.objects.get(userid=i) - m = Drilluser(drillid=a[0],participant=x) + x = User.objects.get(userid=i) + m = Drilluser(drillid=a[0], participant=x) m.save() - userid=req.session.get('userid') + userid = req.session.get('userid') companyid = getcompany(userid) yjjs_yl.delay(companyid) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) + def grouphandle(req): - if req.GET.get('a')=='addgrouph': - return render(req,'abgroup.html') - elif req.GET.get('a')=='delgroup': + if req.GET.get('a') == 'addgrouph': + return render(req, 'abgroup.html') + elif req.GET.get('a') == 'delgroup': userid = req.session['userid'] a = Group.objects.get(groupid=req.GET.get('groupid')) - if User.objects.get(userid = userid).issuper == 1 and a.grouptype not in [1,2,3]: - groupid=req.GET.get('groupid') + if User.objects.get(userid=userid).issuper == 1 and a.grouptype not in [1, 2, 3]: + groupid = req.GET.get('groupid') Group.objects.filter(groupid=groupid).delete() - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) - elif req.GET.get('a')=='removeuser': - groupid=req.GET.get('groupid') - userid=req.GET.get('userid') + return JsonResponse({"code": 0}) + elif req.GET.get('a') == 'removeuser': + groupid = req.GET.get('groupid') + userid = req.GET.get('userid') useridx = req.session['userid'] if User.objects.get(userid=useridx).issuper == 1: a = Group.objects.get(groupid=groupid) a.users.remove(User.objects.get(userid=userid)) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) - elif req.GET.get('a') =='addguser': - groupid=req.GET.get('groupid') + return JsonResponse({"code": 0}) + elif req.GET.get('a') == 'addguser': + groupid = req.GET.get('groupid') users = req.POST.get('users').split(',') a = Group.objects.get(groupid=groupid) for i in users: if User.objects.get(userid=int(i)) not in a.users.all(): a.users.add(User.objects.get(userid=int(i))) - return JsonResponse({"code":1}) - elif req.GET.get('a') =='list': + return JsonResponse({"code": 1}) + elif req.GET.get('a') == 'list': userid = req.session['userid'] companyid = getcompany(userid) - a=Group.objects.filter(usecomp__partid = companyid).exclude(grouptype=0).values('groupid','groupname','grouptype') - total=a.count() - return HttpResponse(transjson(total,a),content_type="application/json") - elif req.GET.get('a') =='list2':#排除全体用户组 + a = Group.objects.filter(usecomp__partid=companyid).exclude( + grouptype=0).values('groupid', 'groupname', 'grouptype') + total = a.count() + return HttpResponse(transjson(total, a), content_type="application/json") + elif req.GET.get('a') == 'list2': # 排除全体用户组 userid = req.session['userid'] companyid = getcompany(userid) - a=Group.objects.filter(usecomp__partid = companyid).exclude(grouptype=0).exclude(grouptype=3).values('groupid','groupname','grouptype') - total=a.count() - return HttpResponse(transjson(total,a),content_type="application/json") - elif req.GET.get('a') =='combobox': + a = Group.objects.filter(usecomp__partid=companyid).exclude( + grouptype=0).exclude(grouptype=3).values('groupid', 'groupname', 'grouptype') + total = a.count() + return HttpResponse(transjson(total, a), content_type="application/json") + elif req.GET.get('a') == 'combobox': userid = req.session['userid'] companyid = getcompany(userid) - a = Group.objects.filter(usecomp__partid = companyid).exclude(grouptype=0).values('groupid','groupname') - keystr=transstr(a,'groupid','groupname') - return HttpResponse(keystr,content_type="application/json") + a = Group.objects.filter(usecomp__partid=companyid).exclude( + grouptype=0).values('groupid', 'groupname') + keystr = transstr(a, 'groupid', 'groupname') + return HttpResponse(keystr, content_type="application/json") elif req.method == 'POST': data = json.loads(req.body.decode('utf-8')) userid = req.session['userid'] companyid = getcompany(userid) - if data['groupid'] =='': + if data['groupid'] == '': a = Group() a.groupname = data['groupname'] a.usecomp = Partment.objects.get(partid=companyid) a.save() - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) + return JsonResponse({"code": 0}) + def troublehandle(req): a = req.GET.get('a') if a == 'detail': troubleid = req.GET.get('troubleid') a = Trouble.objects.filter(troubleid=troubleid) - x = a.values('yhnum','fxr__name','yhms','yhzt','fxsj','tbsj','yhlb__dickeyname','yhpg__dickeyname','yhdd','fxbm__partname','yhdj__dickeyname','yhpg__dickeyname', - 'jclx__dickeyname','yhlx__dicname','yyfx','zgcs','yhtp','zghtp','zgms','zgbm__partname','zgr__name','zgqx','yhqy__name')[0] - b = TroubleAccess.objects.filter(troubleid=a[0]).order_by('accesssj').values('clr__name','opinion','action','accesssj') + x = a.values('yhnum', 'fxr__name', 'yhms', 'yhzt', 'fxsj', 'tbsj', 'yhlb__dickeyname', 'yhpg__dickeyname', 'yhdd', 'fxbm__partname', 'yhdj__dickeyname', 'yhpg__dickeyname', + 'jclx__dickeyname', 'yhlx__dicname', 'yyfx', 'zgcs', 'yhtp', 'zghtp', 'zgms', 'zgbm__partname', 'zgr__name', 'zgqx', 'yhqy__name')[0] + b = TroubleAccess.objects.filter(troubleid=a[0]).order_by( + 'accesssj').values('clr__name', 'opinion', 'action', 'accesssj') x['lcxq'] = list(b) - if x['yhtp']!='': + if x['yhtp'] != '': x['yhtp'] = x['yhtp'].split('?') else: - x['yhtp']==[] - if x['zghtp']!='': - x['zghtp']= x['zghtp'].split('?') + x['yhtp'] == [] + if x['zghtp'] != '': + x['zghtp'] = x['zghtp'].split('?') else: - x['zghtp']==[] + x['zghtp'] == [] for key in x: if x[key] == None: x[key] = '' - return HttpResponse(json.dumps(x,cls=MyEncoder),content_type="application/json") + return HttpResponse(json.dumps(x, cls=MyEncoder), content_type="application/json") elif a == 'detailhtml': troubleid = req.GET.get('troubleid') - return render(req,'troubledetail.html',{'troubleid':troubleid}) + return render(req, 'troubledetail.html', {'troubleid': troubleid}) elif a == 'todonum': - todonum = Trouble.objects.filter(todouser=User.objects.get(userid=req.session['userid'])).exclude(deletemark=0).count() - return JsonResponse({'code':1,'todonum':todonum}) + todonum = Trouble.objects.filter(todouser=User.objects.get( + userid=req.session['userid'])).exclude(deletemark=0).count() + return JsonResponse({'code': 1, 'todonum': todonum}) elif a == 'exportword': troubleid = req.GET.get('troubleid') - v = exportdoc('yh',troubleid) - return JsonResponse({"code":1,'downloadurl':v}) - elif a=='exportexcel': + v = exportdoc('yh', troubleid) + return JsonResponse({"code": 1, 'downloadurl': v}) + elif a == 'exportexcel': userid = req.session['userid'] companyid = getcompany(userid) - a = Trouble.objects.filter(usecomp=Partment.objects.get(partid=companyid),deletemark=1) + a = Trouble.objects.filter( + usecomp=Partment.objects.get(partid=companyid), deletemark=1) yhzt = req.GET.get('yhzt') yhlx = req.GET.get('yhlx') yhlb = req.GET.get('yhlb') @@ -1640,7 +1813,7 @@ def troublehandle(req): fxr = req.GET.get('fxr') qssj = req.GET.get('qssj') jssj = req.GET.get('jssj') - if yhzt !='' and yhzt != None: + if yhzt != '' and yhzt != None: a = a.filter(yhzt=yhzt) if yhlx: a = a.filter(yhlx__dicid=yhlx) @@ -1654,56 +1827,64 @@ def troublehandle(req): if fxr: a = a.filter(fxr__userid=fxr) elif fxbm: - parts = Partment.objects.filter(partlink__contains=','+str(fxbm)+',')|Partment.objects.filter(partid=fxbm) + parts = Partment.objects.filter( + partlink__contains=','+str(fxbm)+',') | Partment.objects.filter(partid=fxbm) a = a.filter(fxbm__in=parts) if qssj: a = a.filter(fxsj__gte=qssj) if jssj: a = a.filter(fxsj__lte=jssj) - res = exportxlsx('yh',a) + res = exportxlsx('yh', a) return res - elif a=='del': + elif a == 'del': userid = req.session['userid'] - if User.objects.get(userid = userid).issuper == 1: - a = Trouble.objects.get(troubleid = req.POST.get('troubleid')) - a.deletemark=0 + if User.objects.get(userid=userid).issuper == 1: + a = Trouble.objects.get(troubleid=req.POST.get('troubleid')) + a.deletemark = 0 a.save() - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - a = Trouble.objects.get(troubleid = req.POST.get('troubleid')) - b = TroubleAccess.objects.filter(troubleid__troubleid=req.POST.get('troubleid')).count() - if b == 1 and a.fxr.userid==userid: - a.deletemark=0 + a = Trouble.objects.get(troubleid=req.POST.get('troubleid')) + b = TroubleAccess.objects.filter( + troubleid__troubleid=req.POST.get('troubleid')).count() + if b == 1 and a.fxr.userid == userid: + a.deletemark = 0 a.save() - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) - elif a=='listtodo': + return JsonResponse({"code": 0}) + elif a == 'listtodo': userid = req.session['userid'] - a = Trouble.objects.filter(todouser=User.objects.get(userid=userid)).exclude(deletemark=0) + a = Trouble.objects.filter(todouser=User.objects.get( + userid=userid)).exclude(deletemark=0) total = a.count() - startnum,endnum=fenye(req) - obj = a.order_by('-xgsj')[startnum:endnum].values('troubleid','fxr__userid','fxr__name','yhms','yhzt','fxsj','tbsj','yhlb__dickeyname','todouser__name','todouser__userid','yhpg__dickeyname','yhnum','yhdj__dickeyname','shresult','zgqx') - return HttpResponse(transjson(total,obj),content_type="application/json") - elif a=='listself': + startnum, endnum = fenye(req) + obj = a.order_by('-xgsj')[startnum:endnum].values('troubleid', 'fxr__userid', 'fxr__name', 'yhms', 'yhzt', 'fxsj', 'tbsj', + 'yhlb__dickeyname', 'todouser__name', 'todouser__userid', 'yhpg__dickeyname', 'yhnum', 'yhdj__dickeyname', 'shresult', 'zgqx') + return HttpResponse(transjson(total, obj), content_type="application/json") + elif a == 'listself': userid = req.session['userid'] - a=Trouble.objects.filter(fxr__userid=userid).exclude(deletemark=0) + a = Trouble.objects.filter(fxr__userid=userid).exclude(deletemark=0) total = a.count() - startnum,endnum=fenye(req) - obj = a.order_by('-xgsj')[startnum:endnum].values('troubleid','fxr__userid','fxr__name','yhms','yhzt','fxsj','tbsj','yhlb__dickeyname','todouser__name','todouser__userid','yhpg__dickeyname','yhnum','yhdj__dickeyname','shresult','zgqx') - return HttpResponse(transjson(total,obj),content_type="application/json") - elif a=='listall': + startnum, endnum = fenye(req) + obj = a.order_by('-xgsj')[startnum:endnum].values('troubleid', 'fxr__userid', 'fxr__name', 'yhms', 'yhzt', 'fxsj', 'tbsj', + 'yhlb__dickeyname', 'todouser__name', 'todouser__userid', 'yhpg__dickeyname', 'yhnum', 'yhdj__dickeyname', 'shresult', 'zgqx') + return HttpResponse(transjson(total, obj), content_type="application/json") + elif a == 'listall': userid = req.session['userid'] companyid = getcompany(userid) - a=Trouble.objects.filter(usecomp=Partment.objects.get(partid=companyid)).exclude(deletemark=0) + a = Trouble.objects.filter(usecomp=Partment.objects.get( + partid=companyid)).exclude(deletemark=0) total = a.count() - startnum,endnum=fenye(req) - obj = a.order_by('-xgsj')[startnum:endnum].values('troubleid','fxr__userid','fxr__name','yhms','yhzt','fxsj','tbsj','yhlb__dickeyname','todouser__name','todouser__userid','yhpg__dickeyname','yhnum','yhdj__dickeyname','shresult','zgqx') - return HttpResponse(transjson(total,obj),content_type="application/json") + startnum, endnum = fenye(req) + obj = a.order_by('-xgsj')[startnum:endnum].values('troubleid', 'fxr__userid', 'fxr__name', 'yhms', 'yhzt', 'fxsj', 'tbsj', + 'yhlb__dickeyname', 'todouser__name', 'todouser__userid', 'yhpg__dickeyname', 'yhnum', 'yhdj__dickeyname', 'shresult', 'zgqx') + return HttpResponse(transjson(total, obj), content_type="application/json") elif a == 'listsearch': userid = req.session['userid'] companyid = getcompany(userid) - a = Trouble.objects.filter(usecomp=Partment.objects.get(partid=companyid)).exclude(deletemark=0) + a = Trouble.objects.filter(usecomp=Partment.objects.get( + partid=companyid)).exclude(deletemark=0) yhzt = req.GET.get('yhzt') yhlx = req.GET.get('yhlx') yhlb = req.GET.get('yhlb') @@ -1715,7 +1896,7 @@ def troublehandle(req): jssj = req.GET.get('jssj') yhqy = req.GET.get('yhqy') zgbm = req.GET.get('zgbm') - if yhzt !='' and yhzt != None: + if yhzt != '' and yhzt != None: a = a.filter(yhzt=yhzt) if yhlx: a = a.filter(yhlx__dicid=yhlx) @@ -1729,60 +1910,69 @@ def troublehandle(req): if fxr: a = a.filter(fxr__userid=fxr) elif fxbm: - parts = Partment.objects.filter(partlink__contains=','+str(fxbm)+',')|Partment.objects.filter(partid=fxbm) + parts = Partment.objects.filter( + partlink__contains=','+str(fxbm)+',') | Partment.objects.filter(partid=fxbm) a = a.filter(fxbm__in=parts) if qssj: a = a.filter(fxsj__gte=qssj) if jssj: a = a.filter(fxsj__lte=jssj) if yhqy: - a = a.filter(yhqy__id = yhqy) + a = a.filter(yhqy__id=yhqy) if zgbm: - parts = Partment.objects.filter(partlink__contains=','+str(zgbm)+',')|Partment.objects.filter(partid=zgbm) - a = a.filter(Q(zgbm__in=parts) | Q(fxbm__in=parts,zgbm=None)) + parts = Partment.objects.filter( + partlink__contains=','+str(zgbm)+',') | Partment.objects.filter(partid=zgbm) + a = a.filter(Q(zgbm__in=parts) | Q(fxbm__in=parts, zgbm=None)) total = a.count() - startnum,endnum=fenye(req) - obj = a.order_by('-fxsj')[startnum:endnum].values('troubleid','fxr__userid','fxr__name','yhms','yhzt','fxsj','tbsj','yhlb__dickeyname','todouser__name','yhpg__dickeyname','yhnum','yhdj__dickeyname','shresult','zgqx','yhtp','zghtp','todouser__userid') - return HttpResponse(transjson(total,obj),content_type="application/json") + startnum, endnum = fenye(req) + obj = a.order_by('-fxsj')[startnum:endnum].values('troubleid', 'fxr__userid', 'fxr__name', 'yhms', 'yhzt', 'fxsj', 'tbsj', 'yhlb__dickeyname', + 'todouser__name', 'yhpg__dickeyname', 'yhnum', 'yhdj__dickeyname', 'shresult', 'zgqx', 'yhtp', 'zghtp', 'todouser__userid') + return HttpResponse(transjson(total, obj), content_type="application/json") elif a == 'listarea': userid = req.session['userid'] companyid = getcompany(userid) - a = Trouble.objects.filter(usecomp__partid=companyid,deletemark=1).exclude(yhzt=6) + a = Trouble.objects.filter( + usecomp__partid=companyid, deletemark=1).exclude(yhzt=6) yhqy = req.GET.get('yhqy') if yhqy: - a = a.filter(yhqy__id = yhqy) + a = a.filter(yhqy__id=yhqy) total = a.count() - startnum,endnum=fenye(req) - obj = a.order_by('-xgsj')[startnum:endnum].values('troubleid','fxr__userid','fxr__name','yhms','yhzt','fxsj','tbsj','yhlb__dickeyname','todouser__name','yhpg__dickeyname','yhnum','yhdj__dickeyname','shresult','zgqx','yhtp','zghtp') - return HttpResponse(transjson(total,obj),content_type="application/json") + startnum, endnum = fenye(req) + obj = a.order_by('-xgsj')[startnum:endnum].values('troubleid', 'fxr__userid', 'fxr__name', 'yhms', 'yhzt', 'fxsj', 'tbsj', + 'yhlb__dickeyname', 'todouser__name', 'yhpg__dickeyname', 'yhnum', 'yhdj__dickeyname', 'shresult', 'zgqx', 'yhtp', 'zghtp') + return HttpResponse(transjson(total, obj), content_type="application/json") + +# 图表查询 -#图表查询 def charthandle(req): userid = req.session['userid'] companyid = getcompany(userid) - if req.GET.get('a')=='yjycqst': - yjyc_vl = Yjyc.objects.filter(usecomp__partid=companyid).order_by('-buildtime')[:12].values('year','month','yjz','ycz') - return HttpResponse(transjson(yjyc_vl.count(),yjyc_vl),content_type="application/json") - elif req.GET.get('a')=='yjycz': + if req.GET.get('a') == 'yjycqst': + yjyc_vl = Yjyc.objects.filter(usecomp__partid=companyid).order_by( + '-buildtime')[:12].values('year', 'month', 'yjz', 'ycz') + return HttpResponse(transjson(yjyc_vl.count(), yjyc_vl), content_type="application/json") + elif req.GET.get('a') == 'yjycz': year = int(req.GET.get('year')) month = int(req.GET.get('month')) - objs = Yjyc.objects.filter(usecomp__partid=companyid,year=year,month=month) + objs = Yjyc.objects.filter( + usecomp__partid=companyid, year=year, month=month) if objs.exists(): nowyjz = objs[0].yjz nowycz = objs[0].ycz - return JsonResponse({'code':1,'yjz':nowyjz,'ycz':nowycz}) + return JsonResponse({'code': 1, 'yjz': nowyjz, 'ycz': nowycz}) else: - return JsonResponse({'code':0}) - elif req.GET.get('a')=='yjycznow': - first_day,first_day_of_next_month=gettime() + return JsonResponse({'code': 0}) + elif req.GET.get('a') == 'yjycznow': + first_day, first_day_of_next_month = gettime() year = first_day.year month = first_day.month - a = Yjyc.objects.get_or_create(usecomp__partid=companyid,year=year,month=month,defaults={'usecomp':Partment.objects.get(partid=companyid) ,'year':year,'month':month})[0] + a = Yjyc.objects.get_or_create(usecomp__partid=companyid, year=year, month=month, defaults={ + 'usecomp': Partment.objects.get(partid=companyid), 'year': year, 'month': month})[0] nowyjz = a.yjz nowycz = a.ycz - return JsonResponse({'code':1,'yjz':nowyjz,'ycz':nowycz}) - elif req.GET.get('a')=='yhlbt':#隐患类别图 + return JsonResponse({'code': 1, 'yjz': nowyjz, 'ycz': nowycz}) + elif req.GET.get('a') == 'yhlbt': # 隐患类别图 if req.GET.get('year'): year = int(req.GET.get('year')) month = int(req.GET.get('month')) @@ -1790,38 +1980,45 @@ def charthandle(req): partid = req.GET.get('part') else: partid = companyid - first_day,first_day_of_next_month = gettime(datetime(year,month,1)) + first_day, first_day_of_next_month = gettime( + datetime(year, month, 1)) children = [] - a = Trouble.objects.filter(deletemark=1).filter(Q(fxbm=partid) | Q(fxbm__partlink__contains=',' + str(partid) + ',')) + a = Trouble.objects.filter(deletemark=1).filter( + Q(fxbm=partid) | Q(fxbm__partlink__contains=',' + str(partid) + ',')) for i in Dickey.objects.filter(dicparent__dicid=16): - y = a.filter(yhlb=i,fxsj__range=(first_day, first_day_of_next_month)).count() - children.append({'name':i.dickeyname,'value':y}) - children2= [] + y = a.filter(yhlb=i, fxsj__range=( + first_day, first_day_of_next_month)).count() + children.append({'name': i.dickeyname, 'value': y}) + children2 = [] for i in Dickey.objects.filter(dicparent__dicid=17): - y = a.filter(yhlb=i,fxsj__range=(first_day, first_day_of_next_month)).count() - children2.append({'name':i.dickeyname,'value':y}) - value=[{'name':'现场管理','children':children},{'name':'基础管理','children':children2}] - return JsonResponse({'code':1,'value':value}) + y = a.filter(yhlb=i, fxsj__range=( + first_day, first_day_of_next_month)).count() + children2.append({'name': i.dickeyname, 'value': y}) + value = [{'name': '现场管理', 'children': children}, + {'name': '基础管理', 'children': children2}] + return JsonResponse({'code': 1, 'value': value}) else: children = [] - a = Trouble.objects.filter(usecomp__partid=companyid,deletemark=1) + a = Trouble.objects.filter(usecomp__partid=companyid, deletemark=1) if req.GET.get('qssj'): a = a.filter(fxsj__gte=req.GET.get('qssj')) if req.GET.get('jssj'): a = a.filter(fxsj__lte=req.GET.get('jssj')) if req.GET.get('fxbm'): - parts = Partment.objects.filter(partlink__contains=',' + req.GET.get('fxbm') + ',')|Partment.objects.filter(partid=req.GET.get('fxbm')) + parts = Partment.objects.filter(partlink__contains=',' + req.GET.get( + 'fxbm') + ',') | Partment.objects.filter(partid=req.GET.get('fxbm')) a = a.filter(fxbm__in=parts) for i in Dickey.objects.filter(dicparent__dicid=16): y = a.filter(yhlb=i).count() - children.append({'name':i.dickeyname,'value':y}) - children2= [] + children.append({'name': i.dickeyname, 'value': y}) + children2 = [] for i in Dickey.objects.filter(dicparent__dicid=17): y = a.filter(yhlb=i).count() - children2.append({'name':i.dickeyname,'value':y}) - value=[{'name':'现场管理','children':children},{'name':'基础管理','children':children2}] - return JsonResponse({'code':1,'value':value}) - elif req.GET.get('a')=='yhpgt': + children2.append({'name': i.dickeyname, 'value': y}) + value = [{'name': '现场管理', 'children': children}, + {'name': '基础管理', 'children': children2}] + return JsonResponse({'code': 1, 'value': value}) + elif req.GET.get('a') == 'yhpgt': if req.GET.get('year'): year = int(req.GET.get('year')) month = int(req.GET.get('month')) @@ -1829,158 +2026,177 @@ def charthandle(req): partid = req.GET.get('part') else: partid = companyid - parts = Partment.objects.filter(Q(partid=partid) | Q(partlink__contains=',' + str(partid) + ',')) - a = Trouble.objects.filter(deletemark=1,fxbm__in=parts) - value=[] - key=[] - first_day,first_day_of_next_month = gettime(datetime(year,month,1)) + parts = Partment.objects.filter(Q(partid=partid) | Q( + partlink__contains=',' + str(partid) + ',')) + a = Trouble.objects.filter(deletemark=1, fxbm__in=parts) + value = [] + key = [] + first_day, first_day_of_next_month = gettime( + datetime(year, month, 1)) for i in Dickey.objects.filter(dicparent__dicid=19): x = i.dickeyname - y = a.filter(yhpg=i,fxsj__range=(first_day, first_day_of_next_month)).count() + y = a.filter(yhpg=i, fxsj__range=( + first_day, first_day_of_next_month)).count() key.append(x) - value.append({'value':y,'name':x}) - return JsonResponse({'code':1,'key':key,'value':value}) + value.append({'value': y, 'name': x}) + return JsonResponse({'code': 1, 'key': key, 'value': value}) else: - a = Trouble.objects.filter(usecomp__partid=companyid,deletemark=1) + a = Trouble.objects.filter(usecomp__partid=companyid, deletemark=1) if req.GET.get('qssj'): a = a.filter(fxsj__gte=req.GET.get('qssj')) if req.GET.get('jssj'): a = a.filter(fxsj__lte=req.GET.get('jssj')) if req.GET.get('fxbm'): - parts = Partment.objects.filter(partlink__contains=',' + req.GET.get('fxbm') + ',')|Partment.objects.filter(partid=req.GET.get('fxbm')) + parts = Partment.objects.filter(partlink__contains=',' + req.GET.get( + 'fxbm') + ',') | Partment.objects.filter(partid=req.GET.get('fxbm')) a = a.filter(fxbm__in=parts) - value=[] - key=[] + value = [] + key = [] for i in Dickey.objects.filter(dicparent__dicid=19): x = i.dickeyname y = a.filter(yhpg=i).count() key.append(x) - value.append({'value':y,'name':x}) - return JsonResponse({'code':1,'key':key,'value':value}) - elif req.GET.get('a')=='pxjbt': + value.append({'value': y, 'name': x}) + return JsonResponse({'code': 1, 'key': key, 'value': value}) + elif req.GET.get('a') == 'pxjbt': year = int(req.GET.get('year')) month = int(req.GET.get('month')) if req.GET.get('part'): partid = req.GET.get('part') else: partid = companyid - parts = Partment.objects.filter(Q(partid=partid) | Q(partlink__contains=',' + str(partid) + ',')) - first_day,first_day_of_next_month = gettime(datetime(year,month,1)) - a = Train.objects.filter(deletemark=1,trainpart__in=parts,state=1) - value=[] - key=[] + parts = Partment.objects.filter(Q(partid=partid) | Q( + partlink__contains=',' + str(partid) + ',')) + first_day, first_day_of_next_month = gettime(datetime(year, month, 1)) + a = Train.objects.filter(deletemark=1, trainpart__in=parts, state=1) + value = [] + key = [] for i in Dicclass.objects.filter(parentid__dicid=4): x = i.dicname - y = a.filter(trainlevel=i,starttime__range=(first_day, first_day_of_next_month)).count() + y = a.filter(trainlevel=i, starttime__range=( + first_day, first_day_of_next_month)).count() key.append(x) - value.append({'value':y,'name':x}) - return JsonResponse({'code':1,'key':key,'value':value}) - elif req.GET.get('a')=='yllxt':#演练类型饼图 + value.append({'value': y, 'name': x}) + return JsonResponse({'code': 1, 'key': key, 'value': value}) + elif req.GET.get('a') == 'yllxt': # 演练类型饼图 year = int(req.GET.get('year')) month = int(req.GET.get('month')) if req.GET.get('part'): partid = req.GET.get('part') else: partid = companyid - parts = Partment.objects.filter(Q(partid=partid) | Q(partlink__contains=',' + str(partid) + ',')) - first_day,first_day_of_next_month = gettime(datetime(year,month,1)) - a = Drill.objects.filter(drillpart__in=parts,deletemark=1,state=1) - value=[] - key=[] + parts = Partment.objects.filter(Q(partid=partid) | Q( + partlink__contains=',' + str(partid) + ',')) + first_day, first_day_of_next_month = gettime(datetime(year, month, 1)) + a = Drill.objects.filter(drillpart__in=parts, deletemark=1, state=1) + value = [] + key = [] for i in Dickey.objects.filter(dicparent__dicid=12): x = i.dickeyname - y = a.filter(drilltype=i,starttime__range=(first_day, first_day_of_next_month)).count() + y = a.filter(drilltype=i, starttime__range=( + first_day, first_day_of_next_month)).count() key.append(x) - value.append({'value':y,'name':x}) - return JsonResponse({'code':1,'key':key,'value':value}) - elif req.GET.get('a')=='yjb':#某月各预警指数表 + value.append({'value': y, 'name': x}) + return JsonResponse({'code': 1, 'key': key, 'value': value}) + elif req.GET.get('a') == 'yjb': # 某月各预警指数表 year = int(req.GET.get('year')) month = int(req.GET.get('month')) - a = Yjyc.objects.filter(usecomp__partid=companyid,year=year,month=month) - data = a.values('drillvalue','trainvalue','troublevalue','observevalue','missvalue','yjz')[0] - return JsonResponse({'code':1,'data':[{'name':'预警值','score':data.pop('yjz')},{'name':'事故隐患','score':data.pop('troublevalue')},{'name':'教育培训','score':data.pop('trainvalue')},{'name':'应急演练','score':data.pop('drillvalue')},{'name':'行为观察','score':data.pop('observevalue')},{'name':'未遂事件','score':data.pop('missvalue')}]}) - elif req.GET.get('a')=='yjhbfx':#预警环比分析 + a = Yjyc.objects.filter( + usecomp__partid=companyid, year=year, month=month) + data = a.values('drillvalue', 'trainvalue', 'troublevalue', + 'observevalue', 'missvalue', 'yjz')[0] + return JsonResponse({'code': 1, 'data': [{'name': '预警值', 'score': data.pop('yjz')}, {'name': '事故隐患', 'score': data.pop('troublevalue')}, {'name': '教育培训', 'score': data.pop('trainvalue')}, {'name': '应急演练', 'score': data.pop('drillvalue')}, {'name': '行为观察', 'score': data.pop('observevalue')}, {'name': '未遂事件', 'score': data.pop('missvalue')}]}) + elif req.GET.get('a') == 'yjhbfx': # 预警环比分析 year = int(req.GET.get('year')) month = int(req.GET.get('month')) - if month-1<1: - bmonth=12 - byear=year-1 + if month-1 < 1: + bmonth = 12 + byear = year-1 else: - bmonth =month-1 - byear=year + bmonth = month-1 + byear = year a = Yjyc.objects.filter(usecomp__partid=companyid) - data={} - nmonthyjz = a.filter(year=year,month=month)[0].yjz - bmonthyjz = a.filter(year=byear,month=bmonth)[0].yjz - return JsonResponse({'code':1,'data':[{'month':month,'yjz':nmonthyjz},{'month':bmonth,'yjz':bmonthyjz}]}) - elif req.GET.get('a')=='yhfxbmb':#隐患发现部门分布表 + data = {} + nmonthyjz = a.filter(year=year, month=month)[0].yjz + bmonthyjz = a.filter(year=byear, month=bmonth)[0].yjz + return JsonResponse({'code': 1, 'data': [{'month': month, 'yjz': nmonthyjz}, {'month': bmonth, 'yjz': bmonthyjz}]}) + elif req.GET.get('a') == 'yhfxbmb': # 隐患发现部门分布表 year = int(req.GET.get('year')) month = int(req.GET.get('month')) if req.GET.get('part'): partid = req.GET.get('part') else: partid = companyid - first_day,first_day_of_next_month = gettime(datetime(year,month,1)) - alist=[] + first_day, first_day_of_next_month = gettime(datetime(year, month, 1)) + alist = [] for i in (Partment.objects.filter(Q(partid=partid) | Q(parentid__partid=partid))).order_by('partid'): objs = Trouble.objects.filter(deletemark=1) - x=(objs.filter(fxbm=i)|objs.filter(fxbm__partlink__contains=','+str(i.partid)+',')).filter(fxsj__range=(first_day, first_day_of_next_month)) - a=x.count() - b=i.partname - c=x.exclude (yhzt=6).count() - alist.append({'partname':b,'yhnum':a,'nonum':c}) - return JsonResponse({'code':1,'data':alist}) - elif req.GET.get('a')=='pxbmb':#培训部门分布表 + x = (objs.filter(fxbm=i) | objs.filter(fxbm__partlink__contains=',' + + str(i.partid)+',')).filter(fxsj__range=(first_day, first_day_of_next_month)) + a = x.count() + b = i.partname + c = x.exclude(yhzt=6).count() + alist.append({'partname': b, 'yhnum': a, 'nonum': c}) + return JsonResponse({'code': 1, 'data': alist}) + elif req.GET.get('a') == 'pxbmb': # 培训部门分布表 year = int(req.GET.get('year')) month = int(req.GET.get('month')) - first_day,first_day_of_next_month = gettime(datetime(year,month,1)) - alist=[] + first_day, first_day_of_next_month = gettime(datetime(year, month, 1)) + alist = [] if req.GET.get('part'): partid = req.GET.get('part') else: partid = companyid for i in Partment.objects.filter(Q(partid=partid) | Q(parentid__partid=partid)).order_by('partid'): - x=Train.objects.filter(trainpart=i,state=1,deletemark=1,starttime__range=(first_day, first_day_of_next_month)) - b=i.partname - c=x.count() - d=x.filter(trainlevel__dicid=5).count() - e=x.filter(trainlevel__dicid=6).count() - f=x.filter(trainlevel__dicid=7).count() - g=x.filter(trainlevel__dicid=42).count() - alist.append({'partname':b,'pxnum':c,'gsjnum':d,'cjjnum':e,'bzjnum':f,'fcjnum':g}) - return JsonResponse({'code':1,'data':alist}) - elif req.GET.get('a')=='ylbmb':#演练部门分布表 + x = Train.objects.filter(trainpart=i, state=1, deletemark=1, starttime__range=( + first_day, first_day_of_next_month)) + b = i.partname + c = x.count() + d = x.filter(trainlevel__dicid=5).count() + e = x.filter(trainlevel__dicid=6).count() + f = x.filter(trainlevel__dicid=7).count() + g = x.filter(trainlevel__dicid=42).count() + alist.append({'partname': b, 'pxnum': c, 'gsjnum': d, + 'cjjnum': e, 'bzjnum': f, 'fcjnum': g}) + return JsonResponse({'code': 1, 'data': alist}) + elif req.GET.get('a') == 'ylbmb': # 演练部门分布表 year = int(req.GET.get('year')) month = int(req.GET.get('month')) if req.GET.get('part'): partid = req.GET.get('part') else: partid = companyid - first_day,first_day_of_next_month = gettime(datetime(year,month,1)) - alist=[] + first_day, first_day_of_next_month = gettime(datetime(year, month, 1)) + alist = [] for i in Partment.objects.filter(Q(partid=partid) | Q(parentid__partid=partid)).order_by('partid'): - x=Drill.objects.filter(drillpart=i,state=1,deletemark=1,starttime__range=(first_day, first_day_of_next_month)) - b=i.partname - c=x.count() - d=x.filter(drilllevel__dicid=20).count() - e=x.filter(drilllevel__dicid=21).count() - f=x.filter(drilllevel__dicid=22).count() - alist.append({'partname':b,'ylnum':c,'gsjnum':d,'cjjnum':e,'bzjnum':f}) - return JsonResponse({'code':1,'data':alist}) - elif req.GET.get('a')=='yhqst':#隐患趋势图 - x_s = Yjyc.objects.filter(usecomp__partid=companyid).order_by('buildtime') - objs = Trouble.objects.filter(deletemark=1,usecomp__partid=companyid) + x = Drill.objects.filter(drillpart=i, state=1, deletemark=1, starttime__range=( + first_day, first_day_of_next_month)) + b = i.partname + c = x.count() + d = x.filter(drilllevel__dicid=20).count() + e = x.filter(drilllevel__dicid=21).count() + f = x.filter(drilllevel__dicid=22).count() + alist.append({'partname': b, 'ylnum': c, + 'gsjnum': d, 'cjjnum': e, 'bzjnum': f}) + return JsonResponse({'code': 1, 'data': alist}) + elif req.GET.get('a') == 'yhqst': # 隐患趋势图 + x_s = Yjyc.objects.filter( + usecomp__partid=companyid).order_by('buildtime') + objs = Trouble.objects.filter(deletemark=1, usecomp__partid=companyid) if req.GET.get('fxbm'): - parts = Partment.objects.filter(partlink__contains=',' + req.GET.get('fxbm') + ',')|Partment.objects.filter(partid=req.GET.get('fxbm')) + parts = Partment.objects.filter(partlink__contains=',' + req.GET.get( + 'fxbm') + ',') | Partment.objects.filter(partid=req.GET.get('fxbm')) objs = objs.filter(fxbm__in=parts) data = {} - data['现场管理类']=[] - data['基础管理类']=[] + data['现场管理类'] = [] + data['基础管理类'] = [] data['全部'] = [] - data['时间轴']= [] + data['时间轴'] = [] for i in x_s: - first_day,first_day_of_next_month = gettime(datetime(i.year,i.month,1)) - totalobj = objs.filter(fxsj__range=(first_day,first_day_of_next_month)) + first_day, first_day_of_next_month = gettime( + datetime(i.year, i.month, 1)) + totalobj = objs.filter(fxsj__range=( + first_day, first_day_of_next_month)) num = totalobj.count() xcglnum = totalobj.filter(yhlx__dicid=16).count() jcglnum = totalobj.filter(yhlx__dicid=17).count() @@ -1988,144 +2204,163 @@ def charthandle(req): data['现场管理类'].append(xcglnum) data['基础管理类'].append(jcglnum) data['时间轴'].append(str(i.year)+'-'+str(i.month)) - return JsonResponse(data,safe=False) - elif req.GET.get('a')=='gzbqst':#各指标趋势图 - x_s = Yjyc.objects.filter(usecomp__partid=companyid).order_by('buildtime') - yhobjs = Trouble.objects.filter(deletemark=1,usecomp__partid=companyid) - pxobjs = Train.objects.filter(deletemark=1,usecomp__partid=companyid) - ylobjs = Drill.objects.filter(deletemark=1,usecomp__partid=companyid) - gcobjs = Observe.objects.filter(deletemark=1,usecomp__partid=companyid) - wsobjs = Miss.objects.filter(deletemark=1,usecomp__partid=companyid) + return JsonResponse(data, safe=False) + elif req.GET.get('a') == 'gzbqst': # 各指标趋势图 + x_s = Yjyc.objects.filter( + usecomp__partid=companyid).order_by('buildtime') + yhobjs = Trouble.objects.filter( + deletemark=1, usecomp__partid=companyid) + pxobjs = Train.objects.filter(deletemark=1, usecomp__partid=companyid) + ylobjs = Drill.objects.filter(deletemark=1, usecomp__partid=companyid) + gcobjs = Observe.objects.filter( + deletemark=1, usecomp__partid=companyid) + wsobjs = Miss.objects.filter(deletemark=1, usecomp__partid=companyid) data = {} - data['隐患']=[] - data['培训']=[] + data['隐患'] = [] + data['培训'] = [] data['演练'] = [] data['观察'] = [] data['事件'] = [] - data['时间轴']= [] + data['时间轴'] = [] for i in x_s: - first_day,first_day_of_next_month = gettime(datetime(i.year,i.month,1)) - yhnum = yhobjs.filter(fxsj__range=(first_day,first_day_of_next_month)).count() - pxnum = pxobjs.filter(starttime__range=(first_day,first_day_of_next_month)).count() - ylnum = ylobjs.filter(starttime__range=(first_day,first_day_of_next_month)).count() - gcnum = gcobjs.filter(looktime__range=(first_day,first_day_of_next_month)).count() - wsnum = wsobjs.filter(misstime__range=(first_day,first_day_of_next_month)).count() + first_day, first_day_of_next_month = gettime( + datetime(i.year, i.month, 1)) + yhnum = yhobjs.filter(fxsj__range=( + first_day, first_day_of_next_month)).count() + pxnum = pxobjs.filter(starttime__range=( + first_day, first_day_of_next_month)).count() + ylnum = ylobjs.filter(starttime__range=( + first_day, first_day_of_next_month)).count() + gcnum = gcobjs.filter(looktime__range=( + first_day, first_day_of_next_month)).count() + wsnum = wsobjs.filter(misstime__range=( + first_day, first_day_of_next_month)).count() data['隐患'].append(yhnum) data['培训'].append(pxnum) data['演练'].append(ylnum) data['观察'].append(gcnum) data['事件'].append(wsnum) data['时间轴'].append(str(i.year)+'-'+str(i.month)) - return JsonResponse(data,safe=False) - elif req.GET.get('a')=='yhztt':#隐患状态图 - objs = Trouble.objects.filter(deletemark=1,usecomp__partid=companyid) + return JsonResponse(data, safe=False) + elif req.GET.get('a') == 'yhztt': # 隐患状态图 + objs = Trouble.objects.filter(deletemark=1, usecomp__partid=companyid) if req.GET.get('qssj'): objs = objs.filter(fxsj__gte=req.GET.get('qssj')) if req.GET.get('jssj'): objs = objs.filter(fxsj__lte=req.GET.get('jssj')) if req.GET.get('fxbm'): - parts = Partment.objects.filter(partlink__contains=',' + req.GET.get('fxbm') + ',')|Partment.objects.filter(partid=req.GET.get('fxbm')) + parts = Partment.objects.filter(partlink__contains=',' + req.GET.get( + 'fxbm') + ',') | Partment.objects.filter(partid=req.GET.get('fxbm')) objs = objs.filter(fxbm__in=parts) - ztdict = {'待新增':0,'待评估':1,'措施待提交':7,'措施待确认':2,'待整改':3,'待审核':4,'待复查':5} + ztdict = {'待新增': 0, '待评估': 1, '措施待提交': 7, + '措施待确认': 2, '待整改': 3, '待审核': 4, '待复查': 5} ztnumli = [] for key in ztdict: objnum = objs.filter(yhzt=ztdict[key]).count() - objdict = {'value':objnum,'name':key} + objdict = {'value': objnum, 'name': key} ztnumli.append(objdict) - return JsonResponse(ztnumli,safe=False) - elif req.GET.get('a')=='gcbmb':#观察部门分布表 + return JsonResponse(ztnumli, safe=False) + elif req.GET.get('a') == 'gcbmb': # 观察部门分布表 year = int(req.GET.get('year')) month = int(req.GET.get('month')) - first_day,first_day_of_next_month = gettime(datetime(year,month,1)) - a = Observe.objects.filter(deletemark=1,looktime__range=(first_day, first_day_of_next_month)) - alist=[] + first_day, first_day_of_next_month = gettime(datetime(year, month, 1)) + a = Observe.objects.filter(deletemark=1, looktime__range=( + first_day, first_day_of_next_month)) + alist = [] if req.GET.get('part'): partid = req.GET.get('part') else: partid = companyid for i in Partment.objects.filter(Q(partid=partid) | Q(parentid__partid=partid)).order_by('partid'): - y=0 - for m in Partment.objects.filter(partlink__contains=','+str(i.partid)+',')|Partment.objects.filter(partid=i.partid): + y = 0 + for m in Partment.objects.filter(partlink__contains=','+str(i.partid)+',') | Partment.objects.filter(partid=i.partid): y = y + a.filter(lookpart=m).count() - b=i.partname - c=y - alist.append({'partname':b,'gcnum':c}) - return JsonResponse({'code':1,'data':alist}) - elif req.GET.get('a')=='wsbmb':#未遂部门分布表 + b = i.partname + c = y + alist.append({'partname': b, 'gcnum': c}) + return JsonResponse({'code': 1, 'data': alist}) + elif req.GET.get('a') == 'wsbmb': # 未遂部门分布表 year = int(req.GET.get('year')) month = int(req.GET.get('month')) - first_day,first_day_of_next_month = gettime(datetime(year,month,1)) - a = Miss.objects.filter(deletemark=1,misstime__range=(first_day, first_day_of_next_month)) - alist=[] + first_day, first_day_of_next_month = gettime(datetime(year, month, 1)) + a = Miss.objects.filter(deletemark=1, misstime__range=( + first_day, first_day_of_next_month)) + alist = [] if req.GET.get('part'): partid = req.GET.get('part') else: partid = companyid for i in Partment.objects.filter(Q(partid=partid) | Q(parentid__partid=partid)).order_by('partid'): - y=0 - for m in Partment.objects.filter(partlink__contains=','+str(i.partid)+',')|Partment.objects.filter(partid=i.partid): + y = 0 + for m in Partment.objects.filter(partlink__contains=','+str(i.partid)+',') | Partment.objects.filter(partid=i.partid): y = y + a.filter(misspart=m).count() - b=i.partname - c=y - alist.append({'partname':b,'wsnum':c}) - return JsonResponse({'code':1,'data':alist}) - elif req.GET.get('a')=='gclxt':#观察类型饼图 + b = i.partname + c = y + alist.append({'partname': b, 'wsnum': c}) + return JsonResponse({'code': 1, 'data': alist}) + elif req.GET.get('a') == 'gclxt': # 观察类型饼图 year = int(req.GET.get('year')) month = int(req.GET.get('month')) - first_day,first_day_of_next_month = gettime(datetime(year,month,1)) + first_day, first_day_of_next_month = gettime(datetime(year, month, 1)) if req.GET.get('part'): partid = req.GET.get('part') else: partid = companyid - parts = Partment.objects.filter(Q(partid=partid) | Q(partlink__contains=',' + str(partid) + ',')) - a = Observe.objects.filter(lookpart__in=parts,deletemark=1,looktime__range=(first_day, first_day_of_next_month)) - value=[] - key=[] + parts = Partment.objects.filter(Q(partid=partid) | Q( + partlink__contains=',' + str(partid) + ',')) + a = Observe.objects.filter(lookpart__in=parts, deletemark=1, looktime__range=( + first_day, first_day_of_next_month)) + value = [] + key = [] for i in Dicclass.objects.filter(parentid__dicid=23): x = i.dicname - y = Unsafes.objects.filter(observe__in=a,unsafedicclass=i).count() + y = Unsafes.objects.filter(observe__in=a, unsafedicclass=i).count() key.append(x) - value.append({'value':y,'name':x}) - return JsonResponse({'code':1,'key':key,'value':value}) + value.append({'value': y, 'name': x}) + return JsonResponse({'code': 1, 'key': key, 'value': value}) + def apiriskas(req): userid = req.session['userid'] companyid = getcompany(userid) - if req.GET.get('a') == 'fxdlxt':#风险点类型图 + if req.GET.get('a') == 'fxdlxt': # 风险点类型图 objs = RiskAct.objects.filter(usecomp__partid=companyid) - if req.GET.get('zrbm',None): + if req.GET.get('zrbm', None): partid = req.GET.get('zrbm') objs = objs.filter(zrbm__partid=partid) legendData = [] seriesData = [] for i in Dickey.objects.filter(dicparent__dicid=53): legendData.append(i.dickeyname) - seriesData.append({'value':objs.filter(type=i).count(),'name':i.dickeyname}) - return JsonResponse({'code':1,'legendData':legendData,'seriesData':seriesData}) - elif req.GET.get('a') == 'fxdjbt':#风险点级别图 + seriesData.append({'value': objs.filter( + type=i).count(), 'name': i.dickeyname}) + return JsonResponse({'code': 1, 'legendData': legendData, 'seriesData': seriesData}) + elif req.GET.get('a') == 'fxdjbt': # 风险点级别图 objs = RiskAct.objects.filter(usecomp__partid=companyid) - if req.GET.get('zrbm',None): + if req.GET.get('zrbm', None): partid = req.GET.get('zrbm') objs = objs.filter(zrbm__partid=partid) - legendData = ['低风险','一般风险','较大风险','重大风险'] + legendData = ['低风险', '一般风险', '较大风险', '重大风险'] seriesData = [] for i in legendData: - seriesData.append({'value':objs.filter(level=i).count(),'name':i}) - return JsonResponse({'code':1,'legendData':legendData,'seriesData':seriesData}) - elif req.GET.get('a') == 'fxjbt':#风险级别图 + seriesData.append( + {'value': objs.filter(level=i).count(), 'name': i}) + return JsonResponse({'code': 1, 'legendData': legendData, 'seriesData': seriesData}) + elif req.GET.get('a') == 'fxjbt': # 风险级别图 objs = Risk.objects.filter(usecomp__partid=companyid) - if req.GET.get('zrbm',None): + if req.GET.get('zrbm', None): partid = req.GET.get('zrbm') objs = objs.filter(riskact__zrbm__partid=partid) - legendData = ['低风险','一般风险','较大风险','重大风险'] + legendData = ['低风险', '一般风险', '较大风险', '重大风险'] seriesData = [] for i in legendData: - seriesData.append({'value':objs.filter(level=i).count(),'name':i}) - return JsonResponse({'code':1,'legendData':legendData,'seriesData':seriesData}) - elif req.GET.get('a') == 'fxdqyt':#风险点区域图 + seriesData.append( + {'value': objs.filter(level=i).count(), 'name': i}) + return JsonResponse({'code': 1, 'legendData': legendData, 'seriesData': seriesData}) + elif req.GET.get('a') == 'fxdqyt': # 风险点区域图 objs = RiskAct.objects.filter(usecomp__partid=companyid) objs2 = Risk.objects.filter(usecomp__partid=companyid) - if req.GET.get('zrbm',None): + if req.GET.get('zrbm', None): partid = req.GET.get('zrbm') objs = objs.filter(zrbm__partid=partid) objs2 = objs2.filter(riskact__zrbm__partid=partid) @@ -2133,20 +2368,21 @@ def apiriskas(req): series = [] #areas = Area.objects.filter(usecomp__partid=companyid,deletemark=1) #riskactareas = Area.objects.filter(usecomp__partid=companyid,deletemark=1).annotate(num=Count('riskactarea')).filter(num__gt=0).order_by('-num') - riskactareas = objs.values('area').annotate(num=Count('area')).order_by('-num') + riskactareas = objs.values('area').annotate( + num=Count('area')).order_by('-num') for i in riskactareas: xAxisData.append(Area.objects.get(id=i['area']).name) data = {} - data['datariskact']=[] # 风险点总数 - data['datariskact1']=[] # 低风险点数 - data['datariskact2']=[] # 一般风险点数 - data['datariskact3']=[] # 较大风险点数 - data['datariskact4']=[] # 重大风险点数 - data['datarisk']=[] # 风险总数 - data['datarisk1']=[] # 低风险数 - data['datarisk2']=[] # 一般风险数 - data['datarisk3']=[] # 较大风险数 - data['datarisk4']=[] # 重大风险数 + data['datariskact'] = [] # 风险点总数 + data['datariskact1'] = [] # 低风险点数 + data['datariskact2'] = [] # 一般风险点数 + data['datariskact3'] = [] # 较大风险点数 + data['datariskact4'] = [] # 重大风险点数 + data['datarisk'] = [] # 风险总数 + data['datarisk1'] = [] # 低风险数 + data['datarisk2'] = [] # 一般风险数 + data['datarisk3'] = [] # 较大风险数 + data['datarisk4'] = [] # 重大风险数 for i in riskactareas: objsxx = objs.filter(area__id=i['area']) data['datariskact'].append(objsxx.count()) @@ -2160,21 +2396,25 @@ def apiriskas(req): data['datarisk2'].append(objsxx2.filter(level="一般风险").count()) data['datarisk3'].append(objsxx2.filter(level="较大风险").count()) data['datarisk4'].append(objsxx2.filter(level="重大风险").count()) - return JsonResponse({'code':1,'xAxisData':xAxisData,'seriesData':data}) + return JsonResponse({'code': 1, 'xAxisData': xAxisData, 'seriesData': data}) + + def fxhandle(req): a = req.GET.get('a') if a == 'exportyjdoc': userid = req.session['userid'] companyid = getcompany(userid) vl = json.loads(req.body.decode()) - vl['companyname']=Partment.objects.get(partid=companyid).partname + vl['companyname'] = Partment.objects.get(partid=companyid).partname v = exportyjdoc(vl) - return JsonResponse({"code":1,'downloadurl':v}) + return JsonResponse({"code": 1, 'downloadurl': v}) elif a == 'yhfxpm': userid = req.session['userid'] companyid = getcompany(userid) - partsall = Partment.objects.filter(partlink__contains=',' + companyid + ',')|Partment.objects.filter(partid=companyid) - objs = Trouble.objects.filter(fxr__ubelongpart__partid__in=partsall,deletemark=1) + partsall = Partment.objects.filter( + partlink__contains=',' + companyid + ',') | Partment.objects.filter(partid=companyid) + objs = Trouble.objects.filter( + fxr__ubelongpart__partid__in=partsall, deletemark=1) # userall = User.objects.filter(ubelongpart__in=partsall,deletemark=1) # objs=[] # for i in userall: @@ -2184,13 +2424,15 @@ def fxhandle(req): if req.GET.get('jssj'): objs = objs.filter(fxsj__lte=req.GET.get('jssj')) if req.GET.get('jclx'): - objs = objs.filter(jclx = Dickey.objects.filter(dickeyid=req.GET.get('jclx'))) + objs = objs.filter(jclx=Dickey.objects.filter( + dickeyid=req.GET.get('jclx'))) # yhnum = yhnum.count() # objs.append({'fxr__userid':i.userid,'fxr__name':i.name,'fxbm__partname':i.ubelongpart.partname,'number':yhnum}) # objs.sort(key=takeSecond,reverse=True) if req.GET.get('fxbm'): fxbm = req.GET.get('fxbm') - parts = Partment.objects.filter(partlink__contains=',' + fxbm + ',')|Partment.objects.filter(partid=fxbm) + parts = Partment.objects.filter( + partlink__contains=',' + fxbm + ',') | Partment.objects.filter(partid=fxbm) objs = objs.filter(fxbm__in=parts) # objs=[] # for i in userlist: @@ -2204,69 +2446,76 @@ def fxhandle(req): # objs.sort(key=takeSecond,reverse=True) # objs = objs.values('fxr__userid','fxr__name','fxbm__partname').annotate(number = Count('fxr')).order_by('-number') total = objs.count() - objs = objs.values('fxr__userid','fxr__name','fxbm__partname').annotate(number = Count('fxr')).order_by('-number') - return HttpResponse(transjson(total,objs),content_type="application/json") + objs = objs.values('fxr__userid', 'fxr__name', 'fxbm__partname').annotate( + number=Count('fxr')).order_by('-number') + return HttpResponse(transjson(total, objs), content_type="application/json") elif a == 'yhzgpm': userid = req.session['userid'] companyid = getcompany(userid) - objs = Trouble.objects.filter(usecomp__partid=companyid,deletemark=1) + objs = Trouble.objects.filter(usecomp__partid=companyid, deletemark=1) if req.GET.get('zgr'): objs = objs.filter(zgr__name__contains=req.GET.get('zgr')) if req.GET.get('qssj'): objs = objs.filter(fxsj__gte=req.GET.get('qssj')) if req.GET.get('jssj'): objs = objs.filter(fxsj__lte=req.GET.get('jssj')) - objs = objs.values('zgr__userid','zgr__name','zgbm__partname').annotate(number = Count('zgr')).order_by('-number') + objs = objs.values('zgr__userid', 'zgr__name', 'zgbm__partname').annotate( + number=Count('zgr')).order_by('-number') total = objs.count() - return HttpResponse(transjson(total,objs),content_type="application/json") + return HttpResponse(transjson(total, objs), content_type="application/json") # elif a == 'exportexcel': # datalist = req.POST.get('data') # downloadurl = exportsimplexlsx(datalist) # return JsonResponse({'code':1,'downloadurl':downloadurl}) + def takeSecond(elem): - return elem['number'] + return elem['number'] + def userhandle(req): - if req.GET.get('a')=='adduserh': - return render(req,'abuser.html') - elif req.GET.get('a')=='edituserh': - return render(req,'abuser.html') - elif req.GET.get('a')=='del': + if req.GET.get('a') == 'adduserh': + return render(req, 'abuser.html') + elif req.GET.get('a') == 'edituserh': + return render(req, 'abuser.html') + elif req.GET.get('a') == 'del': a = req.GET.get('userid') userid = req.session['userid'] if User.objects.get(userid=userid).issuper == 1: if User.objects.get(userid=a).issuper == 1: - return JsonResponse({"code":0}) + return JsonResponse({"code": 0}) else: User.objects.filter(userid=a).update(deletemark=0) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) - elif req.GET.get('a')=='add': - if req.POST.get('userid')!='': - a=User.objects.filter(userid = req.POST.get('userid')) + return JsonResponse({"code": 0}) + elif req.GET.get('a') == 'add': + if req.POST.get('userid') != '': + a = User.objects.filter(userid=req.POST.get('userid')) newname = req.POST.get('username') - if User.objects.filter(username = newname).exclude(username=a[0].username).count() == 0: + if User.objects.filter(username=newname).exclude(username=a[0].username).count() == 0: name = req.POST.get('name') empid = req.POST.get('empid') - ubelongpart=Partment.objects.get(partid=req.POST.get('ubelongpart')) + ubelongpart = Partment.objects.get( + partid=req.POST.get('ubelongpart')) # if req.POST.getlist('group',None): # a[0].userg.add(*req.POST.getlist('group')) - a.update(name=name,empid=empid,ubelongpart=ubelongpart,username=newname) - return JsonResponse({"code":1}) + a.update(name=name, empid=empid, + ubelongpart=ubelongpart, username=newname) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) + return JsonResponse({"code": 0}) else: - newname=req.POST.get('username') - if User.objects.filter(username = newname).count() == 0: + newname = req.POST.get('username') + if User.objects.filter(username=newname).count() == 0: a = User() a.name = req.POST.get('name') a.empid = req.POST.get('empid') - a.username=req.POST.get('username') - a.password=req.POST.get('password') + a.username = req.POST.get('username') + a.password = req.POST.get('password') a.epassword = make_password(req.POST.get('password')) - a.ubelongpart=Partment.objects.get(partid=req.POST.get('ubelongpart')) + a.ubelongpart = Partment.objects.get( + partid=req.POST.get('ubelongpart')) a.save() companyid = getcompany(a.userid) a.usecomp = Partment.objects.get(partid=companyid) @@ -2278,149 +2527,178 @@ def userhandle(req): # if i.grouptype == 1: # i.users.add(a) - Group.objects.get(usecomp__partid=companyid,grouptype=3).users.add(a) - return JsonResponse({"code":1}) + Group.objects.get(usecomp__partid=companyid, + grouptype=3).users.add(a) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) + return JsonResponse({"code": 0}) + def getuser(req): userid = req.session['userid'] if req.GET.get('partid'): partid = req.GET.get('partid') - parts=Partment.objects.filter(partlink__contains=','+partid+',')|Partment.objects.filter(partid=partid) - if req.GET.get('a')=='datagrid': - a = User.objects.filter(ubelongpart__in=parts,deletemark=1).exclude(issuper=1) + parts = Partment.objects.filter( + partlink__contains=','+partid+',') | Partment.objects.filter(partid=partid) + if req.GET.get('a') == 'datagrid': + a = User.objects.filter( + ubelongpart__in=parts, deletemark=1).exclude(issuper=1) total = a.count() - if req.GET.get('page',None): - startnum,endnum = fenye(req) + if req.GET.get('page', None): + startnum, endnum = fenye(req) a = a[startnum:endnum] - a = a.values('userid','empid','name','ubelongpart__partname','ubelongpart__partid','username','openid') - return HttpResponse(transjson(total,a),content_type="application/json") + a = a.values('userid', 'empid', 'name', 'ubelongpart__partname', + 'ubelongpart__partid', 'username', 'openid') + return HttpResponse(transjson(total, a), content_type="application/json") else: - a = User.objects.filter(ubelongpart__in=parts,deletemark=1).exclude(issuper=1).values('userid','name') - keystr=transstr(a,'userid','name') - return HttpResponse(keystr,content_type="application/json") + a = User.objects.filter(ubelongpart__in=parts, deletemark=1).exclude( + issuper=1).values('userid', 'name') + keystr = transstr(a, 'userid', 'name') + return HttpResponse(keystr, content_type="application/json") elif req.GET.get('groupid'): - groupid=req.GET.get('groupid') - a = Group.objects.get(groupid=groupid).users.filter(deletemark=1).all().values('userid','empid','name','ubelongpart__partname','ubelongpart__partid','username') - total=a.count() - return HttpResponse(transjson(total,a),content_type="application/json") + groupid = req.GET.get('groupid') + a = Group.objects.get(groupid=groupid).users.filter(deletemark=1).all().values( + 'userid', 'empid', 'name', 'ubelongpart__partname', 'ubelongpart__partid', 'username') + total = a.count() + return HttpResponse(transjson(total, a), content_type="application/json") elif req.GET.get('userid'): - a = User.objects.filter(userid=req.GET.get('userid')).values('userid','empid','name','ubelongpart__partid','username','openid','headimgurl','nickname') - b=list(a)[0] - return HttpResponse(json.dumps(b,cls=MyEncoder),content_type="application/json") + a = User.objects.filter(userid=req.GET.get('userid')).values( + 'userid', 'empid', 'name', 'ubelongpart__partid', 'username', 'openid', 'headimgurl', 'nickname') + b = list(a)[0] + return HttpResponse(json.dumps(b, cls=MyEncoder), content_type="application/json") elif req.GET.get('name'): - if req.GET.get('a')=='datagrid': - companyid=getcompany(userid) - parts=Partment.objects.filter(partlink__contains=','+companyid+',')|Partment.objects.filter(partid=companyid) - a=User.objects.filter(ubelongpart__in = parts,deletemark=1,name__contains= req.GET.get('name')).order_by('userid').values('userid','empid','name','ubelongpart__partname','ubelongpart__partid','username','openid') + if req.GET.get('a') == 'datagrid': + companyid = getcompany(userid) + parts = Partment.objects.filter( + partlink__contains=','+companyid+',') | Partment.objects.filter(partid=companyid) + a = User.objects.filter(ubelongpart__in=parts, deletemark=1, name__contains=req.GET.get('name')).order_by( + 'userid').values('userid', 'empid', 'name', 'ubelongpart__partname', 'ubelongpart__partid', 'username', 'openid') total = a.count() - return HttpResponse(transjson(total,a),content_type="application/json") + return HttpResponse(transjson(total, a), content_type="application/json") else: - companyid=getcompany(userid) - parts=Partment.objects.filter(partlink__contains=','+companyid+',')|Partment.objects.filter(partid=companyid) - if req.GET.get('a')=='combobox': - a = User.objects.filter(ubelongpart__in=parts,deletemark=1).exclude(issuper=1).values('userid','name') - keystr=transstr(a,'userid','name') - return HttpResponse(keystr,content_type="application/json") + companyid = getcompany(userid) + parts = Partment.objects.filter( + partlink__contains=','+companyid+',') | Partment.objects.filter(partid=companyid) + if req.GET.get('a') == 'combobox': + a = User.objects.filter(ubelongpart__in=parts, deletemark=1).exclude( + issuper=1).values('userid', 'name') + keystr = transstr(a, 'userid', 'name') + return HttpResponse(keystr, content_type="application/json") else: - a=User.objects.filter(ubelongpart__in = parts,deletemark=1).exclude(issuper=1) + a = User.objects.filter( + ubelongpart__in=parts, deletemark=1).exclude(issuper=1) total = a.count() - startnum,endnum = fenye(req) - a = a.order_by('userid')[startnum:endnum].values('userid','empid','name','ubelongpart__partname','ubelongpart__partid','username','openid') - return HttpResponse(transjson(total,a),content_type="application/json") + startnum, endnum = fenye(req) + a = a.order_by('userid')[startnum:endnum].values( + 'userid', 'empid', 'name', 'ubelongpart__partname', 'ubelongpart__partid', 'username', 'openid') + return HttpResponse(transjson(total, a), content_type="application/json") def parthandle(req): - if req.GET.get('a')=="addparth": - return render(req,'abpart.html') - elif req.GET.get('a')=='editparth': - return render(req,'abpart.html') - elif req.GET.get('a')=='detail': - a = Partment.objects.filter(partid=req.GET.get('partid')).values('partid','partname','parentid','iscompany') + if req.GET.get('a') == "addparth": + return render(req, 'abpart.html') + elif req.GET.get('a') == 'editparth': + return render(req, 'abpart.html') + elif req.GET.get('a') == 'detail': + a = Partment.objects.filter(partid=req.GET.get('partid')).values( + 'partid', 'partname', 'parentid', 'iscompany') b = list(a)[0] - return HttpResponse(json.dumps(b,cls=MyEncoder),content_type="application/json") - elif req.GET.get('a')=='del': + return HttpResponse(json.dumps(b, cls=MyEncoder), content_type="application/json") + elif req.GET.get('a') == 'del': a = req.POST.get('partid') if Partment.objects.filter(partlink__contains=','+a+',').exists() or User.objects.filter(ubelongpart=a).exists(): - return JsonResponse({"code":0}) + return JsonResponse({"code": 0}) else: Partment.objects.get(partid=a).delete() - return JsonResponse({"code":1}) - elif req.GET.get('a')=='addpart': + return JsonResponse({"code": 1}) + elif req.GET.get('a') == 'addpart': if req.POST.get('partid') != '': partid = req.POST.get('partid') partname = req.POST.get('partname') parentid = req.POST.get('parentid') partobj = Partment.objects.get(partid=partid) - oldpartlink = partobj.partlink + partid +',' - partlink = Partment.objects.get(partid=parentid).partlink + parentid +',' - Partment.objects.filter(partid=partid).update(partname= partname,parentid=parentid,partlink=partlink) - Partment.objects.filter(partlink__contains=oldpartlink).update(partlink= partlink + partid +',') - return JsonResponse({"code":1}) + oldpartlink = partobj.partlink + partid + ',' + partlink = Partment.objects.get( + partid=parentid).partlink + parentid + ',' + Partment.objects.filter(partid=partid).update( + partname=partname, parentid=parentid, partlink=partlink) + Partment.objects.filter(partlink__contains=oldpartlink).update( + partlink=partlink + partid + ',') + return JsonResponse({"code": 1}) else: try: - a=Partment() - a.parentid = Partment.objects.get(partid=req.POST.get('parentid')) + a = Partment() + a.parentid = Partment.objects.get( + partid=req.POST.get('parentid')) a.partname = req.POST.get('partname') - a.partlink = Partment.objects.get(partid=req.POST.get('parentid')).partlink + str(req.POST.get('parentid')) + ',' + a.partlink = Partment.objects.get(partid=req.POST.get( + 'parentid')).partlink + str(req.POST.get('parentid')) + ',' a.save() - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) except: - return JsonResponse({"code":0}) - elif req.GET.get('a')=='tree': + return JsonResponse({"code": 0}) + elif req.GET.get('a') == 'tree': userid = req.session['userid'] companyid = getcompany(userid) - list_items = (Partment.objects.filter(partlink__contains=','+companyid+',')|Partment.objects.filter(partid=companyid)).annotate(id=F('partid'),parentId=F('parentid'),name=F('partname')).values('id','parentId','name') - return HttpResponse(json.dumps(list(list_items)),content_type="application/json") - elif req.GET.get('a')=='tree2': + list_items = (Partment.objects.filter(partlink__contains=','+companyid+',') | Partment.objects.filter(partid=companyid) + ).annotate(id=F('partid'), parentId=F('parentid'), name=F('partname')).values('id', 'parentId', 'name') + return HttpResponse(json.dumps(list(list_items)), content_type="application/json") + elif req.GET.get('a') == 'tree2': userid = req.session['userid'] companyid = getcompany(userid) - list_items = (Partment.objects.filter(partlink__contains=','+companyid+',')).annotate(id=F('partid'),parentId=F('parentid'),name=F('partname')).values('id','parentId','name','iscompany') - return HttpResponse(json.dumps(list(list_items)),content_type="application/json") - elif req.GET.get('a')=='tree3':#能够指派的部门,包括自己所在的部门 + list_items = (Partment.objects.filter(partlink__contains=','+companyid+',')).annotate(id=F('partid'), + parentId=F('parentid'), name=F('partname')).values('id', 'parentId', 'name', 'iscompany') + return HttpResponse(json.dumps(list(list_items)), content_type="application/json") + elif req.GET.get('a') == 'tree3': # 能够指派的部门,包括自己所在的部门 userid = req.session['userid'] - parts = Partment.objects.filter(Q(aqy__contains = ','+str(userid)+',')|Q(bmzg__contains = ','+str(userid)+',')|Q(bsq__contains = ','+str(userid)+',')) + parts = Partment.objects.filter(Q(aqy__contains=','+str(userid)+',') | Q( + bmzg__contains=','+str(userid)+',') | Q(bsq__contains=','+str(userid)+',')) for i in parts: - parts = parts|Partment.objects.filter(partlink__contains=','+str(i.partid)+',') - parts = parts|Partment.objects.filter(partid=User.objects.get(userid=userid).ubelongpart.partid) - list_items = parts.annotate(id=F('partid'),parentId=F('parentid'),name=F('partname')).values('id','parentId','name','iscompany') - return HttpResponse(json.dumps(list(list_items)),content_type="application/json") - elif req.GET.get('a')=='getzgdatagrid': + parts = parts | Partment.objects.filter( + partlink__contains=','+str(i.partid)+',') + parts = parts | Partment.objects.filter( + partid=User.objects.get(userid=userid).ubelongpart.partid) + list_items = parts.annotate(id=F('partid'), parentId=F('parentid'), name=F( + 'partname')).values('id', 'parentId', 'name', 'iscompany') + return HttpResponse(json.dumps(list(list_items)), content_type="application/json") + elif req.GET.get('a') == 'getzgdatagrid': partid = req.GET.get('partid') zgstr = Partment.objects.get(partid=partid).bmzg - if zgstr ==',': - return HttpResponse(json.dumps([]),content_type="application/json") + if zgstr == ',': + return HttpResponse(json.dumps([]), content_type="application/json") else: zglist = zgstr.split(',') zglist = list(filter(None, zglist)) orderlist = [] for i in zglist: - orderlist.extend(list(User.objects.filter(userid=i).values('userid','name'))) - return HttpResponse(json.dumps(orderlist),content_type="application/json") - elif req.GET.get('a')=='getaqydatagrid': + orderlist.extend(list(User.objects.filter( + userid=i).values('userid', 'name'))) + return HttpResponse(json.dumps(orderlist), content_type="application/json") + elif req.GET.get('a') == 'getaqydatagrid': partid = req.GET.get('partid') aqystr = Partment.objects.get(partid=partid).aqy - if aqystr ==',': - return HttpResponse(json.dumps([]),content_type="application/json") + if aqystr == ',': + return HttpResponse(json.dumps([]), content_type="application/json") else: aqylist = aqystr.split(',') aqylist = list(filter(None, aqylist)) orderlist = [] for i in aqylist: - orderlist.extend(list(User.objects.filter(userid=i).values('userid','name'))) - return HttpResponse(json.dumps(orderlist),content_type="application/json") - elif req.GET.get('a')=='getbsqdatagrid': + orderlist.extend(list(User.objects.filter( + userid=i).values('userid', 'name'))) + return HttpResponse(json.dumps(orderlist), content_type="application/json") + elif req.GET.get('a') == 'getbsqdatagrid': partid = req.GET.get('partid') bsqstr = Partment.objects.get(partid=partid).bsq - if bsqstr ==',': - return HttpResponse(json.dumps([]),content_type="application/json") + if bsqstr == ',': + return HttpResponse(json.dumps([]), content_type="application/json") else: bsqlist = bsqstr.split(',') bsqlist = list(filter(None, bsqlist)) - items = User.objects.filter(userid__in=bsqlist).values('userid','name') - return HttpResponse(json.dumps(list(items)),content_type="application/json") - elif req.GET.get('a')=='addzg': + items = User.objects.filter( + userid__in=bsqlist).values('userid', 'name') + return HttpResponse(json.dumps(list(items)), content_type="application/json") + elif req.GET.get('a') == 'addzg': partid = req.GET.get('partid') users = req.POST.get('users') try: @@ -2431,18 +2709,19 @@ def parthandle(req): zglist = list(filter(None, zglist)) zglist.extend(userlist) addo = list(set(zglist)) - addo.sort(key = zglist.index) + addo.sort(key=zglist.index) zgstr = ','+','.join(addo)+',' - obj.bmzg=zgstr + obj.bmzg = zgstr obj.save() - a = Group.objects.get(grouptype=2,usecomp=Partment.objects.get(partid=getcompany(req.session['userid']))) + a = Group.objects.get(grouptype=2, usecomp=Partment.objects.get( + partid=getcompany(req.session['userid']))) for i in userlist: if User.objects.get(userid=int(i)) not in a.users.all(): a.users.add(User.objects.get(userid=int(i))) except: pass - return JsonResponse({"code":1}) - elif req.GET.get('a')=='addaqy': + return JsonResponse({"code": 1}) + elif req.GET.get('a') == 'addaqy': partid = req.GET.get('partid') users = req.POST.get('users') try: @@ -2453,18 +2732,19 @@ def parthandle(req): aqylist = list(filter(None, aqylist)) aqylist.extend(userlist) addo = list(set(aqylist)) - addo.sort(key = aqylist.index) + addo.sort(key=aqylist.index) aqystr = ','+','.join(addo)+',' - obj.aqy=aqystr + obj.aqy = aqystr obj.save() - a = Group.objects.get(grouptype=1,usecomp=Partment.objects.get(partid=getcompany(req.session['userid']))) + a = Group.objects.get(grouptype=1, usecomp=Partment.objects.get( + partid=getcompany(req.session['userid']))) for i in userlist: if User.objects.get(userid=int(i)) not in a.users.all(): a.users.add(User.objects.get(userid=int(i))) except: pass - return JsonResponse({"code":1}) - elif req.GET.get('a')=='addbsq': + return JsonResponse({"code": 1}) + elif req.GET.get('a') == 'addbsq': partid = req.GET.get('partid') users = req.POST.get('users') try: @@ -2475,56 +2755,59 @@ def parthandle(req): bsqlist = list(filter(None, bsqlist)) bsqlist.extend(userlist) addo = list(set(bsqlist)) - addo.sort(key = bsqlist.index) + addo.sort(key=bsqlist.index) bsqstr = ','+','.join(bsqlist)+',' - obj.bsq=bsqstr + obj.bsq = bsqstr obj.save() except: pass - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) elif req.GET.get('a') == 'removezg': partid = req.GET.get('partid') userid = req.GET.get('userid') - obj= Partment.objects.get(partid=partid) + obj = Partment.objects.get(partid=partid) zgstr = obj.bmzg - zgstr = zgstr.replace(','+userid+',',',') + zgstr = zgstr.replace(','+userid+',', ',') obj.bmzg = zgstr obj.save() - a = Group.objects.get(grouptype=2,usecomp=Partment.objects.get(partid=getcompany(req.session['userid']))) + a = Group.objects.get(grouptype=2, usecomp=Partment.objects.get( + partid=getcompany(req.session['userid']))) a.users.remove(User.objects.get(userid=userid)) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) elif req.GET.get('a') == 'removeaqy': partid = req.GET.get('partid') userid = req.GET.get('userid') - obj= Partment.objects.get(partid=partid) + obj = Partment.objects.get(partid=partid) aqystr = obj.aqy - aqystr = aqystr.replace(','+userid+',',',') + aqystr = aqystr.replace(','+userid+',', ',') obj.aqy = aqystr obj.save() - a = Group.objects.get(grouptype=1,usecomp=Partment.objects.get(partid=getcompany(req.session['userid']))) + a = Group.objects.get(grouptype=1, usecomp=Partment.objects.get( + partid=getcompany(req.session['userid']))) a.users.remove(User.objects.get(userid=userid)) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) elif req.GET.get('a') == 'removebsq': partid = req.GET.get('partid') userid = req.GET.get('userid') - obj= Partment.objects.get(partid=partid) + obj = Partment.objects.get(partid=partid) bsqstr = obj.bsq - bsqstr = bsqstr.replace(','+userid+',',',') + bsqstr = bsqstr.replace(','+userid+',', ',') obj.bsq = bsqstr obj.save() - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) + def dicthandle(req): - if req.GET.get('a')=='adddicth': - return render(req,'abdict.html') - elif req.GET.get('a')=='deldict': + if req.GET.get('a') == 'adddicth': + return render(req, 'abdict.html') + elif req.GET.get('a') == 'deldict': userid = req.session['userid'] dickeyid = req.GET.get('dickeyid') a = Dickey.objects.get(dickeyid=dickeyid) if userid == 8: - a.deletemark=0 + a.deletemark = 0 a.save() - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) elif User.objects.get(userid=userid).issuper == 1: companyid = getcompany(userid) nl = a.nousecomps.split(',') @@ -2532,53 +2815,55 @@ def dicthandle(req): nl = ','+','.join(list(filter(None, nl)))+',' a.nousecomps = nl a.save() - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) - elif req.GET.get('a')=='editdicth': - return render(req,'abdict.html') - elif req.GET.get('a')=='canedit': + return JsonResponse({"code": 0}) + elif req.GET.get('a') == 'editdicth': + return render(req, 'abdict.html') + elif req.GET.get('a') == 'canedit': userid = req.session['userid'] companyid = getcompany(userid) dickeyid = req.GET.get('dickeyid') a = Dickey.objects.get(dickeyid=dickeyid) if userid == 8: - return JsonResponse({"code":1}) - elif a.usecomps == ','+str(companyid)+',' and a.nousecomps == '' and User.objects.get(userid=userid).issuper==1: - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) + elif a.usecomps == ','+str(companyid)+',' and a.nousecomps == '' and User.objects.get(userid=userid).issuper == 1: + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) + return JsonResponse({"code": 0}) elif req.method == 'POST': userid = req.session['userid'] companyid = getcompany(userid) data = json.loads(req.body.decode('utf-8')) dickeyid = data['dickeyid'] - dickeyname=data['dickeyname'] - dicparent=data['dicparent'] + dickeyname = data['dickeyname'] + dicparent = data['dicparent'] detail = data['detail'] if dickeyid != '': a = Dickey.objects.get(dickeyid=dickeyid) if ',1,' in a.usecomps and companyid != '1': - return JsonResponse({"code":0}) + return JsonResponse({"code": 0}) else: a.dickeyname = dickeyname a.dicparent = Dicclass.objects.get(dicid=dicparent) a.detail = detail a.save() - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - Dickey.objects.create(dickeyname=dickeyname,dicparent=Dicclass.objects.get(dicid=dicparent),usecomps=','+companyid+',',detail=detail) - return JsonResponse({"code":1}) + Dickey.objects.create(dickeyname=dickeyname, dicparent=Dicclass.objects.get( + dicid=dicparent), usecomps=','+companyid+',', detail=detail) + return JsonResponse({"code": 1}) def pxhandle(req): - if req.GET.get('a')=='listsearch': + if req.GET.get('a') == 'listsearch': userid = req.session['userid'] companyid = getcompany(userid) - a = Train.objects.filter(usecomp=Partment.objects.get(partid=companyid)).exclude(deletemark=0) + a = Train.objects.filter(usecomp=Partment.objects.get( + partid=companyid)).exclude(deletemark=0) qssj = req.GET.get('qssj') jssj = req.GET.get('jssj') - pxbm= req.GET.get('trainpart') + pxbm = req.GET.get('trainpart') pxjb = req.GET.get('trainlevel') pxnr = req.GET.get('traincontent') if pxjb: @@ -2591,85 +2876,98 @@ def pxhandle(req): a = a.filter(starttime__gte=qssj) if jssj: a = a.filter(starttime__lte=jssj) - total=a.count() - startnum,endnum=fenye(req) - obj=a.order_by('-starttime')[startnum:endnum].values('trainnum','trainid','state','trainplace','starttime','trainname','traintype__dickeyname','teacher','lecturer__name','submituser__name','submituser__userid') - return HttpResponse(transjson(total,obj),content_type="application/json") - elif req.GET.get('a')=='detailhtml': - trainid = req.GET.get('trainid') - return render(req,'traindetail.html',{'trainid':trainid}) - elif req.GET.get('a')=='listall': - userid = req.session['userid'] - companyid = getcompany(userid) - a=Train.objects.filter(usecomp=Partment.objects.get(partid=companyid),deletemark=1).order_by('-modifytime') - total=a.count() - startnum,endnum=fenye(req) - a=a[startnum:endnum].values('trainnum','trainid','state','trainplace','starttime','trainname','traintype__dickeyname','teacher','lecturer__name','submituser__name','submituser__userid') - return HttpResponse(transjson(total,a),content_type="application/json") - elif req.GET.get('a')=='listtodo': - userid = req.session['userid'] - companyid = getcompany(userid) - a=Train.objects.filter(usecomp=Partment.objects.get(partid=companyid),deletemark=1,state=0,submituser__userid=userid).order_by('-modifytime') - total=a.count() - startnum,endnum=fenye(req) - a=a[startnum:endnum].values('trainnum','trainid','state','trainplace','starttime','trainname','traintype__dickeyname','teacher','lecturer__name','submituser__name','submituser__userid') - return HttpResponse(transjson(total,a),content_type="application/json") - elif req.GET.get('a')=='listcj': - userid = req.session['userid'] - companyid = getcompany(userid) - a = Trainuser.objects.filter(participant=User.objects.get(userid=userid),train__deletemark=1).order_by('-train__modifytime') total = a.count() - startnum,endnum = fenye(req) - a = a[startnum:endnum].values('train__trainnum','train__trainid','train__state','train__trainplace','train__starttime','train__trainname','checked','train__teacher','train__lecturer__name') - return HttpResponse(transjson(total,a),content_type="application/json") - elif req.GET.get('a')=='dqdnum': + startnum, endnum = fenye(req) + obj = a.order_by('-starttime')[startnum:endnum].values('trainnum', 'trainid', 'state', 'trainplace', 'starttime', + 'trainname', 'traintype__dickeyname', 'teacher', 'lecturer__name', 'submituser__name', 'submituser__userid') + return HttpResponse(transjson(total, obj), content_type="application/json") + elif req.GET.get('a') == 'detailhtml': + trainid = req.GET.get('trainid') + return render(req, 'traindetail.html', {'trainid': trainid}) + elif req.GET.get('a') == 'listall': userid = req.session['userid'] companyid = getcompany(userid) - dqdnum = Trainuser.objects.filter(participant=User.objects.get(userid=userid),checked=0,train__deletemark=1).count() - return JsonResponse({'code':1,'dqdnum':dqdnum}) - elif req.GET.get('a')=='detail': + a = Train.objects.filter(usecomp=Partment.objects.get( + partid=companyid), deletemark=1).order_by('-modifytime') + total = a.count() + startnum, endnum = fenye(req) + a = a[startnum:endnum].values('trainnum', 'trainid', 'state', 'trainplace', 'starttime', 'trainname', + 'traintype__dickeyname', 'teacher', 'lecturer__name', 'submituser__name', 'submituser__userid') + return HttpResponse(transjson(total, a), content_type="application/json") + elif req.GET.get('a') == 'listtodo': + userid = req.session['userid'] + companyid = getcompany(userid) + a = Train.objects.filter(usecomp=Partment.objects.get( + partid=companyid), deletemark=1, state=0, submituser__userid=userid).order_by('-modifytime') + total = a.count() + startnum, endnum = fenye(req) + a = a[startnum:endnum].values('trainnum', 'trainid', 'state', 'trainplace', 'starttime', 'trainname', + 'traintype__dickeyname', 'teacher', 'lecturer__name', 'submituser__name', 'submituser__userid') + return HttpResponse(transjson(total, a), content_type="application/json") + elif req.GET.get('a') == 'listcj': + userid = req.session['userid'] + companyid = getcompany(userid) + a = Trainuser.objects.filter(participant=User.objects.get( + userid=userid), train__deletemark=1).order_by('-train__modifytime') + total = a.count() + startnum, endnum = fenye(req) + a = a[startnum:endnum].values('train__trainnum', 'train__trainid', 'train__state', 'train__trainplace', + 'train__starttime', 'train__trainname', 'checked', 'train__teacher', 'train__lecturer__name') + return HttpResponse(transjson(total, a), content_type="application/json") + elif req.GET.get('a') == 'dqdnum': + userid = req.session['userid'] + companyid = getcompany(userid) + dqdnum = Trainuser.objects.filter(participant=User.objects.get( + userid=userid), checked=0, train__deletemark=1).count() + return JsonResponse({'code': 1, 'dqdnum': dqdnum}) + elif req.GET.get('a') == 'detail': trainid = req.GET.get('trainid') a = Train.objects.filter(trainid=trainid) - x = a.values('trainid','trainnum','state','trainplace','starttime','trainname','traintype__dickeyname','teacher','lecturer__name','submituser__name','submittime','trainlevel__dicname','traincontent__dickeyname','manlevel__dickeyname','detailcontent','participantnum','knownum','duration','material','checkqr','examtest__num','examtest__name')[0] + x = a.values('trainid', 'trainnum', 'state', 'trainplace', 'starttime', 'trainname', 'traintype__dickeyname', 'teacher', 'lecturer__name', 'submituser__name', 'submittime', 'trainlevel__dicname', + 'traincontent__dickeyname', 'manlevel__dickeyname', 'detailcontent', 'participantnum', 'knownum', 'duration', 'material', 'checkqr', 'examtest__num', 'examtest__name')[0] for key in x: if x[key] == None: x[key] = '' x['material'] = x['material'].split('?') - #对many字段单独处理 - str1=[] + # 对many字段单独处理 + str1 = [] for i in a.values('trainpart__partname'): str1.append(i['trainpart__partname']) - x['trainpart']=','.join(str1) - str2=[] + x['trainpart'] = ','.join(str1) + str2 = [] objs = Trainuser.objects.filter(train=a[0]) - detailobjs = objs.order_by('checked').values('participant__name','participant__ubelongpart__partname','checked','qdsj','isnew') + detailobjs = objs.order_by('checked').values( + 'participant__name', 'participant__ubelongpart__partname', 'checked', 'qdsj', 'isnew') for i in objs.filter(checked=1): str2.append(i.participant.name) x['participantname'] = ','.join(str2) x['participantnum'] = objs.filter(checked=1).count() x['cjrydetail'] = list(detailobjs) - return HttpResponse(json.dumps(x,cls=MyEncoder),content_type="application/json") + return HttpResponse(json.dumps(x, cls=MyEncoder), content_type="application/json") elif req.GET.get('a') == 'check': userid = req.session['userid'] trainid = req.GET.get('trainid') - obj = Trainuser.objects.filter(train=Train.objects.get(trainid=trainid),participant=User.objects.get(userid=userid)) + obj = Trainuser.objects.filter(train=Train.objects.get( + trainid=trainid), participant=User.objects.get(userid=userid)) if obj.exists(): - obj.update(checked=1,qdsj=datetime.now()) + obj.update(checked=1, qdsj=datetime.now()) else: - Trainuser.objects.create(train=Train.objects.get(trainid=trainid),participant=User.objects.get(userid=userid),checked=1,qdsj=datetime.now(),isnew=1) - return JsonResponse({"code":1}) - elif req.GET.get('a')=='exportword': + Trainuser.objects.create(train=Train.objects.get(trainid=trainid), participant=User.objects.get( + userid=userid), checked=1, qdsj=datetime.now(), isnew=1) + return JsonResponse({"code": 1}) + elif req.GET.get('a') == 'exportword': trainid = req.GET.get('trainid') - v = exportdoc('px',trainid) - return JsonResponse({"code":1,'downloadurl':v}) - elif req.GET.get('a')=='exportexcel': - #pxids=json.loads(req.body.decode())['pxids'] + v = exportdoc('px', trainid) + return JsonResponse({"code": 1, 'downloadurl': v}) + elif req.GET.get('a') == 'exportexcel': + # pxids=json.loads(req.body.decode())['pxids'] userid = req.session['userid'] companyid = getcompany(userid) - a = Train.objects.filter(usecomp=Partment.objects.get(partid=companyid)).exclude(deletemark=0) + a = Train.objects.filter(usecomp=Partment.objects.get( + partid=companyid)).exclude(deletemark=0) qssj = req.GET.get('qssj') jssj = req.GET.get('jssj') - pxbm= req.GET.get('trainpart') + pxbm = req.GET.get('trainpart') pxjb = req.GET.get('trainlevel') pxnr = req.GET.get('traincontent') if pxjb: @@ -2682,74 +2980,81 @@ def pxhandle(req): a = a.filter(starttime__gte=qssj) if jssj: a = a.filter(starttime__lte=jssj) - v = exportxlsx('px',a) - return JsonResponse({"code":1,'downloadurl':v}) - elif req.GET.get('a')=='del': - trainid=req.GET.get('trainid') + v = exportxlsx('px', a) + return JsonResponse({"code": 1, 'downloadurl': v}) + elif req.GET.get('a') == 'del': + trainid = req.GET.get('trainid') userid = req.session['userid'] a = Train.objects.get(trainid=trainid) - if User.objects.get(userid = userid).issuper == 1: - a.deletemark=0 + if User.objects.get(userid=userid).issuper == 1: + a.deletemark = 0 a.save() - return JsonResponse({"code":1}) - elif a.submituser.userid == userid and a.state==0: - a.deletemark=0 + return JsonResponse({"code": 1}) + elif a.submituser.userid == userid and a.state == 0: + a.deletemark = 0 a.save() - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) + return JsonResponse({"code": 0}) + def ylhandle(req): - if req.GET.get('a')=='listall': + if req.GET.get('a') == 'listall': userid = req.session['userid'] companyid = getcompany(userid) - startnum,endnum=fenye(req) - a=Drill.objects.filter(usecomp=Partment.objects.get(partid=companyid),deletemark=1).order_by('-starttime') + startnum, endnum = fenye(req) + a = Drill.objects.filter(usecomp=Partment.objects.get( + partid=companyid), deletemark=1).order_by('-starttime') total = a.count() - startnum,endnum=fenye(req) - a=a[startnum:endnum].values('drillnum','drillid','state','drillplace','starttime','drillname','drilltype__dickeyname','chief__name','submituser__name','submituser__userid') - return HttpResponse(transjson(total,a),content_type="application/json") - elif req.GET.get('a')=='listtodo': + startnum, endnum = fenye(req) + a = a[startnum:endnum].values('drillnum', 'drillid', 'state', 'drillplace', 'starttime', + 'drillname', 'drilltype__dickeyname', 'chief__name', 'submituser__name', 'submituser__userid') + return HttpResponse(transjson(total, a), content_type="application/json") + elif req.GET.get('a') == 'listtodo': userid = req.session['userid'] companyid = getcompany(userid) - a=Drill.objects.filter(usecomp=Partment.objects.get(partid=companyid),deletemark=1,submituser__userid=userid,state=0).order_by('-starttime') + a = Drill.objects.filter(usecomp=Partment.objects.get( + partid=companyid), deletemark=1, submituser__userid=userid, state=0).order_by('-starttime') total = a.count() - startnum,endnum=fenye(req) - a=a[startnum:endnum].values('drillnum','drillid','state','drillplace','starttime','drillname','drilltype__dickeyname','chief__name','submituser__name','submituser__userid') - total=a.count() - return HttpResponse(transjson(total,a),content_type="application/json") - elif req.GET.get('a')=='detailhtml': - drillid=req.GET.get('drillid') - return render(req,'drilldetail.html',{'drillid':drillid}) - elif req.GET.get('a')=='detail': - drillid=req.GET.get('drillid') + startnum, endnum = fenye(req) + a = a[startnum:endnum].values('drillnum', 'drillid', 'state', 'drillplace', 'starttime', + 'drillname', 'drilltype__dickeyname', 'chief__name', 'submituser__name', 'submituser__userid') + total = a.count() + return HttpResponse(transjson(total, a), content_type="application/json") + elif req.GET.get('a') == 'detailhtml': + drillid = req.GET.get('drillid') + return render(req, 'drilldetail.html', {'drillid': drillid}) + elif req.GET.get('a') == 'detail': + drillid = req.GET.get('drillid') a = Drill.objects.filter(drillid=drillid) - x = a.values('drillid','drillnum','state','drillplace','starttime','drilllevel__dicname','drillname','drilltype__dickeyname','chief__name','submituser__name','submittime','drillcontent__dickeyname','detailcontent','participantnum','knownum','material')[0] + x = a.values('drillid', 'drillnum', 'state', 'drillplace', 'starttime', 'drilllevel__dicname', 'drillname', 'drilltype__dickeyname', + 'chief__name', 'submituser__name', 'submittime', 'drillcontent__dickeyname', 'detailcontent', 'participantnum', 'knownum', 'material')[0] for key in x: if x[key] == None: x[key] = '' x['material'] = x['material'].split('?') - #对many字段单独处理 - str1=[] + # 对many字段单独处理 + str1 = [] for i in a.values('drillpart__partname'): str1.append(i['drillpart__partname']) - x['drillpart']=','.join(str1) - str2=[] + x['drillpart'] = ','.join(str1) + str2 = [] for i in a.values('participant__name'): str2.append(i['participant__name']) - x['participantname']=','.join(str2) + x['participantname'] = ','.join(str2) return JsonResponse(x) - elif req.GET.get('a')=='exportword': + elif req.GET.get('a') == 'exportword': drillid = req.GET.get('drillid') - v = exportdoc('yl',drillid) - return JsonResponse({"code":1,'downloadurl':v}) - elif req.GET.get('a')=='exportexcel': + v = exportdoc('yl', drillid) + return JsonResponse({"code": 1, 'downloadurl': v}) + elif req.GET.get('a') == 'exportexcel': userid = req.session['userid'] companyid = getcompany(userid) - a = Drill.objects.filter(usecomp=Partment.objects.get(partid=companyid),deletemark=1) + a = Drill.objects.filter(usecomp=Partment.objects.get( + partid=companyid), deletemark=1) qssj = req.GET.get('qssj') jssj = req.GET.get('jssj') - ylbm= req.GET.get('drillpart') + ylbm = req.GET.get('drillpart') yljb = req.GET.get('drilllevel') ylnr = req.GET.get('drillcontent') if yljb: @@ -2762,29 +3067,30 @@ def ylhandle(req): a = a.filter(starttime__gte=qssj) if jssj: a = a.filter(starttime__lte=jssj) - v = exportxlsx('yl',a) - return JsonResponse({"code":1,'downloadurl':v}) - elif req.GET.get('a')=='del': - drillid=req.GET.get('drillid') + v = exportxlsx('yl', a) + return JsonResponse({"code": 1, 'downloadurl': v}) + elif req.GET.get('a') == 'del': + drillid = req.GET.get('drillid') userid = req.session['userid'] a = Drill.objects.get(drillid=drillid) - if User.objects.get(userid = userid).issuper == 1: - a.deletemark=0 + if User.objects.get(userid=userid).issuper == 1: + a.deletemark = 0 a.save() - return JsonResponse({"code":1}) - elif a.submituser.userid == userid and a.state==0: - a.deletemark=0 + return JsonResponse({"code": 1}) + elif a.submituser.userid == userid and a.state == 0: + a.deletemark = 0 a.save() - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) - elif req.GET.get('a')=='listsearch': + return JsonResponse({"code": 0}) + elif req.GET.get('a') == 'listsearch': userid = req.session['userid'] companyid = getcompany(userid) - a = Drill.objects.filter(usecomp=Partment.objects.get(partid=companyid),deletemark=1) + a = Drill.objects.filter(usecomp=Partment.objects.get( + partid=companyid), deletemark=1) qssj = req.GET.get('qssj') jssj = req.GET.get('jssj') - ylbm= req.GET.get('drillpart') + ylbm = req.GET.get('drillpart') yljb = req.GET.get('drilllevel') ylnr = req.GET.get('drillcontent') if yljb: @@ -2797,10 +3103,12 @@ def ylhandle(req): a = a.filter(starttime__gte=qssj) if jssj: a = a.filter(starttime__lte=jssj) - total=a.count() - startnum,endnum=fenye(req) - obj=a.order_by('-starttime')[startnum:endnum].values('drillnum','drillid','state','drillplace','starttime','drillname','drilltype__dickeyname','chief__name','submituser__name','submituser__userid') - return HttpResponse(transjson(total,a),content_type="application/json") + total = a.count() + startnum, endnum = fenye(req) + obj = a.order_by('-starttime')[startnum:endnum].values('drillnum', 'drillid', 'state', 'drillplace', + 'starttime', 'drillname', 'drilltype__dickeyname', 'chief__name', 'submituser__name', 'submituser__userid') + return HttpResponse(transjson(total, a), content_type="application/json") + def gchandle(req): a = req.GET.get('a') @@ -2823,303 +3131,355 @@ def gchandle(req): obj.otherunsafe = gcdata['otherunsafe'] if 'safecontent' in gcdata: obj.safecontent = gcdata['safecontent'] - obj.looknum='GC'+time.strftime('%Y%m%d%H%M%S') + obj.looknum = 'GC'+time.strftime('%Y%m%d%H%M%S') obj.usecomp = Partment.objects.get(partid=companyid) if 'lookimg' in gcdata: obj.lookimg = '?'.join(gcdata['lookimg']) obj.save() if 'lookers' in gcdata: - ulist=gcdata['lookers'].split(',') + ulist = gcdata['lookers'].split(',') for i in ulist: - x=User.objects.get(userid=i) + x = User.objects.get(userid=i) obj.lookers.add(x) if 'unsafe' in gcdata: olist = gcdata['unsafe'] for i in olist: if i != 0: dickey = Dickey.objects.get(dickeyid=i) - m = Unsafes(observe = obj,unsafedickey=dickey,unsafedicclass=dickey.dicparent) + m = Unsafes(observe=obj, unsafedickey=dickey, + unsafedicclass=dickey.dicparent) m.save() yjjs_gc.delay(companyid) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) elif a == 'listall': - startnum,endnum=fenye(req) - a = Observe.objects.filter(usecomp=Partment.objects.get(partid=companyid),deletemark=1).order_by('-looktime') + startnum, endnum = fenye(req) + a = Observe.objects.filter(usecomp=Partment.objects.get( + partid=companyid), deletemark=1).order_by('-looktime') total = a.count() - a = a[startnum:endnum].values('lookid','looknum','lookplace','actname','looktime','looker__name','lookeder','otherunsafe') + a = a[startnum:endnum].values('lookid', 'looknum', 'lookplace', + 'actname', 'looktime', 'looker__name', 'lookeder', 'otherunsafe') for i in a: - objs = Observeto.objects.filter(observe__lookid=i['lookid'],user__userid = userid) + objs = Observeto.objects.filter( + observe__lookid=i['lookid'], user__userid=userid) if objs.exists(): - i['read']=1 + i['read'] = 1 i['readtime'] = objs[0].submittime else: - i['read']=0 - return HttpResponse(transjson(total,a),content_type="application/json") + i['read'] = 0 + return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'listself': - startnum,endnum=fenye(req) - a = Observe.objects.filter(looker__userid=userid,deletemark=1).order_by('-looktime') + startnum, endnum = fenye(req) + a = Observe.objects.filter( + looker__userid=userid, deletemark=1).order_by('-looktime') total = a.count() - a = a[startnum:endnum].values('lookid','looknum','lookplace','actname','looktime','looker__name','lookeder','otherunsafe') - return HttpResponse(transjson(total,a),content_type="application/json") + a = a[startnum:endnum].values('lookid', 'looknum', 'lookplace', + 'actname', 'looktime', 'looker__name', 'lookeder', 'otherunsafe') + return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'del': - lookid =req.GET.get('lookid') + lookid = req.GET.get('lookid') a = Observe.objects.get(lookid=lookid) - if User.objects.get(userid = userid).issuper == 1: - a.deletemark=0 + if User.objects.get(userid=userid).issuper == 1: + a.deletemark = 0 a.save() yjjs_gc.delay(companyid) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) + return JsonResponse({"code": 0}) elif a == 'listsearch': - startnum,endnum=fenye(req) - a = Observe.objects.filter(usecomp=Partment.objects.get(partid=companyid),deletemark=1) - #print(req.GET.get('qssj')) + startnum, endnum = fenye(req) + a = Observe.objects.filter( + usecomp=Partment.objects.get(partid=companyid), deletemark=1) + # print(req.GET.get('qssj')) if req.GET.get('gcr'): a = a.filter(looker__userid=req.GET.get('gcr')) if req.GET.get('gcbm'): - parts = Partment.objects.filter(partlink__contains=','+req.GET.get('gcbm')+',')|Partment.objects.filter(partid=req.GET.get('gcbm')) - a = a.filter(lookpart__in = parts) + parts = Partment.objects.filter(partlink__contains=','+req.GET.get( + 'gcbm')+',') | Partment.objects.filter(partid=req.GET.get('gcbm')) + a = a.filter(lookpart__in=parts) if req.GET.get('qssj'): a = a.filter(looktime__gte=req.GET.get('qssj')) if req.GET.get('jssj'): a = a.filter(looktime__lte=req.GET.get('jssj')) total = a.count() - startnum,endnum=fenye(req) - a = a.order_by('-looktime')[startnum:endnum].values('lookid','looknum','lookplace','actname','looktime','looker__name','lookeder') - return HttpResponse(transjson(total,a),content_type="application/json") + startnum, endnum = fenye(req) + a = a.order_by('-looktime')[startnum:endnum].values('lookid', 'looknum', + 'lookplace', 'actname', 'looktime', 'looker__name', 'lookeder') + return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'exportexcel': - a = Observe.objects.filter(usecomp=Partment.objects.get(partid=companyid),deletemark=1) + a = Observe.objects.filter( + usecomp=Partment.objects.get(partid=companyid), deletemark=1) if req.GET.get('gcr'): a = a.filter(looker__userid=req.GET.get('gcr')) if req.GET.get('gcbm'): - parts = Partment.objects.filter(partlink__contains=','+req.GET.get('gcbm')+',')|Partment.objects.filter(partid=req.GET.get('gcbm')) - a = a.filter(lookpart__in = parts) + parts = Partment.objects.filter(partlink__contains=','+req.GET.get( + 'gcbm')+',') | Partment.objects.filter(partid=req.GET.get('gcbm')) + a = a.filter(lookpart__in=parts) if req.GET.get('qssj'): a = a.filter(looktime__gte=req.GET.get('qssj')) if req.GET.get('jssj'): a = a.filter(looktime__lte=req.GET.get('jssj')) - res = exportxlsx('gc',a) + res = exportxlsx('gc', a) return res elif a == 'detailhtml': - return render(req,'observedetail.html',{'lookid':req.GET.get('lookid')}) + return render(req, 'observedetail.html', {'lookid': req.GET.get('lookid')}) elif a == 'detail': - lookid=req.GET.get('lookid') + lookid = req.GET.get('lookid') a = Observe.objects.filter(lookid=lookid) - x = a.values('lookid','looknum','lookplace','actname','looktime','looker__name','lookeder','otherunsafe','safecontent','lookpart__partname','submittime','lookimg','looktime2')[0] - b = Unsafes.objects.filter(observe=a[0]).values('unsafedicclass__dicname','unsafedickey__dickeyname') + x = a.values('lookid', 'looknum', 'lookplace', 'actname', 'looktime', 'looker__name', 'lookeder', + 'otherunsafe', 'safecontent', 'lookpart__partname', 'submittime', 'lookimg', 'looktime2')[0] + b = Unsafes.objects.filter(observe=a[0]).values( + 'unsafedicclass__dicname', 'unsafedickey__dickeyname') x['gcnr'] = list(b) if x['lookimg']: x['lookimg'] = x['lookimg'].split('?') else: - x['lookimg']=[] - x['lookers']=[] + x['lookimg'] = [] + x['lookers'] = [] for i in a[0].lookers.all(): x['lookers'].append(i.name) - x['lookers']=','.join(x['lookers']) - Observeto.objects.get_or_create(observe=a[0], user=User.objects.get(userid=req.session['userid']),defaults={'read': 1}) - return HttpResponse(json.dumps(x,cls=MyEncoder),content_type="application/json") + x['lookers'] = ','.join(x['lookers']) + Observeto.objects.get_or_create(observe=a[0], user=User.objects.get( + userid=req.session['userid']), defaults={'read': 1}) + return HttpResponse(json.dumps(x, cls=MyEncoder), content_type="application/json") elif a == 'getdics': - gcdict={} - gclist=[] - objs = Dicclass.objects.filter(parentid=23).order_by('dicid') #行为观察字典集合 + gcdict = {} + gclist = [] + objs = Dicclass.objects.filter( + parentid=23).order_by('dicid') # 行为观察字典集合 for i in objs: - x={'value':i.dicid,'text':i.dicname} - obj = Dickey.objects.filter(dicparent=i.dicid,deletemark=1) - obj = (obj.filter(usecomps__contains=',1,')|obj.filter(usecomps__contains=','+companyid+',')).exclude(nousecomps__contains=','+companyid+',').order_by('dickeyid') - x0= [] + x = {'value': i.dicid, 'text': i.dicname} + obj = Dickey.objects.filter(dicparent=i.dicid, deletemark=1) + obj = (obj.filter(usecomps__contains=',1,') | obj.filter(usecomps__contains=',' + + companyid+',')).exclude(nousecomps__contains=','+companyid+',').order_by('dickeyid') + x0 = [] for i in obj: - x0.append({'value':i.dickeyid,'text':i.dickeyname}) - x['child']=x0 + x0.append({'value': i.dickeyid, 'text': i.dickeyname}) + x['child'] = x0 gclist.append(x) - gcdict['data']=gclist + gcdict['data'] = gclist return JsonResponse(gcdict) elif a == 'noreadnum': - a = Observe.objects.filter(usecomp=Partment.objects.get(partid=companyid),deletemark=1).count() - b = Observeto.objects.filter(user__userid=userid,observe__deletemark=1).count() + a = Observe.objects.filter(usecomp=Partment.objects.get( + partid=companyid), deletemark=1).count() + b = Observeto.objects.filter( + user__userid=userid, observe__deletemark=1).count() noread = a-b - return JsonResponse({'noread':noread}) + return JsonResponse({'noread': noread}) elif a == 'exportword': data = json.loads(req.body.decode('utf-8')) - url = exportdoc2('gc',data) - return JsonResponse({"code":1,"downloadurl":url}) + url = exportdoc2('gc', data) + return JsonResponse({"code": 1, "downloadurl": url}) + def observepic(req): - userid = req.session['userid'] - companyid = getcompany(userid) + userid = req.session['userid'] + companyid = getcompany(userid) - if req.GET.get('a')=='gclxt':#观察类型饼图 + if req.GET.get('a') == 'gclxt': # 观察类型饼图 year = int(req.GET.get('year')) month = int(req.GET.get('month')) - first_day,first_day_of_next_month = gettime(datetime(year,month,1)) + first_day, first_day_of_next_month = gettime(datetime(year, month, 1)) if req.GET.get('part'): partid = req.GET.get('part') else: partid = companyid - parts = Partment.objects.filter(Q(partid=partid) | Q(partlink__contains=',' + str(partid) + ',')) - a = Observe.objects.filter(lookpart__in=parts,deletemark=1,looktime__range=(first_day, first_day_of_next_month)) - value=[] - key=[] + parts = Partment.objects.filter(Q(partid=partid) | Q( + partlink__contains=',' + str(partid) + ',')) + a = Observe.objects.filter(lookpart__in=parts, deletemark=1, looktime__range=( + first_day, first_day_of_next_month)) + value = [] + key = [] for i in Dicclass.objects.filter(parentid__dicid=23): x = i.dicname - y = Unsafes.objects.filter(observe__in=a,unsafedicclass=i).count() + y = Unsafes.objects.filter(observe__in=a, unsafedicclass=i).count() key.append(x) - value.append({'value':y,'name':x}) - return JsonResponse({'code':1,'key':key,'value':value}) - elif req.GET.get('a')=='gclzx':#观察类型折线图 - year = int(req.GET.get('year')) - months = [1,2,3,4,5,6,7,8,9,10,11,12] - userfy=[]#人员反映 - userwz=[]#员工的位置 - grfh=[]#个人防护装备 - gjhsb=[]#工具和设备 - cxhbz=[]#程序和标准 - rtgcx=[]#人体工程学 - hjzj=[]#环境整洁 + value.append({'value': y, 'name': x}) + return JsonResponse({'code': 1, 'key': key, 'value': value}) + elif req.GET.get('a') == 'gclzx': # 观察类型折线图 + year = int(req.GET.get('year')) + months = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + userfy = [] # 人员反映 + userwz = [] # 员工的位置 + grfh = [] # 个人防护装备 + gjhsb = [] # 工具和设备 + cxhbz = [] # 程序和标准 + rtgcx = [] # 人体工程学 + hjzj = [] # 环境整洁 - for month in months: - first_day,first_day_of_next_month = gettime(datetime(year,month,1)) - if req.GET.get('part'): + for month in months: + first_day, first_day_of_next_month = gettime( + datetime(year, month, 1)) + if req.GET.get('part'): partid = req.GET.get('part') - else: - partid = companyid - parts = Partment.objects.filter(Q(partid=partid) | Q(partlink__contains=',' + str(partid) + ',')) - a = Observe.objects.filter(lookpart__in=parts,deletemark=1,looktime__range=(first_day, first_day_of_next_month)) - for i in Dicclass.objects.filter(parentid__dicid=23): - if i.dicid==24: - userfy.append(Unsafes.objects.filter(observe__in=a,unsafedicclass=i).count()) - elif i.dicid==25: - userwz.append(Unsafes.objects.filter(observe__in=a,unsafedicclass=i).count()) - elif i.dicid==26: - grfh.append(Unsafes.objects.filter(observe__in=a,unsafedicclass=i).count()) - elif i.dicid==27: - gjhsb.append(Unsafes.objects.filter(observe__in=a,unsafedicclass=i).count()) - elif i.dicid==28: - cxhbz.append(Unsafes.objects.filter(observe__in=a,unsafedicclass=i).count()) - elif i.dicid==29: - rtgcx.append(Unsafes.objects.filter(observe__in=a,unsafedicclass=i).count()) - elif i.dicid==30: - hjzj.append(Unsafes.objects.filter(observe__in=a,unsafedicclass=i).count()) + else: + partid = companyid + parts = Partment.objects.filter(Q(partid=partid) | Q( + partlink__contains=',' + str(partid) + ',')) + a = Observe.objects.filter(lookpart__in=parts, deletemark=1, looktime__range=( + first_day, first_day_of_next_month)) + for i in Dicclass.objects.filter(parentid__dicid=23): + if i.dicid == 24: + userfy.append(Unsafes.objects.filter( + observe__in=a, unsafedicclass=i).count()) + elif i.dicid == 25: + userwz.append(Unsafes.objects.filter( + observe__in=a, unsafedicclass=i).count()) + elif i.dicid == 26: + grfh.append(Unsafes.objects.filter( + observe__in=a, unsafedicclass=i).count()) + elif i.dicid == 27: + gjhsb.append(Unsafes.objects.filter( + observe__in=a, unsafedicclass=i).count()) + elif i.dicid == 28: + cxhbz.append(Unsafes.objects.filter( + observe__in=a, unsafedicclass=i).count()) + elif i.dicid == 29: + rtgcx.append(Unsafes.objects.filter( + observe__in=a, unsafedicclass=i).count()) + elif i.dicid == 30: + hjzj.append(Unsafes.objects.filter( + observe__in=a, unsafedicclass=i).count()) + return JsonResponse({'code': 1, 'months': months, 'userfy': userfy, 'userwz': userwz, 'grfh': grfh, 'gjhsb': gjhsb, 'cxhbz': cxhbz, 'rtgcx': rtgcx, 'hjzj': hjzj, }) + elif req.GET.get('a') == 'gclxbg': + userid = req.session['userid'] + companyid = getcompany(userid) + a = Observe.objects.filter( + usecomp=Partment.objects.get(partid=companyid), deletemark=1) - return JsonResponse({'code':1,'months':months,'userfy':userfy,'userwz':userwz,'grfh':grfh,'gjhsb':gjhsb,'cxhbz':cxhbz,'rtgcx':rtgcx,'hjzj':hjzj,}) - elif req.GET.get('a')=='gclxbg': - userid = req.session['userid'] - companyid = getcompany(userid) - a = Observe.objects.filter(usecomp=Partment.objects.get(partid=companyid),deletemark=1) - - if req.GET.get('qssj'):#开始时间 + if req.GET.get('qssj'): # 开始时间 a = a.filter(looktime__gte=req.GET.get('qssj')) - if req.GET.get('jssj'):#结束时间 + if req.GET.get('jssj'): # 结束时间 a = a.filter(looktime__lte=req.GET.get('jssj')) - if req.GET.get('fxbm'): + if req.GET.get('fxbm'): gcbm = req.GET.get('fxbm') - parts = Partment.objects.filter(partlink__contains=',' + gcbm + ',')|Partment.objects.filter(partid=gcbm) + parts = Partment.objects.filter( + partlink__contains=',' + gcbm + ',') | Partment.objects.filter(partid=gcbm) a = a.filter(lookpart__in=parts) - total = a.count() - objs = a.values('looker__userid','looker__name','lookpart__partname').annotate(number = Count('looker')).order_by('-number') - return HttpResponse(transjson(total,objs),content_type="application/json") - + total = a.count() + objs = a.values('looker__userid', 'looker__name', 'lookpart__partname').annotate( + number=Count('looker')).order_by('-number') + return HttpResponse(transjson(total, objs), content_type="application/json") def dicchandle(req): a = req.GET.get('a') if a == 'tree': - a=Dicclass.objects.exclude(dicid=1).order_by('dicid').annotate(id=F('dicid'),parentId=F('parentid'),name=F('dicname')).values('id','parentId','name') - return HttpResponse(json.dumps(list(a)),content_type="application/json") + a = Dicclass.objects.exclude(dicid=1).order_by('dicid').annotate(id=F( + 'dicid'), parentId=F('parentid'), name=F('dicname')).values('id', 'parentId', 'name') + return HttpResponse(json.dumps(list(a)), content_type="application/json") + def bwlogin2(req): if req.method == 'GET': try: code = req.GET.get('code') except: - return render(req,'bindwechat2.html',{'msg':'还未绑定公众号!'})#还未关注公众号 - content = requests.get('https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx4d75244c1b980b5b&secret=edf7d23a457fb4df5ad47eeb9d4b7a39&code='+code+'&grant_type=authorization_code').content.decode('utf-8') + # 还未关注公众号 + return render(req, 'bindwechat2.html', {'msg': '还未绑定公众号!'}) + content = requests.get('https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx4d75244c1b980b5b&secret=edf7d23a457fb4df5ad47eeb9d4b7a39&code=' + + code+'&grant_type=authorization_code').content.decode('utf-8') tokendict = json.loads(content) openid = tokendict['openid'] access_token = tokendict['access_token'] - userinfo = requests.get('https://api.weixin.qq.com/sns/userinfo?access_token='+access_token+'&openid='+openid+'&lang=zh_CN').content.decode('utf-8')#拉取用户信息 + userinfo = requests.get('https://api.weixin.qq.com/sns/userinfo?access_token=' + + access_token+'&openid='+openid+'&lang=zh_CN').content.decode('utf-8') # 拉取用户信息 userinfo = json.loads(userinfo) nickname = userinfo['nickname'] headimgurl = userinfo['headimgurl'] - return render(req,'bwlogin2.html',{'openid':openid,'nickname':nickname,'headimgurl':headimgurl}) + return render(req, 'bwlogin2.html', {'openid': openid, 'nickname': nickname, 'headimgurl': headimgurl}) else: username = req.POST.get('username') password = req.POST.get('password') openid = req.POST.get('openid') nickname = req.POST.get('nickname') headimgurl = req.POST.get('headimgurl') - user = User.objects.filter(username= username,deletemark=1) + user = User.objects.filter(username=username, deletemark=1) if user.exists(): - if check_password(password,user[0].epassword): - mpuser = User.objects.filter(openid=openid).exclude(username = username) + if check_password(password, user[0].epassword): + mpuser = User.objects.filter( + openid=openid).exclude(username=username) if mpuser.exists(): - return render(req,'bindwechat.html',{'msg':'您的微信已绑定平台下'+mpuser[0].username+'账号,不可重复绑定,请先至pc端解绑!','code':0}) #已绑定其他账号 + # 已绑定其他账号 + return render(req, 'bindwechat.html', {'msg': '您的微信已绑定平台下'+mpuser[0].username+'账号,不可重复绑定,请先至pc端解绑!', 'code': 0}) else: if user[0].openid == '0' or user[0].openid == None or user[0].openid == '': - user.update(openid=openid,headimgurl=headimgurl,nickname=nickname) - return render(req,'bindwechat.html',{'msg':'绑定成功,请刷新电脑端浏览器!','code':1}) + user.update(openid=openid, + headimgurl=headimgurl, nickname=nickname) + return render(req, 'bindwechat.html', {'msg': '绑定成功,请刷新电脑端浏览器!', 'code': 1}) else: if user[0].openid == openid: - return render(req,'bindwechat.html',{'msg':'绑定成功,请刷新电脑端浏览器!','code':1}) + return render(req, 'bindwechat.html', {'msg': '绑定成功,请刷新电脑端浏览器!', 'code': 1}) else: - return render(req,'bindwechat.html',{'msg':'该平台账号已绑定昵称为'+user[0].nickname+'的微信,不可重复绑定,请先至pc端解绑!','code':0}) #已绑定其他账号 + # 已绑定其他账号 + return render(req, 'bindwechat.html', {'msg': '该平台账号已绑定昵称为'+user[0].nickname+'的微信,不可重复绑定,请先至pc端解绑!', 'code': 0}) else: - return render(req,'bwlogin.html',{'msg':'密码错误'}) + return render(req, 'bwlogin.html', {'msg': '密码错误'}) else: - return render(req,'bwlogin.html',{'msg':'用户不存在或已禁用'}) + return render(req, 'bwlogin.html', {'msg': '用户不存在或已禁用'}) + def bwlogin(req): if req.method == 'GET': try: code = req.GET.get('code') except: - return render(req,'bindwechat.html',{'msg':'还未绑定公众号!'})#还未关注公众号 - content = requests.get('https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx4d75244c1b980b5b&secret=edf7d23a457fb4df5ad47eeb9d4b7a39&code='+code+'&grant_type=authorization_code').content.decode('utf-8') + # 还未关注公众号 + return render(req, 'bindwechat.html', {'msg': '还未绑定公众号!'}) + content = requests.get('https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx4d75244c1b980b5b&secret=edf7d23a457fb4df5ad47eeb9d4b7a39&code=' + + code+'&grant_type=authorization_code').content.decode('utf-8') tokendict = json.loads(content) openid = tokendict['openid'] access_token = tokendict['access_token'] mpuser = User.objects.filter(openid=openid) if mpuser.exists(): - return render(req,'bindwechat.html',{'msg':'您的微信已绑定平台下'+mpuser[0].username+'账号,不可重复绑定,可先至pc端解绑!','code':0}) #已绑定账号 - userinfo = requests.get('https://api.weixin.qq.com/sns/userinfo?access_token='+access_token+'&openid='+openid+'&lang=zh_CN').content.decode('utf-8')#拉取用户信息 + # 已绑定账号 + return render(req, 'bindwechat.html', {'msg': '您的微信已绑定平台下'+mpuser[0].username+'账号,不可重复绑定,可先至pc端解绑!', 'code': 0}) + userinfo = requests.get('https://api.weixin.qq.com/sns/userinfo?access_token=' + + access_token+'&openid='+openid+'&lang=zh_CN').content.decode('utf-8') # 拉取用户信息 userinfo = json.loads(userinfo) nickname = userinfo['nickname'] headimgurl = userinfo['headimgurl'] - return render(req,'bwlogin.html',{'openid':openid,'nickname':nickname,'headimgurl':headimgurl}) + return render(req, 'bwlogin.html', {'openid': openid, 'nickname': nickname, 'headimgurl': headimgurl}) else: username = req.POST.get('username') password = req.POST.get('password') openid = req.POST.get('openid') nickname = req.POST.get('nickname') headimgurl = req.POST.get('headimgurl') - user = User.objects.filter(username = username,deletemark=1) + user = User.objects.filter(username=username, deletemark=1) if user.exists(): - if check_password(password,user[0].epassword): - User.objects.filter(openid=openid).update(openid=None,headimgurl=None,nickname=None) - user.update(openid=openid,headimgurl=headimgurl,nickname=nickname) - return render(req,'bindwechat.html',{'msg':'绑定成功,请刷新电脑端浏览器!','code':1}) + if check_password(password, user[0].epassword): + User.objects.filter(openid=openid).update( + openid=None, headimgurl=None, nickname=None) + user.update(openid=openid, headimgurl=headimgurl, + nickname=nickname) + return render(req, 'bindwechat.html', {'msg': '绑定成功,请刷新电脑端浏览器!', 'code': 1}) else: - return render(req,'bwlogin.html',{'msg':'密码错误'}) + return render(req, 'bwlogin.html', {'msg': '密码错误'}) else: - return render(req,'bwlogin.html',{'msg':'用户不存在或已禁用'}) - + return render(req, 'bwlogin.html', {'msg': '用户不存在或已禁用'}) def unbindwechat(req): - userid=req.session['userid'] - User.objects.filter(userid=userid).update(openid=None,headimgurl=None,nickname=None,mpopenid=None) - return JsonResponse({"code":1}) + userid = req.session['userid'] + User.objects.filter(userid=userid).update( + openid=None, headimgurl=None, nickname=None, mpopenid=None) + return JsonResponse({"code": 1}) + def unbindmp(req): - userid=req.session['userid'] - User.objects.filter(userid=userid).update(openid=None,headimgurl=None,nickname=None,mpopenid=None) - return JsonResponse({"code":1}) + userid = req.session['userid'] + User.objects.filter(userid=userid).update( + openid=None, headimgurl=None, nickname=None, mpopenid=None) + return JsonResponse({"code": 1}) + def vewechat(req): return HttpResponse('201810170853050zbwtyaxirqeb757umcehktirlemh2ib10kcdovka13hchyf4s', content_type="text/plain") + def minip_px(req): f = StringIO() f.write('86beeba7de3c84c26244f19287f49a03') @@ -3128,13 +3488,15 @@ def minip_px(req): res.write(f.getvalue()) return res + def mplogin(req): res = req.body.decode('utf-8') try: code = req.POST.get('code') except: code = json.loads(res)['code'] - info = requests.get('https://api.weixin.qq.com/sns/jscode2session?appid=wx5c39b569f01c27db&secret=68762892f8df2b4a0b1940c5250a8dc0&js_code='+code+'&grant_type=authorization_code').content.decode('utf-8') + info = requests.get('https://api.weixin.qq.com/sns/jscode2session?appid=wx5c39b569f01c27db&secret=68762892f8df2b4a0b1940c5250a8dc0&js_code=' + + code+'&grant_type=authorization_code').content.decode('utf-8') info = json.loads(info) mpopenid = info['openid'] session_key = info['session_key'] @@ -3144,35 +3506,37 @@ def mplogin(req): username = a.username req.session['userid'] = userid # print(req.session,req.COOKIES) - return JsonResponse({"code":1,'userid':userid,'username':username,'mpopenid':mpopenid}) + return JsonResponse({"code": 1, 'userid': userid, 'username': username, 'mpopenid': mpopenid}) else: - return JsonResponse({"code":0,'mpopenid':mpopenid}) + return JsonResponse({"code": 0, 'mpopenid': mpopenid}) + def bindmp(req): username = req.POST.get('username') password = req.POST.get('password') mpopenid = req.POST.get('mpopenid') - #print(username,password,mpopenid) - user = User.objects.filter(username = username,deletemark=1) + # print(username,password,mpopenid) + user = User.objects.filter(username=username, deletemark=1) if user.exists(): - if check_password(password,user[0].epassword): + if check_password(password, user[0].epassword): user.update(mpopenid=mpopenid) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) + return JsonResponse({"code": 0}) else: - return JsonResponse({"code":0}) + return JsonResponse({"code": 0}) + def setup(req): if req.GET.get('a') == 'setuph': userid = req.session['userid'] companyid = getcompany(userid) - obj = Yjsetup.objects.filter(usecomp__partid = companyid).values() - return render(req,'setup.html',obj[0]) + obj = Yjsetup.objects.filter(usecomp__partid=companyid).values() + return render(req, 'setup.html', obj[0]) elif req.GET.get('a') == 'setup': userid = req.session['userid'] companyid = getcompany(userid) - obj = Yjsetup.objects.filter(usecomp__partid = companyid).values() + obj = Yjsetup.objects.filter(usecomp__partid=companyid).values() #a = {'total':total,'rows':list(obj),'code':1} #jsondata = json.dumps(a,cls=MyEncoder) return JsonResponse(obj[0]) @@ -3193,30 +3557,34 @@ def setup(req): pxxgqz = req.POST.get('pxxgqz') yldjqz = req.POST.get('yldjqz') ylxgqz = req.POST.get('ylxgqz') - Yjsetup.objects.filter(yjsetupid=yjsetupid).update(monthyhavg=monthyhavg,safev=safev,warnv=warnv,alertv=alertv,maxv=maxv, - yhpgqz=yhpgqz,yhdjqz=yhdjqz,yhsblqz=yhsblqz,yhzglqz=yhzglqz,pxdjqz=pxdjqz,pxxgqz=pxxgqz,yldjqz=yldjqz,ylxgqz=ylxgqz - ) - return JsonResponse({"code":1}) + Yjsetup.objects.filter(yjsetupid=yjsetupid).update(monthyhavg=monthyhavg, safev=safev, warnv=warnv, alertv=alertv, maxv=maxv, + yhpgqz=yhpgqz, yhdjqz=yhdjqz, yhsblqz=yhsblqz, yhzglqz=yhzglqz, pxdjqz=pxdjqz, pxxgqz=pxxgqz, yldjqz=yldjqz, ylxgqz=ylxgqz + ) + return JsonResponse({"code": 1}) + + def test(req): print(req.body) print(json.loads(req.body.decode('utf-8'))['yhtp']) + def importusers(req): companyid = req.GET.get('companyid') drusers(companyid) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) + @apicheck_login def apicompany(req): - if int(req.session.get('userid'))==8: + if int(req.session.get('userid')) == 8: a = req.GET.get('a') - menurights = '11,1,2,3,4,5,6,7,8,9,10,12,13,15,16,17,18,19,20,21,22,23,24,28,29,32,36,46,47,48,50'#菜单编码 - if a=='add': + menurights = '11,1,2,3,4,5,6,7,8,9,10,12,13,15,16,17,18,19,20,21,22,23,24,28,29,32,36,46,47,48,50' # 菜单编码 + if a == 'add': admin = req.GET.get('admin') company = req.GET.get('company') y = Partment() if Partment.objects.filter(partname=company).exists(): - return JsonResponse({'code':0}) + return JsonResponse({'code': 0}) else: y.partname = company y.partlink = ',' @@ -3234,17 +3602,24 @@ def apicompany(req): y.bmzg = ','+str(x.userid)+',' y.save() part = Partment.objects.get(partid=y.partid) - Group.objects.create(groupname='超管',grouptype=0,usecomp=part,menulink=menurights) - Group.objects.create(groupname='安全员',grouptype=1,usecomp=part,menulink=menurights) - Group.objects.create(groupname='全体用户',grouptype=3,usecomp=part,menulink=menurights) - z = Group(groupname='主管',grouptype=2,usecomp=part,menulink=menurights) + Group.objects.create( + groupname='超管', grouptype=0, usecomp=part, menulink=menurights) + Group.objects.create( + groupname='安全员', grouptype=1, usecomp=part, menulink=menurights) + Group.objects.create( + groupname='全体用户', grouptype=3, usecomp=part, menulink=menurights) + z = Group(groupname='主管', grouptype=2, + usecomp=part, menulink=menurights) z.save() z.users.add(x) - Yjsetup.objects.create(monthyhavg=100,safev=50,warnv=75,alertv=100,maxv=200,yhpgqz=4,yhdjqz=4,yhsblqz=1,yhzglqz=4,pxdjqz=3,pxxgqz=4,yldjqz=3,ylxgqz=3,usecomp=y) - Map.objects.create(name='默认地图',pic='/static/safesite/mystatic/images/snc.jpg',usecomp=y,default=1) - return JsonResponse({'code':1,'companyid':y.partid}) + Yjsetup.objects.create(monthyhavg=100, safev=50, warnv=75, alertv=100, maxv=200, yhpgqz=4, + yhdjqz=4, yhsblqz=1, yhzglqz=4, pxdjqz=3, pxxgqz=4, yldjqz=3, ylxgqz=3, usecomp=y) + Map.objects.create( + name='默认地图', pic='/static/safesite/mystatic/images/snc.jpg', usecomp=y, default=1) + return JsonResponse({'code': 1, 'companyid': y.partid}) else: - return JsonResponse({'code':0,'msg':'no right!'}) + return JsonResponse({'code': 0, 'msg': 'no right!'}) + def drapi(req): a = req.GET.get('a') @@ -3256,10 +3631,10 @@ def drapi(req): if not os.path.exists(upload_folder): os.mkdir(upload_folder) filepath = os.path.join(upload_folder, file_name) - filepath = filepath.replace('\\','/') - with open( filepath, 'wb') as f: + filepath = filepath.replace('\\', '/') + with open(filepath, 'wb') as f: f.write(req.FILES['upfile'].read()) - return JsonResponse(drusers(companyid,filepath)) + return JsonResponse(drusers(companyid, filepath)) elif a == 'equipment': userid = req.session['userid'] companyid = getcompany(userid) @@ -3268,15 +3643,15 @@ def drapi(req): if not os.path.exists(upload_folder): os.mkdir(upload_folder) filepath = os.path.join(upload_folder, file_name) - filepath = filepath.replace('\\','/') - with open( filepath, 'wb') as f: + filepath = filepath.replace('\\', '/') + with open(filepath, 'wb') as f: f.write(req.FILES['upfile'].read()) # try: - equipmentdict = drequipments(companyid,filepath) + equipmentdict = drequipments(companyid, filepath) if equipmentdict: - return JsonResponse({"code":2,"equipmentdict":equipmentdict}) + return JsonResponse({"code": 2, "equipmentdict": equipmentdict}) else: - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) elif a == 'risk': userid = req.session['userid'] companyid = getcompany(userid) @@ -3285,17 +3660,17 @@ def drapi(req): if not os.path.exists(upload_folder): os.mkdir(upload_folder) filepath = os.path.join(upload_folder, file_name) - filepath = filepath.replace('\\','/') - with open( filepath, 'wb') as f: + filepath = filepath.replace('\\', '/') + with open(filepath, 'wb') as f: f.write(req.FILES['upfile'].read()) try: - risks = drrisks(companyid,filepath) + risks = drrisks(companyid, filepath) if risks: - return JsonResponse({"code":2,"risks":risks}) + return JsonResponse({"code": 2, "risks": risks}) else: - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) except: - return JsonResponse({"code":0}) + return JsonResponse({"code": 0}) elif a == 'question': userid = req.session['userid'] companyid = getcompany(userid) @@ -3304,16 +3679,14 @@ def drapi(req): if not os.path.exists(upload_folder): os.mkdir(upload_folder) filepath = os.path.join(upload_folder, file_name) - filepath = filepath.replace('\\','/') - with open( filepath, 'wb') as f: + filepath = filepath.replace('\\', '/') + with open(filepath, 'wb') as f: f.write(req.FILES['upfile'].read()) - msg = drquestions(companyid,filepath,userid) + msg = drquestions(companyid, filepath, userid) if msg: - return JsonResponse({"code":2,"msg":msg}) + return JsonResponse({"code": 2, "msg": msg}) else: - return JsonResponse({"code":1}) - - + return JsonResponse({"code": 1}) def apimiss(req): @@ -3335,153 +3708,173 @@ def apimiss(req): obj.prevent = data['prevent'] if 'lesson' in data: obj.lesson = data['lesson'] - obj.missnum='WS'+time.strftime('%Y%m%d%H%M%S') + obj.missnum = 'WS'+time.strftime('%Y%m%d%H%M%S') obj.usecomp = Partment.objects.get(partid=companyid) if 'missimg' in data: obj.missimg = '?'.join(data['missimg']) obj.save() yjjs_ws.delay(companyid) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) elif a == 'listall': - startnum,endnum=fenye(req) - a = Miss.objects.filter(usecomp=Partment.objects.get(partid=companyid),deletemark=1) + startnum, endnum = fenye(req) + a = Miss.objects.filter(usecomp=Partment.objects.get( + partid=companyid), deletemark=1) if req.GET.get('missqy'): - a = a.filter(missqy__id=req.GET.get('missqy')) + a = a.filter(missqy__id=req.GET.get('missqy')) a = a.order_by('-misstime') total = a.count() - startnum,endnum=fenye(req) - a = a[startnum:endnum].values('missid','missnum','missplace','description','misstime','misser__name','missimg') + startnum, endnum = fenye(req) + a = a[startnum:endnum].values( + 'missid', 'missnum', 'missplace', 'description', 'misstime', 'misser__name', 'missimg') for i in a: - if Missto.objects.filter(miss__missid=i['missid'],user__userid = userid).exists(): - i['read']=1 - i['readtime'] = Missto.objects.filter(miss__missid=i['missid'],user__userid = userid)[0].submittime + if Missto.objects.filter(miss__missid=i['missid'], user__userid=userid).exists(): + i['read'] = 1 + i['readtime'] = Missto.objects.filter( + miss__missid=i['missid'], user__userid=userid)[0].submittime else: - i['read']=0 - return HttpResponse(transjson(total,a),content_type="application/json") + i['read'] = 0 + return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'listself': - startnum,endnum=fenye(req) - a = Miss.objects.filter(misser__userid=userid,deletemark=1).order_by('-misstime') + startnum, endnum = fenye(req) + a = Miss.objects.filter(misser__userid=userid, + deletemark=1).order_by('-misstime') total = a.count() - startnum,endnum=fenye(req) - a = a[startnum:endnum].values('missid','missnum','missplace','description','misstime','misser__name') - return HttpResponse(transjson(total,a),content_type="application/json") + startnum, endnum = fenye(req) + a = a[startnum:endnum].values( + 'missid', 'missnum', 'missplace', 'description', 'misstime', 'misser__name') + return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'detail': - missid=req.GET.get('missid') + missid = req.GET.get('missid') a = Miss.objects.filter(missid=missid) - x = a.values('missid','missnum','missplace','misstime','misser__name','description','prevent','misspart__partname','submittime','missimg','lesson')[0] + x = a.values('missid', 'missnum', 'missplace', 'misstime', 'misser__name', 'description', + 'prevent', 'misspart__partname', 'submittime', 'missimg', 'lesson')[0] if x['missimg']: x['missimg'] = x['missimg'].split('?') else: - x['missimg']=[] + x['missimg'] = [] for key in x: if x[key] == None: x[key] = '' - Missto.objects.get_or_create(miss=a[0], user=User.objects.get(userid=req.session['userid']),defaults={'read': 1}) - return HttpResponse(json.dumps(x,cls=MyEncoder),content_type="application/json") + Missto.objects.get_or_create(miss=a[0], user=User.objects.get( + userid=req.session['userid']), defaults={'read': 1}) + return HttpResponse(json.dumps(x, cls=MyEncoder), content_type="application/json") elif a == 'del': - missid =req.GET.get('missid') + missid = req.GET.get('missid') a = Miss.objects.get(missid=missid) - if User.objects.get(userid = userid).issuper == 1: - a.deletemark=0 + if User.objects.get(userid=userid).issuper == 1: + a.deletemark = 0 a.save() yjjs_ws.delay(companyid) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) + return JsonResponse({"code": 0}) elif a == 'listsearch': - startnum,endnum=fenye(req) - a = Miss.objects.filter(usecomp=Partment.objects.get(partid=companyid),deletemark=1) + startnum, endnum = fenye(req) + a = Miss.objects.filter(usecomp=Partment.objects.get( + partid=companyid), deletemark=1) if req.GET.get('fsbm'): - parts = Partment.objects.filter(partlink__contains=','+req.GET.get('fsbm')+',')|Partment.objects.filter(partid=req.GET.get('fsbm')) - a = a.filter(misspart__in = parts) + parts = Partment.objects.filter(partlink__contains=','+req.GET.get( + 'fsbm')+',') | Partment.objects.filter(partid=req.GET.get('fsbm')) + a = a.filter(misspart__in=parts) if req.GET.get('qssj'): a = a.filter(misstime__gte=req.GET.get('qssj')) if req.GET.get('jssj'): a = a.filter(misstime__lte=req.GET.get('jssj')) total = a.count() - a = a.order_by('-misstime')[startnum:endnum].values('missid','missnum','missplace','description','misstime') - return HttpResponse(transjson(total,a),content_type="application/json") + a = a.order_by('-misstime')[startnum:endnum].values('missid', + 'missnum', 'missplace', 'description', 'misstime') + return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'exportexcel': - a = Miss.objects.filter(usecomp=Partment.objects.get(partid=companyid),deletemark=1) + a = Miss.objects.filter(usecomp=Partment.objects.get( + partid=companyid), deletemark=1) if req.GET.get('fsbm'): - parts = Partment.objects.filter(partlink__contains=','+req.GET.get('fsbm')+',')|Partment.objects.filter(partid=req.GET.get('fsbm')) - a = a.filter(misspart__in = parts) + parts = Partment.objects.filter(partlink__contains=','+req.GET.get( + 'fsbm')+',') | Partment.objects.filter(partid=req.GET.get('fsbm')) + a = a.filter(misspart__in=parts) if req.GET.get('qssj'): a = a.filter(misstime__gte=req.GET.get('qssj')) if req.GET.get('jssj'): a = a.filter(misstime__lte=req.GET.get('jssj')) - res = exportxlsx('ws',a) + res = exportxlsx('ws', a) return res elif a == 'exportword': id = req.GET.get('id') - res = exportdoc('ws',id) + res = exportdoc('ws', id) return res elif a == 'noreadnum': - a = Miss.objects.filter(usecomp=Partment.objects.get(partid=companyid),deletemark=1).count() - b = Missto.objects.filter(user__userid=userid,miss__deletemark=1).count() + a = Miss.objects.filter(usecomp=Partment.objects.get( + partid=companyid), deletemark=1).count() + b = Missto.objects.filter( + user__userid=userid, miss__deletemark=1).count() noread = a-b - return JsonResponse({'noread':noread}) + return JsonResponse({'noread': noread}) + def apisocert(req): a = req.GET.get('a') - if a=='listall': + if a == 'listall': userid = req.session['userid'] companyid = getcompany(userid) - startnum,endnum=fenye(req) - a = Socertificate.objects.filter(usecomp=Partment.objects.get(partid=companyid)).order_by('id')#无deletemark + startnum, endnum = fenye(req) + a = Socertificate.objects.filter(usecomp=Partment.objects.get( + partid=companyid)).order_by('id') # 无deletemark total = a.count() - startnum,endnum=fenye(req) + startnum, endnum = fenye(req) if req.GET.get('sort'): a = a.order_by(req.GET.get('sort')) - a = a[startnum:endnum].values('id','realname','gender','zylb','czxm','fzjg','ccfzrq','yfsrq','yxqkssj','yxqjssj','sjfssj','zszt','url') - return HttpResponse(transjson(total,a),content_type="application/json") - elif a=='listself': + a = a[startnum:endnum].values('id', 'realname', 'gender', 'zylb', 'czxm', + 'fzjg', 'ccfzrq', 'yfsrq', 'yxqkssj', 'yxqjssj', 'sjfssj', 'zszt', 'url') + return HttpResponse(transjson(total, a), content_type="application/json") + elif a == 'listself': userid = req.session['userid'] cardnum = Userprofile.objects.get(user__userid=userid).cardnum - a = Socertificate.objects.filter(cardnum=cardnum).order_by('id')#无deletemark + a = Socertificate.objects.filter( + cardnum=cardnum).order_by('id') # 无deletemark total = a.count() if req.GET.get('sort'): a = a.order_by(req.GET.get('sort')) - a = a.values('id','realname','gender','zylb','czxm','fzjg','ccfzrq','yfsrq','yxqkssj','yxqjssj','sjfssj','zszt','url') - return HttpResponse(transjson(total,a),content_type="application/json") + a = a.values('id', 'realname', 'gender', 'zylb', 'czxm', 'fzjg', + 'ccfzrq', 'yfsrq', 'yxqkssj', 'yxqjssj', 'sjfssj', 'zszt', 'url') + return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'addspider': postdata = json.loads(req.body.decode('utf-8')) userid = postdata['userid'] realname = postdata['realname'] cardnum = postdata['cardnum'] companyid = getcompany(userid) - data = getTzzs(cardnum,realname) + data = getTzzs(cardnum, realname) data1 = [] - gender='' + gender = '' if data: for i in data: if i['操作项目'] not in data1: - updated_values={ - 'user':User.objects.get(userid=userid), - 'usecomp':Partment.objects.get(partid=companyid), - 'realname':i['姓名'], - 'gender':i['性别'], - 'zylb':i['作业类别'], - 'czxm':i['操作项目'], - 'fzjg':i['发证机关'], - 'ccfzrq':i['初次发证日期'] if i['初次发证日期'] else None, - 'yfsrq':i['应复审日期'] if i['应复审日期'] else None, - 'yxqkssj':i['有效期开始时间'] if i['有效期开始时间'] else None, - 'yxqjssj':i['有效期结束时间'] if i['有效期结束时间'] else None, - 'sjfssj':i['实际复审时间'] if i['实际复审时间'] else None, - 'url':i['url'], + updated_values = { + 'user': User.objects.get(userid=userid), + 'usecomp': Partment.objects.get(partid=companyid), + 'realname': i['姓名'], + 'gender': i['性别'], + 'zylb': i['作业类别'], + 'czxm': i['操作项目'], + 'fzjg': i['发证机关'], + 'ccfzrq': i['初次发证日期'] if i['初次发证日期'] else None, + 'yfsrq': i['应复审日期'] if i['应复审日期'] else None, + 'yxqkssj': i['有效期开始时间'] if i['有效期开始时间'] else None, + 'yxqjssj': i['有效期结束时间'] if i['有效期结束时间'] else None, + 'sjfssj': i['实际复审时间'] if i['实际复审时间'] else None, + 'url': i['url'], } try: updated_values['zszt'] = guoqi(i['应复审日期']) except: pass obj, created = Socertificate.objects.update_or_create( - cardnum=cardnum, czxm=i['操作项目'], defaults=updated_values) + cardnum=cardnum, czxm=i['操作项目'], defaults=updated_values) data1.append(i['操作项目']) gender = i['性别'] else: - obj = Socertificate.objects.get(cardnum=cardnum, czxm=i['操作项目']) - if obj.yxqjssj.strftime('%Y-%m-%d') now1: + if datetime.strptime(x, '%Y-%m-%d') > now1: return 1 - elif now1 > datetime.strptime(x,'%Y-%m-%d') > now: + elif now1 > datetime.strptime(x, '%Y-%m-%d') > now: return 2 else: return 3 + + def apisafecert(req): a = req.GET.get('a') - if a=='listall': + if a == 'listall': userid = req.session['userid'] companyid = getcompany(userid) - startnum,endnum=fenye(req) - a = Safecert.objects.filter(usecomp=Partment.objects.get(partid=companyid)).order_by('id')#无deletemark + startnum, endnum = fenye(req) + a = Safecert.objects.filter(usecomp=Partment.objects.get( + partid=companyid)).order_by('id') # 无deletemark total = a.count() - startnum,endnum=fenye(req) + startnum, endnum = fenye(req) if req.GET.get('sort'): a = a.order_by(req.GET.get('sort')) - a = a[startnum:endnum].values('id','realname','gender','zglx','dwlx','fzjg','yfsrq','yxqkssj','yxqjssj','zszt','url') - return HttpResponse(transjson(total,a),content_type="application/json") - elif a=='listself': + a = a[startnum:endnum].values('id', 'realname', 'gender', 'zglx', + 'dwlx', 'fzjg', 'yfsrq', 'yxqkssj', 'yxqjssj', 'zszt', 'url') + return HttpResponse(transjson(total, a), content_type="application/json") + elif a == 'listself': userid = req.session['userid'] cardnum = Userprofile.objects.get(user__userid=userid).cardnum - a = Safecert.objects.filter(cardnum=cardnum).order_by('id')#无deletemark + a = Safecert.objects.filter( + cardnum=cardnum).order_by('id') # 无deletemark total = a.count() if req.GET.get('sort'): a = a.order_by(req.GET.get('sort')) - a = a.values('id','realname','gender','zglx','dwlx','fzjg','yfsrq','yxqkssj','yxqjssj','zszt','url') - return HttpResponse(transjson(total,a),content_type="application/json") + a = a.values('id', 'realname', 'gender', 'zglx', 'dwlx', + 'fzjg', 'yfsrq', 'yxqkssj', 'yxqjssj', 'zszt', 'url') + return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'addspider': postdata = json.loads(req.body.decode('utf-8')) userid = postdata['userid'] realname = postdata['realname'] cardnum = postdata['cardnum'] companyid = getcompany(userid) - data = getAqzs(cardnum,realname) + data = getAqzs(cardnum, realname) data1 = [] - gender='' + gender = '' if data: for i in data: if i['资格类型'] not in data1: - updated_values={ - 'user':User.objects.get(userid=userid), - 'usecomp':Partment.objects.get(partid=companyid), - 'realname':i['姓名'], - 'gender':i['性别'], - 'zglx':i['资格类型'], - 'dwlx':i['单位类型'], - 'fzjg':i['发证机关'], - 'yfsrq':i['应复审日期'] if i['应复审日期'] else None, - 'yxqkssj':i['有效期开始时间'] if i['有效期开始时间'] else None, - 'yxqjssj':i['有效期结束时间'] if i['有效期结束时间'] else None, - 'url':i['url'], + updated_values = { + 'user': User.objects.get(userid=userid), + 'usecomp': Partment.objects.get(partid=companyid), + 'realname': i['姓名'], + 'gender': i['性别'], + 'zglx': i['资格类型'], + 'dwlx': i['单位类型'], + 'fzjg': i['发证机关'], + 'yfsrq': i['应复审日期'] if i['应复审日期'] else None, + 'yxqkssj': i['有效期开始时间'] if i['有效期开始时间'] else None, + 'yxqjssj': i['有效期结束时间'] if i['有效期结束时间'] else None, + 'url': i['url'], } try: updated_values['zszt'] = guoqi(i['应复审日期']) except: pass obj, created = Safecert.objects.update_or_create( - cardnum=cardnum, zglx=i['资格类型'],defaults=updated_values) + cardnum=cardnum, zglx=i['资格类型'], defaults=updated_values) data1.append(i['资格类型']) gender = i['性别'] else: - obj = Safecert.objects.get(cardnum=cardnum,zglx=i['资格类型']) - if obj.yxqjssj.strftime('%Y-%m-%d')0: + questionobjs = Question.objects.filter( + questioncat__id__in=data['tmfls']) + if dxnum > 0: qobjs = questionobjs.filter(type=1).order_by('?')[:dxnum] for i in qobjs: - ExamPaperDetail.objects.create(exampaper=objpaper,question=i,score=dxs) - if duoxnum>0: + ExamPaperDetail.objects.create( + exampaper=objpaper, question=i, score=dxs) + if duoxnum > 0: qobjs = questionobjs.filter(type=2).order_by('?')[:duoxnum] for i in qobjs: - ExamPaperDetail.objects.create(exampaper=objpaper,question=i,score=duoxs) - if pdnum>0: + ExamPaperDetail.objects.create( + exampaper=objpaper, question=i, score=duoxs) + if pdnum > 0: qobjs = questionobjs.filter(type=3).order_by('?')[:pdnum] for i in qobjs: - ExamPaperDetail.objects.create(exampaper=objpaper,question=i,score=pds) - #结束 + ExamPaperDetail.objects.create( + exampaper=objpaper, question=i, score=pds) + # 结束 obj.exampaper = objpaper if 'starttime' in data: if data['starttime']: @@ -5202,117 +5741,126 @@ def apiexamtest(req): obj.passscore = data['passscore'] obj.duration = data['duration'] obj.createuser = User.objects.get(userid=userid) - obj.qrcode = makeqr_examtest('https://safeyun.ctcshe.com/miniprogram/examtest?id='+str(obj.id)) + obj.qrcode = makeqr_examtest( + 'https://safeyun.ctcshe.com/miniprogram/examtest?id='+str(obj.id)) obj.save() ksry = data['participant'].split(',') b = [] for i in ksry: uobj = User.objects.get(userid=i) - ExamTestDetail.objects.create(examtest=obj,user=uobj) + ExamTestDetail.objects.create(examtest=obj, user=uobj) b.append(uobj.openid) - postdict={ - 'touser':'', - 'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', - "miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/examtest/index"}, - 'data':{ - 'first':{ - 'value': '小程序考试通知:' + postdict = { + 'touser': '', + 'template_id': 'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0', + "miniprogram": {"appid": "wx5c39b569f01c27db", "path": "pages/examtest/index"}, + 'data': { + 'first': { + 'value': '小程序考试通知:' }, - 'keyword1':{ - 'value':data['name'] + 'keyword1': { + 'value': data['name'] }, - 'keyword2':{ - 'value':'满分'+ str(obj.totalscore) + 'keyword2': { + 'value': '满分' + str(obj.totalscore) }, - 'remark':{ - 'value':'用时限制为'+data['duration']+'分钟,注意把握时间' + 'remark': { + 'value': '用时限制为'+data['duration']+'分钟,注意把握时间' } } } - send_wechatmsgs.delay(postdict,b) - return JsonResponse({"code":1}) + send_wechatmsgs.delay(postdict, b) + return JsonResponse({"code": 1}) elif a == 'del': id = req.GET.get('id') user = User.objects.get(userid=userid) a = ExamTest.objects.get(id=id) - if user.issuper==1 or a.createuser==user: + if user.issuper == 1 or a.createuser == user: ExamTestDetail.objects.filter(examtest=a).delete() a.delete() - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) + return JsonResponse({"code": 0}) elif a == 'close': id = req.GET.get('id') user = User.objects.get(userid=userid) a = ExamTest.objects.get(id=id) - if user.issuper==1 or a.createuser==user: + if user.issuper == 1 or a.createuser == user: a.state = 0 a.save() - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) + return JsonResponse({"code": 0}) elif a == 'detail': id = req.GET.get('id') - a = ExamTest.objects.filter(id=id).values('id','num','name','starttime','endtime','duration','totalscore','passscore','exampaper__total','createtime','state','exampaper__name','createuser__name','type','qrcode')[0] - objs = ExamTestDetail.objects.filter(examtest__id=id).order_by('-score').values('id','user__name','user__ubelongpart__partname','took','score','ison','passcode') + a = ExamTest.objects.filter(id=id).values('id', 'num', 'name', 'starttime', 'endtime', 'duration', 'totalscore', + 'passscore', 'exampaper__total', 'createtime', 'state', 'exampaper__name', 'createuser__name', 'type', 'qrcode')[0] + objs = ExamTestDetail.objects.filter(examtest__id=id).order_by('-score').values( + 'id', 'user__name', 'user__ubelongpart__partname', 'took', 'score', 'ison', 'passcode') a['cjrydetail'] = list(objs) - return HttpResponse(json.dumps(a,cls=MyEncoder),content_type="application/json") + return HttpResponse(json.dumps(a, cls=MyEncoder), content_type="application/json") elif a == 'detailtm': id = req.GET.get('id') test = ExamTest.objects.get(id=id) - objs = ExamPaperDetail.objects.filter(exampaper=test.exampaper).values('id','question__id','score','question__title','question__type','question__answer','question__right','question__resolution') + objs = ExamPaperDetail.objects.filter(exampaper=test.exampaper).values( + 'id', 'question__id', 'score', 'question__title', 'question__type', 'question__answer', 'question__right', 'question__resolution') duration = test.duration - data = {'duration':duration,'tms':list(objs)} + data = {'duration': duration, 'tms': list(objs)} return JsonResponse(data) elif a == 'exportword': data = json.loads(req.body.decode('utf-8')) - url = exportdoc2('ks',data) - return JsonResponse({"code":1,"downloadurl":url}) + url = exportdoc2('ks', data) + return JsonResponse({"code": 1, "downloadurl": url}) def apiexamtestdetail(req): a = req.GET.get('a') userid = req.session['userid'] companyid = getcompany(userid) - if a=='dknum': + if a == 'dknum': a = ExamTestDetail.objects - a = a.filter(user__userid=userid,examtest__state=1,ison=0,examtest__endtime__gte=datetime.now()) + a = a.filter(user__userid=userid, examtest__state=1, + ison=0, examtest__endtime__gte=datetime.now()) dknum = a.count() - return JsonResponse({"code":1,"dknum":dknum}) - elif a=='listdk': + return JsonResponse({"code": 1, "dknum": dknum}) + elif a == 'listdk': a = ExamTestDetail.objects - a = a.filter(user__userid=userid,examtest__state=1,ison=0).order_by('-id') + a = a.filter(user__userid=userid, examtest__state=1, + ison=0).order_by('-id') total = a.count() - startnum,endnum=fenye(req) - a = a[startnum:endnum].values('id','examtest__id','examtest__name','examtest__starttime','examtest__endtime','examtest__passscore','examtest__state','examtest__duration') + startnum, endnum = fenye(req) + a = a[startnum:endnum].values('id', 'examtest__id', 'examtest__name', 'examtest__starttime', + 'examtest__endtime', 'examtest__passscore', 'examtest__state', 'examtest__duration') for i in a: if i['examtest__endtime']: - if i['examtest__endtime']>datetime.now(): + if i['examtest__endtime'] > datetime.now(): i['isActive'] = True else: i['isActive'] = False else: i['isActive'] = True - return HttpResponse(transjson(total,a),content_type="application/json") - elif a=='listyk': + return HttpResponse(transjson(total, a), content_type="application/json") + elif a == 'listyk': a = ExamTestDetail.objects a = a.filter(user__userid=userid).exclude(ison=0).order_by('-id') total = a.count() - startnum,endnum=fenye(req) - a = a[startnum:endnum].values('id','examtest__id','examtest__name','starttime','examtest__passscore','examtest__state','ison','examtest__duration','took','score','passcode') - return HttpResponse(transjson(total,a),content_type="application/json") + startnum, endnum = fenye(req) + a = a[startnum:endnum].values('id', 'examtest__id', 'examtest__name', 'starttime', 'examtest__passscore', + 'examtest__state', 'ison', 'examtest__duration', 'took', 'score', 'passcode') + return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'handtest': data = json.loads(req.body.decode('utf-8')) testid = data['testid'] starttime = data['starttime'] endtime = data['endtime'] - took = round((datetime.strptime(endtime, '%Y-%m-%d %H:%M:%S')-datetime.strptime(starttime, '%Y-%m-%d %H:%M:%S')).total_seconds()/60) + took = round((datetime.strptime(endtime, '%Y-%m-%d %H:%M:%S') - + datetime.strptime(starttime, '%Y-%m-%d %H:%M:%S')).total_seconds()/60) testdetail = data['sheet'] score = 0 rights = 0 tms = [] wrongs = [] - for i in testdetail:#判卷 + for i in testdetail: # 判卷 iscore = 0 if i['question__type'] == 2: if 'userchecked' in i: @@ -5339,7 +5887,8 @@ def apiexamtestdetail(req): i['iscore'] = iscore score = score + iscore tms.append(str(i['question__id'])) - obj = ExamTestDetail.objects.get(examtest__id=testid,user__userid=userid) + obj = ExamTestDetail.objects.get( + examtest__id=testid, user__userid=userid) obj.testnum = obj.testnum + 1 obj.starttime = starttime obj.endtime = endtime @@ -5362,56 +5911,64 @@ def apiexamtestdetail(req): obj.wrongs = ','+','.join(wrongs)+',' obj.save() tmnum = len(testdetail) - objs = ExamTestDetail.objects.filter(examtest__id=testid,ison=0) + objs = ExamTestDetail.objects.filter(examtest__id=testid, passcode=0) # 如果全部考完并通过,关闭考试 if objs.exists(): pass else: ExamTest.objects.filter(id=testid).update(state=0) - return JsonResponse({'code':1,'data':{'passcode':passcode,'score':score,'totalscore':totalscore,'rights':rights,'tmnum':tmnum,'examtestdetailid':obj.id}}) + return JsonResponse({'code': 1, 'data': {'passcode': passcode, 'score': score, 'totalscore': totalscore, 'rights': rights, 'tmnum': tmnum, 'examtestdetailid': obj.id}}) elif a == 'detail': id = req.GET.get('id') obj = ExamTestDetail.objects.filter(id=id) - data = obj.values('id','starttime','took','score','passcode','testdetail','examtest__name','user__headimgurl','user__name')[0] + data = obj.values('id', 'starttime', 'took', 'score', 'passcode', + 'testdetail', 'examtest__name', 'user__headimgurl', 'user__name')[0] return JsonResponse(data) - elif a=='updateison': - id = req.GET.get('id') - examdlid = req.GET.get('examdlid') - user = User.objects.get(userid=userid) - a = ExamTest.objects.get(id=id) - if a.createuser==user: - objss = ExamTestDetail.objects.get(id=examdlid) - objss.ison=0 - objss.testnum=objss.testnum+1 - objss.save() - return JsonResponse({"code":1,"message":"发布成功!"}) - else: - return JsonResponse({"code":2,"message":"您没有发布权限!"}) + elif a == 'updateison': + id = req.GET.get('id') + examdlid = req.GET.get('examdlid') + user = User.objects.get(userid=userid) + a = ExamTest.objects.get(id=id) + if a.createuser == user: + objss = ExamTestDetail.objects.get(id=examdlid) + objss.ison = 0 + objss.testnum = objss.testnum+1 + objss.save() + return JsonResponse({"code": 1, "message": "发布成功!"}) + else: + return JsonResponse({"code": 2, "message": "您没有发布权限!"}) + + def apitrain(req): - if req.GET.get('a')=='listjoin': + if req.GET.get('a') == 'listjoin': userid = req.session['userid'] objs = Trainuser.objects.filter(train__deletemark=1) if req.GET.get('sry'): objs = objs.filter(participant__userid=req.GET.get('sry')) else: objs = objs.filter(participant__userid=userid) - total= objs.count() - startnum,endnum=fenye(req) - objs=objs[startnum:endnum].values('train__trainnum','train__trainid','train__state','train__trainplace','train__starttime','train__trainname','train__teacher','train__lecturer__name','participant__name','participant__name','checked','train__duration','examtestdetail') - return HttpResponse(transjson(total,objs),content_type="application/json") + total = objs.count() + startnum, endnum = fenye(req) + objs = objs[startnum:endnum].values('train__trainnum', 'train__trainid', 'train__state', 'train__trainplace', 'train__starttime', 'train__trainname', + 'train__teacher', 'train__lecturer__name', 'participant__name', 'participant__name', 'checked', 'train__duration', 'examtestdetail') + return HttpResponse(transjson(total, objs), content_type="application/json") + def apiquestioncat(req): a = req.GET.get('a') userid = req.session['userid'] companyid = getcompany(userid) if a == 'tree1': - list_items = (Questioncat.objects.filter(usecomp__partid=1,deletemark=1)).annotate(parentId=F('parent__id')).values('id','parentId','name') - return HttpResponse(json.dumps(list(list_items)),content_type="application/json") + list_items = (Questioncat.objects.filter(usecomp__partid=1, deletemark=1)).annotate( + parentId=F('parent__id')).values('id', 'parentId', 'name') + return HttpResponse(json.dumps(list(list_items)), content_type="application/json") elif a == 'tree2': - list_items = (Questioncat.objects.filter(usecomp__partid=companyid,deletemark=1)).annotate(parentId=F('parent__id')).values('id','parentId','name') - return HttpResponse(json.dumps(list(list_items)),content_type="application/json") + list_items = (Questioncat.objects.filter(usecomp__partid=companyid, deletemark=1)).annotate( + parentId=F('parent__id')).values('id', 'parentId', 'name') + return HttpResponse(json.dumps(list(list_items)), content_type="application/json") elif a == 'tree': - list_items = (Questioncat.objects.filter(usecomp__partid=1,deletemark=1)|Questioncat.objects.filter(usecomp__partid=companyid,deletemark=1)).annotate(parentId=F('parent__id')).values('id','parentId','name') - return HttpResponse(json.dumps(list(list_items)),content_type="application/json") + list_items = (Questioncat.objects.filter(usecomp__partid=1, deletemark=1) | Questioncat.objects.filter( + usecomp__partid=companyid, deletemark=1)).annotate(parentId=F('parent__id')).values('id', 'parentId', 'name') + return HttpResponse(json.dumps(list(list_items)), content_type="application/json") elif a == 'add': data = json.loads(req.body.decode('utf-8')) obj = Questioncat() @@ -5425,20 +5982,21 @@ def apiquestioncat(req): obj.link = parentobj.link + str(data['parent']) + ',' obj.usecomp = Partment.objects.get(partid=companyid) obj.save() - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) elif a == 'del': id = req.GET.get('id') user = User.objects.get(userid=userid) a = Questioncat.objects.get(id=id) - if user.issuper==1 or a.usecomp.partid == companyid: - Questioncat.objects.filter(id = id).update(deletemark=0) - return JsonResponse({"code":1}) + if user.issuper == 1 or a.usecomp.partid == companyid: + Questioncat.objects.filter(id=id).update(deletemark=0) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) - return JsonResponse({"code":1}) + return JsonResponse({"code": 0}) + return JsonResponse({"code": 1}) elif a == 'detail': id = req.GET.get('id') - a = Questioncat.objects.filter(id=id).values('id','name','parent__id')[0] + a = Questioncat.objects.filter(id=id).values( + 'id', 'name', 'parent__id')[0] return JsonResponse(a) elif a == 'edit': data = json.loads(req.body.decode('utf-8')) @@ -5451,106 +6009,124 @@ def apiquestioncat(req): a.parent = parent oldlink = a.link a.link = parent.link + str(parent.id) + ',' - Questioncat.objects.filter(link__contains = oldlink + str(id) + ',').update(link= a.link + str(id) +',' ) + Questioncat.objects.filter( + link__contains=oldlink + str(id) + ',').update(link=a.link + str(id) + ',') a.save() - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) + def apimap(req): a = req.GET.get('a') userid = req.session['userid'] companyid = getcompany(userid) if a == 'tree': - list_items = (Map.objects.filter(usecomp__partid=companyid,deletemark=1)).annotate(parentId=F('parent__id')).values('id','parentId','name','pic') - return HttpResponse(json.dumps(list(list_items)),content_type="application/json") + list_items = (Map.objects.filter(usecomp__partid=companyid, deletemark=1)).annotate( + parentId=F('parent__id')).values('id', 'parentId', 'name', 'pic') + return HttpResponse(json.dumps(list(list_items)), content_type="application/json") elif a == 'default': - obj = Map.objects.filter(usecomp__partid=companyid,deletemark=1,default=1).values('id','name','pic') + obj = Map.objects.filter( + usecomp__partid=companyid, deletemark=1, default=1).values('id', 'name', 'pic') return JsonResponse(obj[0]) elif a == 'update': id = req.POST.get('id') Map.objects.filter(id=id).update(pic=req.POST.get('pic')) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) + def apiarea(req): a = req.GET.get('a') userid = req.session['userid'] companyid = getcompany(userid) - if a=='listall': - a = Area.objects.filter(deletemark=1,belongmap__id=req.GET.get('map')) + if a == 'listall': + a = Area.objects.filter(deletemark=1, belongmap__id=req.GET.get('map')) total = a.count() - a = a.order_by('order').values('id','name','polygon','order','belongmap__id') - return HttpResponse(transjson(total,a),content_type="application/json") - elif a=='bind': + a = a.order_by('order').values( + 'id', 'name', 'polygon', 'order', 'belongmap__id') + return HttpResponse(transjson(total, a), content_type="application/json") + elif a == 'bind': data = json.loads(req.body.decode('utf-8')) Area.objects.filter(id=data['id']).update(polygon=data['polygon']) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) elif a == 'tree': - mapobj = Map.objects.filter(usecomp__partid=companyid,deletemark=1) - if mapobj.count()==1: - objs = Area.objects.filter(belongmap=mapobj[0],deletemark=1).order_by('order').values('id','name') - return HttpResponse(json.dumps(list(objs)),content_type="application/json") + mapobj = Map.objects.filter(usecomp__partid=companyid, deletemark=1) + if mapobj.count() == 1: + objs = Area.objects.filter(belongmap=mapobj[0], deletemark=1).order_by( + 'order').values('id', 'name') + return HttpResponse(json.dumps(list(objs)), content_type="application/json") elif a == 'add': data = json.loads(req.body.decode('utf-8')) name = data['name'] - if Area.objects.filter(usecomp__partid=companyid,name=name,deletemark=1).exists(): - return JsonResponse({"code":0}) + if Area.objects.filter(usecomp__partid=companyid, name=name, deletemark=1).exists(): + return JsonResponse({"code": 0}) map = data['map'] order = data['order'] - obj = Area.objects.create(name = name,order=order,belongmap=Map.objects.get(id=map),usecomp=Partment.objects.get(partid=companyid)) - makeqr_area('https://safeyun.ctcshe.com/miniprogram/area?id='+str(obj.id)) - return JsonResponse({"code":1}) + obj = Area.objects.create(name=name, order=order, belongmap=Map.objects.get( + id=map), usecomp=Partment.objects.get(partid=companyid)) + makeqr_area( + 'https://safeyun.ctcshe.com/miniprogram/area?id='+str(obj.id)) + return JsonResponse({"code": 1}) elif a == 'del': - if User.objects.get(userid=userid).issuper==1: + if User.objects.get(userid=userid).issuper == 1: Area.objects.filter(id=req.GET.get('id')).update(deletemark=0) - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) + return JsonResponse({"code": 0}) elif a == 'detail': - obj = Area.objects.filter(deletemark=1,id=req.GET.get('id')).values('id','name','polygon','order','qrcode')[0] + obj = Area.objects.filter(deletemark=1, id=req.GET.get('id')).values( + 'id', 'name', 'polygon', 'order', 'qrcode')[0] return JsonResponse(obj) elif a == 'edit': data = json.loads(req.body.decode('utf-8')) name = data['name'] order = data['order'] - Area.objects.filter(id=data['id']).update(name = name,order=order) - return JsonResponse({"code":1}) + Area.objects.filter(id=data['id']).update(name=name, order=order) + return JsonResponse({"code": 1}) + def apimapshow(req): a = req.GET.get('a') userid = req.session['userid'] companyid = getcompany(userid) - if a=='trouble': - objs = Trouble.objects.filter(usecomp__partid = companyid,deletemark=1).exclude(yhzt=6).exclude(yhqy=None).exclude(yhqy__deletemark=0).values('yhqy__id','yhqy__name','yhqy__polygon').annotate(num=Count('yhqy')) - return HttpResponse(json.dumps(list(objs)),content_type="application/json") - elif a=='miss': + if a == 'trouble': + objs = Trouble.objects.filter(usecomp__partid=companyid, deletemark=1).exclude(yhzt=6).exclude(yhqy=None).exclude( + yhqy__deletemark=0).values('yhqy__id', 'yhqy__name', 'yhqy__polygon').annotate(num=Count('yhqy')) + return HttpResponse(json.dumps(list(objs)), content_type="application/json") + elif a == 'miss': date1 = datetime.now() - timedelta(days=30) - objs = Miss.objects.filter(usecomp__partid = companyid,deletemark=1,submittime__gte = date1).exclude(missqy=None).values('missqy__id','missqy__name','missqy__polygon').annotate(num=Count('missqy')) - return HttpResponse(json.dumps(list(objs)),content_type="application/json") - elif a=='risk': - objs = Area.objects.filter(usecomp__partid = companyid,deletemark=1).exclude(risklevel=None).values('id','name','polygon','risklevel')#缺少deletemark - return HttpResponse(json.dumps(list(objs)),content_type="application/json") - elif a=='operation': - objs = Operation.objects.filter(usecomp__partid = companyid,deletemark=1).exclude(zyqy=None).exclude(zyzt__zyzt='已关闭') - objs=objs.values('zyqy__id','zyqy__name','zyqy__polygon').annotate(num=Count('zyqy')) - return HttpResponse(json.dumps(list(objs)),content_type="application/json") - elif a=='all': + objs = Miss.objects.filter(usecomp__partid=companyid, deletemark=1, submittime__gte=date1).exclude( + missqy=None).values('missqy__id', 'missqy__name', 'missqy__polygon').annotate(num=Count('missqy')) + return HttpResponse(json.dumps(list(objs)), content_type="application/json") + elif a == 'risk': + objs = Area.objects.filter(usecomp__partid=companyid, deletemark=1).exclude( + risklevel=None).values('id', 'name', 'polygon', 'risklevel') # 缺少deletemark + return HttpResponse(json.dumps(list(objs)), content_type="application/json") + elif a == 'operation': + objs = Operation.objects.filter(usecomp__partid=companyid, deletemark=1).exclude( + zyqy=None).exclude(zyzt__zyzt='已关闭') + objs = objs.values('zyqy__id', 'zyqy__name', + 'zyqy__polygon').annotate(num=Count('zyqy')) + return HttpResponse(json.dumps(list(objs)), content_type="application/json") + elif a == 'all': date1 = datetime.now() - timedelta(days=30) - yh = Trouble.objects.filter(usecomp__partid = companyid,deletemark=1).exclude(yhzt=6).exclude(yhqy=None).exclude(yhqy__deletemark=0).values('yhqy__id','yhqy__name','yhqy__polygon').annotate(num=Count('yhqy')) - ws = Miss.objects.filter(usecomp__partid = companyid,deletemark=1,submittime__gte = date1).exclude(missqy=None).values('missqy__id','missqy__name','missqy__polygon').annotate(num=Count('missqy')) - zy = Operation.objects.filter(usecomp__partid = companyid,deletemark=1).exclude(zyqy=None).exclude(zyzt__zyzt='已关闭').values('zyqy__id','zyqy__name','zyqy__polygon').annotate(num=Count('zyqy')) - fx = Area.objects.filter(usecomp__partid = companyid).exclude(risklevel=None).values('id','name','polygon','risklevel') - return JsonResponse({'code':1,'data':{'yh':list(yh),'ws':list(ws),'zy':list(zy),'fx':list(fx)}}) - - - + yh = Trouble.objects.filter(usecomp__partid=companyid, deletemark=1).exclude(yhzt=6).exclude(yhqy=None).exclude( + yhqy__deletemark=0).values('yhqy__id', 'yhqy__name', 'yhqy__polygon').annotate(num=Count('yhqy')) + ws = Miss.objects.filter(usecomp__partid=companyid, deletemark=1, submittime__gte=date1).exclude( + missqy=None).values('missqy__id', 'missqy__name', 'missqy__polygon').annotate(num=Count('missqy')) + zy = Operation.objects.filter(usecomp__partid=companyid, deletemark=1).exclude(zyqy=None).exclude( + zyzt__zyzt='已关闭').values('zyqy__id', 'zyqy__name', 'zyqy__polygon').annotate(num=Count('zyqy')) + fx = Area.objects.filter(usecomp__partid=companyid).exclude( + risklevel=None).values('id', 'name', 'polygon', 'risklevel') + return JsonResponse({'code': 1, 'data': {'yh': list(yh), 'ws': list(ws), 'zy': list(zy), 'fx': list(fx)}}) def apiequipment(req): a = req.GET.get('a') userid = req.session['userid'] companyid = getcompany(userid) - if a=='listall': - objs = Equipment.objects.filter(deletemark=1,usecomp__partid=companyid) - if req.GET.get('area',False): + if a == 'listall': + objs = Equipment.objects.filter( + deletemark=1, usecomp__partid=companyid) + if req.GET.get('area', False): objs = objs.filter(area__id=req.GET.get('area')) if req.GET.get('cate'): objs = objs.filter(cate__dickeyid=req.GET.get('cate')) @@ -5558,13 +6134,14 @@ def apiequipment(req): objs = objs.filter(state=req.GET.get('state')) if req.GET.get('name'): objs = objs.filter(name__contains=req.GET.get('name')) - if req.GET.get('b',None) == 'exportexcel': - res = exportxlsx('equipment',objs)#导出设备列表 + if req.GET.get('b', None) == 'exportexcel': + res = exportxlsx('equipment', objs) # 导出设备列表 return res total = objs.count() - startnum,endnum=fenye(req) - objs = objs.order_by('num')[startnum:endnum].values('id','num','name','type','oem','udate','place','istz','iskey','state','cate__dickeyname','area__name') - return HttpResponse(transjson(total,objs),content_type="application/json") + startnum, endnum = fenye(req) + objs = objs.order_by('num')[startnum:endnum].values( + 'id', 'num', 'name', 'type', 'oem', 'udate', 'place', 'istz', 'iskey', 'state', 'cate__dickeyname', 'area__name') + return HttpResponse(transjson(total, objs), content_type="application/json") elif a == 'update': data = json.loads(req.body.decode('utf-8')) id = data['id'] @@ -5589,27 +6166,29 @@ def apiequipment(req): if data['zrbm']: obj.zrbm = Partment.objects.get(partid=data['zrbm']) if data['zrr']: - obj.zrr = User.objects.get(userid=data['zrr'] ) + obj.zrr = User.objects.get(userid=data['zrr']) if data['riskact']: obj.riskact = RiskAct.objects.get(id=data['riskact']) obj.parameter = data['parameter'] - obj.usecomp=Partment.objects.get(partid=companyid) + obj.usecomp = Partment.objects.get(partid=companyid) obj.save() - obj.qrcode = makeqr('https://safeyun.ctcshe.com/miniprogram/equipment?id='+str(obj.id)) + obj.qrcode = makeqr( + 'https://safeyun.ctcshe.com/miniprogram/equipment?id='+str(obj.id)) obj.save() - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) elif a == 'del': id = req.GET.get('id') user = User.objects.get(userid=userid) a = Equipment.objects.get(id=id) - if user.issuper==1: + if user.issuper == 1: a.delete() - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) + return JsonResponse({"code": 0}) elif a == 'detail': id = req.GET.get('id') - a = Equipment.objects.filter(id=id).values('id','num','name','type','oem','udate','fdate','fnum','place','istz','iskey','state','cate__dickeyname','cate__dickeyid','parameter','img','area__name','area__id','zrbm__partid','zrr__userid','zrbm__partname','zrr__name','qrcode','riskact__name','riskact__id') + a = Equipment.objects.filter(id=id).values('id', 'num', 'name', 'type', 'oem', 'udate', 'fdate', 'fnum', 'place', 'istz', 'iskey', 'state', 'cate__dickeyname', + 'cate__dickeyid', 'parameter', 'img', 'area__name', 'area__id', 'zrbm__partid', 'zrr__userid', 'zrbm__partname', 'zrr__name', 'qrcode', 'riskact__name', 'riskact__id') return JsonResponse(a[0]) @@ -5617,63 +6196,69 @@ def apiinspect(req): a = req.GET.get('a') userid = req.session['userid'] companyid = getcompany(userid) - if a=='listall': + if a == 'listall': a = Inspect.objects.filter(usecomp__partid=companyid) total = a.count() - startnum,endnum=fenye(req) - a = a.order_by('-id')[startnum:endnum].values('id','state','content','creattime','equipment__num','equipment__name','equipment__area__name','user__name','user__ubelongpart__partname','trouble__yhzt','trouble__yhnum','trouble__yhms') - return HttpResponse(transjson(total,a),content_type="application/json") + startnum, endnum = fenye(req) + a = a.order_by('-id')[startnum:endnum].values('id', 'state', 'content', 'creattime', 'equipment__num', 'equipment__name', + 'equipment__area__name', 'user__name', 'user__ubelongpart__partname', 'trouble__yhzt', 'trouble__yhnum', 'trouble__yhms') + return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'listself': - a = Inspect.objects.filter(usecomp__partid=companyid,user__userid=userid) + a = Inspect.objects.filter( + usecomp__partid=companyid, user__userid=userid) total = a.count() - startnum,endnum=fenye(req) - a = a.order_by('-id')[startnum:endnum].values('id','state','content','creattime','equipment__num','equipment__name','equipment__area__name','user__name','user__ubelongpart__partname','trouble__yhzt','trouble__yhnum','trouble__yhms') - return HttpResponse(transjson(total,a),content_type="application/json") + startnum, endnum = fenye(req) + a = a.order_by('-id')[startnum:endnum].values('id', 'state', 'content', 'creattime', 'equipment__num', 'equipment__name', + 'equipment__area__name', 'user__name', 'user__ubelongpart__partname', 'trouble__yhzt', 'trouble__yhnum', 'trouble__yhms') + return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'listsearch': a = Inspect.objects.filter(usecomp__partid=companyid) qssj = req.GET.get('qssj') jssj = req.GET.get('jssj') - xjbm= req.GET.get('xjbm') + xjbm = req.GET.get('xjbm') xjr = req.GET.get('xjr') state = req.GET.get('state') if xjbm or xjr: if xjr: a = a.filter(user__userid=xjr) else: - parts = Partment.objects.filter(partid=xjbm)|Partment.objects.filter(partlink__contains=','+xjbm+',') - a = a.filter(user__ubelongpart__in = parts) + parts = Partment.objects.filter(partid=xjbm) | Partment.objects.filter( + partlink__contains=','+xjbm+',') + a = a.filter(user__ubelongpart__in=parts) if qssj: a = a.filter(creattime__gte=qssj) if jssj: a = a.filter(creattime__lte=jssj) if state: a = a.filter(state=state) - total=a.count() - startnum,endnum=fenye(req) - a = a.order_by('-creattime')[startnum:endnum].values('id','state','content','creattime','equipment__num','equipment__name','equipment__area__name','user__name','user__ubelongpart__partname','trouble__yhzt','trouble__yhnum','trouble__yhms') - return HttpResponse(transjson(total,a),content_type="application/json") + total = a.count() + startnum, endnum = fenye(req) + a = a.order_by('-creattime')[startnum:endnum].values('id', 'state', 'content', 'creattime', 'equipment__num', 'equipment__name', + 'equipment__area__name', 'user__name', 'user__ubelongpart__partname', 'trouble__yhzt', 'trouble__yhnum', 'trouble__yhms') + return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'exportexcel': objs = Inspect.objects.filter(usecomp__partid=companyid) qssj = req.GET.get('qssj') jssj = req.GET.get('jssj') - xjbm= req.GET.get('xjbm') + xjbm = req.GET.get('xjbm') xjr = req.GET.get('xjr') state = req.GET.get('state') if xjbm or xjr: if xjr: objs = objs.filter(user__userid=xjr) else: - parts = Partment.objects.filter(partid=xjbm)|Partment.objects.filter(partlink__contains=','+xjbm+',') - objs = objs.filter(user__ubelongpart__in = parts) + parts = Partment.objects.filter(partid=xjbm) | Partment.objects.filter( + partlink__contains=','+xjbm+',') + objs = objs.filter(user__ubelongpart__in=parts) if qssj: objs = objs.filter(creattime__gte=qssj) if jssj: objs = objs.filter(creattime__lte=jssj) if state: objs = objs.filter(state=state) - res = exportxlsx('xj',objs) + res = exportxlsx('xj', objs) return res - elif a=='add': + elif a == 'add': data = json.loads(req.body.decode('utf-8')) a = Inspect() equipment = data['equipment'] @@ -5681,65 +6266,70 @@ def apiinspect(req): if 'content' in data: if data['content']: content = data['content'] - a.content=content + a.content = content if 'trouble' in data: if data['trouble']: a.trouble = Trouble.objects.get(troubleid=data['trouble']) x = Equipment.objects.get(id=equipment) a.equipment = x a.state = state - x.state=state + x.state = state x.save() a.usecomp = Partment.objects.get(partid=companyid) a.user = User.objects.get(userid=userid) a.save() - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) elif a == 'del': id = req.GET.get('id') user = User.objects.get(userid=userid) obj = Inspect.objects.get(id=id) - if user.issuper==1 or obj.user==user: + if user.issuper == 1 or obj.user == user: obj.delete() - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) + return JsonResponse({"code": 0}) elif a == 'detail': id = req.GET.get('id') - a = Inspect.objects.filter(id=id).values('id','state','content','creattime','equipment__num','equipment__id','equipment__name','equipment__area__name','user__name','user__ubelongpart__partname','trouble__yhzt','trouble__yhnum','trouble__yhms','trouble__troubleid') + a = Inspect.objects.filter(id=id).values('id', 'state', 'content', 'creattime', 'equipment__num', 'equipment__id', 'equipment__name', + 'equipment__area__name', 'user__name', 'user__ubelongpart__partname', 'trouble__yhzt', 'trouble__yhnum', 'trouble__yhms', 'trouble__troubleid') return JsonResponse(a[0]) + def apiriskact(req): a = req.GET.get('a') userid = req.session['userid'] companyid = getcompany(userid) - if a=='listall': + if a == 'listall': a = RiskAct.objects.filter(usecomp__partid=companyid) - if int(req.GET.get('area',0)): - a = a.filter(area__id = req.GET.get('area')) - if int(req.GET.get('type',0)): + if int(req.GET.get('area', 0)): + a = a.filter(area__id=req.GET.get('area')) + if int(req.GET.get('type', 0)): a = a.filter(type__dickeyid=req.GET.get('type')) total = a.count() - startnum,endnum=fenye(req) - a = a.order_by('area')[startnum:endnum].values('id','area__name','type__dickeyname','name','level','qrcode','group__groupname','zrbm__partname','zrr__name','gkcj') - return HttpResponse(transjson(total,a),content_type="application/json") - elif a=='listall2': + startnum, endnum = fenye(req) + a = a.order_by('area')[startnum:endnum].values('id', 'area__name', 'type__dickeyname', + 'name', 'level', 'qrcode', 'group__groupname', 'zrbm__partname', 'zrr__name', 'gkcj') + return HttpResponse(transjson(total, a), content_type="application/json") + elif a == 'listall2': a = RiskAct.objects if req.GET.get('area'): - a = a.filter(area__id = req.GET.get('area')) + a = a.filter(area__id=req.GET.get('area')) total = a.count() - a = a.values('id','area__name','type__dickeyname','name','level','qrcode','group__groupname','zrbm__partname','zrr__name','gkcj') - return HttpResponse(transjson(total,a),content_type="application/json") - elif a=='listself': + a = a.values('id', 'area__name', 'type__dickeyname', 'name', 'level', + 'qrcode', 'group__groupname', 'zrbm__partname', 'zrr__name', 'gkcj') + return HttpResponse(transjson(total, a), content_type="application/json") + elif a == 'listself': groups = Group.objects.filter(users=User.objects.get(userid=userid)) objs = RiskAct.objects.filter(group__in=groups) if req.GET.get('area'): - objs = objs.filter(area__id = req.GET.get('area')) + objs = objs.filter(area__id=req.GET.get('area')) if req.GET.get('type'): objs = objs.filter(type__dickeyid=req.GET.get('type')) total = objs.count() - startnum,endnum=fenye(req) - objs = objs.order_by('area')[startnum:endnum].values('id','area__name','type__dickeyname','name','level','qrcode','group__groupname','zrbm__partname','zrr__name','gkcj') - return HttpResponse(transjson(total,objs),content_type="application/json") + startnum, endnum = fenye(req) + objs = objs.order_by('area')[startnum:endnum].values('id', 'area__name', 'type__dickeyname', + 'name', 'level', 'qrcode', 'group__groupname', 'zrbm__partname', 'zrr__name', 'gkcj') + return HttpResponse(transjson(total, objs), content_type="application/json") elif a == 'add': data = json.loads(req.body.decode('utf-8')) obj = RiskAct() @@ -5753,9 +6343,10 @@ def apiriskact(req): obj.zrr = User.objects.get(userid=data['zrr']) obj.group = Group.objects.get(groupid=data['group']) obj.save() - obj.qrcode = makeqr_riskact('https://safeyun.ctcshe.com/miniprogram/riskact?id='+str(obj.id)) + obj.qrcode = makeqr_riskact( + 'https://safeyun.ctcshe.com/miniprogram/riskact?id='+str(obj.id)) obj.save() - return JsonResponse({'code':1}) + return JsonResponse({'code': 1}) elif a == 'edit': data = json.loads(req.body.decode('utf-8')) obj = RiskAct.objects.get(id=data['id']) @@ -5769,39 +6360,42 @@ def apiriskact(req): obj.zrr = User.objects.get(userid=data['zrr']) obj.group = Group.objects.get(groupid=data['group']) obj.save() - return JsonResponse({'code':1}) + return JsonResponse({'code': 1}) elif a == 'detail': obj = RiskAct.objects.filter(id=req.GET.get('id')) num = Risk.objects.filter(riskact=obj[0]).count() - obj = obj.values('id','area__id','place','type__dickeyid','name','type__dickeyname','area__name','level','qrcode','gkcj','group__groupid','zrbm__partid','zrr__userid','group__groupname','zrbm__partname','zrr__name')[0] - obj['num']=num - return JsonResponse({'code':1,'data':obj}) + obj = obj.values('id', 'area__id', 'place', 'type__dickeyid', 'name', 'type__dickeyname', 'area__name', 'level', 'qrcode', + 'gkcj', 'group__groupid', 'zrbm__partid', 'zrr__userid', 'group__groupname', 'zrbm__partname', 'zrr__name')[0] + obj['num'] = num + return JsonResponse({'code': 1, 'data': obj}) elif a == 'del': id = req.GET.get('id') user = User.objects.get(userid=userid) - if user.issuper==1: + if user.issuper == 1: obj = RiskAct.objects.get(id=id) obj.delete() try: cal_area_risk_level(obj.area) except: pass - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) else: - return JsonResponse({"code":0}) - elif a=='listalltask': - a = RiskAct.objects.filter(usecomp__partid=companyid,type__dickeyid=396) + return JsonResponse({"code": 0}) + elif a == 'listalltask': + a = RiskAct.objects.filter( + usecomp__partid=companyid, type__dickeyid=396) total = a.count() - startnum,endnum=fenye(req) - a = a.order_by('-tasktype','group')[startnum:endnum].values('group__groupname','area__name','type__dickeyname','id','group__groupid','name','tasktype','tasktime') - return HttpResponse(transjson(total,a),content_type="application/json") + startnum, endnum = fenye(req) + a = a.order_by('-tasktype', 'group')[startnum:endnum].values('group__groupname', + 'area__name', 'type__dickeyname', 'id', 'group__groupid', 'name', 'tasktype', 'tasktime') + return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'updatetask': tasktype = int(req.POST.get('tasktype')) riskacts = json.loads(req.POST.get('riskacts')) firsttime = req.POST.get('firsttime') if firsttime: firsttime = datetime.strptime(str(firsttime), '%Y-%m-%d %H:%M') - tasktime=datetime.now()#任务开始时间 + tasktime = datetime.now() # 任务开始时间 if firsttime: tasktime = firsttime for x in riskacts: @@ -5809,44 +6403,54 @@ def apiriskact(req): obj.tasktype = tasktype obj.tasktime = tasktime obj.save() - RiskActTask.objects.filter(riskact=obj,usable=1,istask=1).update(usable=2) + RiskActTask.objects.filter( + riskact=obj, usable=1, istask=1).update(usable=2) if tasktype == 1: - RiskActTask.objects.create(riskact=obj,taskadd=tasktime,taskexpire = tasktime + timedelta(hours=8),istask=1) + RiskActTask.objects.create( + riskact=obj, taskadd=tasktime, taskexpire=tasktime + timedelta(hours=8), istask=1) elif tasktype == 2: - RiskActTask.objects.create(riskact=obj,taskadd=tasktime,taskexpire = tasktime + timedelta(days=1),istask=1) + RiskActTask.objects.create( + riskact=obj, taskadd=tasktime, taskexpire=tasktime + timedelta(days=1), istask=1) elif tasktype == 3: - RiskActTask.objects.create(riskact=obj,taskadd=tasktime,taskexpire = tasktime + timedelta(days=7),istask=1) - return JsonResponse({"code":1}) + RiskActTask.objects.create( + riskact=obj, taskadd=tasktime, taskexpire=tasktime + timedelta(days=7), istask=1) + return JsonResponse({"code": 1}) + def apirisk(req): a = req.GET.get('a') userid = req.session['userid'] companyid = getcompany(userid) - if a=='listall': + if a == 'listall': a = Risk.objects.filter(usecomp__partid=companyid) if req.GET.get('riskact'): a = a.filter(riskact__id=req.GET.get('riskact')) total = a.count() else: - startnum,endnum=fenye(req) + startnum, endnum = fenye(req) total = a.count() a = a[startnum:endnum] - a = a.values('id','step','hazard','result','level','riskl','riske','riskc','riskd','measure1','measure2','measure3','measure4','measure5','riskact__name','riskact__area__name','riskact__area__id','riskact__place') - return HttpResponse(transjson(total,a),content_type="application/json") - elif a=='listall2':#按风险点聚合 - a = Risk.objects.filter(usecomp__partid=companyid,riskact__type__dickeyid=396)#设备设施类 + a = a.values('id', 'step', 'hazard', 'result', 'level', 'riskl', 'riske', 'riskc', 'riskd', 'measure1', 'measure2', + 'measure3', 'measure4', 'measure5', 'riskact__name', 'riskact__area__name', 'riskact__area__id', 'riskact__place') + return HttpResponse(transjson(total, a), content_type="application/json") + elif a == 'listall2': # 按风险点聚合 + a = Risk.objects.filter(usecomp__partid=companyid, + riskact__type__dickeyid=396) # 设备设施类 total = a.count() - startnum,endnum=fenye(req) - a = a.order_by('-tasktype','group__groupid')[startnum:endnum].values('group__groupname','riskact__area__name','riskact__type__dickeyname','riskact__id','group__groupid','riskact__name','tasktype','tasktime').annotate(num = Count('group')) - return HttpResponse(transjson(total,a),content_type="application/json") + startnum, endnum = fenye(req) + a = a.order_by('-tasktype', 'group__groupid')[startnum:endnum].values('group__groupname', 'riskact__area__name', + 'riskact__type__dickeyname', 'riskact__id', 'group__groupid', 'riskact__name', 'tasktype', 'tasktime').annotate(num=Count('group')) + return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'listself': groups = Group.objects.filter(users=User.objects.get(userid=userid)) - a = Risk.objects.filter(group__in=groups).values('id','step','level','riskact__id','riskact__name','riskact__area__name','riskact__area__id').order_by('riskact__id','id') + a = Risk.objects.filter(group__in=groups).values('id', 'step', 'level', 'riskact__id', + 'riskact__name', 'riskact__area__name', 'riskact__area__id').order_by('riskact__id', 'id') total = a.count() - return HttpResponse(transjson(total,a),content_type="application/json") + return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'detail': obj = Risk.objects.filter(id=req.GET.get('id')) - data = obj.values('id','riskact__name','riskact__area__name','riskact__type__dickeyname','step','hazard','level','result','measure1','measure2','measure3','measure4','measure5','riskl','riske','riskc','riskd','riskact__group__groupname','riskact__zrbm__partname','riskact__zrr__name','riskact__gkcj') + data = obj.values('id', 'riskact__name', 'riskact__area__name', 'riskact__type__dickeyname', 'step', 'hazard', 'level', 'result', 'measure1', 'measure2', 'measure3', + 'measure4', 'measure5', 'riskl', 'riske', 'riskc', 'riskd', 'riskact__group__groupname', 'riskact__zrbm__partname', 'riskact__zrr__name', 'riskact__gkcj') return JsonResponse(data[0]) elif a == 'steps': data = json.loads(req.body.decode('utf-8')) @@ -5856,14 +6460,15 @@ def apirisk(req): equipmentname = data['name'] objs = Risk.objects.filter(usecomp__partid=companyid) equipment = Equipment.objects.get(id=equipmentid) - if equipment.riskact:#如果该设备存在绑定的风险 + if equipment.riskact: # 如果该设备存在绑定的风险 objs = objs.filter(riskact=equipment.riskact) else: - objs = objs.filter(riskact__area__id=areaid,riskact__name__contains=equipmentname) + objs = objs.filter(riskact__area__id=areaid, + riskact__name__contains=equipmentname) if objs.exists(): - return JsonResponse({'code':1,'steps':list(objs.values('id','step','hazard','result','level','riskact__group__groupname','riskact__zrbm__partname','riskact__zrr__name'))}) + return JsonResponse({'code': 1, 'steps': list(objs.values('id', 'step', 'hazard', 'result', 'level', 'riskact__group__groupname', 'riskact__zrbm__partname', 'riskact__zrr__name'))}) else: - return JsonResponse({'code':0}) + return JsonResponse({'code': 0}) elif a == 'del': id = req.GET.get('id') user = User.objects.get(userid=userid) @@ -5873,7 +6478,7 @@ def apirisk(req): cal_riskact_level(obj.riskact) except: pass - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) elif a == 'add': data = json.loads(req.body.decode('utf-8')) obj = Risk() @@ -5892,21 +6497,21 @@ def apirisk(req): obj.riskc = data['riskc'] riskd = float(data['riskl'])*float(data['riske'])*float(data['riskc']) obj.riskd = riskd - if riskd>=320: - obj.level='重大风险' - elif 320>riskd>=160: - obj.level='较大风险' - elif 160>riskd>=70: - obj.level='一般风险' + if riskd >= 320: + obj.level = '重大风险' + elif 320 > riskd >= 160: + obj.level = '较大风险' + elif 160 > riskd >= 70: + obj.level = '一般风险' else: - obj.level='低风险' + obj.level = '低风险' obj.usecomp = Partment.objects.get(partid=companyid) obj.save() try: cal_riskact_level(obj.riskact) except: pass - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) elif a == 'update': data = json.loads(req.body.decode('utf-8')) obj = Risk.objects.get(id=data['id']) @@ -5924,21 +6529,21 @@ def apirisk(req): obj.riskc = data['riskc'] riskd = float(data['riskl'])*float(data['riske'])*float(data['riskc']) obj.riskd = riskd - if riskd>=320: - obj.level='重大风险' - elif 320>riskd>=160: - obj.level='较大风险' - elif 160>riskd>=70: - obj.level='一般风险' + if riskd >= 320: + obj.level = '重大风险' + elif 320 > riskd >= 160: + obj.level = '较大风险' + elif 160 > riskd >= 70: + obj.level = '一般风险' else: - obj.level='低风险' + obj.level = '低风险' obj.usecomp = Partment.objects.get(partid=companyid) obj.save() try: cal_riskact_level(obj.riskact) except: pass - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) elif a == 'update': data = json.loads(req.body.decode('utf-8')) obj = Risk.objects.get(id=data['id']) @@ -5956,21 +6561,22 @@ def apirisk(req): obj.riskc = data['riskc'] riskd = float(data['riskl'])*float(data['riske'])*float(data['riskc']) obj.riskd = riskd - if riskd>=320: - obj.level='重大风险' - elif 320>riskd>=160: - obj.level='较大风险' - elif 160>riskd>=70: - obj.level='一般风险' + if riskd >= 320: + obj.level = '重大风险' + elif 320 > riskd >= 160: + obj.level = '较大风险' + elif 160 > riskd >= 70: + obj.level = '一般风险' else: - obj.level='低风险' + obj.level = '低风险' obj.usecomp = Partment.objects.get(partid=companyid) obj.save() try: cal_riskact_level(obj.riskact) except: pass - return JsonResponse({"code":1}) + return JsonResponse({"code": 1}) + def apirisktask(req): a = req.GET.get('a') @@ -5983,8 +6589,9 @@ def apirisktask(req): if firsttime: firsttime = datetime.strptime(str(firsttime), '%Y-%m-%d %H:%M') for i in risks: - objs = Risk.objects.filter(riskact__id=i['riskact__id'],group__groupid=i['group__groupid']) - tasktime=datetime.now()#任务开始时间 + objs = Risk.objects.filter( + riskact__id=i['riskact__id'], group__groupid=i['group__groupid']) + tasktime = datetime.now() # 任务开始时间 if firsttime: tasktime = firsttime # if tasktype == 1:#每班 @@ -5995,92 +6602,109 @@ def apirisktask(req): # tasktime = firsttime + timedelta(weeks=1) # elif tasktype == 4:#每月 # tasktime = firsttime - timedelta(weeks=4) - objs.update(tasktype=tasktype,tasktime=tasktime) + objs.update(tasktype=tasktype, tasktime=tasktime) for x in objs: - Risktask.objects.filter(risk=x,usable=1).update(usable=2) + Risktask.objects.filter(risk=x, usable=1).update(usable=2) if tasktype == 1: - Risktask.objects.create(risk=x,group=x.group,taskadd=tasktime,taskexpire = tasktime + timedelta(hours=8)) + Risktask.objects.create( + risk=x, group=x.group, taskadd=tasktime, taskexpire=tasktime + timedelta(hours=8)) elif tasktype == 2: - Risktask.objects.create(risk=x,group=x.group,taskadd=tasktime,taskexpire = tasktime + timedelta(days=1)) + Risktask.objects.create( + risk=x, group=x.group, taskadd=tasktime, taskexpire=tasktime + timedelta(days=1)) elif tasktype == 3: - Risktask.objects.create(risk=x,group=x.group,taskadd=tasktime,taskexpire = tasktime + timedelta(days=7)) - return JsonResponse({"code":1}) + Risktask.objects.create( + risk=x, group=x.group, taskadd=tasktime, taskexpire=tasktime + timedelta(days=7)) + return JsonResponse({"code": 1}) elif a == 'list2todo': groups = Group.objects.filter(users__userid=userid) - objs = Risktask.objects.filter(group__in=groups,usable=1).values('risk__group__groupname','risk__riskact__area__name','risk__riskact__type__dickeyname','risk__riskact__id','risk__group__groupid','risk__riskact__name','risk__riskact__level','risk__tasktype','taskadd','taskexpire','user__userid').annotate(num = Count('risk__group')) + objs = Risktask.objects.filter(group__in=groups, usable=1).values('risk__group__groupname', 'risk__riskact__area__name', 'risk__riskact__type__dickeyname', 'risk__riskact__id', + 'risk__group__groupid', 'risk__riskact__name', 'risk__riskact__level', 'risk__tasktype', 'taskadd', 'taskexpire', 'user__userid').annotate(num=Count('risk__group')) total = objs.count() - startnum,endnum=fenye(req) + startnum, endnum = fenye(req) objs = objs[startnum:endnum] - return HttpResponse(transjson(total,objs),content_type="application/json") + return HttpResponse(transjson(total, objs), content_type="application/json") elif a == 'todonum': groups = Group.objects.filter(users__userid=userid) - objs = Risktask.objects.filter(group__in=groups,usable=1,user=None).annotate(num = Count('risk__group')) + objs = Risktask.objects.filter( + group__in=groups, usable=1, user=None).annotate(num=Count('risk__group')) total = objs.count() - return JsonResponse({"code":1,"todonum":total}) + return JsonResponse({"code": 1, "todonum": total}) elif a == 'list2done': groups = Group.objects.filter(users__userid=userid) - objs = Risktask.objects.filter(Q(group__in=groups)|Q(user__userid=userid),usable__in=[0,2]).values('risk__group__groupname','risk__riskact__area__name','risk__riskact__type__dickeyname','risk__riskact__id','risk__tasktype','taskadd','taskexpire','user__userid','usable').annotate(num = Count('risk__group')) + objs = Risktask.objects.filter(Q(group__in=groups) | Q(user__userid=userid), usable__in=[0, 2]).values( + 'risk__group__groupname', 'risk__riskact__area__name', 'risk__riskact__type__dickeyname', 'risk__riskact__id', 'risk__tasktype', 'taskadd', 'taskexpire', 'user__userid', 'usable').annotate(num=Count('risk__group')) total = objs.count() - startnum,endnum=fenye(req) + startnum, endnum = fenye(req) objs = objs[startnum:endnum] - return HttpResponse(transjson(total,objs),content_type="application/json") - elif a == 'listalltodo': #全厂待办 + return HttpResponse(transjson(total, objs), content_type="application/json") + elif a == 'listalltodo': # 全厂待办 groups = Group.objects.filter(usecomp__partid=companyid) - objs = Risktask.objects.filter(group__in=groups,usable=1).values('risk__group__groupname','risk__riskact__area__name','risk__riskact__type__dickeyname','risk__riskact__id','risk__group__groupid','risk__riskact__name','risk__riskact__level','risk__tasktype','taskadd','taskexpire','user__userid').annotate(num = Count('risk__group')) + objs = Risktask.objects.filter(group__in=groups, usable=1).values('risk__group__groupname', 'risk__riskact__area__name', 'risk__riskact__type__dickeyname', 'risk__riskact__id', + 'risk__group__groupid', 'risk__riskact__name', 'risk__riskact__level', 'risk__tasktype', 'taskadd', 'taskexpire', 'user__userid').annotate(num=Count('risk__group')) total = objs.count() - startnum,endnum=fenye(req) + startnum, endnum = fenye(req) objs = objs[startnum:endnum] - return HttpResponse(transjson(total,objs),content_type="application/json") - elif a == 'listall': #全厂任务聚合 + return HttpResponse(transjson(total, objs), content_type="application/json") + elif a == 'listall': # 全厂任务聚合 groups = Group.objects.filter(usecomp__partid=companyid) - objs = Risktask.objects.filter(group__in=groups).order_by('-usable','risk__group__groupid').values('risk__group__groupname','risk__riskact__area__name','risk__riskact__type__dickeyname','risk__riskact__id','risk__group__groupid','risk__riskact__name','risk__riskact__level','risk__tasktype','taskadd','taskexpire','user__userid','usable').annotate(num = Count('risk__group')) + objs = Risktask.objects.filter(group__in=groups).order_by('-usable', 'risk__group__groupid').values('risk__group__groupname', 'risk__riskact__area__name', 'risk__riskact__type__dickeyname', + 'risk__riskact__id', 'risk__group__groupid', 'risk__riskact__name', 'risk__riskact__level', 'risk__tasktype', 'taskadd', 'taskexpire', 'user__userid', 'usable').annotate(num=Count('risk__group')) total = objs.count() - startnum,endnum=fenye(req) + startnum, endnum = fenye(req) objs = objs[startnum:endnum] - return HttpResponse(transjson(total,objs),content_type="application/json") + return HttpResponse(transjson(total, objs), content_type="application/json") elif a == 'listtask': - objs = Risktask.objects.filter(usable=1,risk__riskact__usecomp__partid=companyid) + objs = Risktask.objects.filter( + usable=1, risk__riskact__usecomp__partid=companyid) if req.GET.get('riskact'): objs = objs.filter(risk__riskact__id=req.GET.get('riskact')) if req.GET.get('group'): objs = objs.filter(group__groupid=req.GET.get('group')) total = objs.count() - startnum,endnum=fenye(req) - objs = objs[startnum:endnum].values('id','risk__id','risk__step','risk__hazard','risk__level','risk__result','risk__measure1','risk__measure2','risk__measure3','risk__measure4','risk__measure5','risk__riskact__area__name','risk__riskact__area__id','risk__riskact__place','trouble__yhnum','user__userid','user__name','user__ubelongpart__partname','taskdo') - return HttpResponse(transjson(total,objs),content_type="application/json") - elif a == 'checktrouble':#发现隐患 + startnum, endnum = fenye(req) + objs = objs[startnum:endnum].values('id', 'risk__id', 'risk__step', 'risk__hazard', 'risk__level', 'risk__result', 'risk__measure1', 'risk__measure2', 'risk__measure3', 'risk__measure4', + 'risk__measure5', 'risk__riskact__area__name', 'risk__riskact__area__id', 'risk__riskact__place', 'trouble__yhnum', 'user__userid', 'user__name', 'user__ubelongpart__partname', 'taskdo') + return HttpResponse(transjson(total, objs), content_type="application/json") + elif a == 'checktrouble': # 发现隐患 data = json.loads(req.body.decode('utf-8')) trouble = data['trouble'] risktask = data['risktask'] - Risktask.objects.filter(id=risktask).update(trouble=Trouble.objects.get(troubleid=trouble)) + Risktask.objects.filter(id=risktask).update( + trouble=Trouble.objects.get(troubleid=trouble)) obj = Risktask.objects.get(id=risktask) - Riskcheck.objects.create(risk=obj.risk,user=User.objects.get(userid=userid),risktask=obj,trouble=Trouble.objects.get(troubleid=trouble)) - return JsonResponse({'code':1}) - elif a == 'update': #风险点检查更新 + Riskcheck.objects.create(risk=obj.risk, user=User.objects.get( + userid=userid), risktask=obj, trouble=Trouble.objects.get(troubleid=trouble)) + return JsonResponse({'code': 1}) + elif a == 'update': # 风险点检查更新 data = json.loads(req.body.decode('utf-8')) nowtime = datetime.now() - Risktask.objects.filter(id__in=data['tasks']).update(user=User.objects.get(userid=userid),taskdo=nowtime) + Risktask.objects.filter(id__in=data['tasks']).update( + user=User.objects.get(userid=userid), taskdo=nowtime) for i in data['tasks']: objs = Riskcheck.objects.filter(risktask__id=i) if objs.exists(): objs.update(dotime=nowtime) else: obj = Risktask.objects.get(id=i) - Riskcheck.objects.create(risk=obj.risk,user=User.objects.get(userid=userid),risktask=obj,dotime=nowtime) - return JsonResponse({'code':1}) + Riskcheck.objects.create(risk=obj.risk, user=User.objects.get( + userid=userid), risktask=obj, dotime=nowtime) + return JsonResponse({'code': 1}) + def apiriskacttask(req): a = req.GET.get('a') userid = req.session['userid'] companyid = getcompany(userid) - if a == 'listalltask': #全厂任务 - objs = RiskActTask.objects.filter(riskact__usecomp__partid=companyid,istask=1).order_by('-usable','riskact__group__groupid').values('riskact__group__groupname','riskact__area__name','riskact__type__dickeyname','riskact__id','riskact__group__groupid','riskact__name','riskact__level','riskact__tasktype','taskadd','taskexpire','user__userid','usable','taskdo','user__name') + if a == 'listalltask': # 全厂任务 + objs = RiskActTask.objects.filter(riskact__usecomp__partid=companyid, istask=1).order_by('-usable', 'riskact__group__groupid').values('riskact__group__groupname', 'riskact__area__name', + 'riskact__type__dickeyname', 'riskact__id', 'riskact__group__groupid', 'riskact__name', 'riskact__level', 'riskact__tasktype', 'taskadd', 'taskexpire', 'user__userid', 'usable', 'taskdo', 'user__name') total = objs.count() - startnum,endnum=fenye(req) + startnum, endnum = fenye(req) objs = objs[startnum:endnum] - return HttpResponse(transjson(total,objs),content_type="application/json") - elif a == 'listall': #全厂排查记录 - objs = RiskActTask.objects.filter(riskact__usecomp__partid=companyid).exclude(user=None) + return HttpResponse(transjson(total, objs), content_type="application/json") + elif a == 'listall': # 全厂排查记录 + objs = RiskActTask.objects.filter( + riskact__usecomp__partid=companyid).exclude(user=None) if req.GET.get('pcbm'): parts = getparts(req.GET.get('pcbm')) objs = objs.filter(user__ubelongpart__in=parts) @@ -6089,33 +6713,40 @@ def apiriskacttask(req): if req.GET.get('jssj'): objs = objs.filter(taskdo__lte=req.GET.get('jssj')) total = objs.count() - startnum,endnum=fenye(req) - objs = objs[startnum:endnum].values('id','riskact__name','riskact__area__name','riskact__place','taskdo','state','user__ubelongpart__partname','user__name','taskdo') - return HttpResponse(transjson(total,objs),content_type="application/json") - elif a == 'listalltodo': #全厂待办任务 - objs = RiskActTask.objects.filter(riskact__usecomp__partid=companyid,istask=1,user=None) + startnum, endnum = fenye(req) + objs = objs[startnum:endnum].values('id', 'riskact__name', 'riskact__area__name', 'riskact__place', + 'taskdo', 'state', 'user__ubelongpart__partname', 'user__name', 'taskdo') + return HttpResponse(transjson(total, objs), content_type="application/json") + elif a == 'listalltodo': # 全厂待办任务 + objs = RiskActTask.objects.filter( + riskact__usecomp__partid=companyid, istask=1, user=None) total = objs.count() - startnum,endnum=fenye(req) - objs = objs[startnum:endnum].values('id','riskact__group__groupname','riskact__area__name','riskact__type__dickeyname','riskact__id','riskact__group__groupid','riskact__name','riskact__level','riskact__tasktype','taskadd','taskexpire','user__userid','usable') - return HttpResponse(transjson(total,objs),content_type="application/json") - elif a == 'listself':#排查记录 + startnum, endnum = fenye(req) + objs = objs[startnum:endnum].values('id', 'riskact__group__groupname', 'riskact__area__name', 'riskact__type__dickeyname', 'riskact__id', + 'riskact__group__groupid', 'riskact__name', 'riskact__level', 'riskact__tasktype', 'taskadd', 'taskexpire', 'user__userid', 'usable') + return HttpResponse(transjson(total, objs), content_type="application/json") + elif a == 'listself': # 排查记录 a = RiskActTask.objects.filter(user__userid=userid) total = a.count() - startnum,endnum=fenye(req) - a = a.order_by('-id')[startnum:endnum].values('id','riskact__level','riskact__name','riskact__area__name','riskact__place','taskdo','state','usable','riskact__group__groupname','taskadd','taskexpire','user__userid','riskact__id') - return HttpResponse(transjson(total,a),content_type="application/json") - elif a == 'listmytodo':#待办 + startnum, endnum = fenye(req) + a = a.order_by('-id')[startnum:endnum].values('id', 'riskact__level', 'riskact__name', 'riskact__area__name', 'riskact__place', + 'taskdo', 'state', 'usable', 'riskact__group__groupname', 'taskadd', 'taskexpire', 'user__userid', 'riskact__id') + return HttpResponse(transjson(total, a), content_type="application/json") + elif a == 'listmytodo': # 待办 groups = Group.objects.filter(users__userid=userid) - objs = RiskActTask.objects.filter(riskact__group__in=groups,usable=1,istask=1,user=None) + objs = RiskActTask.objects.filter( + riskact__group__in=groups, usable=1, istask=1, user=None) total = objs.count() - startnum,endnum=fenye(req) - objs = objs[startnum:endnum].values('id','riskact__group__groupname','riskact__area__name','riskact__type__dickeyname','riskact__id','riskact__group__groupid','riskact__name','riskact__level','riskact__tasktype','taskadd','taskexpire','user__userid') - return HttpResponse(transjson(total,objs),content_type="application/json") + startnum, endnum = fenye(req) + objs = objs[startnum:endnum].values('id', 'riskact__group__groupname', 'riskact__area__name', 'riskact__type__dickeyname', 'riskact__id', + 'riskact__group__groupid', 'riskact__name', 'riskact__level', 'riskact__tasktype', 'taskadd', 'taskexpire', 'user__userid') + return HttpResponse(transjson(total, objs), content_type="application/json") elif a == 'todonum': groups = Group.objects.filter(users__userid=userid) - objs = RiskActTask.objects.filter(riskact__group__in=groups,usable=1,user=None) + objs = RiskActTask.objects.filter( + riskact__group__in=groups, usable=1, user=None) total = objs.count() - return JsonResponse({"code":1,"todonum":total}) + return JsonResponse({"code": 1, "todonum": total}) # elif a == 'listmydone': # groups = Group.objects.filter(users__userid=userid) # objs = Risktask.objects.filter(Q(group__in=groups)|Q(user__userid=userid),usable__in=[0,2]).values('risk__group__groupname','risk__riskact__area__name','risk__riskact__type__dickeyname','risk__riskact__id','risk__tasktype','taskadd','taskexpire','user__userid','usable').annotate(num = Count('risk__group')) @@ -6124,6 +6755,7 @@ def apiriskacttask(req): # objs = objs[startnum:endnum] # return HttpResponse(transjson(total,objs),content_type="application/json") + def apiriskcheck2(req): a = req.GET.get('a') userid = req.session['userid'] @@ -6133,36 +6765,41 @@ def apiriskcheck2(req): data = json.loads(req.body.decode('utf-8')) checkrisks = data['checks'] user = User.objects.get(userid=userid) - objs = RiskActTask.objects.filter(riskact__id=data['riskact'],usable=1,user=None,istask=1)#匹配未处理的任务 + objs = RiskActTask.objects.filter( + riskact__id=data['riskact'], usable=1, user=None, istask=1) # 匹配未处理的任务 if objs.exists(): - obj=objs[0] - obj.user=user - obj.taskdo=nowtime + obj = objs[0] + obj.user = user + obj.taskdo = nowtime obj.save() else: obj = RiskActTask() obj.riskact = RiskAct.objects.get(id=data['riskact']) - obj.user=user - obj.istask=0 - obj.taskdo=nowtime + obj.user = user + obj.istask = 0 + obj.taskdo = nowtime obj.save() for i in checkrisks: risk = Risk.objects.get(id=i['id']) if 'trouble' in i: - Riskcheck2.objects.create(risk=risk,riskacttask=obj,trouble=Trouble.objects.get(troubleid=i['trouble']),dotime=nowtime) - obj.state=0 + Riskcheck2.objects.create(risk=risk, riskacttask=obj, trouble=Trouble.objects.get( + troubleid=i['trouble']), dotime=nowtime) + obj.state = 0 obj.save() else: - Riskcheck2.objects.create(risk=risk,riskacttask=obj,dotime=nowtime) - return JsonResponse({'code':1}) + Riskcheck2.objects.create( + risk=risk, riskacttask=obj, dotime=nowtime) + return JsonResponse({'code': 1}) elif a == 'listall': objs = Riskcheck2.objects.filter(risk__usecomp__partid=companyid) if req.GET.get('riskacttask'): objs = objs.filter(riskacttask__id=req.GET.get('riskacttask')) total = objs.count() - startnum,endnum=fenye(req) - objs = objs.order_by('-id')[startnum:endnum].values('id','risk__step','risk__level','trouble__yhnum','risk__hazard','risk__result','risk__measure1','risk__measure2','risk__measure3','risk__measure4','risk__measure5') - return HttpResponse(transjson(total,objs),content_type="application/json") + startnum, endnum = fenye(req) + objs = objs.order_by('-id')[startnum:endnum].values('id', 'risk__step', 'risk__level', 'trouble__yhnum', 'risk__hazard', + 'risk__result', 'risk__measure1', 'risk__measure2', 'risk__measure3', 'risk__measure4', 'risk__measure5') + return HttpResponse(transjson(total, objs), content_type="application/json") + def apiriskcheck(req): a = req.GET.get('a') @@ -6174,22 +6811,27 @@ def apiriskcheck(req): for i in data: risk = Risk.objects.get(id=i['id']) if 'trouble' in i: - Riskcheck.objects.create(risk=risk,user=User.objects.get(userid=userid),trouble=Trouble.objects.get(troubleid=i['trouble']),dotime=nowtime) - objs = Risktask.objects.filter(risk=risk,usable=1,user=None) + Riskcheck.objects.create(risk=risk, user=User.objects.get( + userid=userid), trouble=Trouble.objects.get(troubleid=i['trouble']), dotime=nowtime) + objs = Risktask.objects.filter(risk=risk, usable=1, user=None) if objs.exists(): - objs.update(user=User.objects.get(userid=userid),taskdo=nowtime,trouble=Trouble.objects.get(troubleid=i['trouble'])) + objs.update(user=User.objects.get(userid=userid), taskdo=nowtime, + trouble=Trouble.objects.get(troubleid=i['trouble'])) else: - Riskcheck.objects.create(risk=risk,dotime=nowtime,user=User.objects.get(userid=userid)) - objs = Risktask.objects.filter(risk=risk,usable=1,user=None) + Riskcheck.objects.create( + risk=risk, dotime=nowtime, user=User.objects.get(userid=userid)) + objs = Risktask.objects.filter(risk=risk, usable=1, user=None) if objs.exists(): - objs.update(user=User.objects.get(userid=userid),taskdo=nowtime) - return JsonResponse({'code':1}) + objs.update(user=User.objects.get( + userid=userid), taskdo=nowtime) + return JsonResponse({'code': 1}) elif a == 'listself': a = Riskcheck.objects.filter(user__userid=userid) total = a.count() - startnum,endnum=fenye(req) - a = a.order_by('-id')[startnum:endnum].values('id','risk__step','risk__level','risk__riskact__name','risk__riskact__area__name','risk__riskact__place','dotime','trouble__yhnum') - return HttpResponse(transjson(total,a),content_type="application/json") + startnum, endnum = fenye(req) + a = a.order_by('-id')[startnum:endnum].values('id', 'risk__step', 'risk__level', 'risk__riskact__name', + 'risk__riskact__area__name', 'risk__riskact__place', 'dotime', 'trouble__yhnum') + return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'listall': objs = Riskcheck.objects.filter(user__usecomp__partid=companyid) if req.GET.get('pcbm'): @@ -6200,9 +6842,11 @@ def apiriskcheck(req): if req.GET.get('jssj'): objs = objs.filter(dotime__lte=req.GET.get('jssj')) total = objs.count() - startnum,endnum=fenye(req) - objs = objs.order_by('-id')[startnum:endnum].values('id','risk__step','risk__level','risk__riskact__name','risk__riskact__area__name','risk__riskact__place','dotime','trouble__yhnum','user__ubelongpart__partname','user__name') - return HttpResponse(transjson(total,objs),content_type="application/json") + startnum, endnum = fenye(req) + objs = objs.order_by('-id')[startnum:endnum].values('id', 'risk__step', 'risk__level', 'risk__riskact__name', + 'risk__riskact__area__name', 'risk__riskact__place', 'dotime', 'trouble__yhnum', 'user__ubelongpart__partname', 'user__name') + return HttpResponse(transjson(total, objs), content_type="application/json") + def apireport(req): a = req.GET.get('a') @@ -6211,49 +6855,52 @@ def apireport(req): year = req.GET.get('year') month = req.GET.get('month') part = req.GET.get('part') - objs = Report.objects.filter(year=year,month=month) - if part and part !='undefined': + objs = Report.objects.filter(year=year, month=month) + if part and part != 'undefined': objs = objs.filter(part__partid=part) else: objs = objs.filter(part=User.objects.get(userid=userid).usecomp) if objs.exists(): - return JsonResponse({'code':1,'data':objs.values('id','cause','suggest')[0]}) + return JsonResponse({'code': 1, 'data': objs.values('id', 'cause', 'suggest')[0]}) else: - return JsonResponse({'code':0,'data':''}) + return JsonResponse({'code': 0, 'data': ''}) elif a == 'add': data = json.loads(req.body.decode('utf-8')) year = req.GET.get('year') month = req.GET.get('month') part = req.GET.get('part') if part: - objs = Report.objects.filter(year=year,month=month,part__partid=part) + objs = Report.objects.filter( + year=year, month=month, part__partid=part) else: - objs = Report.objects.filter(year=year,month=month,part=User.objects.get(userid=userid).usecomp) + objs = Report.objects.filter( + year=year, month=month, part=User.objects.get(userid=userid).usecomp) if objs.exists(): obj = objs[0] else: obj = Report() - obj.year =year + obj.year = year obj.month = month if part: - obj.part=Partment.objects.get(partid=part) + obj.part = Partment.objects.get(partid=part) else: obj.part = User.objects.get(userid=userid).usecomp obj.cause = data['cause'] obj.suggest = data['suggest'] obj.save() - return JsonResponse({'code':1}) + return JsonResponse({'code': 1}) -#公司信息展示 +# 公司信息展示 def companyinfo(req): - message='' + message = '' try: user = User.objects.filter(pk=req.session['userid']) companyid = getcompany(req.session['userid']) companyname = Partment.objects.get(partid=companyid).partname # 生成CompanyInof的model对象 - companyinfo = CompanyInfo.objects.get_or_create(partment_id=companyid)[0] + companyinfo = CompanyInfo.objects.get_or_create( + partment_id=companyid)[0] except Exception as e: raise # message='操作错误' @@ -6265,37 +6912,45 @@ def companyinfo(req): companyinfo.name = companyinfo_form.cleaned_data.get('name') companyinfo.address = companyinfo_form.cleaned_data.get('address') companyinfo.nature = companyinfo_form.cleaned_data.get('nature') - companyinfo.fixed_assets = companyinfo_form.cleaned_data.get('fixed_assets') - companyinfo.introduce = companyinfo_form.cleaned_data.get('introduce') - companyinfo.legalperson = companyinfo_form.cleaned_data.get('legalperson') - companyinfo.legalperson_phone = companyinfo_form.cleaned_data.get('legalperson_phone') + companyinfo.fixed_assets = companyinfo_form.cleaned_data.get( + 'fixed_assets') + companyinfo.introduce = companyinfo_form.cleaned_data.get( + 'introduce') + companyinfo.legalperson = companyinfo_form.cleaned_data.get( + 'legalperson') + companyinfo.legalperson_phone = companyinfo_form.cleaned_data.get( + 'legalperson_phone') companyinfo.liaison = companyinfo_form.cleaned_data.get('liaison') - companyinfo.liaison_fax = companyinfo_form.cleaned_data.get('liaison_fax') - companyinfo.liaison_phone = companyinfo_form.cleaned_data.get('liaison_phone') - companyinfo.peoplenum = companyinfo_form.cleaned_data.get('peoplenum') + companyinfo.liaison_fax = companyinfo_form.cleaned_data.get( + 'liaison_fax') + companyinfo.liaison_phone = companyinfo_form.cleaned_data.get( + 'liaison_phone') + companyinfo.peoplenum = companyinfo_form.cleaned_data.get( + 'peoplenum') companyinfo.website = companyinfo_form.cleaned_data.get('website') companyinfo.save() #html = 'companyinfo.html' - #return redirect('/withmenu/', html="companyinfo.html") - #return HttpResponseRedirect("/withmenu/?html=companyinfo.html") - return JsonResponse({'code':1}) + # return redirect('/withmenu/', html="companyinfo.html") + # return HttpResponseRedirect("/withmenu/?html=companyinfo.html") + return JsonResponse({'code': 1}) from django.forms import model_to_dict companyinfo_form = forms.CompanyInfoForm(model_to_dict(companyinfo)) return render(req, 'companyinfo.html', {'companyinfo': companyinfo_form}) -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 dump(obj): print('\n'.join(['%s:%s' % item for item in obj.__dict__.items()])) -#教育培训统计图 +# 教育培训统计图 + + def trainfg(req): a = req.GET.get('a') userid = req.session['userid'] @@ -6303,21 +6958,23 @@ def trainfg(req): if a == 'trainfig': year = int(req.GET.get('year')) - months = [1,2,3,4,5,6,7,8,9,10,11,12] - companylevel=[]#公司级 - workshoplevel=[]#车间/工段级 - teamlevel=[]#班组级 - departmentlevel =[]#部门分厂级 + months = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + companylevel = [] # 公司级 + workshoplevel = [] # 车间/工段级 + teamlevel = [] # 班组级 + departmentlevel = [] # 部门分厂级 for month in months: - first_day,first_day_of_next_month = gettime(datetime(year,month,1)) + first_day, first_day_of_next_month = gettime( + datetime(year, month, 1)) - a = Train.objects.filter(usecomp__partid=companyid,deletemark=1,starttime__range=(first_day, first_day_of_next_month)) + a = Train.objects.filter(usecomp__partid=companyid, deletemark=1, starttime__range=( + first_day, first_day_of_next_month)) companylevel.append(a.filter(trainlevel__dicid=5).count()) workshoplevel.append(a.filter(trainlevel__dicid=6).count()) teamlevel.append(a.filter(trainlevel__dicid=7).count()) departmentlevel.append(a.filter(trainlevel__dicid=42).count()) - return JsonResponse({'code':1,'companylevel':companylevel,'workshoplevel':workshoplevel,'teamlevel':teamlevel,'departmentlevel':departmentlevel}) - elif a=='trainuser': + return JsonResponse({'code': 1, 'companylevel': companylevel, 'workshoplevel': workshoplevel, 'teamlevel': teamlevel, 'departmentlevel': departmentlevel}) + elif a == 'trainuser': a = Trainuser.objects.filter(participant__usecomp__partid=companyid) if req.GET.get('qssj'): a = a.filter(train__submittime__gte=req.GET.get('qssj')) @@ -6325,39 +6982,44 @@ def trainfg(req): a = a.filter(train__submittime__lte=req.GET.get('jssj')) if req.GET.get('fxbm'): fxbm = req.GET.get('fxbm') - parts = Partment.objects.filter(partlink__contains=',' + fxbm + ',')|Partment.objects.filter(partid=fxbm) + parts = Partment.objects.filter( + partlink__contains=',' + fxbm + ',') | Partment.objects.filter(partid=fxbm) a = a.filter(participant__ubelongpart__in=parts) total = a.count() - objs = a.values('participant__name','participant__username').annotate(count=Count('participant__userid')) - return HttpResponse(transjson(total,objs),content_type="application/json") - elif a=='traintype': + objs = a.values('participant__name', 'participant__username').annotate( + count=Count('participant__userid')) + return HttpResponse(transjson(total, objs), content_type="application/json") + elif a == 'traintype': year = int(req.GET.get('year')) month = int(req.GET.get('month')) - traintypelist=[] - - first_day,first_day_of_next_month = gettime(datetime(year,month,1)) - a = Train.objects.filter(usecomp__partid=companyid,deletemark=1,starttime__range=(first_day, first_day_of_next_month)) - for i in Dickey.objects.filter(Q(usecomps__contains=',1,' )|Q(usecomps__contains=','+str(companyid)+','),dicparent_id=8): - count=a.filter(traintype__dickeyid=i.dickeyid).count() - dickeyname=i.dickeyname - traintypelist.append({'value':count,'name':dickeyname}) - return HttpResponse(json.dumps({'code':1,'data':{'traintypelist':list(traintypelist)}}), content_type='application/json') -#设备统计图 + traintypelist = [] + + first_day, first_day_of_next_month = gettime(datetime(year, month, 1)) + a = Train.objects.filter(usecomp__partid=companyid, deletemark=1, starttime__range=( + first_day, first_day_of_next_month)) + for i in Dickey.objects.filter(Q(usecomps__contains=',1,') | Q(usecomps__contains=','+str(companyid)+','), dicparent_id=8): + count = a.filter(traintype__dickeyid=i.dickeyid).count() + dickeyname = i.dickeyname + traintypelist.append({'value': count, 'name': dickeyname}) + return HttpResponse(json.dumps({'code': 1, 'data': {'traintypelist': list(traintypelist)}}), content_type='application/json') +# 设备统计图 + def equipmentfig(req): a = req.GET.get('a') userid = req.session['userid'] companyid = getcompany(userid) - - if a=='state': - # year = int(req.GET.get('year')) - # month = int(req.GET.get('month')) - # first_day,first_day_of_next_month = gettime(datetime(year,month,1)) - a = Equipment.objects.filter(usecomp__partid=companyid,deletemark=1) - normal = a.filter(state=1).count()#正常 - abnormal = a.filter(state=0).count()#异常 - return JsonResponse({"code":1,"normal":normal,"abnormal":abnormal}) - elif a=='eqmcount': - eqmlist=Equipment.objects.filter(usecomp__partid=companyid,deletemark=1).values('area__name').annotate(num = Count('area')) - return HttpResponse(json.dumps({'code':1,'data':{'eqmlist':list(eqmlist)}}), content_type='application/json') + if a == 'state': + # year = int(req.GET.get('year')) + # month = int(req.GET.get('month')) + # first_day,first_day_of_next_month = gettime(datetime(year,month,1)) + a = Equipment.objects.filter(usecomp__partid=companyid, deletemark=1) + normal = a.filter(state=1).count() # 正常 + abnormal = a.filter(state=0).count() # 异常 + return JsonResponse({"code": 1, "normal": normal, "abnormal": abnormal}) + elif a == 'eqmcount': + eqmlist = Equipment.objects.filter(usecomp__partid=companyid, deletemark=1).values( + 'area__name').annotate(num=Count('area')) + + return HttpResponse(json.dumps({'code': 1, 'data': {'eqmlist': list(eqmlist)}}), content_type='application/json') From b8885bba8b3a7befd07d1ed9982bcdb9a0a4639a Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 9 Dec 2019 20:54:48 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- safesite/models.py | 1488 +++++++++++++---------- safesite/templates/bindwechat.html | 63 +- safesite/templates/datashow.html | 3 +- safesite/templates/operation.html | 38 +- safesite/templates/operationdetail.html | 10 +- safesite/templates/trouble.html | 17 +- safesite/views.py | 15 +- 7 files changed, 967 insertions(+), 667 deletions(-) diff --git a/safesite/models.py b/safesite/models.py index d90f696c..a71dd598 100644 --- a/safesite/models.py +++ b/safesite/models.py @@ -1,71 +1,87 @@ from django.db import models import uuid import django.utils.timezone as timezone -from django.contrib.postgres.fields import JSONField,ArrayField +from django.contrib.postgres.fields import JSONField, ArrayField import jwt import datetime # Create your models here. + class Partment(models.Model): partid = models.AutoField(primary_key=True) - partname = models.CharField(max_length=30,default='生产部') - parentid = models.ForeignKey('self',blank=True,null=True,on_delete=models.CASCADE) - partlink = models.CharField(max_length=200,blank=True)#关系 - deletemark=models.IntegerField(default='1') - creattime = models.DateTimeField(default = timezone.now) - iscompany = models.IntegerField(default=0)#是否是公司 - aqy = models.CharField(max_length=1000,default=',')#安全员 - bmzg = models.CharField(max_length=1000,default=',')#主管 - bsq = models.CharField(max_length=1000,default=',')#授权者 - position = JSONField('坐标',null=True,blank=True) + partname = models.CharField(max_length=30, default='生产部') + parentid = models.ForeignKey( + 'self', blank=True, null=True, on_delete=models.CASCADE) + partlink = models.CharField(max_length=200, blank=True) # 关系 + deletemark = models.IntegerField(default='1') + creattime = models.DateTimeField(default=timezone.now) + iscompany = models.IntegerField(default=0) # 是否是公司 + aqy = models.CharField(max_length=1000, default=',') # 安全员 + bmzg = models.CharField(max_length=1000, default=',') # 主管 + bsq = models.CharField(max_length=1000, default=',') # 授权者 + position = JSONField('坐标', null=True, blank=True) + def __str__(self): - return self.partname + return self.partname + class Map(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=50) - pic = models.CharField(max_length=1000,blank=True) - parent = models.ForeignKey('self',blank=True,null=True,on_delete=models.CASCADE) - link = models.CharField(max_length=200,blank=True) + pic = models.CharField(max_length=1000, blank=True) + parent = models.ForeignKey( + 'self', blank=True, null=True, on_delete=models.CASCADE) + link = models.CharField(max_length=200, blank=True) usecomp = models.ForeignKey(Partment, on_delete=models.CASCADE) default = models.IntegerField(default=0) deletemark = models.IntegerField(default='1') + class Area(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=50) - polygon = JSONField(null=True,blank=True)#坐标集 - order = models.IntegerField(default=0)#排序 - parent = models.ForeignKey('self',blank=True,null=True,on_delete=models.CASCADE) - link = models.CharField(max_length=200,blank=True) - belongmap = models.ForeignKey(Map, on_delete=models.CASCADE,related_name='belongmap',null=True,blank=True) - containmap = models.ForeignKey(Map, on_delete=models.CASCADE, related_name='containmap',null=True,blank=True) + polygon = JSONField(null=True, blank=True) # 坐标集 + order = models.IntegerField(default=0) # 排序 + parent = models.ForeignKey( + 'self', blank=True, null=True, on_delete=models.CASCADE) + link = models.CharField(max_length=200, blank=True) + belongmap = models.ForeignKey( + Map, on_delete=models.CASCADE, related_name='belongmap', null=True, blank=True) + containmap = models.ForeignKey( + Map, on_delete=models.CASCADE, related_name='containmap', null=True, blank=True) deletemark = models.IntegerField(default='1') usecomp = models.ForeignKey(Partment, on_delete=models.CASCADE) - risklevel = models.CharField(max_length=50,null=True,blank=True)#风险等级 - qrcode = models.CharField(max_length=200,blank=True,null=True)#区域二维码 - + risklevel = models.CharField(max_length=50, null=True, blank=True) # 风险等级 + qrcode = models.CharField(max_length=200, blank=True, null=True) # 区域二维码 + + class User(models.Model): userid = models.AutoField(primary_key=True) - empid = models.CharField(max_length=20,blank=True,null=True)#工号 - username = models.CharField(max_length=30,unique=True)#账号 + empid = models.CharField(max_length=20, blank=True, null=True) # 工号 + username = models.CharField(max_length=30, unique=True) # 账号 name = models.CharField(max_length=20) password = models.CharField(max_length=30) - epassword = models.CharField(max_length=200,blank=True,null=True) - ubelongpart = models.ForeignKey(Partment,related_name='upart', on_delete=models.CASCADE) - openid=models.CharField(max_length=200,null=True,blank=True)#公众号openid - nickname=models.CharField(max_length=200,null=True,blank=True)#昵称 - headimgurl=models.CharField(max_length=200,null=True,blank=True)#头像 - issuper=models.IntegerField(default='0')#超管 - deletemark=models.IntegerField(default='1') - mpopenid=models.CharField(max_length=200,null=True,blank=True) #小程序openid - usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True)#所属公司 + epassword = models.CharField(max_length=200, blank=True, null=True) + ubelongpart = models.ForeignKey( + Partment, related_name='upart', on_delete=models.CASCADE) + openid = models.CharField( + max_length=200, null=True, blank=True) # 公众号openid + nickname = models.CharField(max_length=200, null=True, blank=True) # 昵称 + headimgurl = models.CharField(max_length=200, null=True, blank=True) # 头像 + issuper = models.IntegerField(default='0') # 超管 + deletemark = models.IntegerField(default='1') + mpopenid = models.CharField( + max_length=200, null=True, blank=True) # 小程序openid + usecomp = models.ForeignKey( + Partment, on_delete=models.CASCADE, null=True, blank=True) # 所属公司 + def __str__(self): return self.username + @property def token(self): return self.generate_jwt_token() - + def generate_jwt_token(self): token = jwt.encode({ 'exp': datetime.datetime.utcnow() + datetime.timedelta(days=1), @@ -77,239 +93,299 @@ class User(models.Model): return token.decode('utf-8') + class Userprofile(models.Model): id = models.AutoField(primary_key=True) - user = models.OneToOneField(User,null=True,blank=True,on_delete=models.CASCADE) - realname = models.CharField(max_length=50)#真实姓名 - gender = models.CharField(max_length=50)#性别 - cardnum = models.CharField(max_length=50)#身份证号 + user = models.OneToOneField( + User, null=True, blank=True, on_delete=models.CASCADE) + realname = models.CharField(max_length=50) # 真实姓名 + gender = models.CharField(max_length=50) # 性别 + cardnum = models.CharField(max_length=50) # 身份证号 + class Dicclass(models.Model): - dicid= models.AutoField(primary_key=True) - dicname = models.CharField(max_length=30)#字典分类名 - parentid = models.ForeignKey('self',blank=True,null=True, on_delete=models.CASCADE) + dicid = models.AutoField(primary_key=True) + dicname = models.CharField(max_length=30) # 字典分类名 + parentid = models.ForeignKey( + 'self', blank=True, null=True, on_delete=models.CASCADE) + def __str__(self): return self.dicname - -class Dickey(models.Model):#字典 - dickeyid= models.AutoField(primary_key=True) + + +class Dickey(models.Model): # 字典 + dickeyid = models.AutoField(primary_key=True) dickeyname = models.CharField(max_length=200) dicparent = models.ForeignKey(Dicclass, on_delete=models.CASCADE) - parent = models.ForeignKey('self',blank=True,null=True, on_delete=models.CASCADE) - usecomps = models.CharField(max_length=200,default=',1,')#所用公司 - nousecomps = models.CharField(max_length=200,default='')#不用公司 - detail = models.CharField(max_length=1000,default='') - deletemark=models.IntegerField(default='1') - creattime = models.DateTimeField(default = timezone.now) - modifytime = models.DateTimeField(auto_now = True) + parent = models.ForeignKey( + 'self', blank=True, null=True, on_delete=models.CASCADE) + usecomps = models.CharField(max_length=200, default=',1,') # 所用公司 + nousecomps = models.CharField(max_length=200, default='') # 不用公司 + detail = models.CharField(max_length=1000, default='') + deletemark = models.IntegerField(default='1') + creattime = models.DateTimeField(default=timezone.now) + modifytime = models.DateTimeField(auto_now=True) + def __str__(self): - return self.dickeyname - -class Trouble(models.Model):#隐患排查 + return self.dickeyname + + +class Trouble(models.Model): # 隐患排查 ZT_CHOICES = ( - (7,'措施/方案待提交'), - (5, '待复查'), - (1, '待评估'), - (3, '待整改'), - (6, '已归档'), - (2,'措施/方案待确认'), - (4,'待审核'), - (0,'待新增'), - ) + (7, '措施/方案待提交'), + (5, '待复查'), + (1, '待评估'), + (3, '待整改'), + (6, '已归档'), + (2, '措施/方案待确认'), + (4, '待审核'), + (0, '待新增'), + ) SH_CHOICES = ( - (1,'通过'), - (2, '审核未通过'), - (3, '复查未通过'), - (4, '已修改'), - (5,'评估未通过'), - (6,'未采纳'), - ) - deletemark=models.IntegerField(default='1') + (1, '通过'), + (2, '审核未通过'), + (3, '复查未通过'), + (4, '已修改'), + (5, '评估未通过'), + (6, '未采纳'), + ) + deletemark = models.IntegerField(default='1') troubleid = models.AutoField(primary_key=True) - yhnum=models.CharField(max_length=100,null=True,blank=True)#编号 - fxsj = models.DateTimeField(default = timezone.now)#发现时间 - fxbm = models.ForeignKey(Partment,related_name='fxbm',on_delete=models.CASCADE,null=True,blank=True) - fxr = models.ForeignKey(User,related_name='fxr', on_delete=models.CASCADE,null=True,blank=True) - jclx = models.ForeignKey(Dickey,related_name='jclx', on_delete=models.CASCADE,null=True,blank=True) - yhdd = models.CharField(max_length=200,default='test') - yhdj = models.ForeignKey(Dickey,related_name='yhdj',on_delete=models.CASCADE,null=True,blank=True) - yhlx = models.ForeignKey(Dicclass,related_name='yhlx', on_delete=models.CASCADE,null=True,blank=True) - yhlb = models.ForeignKey(Dickey,related_name='yhlb',on_delete=models.CASCADE,null=True,blank=True) - yhpg = models.ForeignKey(Dickey,related_name='yhpg',on_delete=models.CASCADE,null=True,blank=True) + yhnum = models.CharField(max_length=100, null=True, blank=True) # 编号 + fxsj = models.DateTimeField(default=timezone.now) # 发现时间 + fxbm = models.ForeignKey( + Partment, related_name='fxbm', on_delete=models.CASCADE, null=True, blank=True) + fxr = models.ForeignKey(User, related_name='fxr', + on_delete=models.CASCADE, null=True, blank=True) + jclx = models.ForeignKey(Dickey, related_name='jclx', + on_delete=models.CASCADE, null=True, blank=True) + yhdd = models.CharField(max_length=200, default='test') + yhdj = models.ForeignKey(Dickey, related_name='yhdj', + on_delete=models.CASCADE, null=True, blank=True) + yhlx = models.ForeignKey( + Dicclass, related_name='yhlx', on_delete=models.CASCADE, null=True, blank=True) + yhlb = models.ForeignKey(Dickey, related_name='yhlb', + on_delete=models.CASCADE, null=True, blank=True) + yhpg = models.ForeignKey(Dickey, related_name='yhpg', + on_delete=models.CASCADE, null=True, blank=True) yhms = models.TextField(blank=True) zgms = models.TextField(blank=True) yyfx = models.TextField(blank=True) zgcs = models.TextField(blank=True) - yhtp = models.CharField(max_length=1000,blank=True) - zghtp = models.CharField(max_length=1000,blank=True) - yhzt = models.IntegerField(choices = ZT_CHOICES,null=True,blank=True) - tbsj = models.DateTimeField(default = timezone.now) - zgbm = models.ForeignKey(Partment,related_name='zgbm',null=True,blank=True, on_delete=models.CASCADE) - zgr = models.ForeignKey(User,related_name='zgr',null=True,blank=True, on_delete=models.CASCADE) - xzr = models.CharField(max_length=200,default='')#协助人 - zgqx = models.DateTimeField(null=True,blank=True) - zgsj = models.DateTimeField(null=True,blank=True) - pgsh=models.ManyToManyField(User,related_name='pgsh', through='TroubleAccess')#评估审核 - material = models.CharField(max_length=1000,null=True,blank=True) - todouser = models.ForeignKey(User,related_name='todor',null=True,blank=True,on_delete=models.CASCADE) - usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True) - xgsj = models.DateTimeField(auto_now = True) - sybzt =models.IntegerField(choices = ZT_CHOICES,null=True,blank=True) - shresult = models.IntegerField(choices = SH_CHOICES,null=True,blank=True) - pgr = models.ForeignKey(User,related_name='pgr', on_delete=models.CASCADE,null=True,blank=True)#评估人 - zpr = models.ForeignKey(User,related_name='zpr', on_delete=models.CASCADE,null=True,blank=True)#指派人 - csqrr = models.ForeignKey(User,related_name='csqrr', on_delete=models.CASCADE,null=True,blank=True)#措施确认人 - fcr = models.ForeignKey(User,related_name='fcr', on_delete=models.CASCADE,null=True,blank=True)#复查人 - shr = models.ForeignKey(User,related_name='shr', on_delete=models.CASCADE,null=True,blank=True)#审核人 - fcyj = models.TextField(null=True,blank=True)#复查意见 - shyj= models.TextField(null=True,blank=True)#审核意见 - pgyj= models.TextField(null=True,blank=True)#评估退回意见 - yhqy = models.ForeignKey(Area,on_delete=models.CASCADE,null=True,blank=True)#隐患区域 - + yhtp = models.CharField(max_length=1000, blank=True) + zghtp = models.CharField(max_length=1000, blank=True) + yhzt = models.IntegerField(choices=ZT_CHOICES, null=True, blank=True) + tbsj = models.DateTimeField(default=timezone.now) + zgbm = models.ForeignKey( + Partment, related_name='zgbm', null=True, blank=True, on_delete=models.CASCADE) + zgr = models.ForeignKey(User, related_name='zgr', + null=True, blank=True, on_delete=models.CASCADE) + xzr = models.CharField(max_length=200, default='') # 协助人 + zgqx = models.DateTimeField(null=True, blank=True) + zgsj = models.DateTimeField(null=True, blank=True) + pgsh = models.ManyToManyField( + User, related_name='pgsh', through='TroubleAccess') # 评估审核 + material = models.CharField(max_length=1000, null=True, blank=True) + todouser = models.ForeignKey( + User, related_name='todor', null=True, blank=True, on_delete=models.CASCADE) + usecomp = models.ForeignKey( + Partment, on_delete=models.CASCADE, null=True, blank=True) + xgsj = models.DateTimeField(auto_now=True) + sybzt = models.IntegerField(choices=ZT_CHOICES, null=True, blank=True) + shresult = models.IntegerField(choices=SH_CHOICES, null=True, blank=True) + pgr = models.ForeignKey(User, related_name='pgr', + on_delete=models.CASCADE, null=True, blank=True) # 评估人 + zpr = models.ForeignKey(User, related_name='zpr', + on_delete=models.CASCADE, null=True, blank=True) # 指派人 + csqrr = models.ForeignKey(User, related_name='csqrr', + on_delete=models.CASCADE, null=True, blank=True) # 措施确认人 + fcr = models.ForeignKey(User, related_name='fcr', + on_delete=models.CASCADE, null=True, blank=True) # 复查人 + shr = models.ForeignKey(User, related_name='shr', + on_delete=models.CASCADE, null=True, blank=True) # 审核人 + fcyj = models.TextField(null=True, blank=True) # 复查意见 + shyj = models.TextField(null=True, blank=True) # 审核意见 + pgyj = models.TextField(null=True, blank=True) # 评估退回意见 + yhqy = models.ForeignKey( + Area, on_delete=models.CASCADE, null=True, blank=True) # 隐患区域 -class TroubleAccess(models.Model):#隐患流程表 + +class TroubleAccess(models.Model): # 隐患流程表 troubleid = models.ForeignKey(Trouble, on_delete=models.CASCADE) clr = models.ForeignKey(User, on_delete=models.CASCADE) - action = models.CharField(max_length=100,null=True,blank=True) + action = models.CharField(max_length=100, null=True, blank=True) opinion = models.CharField(max_length=500) - result = models.IntegerField(null=True,blank=True) - yhzt =models.IntegerField(default='1') - accesssj = models.DateTimeField(default = timezone.now) - + result = models.IntegerField(null=True, blank=True) + yhzt = models.IntegerField(default='1') + accesssj = models.DateTimeField(default=timezone.now) -class Drill(models.Model):#应急演练 - drillid= models.AutoField(primary_key=True) - drillnum= models.CharField(max_length=100,default='1') + +class Drill(models.Model): # 应急演练 + drillid = models.AutoField(primary_key=True) + drillnum = models.CharField(max_length=100, default='1') drillname = models.CharField(max_length=100) - drillplace=models.CharField(max_length=200) - starttime=models.DateTimeField(default = timezone.now) - participant=models.ManyToManyField(User,related_name='ylcjr',through='Drilluser') - submituser=models.ForeignKey(User,related_name='yltbr',default='1', on_delete=models.CASCADE) - submittime = models.DateTimeField(default = timezone.now) - modifytime = models.DateTimeField(auto_now = True) - usecomp = models.ForeignKey(Partment,default='1', on_delete=models.CASCADE) - drilllevel=models.ForeignKey(Dicclass,related_name='yljb',default='1', on_delete=models.CASCADE) - drilltype=models.ForeignKey(Dickey,related_name='yllx',default='1', on_delete=models.CASCADE) - drillpart=models.ManyToManyField(Partment,related_name='ylbm',default='1') - drillcontent=models.ForeignKey(Dickey,related_name='ylnr',default='1', on_delete=models.CASCADE) - detailcontent=models.CharField(max_length=1000,null=True,blank=True) - commander=models.CharField(max_length=200,null=True,blank=True) - chief=models.ForeignKey(User, on_delete=models.CASCADE,null=True,blank=True) - otherparticipant=models.CharField(max_length=1000,null=True,blank=True) - deletemark=models.IntegerField(default='1') - state=models.IntegerField(default='0')#默认未评估 - participantnum=models.IntegerField(default='1',null=True,blank=True) - knownum=models.IntegerField(default='1',null=True,blank=True) - plan = models.CharField(max_length=1000,null=True,blank=True) - material = models.CharField(max_length=1000,null=True,blank=True) + drillplace = models.CharField(max_length=200) + starttime = models.DateTimeField(default=timezone.now) + participant = models.ManyToManyField( + User, related_name='ylcjr', through='Drilluser') + submituser = models.ForeignKey( + User, related_name='yltbr', default='1', on_delete=models.CASCADE) + submittime = models.DateTimeField(default=timezone.now) + modifytime = models.DateTimeField(auto_now=True) + usecomp = models.ForeignKey( + Partment, default='1', on_delete=models.CASCADE) + drilllevel = models.ForeignKey( + Dicclass, related_name='yljb', default='1', on_delete=models.CASCADE) + drilltype = models.ForeignKey( + Dickey, related_name='yllx', default='1', on_delete=models.CASCADE) + drillpart = models.ManyToManyField( + Partment, related_name='ylbm', default='1') + drillcontent = models.ForeignKey( + Dickey, related_name='ylnr', default='1', on_delete=models.CASCADE) + detailcontent = models.CharField(max_length=1000, null=True, blank=True) + commander = models.CharField(max_length=200, null=True, blank=True) + chief = models.ForeignKey( + User, on_delete=models.CASCADE, null=True, blank=True) + otherparticipant = models.CharField(max_length=1000, null=True, blank=True) + deletemark = models.IntegerField(default='1') + state = models.IntegerField(default='0') # 默认未评估 + participantnum = models.IntegerField(default='1', null=True, blank=True) + knownum = models.IntegerField(default='1', null=True, blank=True) + plan = models.CharField(max_length=1000, null=True, blank=True) + material = models.CharField(max_length=1000, null=True, blank=True) -class Drilluser(models.Model):#演练参加人表 + +class Drilluser(models.Model): # 演练参加人表 drillid = models.ForeignKey(Drill, on_delete=models.CASCADE) participant = models.ForeignKey(User, on_delete=models.CASCADE) - score = models.IntegerField(null=True,blank=True) + score = models.IntegerField(null=True, blank=True) -class Observe(models.Model):#行为观察 + +class Observe(models.Model): # 行为观察 lookid = models.AutoField(primary_key=True) - looknum = models.CharField(max_length=100,default='1') - actname = models.CharField(max_length=100) #作业名称 + looknum = models.CharField(max_length=100, default='1') + actname = models.CharField(max_length=100) # 作业名称 lookplace = models.CharField(max_length=200) - looktime = models.DateTimeField(default = timezone.now) - looktime2 = models.DateTimeField(null=True,blank=True) - lookers = models.ManyToManyField(User,related_name='gcrs')#陪同人员 - lookpart = models.ForeignKey(Partment,related_name='gcbm',on_delete=models.CASCADE) #观察部门 - looker = models.ForeignKey(User,related_name='gcr',default='1', on_delete=models.CASCADE)#观察人 - lookeder = models.CharField(max_length=100,null=True,blank=True)#被观察对象 - submittime = models.DateTimeField(default = timezone.now) - modifytime = models.DateTimeField(auto_now = True) - usecomp = models.ForeignKey(Partment,default='1', on_delete=models.CASCADE) - otherunsafe = models.CharField(max_length=1000,null=True,blank=True) - makeresult = models.CharField(max_length=1000,null=True,blank=True) #整改情况 - safecontent = models.CharField(max_length=1000,null=True,blank=True) + looktime = models.DateTimeField(default=timezone.now) + looktime2 = models.DateTimeField(null=True, blank=True) + lookers = models.ManyToManyField(User, related_name='gcrs') # 陪同人员 + lookpart = models.ForeignKey( + Partment, related_name='gcbm', on_delete=models.CASCADE) # 观察部门 + looker = models.ForeignKey( + User, related_name='gcr', default='1', on_delete=models.CASCADE) # 观察人 + lookeder = models.CharField(max_length=100, null=True, blank=True) # 被观察对象 + submittime = models.DateTimeField(default=timezone.now) + modifytime = models.DateTimeField(auto_now=True) + usecomp = models.ForeignKey( + Partment, default='1', on_delete=models.CASCADE) + otherunsafe = models.CharField(max_length=1000, null=True, blank=True) + makeresult = models.CharField( + max_length=1000, null=True, blank=True) # 整改情况 + safecontent = models.CharField(max_length=1000, null=True, blank=True) deletemark = models.IntegerField(default='1') - lookimg = models.CharField(max_length=1000,null=True,blank=True) - unsafe = models.ManyToManyField(Dickey,related_name='baqxw',through='Unsafes') - record1 = models.TextField(null=True,blank=True) #交流情况 - record2 = models.TextField(null=True,blank=True) #共识和改进 - reads = models.ManyToManyField(User,related_name='observetouser',through='Observeto') + lookimg = models.CharField(max_length=1000, null=True, blank=True) + unsafe = models.ManyToManyField( + Dickey, related_name='baqxw', through='Unsafes') + record1 = models.TextField(null=True, blank=True) # 交流情况 + record2 = models.TextField(null=True, blank=True) # 共识和改进 + reads = models.ManyToManyField( + User, related_name='observetouser', through='Observeto') -class Unsafes(models.Model):#行为观察不安全记录 +class Unsafes(models.Model): # 行为观察不安全记录 observe = models.ForeignKey(Observe, on_delete=models.CASCADE) - unsafedickey = models.ForeignKey(Dickey,related_name='unsafedickey', on_delete=models.CASCADE) - unsafedicclass = models.ForeignKey(Dicclass,related_name='unsafedicclass', on_delete=models.CASCADE) + unsafedickey = models.ForeignKey( + Dickey, related_name='unsafedickey', on_delete=models.CASCADE) + unsafedicclass = models.ForeignKey( + Dicclass, related_name='unsafedicclass', on_delete=models.CASCADE) -class Observeto(models.Model):#行为观察阅读记录 + +class Observeto(models.Model): # 行为观察阅读记录 id = models.AutoField(primary_key=True) observe = models.ForeignKey(Observe, on_delete=models.CASCADE) - user = models.ForeignKey(User,on_delete=models.CASCADE) + user = models.ForeignKey(User, on_delete=models.CASCADE) read = models.IntegerField(default=0) - submittime = models.DateTimeField(default = timezone.now) + submittime = models.DateTimeField(default=timezone.now) -class Miss(models.Model):#未遂事件 + +class Miss(models.Model): # 未遂事件 missid = models.AutoField(primary_key=True) - missnum = models.CharField(max_length=100,default='1') - missqy = models.ForeignKey(Area,on_delete=models.CASCADE,null=True,blank=True) + missnum = models.CharField(max_length=100, default='1') + missqy = models.ForeignKey( + Area, on_delete=models.CASCADE, null=True, blank=True) missplace = models.CharField(max_length=200) - misstime = models.DateTimeField(default = timezone.now) - misspart = models.ForeignKey(Partment,related_name='fsbm',on_delete=models.CASCADE) #发生部门 - misser = models.ForeignKey(User,related_name='fsr',default='1', on_delete=models.CASCADE)#当事人 - description = models.CharField(max_length=1000,null=True,blank=True) - submittime = models.DateTimeField(default = timezone.now) - modifytime = models.DateTimeField(auto_now = True) - usecomp = models.ForeignKey(Partment,default='1', on_delete=models.CASCADE) + misstime = models.DateTimeField(default=timezone.now) + misspart = models.ForeignKey( + Partment, related_name='fsbm', on_delete=models.CASCADE) # 发生部门 + misser = models.ForeignKey( + User, related_name='fsr', default='1', on_delete=models.CASCADE) # 当事人 + description = models.CharField(max_length=1000, null=True, blank=True) + submittime = models.DateTimeField(default=timezone.now) + modifytime = models.DateTimeField(auto_now=True) + usecomp = models.ForeignKey( + Partment, default='1', on_delete=models.CASCADE) deletemark = models.IntegerField(default='1') - missimg = models.CharField(max_length=1000,null=True,blank=True) - prevent = models.CharField(max_length=1000,null=True,blank=True) #防范措施 - lesson = models.CharField(max_length=1000,null=True,blank=True) #经验教训 - reads = models.ManyToManyField(User,related_name='misstouser',through='Missto') + missimg = models.CharField(max_length=1000, null=True, blank=True) + prevent = models.CharField(max_length=1000, null=True, blank=True) # 防范措施 + lesson = models.CharField(max_length=1000, null=True, blank=True) # 经验教训 + reads = models.ManyToManyField( + User, related_name='misstouser', through='Missto') -class Missto(models.Model):#未遂事件阅读表 + +class Missto(models.Model): # 未遂事件阅读表 id = models.AutoField(primary_key=True) miss = models.ForeignKey(Miss, on_delete=models.CASCADE) - user = models.ForeignKey(User,on_delete=models.CASCADE) + user = models.ForeignKey(User, on_delete=models.CASCADE) read = models.IntegerField(default=0) - submittime = models.DateTimeField(default = timezone.now) + submittime = models.DateTimeField(default=timezone.now) - -class Group(models.Model):#用户组,岗位 + +class Group(models.Model): # 用户组,岗位 type_choices = ( - (1,'安全员'), - (2, '部门主管'), - (3, '全体用户'), - (4, '客户自定义'), - (0, '超管') + (1, '安全员'), + (2, '部门主管'), + (3, '全体用户'), + (4, '客户自定义'), + (0, '超管') ) groupid = models.AutoField(primary_key=True) - groupname = models.CharField(max_length=30,blank=True,null=True) + groupname = models.CharField(max_length=30, blank=True, null=True) grouptype = models.IntegerField(default=4) - users = models.ManyToManyField(User,related_name='userg') - users2 = models.ManyToManyField(User,related_name='userg2',through='Groupuser2') - usecomp = models.ForeignKey(Partment, on_delete=models.CASCADE,related_name='usecompg',default=1) - menulink = models.CharField(max_length=200,default='11') + users = models.ManyToManyField(User, related_name='userg') + users2 = models.ManyToManyField( + User, related_name='userg2', through='Groupuser2') + usecomp = models.ForeignKey( + Partment, on_delete=models.CASCADE, related_name='usecompg', default=1) + menulink = models.CharField(max_length=200, default='11') -class Groupuser2(models.Model): #比较好的方式 + +class Groupuser2(models.Model): # 比较好的方式 group = models.ForeignKey(Group, on_delete=models.CASCADE) user = models.ForeignKey(User, on_delete=models.CASCADE) - part = models.ForeignKey(Partment, on_delete=models.CASCADE,null=True,blank=True) + part = models.ForeignKey( + Partment, on_delete=models.CASCADE, null=True, blank=True) -class Menu(models.Model):#菜单 + +class Menu(models.Model): # 菜单 menuid = models.AutoField(primary_key=True) - menuname = models.CharField(max_length=30,blank=True,null=True) - menucode = models.CharField(max_length=30,blank=True,null=True) - url = models.CharField(max_length=30,blank=True,null=True) - detail = models.CharField(max_length=100,blank=True,null=True) - parentid = models.ForeignKey('self',blank=True,null=True,on_delete=models.CASCADE) - icon = models.CharField(max_length=100,default='') - sortnum = models.IntegerField(default='1') - deletemark=models.IntegerField(default='1') + menuname = models.CharField(max_length=30, blank=True, null=True) + menucode = models.CharField(max_length=30, blank=True, null=True) + url = models.CharField(max_length=30, blank=True, null=True) + detail = models.CharField(max_length=100, blank=True, null=True) + parentid = models.ForeignKey( + 'self', blank=True, null=True, on_delete=models.CASCADE) + icon = models.CharField(max_length=100, default='') + sortnum = models.IntegerField(default='1') + deletemark = models.IntegerField(default='1') -class Yjyc(models.Model):#预警预测表 + +class Yjyc(models.Model): # 预警预测表 yjycid = models.AutoField(primary_key=True) - buildtime = models.DateTimeField(default = timezone.now) - modifytime = models.DateTimeField(auto_now = True) - year = models.IntegerField(default=1,null=True,blank=True) - month = models.IntegerField(default=1,null=True,blank=True) - week = models.IntegerField(default=0,null=True,blank=True) + buildtime = models.DateTimeField(default=timezone.now) + modifytime = models.DateTimeField(auto_now=True) + year = models.IntegerField(default=1, null=True, blank=True) + month = models.IntegerField(default=1, null=True, blank=True) + week = models.IntegerField(default=0, null=True, blank=True) yjz = models.FloatField(default=0) ycz = models.FloatField(default=0) b = models.FloatField(default=0) @@ -318,176 +394,211 @@ class Yjyc(models.Model):#预警预测表 drillvalue = models.FloatField(default=0) observevalue = models.FloatField(default=0) missvalue = models.FloatField(default=0) - usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True) + usecomp = models.ForeignKey( + Partment, on_delete=models.CASCADE, null=True, blank=True) -class Yjsetup(models.Model):#预警预测设置表 +class Yjsetup(models.Model): # 预警预测设置表 yjsetupid = models.AutoField(primary_key=True) - usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True) - modifytime = models.DateTimeField(auto_now = True) - monthyhavg = models.IntegerField(default='100',null=True,blank=True) - safev = models.IntegerField(default='10',null=True,blank=True) - warnv = models.IntegerField(default='15',null=True,blank=True) - alertv = models.IntegerField(default='20',null=True,blank=True) - maxv = models.IntegerField(default='50',null=True,blank=True) - yhpgqz = models.IntegerField(default='4',null=True,blank=True) - yhdjqz = models.IntegerField(default='4',null=True,blank=True) - yhsblqz = models.IntegerField(default='1',null=True,blank=True) - yhzglqz = models.IntegerField(default='4',null=True,blank=True) - pxdjqz = models.IntegerField(default='3',null=True,blank=True) - pxxgqz = models.IntegerField(default='4',null=True,blank=True) - yldjqz = models.IntegerField(default='3',null=True,blank=True) - ylxgqz = models.IntegerField(default='3',null=True,blank=True) + usecomp = models.ForeignKey( + Partment, on_delete=models.CASCADE, null=True, blank=True) + modifytime = models.DateTimeField(auto_now=True) + monthyhavg = models.IntegerField(default='100', null=True, blank=True) + safev = models.IntegerField(default='10', null=True, blank=True) + warnv = models.IntegerField(default='15', null=True, blank=True) + alertv = models.IntegerField(default='20', null=True, blank=True) + maxv = models.IntegerField(default='50', null=True, blank=True) + yhpgqz = models.IntegerField(default='4', null=True, blank=True) + yhdjqz = models.IntegerField(default='4', null=True, blank=True) + yhsblqz = models.IntegerField(default='1', null=True, blank=True) + yhzglqz = models.IntegerField(default='4', null=True, blank=True) + pxdjqz = models.IntegerField(default='3', null=True, blank=True) + pxxgqz = models.IntegerField(default='4', null=True, blank=True) + yldjqz = models.IntegerField(default='3', null=True, blank=True) + ylxgqz = models.IntegerField(default='3', null=True, blank=True) -class Socertificate(models.Model):#特种作业证书 +class Socertificate(models.Model): # 特种作业证书 type_choices = ( - (1,'正常'), - (2, '待复查'), - (3, '超期'), + (1, '正常'), + (2, '待复查'), + (3, '超期'), ) id = models.AutoField(primary_key=True) - user = models.ForeignKey(User,on_delete=models.CASCADE,null=True,blank=True) - usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True) + user = models.ForeignKey( + User, on_delete=models.CASCADE, null=True, blank=True) + usecomp = models.ForeignKey( + Partment, on_delete=models.CASCADE, null=True, blank=True) realname = models.CharField(max_length=50) gender = models.CharField(max_length=50) - cardnum = models.CharField(max_length=50) + cardnum = models.CharField(max_length=50) zylb = models.CharField(max_length=50) - czxm = models.CharField(max_length=50) + czxm = models.CharField(max_length=50) fzjg = models.CharField(max_length=100) - ccfzrq = models.DateField(null=True,blank=True) - yfsrq = models.DateField(null=True,blank=True) - yxqkssj = models.DateField(null=True,blank=True) - yxqjssj = models.DateField(null=True,blank=True) - sjfssj = models.DateField(null=True,blank=True) - zszt = models.IntegerField(choices = type_choices,null=True,blank=True) - url = models.CharField(max_length=1000,null=True,blank=True) + ccfzrq = models.DateField(null=True, blank=True) + yfsrq = models.DateField(null=True, blank=True) + yxqkssj = models.DateField(null=True, blank=True) + yxqjssj = models.DateField(null=True, blank=True) + sjfssj = models.DateField(null=True, blank=True) + zszt = models.IntegerField(choices=type_choices, null=True, blank=True) + url = models.CharField(max_length=1000, null=True, blank=True) -class Safecert(models.Model):#安全资格证书 + +class Safecert(models.Model): # 安全资格证书 type_choices = ( - (1,'正常'), - (2, '待复查'), - (3, '超期'), + (1, '正常'), + (2, '待复查'), + (3, '超期'), ) id = models.AutoField(primary_key=True) - user = models.ForeignKey(User,on_delete=models.CASCADE,null=True,blank=True) - usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True) + user = models.ForeignKey( + User, on_delete=models.CASCADE, null=True, blank=True) + usecomp = models.ForeignKey( + Partment, on_delete=models.CASCADE, null=True, blank=True) realname = models.CharField(max_length=50) gender = models.CharField(max_length=50) - cardnum = models.CharField(max_length=50) - zglx = models.CharField(max_length=50) #资格类型 - dwlx = models.CharField(max_length=50) + cardnum = models.CharField(max_length=50) + zglx = models.CharField(max_length=50) # 资格类型 + dwlx = models.CharField(max_length=50) fzjg = models.CharField(max_length=100) - yfsrq = models.DateField(null=True,blank=True) - yxqkssj = models.DateField(null=True,blank=True) - yxqjssj = models.DateField(null=True,blank=True) - zszt = models.IntegerField(choices = type_choices,null=True,blank=True) - url = models.CharField(max_length=1000,null=True,blank=True) + yfsrq = models.DateField(null=True, blank=True) + yxqkssj = models.DateField(null=True, blank=True) + yxqjssj = models.DateField(null=True, blank=True) + zszt = models.IntegerField(choices=type_choices, null=True, blank=True) + url = models.CharField(max_length=1000, null=True, blank=True) -class Suggest(models.Model):#合理化建议 + +class Suggest(models.Model): # 合理化建议 ZT_CHOICES = ( - (1, '待评估'), - (2, '待处理'), - (3, '待确认'), - (4, '已归档'), - ) + (1, '待评估'), + (2, '待处理'), + (3, '待确认'), + (4, '已归档'), + ) jyid = models.AutoField(primary_key=True) - jynum = models.CharField(max_length=100,default='1') - jylb = models.ForeignKey(Dickey,related_name='jylb',on_delete=models.CASCADE) - jyrq = models.DateField(default = timezone.now) - jybm = models.ForeignKey(Partment,related_name='jybm',on_delete=models.CASCADE) #建议部门 - jyr = models.ForeignKey(User,related_name='jyr',on_delete=models.CASCADE)#建议人 - jyimg = models.CharField(max_length=1000,null=True,blank=True) - submittime = models.DateTimeField(default = timezone.now) - modifytime = models.DateTimeField(auto_now = True) - usecomp = models.ForeignKey(Partment,default='1', on_delete=models.CASCADE) - dqxz = models.CharField(max_length=1000,null=True,blank=True) #当前现状 - jynr = models.CharField(max_length=1000,null=True,blank=True) #建议内容 - qwxg = models.CharField(max_length=1000,null=True,blank=True) #期望效果 - jyfk = models.CharField(max_length=1000,null=True,blank=True) #建议反馈 - clcs = models.CharField(max_length=1000,null=True,blank=True) #处理措施 - clms = models.CharField(max_length=1000,null=True,blank=True) #处理描述 + jynum = models.CharField(max_length=100, default='1') + jylb = models.ForeignKey( + Dickey, related_name='jylb', on_delete=models.CASCADE) + jyrq = models.DateField(default=timezone.now) + jybm = models.ForeignKey( + Partment, related_name='jybm', on_delete=models.CASCADE) # 建议部门 + jyr = models.ForeignKey(User, related_name='jyr', + on_delete=models.CASCADE) # 建议人 + jyimg = models.CharField(max_length=1000, null=True, blank=True) + submittime = models.DateTimeField(default=timezone.now) + modifytime = models.DateTimeField(auto_now=True) + usecomp = models.ForeignKey( + Partment, default='1', on_delete=models.CASCADE) + dqxz = models.CharField(max_length=1000, null=True, blank=True) # 当前现状 + jynr = models.CharField(max_length=1000, null=True, blank=True) # 建议内容 + qwxg = models.CharField(max_length=1000, null=True, blank=True) # 期望效果 + jyfk = models.CharField(max_length=1000, null=True, blank=True) # 建议反馈 + clcs = models.CharField(max_length=1000, null=True, blank=True) # 处理措施 + clms = models.CharField(max_length=1000, null=True, blank=True) # 处理描述 jyimg2 = JSONField() - jyzt = models.IntegerField(choices = ZT_CHOICES,null=True,blank=True) - todouser = models.ForeignKey(User,related_name='stodouser',on_delete=models.CASCADE,null=True,blank=True)#下一步处理人 - pgr = models.ForeignKey(User,related_name='spgr',on_delete=models.CASCADE,null=True,blank=True) - clr = models.ForeignKey(User,related_name='sclr',on_delete=models.CASCADE,null=True,blank=True) - flow = models.ManyToManyField(User,related_name='jyflow',through='Suggestflow') - jyqy = models.ForeignKey(Area,on_delete=models.CASCADE,null=True,blank=True) - jydd = models.CharField(max_length=200,null=True,blank=True) - yjwcsj = models.DateTimeField(null=True,blank=True) #预计完成时间 - sjwcsj = models.DateTimeField(null=True,blank=True) #实际完成时间 - shyj = models.CharField(max_length=1000,null=True,blank=True) #审核意见 + jyzt = models.IntegerField(choices=ZT_CHOICES, null=True, blank=True) + todouser = models.ForeignKey(User, related_name='stodouser', + on_delete=models.CASCADE, null=True, blank=True) # 下一步处理人 + pgr = models.ForeignKey(User, related_name='spgr', + on_delete=models.CASCADE, null=True, blank=True) + clr = models.ForeignKey(User, related_name='sclr', + on_delete=models.CASCADE, null=True, blank=True) + flow = models.ManyToManyField( + User, related_name='jyflow', through='Suggestflow') + jyqy = models.ForeignKey( + Area, on_delete=models.CASCADE, null=True, blank=True) + jydd = models.CharField(max_length=200, null=True, blank=True) + yjwcsj = models.DateTimeField(null=True, blank=True) # 预计完成时间 + sjwcsj = models.DateTimeField(null=True, blank=True) # 实际完成时间 + shyj = models.CharField(max_length=1000, null=True, blank=True) # 审核意见 accept = models.IntegerField(default=1) -class Suggestflow(models.Model):#建议流程 + +class Suggestflow(models.Model): # 建议流程 id = models.AutoField(primary_key=True) suggest = models.ForeignKey(Suggest, on_delete=models.CASCADE) user = models.ForeignKey(User, on_delete=models.CASCADE) - action = models.CharField(max_length=100,null=True,blank=True) + action = models.CharField(max_length=100, null=True, blank=True) opinion = models.CharField(max_length=500) result = models.IntegerField(default=1) - submittime = models.DateTimeField(default = timezone.now) + submittime = models.DateTimeField(default=timezone.now) -class Notice(models.Model):#通知通告 + +class Notice(models.Model): # 通知通告 id = models.AutoField(primary_key=True) - title = models.CharField(u'标题',max_length=100) - pubpart = models.ForeignKey(Partment,related_name='fbbm',on_delete=models.CASCADE)#发布部门 - pubuser = models.ForeignKey(User,related_name='fbz',on_delete=models.CASCADE)#发布人 + title = models.CharField(u'标题', max_length=100) + pubpart = models.ForeignKey( + Partment, related_name='fbbm', on_delete=models.CASCADE) # 发布部门 + pubuser = models.ForeignKey( + User, related_name='fbz', on_delete=models.CASCADE) # 发布人 content = models.TextField(u'详情') - submittime = models.DateTimeField(u'创建时间',default = timezone.now) - modifytime = models.DateTimeField(u'更新时间',default = timezone.now) - tousers = models.ManyToManyField(User,related_name='tzry', through='Noticeto') - material = models.CharField(max_length=1000,null=True,blank=True) + submittime = models.DateTimeField(u'创建时间', default=timezone.now) + modifytime = models.DateTimeField(u'更新时间', default=timezone.now) + tousers = models.ManyToManyField( + User, related_name='tzry', through='Noticeto') + material = models.CharField(max_length=1000, null=True, blank=True) deletemark = models.IntegerField(default='1') reads = models.IntegerField(default='0') isgg = models.IntegerField(default='1') - usecomps = models.CharField(max_length=1000,null=True,blank=True)#使用公司 + usecomps = models.CharField(max_length=1000, null=True, blank=True) # 使用公司 # def __str__(self): # return self.title # class Meta: # verbose_name = '资讯动态' # verbose_name_plural = '资讯动态' -class Noticeto(models.Model):#通知阅读表 - noticeid = models.ForeignKey(Notice, on_delete=models.CASCADE) - receiver = models.ForeignKey(User, on_delete=models.CASCADE)#接收人 - comment = models.CharField(max_length=500) - read =models.IntegerField(default='0') -class Operation(models.Model):#作业表 + +class Noticeto(models.Model): # 通知阅读表 + noticeid = models.ForeignKey(Notice, on_delete=models.CASCADE) + receiver = models.ForeignKey(User, on_delete=models.CASCADE) # 接收人 + comment = models.CharField(max_length=500) + read = models.IntegerField(default='0') + + +class Operation(models.Model): # 作业表 zyid = models.AutoField(primary_key=True) - zylx = models.ForeignKey(Dickey, on_delete=models.CASCADE,null=True,blank=True) + zylx = models.ForeignKey( + Dickey, on_delete=models.CASCADE, null=True, blank=True) zynum = models.CharField(max_length=100) - zyqy = models.ForeignKey(Area,on_delete=models.CASCADE,null=True,blank=True) - zydd = models.CharField(max_length=100,null=True,blank=True) - zybm = models.ForeignKey(Partment,related_name='zybm',on_delete=models.CASCADE,null=True,blank=True)#作业部门 - sdbm = models.ForeignKey(Partment,related_name='sdbm',on_delete=models.CASCADE,null=True,blank=True)#属地部门 - zyfzr = models.ForeignKey(User,related_name='zyfzr',on_delete=models.CASCADE,null=True,blank=True)#作业负责人 - zynr = models.TextField(null=True,blank=True) - zyry = models.ManyToManyField(User,related_name='zyry', through='Operzyry') - kssj = models.DateTimeField(default = timezone.now) - jssj = models.DateTimeField(default = timezone.now) - submittime = models.DateTimeField(u'创建时间',default = timezone.now) - zyimg = models.CharField(max_length=1000,default='') - zyimg2 = models.CharField(max_length=1000,default='') + zyqy = models.ForeignKey( + Area, on_delete=models.CASCADE, null=True, blank=True) + zydd = models.CharField(max_length=100, null=True, blank=True) + zybm = models.ForeignKey(Partment, related_name='zybm', + on_delete=models.CASCADE, null=True, blank=True) # 作业部门 + sdbm = models.ForeignKey(Partment, related_name='sdbm', + on_delete=models.CASCADE, null=True, blank=True) # 属地部门 + zyfzr = models.ForeignKey(User, related_name='zyfzr', + on_delete=models.CASCADE, null=True, blank=True) # 作业负责人 + zynr = models.TextField(null=True, blank=True) + zyry = models.ManyToManyField( + User, related_name='zyry', through='Operzyry') + kssj = models.DateTimeField(default=timezone.now) + jssj = models.DateTimeField(default=timezone.now) + submittime = models.DateTimeField(u'创建时间', default=timezone.now) + zyimg = models.CharField(max_length=1000, default='') + zyimg2 = models.CharField(max_length=1000, default='') deletemark = models.IntegerField(default='1') zyzt = JSONField() fxcs = models.CharField(max_length=200) - todouser = models.ForeignKey(User,related_name='zyclr',on_delete=models.CASCADE,null=True,blank=True) - todousers = ArrayField(models.IntegerField(), blank=True,null=True) - usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True,default=1) + todouser = models.ForeignKey( + User, related_name='zyclr', on_delete=models.CASCADE, null=True, blank=True) + todousers = ArrayField(models.IntegerField(), blank=True, null=True) + usecomp = models.ForeignKey( + Partment, on_delete=models.CASCADE, null=True, blank=True, default=1) -class Fxcs(models.Model):#作业分析措施 + +class Fxcs(models.Model): # 作业分析措施 id = models.AutoField(primary_key=True) - zylx = models.ForeignKey(Dickey, on_delete=models.CASCADE,null=True,blank=True) + zylx = models.ForeignKey( + Dickey, on_delete=models.CASCADE, null=True, blank=True) fxfx = models.TextField() aqcs = models.TextField() - cslx = models.CharField(max_length=100,null=True,blank=True) - submittime = models.DateTimeField(default = timezone.now) - modifytime = models.DateTimeField(auto_now = True) + cslx = models.CharField(max_length=100, null=True, blank=True) + submittime = models.DateTimeField(default=timezone.now) + modifytime = models.DateTimeField(auto_now=True) deletemark = models.IntegerField(default='1') - usecomps = models.CharField(max_length=200,default=',1,') - nousecomps = models.CharField(max_length=200,default='') + usecomps = models.CharField(max_length=200, default=',1,') + nousecomps = models.CharField(max_length=200, default='') # class Opersplc(models.Model): # id = models.AutoField(primary_key=True) @@ -499,395 +610,506 @@ class Fxcs(models.Model):#作业分析措施 # modifytime = models.DateTimeField(auto_now = True) # submittime = models.DateTimeField(default = timezone.now) -class Operspxq(models.Model):#作业审批流 + +class Operspxq(models.Model): # 作业审批流 id = models.AutoField(primary_key=True) - oper= models.ForeignKey(Operation, on_delete=models.CASCADE) - jdmc = models.CharField(max_length=200) #节点名称 - spbm = models.ForeignKey(Partment, on_delete=models.CASCADE,null=True,blank=True) + oper = models.ForeignKey(Operation, on_delete=models.CASCADE) + jdmc = models.CharField(max_length=200) # 节点名称 + spbm = models.ForeignKey( + Partment, on_delete=models.CASCADE, null=True, blank=True) spr = models.ForeignKey(User, on_delete=models.CASCADE) action = models.CharField(max_length=200) - checked = models.IntegerField(default=1)#0未通过,1通过,2提交 - submittime = models.DateTimeField(default = timezone.now) + checked = models.IntegerField(default=1) # 0未通过,1通过,2提交 + submittime = models.DateTimeField(default=timezone.now) -class Operzyry(models.Model):#作业确认人 + +class Operzyry(models.Model): # 作业确认人 id = models.AutoField(primary_key=True) - oper= models.ForeignKey(Operation, on_delete=models.CASCADE) + oper = models.ForeignKey(Operation, on_delete=models.CASCADE) operzyry = models.ForeignKey(User, on_delete=models.CASCADE) checked = models.IntegerField(default=0) - modifytime = models.DateTimeField(auto_now = True) - submittime = models.DateTimeField(default = timezone.now) + modifytime = models.DateTimeField(auto_now=True) + submittime = models.DateTimeField(default=timezone.now) -class Operationspjd(models.Model):#作业审批节点配置 + +class Operationspjd(models.Model): # 作业审批节点配置 id = models.AutoField(primary_key=True) - zylx = models.ForeignKey(Dickey, on_delete=models.CASCADE,null=True,blank=True) + zylx = models.ForeignKey( + Dickey, on_delete=models.CASCADE, null=True, blank=True) jdmc = models.CharField(max_length=100) - spbm = models.ForeignKey(Partment,related_name='spbm',on_delete=models.CASCADE,null=True,blank=True)#审批部门 - spr = models.ForeignKey(User,related_name='spr',on_delete=models.CASCADE,null=True,blank=True)#审批部门 - sprs = ArrayField(models.IntegerField(), blank=True,null=True) - submittime = models.DateTimeField(u'创建时间',default = timezone.now) - modifytime = models.DateTimeField(auto_now = True) - usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True) + spbm = models.ForeignKey(Partment, related_name='spbm', + on_delete=models.CASCADE, null=True, blank=True) # 审批部门 + spr = models.ForeignKey(User, related_name='spr', + on_delete=models.CASCADE, null=True, blank=True) # 审批部门 + sprs = ArrayField(models.IntegerField(), blank=True, null=True) + submittime = models.DateTimeField(u'创建时间', default=timezone.now) + modifytime = models.DateTimeField(auto_now=True) + usecomp = models.ForeignKey( + Partment, on_delete=models.CASCADE, null=True, blank=True) -class Questioncat(models.Model):#题目分类 + +class Questioncat(models.Model): # 题目分类 id = models.AutoField(primary_key=True) name = models.CharField(max_length=30) - parent = models.ForeignKey('self',blank=True,null=True,on_delete=models.CASCADE) - deletemark=models.IntegerField(default='1') - link = models.CharField(max_length=200,blank=True,default=',') - creattime = models.DateTimeField(default = timezone.now) - modifytime = models.DateTimeField(auto_now = True) - usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True) -#题库数据表 + parent = models.ForeignKey( + 'self', blank=True, null=True, on_delete=models.CASCADE) + deletemark = models.IntegerField(default='1') + link = models.CharField(max_length=200, blank=True, default=',') + creattime = models.DateTimeField(default=timezone.now) + modifytime = models.DateTimeField(auto_now=True) + usecomp = models.ForeignKey( + Partment, on_delete=models.CASCADE, null=True, blank=True) +# 题库数据表 -class Question(models.Model):#题库 + +class Question(models.Model): # 题库 id = models.AutoField(primary_key=True) title = models.TextField() - type = models.IntegerField(default=1) #单选/多选/判断 - level = models.IntegerField(default=1) #低/中/高 - questioncat = models.ForeignKey(Questioncat,blank=True,null=True,on_delete=models.CASCADE) - station = models.ForeignKey(Group,blank=True,null=True,on_delete=models.CASCADE) #岗位 - mark = models.CharField(max_length=1000,blank=True) + type = models.IntegerField(default=1) # 单选/多选/判断 + level = models.IntegerField(default=1) # 低/中/高 + questioncat = models.ForeignKey( + Questioncat, blank=True, null=True, on_delete=models.CASCADE) + station = models.ForeignKey( + Group, blank=True, null=True, on_delete=models.CASCADE) # 岗位 + mark = models.CharField(max_length=1000, blank=True) answer = JSONField() right = JSONField() resolution = models.TextField() - deletemark=models.IntegerField(default=1) - createuser = models.ForeignKey(User,blank=True,null=True,on_delete=models.CASCADE) - creattime = models.DateTimeField(default = timezone.now) - modifytime = models.DateTimeField(auto_now = True) - usecomps = models.CharField(max_length=200,default=',1,') - nousecomps = models.CharField(max_length=200,default='') + deletemark = models.IntegerField(default=1) + createuser = models.ForeignKey( + User, blank=True, null=True, on_delete=models.CASCADE) + creattime = models.DateTimeField(default=timezone.now) + modifytime = models.DateTimeField(auto_now=True) + usecomps = models.CharField(max_length=200, default=',1,') + nousecomps = models.CharField(max_length=200, default='') -class ExamPaper(models.Model):#试卷表 + +class ExamPaper(models.Model): # 试卷表 id = models.AutoField(primary_key=True) - num = models.CharField(max_length=200,default='')#编号 + num = models.CharField(max_length=200, default='') # 编号 name = models.CharField(max_length=200) - state = models.IntegerField(default=1) #使用中/停用 - deletemark=models.IntegerField(default=1) - createtime = models.DateTimeField(default = timezone.now) - modifytime = models.DateTimeField(auto_now = True) - question = models.ManyToManyField(Question,through='ExamPaperDetail') - usecomps = models.CharField(max_length=200,default=',1,') - nousecomps = models.CharField(max_length=200,default='') - total = JSONField(null=True,blank=True) #题量 + state = models.IntegerField(default=1) # 使用中/停用 + deletemark = models.IntegerField(default=1) + createtime = models.DateTimeField(default=timezone.now) + modifytime = models.DateTimeField(auto_now=True) + question = models.ManyToManyField(Question, through='ExamPaperDetail') + usecomps = models.CharField(max_length=200, default=',1,') + nousecomps = models.CharField(max_length=200, default='') + total = JSONField(null=True, blank=True) # 题量 -class ExamPaperDetail(models.Model):#试卷详情 + +class ExamPaperDetail(models.Model): # 试卷详情 id = models.AutoField(primary_key=True) - question = models.ForeignKey(Question,on_delete=models.CASCADE) - exampaper = models.ForeignKey(ExamPaper,on_delete=models.CASCADE) - score = models.IntegerField(default=0) #分数 - + question = models.ForeignKey(Question, on_delete=models.CASCADE) + exampaper = models.ForeignKey(ExamPaper, on_delete=models.CASCADE) + score = models.IntegerField(default=0) # 分数 -class ExamTest(models.Model):#考试表 + +class ExamTest(models.Model): # 考试表 id = models.AutoField(primary_key=True) - num = models.CharField(max_length=200,default='')#编号 - name = models.CharField(max_length=200,default='') - type = models.IntegerField(default=1) #正式考试/模拟考试/练习 - state = models.IntegerField(default=1) #1进行中 - exampaper = models.ForeignKey(ExamPaper,on_delete=models.CASCADE) - user = models.ManyToManyField(User,through='ExamTestDetail') #考试人员 - starttime = models.DateTimeField(null=True,blank=True)#最早参加 - endtime = models.DateTimeField(null=True,blank=True)#最迟参加 - createtime = models.DateTimeField(default = timezone.now) - modifytime = models.DateTimeField(auto_now = True) - totalscore=models.IntegerField(default=100) - passscore=models.IntegerField(default=60) - duration = models.IntegerField(default=60) #考试时长 - usecomps = models.CharField(max_length=200,default=',1,') - nousecomps = models.CharField(max_length=200,default='') - createuser = models.ForeignKey(User,blank=True,null=True,on_delete=models.CASCADE,related_name='kscjr') - qrcode = models.CharField(max_length=200,blank=True,null=True) + num = models.CharField(max_length=200, default='') # 编号 + name = models.CharField(max_length=200, default='') + type = models.IntegerField(default=1) # 正式考试/模拟考试/练习 + state = models.IntegerField(default=1) # 1进行中 + exampaper = models.ForeignKey(ExamPaper, on_delete=models.CASCADE) + user = models.ManyToManyField(User, through='ExamTestDetail') # 考试人员 + starttime = models.DateTimeField(null=True, blank=True) # 最早参加 + endtime = models.DateTimeField(null=True, blank=True) # 最迟参加 + createtime = models.DateTimeField(default=timezone.now) + modifytime = models.DateTimeField(auto_now=True) + totalscore = models.IntegerField(default=100) + passscore = models.IntegerField(default=60) + duration = models.IntegerField(default=60) # 考试时长 + usecomps = models.CharField(max_length=200, default=',1,') + nousecomps = models.CharField(max_length=200, default='') + createuser = models.ForeignKey( + User, blank=True, null=True, on_delete=models.CASCADE, related_name='kscjr') + qrcode = models.CharField(max_length=200, blank=True, null=True) -class ExamTestDetail(models.Model):#考试详情表 + +class ExamTestDetail(models.Model): # 考试详情表 id = models.AutoField(primary_key=True) - testnum = models.IntegerField(default=0) #做卷次数 - examtest = models.ForeignKey(ExamTest,on_delete=models.CASCADE,null=True,blank=True) - user = models.ForeignKey(User,on_delete=models.CASCADE) - starttime = models.DateTimeField(null=True,blank=True) - endtime = models.DateTimeField(null=True,blank=True) - took = models.IntegerField(default=0) #耗时 - rights = models.IntegerField(default=1) #正确数 - ison = models.IntegerField(default=0) #未参加0/已参加1/ - passcode = models.IntegerField(default=0) #是否通过 - testdetail = JSONField(null=True,blank=True) - score = models.FloatField(default=0)#得分 - tms = models.CharField(max_length=600,default=',') - wrongs = models.CharField(max_length=600,default=',') + testnum = models.IntegerField(default=0) # 做卷次数 + examtest = models.ForeignKey( + ExamTest, on_delete=models.CASCADE, null=True, blank=True) + user = models.ForeignKey(User, on_delete=models.CASCADE) + starttime = models.DateTimeField(null=True, blank=True) + endtime = models.DateTimeField(null=True, blank=True) + took = models.IntegerField(default=0) # 耗时 + rights = models.IntegerField(default=1) # 正确数 + ison = models.IntegerField(default=0) # 未参加0/已参加1/ + passcode = models.IntegerField(default=0) # 是否通过 + testdetail = JSONField(null=True, blank=True) + score = models.FloatField(default=0) # 得分 + tms = models.CharField(max_length=600, default=',') + wrongs = models.CharField(max_length=600, default=',') -class Train(models.Model):#培训表 - trainid= models.AutoField(primary_key=True) - trainnum= models.CharField(max_length=100,default='1') + +class Train(models.Model): # 培训表 + trainid = models.AutoField(primary_key=True) + trainnum = models.CharField(max_length=100, default='1') trainname = models.CharField(max_length=100) - trainplace=models.CharField(max_length=200) - starttime=models.DateTimeField(default = timezone.now) - duration=models.FloatField(default='1') - participant=models.ManyToManyField(User,related_name='cjr', through='Trainuser') - submituser=models.ForeignKey(User,related_name='tbr',default='1', on_delete=models.CASCADE) - submittime = models.DateTimeField(default = timezone.now) - modifytime = models.DateTimeField(auto_now = True) - usecomp = models.ForeignKey(Partment,default='1', on_delete=models.CASCADE) - trainlevel=models.ForeignKey(Dicclass,related_name='pxjb',default='1', on_delete=models.CASCADE) - manlevel=models.ForeignKey(Dickey,related_name='rylx',default='1', on_delete=models.CASCADE) - traintype=models.ForeignKey(Dickey,related_name='pxlx',default='1', on_delete=models.CASCADE) - trainpart=models.ManyToManyField(Partment,related_name='pxbm',default='1') - traincontent=models.ForeignKey(Dickey,related_name='pxnr',default='1', on_delete=models.CASCADE) - detailcontent=models.CharField(max_length=1000,null=True,blank=True) - teacher=models.CharField(max_length=200,null=True,blank=True) - lecturer=models.ForeignKey(User, on_delete=models.CASCADE,null=True,blank=True) - otherparticipant=models.CharField(max_length=1000,null=True,blank=True) - deletemark=models.IntegerField(default='1') - state=models.IntegerField(default='0') - participantnum=models.IntegerField(default='1',null=True,blank=True) - knownum=models.IntegerField(default='1',null=True,blank=True) - pxxg = models.CharField(max_length=1000,null=True,blank=True) - material = models.CharField(max_length=1000,null=True,blank=True) - checkqr = models.CharField(max_length=200,blank=True,null=True) - examtest = models.ForeignKey(ExamTest,on_delete=models.CASCADE,null=True,blank=True) + trainplace = models.CharField(max_length=200) + starttime = models.DateTimeField(default=timezone.now) + duration = models.FloatField(default='1') + participant = models.ManyToManyField( + User, related_name='cjr', through='Trainuser') + submituser = models.ForeignKey( + User, related_name='tbr', default='1', on_delete=models.CASCADE) + submittime = models.DateTimeField(default=timezone.now) + modifytime = models.DateTimeField(auto_now=True) + usecomp = models.ForeignKey( + Partment, default='1', on_delete=models.CASCADE) + trainlevel = models.ForeignKey( + Dicclass, related_name='pxjb', default='1', on_delete=models.CASCADE) + manlevel = models.ForeignKey( + Dickey, related_name='rylx', default='1', on_delete=models.CASCADE) + traintype = models.ForeignKey( + Dickey, related_name='pxlx', default='1', on_delete=models.CASCADE) + trainpart = models.ManyToManyField( + Partment, related_name='pxbm', default='1') + traincontent = models.ForeignKey( + Dickey, related_name='pxnr', default='1', on_delete=models.CASCADE) + detailcontent = models.CharField(max_length=1000, null=True, blank=True) + teacher = models.CharField(max_length=200, null=True, blank=True) + lecturer = models.ForeignKey( + User, on_delete=models.CASCADE, null=True, blank=True) + otherparticipant = models.CharField(max_length=1000, null=True, blank=True) + deletemark = models.IntegerField(default='1') + state = models.IntegerField(default='0') + participantnum = models.IntegerField(default='1', null=True, blank=True) + knownum = models.IntegerField(default='1', null=True, blank=True) + pxxg = models.CharField(max_length=1000, null=True, blank=True) + material = models.CharField(max_length=1000, null=True, blank=True) + checkqr = models.CharField(max_length=200, blank=True, null=True) + examtest = models.ForeignKey( + ExamTest, on_delete=models.CASCADE, null=True, blank=True) -class Trainuser(models.Model):#培训人员记录 + +class Trainuser(models.Model): # 培训人员记录 train = models.ForeignKey(Train, on_delete=models.CASCADE) participant = models.ForeignKey(User, on_delete=models.CASCADE) - examtestdetail = models.ForeignKey(ExamTestDetail, on_delete=models.CASCADE,null=True,blank=True) + examtestdetail = models.ForeignKey( + ExamTestDetail, on_delete=models.CASCADE, null=True, blank=True) checked = models.IntegerField(default=0) - qdsj = models.DateTimeField(null=True,blank=True) + qdsj = models.DateTimeField(null=True, blank=True) isnew = models.IntegerField(default=0) - opinion = models.CharField(max_length=1000,null=True,blank=True) - -class Relation(models.Model):#各模块关系表,没用到 - trouble = models.ForeignKey(Trouble, on_delete=models.CASCADE,null=True,blank=True) - train = models.ForeignKey(Train, on_delete=models.CASCADE,null=True,blank=True) - drill = models.ForeignKey(Drill, on_delete=models.CASCADE,null=True,blank=True) - observe = models.ForeignKey(Observe, on_delete=models.CASCADE,null=True,blank=True) - miss = models.ForeignKey(Miss, on_delete=models.CASCADE,null=True,blank=True) - remark = models.CharField(max_length=1000,null=True,blank=True) + opinion = models.CharField(max_length=1000, null=True, blank=True) -class RiskAct(models.Model):#风险点表 +class Relation(models.Model): # 各模块关系表,没用到 + trouble = models.ForeignKey( + Trouble, on_delete=models.CASCADE, null=True, blank=True) + train = models.ForeignKey( + Train, on_delete=models.CASCADE, null=True, blank=True) + drill = models.ForeignKey( + Drill, on_delete=models.CASCADE, null=True, blank=True) + observe = models.ForeignKey( + Observe, on_delete=models.CASCADE, null=True, blank=True) + miss = models.ForeignKey( + Miss, on_delete=models.CASCADE, null=True, blank=True) + remark = models.CharField(max_length=1000, null=True, blank=True) + + +class RiskAct(models.Model): # 风险点表 id = models.AutoField(primary_key=True) - area = models.ForeignKey(Area,on_delete=models.CASCADE,null=True,blank=True,related_name='riskactarea') - place = models.CharField(max_length=50,null=True,blank=True) - type = models.ForeignKey(Dickey,on_delete=models.CASCADE,null=True,blank=True) - name = models.CharField(max_length=200,null=True,blank=True) - createtime = models.DateTimeField(default = timezone.now) - level = models.CharField(max_length=50,null=True,blank=True) - usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True) - qrcode = models.CharField(max_length=200,blank=True,null=True) - gkcj = models.CharField(max_length=50,null=True,blank=True)#从此往下以风险点来管控 - zrbm = models.ForeignKey(Partment,related_name='riskzrbm2',on_delete=models.CASCADE,null=True,blank=True) - zrr = models.ForeignKey(User,related_name='riskzrr2',on_delete=models.CASCADE,null=True,blank=True) - group = models.ForeignKey(Group,on_delete=models.CASCADE,null=True,blank=True) - modifytime = models.DateTimeField(auto_now = True) + area = models.ForeignKey(Area, on_delete=models.CASCADE, + null=True, blank=True, related_name='riskactarea') + place = models.CharField(max_length=50, null=True, blank=True) + type = models.ForeignKey( + Dickey, on_delete=models.CASCADE, null=True, blank=True) + name = models.CharField(max_length=200, null=True, blank=True) + createtime = models.DateTimeField(default=timezone.now) + level = models.CharField(max_length=50, null=True, blank=True) + usecomp = models.ForeignKey( + Partment, on_delete=models.CASCADE, null=True, blank=True) + qrcode = models.CharField(max_length=200, blank=True, null=True) + gkcj = models.CharField(max_length=50, null=True, + blank=True) # 从此往下以风险点来管控 + zrbm = models.ForeignKey(Partment, related_name='riskzrbm2', + on_delete=models.CASCADE, null=True, blank=True) + zrr = models.ForeignKey(User, related_name='riskzrr2', + on_delete=models.CASCADE, null=True, blank=True) + group = models.ForeignKey( + Group, on_delete=models.CASCADE, null=True, blank=True) + modifytime = models.DateTimeField(auto_now=True) tasktype = models.IntegerField(default=0) - tasktime = models.DateTimeField(null=True,blank=True) #最后任务开始时间 + tasktime = models.DateTimeField(null=True, blank=True) # 最后任务开始时间 -class Equipment(models.Model):#设备表 + +class Equipment(models.Model): # 设备表 id = models.AutoField(primary_key=True) - num = models.CharField(max_length=30,null=True,blank=True) + num = models.CharField(max_length=30, null=True, blank=True) name = models.CharField(max_length=30) - type = models.CharField(max_length=30,null=True,blank=True) #规格 - catename = models.CharField(max_length=30,null=True,blank=True)#分类 - parameter = models.TextField(null=True,blank=True) - oem = models.CharField(max_length=50,null=True,blank=True) - fnum = models.CharField(max_length=30,null=True,blank=True) - fdate = models.DateField(null=True,blank=True) - udate = models.DateField(null=True,blank=True) - place = models.CharField(max_length=50,null=True,blank=True) - note = models.TextField(null=True,blank=True) #备注 - state = models.IntegerField(default=1) #正常/异常/停用 - deletemark=models.IntegerField(default=1) - creattime = models.DateTimeField(default = timezone.now) - modifytime = models.DateTimeField(auto_now = True) - usecomp = models.ForeignKey(Partment,related_name='sbssgs',on_delete=models.CASCADE,null=True,blank=True) - area = models.ForeignKey(Area,on_delete=models.CASCADE,null=True,blank=True) - cate = models.ForeignKey(Dickey,on_delete=models.CASCADE,null=True,blank=True) + type = models.CharField(max_length=30, null=True, blank=True) # 规格 + catename = models.CharField(max_length=30, null=True, blank=True) # 分类 + parameter = models.TextField(null=True, blank=True) + oem = models.CharField(max_length=50, null=True, blank=True) + fnum = models.CharField(max_length=30, null=True, blank=True) + fdate = models.DateField(null=True, blank=True) + udate = models.DateField(null=True, blank=True) + place = models.CharField(max_length=50, null=True, blank=True) + note = models.TextField(null=True, blank=True) # 备注 + state = models.IntegerField(default=1) # 正常/异常/停用 + deletemark = models.IntegerField(default=1) + creattime = models.DateTimeField(default=timezone.now) + modifytime = models.DateTimeField(auto_now=True) + usecomp = models.ForeignKey( + Partment, related_name='sbssgs', on_delete=models.CASCADE, null=True, blank=True) + area = models.ForeignKey( + Area, on_delete=models.CASCADE, null=True, blank=True) + cate = models.ForeignKey( + Dickey, on_delete=models.CASCADE, null=True, blank=True) iskey = models.IntegerField(default=0) istz = models.IntegerField(default=0) - zrbm = models.ForeignKey(Partment,related_name='sbzrbm',on_delete=models.CASCADE,null=True,blank=True) - zrr = models.ForeignKey(User,on_delete=models.CASCADE,null=True,blank=True) - img = models.CharField(max_length=1000,blank=True,null=True) - qrcode = models.CharField(max_length=200,blank=True,null=True) - riskact = models.ForeignKey(RiskAct,null=True,blank=True,on_delete=models.CASCADE) + zrbm = models.ForeignKey(Partment, related_name='sbzrbm', + on_delete=models.CASCADE, null=True, blank=True) + zrr = models.ForeignKey( + User, on_delete=models.CASCADE, null=True, blank=True) + img = models.CharField(max_length=1000, blank=True, null=True) + qrcode = models.CharField(max_length=200, blank=True, null=True) + riskact = models.ForeignKey( + RiskAct, null=True, blank=True, on_delete=models.CASCADE) -class Inspect(models.Model):#设备巡检记录 + +class Inspect(models.Model): # 设备巡检记录 id = models.AutoField(primary_key=True) - state = models.IntegerField(default=1) #设备状态 - content = models.TextField(null=True,blank=True) - equipment = models.ForeignKey(Equipment,blank=True,null=True,on_delete=models.CASCADE) - creattime = models.DateTimeField(default = timezone.now) - modifytime = models.DateTimeField(auto_now = True) - user = models.ForeignKey(User,blank=True,null=True,on_delete=models.CASCADE) - usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True) - trouble = models.ForeignKey(Trouble,on_delete=models.CASCADE,null=True,blank=True) - -class Risk(models.Model):#风险表 + state = models.IntegerField(default=1) # 设备状态 + content = models.TextField(null=True, blank=True) + equipment = models.ForeignKey( + Equipment, blank=True, null=True, on_delete=models.CASCADE) + creattime = models.DateTimeField(default=timezone.now) + modifytime = models.DateTimeField(auto_now=True) + user = models.ForeignKey( + User, blank=True, null=True, on_delete=models.CASCADE) + usecomp = models.ForeignKey( + Partment, on_delete=models.CASCADE, null=True, blank=True) + trouble = models.ForeignKey( + Trouble, on_delete=models.CASCADE, null=True, blank=True) + + +class Risk(models.Model): # 风险表 tasktype_choices = ( - (1,'8h'), - (2, '24h'), - (3, '7day'), - (4,'1month'), - (5,'1year') + (1, '8h'), + (2, '24h'), + (3, '7day'), + (4, '1month'), + (5, '1year') ) id = models.AutoField(primary_key=True) order = models.IntegerField(default=1) - step = models.TextField(null=True,blank=True) - hazard = models.TextField(null=True,blank=True) - result = models.TextField(null=True,blank=True) - measure1 = models.TextField(null=True,blank=True) - measure2 = models.TextField(null=True,blank=True) - measure3 = models.TextField(null=True,blank=True) - measure4 = models.TextField(null=True,blank=True) - measure5 = models.TextField(null=True,blank=True) - riskact = models.ForeignKey(RiskAct,on_delete=models.CASCADE,null=True,blank=True) - gkcj = models.CharField(max_length=50,null=True,blank=True) - zrbm = models.ForeignKey(Partment,related_name='riskzrbm',on_delete=models.CASCADE,null=True,blank=True) - zrr = models.ForeignKey(User,related_name='riskzrr',on_delete=models.CASCADE,null=True,blank=True) - createtime = models.DateTimeField(default = timezone.now) - createuser = models.ForeignKey(User,related_name='riskcjr',on_delete=models.CASCADE,null=True,blank=True) - riskl = models.DecimalField(max_digits=6,decimal_places=1) - riske = models.DecimalField(max_digits=6,decimal_places=1) - riskc = models.DecimalField(max_digits=6,decimal_places=1) - riskd = models.DecimalField(max_digits=6,decimal_places=1) - level = models.CharField(max_length=50,null=True,blank=True) - usecomp = models.ForeignKey(Partment,related_name='riskusecomp',on_delete=models.CASCADE,null=True,blank=True) - group = models.ForeignKey(Group,on_delete=models.CASCADE,null=True,blank=True) - modifytime = models.DateTimeField(auto_now = True) + step = models.TextField(null=True, blank=True) + hazard = models.TextField(null=True, blank=True) + result = models.TextField(null=True, blank=True) + measure1 = models.TextField(null=True, blank=True) + measure2 = models.TextField(null=True, blank=True) + measure3 = models.TextField(null=True, blank=True) + measure4 = models.TextField(null=True, blank=True) + measure5 = models.TextField(null=True, blank=True) + riskact = models.ForeignKey( + RiskAct, on_delete=models.CASCADE, null=True, blank=True) + gkcj = models.CharField(max_length=50, null=True, blank=True) + zrbm = models.ForeignKey(Partment, related_name='riskzrbm', + on_delete=models.CASCADE, null=True, blank=True) + zrr = models.ForeignKey(User, related_name='riskzrr', + on_delete=models.CASCADE, null=True, blank=True) + createtime = models.DateTimeField(default=timezone.now) + createuser = models.ForeignKey( + User, related_name='riskcjr', on_delete=models.CASCADE, null=True, blank=True) + riskl = models.DecimalField(max_digits=6, decimal_places=1) + riske = models.DecimalField(max_digits=6, decimal_places=1) + riskc = models.DecimalField(max_digits=6, decimal_places=1) + riskd = models.DecimalField(max_digits=6, decimal_places=1) + level = models.CharField(max_length=50, null=True, blank=True) + usecomp = models.ForeignKey( + Partment, related_name='riskusecomp', on_delete=models.CASCADE, null=True, blank=True) + group = models.ForeignKey( + Group, on_delete=models.CASCADE, null=True, blank=True) + modifytime = models.DateTimeField(auto_now=True) tasktype = models.IntegerField(default=0) - tasktime = models.DateTimeField(null=True,blank=True) #最后任务开始时间 + tasktime = models.DateTimeField(null=True, blank=True) # 最后任务开始时间 -class Edulesson(models.Model):#在线视频表 + +class Edulesson(models.Model): # 在线视频表 id = models.AutoField(primary_key=True) num = models.CharField(max_length=50) title = models.CharField(max_length=50) - user = models.ForeignKey(User,related_name='scr',on_delete=models.CASCADE,null=True,blank=True) - submittime = models.DateTimeField(default = timezone.now) - desciption = models.TextField(null=True,blank=True) - type = models.IntegerField(default=1) #1是视频,2是文档 - cate = models.ForeignKey(Questioncat,blank=True,null=True,on_delete=models.CASCADE)#分类按照题库进行分类 + user = models.ForeignKey(User, related_name='scr', + on_delete=models.CASCADE, null=True, blank=True) + submittime = models.DateTimeField(default=timezone.now) + desciption = models.TextField(null=True, blank=True) + type = models.IntegerField(default=1) # 1是视频,2是文档 + cate = models.ForeignKey(Questioncat, blank=True, + null=True, on_delete=models.CASCADE) # 分类按照题库进行分类 deletemark = models.IntegerField(default=1) - modifytime = models.DateTimeField(auto_now = True) - url = models.CharField(max_length=200,null=True,blank=True) + modifytime = models.DateTimeField(auto_now=True) + url = models.CharField(max_length=200, null=True, blank=True) watchnum = models.IntegerField(default=0) - usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True) - watchrecord = models.ManyToManyField(User,related_name='gkr',through='EdulessonWatch') + usecomp = models.ForeignKey( + Partment, on_delete=models.CASCADE, null=True, blank=True) + watchrecord = models.ManyToManyField( + User, related_name='gkr', through='EdulessonWatch') -class EdulessonWatch(models.Model):#在线视频观看情况表 + +class EdulessonWatch(models.Model): # 在线视频观看情况表 id = models.AutoField(primary_key=True) edulesson = models.ForeignKey(Edulesson, on_delete=models.CASCADE) - user = models.ForeignKey(User,on_delete=models.CASCADE) - submittime = models.DateTimeField(default = timezone.now) + user = models.ForeignKey(User, on_delete=models.CASCADE) + submittime = models.DateTimeField(default=timezone.now) -class RiskActTask(models.Model):#风险点排查清单(任务) + +class RiskActTask(models.Model): # 风险点排查清单(任务) id = models.AutoField(primary_key=True) - riskact = models.ForeignKey(RiskAct, on_delete=models.CASCADE,null=True,blank=True) - user = models.ForeignKey(User, on_delete=models.CASCADE,null=True,blank=True) - taskadd = models.DateTimeField(null=True,blank=True) - taskdo = models.DateTimeField(null=True,blank=True) - taskexpire = models.DateTimeField(null=True,blank=True) - usable = models.IntegerField(default=1) #1是可用,2是变更计划,0是不可用 - type = models.IntegerField(default=1) #1是计划内,2是计划外 - note = models.TextField(null=True,blank=True) #备注 - state = models.IntegerField(default=1)#1是正常 - istask = models.IntegerField(default=0)#是否是任务 + riskact = models.ForeignKey( + RiskAct, on_delete=models.CASCADE, null=True, blank=True) + user = models.ForeignKey( + User, on_delete=models.CASCADE, null=True, blank=True) + taskadd = models.DateTimeField(null=True, blank=True) + taskdo = models.DateTimeField(null=True, blank=True) + taskexpire = models.DateTimeField(null=True, blank=True) + usable = models.IntegerField(default=1) # 1是可用,2是变更计划,0是不可用 + type = models.IntegerField(default=1) # 1是计划内,2是计划外 + note = models.TextField(null=True, blank=True) # 备注 + state = models.IntegerField(default=1) # 1是正常 + istask = models.IntegerField(default=0) # 是否是任务 -class Risktask(models.Model):#风险排查任务清单 + +class Risktask(models.Model): # 风险排查任务清单 id = models.AutoField(primary_key=True) - risk = models.ForeignKey(Risk, on_delete=models.CASCADE,null=True,blank=True) - group = models.ForeignKey(Group, on_delete=models.CASCADE,null=True,blank=True) - user = models.ForeignKey(User, on_delete=models.CASCADE,null=True,blank=True) - taskadd = models.DateTimeField(null=True,blank=True) - taskdo = models.DateTimeField(null=True,blank=True) - taskexpire = models.DateTimeField(null=True,blank=True) - trouble = models.ForeignKey(Trouble, on_delete=models.CASCADE,null=True,blank=True) - usable = models.IntegerField(default=1) #1是可用,2是变更计划,0是不可用 - type = models.IntegerField(default=1) #1是计划内,2是计划外 - note = models.TextField(null=True,blank=True) #备注 + risk = models.ForeignKey( + Risk, on_delete=models.CASCADE, null=True, blank=True) + group = models.ForeignKey( + Group, on_delete=models.CASCADE, null=True, blank=True) + user = models.ForeignKey( + User, on_delete=models.CASCADE, null=True, blank=True) + taskadd = models.DateTimeField(null=True, blank=True) + taskdo = models.DateTimeField(null=True, blank=True) + taskexpire = models.DateTimeField(null=True, blank=True) + trouble = models.ForeignKey( + Trouble, on_delete=models.CASCADE, null=True, blank=True) + usable = models.IntegerField(default=1) # 1是可用,2是变更计划,0是不可用 + type = models.IntegerField(default=1) # 1是计划内,2是计划外 + note = models.TextField(null=True, blank=True) # 备注 -class Riskcheck2(models.Model):#风险排查记录2 +class Riskcheck2(models.Model): # 风险排查记录2 id = models.AutoField(primary_key=True) - riskacttask = models.ForeignKey(RiskActTask, on_delete=models.CASCADE,null=True,blank=True) - risk = models.ForeignKey(Risk, on_delete=models.CASCADE,null=True,blank=True) - dotime = models.DateTimeField(null=True,blank=True) - trouble = models.ForeignKey(Trouble, on_delete=models.CASCADE,null=True,blank=True) - note = models.TextField(null=True,blank=True) + riskacttask = models.ForeignKey( + RiskActTask, on_delete=models.CASCADE, null=True, blank=True) + risk = models.ForeignKey( + Risk, on_delete=models.CASCADE, null=True, blank=True) + dotime = models.DateTimeField(null=True, blank=True) + trouble = models.ForeignKey( + Trouble, on_delete=models.CASCADE, null=True, blank=True) + note = models.TextField(null=True, blank=True) -class Riskcheck(models.Model):#风险排查记录 - id = models.AutoField(primary_key=True) - risk = models.ForeignKey(Risk, on_delete=models.CASCADE,null=True,blank=True) - user = models.ForeignKey(User, on_delete=models.CASCADE,null=True,blank=True) - risktask = models.ForeignKey(Risktask, on_delete=models.CASCADE,null=True,blank=True) - dotime = models.DateTimeField(null=True,blank=True) - trouble = models.ForeignKey(Trouble, on_delete=models.CASCADE,null=True,blank=True) - note = models.TextField(null=True,blank=True) -class Report(models.Model):#分析报告表 +class Riskcheck(models.Model): # 风险排查记录 id = models.AutoField(primary_key=True) - part = models.ForeignKey(Partment, on_delete=models.CASCADE,null=True,blank=True) - year = models.IntegerField(null=True,blank=True) - month = models.IntegerField(null=True,blank=True) - cause = models.TextField(null=True,blank=True) #原因分析 - suggest = models.TextField(null=True,blank=True) #下一步建议 + risk = models.ForeignKey( + Risk, on_delete=models.CASCADE, null=True, blank=True) + user = models.ForeignKey( + User, on_delete=models.CASCADE, null=True, blank=True) + risktask = models.ForeignKey( + Risktask, on_delete=models.CASCADE, null=True, blank=True) + dotime = models.DateTimeField(null=True, blank=True) + trouble = models.ForeignKey( + Trouble, on_delete=models.CASCADE, null=True, blank=True) + note = models.TextField(null=True, blank=True) + + +class Report(models.Model): # 分析报告表 + id = models.AutoField(primary_key=True) + part = models.ForeignKey( + Partment, on_delete=models.CASCADE, null=True, blank=True) + year = models.IntegerField(null=True, blank=True) + month = models.IntegerField(null=True, blank=True) + cause = models.TextField(null=True, blank=True) # 原因分析 + suggest = models.TextField(null=True, blank=True) # 下一步建议 + class CompanyInfo(models.Model): company_nature = ( (0, '国企'), (1, '私企'), ) - partment = models.OneToOneField(Partment, on_delete=models.CASCADE, verbose_name='公司ID') + partment = models.OneToOneField( + Partment, on_delete=models.CASCADE, verbose_name='公司ID') name = models.CharField(max_length=64, verbose_name='公司名称') - nature = models.SmallIntegerField(choices=company_nature, default=0, verbose_name='企业性质') + nature = models.SmallIntegerField( + choices=company_nature, default=0, verbose_name='企业性质') address = models.CharField(max_length=128, verbose_name='公司地址') - fixed_assets = models.IntegerField(null=True, blank=True, verbose_name='固定资产') - website = models.CharField(max_length=64, null=True, blank=True, verbose_name='公司网址') + fixed_assets = models.IntegerField( + null=True, blank=True, verbose_name='固定资产') + website = models.CharField( + max_length=64, null=True, blank=True, verbose_name='公司网址') peoplenum = models.IntegerField(null=True, blank=True, verbose_name='公司人数') - legalperson = models.CharField(max_length=24, null=True, blank=True,verbose_name='法人代表') - legalperson_phone = models.CharField(max_length=24, null=True, blank=True, verbose_name='法人电话') + legalperson = models.CharField( + max_length=24, null=True, blank=True, verbose_name='法人代表') + legalperson_phone = models.CharField( + max_length=24, null=True, blank=True, verbose_name='法人电话') liaison = models.CharField(max_length=24, verbose_name='联系人') liaison_phone = models.CharField(max_length=24, verbose_name='联系人电话') - introduce = models.TextField( null=True, blank=True, verbose_name='公司概况') + introduce = models.TextField(null=True, blank=True, verbose_name='公司概况') createtime = models.DateTimeField(auto_now_add=True) modifytime = models.DateTimeField(auto_now=True) -#法律法规分类表 +# 法律法规分类表 + + class Regulations(models.Model): id = models.AutoField(primary_key=True) typename = models.CharField(max_length=50) - parent = models.ForeignKey('self',blank=True,null=True,on_delete=models.CASCADE) + parent = models.ForeignKey( + 'self', blank=True, null=True, on_delete=models.CASCADE) sortorder = models.IntegerField(default=0) deletemark = models.IntegerField(default=1) - creattime = models.DateTimeField(default = timezone.now) - createuser = models.ForeignKey(User,related_name='rgs',on_delete=models.CASCADE,null=True,blank=True) - usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True) -#法律法规阅读人员管理表 -class FileReader(models.Model): - id = models.AutoField(primary_key=True) - kindnum = models.CharField(max_length=50) - readeruser = models.ForeignKey(User,on_delete=models.CASCADE) - readertime = models.DateTimeField(default = timezone.now) - deletemark = models.IntegerField(default=1) -#法律法规表 -class FileManage(models.Model): - id = models.AutoField(primary_key=True) - maragename = models.CharField(max_length=50) - maragepath = models.CharField(max_length=200,null=True,blank=True) - readernum = models.IntegerField(default=0) - maragetype = models.ForeignKey(Regulations,on_delete=models.CASCADE,null=True,blank=True) - publisdate = models.DateTimeField(default = timezone.now) - versionnum = models.CharField(max_length=50) - maragestate = models.IntegerField(default=1) #0是现行,1是废止,2修改,3修订 - accessorytype = models.CharField(max_length=50) - actualizedata = models.DateTimeField(default = timezone.now) - createdate = models.DateTimeField(default = timezone.now) - createuser = models.ForeignKey(User,on_delete=models.CASCADE) - usecomp= models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True) - downnum = models.IntegerField(default=0) - deletemark = models.IntegerField(default=1) + creattime = models.DateTimeField(default=timezone.now) + createuser = models.ForeignKey( + User, related_name='rgs', on_delete=models.CASCADE, null=True, blank=True) + usecomp = models.ForeignKey( + Partment, on_delete=models.CASCADE, null=True, blank=True) +# 法律法规阅读人员管理表 + + +class FileReader(models.Model): + id = models.AutoField(primary_key=True) + kindnum = models.CharField(max_length=50) + readeruser = models.ForeignKey(User, on_delete=models.CASCADE) + readertime = models.DateTimeField(default=timezone.now) + deletemark = models.IntegerField(default=1) +# 法律法规表 + + +class FileManage(models.Model): + id = models.AutoField(primary_key=True) + maragename = models.CharField(max_length=50) + maragepath = models.CharField(max_length=200, null=True, blank=True) + readernum = models.IntegerField(default=0) + maragetype = models.ForeignKey( + Regulations, on_delete=models.CASCADE, null=True, blank=True) + publisdate = models.DateTimeField(default=timezone.now) + versionnum = models.CharField(max_length=50) + maragestate = models.IntegerField(default=1) # 0是现行,1是废止,2修改,3修订 + accessorytype = models.CharField(max_length=50) + actualizedata = models.DateTimeField(default=timezone.now) + createdate = models.DateTimeField(default=timezone.now) + createuser = models.ForeignKey(User, on_delete=models.CASCADE) + usecomp = models.ForeignKey( + Partment, on_delete=models.CASCADE, null=True, blank=True) + downnum = models.IntegerField(default=0) + deletemark = models.IntegerField(default=1) + +# 管理制度表 + -#管理制度表 class Mgtsystem(models.Model): - id = models.AutoField(primary_key=True) - mgtname = models.CharField(max_length=50) - type = models.ForeignKey(Dickey,on_delete=models.CASCADE,null=True,blank=True) - usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True) - mgtpath = models.CharField(max_length=200,null=True,blank=True) - publisdate = models.DateTimeField(default = timezone.now) - createuser = models.ForeignKey(User,on_delete=models.CASCADE) - deletemark = models.IntegerField(default=1) + id = models.AutoField(primary_key=True) + mgtname = models.CharField(max_length=50) + type = models.ForeignKey( + Dickey, on_delete=models.CASCADE, null=True, blank=True) + usecomp = models.ForeignKey( + Partment, on_delete=models.CASCADE, null=True, blank=True) + mgtpath = models.CharField(max_length=200, null=True, blank=True) + publisdate = models.DateTimeField(default=timezone.now) + createuser = models.ForeignKey(User, on_delete=models.CASCADE) + deletemark = models.IntegerField(default=1) diff --git a/safesite/templates/bindwechat.html b/safesite/templates/bindwechat.html index 8d150de4..bfe7cbb1 100644 --- a/safesite/templates/bindwechat.html +++ b/safesite/templates/bindwechat.html @@ -1,24 +1,49 @@  - - - -绑定微信号 - - - -

{{msg}}

-{% if code == 1 %} -

您已可接受微信通知

-

可识别下方二维码打开小程序

- -{% endif %} -{% if code != 1 %} - -{% endif %} + + + + + 绑定微信号 + + + + +

{{msg}}

+ {% if code == 1 %} +

您已可接受微信通知

+
+

可识别下方二维码打开小程序

+ +
+ {% endif %} + {% if code != 1 %} + + + {% endif %} + + + \ No newline at end of file diff --git a/safesite/templates/datashow.html b/safesite/templates/datashow.html index 64f6b494..21f111be 100644 --- a/safesite/templates/datashow.html +++ b/safesite/templates/datashow.html @@ -1,7 +1,8 @@ - + + 数据大屏 diff --git a/safesite/templates/operation.html b/safesite/templates/operation.html index 937fdb5d..688c9982 100644 --- a/safesite/templates/operation.html +++ b/safesite/templates/operation.html @@ -2,6 +2,7 @@
申请作业(无审批) + 关闭作业 详细筛选 删除 查看详情 @@ -88,8 +89,9 @@ case '待关闭': return 'background-color:orange;'; break; } }}, - { field: 'zylx__dickeyname', title: '作业类型', width: 120 }, - { field: 'zyfzr__name', title: '作业负责人', width: 120 }, + { field: 'zyqy__name', title: '作业区域', width: 100 }, + { field: 'zylx__dickeyname', title: '作业类型', width: 100 }, + { field: 'zyfzr__name', title: '作业负责人', width: 100 }, { field: 'zynr', title: '作业内容', width: 200 }, { field: 'submittime', title: '提交时间', width: 100 }, ]] @@ -146,5 +148,37 @@ let url = 'api/operation?a=exportexcel' $('
').appendTo('body').submit().remove(); } + function gbzy(){ + var row = $('#zytable').datagrid('getSelected'); + if (row) { + $.messager.confirm('提示', '确定关闭该作业吗?', function (r) { + if (r) { + $.ajax({ + type: "POST", + url: 'api/operation?a=gbzy', + data: JSON.stringify({ 'zyid': row.zyid }), + datatype: "json", + contentType: "application/json;charset=utf-8", + beforeSend: function () { }, + success: function (data) { + if (data.code == 1) { + $("#zytable").datagrid('reload'); + } + else { + $.messager.alert('提示', '你无权关闭该作业!'); + } + }, + complete: function (XMLHttpRequest, textStatus) { + }, + error: function () { + } + }); + } + }); + } + else { + $.messager.alert('提示', '请选择一行数据!'); + } + } \ No newline at end of file diff --git a/safesite/templates/operationdetail.html b/safesite/templates/operationdetail.html index c031fb38..9b66a2af 100644 --- a/safesite/templates/operationdetail.html +++ b/safesite/templates/operationdetail.html @@ -13,6 +13,10 @@ 作业编号:{{zynum}} 提交时间:{{submittime| dateFormat 'yyyy-MM-dd hh:mm'}} + + 作业区域:{{zyqy__name}} + 作业地点:{{zydd}} + 作业类型:{{zylx__dickeyname}} @@ -27,7 +31,11 @@ 开始时间:{{kssj| dateFormat 'yyyy-MM-dd hh:mm'}} 结束时间:{{jssj| dateFormat 'yyyy-MM-dd hh:mm'}} + + 作业人员:{{zyry}} + +
作业人员确认详情
@@ -65,7 +73,7 @@ {{/each}}
-
流程详情
+
作业审批详情
diff --git a/safesite/templates/trouble.html b/safesite/templates/trouble.html index 2f0e969f..c62adac8 100644 --- a/safesite/templates/trouble.html +++ b/safesite/templates/trouble.html @@ -119,10 +119,14 @@ field: 'shresult', title: '隐患状态', width: 100, styler: function (value, row, index) { switch (value) { case 1: return ''; break; - case 2: return 'background-color:red;'; break; - case 3: return 'background-color:red;'; break; - case 4: return 'background-color:yellow;'; break; - case 6: return 'background-color:yellow;'; break; + case 2: return 'color:red;font-weight:bold'; break; + case 3: return 'color:red;font-weight:bold'; break; + case 4: return 'color:orange;font-weight:bold'; break; + case 6: return 'color:orange;font-weight:bold'; break; + } + let zgqx = new Date(row.zgqx); + if(new Date()>zgqx&&row.yhzt==3){ + return 'color:red;font-weight:bold' } }, formatter: function (value, row, index) { switch (value) { @@ -133,8 +137,13 @@ case 5: return '评估未通过'; break; case 6: return '未采纳'; break; } + let zgqx = new Date(row.zgqx); + if(new Date()>zgqx&&row.yhzt==3){ + return '超期未整改' + } } }, + { field: 'tbsj', title: '提交时间', width: 100 }, ]] }); $('#kjcxyh').combobox({ diff --git a/safesite/views.py b/safesite/views.py index ac801098..5c918c9f 100644 --- a/safesite/views.py +++ b/safesite/views.py @@ -3506,7 +3506,7 @@ def mplogin(req): username = a.username req.session['userid'] = userid # print(req.session,req.COOKIES) - return JsonResponse({"code": 1, 'userid': userid, 'username': username, 'mpopenid': mpopenid}) + return JsonResponse({"code": 1, 'userid': userid, 'username': username, 'mpopenid': mpopenid,'openid':a.openid}) else: return JsonResponse({"code": 0, 'mpopenid': mpopenid}) @@ -4987,7 +4987,7 @@ def apioperation(req): total = a.count() startnum, endnum = fenye(req) a = a[startnum:endnum].values('zyid', 'zylx__dickeyname', 'zynum', - 'zyfzr__name', 'zynr', 'zyzt', 'submittime', 'todouser__name') + 'zyfzr__name', 'zynr', 'zyzt', 'submittime', 'todouser__name','zyqy__name') return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'exportexcel': userid = req.session['userid'] @@ -5007,7 +5007,7 @@ def apioperation(req): total = a.count() startnum, endnum = fenye(req) a = a[startnum:endnum].values( - 'zyid', 'zylx__dickeyname', 'zynum', 'zyfzr__name', 'zynr', 'zyzt', 'submittime') + 'zyid', 'zylx__dickeyname', 'zynum', 'zyfzr__name', 'zynr', 'zyzt', 'submittime','zyqy__name') return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'listself': userid = req.session['userid'] @@ -5017,13 +5017,13 @@ def apioperation(req): total = a.count() startnum, endnum = fenye(req) a = a[startnum:endnum].values('zyid', 'zylx__dickeyname', 'zynum', - 'zyfzr__name', 'zynr', 'zyzt', 'submittime', 'todouser__name') + 'zyfzr__name', 'zynr', 'zyzt', 'submittime', 'todouser__name','zyqy__name') return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'detail': zyid = req.GET.get('zyid') a = Operation.objects.filter(zyid=zyid) x = a.values('zyid', 'zydd', 'zylx__dickeyname', 'zynum', 'zyfzr__name', 'zynr', 'zyzt', 'zyimg', - 'submittime', 'zybm__partname', 'sdbm__partname', 'kssj', 'jssj', 'fxcs', 'zyimg2')[0] + 'submittime', 'zybm__partname', 'sdbm__partname', 'kssj', 'jssj', 'fxcs', 'zyimg2','zyqy__name')[0] if x['zyzt']['splc']: for i in x['zyzt']['splc']: i['sprs'] = ','.join(list(User.objects.filter( @@ -5241,9 +5241,10 @@ def apioperation(req): data = json.loads(req.body.decode('utf-8')) # print(data) zyid = data['zyid'] - zyimg2 = data['zyimg2'] obj = Operation.objects.get(zyid=zyid) - obj.zyimg2 = '?'.join(zyimg2) + if 'zyimg2' in data: + zyimg2 = data['zyimg2'] + obj.zyimg2 = '?'.join(zyimg2) obj.zyzt['zyzt'] = '已关闭' obj.zyzt['jdmc'] = '' obj.todouser = None