safesite/safesite/mgt/views.py

98 lines
4.4 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,Edulesson,EdulessonWatch,FileManage,FileReader,Regulations,Mgtsystem
from django.template import RequestContext
from django.views.decorators.csrf import csrf_exempt
from django.core import serializers
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
from ..export import exportdoc,exportxlsx,exportyjdoc,exportsimplexlsx,exportdoc2
from ..daoru import drusers,drequipments,drrisks, makeqr_
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
from ..views import getcompany,fenye,transjson
#法律法规
def index(req):
return render(req,'mgtindex.html')
def add(req):
return render(req,'mgtadd.html')
#上传文件,返回地址和名称
def upload(req):
username = User.objects.get(userid=req.session['userid']).username
file_name = time.strftime('%Y%m%d%H%M%S')+ '_' + req.FILES['mf'].name
user_upload_folder = os.path.join('media/mgt', 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['mf'].read())
return JsonResponse({"code":1,"filename":file_name,"filepath":filepath})
#转换为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 getdickey(req):
userid = req.session['userid']
companyid = getcompany(userid)
dicclass=req.GET.get('dicclass')
a = Dickey.objects.filter(dicparent=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')
return HttpResponse(transstr(a,'dickeyid','dickeyname'),content_type="application/json")
def api(req):
a=req.GET.get('a')
userid = req.session['userid']
companyid = getcompany(userid)
if a == 'add':
obj = Mgtsystem()
data = json.loads(req.body.decode('utf-8'))
obj.mgtname = data['mgtname']
obj.mgtpath = data['filepath']
obj.type= Dickey.objects.get(dickeyid=data['type'])
obj.publisdate=data['publisdate']
obj.usecomp=Partment.objects.get(partid=companyid)
obj.createuser=User.objects.get(userid=userid)
obj.save()
obj.qrcode = makeqr_(
'https://safeyun.ctcshe.com/miniprogram/mgt?id='+str(obj.id))
obj.save()
return JsonResponse({"code":1})
elif a=='listall':
startnum,endnum=fenye(req)
a = Mgtsystem.objects.filter(usecomp__partid__in= [1,Partment.objects.get(partid=companyid).partid] ,deletemark=1).order_by('id')
total = a.count()
startnum,endnum=fenye(req)
a = a[startnum:endnum].values('id','mgtname','mgtpath','type__dickeyname','publisdate','createuser__name')
return HttpResponse(transjson(total,a),content_type="application/json")
elif a == 'del':
id =req.GET.get('id')
userid = req.session['userid']
user = User.objects.get(userid=userid)
a = Mgtsystem.objects.get(id=id)
if user.issuper == 1 or user==a.createuser:
a.deletemark=0
a.save()
return JsonResponse({"code":1})
else:
return JsonResponse({"code":0})