safesite/safesite/rlt/views.py

177 lines
7.9 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
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
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,'lawsindex.html')
#添加法律法规分类
def lawsadd(req):
return render(req,'lawstypeadd.html')
#添加法律法规
def addlaws(req):
return render(req,'lawsadd.html')
def lawsdit(req,id):
return render(req,'lawsedit.html',{'id':id})
#选中一行编辑法律法规分类
def lawstypeedit(req,id):
return render(req,'lawstypeedit.html',{'id':id})
#上传文件,返回地址和名称
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/laws', 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})
def lawstype(req):
a=req.GET.get('a')
userid = req.session['userid']
companyid = getcompany(userid)
#index展示数据
if a=='listall':
x = FileManage.objects.filter(deletemark=1)
startnum,endnum=fenye(req)
a = x.filter(usecomp__partid__in= [1,Partment.objects.get(partid=companyid).partid],deletemark=1 ).order_by('id')#无deletemark
if req.GET.get('typeID'):
typeID = req.GET.get('typeID')
a = x.filter(maragetype=Regulations.objects.get(id=typeID))
total = a.count()
startnum,endnum=fenye(req)
a = a[startnum:endnum].values('id','maragename','readernum','maragetype__typename','publisdate','versionnum','maragestate','actualizedata','maragepath')
return HttpResponse(transjson(total,a),content_type="application/json")
#index展示的tree
elif a=='tree1':
list_items = (Regulations.objects.filter(usecomp__partid=1,deletemark=1)).annotate(parentId=F('parent__id'),name=F('typename')).values('id','parentId','name')
return HttpResponse(json.dumps(list(list_items)),content_type="application/json")
#编辑的时候展示的tree
elif a == 'tree2':
list_items = (Regulations.objects.filter(usecomp__partid=companyid,deletemark=1)).annotate(parentId=F('parent__id'),name=F('typename')).values('id','parentId','name')
return HttpResponse(json.dumps(list(list_items)),content_type="application/json")
elif a == 'tree':
list_items = (Regulations.objects.filter(usecomp__partid=1,deletemark=1)|Regulations.objects.filter(usecomp__partid=companyid,deletemark=1)).annotate(parentId=F('parent__id'),name=F('typename')).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 = Regulations()
name = data['name']
obj.typename = name
if 'parent' in data:
if data['parent']:
parent = data['parent']
parentobj = Regulations.objects.get(id=parent)
obj.parent = parentobj
obj.usecomp = Partment.objects.get(partid=companyid)
obj.createuser=User.objects.get(userid=userid)
obj.save()
return JsonResponse({"code":1})
#编辑法律法规分类(修改)
elif a == 'edit':
data = json.loads(req.body.decode('utf-8'))
id = data['id']
a = Regulations.objects.get(id=id)
a.typename = data['name']
if 'parent' in data:
if data['parent']:
parent = Regulations.objects.get(id=data['parent'])
a.parent = parent
a.save()
return JsonResponse({"code":1})
elif a == 'detail':
id = req.GET.get('id')
a = Regulations.objects.filter(id=id).values('id','typename','parent__id')[0]
return JsonResponse(a)
elif a == 'addlaws':
obj = FileManage()
data = json.loads(req.body.decode('utf-8'))
obj.maragename = data['maragename']
obj.versionnum = data['versionnum']
obj.maragetype= Regulations.objects.get(id=data['maragetype'])
obj.publisdate=data['publisdate']
obj.maragestate=data['maragestate']
obj.actualizedata=data['actualizedata']
obj.maragepath=data['url']
obj.usecomp=Partment.objects.get(partid=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 = Regulations.objects.get(id=id)
if a.usecomp==Partment.objects.get(partid=companyid):
Regulations.objects.filter(id = id).update(deletemark=0)
return JsonResponse({"code":1})
else:
return JsonResponse({"code":0})
return JsonResponse({"code":1})
#删除数据,判断是否是自己建的
elif a == 'canedit':
id = req.GET.get('id')
a = Regulations.objects.get(id=id)
if a.usecomp==Partment.objects.get(partid=companyid):
return JsonResponse({'code':1})
else:
return JsonResponse({"code":0})
#编辑法律法规,显数据示
elif a == 'detaillaws':
id = req.GET.get('id')
a = FileManage.objects.filter(id=id).values('maragename','readernum','maragetype','publisdate','versionnum','maragestate','actualizedata','maragepath')
return JsonResponse(a[0])
#修改法律法规
elif a == 'editlaws':
data = json.loads(req.body.decode('utf-8'))
obj = FileManage.objects.get(id=data['id'])
obj.maragename = data['maragename']
obj.maragetype = Regulations.objects.get(id=data['maragetype'])
obj.publisdate=data['publisdate']
obj.maragestate=data['maragestate']
obj.actualizedata=data['actualizedata']
obj.maragepath=data['url']
obj.usecomp=Partment.objects.get(partid=companyid)
obj.createuser=User.objects.get(userid=userid)
obj.save()
return JsonResponse({"code":1})
#删除法律法规
elif a == 'dellaws':
id =req.GET.get('id')
userid = req.session['userid']
a = FileManage.objects.get(id=id)
if a.usecomp==Partment.objects.get(partid=companyid):
a.deletemark=0
a.save()
return JsonResponse({"code":1})
else:
return JsonResponse({"code":0})