6262 lines
279 KiB
Python
6262 lines
279 KiB
Python
|
||
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
|
||
from .forms import UserForm
|
||
import json
|
||
from uuid import UUID
|
||
import os
|
||
import time
|
||
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,send_wechatmsgsu
|
||
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 duibiao import calsim
|
||
from django.db.models import Q
|
||
from django.core.serializers.json import DjangoJSONEncoder
|
||
from io import StringIO
|
||
import operator
|
||
import jwt
|
||
import decimal
|
||
from . import forms
|
||
from .models import CompanyInfo
|
||
from django.contrib.sessions.models import Session
|
||
from groups import models as g_models
|
||
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
|
||
|
||
#特殊字符转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):
|
||
return float(obj)
|
||
elif isinstance(obj, UUID):
|
||
# if the obj is uuid, we simply return the value of uuid
|
||
return obj.hex
|
||
else:
|
||
return json.JSONEncoder.default(self, obj)
|
||
|
||
#获取user所在公司
|
||
def getcompany(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):#获取该部门及下属部门
|
||
return Partment.objects.filter(Q(partid=partid) | Q(partlink__contains=',' + str(partid) + ','))
|
||
|
||
#转换为datagrid所用json
|
||
def transjson(total, obj):
|
||
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):
|
||
keylist = []
|
||
for i in list(obj):
|
||
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):
|
||
is_login = request.session.get('userid', None)
|
||
if is_login:
|
||
return func(request,*args,**kwargs)
|
||
else:
|
||
return redirect('login')
|
||
return warpper
|
||
|
||
def apicheck_login(func):
|
||
def warpper(request,*args,**kwargs):
|
||
is_login = request.session.get('userid', None)
|
||
if is_login:
|
||
return func(request,*args,**kwargs)
|
||
else:
|
||
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 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('#','号')
|
||
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:
|
||
f.write(req.FILES['upfile'].read())
|
||
return JsonResponse({"code":1,"filename":file_name,"filepath":filepath})
|
||
|
||
#html页面
|
||
@check_login
|
||
def riskas(req):
|
||
return render(req,'riskas.html')
|
||
@check_login
|
||
def reportedit(req):
|
||
return render(req,'reportedit.html',{'year':req.GET.get('year'),'month':req.GET.get('month'),'part':req.GET.get('part')})
|
||
@check_login
|
||
def riskedit(req,id):
|
||
return render(req,'riskedit.html',{'id':id})
|
||
@check_login
|
||
def riskcheck(req):#风险点排查记录
|
||
return render(req,'riskactcheck.html')
|
||
@check_login
|
||
def taskdo(req):
|
||
return render(req,'taskdo.html')
|
||
@check_login
|
||
def task(req):
|
||
return render(req,'task.html')
|
||
@check_login
|
||
def riskactchose(req):
|
||
area = 0
|
||
if req.GET.get('area',None):
|
||
area = req.GET.get('area')
|
||
return render(req,'riskactchose.html',locals())
|
||
@check_login
|
||
def riskactedit(req,id):
|
||
return render(req,'riskactedit.html',{'id':id})
|
||
@check_login
|
||
def riskactadd(req):
|
||
return render(req,'riskactadd.html')
|
||
@check_login
|
||
def riskadd(req,id):
|
||
return render(req,'riskadd.html',{'id':id})
|
||
@check_login
|
||
def risk(req):
|
||
return render(req,'risk.html')
|
||
@check_login
|
||
def inspect(req):
|
||
return render(req,'inspect.html')
|
||
@check_login
|
||
def equipment(req):
|
||
return render(req,'equipment.html')
|
||
@check_login
|
||
def areaedit(req,id):
|
||
return render(req,'areaedit.html',{'id':id})
|
||
@check_login
|
||
def areaadd(req):
|
||
return render(req,'areaadd.html')
|
||
@check_login
|
||
def areadetail(req):
|
||
id = req.GET.get('id')
|
||
return render(req,'areadetail.html',{'id':id})
|
||
@check_login
|
||
def mapshow(req):
|
||
return render(req,'mapshow.html')
|
||
@check_login
|
||
def area(req):
|
||
return render(req,'area.html')
|
||
@check_login
|
||
def personaltrain(req):
|
||
return render(req,'personaltrain.html')
|
||
@check_login
|
||
def examtest(req):
|
||
return render(req,'examtest.html')
|
||
@check_login
|
||
def safecert(req):
|
||
return render(req,'safecert.html')
|
||
@check_login
|
||
def safecertadd(req):
|
||
return render(req,'safecertadd.html')
|
||
@check_login
|
||
def examtestdetail(req,id):
|
||
return render(req,'examtestdetail.html',{'id':id})
|
||
@check_login
|
||
def examtestadd(req):
|
||
return render(req,'examtestadd.html')
|
||
@check_login
|
||
def examtestadd2(req):
|
||
return render(req,'examtestadd2.html')
|
||
@check_login
|
||
def questionchoose(req):
|
||
return render(req,'questionchoose.html')
|
||
@check_login
|
||
def exampaperedit(req,id):
|
||
return render(req,'exampaperedit.html',{'id':id})
|
||
@check_login
|
||
def exampaperadd(req):
|
||
return render(req,'exampaperadd.html')
|
||
@check_login
|
||
def exampaper(req):
|
||
return render(req,'exampaper.html')
|
||
@check_login
|
||
def examhistory(req,id):
|
||
return render(req,'examhistory.html',{'id':id})
|
||
@check_login
|
||
def questionadd(req):
|
||
return render(req,'questionadd.html')
|
||
@check_login
|
||
def questionadd2(req):
|
||
return render(req,'questionadd2.html')
|
||
@check_login
|
||
def questionadd3(req):
|
||
return render(req,'questionadd3.html')
|
||
@check_login
|
||
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})
|
||
@check_login
|
||
def question(req):
|
||
return render(req,'question.html')
|
||
@check_login
|
||
def questioncatadd(req):
|
||
return render(req,'questioncatadd.html')
|
||
@check_login
|
||
def questioncatedit(req,id):
|
||
return render(req,'questioncatedit.html',{'id':id})
|
||
@check_login
|
||
def operationspjdadd(req):
|
||
return render(req,'operationspjdadd.html')
|
||
@check_login
|
||
def fxcsadd(req):
|
||
return render(req,'fxcsadd.html')
|
||
@check_login
|
||
def operationadd(req,zyid):
|
||
return render(req,'operationadd.html',{'zyid':zyid})
|
||
@check_login
|
||
def operationdetail(req,zyid):
|
||
return render(req,'operationdetail.html',{'zyid':zyid})
|
||
@check_login
|
||
def operation(req):
|
||
return render(req,'operation.html')
|
||
@check_login
|
||
def zuoyepeizhi(req):
|
||
return render(req,'zuoyepeizhi.html')
|
||
@check_login
|
||
def notice(req):
|
||
return render(req,'notice.html')
|
||
@check_login
|
||
def noticeadd(req):
|
||
return render(req,'noticeadd.html')
|
||
@check_login
|
||
def noticedetail(req,id):
|
||
return render(req,'noticedetail.html',{'id':id})
|
||
@check_login
|
||
def noticeedit(req,id):
|
||
return render(req,'noticeedit.html',{'id':id})
|
||
@check_login
|
||
def suggestupdate(req,jyid):
|
||
return render(req,'suggestupdate.html',{'jyid':jyid})
|
||
@check_login
|
||
def suggestdetail(req,jyid):
|
||
return render(req,'suggestdetail.html',{'jyid':jyid})
|
||
@check_login
|
||
def suggestadd(req):
|
||
return render(req,'suggestadd.html')
|
||
@check_login
|
||
def suggest(req):
|
||
return render(req,'suggest.html')
|
||
@check_login
|
||
def medetail(req):
|
||
return render(req,'medetail.html')
|
||
@check_login
|
||
def socerthtml(req):
|
||
return render(req,'socert.html')
|
||
@check_login
|
||
def socertadd(req):
|
||
return render(req,'socertadd.html')
|
||
@check_login
|
||
def rightshtml(req):
|
||
groupid = req.GET.get('groupid')
|
||
return render(req,'rights.html',{'groupid':groupid})
|
||
@check_login
|
||
def misshtml(req):
|
||
return render(req,'miss.html')
|
||
@check_login
|
||
def missadd(req):
|
||
return render(req,'missadd.html')
|
||
@check_login
|
||
def missdetail(req,missid):
|
||
return render(req,'missdetail.html',{'missid':missid})
|
||
@check_login
|
||
def troublehtml(req):
|
||
return render(req,'trouble.html')
|
||
@check_login
|
||
def observehtml(req):
|
||
return render(req,'observe.html')
|
||
@check_login
|
||
def addobserve(req):
|
||
return render(req,'addobserve.html')
|
||
@check_login
|
||
def accesstrouble(req):
|
||
return render(req,'accesstrouble.html')
|
||
@check_login
|
||
def addtrouble(req):
|
||
return render(req,'addtrouble.html')
|
||
@check_login
|
||
def dichtml(req):
|
||
return render(req,'dichtml.html')
|
||
@check_login
|
||
def putreehtml(req):
|
||
return render(req,'putree.html')
|
||
@check_login
|
||
def usergroup(req):
|
||
return render(req,'usergroup.html')
|
||
@check_login
|
||
def getuserf(req):
|
||
return render(req,'getuser.html')
|
||
@check_login
|
||
def getusersf(req):
|
||
return render(req,'getusers.html')
|
||
@check_login
|
||
def trainhtml(req):
|
||
return render(req,'train.html')
|
||
@check_login
|
||
def abtrain(req):
|
||
return render(req,'abtrain.html')
|
||
@check_login
|
||
def drillhtml(req):
|
||
return render(req,'drill.html')
|
||
@check_login
|
||
def abdrill(req):
|
||
return render(req,'abdrill.html')
|
||
@check_login
|
||
def reporthtml(req):
|
||
return render(req,'report.html')
|
||
@check_login
|
||
def troubleashtml(req):
|
||
return render(req,'troubleashtml.html')
|
||
@check_login
|
||
def userhtml(req):
|
||
return render(req,'userhtml.html')
|
||
@check_login
|
||
def bhrhtml(req):
|
||
return render(req,'behavior.html')
|
||
@check_login
|
||
def trainfigure(req):
|
||
return render(req,'trainfigure.html')
|
||
@check_login
|
||
def equipmentfigure(req):
|
||
return render(req,'equipmentfigure.html')
|
||
@check_login
|
||
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)
|
||
totalyh = a.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()
|
||
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})
|
||
def login(req):
|
||
if req.session.get('userid', None):
|
||
return redirect('index')
|
||
if req.method == 'POST':
|
||
user_form = UserForm(req.POST)
|
||
if user_form.is_valid():
|
||
username = req.POST.get('username')
|
||
password = req.POST.get('password')
|
||
user = User.objects.filter(username = username,deletemark=1)
|
||
if user.exists():
|
||
if check_password(password,user[0].epassword):
|
||
req.session['userid'] = user[0].userid
|
||
return redirect('index')
|
||
else:
|
||
msg = '密码错误'
|
||
return render(req, 'login.html', locals())
|
||
else:
|
||
msg = '用户不存在或被禁用'
|
||
return render(req,'login.html', locals())
|
||
else:
|
||
msg = '验证码错误'
|
||
return render(req, 'login.html', locals())
|
||
else:
|
||
user_form = UserForm()
|
||
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)
|
||
companyname = user.usecomp.partname
|
||
name = user.name
|
||
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})
|
||
def logout(req):
|
||
if req.session.get('userid',None):
|
||
logger.info('method: %s user: %s 登出' % (req.method,req.session['userid']))
|
||
req.session.flush()
|
||
return redirect('login')
|
||
|
||
|
||
def changepwd(req):
|
||
userid = req.session['userid']
|
||
oldpassword = req.POST.get('oldpassword')
|
||
newpassword = req.POST.get('newpassword')
|
||
a = User.objects.get(userid=userid)
|
||
if check_password(oldpassword,a.epassword):
|
||
a.password = newpassword
|
||
a.epassword = make_password(newpassword)
|
||
a.save()
|
||
del req.session['userid']
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
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)
|
||
totalyh = a.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()
|
||
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()
|
||
|
||
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()
|
||
|
||
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!=',':
|
||
if ','+str(userid)+',' in a.aqy:
|
||
if a.bmzg !=',':
|
||
if ','+str(userid)+',' in a.bmzg:
|
||
return False
|
||
else:
|
||
zgstr = a.bmzg
|
||
zglist = zgstr.split(',')
|
||
zglist = list(filter(None, zglist))
|
||
todouser = User.objects.get(userid=zglist[0])
|
||
return todouser
|
||
else:
|
||
return False
|
||
else:
|
||
if ','+str(userid)+',' in a.bmzg:
|
||
return False
|
||
else:
|
||
aqystr = a.aqy
|
||
aqylist = aqystr.split(',')
|
||
aqylist = list(filter(None, aqylist))
|
||
todouser = User.objects.get(userid=aqylist[0])
|
||
return todouser
|
||
else:
|
||
if a.bmzg !=',':
|
||
if ','+str(userid)+',' in a.bmzg:
|
||
return False
|
||
else:
|
||
zgstr = a.bmzg
|
||
zglist = zgstr.split(',')
|
||
zglist = list(filter(None, zglist))
|
||
todouser = User.objects.get(userid=zglist[0])
|
||
return todouser
|
||
else:
|
||
return False
|
||
|
||
def getpgr(userid,ubp):
|
||
currentpart=ubp
|
||
if userid == 'zpbm':
|
||
return getpgr_ubp(userid,currentpart)
|
||
else:
|
||
a=getpgr_ubp(userid,currentpart)
|
||
while a==False:
|
||
currentpart=currentpart.parentid #已找不到上级部门
|
||
if 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 !=',':
|
||
zgstr = a.bmzg
|
||
zglist = zgstr.split(',')
|
||
zglist = list(filter(None, zglist))
|
||
todouser = User.objects.get(userid=zglist[0])
|
||
return todouser
|
||
else:
|
||
return False
|
||
|
||
def getpgr2(userid,ubp):
|
||
currentpart=ubp
|
||
a=getpgr_ubp2(userid,currentpart)
|
||
while a==False:
|
||
currentpart=currentpart.parentid #已找不到上级部门
|
||
if currentpart:
|
||
a=getpgr_ubp2(userid,currentpart)
|
||
else:
|
||
return User.objects.get(userid=userid)
|
||
return a
|
||
|
||
#系统智能选取作业审批人
|
||
def getspr_ubp(ubp):
|
||
a=ubp
|
||
if a.bmzg !=',':
|
||
zgstr = a.bmzg
|
||
zglist = zgstr.split(',')
|
||
zglist = list(filter(None, zglist))
|
||
return zglist[0]
|
||
else:
|
||
return False
|
||
|
||
def getspr(ubp):
|
||
currentpart=ubp
|
||
a=getspr_ubp(currentpart)
|
||
while a==False:
|
||
currentpart=currentpart.parentid #已找不到上级部门
|
||
if currentpart:
|
||
a=getspr_ubp(currentpart)
|
||
else:
|
||
return User.objects.get(ubelongpart=currentpart,issuper=1)
|
||
return a
|
||
|
||
def getsprs(userid,ubp):
|
||
currentpart=ubp
|
||
a=getsprs_ubp2(userid,currentpart)
|
||
while a==False:
|
||
currentpart=currentpart.parentid #已找不到上级部门
|
||
if currentpart:
|
||
a=getsprs_ubp2(userid,currentpart)
|
||
else:
|
||
return User.objects.get(ubelongpart=currentpart,issuper=1)
|
||
return a
|
||
|
||
def getsprs_ubp(userid,ubp):
|
||
a=ubp
|
||
if a.aqy !=',':
|
||
aqystr = a.aqy
|
||
aqylist = aqystr.split(',')
|
||
aqylist = list(map(int, list(filter(None, aqylist))))
|
||
if userid in aqylist:
|
||
return [userid]
|
||
else:
|
||
if ',' + str(userid) + ',' in a.bmzg:
|
||
return [userid]
|
||
else:
|
||
return aqylist
|
||
if a.bmzg !=',':
|
||
zgstr = a.bmzg
|
||
zglist = zgstr.split(',')
|
||
zglist = list(map(int, list(filter(None, zglist))))
|
||
if userid in zglist:
|
||
return [userid]
|
||
else:
|
||
return zglist
|
||
else:
|
||
return False
|
||
|
||
def getsprs_ubp2(userid,ubp):
|
||
a=ubp
|
||
if a.aqy !=',' or a.bmzg !=',':
|
||
allstr = a.aqy + a.bmzg
|
||
alllist = allstr.split(',')
|
||
alist = list(map(int, list(filter(None, alllist))))
|
||
return alist
|
||
else:
|
||
return False
|
||
|
||
|
||
def menutree(req):
|
||
userid = req.session['userid']
|
||
if User.objects.get(userid=userid).issuper == 1:#如果是超管
|
||
companyid = getcompany(userid)
|
||
x = Group.objects.get(usecomp__partid=companyid,grouptype=0).menulink
|
||
list1 = x.split(',')
|
||
else:
|
||
bgroups = User.objects.get(userid=userid).userg.all()
|
||
x = ''
|
||
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")
|
||
|
||
|
||
def apirights(req):
|
||
a = req.GET.get('a')
|
||
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()
|
||
for i in menus:
|
||
if str(i['menuid']) in haverights and i['url'] != None:
|
||
i['checked']=True
|
||
else:
|
||
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']
|
||
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':
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
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)
|
||
yhdata = json.loads(req.body.decode('utf-8'))
|
||
troubleid = yhdata['troubleid'] if 'troubleid' in yhdata else ''
|
||
fxsj = yhdata['fxsj']
|
||
yhdd = yhdata['yhdd']
|
||
yhms = yhdata['yhms']
|
||
yhtp = '?'.join(yhdata['yhtp']) if 'yhtp' in yhdata else []
|
||
zghtp = '?'.join(yhdata['zghtp']) if 'zghtp' in yhdata else []
|
||
yhdj = yhdata['yhdj']
|
||
yhpg = yhdata['yhpg'] if 'yhpg' in yhdata else ''
|
||
jclx = yhdata['jclx']
|
||
yhlx = yhdata['yhlx'] if 'yhlx' in yhdata else ''
|
||
yhlb = yhdata['yhlb'] if 'yhlb' in yhdata else ''
|
||
yyfx = yhdata['yyfx'] if 'yyfx' in yhdata else ''
|
||
zgcs = yhdata['zgcs'] if 'zgcs' in yhdata else ''
|
||
zgbm = yhdata['zgbm'] if 'zgbm' in yhdata else ''
|
||
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!='':
|
||
a = Trouble.objects.get(troubleid=troubleid)
|
||
else:
|
||
a = Trouble()
|
||
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.yhms = yhms
|
||
a.yhtp = yhtp
|
||
a.yhnum='YH'+time.strftime('%Y%m%d%H%M%S')
|
||
a.yyfx = yyfx
|
||
a.zgcs = zgcs
|
||
a.zgms = zgms
|
||
if yhdj !='':
|
||
a.yhdj = Dickey.objects.get(dickeyid=yhdj)
|
||
if yhpg !='':
|
||
a.yhpg = Dickey.objects.get(dickeyid=yhpg)
|
||
if jclx !='':
|
||
a.jclx = Dickey.objects.get(dickeyid=jclx)
|
||
if yhlx !='':
|
||
a.yhlx = Dicclass.objects.get(dicid=yhlx)
|
||
if yhlb !='':
|
||
a.yhlb = Dickey.objects.get(dickeyid=yhlb)
|
||
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
|
||
a.csqrr = user
|
||
a.shr = user
|
||
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.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
|
||
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
|
||
a.yhzt = 7
|
||
a.todouser = User.objects.get(userid=zgr)
|
||
if a.zgr != 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.save()
|
||
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 + '原因分析/整改措施待上传:'
|
||
},
|
||
'keyword1':{
|
||
'value':a.yhms
|
||
},
|
||
'keyword2':{
|
||
'value':a.fxsj
|
||
},
|
||
'keyword3':{
|
||
'value':a.yhdd
|
||
},
|
||
'remark':{
|
||
'value':'整改期限为'+zgqx+',请您先及时填写原因分析,制定整改措施。'
|
||
}
|
||
}
|
||
}
|
||
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
|
||
a.yhzt = 3
|
||
a.todouser = User.objects.get(userid=zgr)
|
||
if a.zgr != user:
|
||
a.fcr=user
|
||
else:
|
||
parentpart = user.ubelongpart.parentid
|
||
if parentpart:
|
||
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.save()
|
||
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 + '待整改:'
|
||
},
|
||
'keyword1':{
|
||
'value':a.yhms
|
||
},
|
||
'keyword2':{
|
||
'value':a.fxsj
|
||
},
|
||
'keyword3':{
|
||
'value':a.yhdd
|
||
},
|
||
'remark':{
|
||
'value':'整改期限为'+zgqx+',请您及时完成整改。'
|
||
}
|
||
}
|
||
}
|
||
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 =='' :
|
||
#到整改部门待评估 指派部门整改
|
||
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
|
||
a.save()
|
||
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 + '待评估:'
|
||
},
|
||
'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,"trouble":a.troubleid,"yhnum":a.yhnum})
|
||
else:
|
||
#正常流程到待评估
|
||
a.yhzt = 1
|
||
x=getpgr(userid,user.ubelongpart)
|
||
a.pgr = x
|
||
a.todouser=x
|
||
a.sybzt=0
|
||
a.save()
|
||
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 + '待评估:'
|
||
},
|
||
'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,"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']!='':
|
||
a['yhtp'] = a['yhtp'].split('?')
|
||
if a['zghtp']!='':
|
||
a['zghtp']= a['zghtp'].split('?')
|
||
for key in a:
|
||
if a[key] == None:
|
||
a[key] = ''
|
||
#print(a['yhtp'])
|
||
return JsonResponse(a)
|
||
#return JsonResponse()
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
|
||
def accessyh(req):
|
||
userid = req.session['userid']
|
||
yhdata = json.loads(req.body.decode('utf-8'))
|
||
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
|
||
if a.zgr != None:
|
||
a.todouser = a.zgr
|
||
else:
|
||
a.todouser = a.fxr
|
||
a.fcyj=fcyj
|
||
a.save()
|
||
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']=a.todouser.openid
|
||
send_wechatmsg.delay(postdict)
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
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.save()
|
||
objs = Inspect.objects.filter(trouble=a)
|
||
if objs.exists():
|
||
obj = objs[0]
|
||
obj.equipment.state=1
|
||
obj.equipment.save()
|
||
yjjs.delay(companyid)
|
||
return JsonResponse({"code":1})
|
||
# elif a.zgr==None and a.zgms=='':#无隐患
|
||
# 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.save()
|
||
# yjjs.delay(companyid)
|
||
# return JsonResponse({"code":1})
|
||
# elif a.zgr==None:#直接整改的
|
||
# 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.save()
|
||
# yjjs.delay(companyid)
|
||
# return JsonResponse({"code":1})
|
||
|
||
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
|
||
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.save()
|
||
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
|
||
a.save()
|
||
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
|
||
send_wechatmsg.delay(postdict)
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
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.save()
|
||
return JsonResponse({"code":1})
|
||
elif a.yhzt==1:
|
||
if yhdata['shresult'] == 'reject':
|
||
if 'accept' in yhdata:
|
||
if yhdata['accept'] == 'no':
|
||
a.shresult = 6
|
||
a.yhzt = 6
|
||
a.sybzt = 1
|
||
a.todouser = None
|
||
a.pgyj = yhdata['pgyj']
|
||
a.save()
|
||
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
|
||
send_wechatmsg.delay(postdict)
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
a.shresult = 5
|
||
a.yhzt = 0
|
||
a.sybzt = 1
|
||
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.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
|
||
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')
|
||
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.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
|
||
send_wechatmsg.delay(postdict)
|
||
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
|
||
if a.fcr:
|
||
pass
|
||
else:
|
||
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.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']=a.todouser.openid
|
||
send_wechatmsg.delay(postdict)
|
||
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
|
||
if a.fcr:
|
||
pass
|
||
else:
|
||
a.fcr=b
|
||
a.save()
|
||
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']=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']
|
||
a.todouser = a.zpr
|
||
a.save()
|
||
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
|
||
send_wechatmsg.delay(postdict)
|
||
return JsonResponse({"code":1})
|
||
elif a.yhzt==0:
|
||
a.yhzt = 1
|
||
a.todouser = a.pgr
|
||
a.sybzt=0
|
||
a.save()
|
||
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':{
|
||
|
||
'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 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.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
|
||
send_wechatmsg.delay(postdict)
|
||
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")
|
||
|
||
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")
|
||
|
||
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")
|
||
else:
|
||
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='作业负责人-作业部门安全员-属地部门安全员'
|
||
for x in objs:
|
||
str = str + '-' + x.jdmc
|
||
i['splcdetail'] = str
|
||
a = a
|
||
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):
|
||
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.save()
|
||
a.checkqr = makeqr_train('https://safeyun.ctcshe.com/miniprogram/checktrain?trainid='+str(a.trainid))
|
||
a.save()
|
||
plist=req.POST.getlist('trainpart')
|
||
ustr = req.POST.get('participant')
|
||
ulist=ustr.split(',')
|
||
b=[]
|
||
for i in ulist:
|
||
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 + '培训通知:'
|
||
},
|
||
'keyword1':{
|
||
'value':a.trainname
|
||
},
|
||
'keyword2':{
|
||
'value':a.starttime
|
||
},
|
||
'keyword3':{
|
||
'value':a.trainplace
|
||
},
|
||
'remark':{
|
||
'value':a.teacher+'授课,时长为'+a.duration+'小时,请您务必参加'
|
||
}
|
||
}
|
||
}
|
||
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')
|
||
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.save()
|
||
plist=req.POST.getlist('drillpart')
|
||
ustr = req.POST.get('participant')
|
||
ulist=ustr.split(',')
|
||
b=[]
|
||
for i in ulist:
|
||
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 + '演练通知:'
|
||
},
|
||
'keyword1':{
|
||
'value':a.drillname
|
||
},
|
||
'keyword2':{
|
||
'value':a.starttime
|
||
},
|
||
'keyword3':{
|
||
'value':a.drillplace
|
||
},
|
||
'remark':{
|
||
'value':a.chief.name+'为总指挥,请务必参加!'
|
||
}
|
||
}
|
||
}
|
||
send_wechatmsgs.delay(postdict,b)
|
||
return JsonResponse({"code":1})
|
||
|
||
def accesstrain(req):
|
||
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')
|
||
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)
|
||
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)
|
||
if objs.exists():
|
||
i.examtestdetail = objs[0]
|
||
i.save()
|
||
yjjs_px.delay(companyid)
|
||
return JsonResponse({"code":1})
|
||
|
||
def accessdrill(req):
|
||
drillid = req.GET.get('drillid')
|
||
detailcontent = req.POST.get('detailcontent')
|
||
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)
|
||
if req.POST.get('participant'):
|
||
a[0].participant.clear()
|
||
ustr = req.POST.get('participant')
|
||
ulist=ustr.split(',')
|
||
for i in ulist:
|
||
x=User.objects.get(userid=i)
|
||
m = Drilluser(drillid=a[0],participant=x)
|
||
m.save()
|
||
userid=req.session.get('userid')
|
||
companyid = getcompany(userid)
|
||
yjjs_yl.delay(companyid)
|
||
return JsonResponse({"code":1})
|
||
|
||
def grouphandle(req):
|
||
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')
|
||
Group.objects.filter(groupid=groupid).delete()
|
||
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')
|
||
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})
|
||
else:
|
||
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':
|
||
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':#排除全体用户组
|
||
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':
|
||
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")
|
||
elif req.method == 'POST':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
if data['groupid'] =='':
|
||
a = Group()
|
||
a.groupname = data['groupname']
|
||
a.usecomp = Partment.objects.get(partid=companyid)
|
||
a.save()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
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['lcxq'] = list(b)
|
||
if x['yhtp']!='':
|
||
x['yhtp'] = x['yhtp'].split('?')
|
||
else:
|
||
x['yhtp']==[]
|
||
if x['zghtp']!='':
|
||
x['zghtp']= x['zghtp'].split('?')
|
||
else:
|
||
x['zghtp']==[]
|
||
for key in x:
|
||
if x[key] == None:
|
||
x[key] = ''
|
||
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})
|
||
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})
|
||
elif a == 'exportword':
|
||
troubleid = req.GET.get('troubleid')
|
||
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)
|
||
yhzt = req.GET.get('yhzt')
|
||
yhlx = req.GET.get('yhlx')
|
||
yhlb = req.GET.get('yhlb')
|
||
jclx = req.GET.get('jclx')
|
||
yhpg = req.GET.get('yhpg')
|
||
fxbm = req.GET.get('fxbm')
|
||
fxr = req.GET.get('fxr')
|
||
qssj = req.GET.get('qssj')
|
||
jssj = req.GET.get('jssj')
|
||
if yhzt !='' and yhzt != None:
|
||
a = a.filter(yhzt=yhzt)
|
||
if yhlx:
|
||
a = a.filter(yhlx__dicid=yhlx)
|
||
if yhlb:
|
||
a = a.filter(yhlb__dickeyid=yhlb)
|
||
if jclx:
|
||
a = a.filter(jclx__dickeyid=jclx)
|
||
if yhpg:
|
||
a = a.filter(yhpg__dickeyid=yhpg)
|
||
if fxbm or fxr:
|
||
if fxr:
|
||
a = a.filter(fxr__userid=fxr)
|
||
elif 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)
|
||
return res
|
||
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
|
||
a.save()
|
||
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.save()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
elif a=='listtodo':
|
||
userid = req.session['userid']
|
||
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':
|
||
userid = req.session['userid']
|
||
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':
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
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")
|
||
elif a == 'listsearch':
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
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')
|
||
jclx = req.GET.get('jclx')
|
||
yhpg = req.GET.get('yhpg')
|
||
fxbm = req.GET.get('fxbm')
|
||
fxr = req.GET.get('fxr')
|
||
qssj = req.GET.get('qssj')
|
||
jssj = req.GET.get('jssj')
|
||
yhqy = req.GET.get('yhqy')
|
||
zgbm = req.GET.get('zgbm')
|
||
if yhzt !='' and yhzt != None:
|
||
a = a.filter(yhzt=yhzt)
|
||
if yhlx:
|
||
a = a.filter(yhlx__dicid=yhlx)
|
||
if yhlb:
|
||
a = a.filter(yhlb__dickeyid=yhlb)
|
||
if jclx:
|
||
a = a.filter(jclx__dickeyid=jclx)
|
||
if yhpg:
|
||
a = a.filter(yhpg__dickeyid=yhpg)
|
||
if fxbm or fxr:
|
||
if fxr:
|
||
a = a.filter(fxr__userid=fxr)
|
||
elif 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)
|
||
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))
|
||
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','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)
|
||
yhqy = req.GET.get('yhqy')
|
||
if 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")
|
||
|
||
#图表查询
|
||
|
||
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':
|
||
year = int(req.GET.get('year'))
|
||
month = int(req.GET.get('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})
|
||
else:
|
||
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]
|
||
nowyjz = a.yjz
|
||
nowycz = a.ycz
|
||
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'))
|
||
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))
|
||
children = []
|
||
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= []
|
||
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})
|
||
else:
|
||
children = []
|
||
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'))
|
||
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= []
|
||
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':
|
||
if req.GET.get('year'):
|
||
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) + ','))
|
||
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()
|
||
key.append(x)
|
||
value.append({'value':y,'name':x})
|
||
return JsonResponse({'code':1,'key':key,'value':value})
|
||
else:
|
||
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'))
|
||
a = a.filter(fxbm__in=parts)
|
||
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':
|
||
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=[]
|
||
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()
|
||
key.append(x)
|
||
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=[]
|
||
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()
|
||
key.append(x)
|
||
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':#预警环比分析
|
||
year = int(req.GET.get('year'))
|
||
month = int(req.GET.get('month'))
|
||
if month-1<1:
|
||
bmonth=12
|
||
byear=year-1
|
||
else:
|
||
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':#隐患发现部门分布表
|
||
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=[]
|
||
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':#培训部门分布表
|
||
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=[]
|
||
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':#演练部门分布表
|
||
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=[]
|
||
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)
|
||
if 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['时间轴']= []
|
||
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))
|
||
num = totalobj.count()
|
||
xcglnum = totalobj.filter(yhlx__dicid=16).count()
|
||
jcglnum = totalobj.filter(yhlx__dicid=17).count()
|
||
data['全部'].append(num)
|
||
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)
|
||
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()
|
||
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)
|
||
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'))
|
||
objs = objs.filter(fxbm__in=parts)
|
||
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}
|
||
ztnumli.append(objdict)
|
||
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=[]
|
||
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 = 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':#未遂部门分布表
|
||
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=[]
|
||
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 = 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':#观察类型饼图
|
||
year = int(req.GET.get('year'))
|
||
month = int(req.GET.get('month'))
|
||
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=[]
|
||
for i in Dicclass.objects.filter(parentid__dicid=23):
|
||
x = i.dicname
|
||
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})
|
||
|
||
def apiriskas(req):
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
if req.GET.get('a') == 'fxdlxt':#风险点类型图
|
||
objs = RiskAct.objects.filter(usecomp__partid=companyid)
|
||
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':#风险点级别图
|
||
objs = RiskAct.objects.filter(usecomp__partid=companyid)
|
||
if req.GET.get('zrbm',None):
|
||
partid = req.GET.get('zrbm')
|
||
objs = objs.filter(zrbm__partid=partid)
|
||
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':#风险级别图
|
||
objs = Risk.objects.filter(usecomp__partid=companyid)
|
||
if req.GET.get('zrbm',None):
|
||
partid = req.GET.get('zrbm')
|
||
objs = objs.filter(riskact__zrbm__partid=partid)
|
||
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':#风险点区域图
|
||
objs = RiskAct.objects.filter(usecomp__partid=companyid)
|
||
objs2 = Risk.objects.filter(usecomp__partid=companyid)
|
||
if req.GET.get('zrbm',None):
|
||
partid = req.GET.get('zrbm')
|
||
objs = objs.filter(zrbm__partid=partid)
|
||
objs2 = objs2.filter(riskact__zrbm__partid=partid)
|
||
xAxisData = []
|
||
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')
|
||
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']=[] # 重大风险数
|
||
for i in riskactareas:
|
||
objsxx = objs.filter(area__id=i['area'])
|
||
data['datariskact'].append(objsxx.count())
|
||
data['datariskact1'].append(objsxx.filter(level="低风险").count())
|
||
data['datariskact2'].append(objsxx.filter(level="一般风险").count())
|
||
data['datariskact3'].append(objsxx.filter(level="较大风险").count())
|
||
data['datariskact4'].append(objsxx.filter(level="重大风险").count())
|
||
objsxx2 = objs2.filter(riskact__area__id=i['area'])
|
||
data['datarisk'].append(objsxx2.count())
|
||
data['datarisk1'].append(objsxx2.filter(level="低风险").count())
|
||
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})
|
||
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
|
||
v = exportyjdoc(vl)
|
||
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)
|
||
# userall = User.objects.filter(ubelongpart__in=partsall,deletemark=1)
|
||
# objs=[]
|
||
# for i in userall:
|
||
# yhnum = Trouble.objects.filter(fxr=i)
|
||
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('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)
|
||
objs = objs.filter(fxbm__in=parts)
|
||
# objs=[]
|
||
# for i in userlist:
|
||
# yhnum = Trouble.objects.filter(fxr=i)
|
||
# if req.GET.get('qssj'):
|
||
# yhnum = yhnum.filter(fxsj__gte=req.GET.get('qssj'))
|
||
# if req.GET.get('jssj'):
|
||
# yhnum = yhnum.filter(fxsj__lte=req.GET.get('jssj'))
|
||
# 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)
|
||
# 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")
|
||
elif a == 'yhzgpm':
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
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')
|
||
total = objs.count()
|
||
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']
|
||
|
||
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':
|
||
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})
|
||
else:
|
||
User.objects.filter(userid=a).update(deletemark=0)
|
||
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'))
|
||
newname = req.POST.get('username')
|
||
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'))
|
||
# 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})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
else:
|
||
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.epassword = make_password(req.POST.get('password'))
|
||
a.ubelongpart=Partment.objects.get(partid=req.POST.get('ubelongpart'))
|
||
a.save()
|
||
companyid = getcompany(a.userid)
|
||
a.usecomp = Partment.objects.get(partid=companyid)
|
||
a.save()
|
||
# if req.POST.getlist('group',None):
|
||
# #a.userg.add(*req.POST.getlist('group'))
|
||
# objs = Group.objects.filter(groupid__in=req.POST.getlist('group'))
|
||
# for i in objs:
|
||
# if i.grouptype == 1:
|
||
|
||
# i.users.add(a)
|
||
Group.objects.get(usecomp__partid=companyid,grouptype=3).users.add(a)
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
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)
|
||
total = a.count()
|
||
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")
|
||
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")
|
||
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")
|
||
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")
|
||
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')
|
||
total = a.count()
|
||
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")
|
||
else:
|
||
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")
|
||
|
||
|
||
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')
|
||
b = list(a)[0]
|
||
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})
|
||
else:
|
||
Partment.objects.get(partid=a).delete()
|
||
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})
|
||
else:
|
||
try:
|
||
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.save()
|
||
return JsonResponse({"code":1})
|
||
except:
|
||
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':
|
||
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':#能够指派的部门,包括自己所在的部门
|
||
userid = req.session['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':
|
||
partid = req.GET.get('partid')
|
||
zgstr = Partment.objects.get(partid=partid).bmzg
|
||
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':
|
||
partid = req.GET.get('partid')
|
||
aqystr = Partment.objects.get(partid=partid).aqy
|
||
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':
|
||
partid = req.GET.get('partid')
|
||
bsqstr = Partment.objects.get(partid=partid).bsq
|
||
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':
|
||
partid = req.GET.get('partid')
|
||
users = req.POST.get('users')
|
||
try:
|
||
userlist = users.split(',')
|
||
obj = Partment.objects.get(partid=partid)
|
||
zgstr = obj.bmzg
|
||
zglist = zgstr.split(',')
|
||
zglist = list(filter(None, zglist))
|
||
zglist.extend(userlist)
|
||
addo = list(set(zglist))
|
||
addo.sort(key = zglist.index)
|
||
zgstr = ','+','.join(addo)+','
|
||
obj.bmzg=zgstr
|
||
obj.save()
|
||
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':
|
||
partid = req.GET.get('partid')
|
||
users = req.POST.get('users')
|
||
try:
|
||
userlist = users.split(',')
|
||
obj = Partment.objects.get(partid=partid)
|
||
aqystr = obj.aqy
|
||
aqylist = aqystr.split(',')
|
||
aqylist = list(filter(None, aqylist))
|
||
aqylist.extend(userlist)
|
||
addo = list(set(aqylist))
|
||
addo.sort(key = aqylist.index)
|
||
aqystr = ','+','.join(addo)+','
|
||
obj.aqy=aqystr
|
||
obj.save()
|
||
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':
|
||
partid = req.GET.get('partid')
|
||
users = req.POST.get('users')
|
||
try:
|
||
userlist = users.split(',')
|
||
obj = Partment.objects.get(partid=partid)
|
||
bsqstr = obj.bsq
|
||
bsqlist = bsqstr.split(',')
|
||
bsqlist = list(filter(None, bsqlist))
|
||
bsqlist.extend(userlist)
|
||
addo = list(set(bsqlist))
|
||
addo.sort(key = bsqlist.index)
|
||
bsqstr = ','+','.join(bsqlist)+','
|
||
obj.bsq=bsqstr
|
||
obj.save()
|
||
except:
|
||
pass
|
||
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)
|
||
zgstr = obj.bmzg
|
||
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.users.remove(User.objects.get(userid=userid))
|
||
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)
|
||
aqystr = obj.aqy
|
||
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.users.remove(User.objects.get(userid=userid))
|
||
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)
|
||
bsqstr = obj.bsq
|
||
bsqstr = bsqstr.replace(','+userid+',',',')
|
||
obj.bsq = bsqstr
|
||
obj.save()
|
||
return JsonResponse({"code":1})
|
||
|
||
def dicthandle(req):
|
||
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.save()
|
||
return JsonResponse({"code":1})
|
||
elif User.objects.get(userid=userid).issuper == 1:
|
||
companyid = getcompany(userid)
|
||
nl = a.nousecomps.split(',')
|
||
nl.append(companyid)
|
||
nl = ','+','.join(list(filter(None, nl)))+','
|
||
a.nousecomps = nl
|
||
a.save()
|
||
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':
|
||
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})
|
||
else:
|
||
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']
|
||
detail = data['detail']
|
||
if dickeyid != '':
|
||
a = Dickey.objects.get(dickeyid=dickeyid)
|
||
if ',1,' in a.usecomps and companyid != '1':
|
||
return JsonResponse({"code":0})
|
||
else:
|
||
a.dickeyname = dickeyname
|
||
a.dicparent = Dicclass.objects.get(dicid=dicparent)
|
||
a.detail = detail
|
||
a.save()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
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':
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
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')
|
||
pxjb = req.GET.get('trainlevel')
|
||
pxnr = req.GET.get('traincontent')
|
||
if pxjb:
|
||
a = a.filter(trainlevel__dicid=pxjb)
|
||
if pxnr:
|
||
a = a.filter(traincontent__dickeyid=yhlb)
|
||
if pxbm:
|
||
a = a.filter(trainpart__partid=pxbm)
|
||
if qssj:
|
||
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('-modifytime')[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':
|
||
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]
|
||
for key in x:
|
||
if x[key] == None:
|
||
x[key] = ''
|
||
x['material'] = x['material'].split('?')
|
||
#对many字段单独处理
|
||
str1=[]
|
||
for i in a.values('trainpart__partname'):
|
||
str1.append(i['trainpart__partname'])
|
||
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')
|
||
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")
|
||
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))
|
||
if obj.exists():
|
||
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':
|
||
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']
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
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')
|
||
pxjb = req.GET.get('trainlevel')
|
||
pxnr = req.GET.get('traincontent')
|
||
if pxjb:
|
||
a = a.filter(trainlevel__dicid=pxjb)
|
||
if pxnr:
|
||
a = a.filter(traincontent__dickeyid=yhlb)
|
||
if pxbm:
|
||
a = a.filter(trainpart__partid=pxbm)
|
||
if qssj:
|
||
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')
|
||
userid = req.session['userid']
|
||
a = Train.objects.get(trainid=trainid)
|
||
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
|
||
a.save()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
|
||
def ylhandle(req):
|
||
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')
|
||
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':
|
||
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')
|
||
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')
|
||
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]
|
||
for key in x:
|
||
if x[key] == None:
|
||
x[key] = ''
|
||
x['material'] = x['material'].split('?')
|
||
#对many字段单独处理
|
||
str1=[]
|
||
for i in a.values('drillpart__partname'):
|
||
str1.append(i['drillpart__partname'])
|
||
x['drillpart']=','.join(str1)
|
||
str2=[]
|
||
for i in a.values('participant__name'):
|
||
str2.append(i['participant__name'])
|
||
x['participantname']=','.join(str2)
|
||
return JsonResponse(x)
|
||
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':
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
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')
|
||
yljb = req.GET.get('drilllevel')
|
||
ylnr = req.GET.get('drillcontent')
|
||
if yljb:
|
||
a = a.filter(drilllevel__dicid=yljb)
|
||
if ylnr:
|
||
a = a.filter(drillcontent__dickeyid=ylnr)
|
||
if ylbm:
|
||
a = a.filter(drillpart__partid=ylbm)
|
||
if qssj:
|
||
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')
|
||
userid = req.session['userid']
|
||
a = Drill.objects.get(drillid=drillid)
|
||
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
|
||
a.save()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
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)
|
||
qssj = req.GET.get('qssj')
|
||
jssj = req.GET.get('jssj')
|
||
ylbm= req.GET.get('drillpart')
|
||
yljb = req.GET.get('drilllevel')
|
||
ylnr = req.GET.get('drillcontent')
|
||
if yljb:
|
||
a = a.filter(drilllevel__dicid=yljb)
|
||
if ylnr:
|
||
a = a.filter(drillcontent__dickeyid=ylnr)
|
||
if ylbm:
|
||
a = a.filter(drillpart__partid=ylbm)
|
||
if qssj:
|
||
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('-modifytime')[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')
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
if a == 'add':
|
||
obj = Observe()
|
||
gcdata = json.loads(req.body.decode('utf-8'))
|
||
obj.actname = gcdata['actname']
|
||
obj.lookplace = gcdata['lookplace']
|
||
obj.looktime = gcdata['looktime']
|
||
obj.looker = User.objects.get(userid=userid)
|
||
obj.lookpart = User.objects.get(userid=userid).ubelongpart
|
||
if 'looktime2' in gcdata:
|
||
if gcdata['looktime2']:
|
||
obj.looktime2 = gcdata['looktime2']
|
||
if 'lookeder' in gcdata:
|
||
obj.lookeder = gcdata['lookeder']
|
||
if 'otherunsafe' in gcdata:
|
||
obj.otherunsafe = gcdata['otherunsafe']
|
||
if 'safecontent' in gcdata:
|
||
obj.safecontent = gcdata['safecontent']
|
||
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(',')
|
||
for i in ulist:
|
||
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.save()
|
||
yjjs_gc.delay(companyid)
|
||
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')
|
||
total = a.count()
|
||
a = a[startnum:endnum].values('lookid','looknum','lookplace','actname','looktime','looker__name','lookeder','otherunsafe')
|
||
for i in a:
|
||
if Observeto.objects.filter(observe__lookid=i['lookid'],user__userid = userid).exists():
|
||
i['read']=1
|
||
i['readtime'] = Observeto.objects.filter(observe__lookid=i['lookid'],user__userid = userid)[0].submittime
|
||
else:
|
||
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')
|
||
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")
|
||
elif a == 'del':
|
||
lookid =req.GET.get('lookid')
|
||
a = Observe.objects.get(lookid=lookid)
|
||
if User.objects.get(userid = userid).issuper == 1:
|
||
a.deletemark=0
|
||
a.save()
|
||
yjjs_gc.delay(companyid)
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
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'))
|
||
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)
|
||
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")
|
||
elif a == 'exportexcel':
|
||
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)
|
||
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)
|
||
return res
|
||
elif a == 'detailhtml':
|
||
return render(req,'observedetail.html',{'lookid':req.GET.get('lookid')})
|
||
elif a == 'detail':
|
||
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['gcnr'] = list(b)
|
||
if x['lookimg']:
|
||
x['lookimg'] = x['lookimg'].split('?')
|
||
else:
|
||
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")
|
||
elif a == 'getdics':
|
||
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= []
|
||
for i in obj:
|
||
x0.append({'value':i.dickeyid,'text':i.dickeyname})
|
||
x['child']=x0
|
||
gclist.append(x)
|
||
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).count()
|
||
noread = a-b
|
||
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})
|
||
|
||
def observepic(req):
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
|
||
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))
|
||
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=[]
|
||
for i in Dicclass.objects.filter(parentid__dicid=23):
|
||
x = i.dicname
|
||
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=[]#环境整洁
|
||
|
||
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())
|
||
|
||
|
||
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'):#开始时间
|
||
a = a.filter(looktime__gte=req.GET.get('qssj'))
|
||
if req.GET.get('jssj'):#结束时间
|
||
a = a.filter(looktime__lte=req.GET.get('jssj'))
|
||
if req.GET.get('fxbm'):
|
||
gcbm = req.GET.get('fxbm')
|
||
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")
|
||
|
||
|
||
|
||
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")
|
||
|
||
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')
|
||
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 = json.loads(userinfo)
|
||
nickname = userinfo['nickname']
|
||
headimgurl = userinfo['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)
|
||
if user.exists():
|
||
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}) #已绑定其他账号
|
||
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})
|
||
else:
|
||
if user[0].openid == openid:
|
||
return render(req,'bindwechat.html',{'msg':'绑定成功,请刷新电脑端浏览器!','code':1})
|
||
else:
|
||
return render(req,'bindwechat.html',{'msg':'该平台账号已绑定昵称为'+user[0].nickname+'的微信,不可重复绑定,请先至pc端解绑!','code':0}) #已绑定其他账号
|
||
else:
|
||
return render(req,'bwlogin.html',{'msg':'密码错误'})
|
||
else:
|
||
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')
|
||
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')#拉取用户信息
|
||
userinfo = json.loads(userinfo)
|
||
nickname = userinfo['nickname']
|
||
headimgurl = userinfo['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)
|
||
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})
|
||
else:
|
||
return render(req,'bwlogin.html',{'msg':'密码错误'})
|
||
else:
|
||
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})
|
||
|
||
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})
|
||
|
||
def vewechat(req):
|
||
return HttpResponse('201810170853050zbwtyaxirqeb757umcehktirlemh2ib10kcdovka13hchyf4s', content_type="text/plain")
|
||
|
||
def minip_px(req):
|
||
f = StringIO()
|
||
f.write('86beeba7de3c84c26244f19287f49a03')
|
||
res = HttpResponse(content_type='APPLICATION/OCTET-STREAM')
|
||
res['Content-Disposition'] = 'attachment;filename=boUR15vyNu.txt'
|
||
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 = json.loads(info)
|
||
mpopenid = info['openid']
|
||
session_key = info['session_key']
|
||
if User.objects.filter(mpopenid=mpopenid).exists():
|
||
a = User.objects.get(mpopenid=mpopenid)
|
||
userid = a.userid
|
||
username = a.username
|
||
req.session['userid'] = userid
|
||
# print(req.session,req.COOKIES)
|
||
return JsonResponse({"code":1,'userid':userid,'username':username,'mpopenid':mpopenid})
|
||
else:
|
||
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)
|
||
if user.exists():
|
||
if check_password(password,user[0].epassword):
|
||
user.update(mpopenid=mpopenid)
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
else:
|
||
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])
|
||
elif req.GET.get('a') == 'setup':
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
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])
|
||
elif req.method == 'POST':
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
yjsetupid = req.POST.get('yjsetupid')
|
||
monthyhavg = req.POST.get('monthyhavg')
|
||
safev = req.POST.get('safev')
|
||
warnv = req.POST.get('warnv')
|
||
alertv = req.POST.get('alertv')
|
||
maxv = req.POST.get('maxv')
|
||
yhpgqz = req.POST.get('yhpgqz')
|
||
yhdjqz = req.POST.get('yhdjqz')
|
||
yhsblqz = req.POST.get('yhsblqz')
|
||
yhzglqz = req.POST.get('yhzglqz')
|
||
pxdjqz = req.POST.get('pxdjqz')
|
||
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})
|
||
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})
|
||
|
||
@apicheck_login
|
||
def apicompany(req):
|
||
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':
|
||
admin = req.GET.get('admin')
|
||
company = req.GET.get('company')
|
||
y = Partment()
|
||
if Partment.objects.filter(partname=company).exists():
|
||
return JsonResponse({'code':0})
|
||
else:
|
||
y.partname = company
|
||
y.partlink = ','
|
||
y.iscompany = 1
|
||
y.save()
|
||
x = User()
|
||
x.username = admin
|
||
x.name = '超级管理员'
|
||
x.password = 'Aq123456'
|
||
x.epassword = make_password('Aq123456')
|
||
x.issuper = 1
|
||
x.ubelongpart = y
|
||
x.usecomp = y
|
||
x.save()
|
||
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)
|
||
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})
|
||
else:
|
||
return JsonResponse({'code':0,'msg':'no right!'})
|
||
|
||
def drapi(req):
|
||
a = req.GET.get('a')
|
||
if a == 'user':
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
file_name = 'c'+str(companyid)+'_'+req.FILES['upfile'].name
|
||
upload_folder = 'media/temp'
|
||
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:
|
||
f.write(req.FILES['upfile'].read())
|
||
# try:
|
||
userdict = drusers(companyid,filepath)
|
||
if userdict:
|
||
return JsonResponse({"code":2,"userdict":userdict})
|
||
else:
|
||
return JsonResponse({"code":1})
|
||
# except:
|
||
# return JsonResponse({"code":0})
|
||
elif a == 'equipment':
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
file_name = 'c'+str(companyid)+'_'+req.FILES['upfile'].name
|
||
upload_folder = 'media/temp'
|
||
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:
|
||
f.write(req.FILES['upfile'].read())
|
||
# try:
|
||
equipmentdict = drequipments(companyid,filepath)
|
||
if equipmentdict:
|
||
return JsonResponse({"code":2,"equipmentdict":equipmentdict})
|
||
else:
|
||
return JsonResponse({"code":1})
|
||
elif a == 'risk':
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
file_name = 'c'+str(companyid)+'_'+req.FILES['upfile'].name
|
||
upload_folder = 'media/temp'
|
||
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:
|
||
f.write(req.FILES['upfile'].read())
|
||
try:
|
||
risks = drrisks(companyid,filepath)
|
||
if risks:
|
||
return JsonResponse({"code":2,"risks":risks})
|
||
else:
|
||
return JsonResponse({"code":1})
|
||
except:
|
||
return JsonResponse({"code":0})
|
||
elif a == 'question':
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
file_name = 'c'+str(companyid)+'_'+req.FILES['upfile'].name
|
||
upload_folder = 'media/temp'
|
||
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:
|
||
f.write(req.FILES['upfile'].read())
|
||
msg = drquestions(companyid,filepath,userid)
|
||
if msg:
|
||
return JsonResponse({"code":2,"msg":msg})
|
||
else:
|
||
return JsonResponse({"code":1})
|
||
|
||
|
||
|
||
|
||
def apimiss(req):
|
||
a = req.GET.get('a')
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
if a == 'add':
|
||
obj = Miss()
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
obj.missplace = data['missplace']
|
||
obj.misstime = data['misstime']
|
||
obj.misser = User.objects.get(userid=userid)
|
||
obj.misspart = User.objects.get(userid=userid).ubelongpart
|
||
obj.description = data['description']
|
||
if 'missqy' in data:
|
||
if data['missqy']:
|
||
obj.missqy = Area.objects.get(id=data['missqy'])
|
||
if 'prevent' in data:
|
||
obj.prevent = data['prevent']
|
||
if 'lesson' in data:
|
||
obj.lesson = data['lesson']
|
||
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})
|
||
elif a == 'listall':
|
||
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.order_by('-misstime')
|
||
total = a.count()
|
||
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
|
||
else:
|
||
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')
|
||
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")
|
||
elif a == 'detail':
|
||
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]
|
||
if x['missimg']:
|
||
x['missimg'] = x['missimg'].split('?')
|
||
else:
|
||
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")
|
||
elif a == 'del':
|
||
missid =req.GET.get('missid')
|
||
a = Miss.objects.get(missid=missid)
|
||
if User.objects.get(userid = userid).issuper == 1:
|
||
a.deletemark=0
|
||
a.save()
|
||
yjjs_ws.delay(companyid)
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
elif a == 'listsearch':
|
||
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)
|
||
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")
|
||
elif a == 'exportexcel':
|
||
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)
|
||
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)
|
||
return res
|
||
elif a == 'exportword':
|
||
id = req.GET.get('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()
|
||
noread = a-b
|
||
return JsonResponse({'noread':noread})
|
||
|
||
def apisocert(req):
|
||
a = req.GET.get('a')
|
||
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
|
||
total = a.count()
|
||
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':
|
||
userid = req.session['userid']
|
||
cardnum = Userprofile.objects.get(user__userid=userid).cardnum
|
||
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")
|
||
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)
|
||
data1 = []
|
||
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'],
|
||
}
|
||
try:
|
||
updated_values['zszt'] = guoqi(i['应复审日期'])
|
||
except:
|
||
pass
|
||
obj, created = Socertificate.objects.update_or_create(
|
||
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')<i['有效期结束时间']:
|
||
obj.yfsrq = i['应复审日期'] if i['应复审日期'] else None
|
||
obj.yxqkssj = i['有效期开始时间'] if i['有效期开始时间'] else None
|
||
obj.yxqjssj = i['有效期结束时间'] if i['有效期结束时间'] else None
|
||
obj.sjfssj = i['实际复审时间'] if i['实际复审时间'] else None
|
||
try:
|
||
zsst = guoqi(i['应复审日期'])
|
||
obj.zszt = zsst
|
||
except:
|
||
pass
|
||
obj.save()
|
||
try:
|
||
obj = Userprofile.objects.get(user__userid=userid)
|
||
obj.realname = realname
|
||
obj.cardnum = cardnum
|
||
obj.gender = gender
|
||
obj.save()
|
||
except Userprofile.DoesNotExist:
|
||
obj = Userprofile(user=User.objects.get(userid=userid), realname=realname, cardnum=cardnum, gender=gender)
|
||
obj.save()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
elif a=='addspiderself':
|
||
userid = req.session['userid']
|
||
a = Userprofile.objects.get(user__userid=userid)
|
||
realname = a.realname
|
||
cardnum = a.cardnum
|
||
companyid = getcompany(userid)
|
||
data = getTzzs(cardnum,realname)
|
||
data1 = []
|
||
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'],
|
||
}
|
||
try:
|
||
updated_values['zszt'] = guoqi(i['应复审日期'])
|
||
except:
|
||
pass
|
||
obj, created = Socertificate.objects.update_or_create(
|
||
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')<i['有效期结束时间']:
|
||
obj.yfsrq = i['应复审日期'] if i['应复审日期'] else None
|
||
obj.yxqkssj = i['有效期开始时间'] if i['有效期开始时间'] else None
|
||
obj.yxqjssj = i['有效期结束时间'] if i['有效期结束时间'] else None
|
||
obj.sjfssj = i['实际复审时间'] if i['实际复审时间'] else None
|
||
try:
|
||
zsst = guoqi(i['应复审日期'])
|
||
obj.zszt = zsst
|
||
except:
|
||
pass
|
||
obj.save()
|
||
return JsonResponse({"code":1})
|
||
elif a=='del':
|
||
id =req.GET.get('id')
|
||
userid = req.session['userid']
|
||
a = Socertificate.objects.get(id=id)
|
||
if User.objects.get(userid = userid).issuper == 1:
|
||
a.delete()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
elif a=='detail':
|
||
id = req.GET.get('id')
|
||
a = Socertificate.objects.filter(id=id).values('id','realname','gender','zylb','czxm','fzjg','ccfzrq','yfsrq','yxqkssj','yxqjssj','sjfssj')
|
||
return JsonResponse(a[0])
|
||
elif a=='getjson':
|
||
cardnum = req.GET.get('cardnum')
|
||
realname = req.GET.get('realname')
|
||
return JsonResponse({"code":1,"data":getTzzs(cardnum,realname)})
|
||
elif a=='updateTzzs':
|
||
updateTzzs()
|
||
|
||
def guoqi(x):
|
||
now = datetime.now()
|
||
now1 = datetime.now() + timedelta(days=180)
|
||
if datetime.strptime(x,'%Y-%m-%d') > now1:
|
||
return 1
|
||
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':
|
||
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
|
||
total = a.count()
|
||
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':
|
||
userid = req.session['userid']
|
||
cardnum = Userprofile.objects.get(user__userid=userid).cardnum
|
||
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")
|
||
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)
|
||
data1 = []
|
||
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'],
|
||
}
|
||
try:
|
||
updated_values['zszt'] = guoqi(i['应复审日期'])
|
||
except:
|
||
pass
|
||
obj, created = Safecert.objects.update_or_create(
|
||
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')<i['有效期结束时间']:
|
||
obj.yfsrq = i['应复审日期'] if i['应复审日期'] else None
|
||
obj.yxqkssj = i['有效期开始时间'] if i['有效期开始时间'] else None
|
||
obj.yxqjssj = i['有效期结束时间'] if i['有效期结束时间'] else None
|
||
try:
|
||
zsst = guoqi(i['应复审日期'])
|
||
obj.zszt = zsst
|
||
except:
|
||
pass
|
||
obj.save()
|
||
try:
|
||
obj = Userprofile.objects.get(user__userid=userid)
|
||
obj.realname = realname
|
||
obj.cardnum = cardnum
|
||
obj.gender = gender
|
||
obj.save()
|
||
except Userprofile.DoesNotExist:
|
||
obj = Userprofile(user=User.objects.get(userid=userid), realname=realname, cardnum=cardnum, gender=gender)
|
||
obj.save()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
elif a=='addspiderself':
|
||
userid = req.session['userid']
|
||
a = Userprofile.objects.get(user__userid=userid)
|
||
realname = a.realname
|
||
cardnum = a.cardnum
|
||
companyid = getcompany(userid)
|
||
data = getAqzs(cardnum,realname)
|
||
data1 = []
|
||
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'],
|
||
}
|
||
try:
|
||
updated_values['zszt'] = guoqi(i['应复审日期'])
|
||
except:
|
||
pass
|
||
obj, created = Safecert.objects.update_or_create(
|
||
cardnum=cardnum, zglx=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')<i['有效期结束时间']:
|
||
obj.yfsrq = i['应复审日期'] if i['应复审日期'] else None
|
||
obj.yxqkssj = i['有效期开始时间'] if i['有效期开始时间'] else None
|
||
obj.yxqjssj = i['有效期结束时间'] if i['有效期结束时间'] else None
|
||
try:
|
||
zsst = guoqi(i['应复审日期'])
|
||
obj.zszt = zsst
|
||
except:
|
||
pass
|
||
obj.save()
|
||
return JsonResponse({"code":1})
|
||
elif a=='del':
|
||
id =req.GET.get('id')
|
||
userid = req.session['userid']
|
||
a = Safecert.objects.get(id=id)
|
||
if User.objects.get(userid = userid).issuper == 1:
|
||
a.delete()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
elif a=='detail':
|
||
id = req.GET.get('id')
|
||
a = Safecert.objects.filter(id=id).values('id','realname','gender','zglx','dwlx','fzjg','yfsrq','yxqkssj','yxqjssj','zszt','url')
|
||
return JsonResponse(a[0])
|
||
elif a=='getjson':
|
||
cardnum = req.GET.get('cardnum')
|
||
realname = req.GET.get('realname')
|
||
return JsonResponse({"code":1,"data":getAqzs(cardnum,realname)})
|
||
elif a=='updateAqzs':
|
||
updateAqzs()
|
||
|
||
def apipartuser(req):
|
||
a = req.GET.get('a')
|
||
if a == 'getall':
|
||
userid = req.session['userid']
|
||
if req.GET.get('parentid')=='company':
|
||
lst=[]
|
||
company = User.objects.get(userid=userid).usecomp
|
||
partobjs = Partment.objects.filter(parentid=company,deletemark=1)
|
||
for i in partobjs:
|
||
lst.append({'id':i.partid,'name':i.partname,'parentId':0,'checked':False,'isPeople':False,'children':[]})
|
||
userobjs = User.objects.filter(ubelongpart=company,deletemark=1).exclude(issuper=1)
|
||
for i in userobjs:
|
||
lst.append({'id':i.userid,'name':i.name,'parentId':0,'checked':False,'isPeople':True,'children':[]})
|
||
return JsonResponse({"code":1,"data":lst})
|
||
else:
|
||
lst=[]
|
||
partobjs = Partment.objects.filter(parentid=req.GET.get('parentid'),deletemark=1)
|
||
for i in partobjs:
|
||
lst.append({'id':i.partid,'name':i.partname,'parentId':0,'checked':False,'isPeople':False,'children':[]})
|
||
userobjs = User.objects.filter(ubelongpart=req.GET.get('parentid'),deletemark=1).exclude(issuper=1)
|
||
for i in userobjs:
|
||
lst.append({'id':i.userid,'name':i.name,'parentId':0,'checked':False,'isPeople':True,'children':[]})
|
||
return JsonResponse({"code":1,"data":lst})
|
||
|
||
|
||
def apiuser(req):
|
||
a = req.GET.get('a')
|
||
if a == 'detail':
|
||
userid = req.GET.get('userid')
|
||
companyid = getcompany(userid)
|
||
companyname = Partment.objects.get(partid=companyid).partname
|
||
userlist = User.objects.filter(userid=userid).values('userid','username','name','userprofile__realname','userprofile__cardnum','ubelongpart__partname','userprofile__gender')
|
||
userdict = userlist[0]
|
||
userdict['companyname'] = companyname
|
||
return HttpResponse(json.dumps(userdict,cls=MyEncoder),content_type="application/json")
|
||
elif a == 'detailself':
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
companyname = Partment.objects.get(partid=companyid).partname
|
||
userlist = User.objects.filter(userid=userid).values('userid','username','name','userprofile__realname','userprofile__cardnum','ubelongpart__partname','userprofile__gender')
|
||
userdict = userlist[0]
|
||
userdict['companyname'] = companyname
|
||
return HttpResponse(json.dumps(userdict,cls=MyEncoder),content_type="application/json")
|
||
elif a=='resetpass':
|
||
userid = req.session['userid']
|
||
nowuserid = req.GET.get('userid')
|
||
a = User.objects.get(userid=userid)
|
||
if a.issuper==1:
|
||
User.objects.filter(userid=nowuserid).update(password='0000',epassword=make_password('0000'))
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
elif a=='editself':
|
||
userid = req.session['userid']
|
||
cardnum = req.POST.get('cardnum')
|
||
realname = req.POST.get('realname')
|
||
gender = req.POST.get('gender')
|
||
try:
|
||
obj = Userprofile.objects.get(user__userid=userid)
|
||
obj.realname = realname
|
||
obj.cardnum = cardnum
|
||
obj.gender = gender
|
||
obj.save()
|
||
except Userprofile.DoesNotExist:
|
||
obj = Userprofile(user=User.objects.get(userid=userid), realname=realname, cardnum=cardnum, gender=gender)
|
||
obj.save()
|
||
return JsonResponse({"code":1})
|
||
elif a=='checkaqy':
|
||
userid = req.session['userid']
|
||
if Partment.objects.filter(Q(aqy__contains = ','+str(userid)+',')|Q(bmzg__contains = ','+str(userid)+',')|Q(bsq__contains = ','+str(userid)+',')).exists():
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
elif a=='uuserdatagrid':
|
||
userid = req.session['userid']
|
||
usecomp = User.objects.get(userid=userid).usecomp
|
||
a=User.objects.filter(usecomp = usecomp,deletemark=0).exclude(issuper=1).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")
|
||
elif a == 'recovery':
|
||
ruserid = req.GET.get('userid')
|
||
User.objects.filter(userid=ruserid).update(deletemark=1)
|
||
return JsonResponse({"code":1})
|
||
|
||
def apiduibiao(req):
|
||
text = req.POST.get('yhms')
|
||
result = calsim.calsimTojson(text)
|
||
return JsonResponse({'code':1,'data':result})
|
||
|
||
def apisuggest(req):
|
||
a = req.GET.get('a')
|
||
if a == 'add':
|
||
userid = req.session['userid']
|
||
oneuser = User.objects.get(userid=userid)
|
||
obj = Suggest()
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
obj.jylb = Dickey.objects.get(dickeyid=data['jylb'])
|
||
obj.jyr = oneuser
|
||
obj.jybm = oneuser.ubelongpart
|
||
obj.jynr = data['jynr']
|
||
obj.dqxz = data['dqxz']
|
||
obj.qwxg = data['qwxg']
|
||
obj.jynum='JY'+time.strftime('%Y%m%d%H%M%S')
|
||
obj.usecomp = oneuser.usecomp
|
||
if 'jyimg' in data:
|
||
obj.jyimg = '?'.join(data['jyimg'])
|
||
if 'jyqy' in data:
|
||
if data['jyqy']:
|
||
obj.jyqy = Area.objects.get(id=data['jyqy'])
|
||
if 'jydd' in data:
|
||
obj.jydd = data['jydd']
|
||
obj.jyzt = 1
|
||
todouser = getpgr2(userid,User.objects.get(userid=userid).ubelongpart)
|
||
obj.todouser = todouser
|
||
obj.pgr = todouser
|
||
obj.save()
|
||
Suggestflow.objects.create(suggest=obj,user=oneuser,action='提出新建议')
|
||
return JsonResponse({"code":1})
|
||
elif a == 'listall':
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
startnum,endnum=fenye(req)
|
||
a = Suggest.objects.filter(usecomp=Partment.objects.get(partid=companyid)).order_by('-submittime')
|
||
total = a.count()
|
||
startnum,endnum=fenye(req)
|
||
a = a[startnum:endnum].values('jyid','jylb__dickeyname','jyr__name','jybm__partname','dqxz','jynr','jynum','jyzt','todouser__userid','todouser__name','jyqy__name','jydd','submittime','accept')
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
elif a == 'listself':
|
||
userid = req.session['userid']
|
||
startnum,endnum=fenye(req)
|
||
a = Suggest.objects.filter(jyr__userid=userid).order_by('-submittime')
|
||
total = a.count()
|
||
startnum,endnum=fenye(req)
|
||
a = a[startnum:endnum].values('jyid','jylb__dickeyname','jyr__name','jybm__partname','dqxz','jynr','jynum','jyzt','todouser__userid','todouser__name','jyqy__name','jydd','submittime','accept')
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
elif a == 'listtodo':
|
||
userid = req.session['userid']
|
||
startnum,endnum=fenye(req)
|
||
a = Suggest.objects.filter(todouser__userid=userid).order_by('-submittime')
|
||
total = a.count()
|
||
startnum,endnum=fenye(req)
|
||
a = a[startnum:endnum].values('jyid','jylb__dickeyname','jyr__name','jybm__partname','dqxz','jynr','jynum','jyzt','todouser__userid','todouser__name','jyqy__name','jydd','submittime','accept')
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
elif a == 'todonum':
|
||
userid = req.session['userid']
|
||
a = Suggest.objects.filter(todouser__userid=userid).count()
|
||
return JsonResponse({'code':1,'todonum':a})
|
||
elif a == 'detail':
|
||
jyid=req.GET.get('jyid')
|
||
a = Suggest.objects.filter(jyid=jyid)
|
||
x = a.values('jyid','jylb__dickeyname','jynum','submittime','jyr__name','dqxz','jynr','jybm__partname','jyimg','qwxg','jyqy__name','jydd','jyzt','clr__name','jyfk','clcs','pgr__name','clms','jyimg2','sjwcsj','accept')[0]
|
||
if x['jyimg']!='':
|
||
x['jyimg'] = x['jyimg'].split('?')
|
||
else:
|
||
x['jyimg']=[]
|
||
for key in x:
|
||
if x[key] == None:
|
||
x[key] = ''
|
||
x['flow']=[]
|
||
for i in Suggestflow.objects.filter(suggest=a[0]).order_by('submittime'):
|
||
x['flow'].append({'name':i.user.name,'action':i.action,'submittime':i.submittime})
|
||
return HttpResponse(json.dumps(x,cls=MyEncoder),content_type="application/json")
|
||
elif a == 'del':
|
||
jyid =req.GET.get('jyid')
|
||
userid = req.session['userid']
|
||
a = Suggest.objects.get(jyid=jyid)
|
||
if User.objects.get(userid = userid).issuper == 1:
|
||
a.delete()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
elif a == 'listsearch':
|
||
userid = req.session['userid']
|
||
startnum,endnum=fenye(req)
|
||
a = Suggest.objects.filter(usecomp=User.objects.get(userid=userid).usecomp)
|
||
if req.GET.get('qssj'):
|
||
a = a.filter(submittime__gte=req.GET.get('qssj'))
|
||
if req.GET.get('jssj'):
|
||
a = a.filter(submittime__lte=req.GET.get('jssj'))
|
||
total = a.count()
|
||
a = a[startnum:endnum].values('jyid','jylb__dickeyname','jyr__name','jybm__partname','dqxz','jynr','jynum','jyzt','todouser__userid','todouser__name','jyqy__name','jydd','submittime','accept')
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
elif a == 'exportexcel':
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
a = Suggest.objects.filter(usecomp=Partment.objects.get(partid=companyid))
|
||
if req.GET.get('qssj'):
|
||
a = a.filter(jyrq__gte=req.GET.get('qssj'))
|
||
if req.GET.get('jssj'):
|
||
a = a.filter(jyrq__lte=req.GET.get('jssj'))
|
||
res = exportxlsx('jy',a)
|
||
return res
|
||
elif a == 'exportword':
|
||
id = req.GET.get('id')
|
||
res = exportdoc('jy',id)
|
||
return res
|
||
|
||
elif a == 'update': #评估
|
||
userid = req.session['userid']
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
obj = Suggest.objects.get(jyid=data['jyid'])
|
||
if data['jyzt']==1:
|
||
if data['apcl']==True:
|
||
obj.jyzt = 2 #处理
|
||
user = User.objects.get(userid=data['clr'])
|
||
obj.todouser = user
|
||
obj.clr = user
|
||
obj.jyfk = data['jyfk']
|
||
obj.clcs = data['clcs']
|
||
obj.save()
|
||
Suggestflow.objects.create(suggest=obj,user=User.objects.get(userid=userid),action='指派'+user.name+'处理')
|
||
return JsonResponse({"code":1})
|
||
elif data['zjtr']==True:
|
||
user = User.objects.get(userid=data['npgr'])
|
||
obj.todouser = user
|
||
obj.pgr = user
|
||
if 'jyfk' in data:
|
||
if data['jyfk']:
|
||
obj.jyfk = data['jyfk']
|
||
obj.save()
|
||
Suggestflow.objects.create(suggest=obj,user=User.objects.get(userid=userid),action='转交'+user.name+'评估')
|
||
return JsonResponse({"code":1})
|
||
elif 'accept' in data:
|
||
if data['accept'] == 'no':
|
||
obj.jyzt = 4
|
||
obj.todouser = None
|
||
obj.jyfk = data['jyfk']
|
||
obj.accept = 0
|
||
obj.save()
|
||
Suggestflow.objects.create(suggest=obj,user=User.objects.get(userid=userid),action='未采纳该建议')
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
obj.jyzt = 4
|
||
obj.todouser = None
|
||
obj.jyfk = data['jyfk']
|
||
obj.save()
|
||
Suggestflow.objects.create(suggest=obj,user=User.objects.get(userid=userid),action='完成建议反馈')
|
||
return JsonResponse({"code":1})
|
||
elif data['jyzt']==2:
|
||
obj.jyzt = 3
|
||
if 'clms' in data:
|
||
obj.clms = data['clms']
|
||
if 'jyimg2' in data:
|
||
if data['jyimg2']:
|
||
obj.jyimg2 = data['jyimg2']
|
||
obj.todouser = obj.pgr
|
||
obj.sjwcsj = datetime.now()
|
||
obj.save()
|
||
Suggestflow.objects.create(suggest=obj,user=User.objects.get(userid=userid),action='提交处理结果')
|
||
return JsonResponse({"code":1})
|
||
elif data['jyzt']==3:
|
||
if data['shresult'] != 'reject':
|
||
obj.jyzt = 4
|
||
obj.todouser = None
|
||
obj.save()
|
||
Suggestflow.objects.create(suggest=obj,user=User.objects.get(userid=userid),action='确认处理结果')
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
obj.jyzt = 2
|
||
obj.todouser = obj.clr
|
||
if 'shyj' in data:
|
||
if data['shyj']:
|
||
obj.shyj = data['shyj']
|
||
obj.save()
|
||
Suggestflow.objects.create(suggest=obj,user=User.objects.get(userid=userid),action='驳回处理结果')
|
||
return JsonResponse({"code":1})
|
||
|
||
|
||
|
||
|
||
#特别操作
|
||
def apitool(req):
|
||
a = req.GET.get('a')
|
||
if a == 'updatecompany':
|
||
for i in User.objects.all():
|
||
companyid = getcompany(i.userid)
|
||
i.usecomp = Partment.objects.get(partid = companyid)
|
||
i.save()
|
||
elif a == 'correctcompany':
|
||
objs = Partment.objects.filter(iscompany=1)
|
||
clist = []
|
||
for i in objs:
|
||
users = User.objects.filter(usecomp=i)
|
||
if users.exists():
|
||
pass
|
||
else:
|
||
i.delete()
|
||
clist.append({'id':i.partid,'name':i.partname})
|
||
return JsonResponse({'code':1,'clist':clist})
|
||
elif a == 'correct_train_qr':
|
||
for i in Train.objects.all():
|
||
i.checkqr = makeqr_train('https://safeyun.ctcshe.com/miniprogram/checktrain?trainid='+str(i.trainid))
|
||
i.save()
|
||
return JsonResponse({'code':1})
|
||
elif a == 'correct_teacher':
|
||
for i in Train.objects.all():
|
||
if i.lecturer != None:
|
||
i.teacher = i.lecturer.name
|
||
i.save()
|
||
return JsonResponse({'code':1})
|
||
elif a == 'correct_riskact_qr':
|
||
for i in RiskAct.objects.all():
|
||
i.qrcode = makeqr_riskact('https://safeyun.ctcshe.com/miniprogram/riskact?id='+str(i.id))
|
||
i.save()
|
||
return JsonResponse({'code':1})
|
||
elif a == 'correct_examtest_qr':
|
||
for i in ExamTest.objects.all():
|
||
i.qrcode = makeqr_examtest('https://safeyun.ctcshe.com/miniprogram/examtest?id='+str(i.id))
|
||
i.save()
|
||
return JsonResponse({'code':1})
|
||
elif a == 'correct_area_qr':
|
||
for i in Area.objects.all():
|
||
i.qrcode = makeqr_area('https://safeyun.ctcshe.com/miniprogram/area?id='+str(i.id))
|
||
i.save()
|
||
return JsonResponse({'code':1})
|
||
elif a == 'correct_risk':
|
||
for i in Risk.objects.all():
|
||
cal_riskact_level(i.riskact)
|
||
return JsonResponse({'code':1})
|
||
elif a == 'correct_riskarea':
|
||
for i in RiskAct.objects.all():
|
||
cal_area_risk_level(i.area)
|
||
return JsonResponse({'code':1})
|
||
elif a == 'addright':
|
||
menu = req.GET.get('menu')
|
||
objs = Group.objects.all()
|
||
if req.GET.get('company'):
|
||
objs = objs.filter(usecomp__partid=req.GET.get('company'))
|
||
for i in objs:
|
||
menulist = i.menulink.split(',')
|
||
menulist.append(menu)
|
||
if menu=='30':
|
||
company = Partment.objects.get(partid=req.GET.get('company'))
|
||
objs = Map.objects.filter(usecomp=company)
|
||
if objs.exists():
|
||
pass
|
||
else:
|
||
Map.objects.create(name='默认地图',pic='/static/safesite/mystatic/images/snc.jpg',usecomp=company,default=1)
|
||
newlist = list(set(menulist))
|
||
i.menulink = ','.join(newlist)
|
||
i.save()
|
||
return JsonResponse({"code":1})
|
||
elif a == 'correction':
|
||
for i in Yjyc.objects.all():
|
||
if i.ycz < 0:
|
||
i.ycz = 0
|
||
i.save()
|
||
if round(i.yjz,2)!=i.troublevalue+i.trainvalue+i.drillvalue:
|
||
i.yjz = round(i.troublevalue+i.trainvalue+i.drillvalue,2)
|
||
i.save()
|
||
return JsonResponse({"code":1})
|
||
elif a == 'servertime':
|
||
return JsonResponse({"code":1,"year":datetime.now().year,"month":datetime.now().month})
|
||
elif a == 'transfer':
|
||
newpart = req.GET.get('part')
|
||
username = req.GET.get('username')
|
||
user = User.objects.get(username=username)
|
||
oldpart = user.ubelongpart
|
||
oldpart.aqy = oldpart.aqy.replace(','+str(user.userid)+',','')
|
||
oldpart.bmzg = oldpart.bmzg.replace(','+str(user.userid)+',','')
|
||
oldpart.bsq = oldpart.bsq.replace(','+str(user.userid)+',','')
|
||
oldpart.save()
|
||
part = Partment.objects.get(partid=newpart)
|
||
if part.iscompany==1:
|
||
usecomp = part
|
||
else:
|
||
usecomp = Partment.objects.get(partid=part.partlink.split(',')[1])
|
||
user.ubelongpart = part
|
||
user.usecomp = usecomp
|
||
user.save()
|
||
for i in Group.objects.filter(usecomp=usecomp):
|
||
i.users.remove(user)
|
||
groupobj = Group.objects.filter(usecomp=usecomp,grouptype=3).first()
|
||
groupobj.users.add(user)
|
||
return JsonResponse({"code":1})
|
||
elif a == 'correctionzs':
|
||
objs = Socertificate.objects.all()
|
||
for i in objs:
|
||
try:
|
||
i.zszt = guoqi(i.yfsrq.strftime("%Y-%m-%d"))
|
||
i.save()
|
||
except:
|
||
pass
|
||
return JsonResponse({"code":1})
|
||
elif a == 'correctriskact':
|
||
objs = RiskAct.objects.all()
|
||
for i in objs:
|
||
if Risk.objects.filter(riskact=i).exists():
|
||
i.group = Risk.objects.filter(riskact=i)[0].group
|
||
i.gkcj = Risk.objects.filter(riskact=i)[0].gkcj
|
||
i.zrbm = Risk.objects.filter(riskact=i)[0].zrbm
|
||
i.zrr = Risk.objects.filter(riskact=i)[0].zrr
|
||
i.save()
|
||
return JsonResponse({"code":1})
|
||
elif a == 'correct_png':
|
||
objs = Trouble.objects.filter(Q(yhtp__contains='#')|Q(zghtp__contains='#'))
|
||
for i in objs:
|
||
i.yhtp = i.yhtp.replace('#','')
|
||
i.zghtp = i.zghtp.replace('#','')
|
||
i.save()
|
||
return JsonResponse({"code":1})
|
||
elif a == 'correct_yjyc':
|
||
for i in Partment.objects.filter(iscompany=1,deletemark=1):
|
||
yjjs(i.partid)
|
||
yjjs_gc(i.partid)
|
||
yjjs_px(i.partid)
|
||
yjjs_ws(i.partid)
|
||
yjjs_yl(i.partid)
|
||
return JsonResponse({"code":1})
|
||
elif a == 'correct_company':
|
||
m = []
|
||
for i in Partment.objects.filter(iscompany=1,deletemark=1):
|
||
if User.objects.filter(usecomp=i).exists() :
|
||
pass
|
||
else:
|
||
x = {}
|
||
x['name']=i.partname
|
||
x['id']=i.partid
|
||
m.append(x)
|
||
return JsonResponse({'wxgs':m})
|
||
elif a == 'correct_spjd':
|
||
for i in Operationspjd.objects.all():
|
||
if i.spr:
|
||
i.sprs = [i.spr.userid]
|
||
i.save()
|
||
return JsonResponse({"code":1})
|
||
elif a == 'supercompany':
|
||
supergroup = g_models.Group.objects.get(groupname='supergroup')
|
||
for i in Partment.objects.filter(iscompany=1,deletemark=1):
|
||
obj,create = g_models.Groupmember.objects.get_or_create(group=supergroup,member=i,defaults={'group':supergroup,'member':i})
|
||
if create:
|
||
print(i.partname+'---加入supergroup')
|
||
return JsonResponse({"code":1})
|
||
elif a == 'correct_password':
|
||
for i in User.objects.filter(epassword=None):
|
||
i.epassword = make_password(i.password)
|
||
i.save()
|
||
return JsonResponse({"code":1})
|
||
elif a == 'correct_operation':
|
||
for i in Operation.objects.all():
|
||
if i.zyzt['zyzt'] == '待关闭' or i.zyzt['zyzt'] == '已关闭':
|
||
if 'jdmc' in i.zyzt:
|
||
i.zyzt['jdmc'] =''
|
||
i.save()
|
||
return JsonResponse({"code":1})
|
||
|
||
|
||
|
||
def apinotice(req):
|
||
a = req.GET.get('a')
|
||
if a == 'add':
|
||
userid = req.session['userid']
|
||
oneuser = User.objects.get(userid=userid)
|
||
obj = Notice()
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
obj.title = data['title']
|
||
obj.content = data['content']
|
||
obj.pubuser = oneuser
|
||
obj.pubpart = oneuser.ubelongpart
|
||
obj.usecomps = ',' + str(oneuser.usecomp.partid)+','
|
||
if data['tzfile']:
|
||
obj.material = '?'.join(data['tzfile'])
|
||
obj.save()
|
||
if data['tousers']:
|
||
obj.isgg=0
|
||
obj.save()
|
||
ulist = data['tousers'].split(',')
|
||
b = []
|
||
for i in ulist:
|
||
x = User.objects.get(userid=i)
|
||
m=Noticeto(noticeid=obj,receiver=x)
|
||
m.save()
|
||
b.append(x.openid)
|
||
postdict={
|
||
'touser':'',
|
||
'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0',
|
||
"miniprogram":{"appid":"wx5c39b569f01c27db"},
|
||
'data':{
|
||
'first':{
|
||
'value':'公司通知:'
|
||
},
|
||
'keyword1':{
|
||
'value':obj.title
|
||
},
|
||
'keyword2':{
|
||
'value':obj.submittime
|
||
},
|
||
'keyword3':{
|
||
'value':oneuser.name
|
||
},
|
||
'remark':{
|
||
'value':'请及时查看阅读'
|
||
}
|
||
}
|
||
}
|
||
send_wechatmsgs.delay(postdict,b)
|
||
return JsonResponse({"code":1})
|
||
elif a == 'edit':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
obj = Notice.objects.get(id=data['id'])
|
||
obj.title = data['title']
|
||
obj.content = data['content']
|
||
if data['tzfile']:
|
||
obj.material = '?'.join(data['tzfile'])
|
||
obj.modifytime = datetime.now()
|
||
obj.save()
|
||
return JsonResponse({"code":1})
|
||
elif a == 'listall':
|
||
userid = req.session['userid']
|
||
usecomp = User.objects.get(userid=userid).usecomp
|
||
a = (Notice.objects.filter(usecomps__contains=',' + str(usecomp.partid)+',',deletemark=1)|Notice.objects.filter(usecomps__contains=',1,',deletemark=1,isgg=1)).distinct().order_by('-submittime')
|
||
total = a.count()
|
||
startnum,endnum=fenye(req)
|
||
a = a[startnum:endnum].values('id','title','pubpart__partname','pubuser__name','pubuser__userid','submittime','modifytime','reads','isgg')
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
elif a == 'listpublic':
|
||
userid = req.session['userid']
|
||
usecomp = User.objects.get(userid=userid).usecomp
|
||
a = (Notice.objects.filter(usecomps__contains=',' + str(usecomp.partid)+',',deletemark=1,isgg=1)|Notice.objects.filter(usecomps__contains=',1,',deletemark=1,isgg=1)).distinct().order_by('-submittime')
|
||
total = a.count()
|
||
startnum,endnum=fenye(req)
|
||
a = a[startnum:endnum].values('id','title','pubpart__partname','pubuser__name','pubuser__userid','submittime','modifytime','reads','isgg')
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
elif a == 'listtodomain':
|
||
userid = req.session['userid']
|
||
a = Noticeto.objects.filter(receiver=User.objects.get(userid=userid)).values('noticeid').annotate(num=Sum('read')).order_by('-noticeid__submittime')
|
||
total = a.count()
|
||
startnum,endnum=fenye(req)
|
||
a = a[startnum:endnum].values('noticeid__id','noticeid__title','num','noticeid__submittime','noticeid__pubpart__partname','noticeid__pubuser__name')
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
elif a == 'listtome':
|
||
userid = req.session['userid']
|
||
b = Noticeto.objects.filter(receiver=User.objects.get(userid=userid),noticeid__deletemark=1)
|
||
a = b.order_by('-noticeid__submittime')
|
||
total = a.count()
|
||
noread = b.filter(read=0).count()
|
||
startnum,endnum=fenye(req)
|
||
a = a[startnum:endnum].values('noticeid__id','noticeid__title','read','noticeid__submittime','noticeid__pubpart__partname','noticeid__pubuser__name')
|
||
return HttpResponse(json.dumps({'total':total,'rows':list(a),'noread':noread,'code':1},cls=MyEncoder),content_type="application/json")
|
||
elif a == 'noreadnum':
|
||
userid = req.session['userid']
|
||
b = Noticeto.objects.filter(receiver=User.objects.get(userid=userid),noticeid__deletemark=1)
|
||
noread = b.filter(read=0).count()
|
||
return JsonResponse({'noread':noread})
|
||
elif a == 'listtodo':
|
||
userid = req.session['userid']
|
||
userobj = User.objects.get(userid=userid)
|
||
usecomp = userobj.usecomp
|
||
a = (Notice.objects.filter(tousers=userobj,deletemark=1)|Notice.objects.filter(usecomps__contains=',' + str(usecomp.partid)+',',deletemark=1)|Notice.objects.filter(usecomps__contains=',1,',deletemark=1,isgg=1)).distinct().order_by('-submittime')
|
||
total = a.count()
|
||
startnum,endnum=fenye(req)
|
||
a = a[startnum:endnum].values('id','title','pubpart__partname','pubuser__name','submittime','reads')
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
elif a == 'listself':
|
||
userid = req.session['userid']
|
||
userobj = User.objects.get(userid=userid)
|
||
a = Notice.objects.filter(pubuser=userobj,deletemark=1).order_by('-submittime')
|
||
total = a.count()
|
||
startnum,endnum=fenye(req)
|
||
a = a[startnum:endnum].values('id','title','pubpart__partname','pubuser__name','submittime','reads')
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
elif a == 'detail':
|
||
id=req.GET.get('id')
|
||
userid = req.session['userid']
|
||
a = Notice.objects.filter(id=id)
|
||
aobj = a[0]
|
||
aobj.reads = int(aobj.reads) + 1
|
||
aobj.save()
|
||
x = a.values('id','title','pubpart__partname','pubuser__name','submittime','modifytime','material','content','isgg','reads')[0]
|
||
if x['material']:
|
||
x['material'] = x['material'].split('?')
|
||
else:
|
||
x['material']=[]
|
||
for key in x:
|
||
if x[key] == None:
|
||
x[key] = ''
|
||
data = {}
|
||
data['notice'] = x
|
||
readobj = Noticeto.objects.filter(noticeid__in=a)
|
||
reads = readobj.values('receiver__name','read')
|
||
data['reads'] = list(reads)
|
||
data['readpeople']= readobj.exclude(read=0).count()
|
||
data['readsnum'] = readobj.aggregate(num=Sum('read')).get('num') or 0
|
||
|
||
try:
|
||
toobj = Noticeto.objects.get(noticeid__id=id,receiver__userid = userid)
|
||
toobj.read = int(toobj.read) + 1
|
||
toobj.save()
|
||
except:
|
||
pass
|
||
return JsonResponse(data)
|
||
elif a == 'del':
|
||
id =req.GET.get('id')
|
||
userid = req.session['userid']
|
||
a = Notice.objects.get(id=id)
|
||
if a.usecomps !=',1,' and User.objects.get(userid=userid).issuper==1:
|
||
a.deletemark=0
|
||
a.save()
|
||
return JsonResponse({"code":1})
|
||
elif userid==8:
|
||
a.deletemark=0
|
||
a.save()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
elif a == 'listsearch':
|
||
userid = req.session['userid']
|
||
startnum,endnum=fenye(req)
|
||
a = Notice.objects.filter(usecomp=User.objects.get(userid=userid).usecomp)
|
||
# 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)
|
||
if req.GET.get('qssj'):
|
||
a = a.filter(submittime__gte=req.GET.get('qssj'))
|
||
if req.GET.get('jssj'):
|
||
a = a.filter(submittime__lte=req.GET.get('jssj'))
|
||
total = a.count()
|
||
a = a.order_by('-submittime')[startnum:endnum].values('id','title','pubpart__partname','pubuser__name','submittime')
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
elif a == 'exportexcel':
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
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)
|
||
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'))
|
||
v = exportxlsx('ws',a)
|
||
return JsonResponse({"code":1,'downloadurl':v})
|
||
|
||
|
||
|
||
|
||
def apioperation(req):
|
||
a = req.GET.get('a')
|
||
if a == 'add':
|
||
userid = req.session['userid']
|
||
oneuser = User.objects.get(userid=userid)
|
||
obj = Operation()
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
obj.zydd = data['zydd']
|
||
obj.zynr = data['zynr']
|
||
obj.kssj = data['kssj']
|
||
obj.jssj = data['jssj']
|
||
if 'zyqy' in data:
|
||
obj.zyqy = Area.objects.get(id=data['zyqy']) if data['zyqy'] else None
|
||
obj.zylx = Dickey.objects.get(dickeyid=data['zylx'])
|
||
obj.zybm = oneuser.ubelongpart
|
||
obj.sdbm = Partment.objects.get(partid=data['sdbm'])
|
||
obj.zyfzr = oneuser
|
||
obj.zynum='ZY'+time.strftime('%Y%m%d%H%M%S')
|
||
obj.usecomp = oneuser.usecomp
|
||
if 'zyimg' in data:
|
||
obj.zyimg = '?'.join(data['zyimg'])
|
||
obj.fxcs = '?'.join(map(str,data['fxcs']))
|
||
obj.zyzt = {'zyzt':'确认中','index':0}
|
||
obj.save()
|
||
splc = []
|
||
splc.append({'jdmc':'作业负责人','sprs':[userid]})
|
||
splc.append({'jdmc':'作业部门审批中','sprs':getsprs(userid,obj.zybm)})
|
||
splc.append({'jdmc':'属地部门审批中','sprs':getsprs(userid,obj.sdbm)})
|
||
for i in Operationspjd.objects.filter(zylx=obj.zylx,usecomp=Partment.objects.get(partid=getcompany(userid))).order_by('id'):
|
||
splc.append({'jdmc':i.jdmc,'sprs':i.sprs})
|
||
obj.zyzt['splc']=splc
|
||
obj.save()
|
||
# Operspxq.objects.create(oper=obj,jdmc='作业负责人审批',spr=obj.zyfzr,checked=1,spbm=obj.zyfzr.ubelongpart)
|
||
b=[]#发送通知
|
||
for i in data['zyry']:
|
||
x=User.objects.get(userid=i)
|
||
m = Operzyry(oper=obj,operzyry=x)
|
||
m.save()
|
||
b.append(x.openid)
|
||
|
||
postdict={
|
||
'touser':'',
|
||
'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0',
|
||
"miniprogram":{"appid":"wx5c39b569f01c27db"},
|
||
'data':{
|
||
'first':{
|
||
'value':obj.zylx.dickeyname + '作业通知:'
|
||
},
|
||
'keyword1':{
|
||
'value':obj.zynr
|
||
},
|
||
'keyword2':{
|
||
'value':obj.kssj
|
||
},
|
||
'keyword3':{
|
||
'value':obj.zydd
|
||
},
|
||
'remark':{
|
||
'value':obj.zyfzr.name+'为作业负责人,请确认参与作业'
|
||
}
|
||
}
|
||
}
|
||
send_wechatmsgs.delay(postdict,b)
|
||
return JsonResponse({"code":1})
|
||
elif a == 'listall':
|
||
userid = req.session['userid']
|
||
usecomp = User.objects.get(userid=userid).usecomp
|
||
a = Operation.objects.filter(usecomp=usecomp,deletemark=1).order_by('-submittime')
|
||
if req.GET.get('zyqy',False):
|
||
a = a.filter(zyqy__id=req.GET.get('zyqy'))
|
||
if req.GET.get('qssj',None):
|
||
a = a.filter(kssj__gte = req.GET.get('qssj'))
|
||
if req.GET.get('jssj',None):
|
||
a = a.filter(jssj__lte = req.GET.get('jssj'))
|
||
total = a.count()
|
||
startnum,endnum=fenye(req)
|
||
a = a[startnum:endnum].values('zyid','zylx__dickeyname','zynum','zyfzr__name','zynr','zyzt','submittime','todouser__name')
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
elif a == 'exportexcel':
|
||
userid = req.session['userid']
|
||
usecomp = User.objects.get(userid=userid).usecomp
|
||
a = Operation.objects.filter(usecomp=usecomp,deletemark=1).order_by('-submittime')
|
||
res = exportxlsx('zy',a)
|
||
return res
|
||
elif a == 'listtodo':
|
||
userid = req.session['userid']
|
||
usecomp = User.objects.get(userid=userid).usecomp
|
||
i = []
|
||
b = Operzyry.objects.filter(operzyry__userid=userid,checked=0)
|
||
for x in b:
|
||
i.append(x.oper.zyid)
|
||
a = Operation.objects.filter(usecomp=usecomp,deletemark=1,zyid__in=i)
|
||
a = (a|Operation.objects.filter(todouser=User.objects.get(userid=userid))|Operation.objects.filter(todousers__contains=[userid])).order_by('-submittime')
|
||
total = a.count()
|
||
startnum,endnum=fenye(req)
|
||
a = a[startnum:endnum].values('zyid','zylx__dickeyname','zynum','zyfzr__name','zynr','zyzt','submittime')
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
elif a == 'listself':
|
||
userid = req.session['userid']
|
||
usecomp = User.objects.get(userid=userid).usecomp
|
||
a = Operation.objects.filter(usecomp=usecomp,deletemark=1,zyfzr__userid=userid).order_by('-submittime')
|
||
total = a.count()
|
||
startnum,endnum=fenye(req)
|
||
a = a[startnum:endnum].values('zyid','zylx__dickeyname','zynum','zyfzr__name','zynr','zyzt','submittime','todouser__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]
|
||
if x['zyimg']!='':
|
||
x['zyimg'] = x['zyimg'].split('?')
|
||
else:
|
||
x['zyimg']=[]
|
||
if x['zyimg2']!='':
|
||
x['zyimg2'] = x['zyimg2'].split('?')
|
||
else:
|
||
x['zyimg2']=[]
|
||
x['fxcs'] = list(Fxcs.objects.filter(id__in=x['fxcs'].split('?')).values('id','fxfx','aqcs','cslx'))
|
||
#确认详情
|
||
qrxq = Operzyry.objects.filter(oper=Operation.objects.get(zyid=zyid)).values('operzyry__name','checked')
|
||
x['qrxq'] = list(qrxq)
|
||
#审批详情
|
||
spxq = Operspxq.objects.filter(oper=Operation.objects.get(zyid=zyid)).order_by('submittime').values('jdmc','spbm__partname','spr__name','submittime','checked')
|
||
x['spxq'] = list(spxq)
|
||
return HttpResponse(json.dumps(x,cls=MyEncoder),content_type="application/json")
|
||
elif a == 'exportword':
|
||
zyid=req.GET.get('id')
|
||
res = exportdoc('zy',zyid)
|
||
return res
|
||
elif a == 'qrzy':
|
||
userid = req.session['userid']
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
zyid = data['zyid']
|
||
Operzyry.objects.filter(oper__zyid=zyid,operzyry__userid=userid).update(checked=1)
|
||
if Operzyry.objects.filter(oper__zyid=zyid,checked=0).exists():
|
||
pass
|
||
else:
|
||
obj = Operation.objects.get(zyid=zyid)
|
||
nowzt = obj.zyzt
|
||
obj.zyzt['zyzt'] = '审批中'
|
||
obj.zyzt['index'] = 0
|
||
index = obj.zyzt['index']
|
||
obj.zyzt['jdmc'] = obj.zyzt['splc'][index]['jdmc']
|
||
if 'sprs' in obj.zyzt['splc'][index]:
|
||
sprs = obj.zyzt['splc'][index]['sprs']
|
||
else:
|
||
sprs = [obj.zyzt['splc'][index]['spr']]
|
||
obj.todousers = sprs
|
||
obj.save()
|
||
postdict={
|
||
'touser':'',
|
||
'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0',
|
||
"miniprogram":{"appid":"wx5c39b569f01c27db"},
|
||
'data':{
|
||
'first':{
|
||
'value':obj.zylx.dickeyname + '作业审批:'
|
||
},
|
||
'keyword1':{
|
||
'value':obj.zynr
|
||
},
|
||
'keyword2':{
|
||
'value':obj.kssj
|
||
},
|
||
'keyword3':{
|
||
'value':obj.zydd
|
||
},
|
||
'remark':{
|
||
'value':'请您及时完成审批!'
|
||
}
|
||
}
|
||
}
|
||
send_wechatmsgsu.delay(postdict,sprs)
|
||
return JsonResponse({"code":1})
|
||
elif a == 'spzy':
|
||
userid = req.session['userid']
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
zyid = data['zyid']
|
||
obj = Operation.objects.get(zyid=zyid)
|
||
oldtodo = obj.todousers
|
||
oldjdmc = obj.zyzt['jdmc']
|
||
nextindex = obj.zyzt['index']+1
|
||
spruser = User.objects.get(userid=userid)
|
||
if 'zzsp' in data:#关闭审批
|
||
obj.zyzt['zyzt'] = '待关闭'
|
||
obj.zyzt['jdmc'] = ''
|
||
obj.todouser = obj.zyfzr
|
||
obj.todousers = None
|
||
obj.save()
|
||
Operspxq.objects.create(oper=Operation.objects.get(zyid=zyid),jdmc=oldjdmc,spr=spruser,checked=1,spbm=spruser.ubelongpart)
|
||
postdict={
|
||
'touser':'',
|
||
'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0',
|
||
"miniprogram":{"appid":"wx5c39b569f01c27db"},
|
||
'data':{
|
||
'first':{
|
||
'value':obj.zylx.dickeyname + '作业审批通过:'
|
||
},
|
||
'keyword1':{
|
||
'value':obj.zynr
|
||
},
|
||
'keyword2':{
|
||
'value':obj.kssj
|
||
},
|
||
'keyword3':{
|
||
'value':obj.zydd
|
||
},
|
||
'remark':{
|
||
'value':'你是作业负责人,可以开始作业,作业完成请及时关闭!'
|
||
}
|
||
}
|
||
}
|
||
send_wechatmsg.delay(postdict)
|
||
return JsonResponse({"code":1})
|
||
if 'zjsp' in data:#转交审批
|
||
newsprs = data['newsprs']#新审批人
|
||
obj.todousers = newsprs
|
||
obj.save()
|
||
postdict={
|
||
'touser':'',
|
||
'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0',
|
||
"miniprogram":{"appid":"wx5c39b569f01c27db"},
|
||
'data':{
|
||
'first':{
|
||
'value':obj.zylx.dickeyname + '作业审批:'
|
||
},
|
||
'keyword1':{
|
||
'value':obj.zynr
|
||
},
|
||
'keyword2':{
|
||
'value':obj.kssj
|
||
},
|
||
'keyword3':{
|
||
'value':obj.zydd
|
||
},
|
||
'remark':{
|
||
'value':'请您及时完成审批!'
|
||
}
|
||
}
|
||
}
|
||
send_wechatmsgsu.delay(postdict,newsprs)
|
||
Operspxq.objects.create(oper=Operation.objects.get(zyid=zyid),jdmc=oldjdmc,spr=spruser,checked=2,spbm=spruser.ubelongpart)
|
||
return JsonResponse({"code":1})
|
||
try:
|
||
nextsplc = obj.zyzt['splc'][nextindex]
|
||
obj.zyzt['zyzt'] = '审批中'
|
||
obj.zyzt['index'] = nextindex
|
||
obj.zyzt['jdmc'] = nextsplc['jdmc']
|
||
obj.todousers = nextsplc['sprs']
|
||
obj.save()
|
||
postdict={
|
||
'touser':'',
|
||
'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0',
|
||
"miniprogram":{"appid":"wx5c39b569f01c27db"},
|
||
'data':{
|
||
'first':{
|
||
'value':obj.zylx.dickeyname + '作业审批:'
|
||
},
|
||
'keyword1':{
|
||
'value':obj.zynr
|
||
},
|
||
'keyword2':{
|
||
'value':obj.kssj
|
||
},
|
||
'keyword3':{
|
||
'value':obj.zydd
|
||
},
|
||
'remark':{
|
||
'value':'请您及时完成审批!'
|
||
}
|
||
}
|
||
}
|
||
send_wechatmsgsu.delay(postdict,nextsplc['sprs'])
|
||
|
||
Operspxq.objects.create(oper=Operation.objects.get(zyid=zyid),jdmc=oldjdmc,spr=spruser,checked=1,spbm=spruser.ubelongpart)
|
||
except :
|
||
obj.zyzt['zyzt'] = '待关闭'
|
||
obj.zyzt['jdmc'] = ''
|
||
obj.todouser = None
|
||
obj.todousers = [obj.zyfzr.userid]
|
||
obj.save()
|
||
Operspxq.objects.create(oper=Operation.objects.get(zyid=zyid),jdmc=oldjdmc,spr=spruser,checked=1,spbm=spruser.ubelongpart)
|
||
postdict={
|
||
'touser':'',
|
||
'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0',
|
||
"miniprogram":{"appid":"wx5c39b569f01c27db"},
|
||
'data':{
|
||
'first':{
|
||
'value':obj.zylx.dickeyname + '作业审批通过:'
|
||
},
|
||
'keyword1':{
|
||
'value':obj.zynr
|
||
},
|
||
'keyword2':{
|
||
'value':obj.kssj
|
||
},
|
||
'keyword3':{
|
||
'value':obj.zydd
|
||
},
|
||
'remark':{
|
||
'value':'你是作业负责人,可以开始作业,作业完成请及时关闭!'
|
||
}
|
||
}
|
||
}
|
||
send_wechatmsg.delay(postdict)
|
||
return JsonResponse({"code":1})
|
||
elif a == 'gbzy':#关闭作业
|
||
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)
|
||
obj.zyzt['zyzt']='已关闭'
|
||
obj.zyzt['jdmc']=''
|
||
obj.todouser = None
|
||
obj.todousers = None
|
||
obj.save()
|
||
return JsonResponse({"code":1})
|
||
elif a == 'todonum':
|
||
userid = req.session['userid']
|
||
i = []
|
||
b = Operzyry.objects.filter(operzyry__userid=userid,checked=0)
|
||
c = Operation.objects.filter(Q(todouser=User.objects.get(userid=userid))|Q(todousers__contains=[userid]))
|
||
for x in b:
|
||
i.append(x.oper.zyid)
|
||
for x in c:
|
||
i.append(x.zyid)
|
||
i = list(set(i))
|
||
return JsonResponse({"code":1,"todonum":len(i)})
|
||
elif a == 'del':
|
||
zyid =req.GET.get('zyid')
|
||
userid = req.session['userid']
|
||
a = Operation.objects.get(zyid=zyid)
|
||
if User.objects.get(userid = userid).issuper == 1:
|
||
a.deletemark=0
|
||
a.save()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
|
||
|
||
def apioperationsetting(req):
|
||
a = req.GET.get('a')
|
||
comp = User.objects.get(userid=req.session['userid']).usecomp
|
||
if a == 'listall':
|
||
objs = (Operationsetting.objects.filter(usecomps__contains=',1,')|Operationsetting.objects.filter(usecomps__contains=','+str(comp.partid)+',')).exclude(nousecomps__contains=','+str(comp.partid)+',').values('id','name')
|
||
x = transstr(objs,'id','name')
|
||
return HttpResponse(x,content_type="application/json")
|
||
|
||
def apifxcs(req):
|
||
a = req.GET.get('a')
|
||
if a=='listall':
|
||
if req.GET.get('zylx'):
|
||
zylx = req.GET.get('zylx')
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
a = Fxcs.objects.filter(zylx=Dickey.objects.get(dickeyid=zylx),deletemark=1)
|
||
a = (a.filter(usecomps__contains=',1,')|a.filter(usecomps__contains=','+companyid+',')).exclude(nousecomps__contains=','+companyid+',')
|
||
total = a.count()
|
||
a = a.values('id','fxfx','aqcs','cslx')
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
elif a == 'add':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
if data['zylx']:
|
||
zylx = data['zylx']
|
||
fxfx = data['fxfx']
|
||
aqcs = data['aqcs']
|
||
cslx = data['cslx']
|
||
Fxcs.objects.create(zylx=Dickey.objects.get(dickeyid=zylx),fxfx=fxfx,aqcs=aqcs,cslx=cslx,usecomps=','+companyid+',')
|
||
return JsonResponse({"code":1})
|
||
elif a == 'del':
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
fxid = req.GET.get('id')
|
||
if User.objects.get(userid=userid).issuper==1:
|
||
a = Fxcs.objects.get(id=fxid)
|
||
nl = a.nousecomps.split(',')
|
||
nl.append(companyid)
|
||
nl = ','+','.join(list(filter(None, nl)))+','
|
||
a.nousecomps = nl
|
||
a.save()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
|
||
|
||
def apioperationspjd(req):
|
||
a = req.GET.get('a')
|
||
if a == 'add':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
if data['zylx']:
|
||
zylx = Dickey.objects.get(dickeyid=data['zylx'])
|
||
jdmc = data['jdmc']
|
||
spbm = Partment.objects.get(partid=data['spbm'])
|
||
#spr = User.objects.get(userid=data['spr'])
|
||
sprs = data['spr']
|
||
Operationspjd.objects.create(jdmc=jdmc,zylx=zylx,spbm=spbm,sprs=sprs,usecomp=Partment.objects.get(partid=companyid))
|
||
return JsonResponse({"code":1})
|
||
elif a=='listall':
|
||
if req.GET.get('zylx'):
|
||
zylx = req.GET.get('zylx')
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
a = Operationspjd.objects.filter(zylx=Dickey.objects.get(dickeyid=zylx),usecomp=Partment.objects.get(partid=companyid)).order_by('id')
|
||
total = a.count()
|
||
a = a.values('id','jdmc','spbm__partname','sprs')
|
||
for i in a:
|
||
i['sprnames'] = list(User.objects.filter(userid__in=i['sprs']).values_list('name',flat=True))
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
elif a == 'del':
|
||
id = req.GET.get('id')
|
||
userid = req.session['userid']
|
||
if User.objects.get(userid=userid).issuper==1:
|
||
Operationspjd.objects.get(id=id).delete()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
|
||
def apiquestion(req):
|
||
a = req.GET.get('a')
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
if a=='listall':
|
||
x = Question.objects.filter(deletemark=1)
|
||
a = (x.filter(usecomps__contains=',1,')|x.filter(usecomps__contains=','+companyid+',')).exclude(nousecomps__contains=','+companyid+',')
|
||
if req.GET.get('tmlx'):
|
||
tmlx = req.GET.get('tmlx')
|
||
a = x.filter(questioncat__link__contains = ','+str(tmlx)+',')|x.filter(questioncat__id=tmlx)
|
||
elif req.GET.get('gwlx'):
|
||
gwlx = req.GET.get('gwlx')
|
||
a = x.filter(station=Group.objects.get(groupid=gwlx))
|
||
total = a.count()
|
||
startnum,endnum=fenye(req)
|
||
a = a.order_by('-id')[startnum:endnum].values('id','title','type','level','questioncat__id','questioncat__name','mark','createuser__name','answer','right','resolution')
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
elif a=='search':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
tmfls = data['tmfls']
|
||
a = Question.objects.filter(deletemark=1,questioncat__id__in = tmfls)
|
||
dxnum = a.filter(type=1).count()
|
||
duoxnum = a.filter(type=2).count()
|
||
pdnum = a.filter(type=3).count()
|
||
return JsonResponse({'dxnum':dxnum,'duoxnum':duoxnum,'pdnum':pdnum})
|
||
elif a == 'add' or a == 'edit':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
type = data['type']
|
||
level = data['level']
|
||
title = data['title']
|
||
if a == 'add':
|
||
obj = Question()
|
||
else:
|
||
obj = Question.objects.get(id=data['id'])
|
||
obj.type=type
|
||
obj.level=level
|
||
obj.title=title
|
||
if 'cate' in data:
|
||
obj.questioncat= Questioncat.objects.get(id=data['cate'])
|
||
if 'station' in data: #岗位
|
||
if data['station']:
|
||
obj.station = Group.objects.get(groupid=data['station'])
|
||
answer={}
|
||
if 'A' in data:
|
||
answer['A']=data['A']
|
||
if 'B' in data:
|
||
answer['B']=data['B']
|
||
if 'C' in data:
|
||
answer['C']=data['C']
|
||
if 'D' in data:
|
||
answer['D']=data['D']
|
||
if 'E' in data:
|
||
answer['E']=data['E']
|
||
if 'F' in data:
|
||
answer['F']=data['F']
|
||
obj.answer=answer
|
||
obj.right = data['right']
|
||
if 'resolution' in data:
|
||
obj.resolution = data['resolution']
|
||
if 'label' in data:
|
||
obj.label = data['label']
|
||
obj.usecomps = ','+companyid+','
|
||
obj.createuser=User.objects.get(userid=userid)
|
||
obj.save()
|
||
return JsonResponse({"code":1})
|
||
elif a == 'del':
|
||
id = req.GET.get('id')
|
||
user = User.objects.get(userid=userid)
|
||
a = Question.objects.get(id=id)
|
||
if user.issuper==1 or a.createuser==user:
|
||
nl = a.nousecomps.split(',')
|
||
nl.append(companyid)
|
||
nl = ','+','.join(list(filter(None, nl)))+','
|
||
a.nousecomps = nl
|
||
a.save()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
elif a == 'detail':
|
||
id = req.GET.get('id')
|
||
a = Question.objects.filter(id=id).values('id','title','type','level','questioncat__id','station__groupid','right','answer','resolution')
|
||
return JsonResponse(a[0])
|
||
elif a == 'canedit':
|
||
id = req.GET.get('id')
|
||
a = Question.objects.get(id=id)
|
||
if a.usecomps==','+companyid+',' or int(companyid)==1:
|
||
return JsonResponse({'code':1})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
elif a == 'exercise':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
x = Question.objects.filter(deletemark=1)
|
||
#a = (x.filter(usecomps__contains=',1,')|x.filter(usecomps__contains=','+companyid+',')).exclude(nousecomps__contains=','+companyid+',')
|
||
a = x.exclude(nousecomps__contains=','+companyid+',')
|
||
tmlxs = data['tmlx']
|
||
ydtms = data['ydtms']
|
||
a = x.filter(questioncat__id__in=tmlxs).exclude(id__in=ydtms)
|
||
total = a.count()
|
||
a = a[:10].values('id','title','type','level','questioncat__id','questioncat__name','mark','createuser__name','answer','right','resolution')
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
|
||
def apiexampaper(req):
|
||
a = req.GET.get('a')
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
if a=='listall':
|
||
a = ExamPaper.objects.filter(deletemark=1)
|
||
a = a.filter(usecomps__contains=','+companyid+',').exclude(nousecomps__contains=','+companyid+',').order_by('-id')
|
||
total = a.count()
|
||
startnum,endnum=fenye(req)
|
||
a = a[startnum:endnum].values('id','num','name','state','total')
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
elif a=='listok':
|
||
a = ExamPaper.objects.filter(deletemark=1,state=1)
|
||
a = a.filter(usecomps__contains=','+companyid+',').exclude(nousecomps__contains=','+companyid+',').order_by('-id')
|
||
total = a.count()
|
||
startnum,endnum=fenye(req)
|
||
a = a[startnum:endnum].values('id','num','name','state','total')
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
elif a == 'add':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
totalnum = data['totalnum']
|
||
dxnum = data['dxnum']
|
||
dxs = data['dxs'] #单选得分
|
||
duoxnum = data['duoxnum']
|
||
duoxs = data['duoxs']
|
||
pdnum = data['pdnum']
|
||
pds = data['pds']
|
||
name = data['name']
|
||
tms = data['tms']
|
||
totalscore = int(dxs)*int(dxnum)+int(duoxs)*int(duoxnum)+int(pds)*int(pdnum)
|
||
obj = ExamPaper()
|
||
obj.num='SJ'+time.strftime('%Y%m%d%H%M%S')
|
||
obj.name = name
|
||
obj.usecomps = ','+str(companyid)+','
|
||
obj.total = {'total':{'num':totalnum,'score':totalscore},'dx':{'num':dxnum,'score':dxs},'duox':{'num':duoxnum,'score':duoxs},'pd':{'num':pdnum,'score':pds}}
|
||
obj.save()
|
||
for i in tms:
|
||
if int(i['type']) == 1:
|
||
ExamPaperDetail.objects.create(exampaper=obj,question=Question.objects.get(id=i['id']),score=int(dxs))
|
||
elif int(i['type']) == 2:
|
||
ExamPaperDetail.objects.create(exampaper=obj,question=Question.objects.get(id=i['id']),score=int(duoxs))
|
||
elif int(i['type']) == 3:
|
||
ExamPaperDetail.objects.create(exampaper=obj,question=Question.objects.get(id=i['id']),score=int(pds))
|
||
return JsonResponse({"code":1})
|
||
elif a == 'del':
|
||
id = req.GET.get('id')
|
||
user = User.objects.get(userid=userid)
|
||
a = ExamPaper.objects.get(id=id)
|
||
if user.issuper==1:
|
||
nl = a.nousecomps.split(',')
|
||
nl.append(companyid)
|
||
nl = ','+','.join(list(filter(None, nl)))+','
|
||
a.nousecomps = nl
|
||
a.save()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
elif a == 'stop':
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
id = req.GET.get('id')
|
||
user = User.objects.get(userid=userid)
|
||
a = ExamPaper.objects.get(id=id)
|
||
if user.issuper==1:
|
||
a.state = 0
|
||
a.save()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
return JsonResponse({"code":0})
|
||
elif a == 'detail':
|
||
id = req.GET.get('id')
|
||
obj = ExamPaper.objects.get(id=id)
|
||
return JsonResponse(obj.total)
|
||
elif a == 'detailtms':
|
||
id = req.GET.get('id')
|
||
obj = ExamPaper.objects.filter(id=id)
|
||
data = obj.values('name','total')[0]
|
||
tms = ExamPaperDetail.objects.filter(exampaper__id=id).values('question__id','question__title','question__answer','question__right','question__type','question__resolution')
|
||
data['tms']=list(tms)
|
||
return JsonResponse(data)
|
||
elif a == 'exportword':
|
||
id = req.GET.get('id')
|
||
res = exportdoc('exampaper',id)
|
||
return res
|
||
elif a == 'edit':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
id = data['id']
|
||
totalnum = data['totalnum']
|
||
dxnum = data['dxnum']
|
||
dxs = data['dxs'] #单选得分
|
||
duoxnum = data['duoxnum']
|
||
duoxs = data['duoxs']
|
||
pdnum = data['pdnum']
|
||
pds = data['pds']
|
||
name = data['name']
|
||
tms = data['tms']
|
||
totalscore = int(dxs)*int(dxnum)+int(duoxs)*int(duoxnum)+int(pds)*int(pdnum)
|
||
obj = ExamPaper.objects.get(id=id)
|
||
obj.name = name
|
||
obj.usecomps = ','+str(companyid)+','
|
||
obj.total = {'total':{'num':totalnum,'score':totalscore},'dx':{'num':dxnum,'score':dxs},'duox':{'num':duoxnum,'score':duoxs},'pd':{'num':pdnum,'score':pds}}
|
||
obj.save()
|
||
ExamPaperDetail.objects.filter(exampaper=obj).delete()
|
||
for i in tms:
|
||
if int(i['type']) == 1:
|
||
ExamPaperDetail.objects.create(exampaper=obj,question=Question.objects.get(id=i['id']),score=int(dxs))
|
||
elif int(i['type']) == 2:
|
||
ExamPaperDetail.objects.create(exampaper=obj,question=Question.objects.get(id=i['id']),score=int(duoxs))
|
||
elif int(i['type']) == 3:
|
||
ExamPaperDetail.objects.create(exampaper=obj,question=Question.objects.get(id=i['id']),score=int(pds))
|
||
return JsonResponse({"code":1})
|
||
|
||
|
||
def apiexamtest(req):
|
||
a = req.GET.get('a')
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
if a=='listall':
|
||
a = ExamTest.objects
|
||
a = a.filter(usecomps__contains=','+companyid+',').exclude(nousecomps__contains=','+companyid+',').order_by('-id')
|
||
total = a.count()
|
||
startnum,endnum=fenye(req)
|
||
a = a[startnum:endnum].values('id','num','name','state','type','exampaper__id','exampaper__name','starttime','endtime','duration','createuser__name','createtime')
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
elif a=='listok':
|
||
a = ExamTest.objects
|
||
a = a.filter(usecomps__contains=','+companyid+',').exclude(nousecomps__contains=','+companyid+',').order_by('-id')
|
||
total = a.count()
|
||
startnum,endnum=fenye(req)
|
||
a = a[startnum:endnum].values('id','num','name','state','type','exampaper__id','exampaper__name','starttime','endtime','duration','createuser__name','createtime')
|
||
return HttpResponse(transjson(total,a),content_type="application/json")
|
||
elif a=='listtrain':
|
||
a = ExamTest.objects
|
||
a = a.filter(usecomps__contains=','+companyid+',').exclude(nousecomps__contains=','+companyid+',').order_by('-id')
|
||
a = a[:10].values('id','name')
|
||
return HttpResponse(transstr(a,'id','name'),content_type="application/json")
|
||
elif a == 'add':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
obj = ExamTest()
|
||
obj.num='KS'+time.strftime('%Y%m%d%H%M%S')
|
||
obj.name = data['name']
|
||
obj.usecomps = ','+str(companyid)+','
|
||
expaper = ExamPaper.objects.get(id=data['exampaper'])
|
||
obj.exampaper = expaper
|
||
if 'starttime' in data:
|
||
if data['starttime']:
|
||
obj.starttime = data['starttime']
|
||
if 'endtime' in data:
|
||
if data['endtime']:
|
||
obj.endtime = data['endtime']
|
||
obj.totalscore = expaper.total['total']['score']
|
||
obj.passscore = data['passscore']
|
||
obj.duration = data['duration']
|
||
obj.createuser = User.objects.get(userid=userid)
|
||
obj.save()
|
||
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)
|
||
b.append(uobj.openid)
|
||
postdict={
|
||
'touser':'',
|
||
'template_id':'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0',
|
||
"miniprogram":{"appid":"wx5c39b569f01c27db","path":"pages/examtest/index"},
|
||
'data':{
|
||
'first':{
|
||
'value': '小程序考试通知:'
|
||
},
|
||
'keyword1':{
|
||
'value':data['name']
|
||
},
|
||
'keyword2':{
|
||
'value':'满分'+ str(obj.totalscore)
|
||
},
|
||
'remark':{
|
||
'value':'用时限制为'+data['duration']+'分钟,注意把握时间'
|
||
}
|
||
}
|
||
}
|
||
send_wechatmsgs.delay(postdict,b)
|
||
return JsonResponse({"code":1})
|
||
elif a == 'add2':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
#print(data)
|
||
obj = ExamTest()
|
||
obj.num='KS'+time.strftime('%Y%m%d%H%M%S')
|
||
obj.name = data['name']
|
||
obj.usecomps = ','+str(companyid)+','
|
||
#创建随机试卷
|
||
dxnum = int(data['dxnum'])
|
||
dxs = int(data['dxs']) #单选得分
|
||
duoxnum = int(data['duoxnum'])
|
||
duoxs = int(data['duoxs'])
|
||
pdnum = int(data['pdnum'])
|
||
pds = int(data['pds'])
|
||
totalnum = dxnum+duoxnum+pdnum
|
||
name = 'CTSJ'+time.strftime('%Y%m%d%H%M%S')
|
||
totalscore = int(dxs)*int(dxnum)+int(duoxs)*int(duoxnum)+int(pds)*int(pdnum)
|
||
objpaper = ExamPaper()
|
||
objpaper.deletemark=0
|
||
objpaper.num= name
|
||
objpaper.name = '自动抽题试卷'
|
||
objpaper.usecomps = ','+str(companyid)+','
|
||
objpaper.total = {'total':{'num':totalnum,'score':totalscore},'dx':{'num':dxnum,'score':dxs},'duox':{'num':duoxnum,'score':duoxs},'pd':{'num':pdnum,'score':pds}}
|
||
objpaper.save()
|
||
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:
|
||
qobjs = questionobjs.filter(type=2).order_by('?')[:duoxnum]
|
||
for i in qobjs:
|
||
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)
|
||
#结束
|
||
obj.exampaper = objpaper
|
||
if 'starttime' in data:
|
||
if data['starttime']:
|
||
obj.starttime = data['starttime']
|
||
if 'endtime' in data:
|
||
if data['endtime']:
|
||
obj.endtime = data['endtime']
|
||
obj.totalscore = totalscore
|
||
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.save()
|
||
ksry = data['participant'].split(',')
|
||
b = []
|
||
for i in ksry:
|
||
uobj = User.objects.get(userid=i)
|
||
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': '小程序考试通知:'
|
||
},
|
||
'keyword1':{
|
||
'value':data['name']
|
||
},
|
||
'keyword2':{
|
||
'value':'满分'+ str(obj.totalscore)
|
||
},
|
||
'remark':{
|
||
'value':'用时限制为'+data['duration']+'分钟,注意把握时间'
|
||
}
|
||
}
|
||
}
|
||
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:
|
||
ExamTestDetail.objects.filter(examtest=a).delete()
|
||
a.delete()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
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:
|
||
a.state = 0
|
||
a.save()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
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['cjrydetail'] = list(objs)
|
||
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')
|
||
duration = test.duration
|
||
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})
|
||
|
||
|
||
def apiexamtestdetail(req):
|
||
a = req.GET.get('a')
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
if a=='dknum':
|
||
a = ExamTestDetail.objects
|
||
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':
|
||
a = ExamTestDetail.objects
|
||
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')
|
||
for i in a:
|
||
if i['examtest__endtime']>datetime.now():
|
||
i['isActive'] = True
|
||
else:
|
||
i['isActive'] = False
|
||
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")
|
||
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)
|
||
testdetail = data['sheet']
|
||
score = 0
|
||
rights = 0
|
||
tms = []
|
||
wrongs = []
|
||
for i in testdetail:#判卷
|
||
iscore = 0
|
||
if i['question__type'] == 2:
|
||
if 'userchecked' in i:
|
||
if i['userchecked']:
|
||
if set(i['userchecked']) == set(i['question__right']):
|
||
iscore = i['score']
|
||
rights = rights + 1
|
||
else:
|
||
wrongs.append(str(i['question__id']))
|
||
for x in i['userchecked']:
|
||
if x in i['question__right']:
|
||
iscore = iscore + 0.5
|
||
else:
|
||
iscore = 0
|
||
break
|
||
else:
|
||
if 'userchecked' in i:
|
||
if i['userchecked']:
|
||
if i['userchecked'] == i['question__right']:
|
||
iscore = i['score']
|
||
rights = rights + 1
|
||
else:
|
||
wrongs.append(str(i['question__id']))
|
||
i['iscore'] = iscore
|
||
score = score + iscore
|
||
tms.append(str(i['question__id']))
|
||
obj = ExamTestDetail.objects.get(examtest__id=testid,user__userid=userid)
|
||
obj.testnum = obj.testnum + 1
|
||
obj.starttime = starttime
|
||
obj.endtime = endtime
|
||
obj.took = took
|
||
obj.testdetail = testdetail
|
||
obj.rights = rights
|
||
obj.score = score
|
||
obj.ison = 1
|
||
examtestobj = obj.examtest
|
||
totalscore = examtestobj.totalscore
|
||
passscore = examtestobj.passscore
|
||
if score >= passscore:
|
||
passcode = 1
|
||
else:
|
||
passcode = 0
|
||
obj.passcode = passcode
|
||
if tms:
|
||
obj.tms = ','+','.join(tms)+','
|
||
if wrongs:
|
||
obj.wrongs = ','+','.join(wrongs)+','
|
||
obj.save()
|
||
tmnum = len(testdetail)
|
||
objs = ExamTestDetail.objects.filter(examtest__id=testid,ison=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}})
|
||
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]
|
||
return JsonResponse(data)
|
||
|
||
def apitrain(req):
|
||
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")
|
||
|
||
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")
|
||
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")
|
||
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")
|
||
elif a == 'add':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
obj = Questioncat()
|
||
name = data['name']
|
||
obj.name = name
|
||
if 'parent' in data:
|
||
if data['parent']:
|
||
parent = data['parent']
|
||
parentobj = Questioncat.objects.get(id=parent)
|
||
obj.parent = parentobj
|
||
obj.link = parentobj.link + str(data['parent']) + ','
|
||
obj.usecomp = Partment.objects.get(partid=companyid)
|
||
obj.save()
|
||
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})
|
||
else:
|
||
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]
|
||
return JsonResponse(a)
|
||
elif a == 'edit':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
id = data['id']
|
||
a = Questioncat.objects.get(id=id)
|
||
a.name = data['name']
|
||
if 'parent' in data:
|
||
if data['parent']:
|
||
parent = Questioncat.objects.get(id=data['parent'])
|
||
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) +',' )
|
||
a.save()
|
||
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")
|
||
elif a == 'default':
|
||
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})
|
||
|
||
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'))
|
||
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':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
Area.objects.filter(id=data['id']).update(polygon=data['polygon'])
|
||
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")
|
||
elif a == 'add':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
name = data['name']
|
||
if Area.objects.filter(usecomp__partid=companyid,name=name).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})
|
||
elif a == 'del':
|
||
if User.objects.get(userid=userid).issuper==1:
|
||
Area.objects.filter(id=req.GET.get('id')).update(deletemark=0)
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
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]
|
||
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})
|
||
|
||
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':
|
||
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':
|
||
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)}})
|
||
|
||
|
||
|
||
|
||
|
||
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):
|
||
objs = objs.filter(area__id=req.GET.get('area'))
|
||
if req.GET.get('cate'):
|
||
objs = objs.filter(cate__dickeyid=req.GET.get('cate'))
|
||
if req.GET.get('state'):
|
||
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)#导出设备列表
|
||
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")
|
||
elif a == 'update':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
id = data['id']
|
||
if id:
|
||
obj = Equipment.objects.get(id=id)
|
||
else:
|
||
obj = Equipment()
|
||
obj.num = data['num']
|
||
obj.name = data['name']
|
||
obj.cate = Dickey.objects.get(dickeyid=data['cate'])
|
||
obj.area = Area.objects.get(id=data['area'])
|
||
obj.type = data['type']
|
||
obj.oem = data['oem']
|
||
obj.fnum = data['fnum']
|
||
obj.istz = 1 if 'istz' in data else 0
|
||
obj.iskey = 1 if 'iskey' in data else 0
|
||
if data['fdate']:
|
||
obj.fdate = data['fdate']
|
||
if data['udate']:
|
||
obj.udate = data['udate']
|
||
obj.place = data['place']
|
||
if data['zrbm']:
|
||
obj.zrbm = Partment.objects.get(partid=data['zrbm'])
|
||
if 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.save()
|
||
obj.qrcode = makeqr('https://safeyun.ctcshe.com/miniprogram/equipment?id='+str(obj.id))
|
||
obj.save()
|
||
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:
|
||
a.delete()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
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')
|
||
return JsonResponse(a[0])
|
||
|
||
|
||
def apiinspect(req):
|
||
a = req.GET.get('a')
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
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")
|
||
elif a == 'listself':
|
||
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")
|
||
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')
|
||
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)
|
||
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('-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 == 'exportexcel':
|
||
objs = Inspect.objects.filter(usecomp__partid=companyid)
|
||
qssj = req.GET.get('qssj')
|
||
jssj = req.GET.get('jssj')
|
||
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)
|
||
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)
|
||
return res
|
||
elif a=='add':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
a = Inspect()
|
||
equipment = data['equipment']
|
||
state = data['state']
|
||
if 'content' in data:
|
||
if data['content']:
|
||
content = data['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.save()
|
||
a.usecomp = Partment.objects.get(partid=companyid)
|
||
a.user = User.objects.get(userid=userid)
|
||
a.save()
|
||
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:
|
||
obj.delete()
|
||
return JsonResponse({"code":1})
|
||
else:
|
||
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')
|
||
return JsonResponse(a[0])
|
||
|
||
def apiriskact(req):
|
||
a = req.GET.get('a')
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
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)):
|
||
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':
|
||
a = RiskAct.objects
|
||
if 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':
|
||
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'))
|
||
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")
|
||
elif a == 'add':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
obj = RiskAct()
|
||
obj.area = Area.objects.get(id=data['area'])
|
||
obj.type = Dickey.objects.get(dickeyid=data['type'])
|
||
obj.name = data['name']
|
||
obj.place = data['place'] if data['place'] else None
|
||
obj.usecomp = Partment.objects.get(partid=companyid)
|
||
obj.gkcj = data['gkcj']
|
||
obj.zrbm = Partment.objects.get(partid=data['zrbm'])
|
||
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.save()
|
||
return JsonResponse({'code':1})
|
||
elif a == 'edit':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
obj = RiskAct.objects.get(id=data['id'])
|
||
obj.area = Area.objects.get(id=data['area'])
|
||
obj.type = Dickey.objects.get(dickeyid=data['type'])
|
||
obj.name = data['name']
|
||
obj.place = data['place'] if data['place'] else None
|
||
obj.usecomp = Partment.objects.get(partid=companyid)
|
||
obj.gkcj = data['gkcj']
|
||
obj.zrbm = Partment.objects.get(partid=data['zrbm'])
|
||
obj.zrr = User.objects.get(userid=data['zrr'])
|
||
obj.group = Group.objects.get(groupid=data['group'])
|
||
obj.save()
|
||
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})
|
||
elif a == 'del':
|
||
id = req.GET.get('id')
|
||
user = User.objects.get(userid=userid)
|
||
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})
|
||
else:
|
||
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")
|
||
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()#任务开始时间
|
||
if firsttime:
|
||
tasktime = firsttime
|
||
for x in riskacts:
|
||
obj = RiskAct.objects.get(id=x['id'])
|
||
obj.tasktype = tasktype
|
||
obj.tasktime = tasktime
|
||
obj.save()
|
||
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)
|
||
elif tasktype == 2:
|
||
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})
|
||
|
||
def apirisk(req):
|
||
a = req.GET.get('a')
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
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)
|
||
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)#设备设施类
|
||
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")
|
||
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')
|
||
total = a.count()
|
||
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')
|
||
return JsonResponse(data[0])
|
||
elif a == 'steps':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
if req.GET.get('type') == 'equipment':
|
||
areaid = data['areaid']
|
||
equipmentid = data['id']
|
||
equipmentname = data['name']
|
||
objs = Risk.objects.filter(usecomp__partid=companyid)
|
||
equipment = Equipment.objects.get(id=equipmentid)
|
||
if equipment.riskact:#如果该设备存在绑定的风险
|
||
objs = objs.filter(riskact=equipment.riskact)
|
||
else:
|
||
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'))})
|
||
else:
|
||
return JsonResponse({'code':0})
|
||
elif a == 'del':
|
||
id = req.GET.get('id')
|
||
user = User.objects.get(userid=userid)
|
||
obj = Risk.objects.get(id=id)
|
||
obj.delete()
|
||
try:
|
||
cal_riskact_level(obj.riskact)
|
||
except:
|
||
pass
|
||
return JsonResponse({"code":1})
|
||
elif a == 'add':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
obj = Risk()
|
||
obj.step = data['step']
|
||
obj.hazard = data['hazard']
|
||
obj.result = data['result']
|
||
obj.measure1 = data['measure1'] if data['measure1'] else None
|
||
obj.measure2 = data['measure2'] if data['measure2'] else None
|
||
obj.measure3 = data['measure3'] if data['measure3'] else None
|
||
obj.measure4 = data['measure4'] if data['measure4'] else None
|
||
obj.measure5 = data['measure5'] if data['measure5'] else None
|
||
obj.riskact = RiskAct.objects.get(id=data['riskact'])
|
||
obj.createuser = User.objects.get(userid=userid)
|
||
obj.riskl = data['riskl']
|
||
obj.riske = data['riske']
|
||
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='一般风险'
|
||
else:
|
||
obj.level='低风险'
|
||
obj.usecomp = Partment.objects.get(partid=companyid)
|
||
obj.save()
|
||
try:
|
||
cal_riskact_level(obj.riskact)
|
||
except:
|
||
pass
|
||
return JsonResponse({"code":1})
|
||
elif a == 'update':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
obj = Risk.objects.get(id=data['id'])
|
||
obj.step = data['step']
|
||
obj.hazard = data['hazard']
|
||
obj.result = data['result']
|
||
obj.measure1 = data['measure1'] if data['measure1'] else None
|
||
obj.measure2 = data['measure2'] if data['measure2'] else None
|
||
obj.measure3 = data['measure3'] if data['measure3'] else None
|
||
obj.measure4 = data['measure4'] if data['measure4'] else None
|
||
obj.measure5 = data['measure5'] if data['measure5'] else None
|
||
obj.createuser = User.objects.get(userid=userid)
|
||
obj.riskl = data['riskl']
|
||
obj.riske = data['riske']
|
||
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='一般风险'
|
||
else:
|
||
obj.level='低风险'
|
||
obj.usecomp = Partment.objects.get(partid=companyid)
|
||
obj.save()
|
||
try:
|
||
cal_riskact_level(obj.riskact)
|
||
except:
|
||
pass
|
||
return JsonResponse({"code":1})
|
||
elif a == 'update':
|
||
data = json.loads(req.body.decode('utf-8'))
|
||
obj = Risk.objects.get(id=data['id'])
|
||
obj.step = data['step']
|
||
obj.hazard = data['hazard']
|
||
obj.result = data['result']
|
||
obj.measure1 = data['measure1'] if data['measure1'] else None
|
||
obj.measure2 = data['measure2'] if data['measure2'] else None
|
||
obj.measure3 = data['measure3'] if data['measure3'] else None
|
||
obj.measure4 = data['measure4'] if data['measure4'] else None
|
||
obj.measure5 = data['measure5'] if data['measure5'] else None
|
||
obj.createuser = User.objects.get(userid=userid)
|
||
obj.riskl = data['riskl']
|
||
obj.riske = data['riske']
|
||
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='一般风险'
|
||
else:
|
||
obj.level='低风险'
|
||
obj.usecomp = Partment.objects.get(partid=companyid)
|
||
obj.save()
|
||
try:
|
||
cal_riskact_level(obj.riskact)
|
||
except:
|
||
pass
|
||
return JsonResponse({"code":1})
|
||
|
||
def apirisktask(req):
|
||
a = req.GET.get('a')
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
if a == 'updates':
|
||
tasktype = int(req.POST.get('tasktype'))
|
||
risks = json.loads(req.POST.get('risks'))
|
||
firsttime = req.POST.get('firsttime')
|
||
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()#任务开始时间
|
||
if firsttime:
|
||
tasktime = firsttime
|
||
# if tasktype == 1:#每班
|
||
# tasktime = firsttime + timedelta(hours=8)
|
||
# elif tasktype == 2:#每天
|
||
# tasktime = firsttime + timedelta(days=1)
|
||
# elif tasktype == 3:#每周
|
||
# tasktime = firsttime + timedelta(weeks=1)
|
||
# elif tasktype == 4:#每月
|
||
# tasktime = firsttime - timedelta(weeks=4)
|
||
objs.update(tasktype=tasktype,tasktime=tasktime)
|
||
for x in objs:
|
||
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))
|
||
elif tasktype == 2:
|
||
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})
|
||
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'))
|
||
total = objs.count()
|
||
startnum,endnum=fenye(req)
|
||
objs = objs[startnum:endnum]
|
||
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'))
|
||
total = objs.count()
|
||
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'))
|
||
total = objs.count()
|
||
startnum,endnum=fenye(req)
|
||
objs = objs[startnum:endnum]
|
||
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'))
|
||
total = objs.count()
|
||
startnum,endnum=fenye(req)
|
||
objs = objs[startnum:endnum]
|
||
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'))
|
||
total = objs.count()
|
||
startnum,endnum=fenye(req)
|
||
objs = objs[startnum:endnum]
|
||
return HttpResponse(transjson(total,objs),content_type="application/json")
|
||
elif a == 'listtask':
|
||
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':#发现隐患
|
||
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))
|
||
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': #风险点检查更新
|
||
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)
|
||
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})
|
||
|
||
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')
|
||
total = objs.count()
|
||
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)
|
||
if req.GET.get('pcbm'):
|
||
parts = getparts(req.GET.get('pcbm'))
|
||
objs = objs.filter(user__ubelongpart__in=parts)
|
||
if req.GET.get('qssj'):
|
||
objs = objs.filter(taskdo_gte=req.GET.get('qssj'))
|
||
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)
|
||
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':#排查记录
|
||
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':#待办
|
||
groups = Group.objects.filter(users__userid=userid)
|
||
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")
|
||
elif a == 'todonum':
|
||
groups = Group.objects.filter(users__userid=userid)
|
||
objs = RiskActTask.objects.filter(riskact__group__in=groups,usable=1,user=None)
|
||
total = objs.count()
|
||
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'))
|
||
# total = objs.count()
|
||
# startnum,endnum=fenye(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']
|
||
companyid = getcompany(userid)
|
||
if a == 'add':
|
||
nowtime = datetime.now()
|
||
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)#匹配未处理的任务
|
||
if objs.exists():
|
||
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.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
|
||
obj.save()
|
||
else:
|
||
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")
|
||
|
||
def apiriskcheck(req):
|
||
a = req.GET.get('a')
|
||
userid = req.session['userid']
|
||
companyid = getcompany(userid)
|
||
if a == 'add':
|
||
nowtime = datetime.now()
|
||
data = json.loads(req.body.decode('utf-8'))['checks']
|
||
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)
|
||
if objs.exists():
|
||
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)
|
||
if objs.exists():
|
||
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")
|
||
elif a == 'listall':
|
||
objs = Riskcheck.objects.filter(user__usecomp__partid=companyid)
|
||
if req.GET.get('pcbm'):
|
||
parts = getparts(req.GET.get('pcbm'))
|
||
objs = objs.filter(user__ubelongpart__in=parts)
|
||
if req.GET.get('qssj'):
|
||
objs = objs.filter(dotime_gte=req.GET.get('qssj'))
|
||
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")
|
||
|
||
def apireport(req):
|
||
a = req.GET.get('a')
|
||
userid = req.session['userid']
|
||
if a == 'detail':
|
||
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 = 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]})
|
||
else:
|
||
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)
|
||
else:
|
||
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.month = month
|
||
if 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})
|
||
|
||
|
||
#公司信息展示
|
||
def companyinfo(req):
|
||
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]
|
||
except Exception as e:
|
||
raise
|
||
# message='操作错误'
|
||
# return render( req, 'companyinfo.html',{'message': message})
|
||
|
||
if req.method == 'POST':
|
||
companyinfo_form = forms.CompanyInfoForm(req.POST)
|
||
if companyinfo_form.is_valid():
|
||
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.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.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})
|
||
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']
|
||
companyid = getcompany(userid)
|
||
|
||
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 =[]#部门分厂级
|
||
for month in months:
|
||
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))
|
||
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':
|
||
a = Trainuser.objects.filter(participant__usecomp__partid=companyid)
|
||
if req.GET.get('qssj'):
|
||
a = a.filter(train__submittime__gte=req.GET.get('qssj'))
|
||
if req.GET.get('jssj'):
|
||
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)
|
||
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':
|
||
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')
|
||
#设备统计图
|
||
|
||
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')
|