From 545fa8bf855a59f9cb9e6ef8f7abe2e0b61c1727 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 12 Dec 2019 17:34:11 +0800 Subject: [PATCH 1/3] server verify --- safesite/urls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/safesite/urls.py b/safesite/urls.py index b6bae2cd..3ba18a8e 100644 --- a/safesite/urls.py +++ b/safesite/urls.py @@ -173,7 +173,7 @@ urlpatterns = [ path('test',views.test), path('.well-known/pki-validation/fileauth.txt',views.vewechat),#验证 path('miniprogram/boUR15vyNu.txt',views.minip_px), - path('boUR15vyNu.txt',views.vewechat2), + path('boUR15vyNu.txt',views.minip_px), #合作模块 From a4a3b20c8aa023a59b49709971b32d9bc8d9bb43 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 12 Dec 2019 17:45:54 +0800 Subject: [PATCH 2/3] server verify --- safesite/templates/bindwechat.html | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/safesite/templates/bindwechat.html b/safesite/templates/bindwechat.html index bfe7cbb1..3e146c1d 100644 --- a/safesite/templates/bindwechat.html +++ b/safesite/templates/bindwechat.html @@ -36,9 +36,11 @@ {% endif %} \ No newline at end of file diff --git a/safesite/templates/operproceadd.html b/safesite/templates/operproceadd.html new file mode 100644 index 00000000..3e66c115 --- /dev/null +++ b/safesite/templates/operproceadd.html @@ -0,0 +1,373 @@ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
操作制标题: + +
操作制岗位: + +
操作制部门: + + + +
作业许可证类型: + +
上传时间: + +
+
+ +

+ 选择文件: + + + 选择文件 + + + +

+ + + + + + + +
+ +
+ + +
+ 提交 + 取消 +
+ +
+
+ \ No newline at end of file diff --git a/safesite/templates/operprocedetail.html b/safesite/templates/operprocedetail.html new file mode 100644 index 00000000..2d2e0e7b --- /dev/null +++ b/safesite/templates/operprocedetail.html @@ -0,0 +1,30 @@ + +
+
+ + +
+ + \ No newline at end of file diff --git a/safesite/templates/resbility.html b/safesite/templates/resbility.html new file mode 100644 index 00000000..141d30e1 --- /dev/null +++ b/safesite/templates/resbility.html @@ -0,0 +1,113 @@ + +
+
+ 新增 + 点击查看 + 观看详情 + 删除 + + + +
+ +
+
+ \ No newline at end of file diff --git a/safesite/templates/resbilityadd.html b/safesite/templates/resbilityadd.html new file mode 100644 index 00000000..38690f56 --- /dev/null +++ b/safesite/templates/resbilityadd.html @@ -0,0 +1,373 @@ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
责任制标题: + +
责任制岗位: + +
责任制部门: + + + +
作业许可证类型: + +
上传时间: + +
+
+ +

+ 选择文件: + + + 选择文件 + + + +

+ + + + + + + +
+ +
+ + +
+ 提交 + 取消 +
+ +
+
+ \ No newline at end of file diff --git a/safesite/templates/resbilitydetail.html b/safesite/templates/resbilitydetail.html new file mode 100644 index 00000000..05dfb128 --- /dev/null +++ b/safesite/templates/resbilitydetail.html @@ -0,0 +1,30 @@ + +
+
+ + +
+ + \ No newline at end of file diff --git a/safesite/urls.py b/safesite/urls.py index c9b9fbee..83a03493 100644 --- a/safesite/urls.py +++ b/safesite/urls.py @@ -91,6 +91,14 @@ urlpatterns = [ path('html/riskact/chose',views.riskactchose), path('html/trainfig',views.trainfigure), path('html/equipmentfig',views.equipmentfigure), + + path('html/resbility',views.resbility),#责任制度 + path('html/addresbility',views.addresbility),#责任制度 + path('html/resbility/detail//',views.resbilitydetail),#责任制度观看详情 + + path('html/operproce',views.operproce),#操作规程 + path('html/addoperproce',views.addoperproce), + path('html/operproce/detail//',views.operprocedetail),#责任制度观看详情 #html页面 @@ -173,7 +181,8 @@ urlpatterns = [ path('test',views.test), path('.well-known/pki-validation/fileauth.txt',views.vewechat),#验证 path('miniprogram/boUR15vyNu.txt',views.minip_px), - + path('api/getresbilitydata',views.getresbilitydata),#责任制 + path('api/getprodata',views.getprodata),#操作规程 #合作模块 path('edu/',include('safesite.edu.urls')), diff --git a/safesite/views.py b/safesite/views.py index 5c918c9f..21363de4 100644 --- a/safesite/views.py +++ b/safesite/views.py @@ -3,7 +3,7 @@ from captcha.helpers import captcha_image_url from captcha.models import CaptchaStore from django.shortcuts import render, redirect, render_to_response from django.http import HttpResponse, HttpResponseRedirect, JsonResponse -from .models import User, Trouble, Dickey, Partment, Dicclass, Train, Drill, TroubleAccess, Group, Yjyc, Trainuser, Drilluser, Yjsetup, Menu, Observe, Observeto, Unsafes, Miss, Socertificate, Userprofile, Suggest, Notice, Noticeto, Operation, Operzyry, Fxcs, Operationspjd, Operspxq, Question, ExamPaper, ExamTest, ExamPaperDetail, ExamTestDetail, Questioncat, Safecert, Map, Area, Missto, Suggestflow, Equipment, Inspect, Risk, RiskAct, Risktask, Riskcheck, Report, RiskActTask, Riskcheck2 +from .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,Resbility,Operproce,Readerblility,ReaderOperproce from django.template import RequestContext from django.views.decorators.csrf import csrf_exempt from django.core import serializers @@ -471,6 +471,22 @@ def trainfigure(req): def equipmentfigure(req): return render(req, 'equipmentfigure.html') +def resbility(req): + return render(req, 'resbility.html') + + +def addresbility(req):#责任制 + return render(req,'resbilityadd.html') +def resbilitydetail(req, id): + return render(req, 'resbilitydetail.html', {'id': id}) + +def operproce(req):#操作规程 + return render(req, 'operproce.html') +def addoperproce(req):#责任制 + return render(req,'operproceadd.html') + +def operprocedetail(req, id): + return render(req, 'operprocedetail.html', {'id': id}) def mainhtml(req): # 计算一些数据 @@ -7021,3 +7037,177 @@ def equipmentfig(req): 'area__name').annotate(num=Count('area')) return HttpResponse(json.dumps({'code': 1, 'data': {'eqmlist': list(eqmlist)}}), content_type='application/json') + + +#责任制 +def getresbilitydata(req): + a = req.GET.get('a') + userid = req.session['userid'] + companyid = getcompany(userid) + if a=='dic':#行为列表 + + 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") + elif a=='job':#岗位列表 + joblist = Group.objects.filter(usecomp__partid=companyid).exclude(grouptype=0).values('groupid', 'groupname', 'grouptype') + return HttpResponse(transstr(joblist,'groupid','groupname'),content_type="application/json") + elif a== 'tree':#部门列表 + 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 a== 'upload':#文件上传 + 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/zeren', 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}) + elif a=='add':#新增责任制 + obj = Resbility() + data = json.loads(req.body.decode('utf-8')) + obj.title = data['title'] + obj.jobs =Group.objects.get(groupid= data['group']) + obj.homeworktype= Dickey.objects.get(dickeyid=data['type']) + obj.department=Partment.objects.get(partid=data['jobpart']) + obj.resbilitypath=data['filepath'] + obj.createuser=User.objects.get(userid=userid) + obj.createdate=data['publisdate'] + obj.usecomp=Partment.objects.get(partid=companyid) + obj.filepath=data['filepath'] + obj.save() + return JsonResponse({"code":1}) + elif a=='listall':#责任列表 + startnum,endnum=fenye(req) + #groups = Group.objects.filter(users__userid=userid) + # part= Partment.objects.filter(partid=User.objects.get(userid=userid).ubelongpart.partid) + #a = Resbility.objects.filter(usecomp=companyid,jobs__in=groups,department__in=part).order_by('id') + a = Resbility.objects.filter(usecomp=companyid,deletemark=1).order_by('id') + total = a.count() + startnum,endnum=fenye(req) + a = a[startnum:endnum].values('id','title','department__partname','jobs__groupname','resbilitypath','homeworktype__dickeyname','createdate','createuser__name','reads') + return HttpResponse(transjson(total,a),content_type="application/json") + #点击阅读 + elif a=='readnum': + id =req.GET.get('id') + a = Resbility.objects.get(id=id) + a.reads=a.reads+1 + a.save() + obj = Readerblility() + obj.readid=a + obj.num='' + obj.readeruser=User.objects.get(userid=userid) + obj.save() + return JsonResponse({"code":1,"url": a.resbilitypath}) + #删除 + elif a == 'del': + id =req.GET.get('id') + userid = req.session['userid'] + companyid = getcompany(userid)#公司ID + a = Resbility.objects.get(id=id) + if a.createuser==User.objects.get(userid=userid): + a.deletemark=0 + a.save() + return JsonResponse({"code":1}) + + else: + + return JsonResponse({"code":0}) + elif a=='detail': + id =req.GET.get('zrid') + a = Readerblility.objects.filter(readid=id).values('id','readeruser__name','readertime') + total = a.count() + return HttpResponse(transjson(total,a),content_type="application/json") + + +#操作规程 +def getprodata(req): + a = req.GET.get('a') + userid = req.session['userid'] + companyid = getcompany(userid) + if a=='dic':#行为列表 + + 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") + elif a=='job':#岗位列表 + joblist = Group.objects.filter(usecomp__partid=companyid).exclude(grouptype=0).values('groupid', 'groupname', 'grouptype') + return HttpResponse(transstr(joblist,'groupid','groupname'),content_type="application/json") + elif a== 'tree':#部门列表 + 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 a== 'upload':#文件上传 + 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/caozuo', 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}) + elif a=='add':#新增责任制 + obj = Operproce() + data = json.loads(req.body.decode('utf-8')) + obj.title = data['title'] + obj.jobs =Group.objects.get(groupid= data['group']) + obj.homeworktype= Dickey.objects.get(dickeyid=data['type']) + obj.department=Partment.objects.get(partid=data['jobpart']) + obj.operprocepath=data['filepath'] + obj.createuser=User.objects.get(userid=userid) + obj.createdate=data['publisdate'] + obj.usecomp=Partment.objects.get(partid=companyid) + obj.filepath=data['filepath'] + obj.save() + return JsonResponse({"code":1}) + elif a=='listall':#责任列表 + startnum,endnum=fenye(req) + #groups = Group.objects.filter(users__userid=userid) + # part= Partment.objects.filter(partid=User.objects.get(userid=userid).ubelongpart.partid) + #a = Resbility.objects.filter(usecomp=companyid,jobs__in=groups,department__in=part).order_by('id') + a = Operproce.objects.filter(usecomp=companyid,deletemark=1).order_by('id') + total = a.count() + startnum,endnum=fenye(req) + a = a[startnum:endnum].values('id','title','department__partname','jobs__groupname','operprocepath','homeworktype__dickeyname','createdate','createuser__name','reads') + return HttpResponse(transjson(total,a),content_type="application/json") + #点击阅读 + elif a=='readnum': + id =req.GET.get('id') + a = Operproce.objects.get(id=id) + a.reads=a.reads+1 + a.save() + obj = ReaderOperproce() + obj.readid=a + obj.num='' + obj.readeruser=User.objects.get(userid=userid) + obj.save() + return JsonResponse({"code":1,"url": a.operprocepath}) + #删除 + elif a == 'del': + id =req.GET.get('id') + userid = req.session['userid'] + companyid = getcompany(userid)#公司ID + a = Operproce.objects.get(id=id) + if a.createuser==User.objects.get(userid=userid): + a.deletemark=0 + a.save() + return JsonResponse({"code":1}) + + else: + + return JsonResponse({"code":0}) + elif a=='detail': + id =req.GET.get('zrid') + a = ReaderOperproce.objects.filter(readid=id).values('id','readeruser__name','readertime') + total = a.count() + return HttpResponse(transjson(total,a),content_type="application/json")