spjdedit
This commit is contained in:
parent
19368b7901
commit
a6808ea7f0
BIN
groups.zip
BIN
groups.zip
Binary file not shown.
|
@ -0,0 +1,23 @@
|
||||||
|
# Generated by Django 2.1.5 on 2019-10-30 16:32
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('safesite', '0285_remove_companyinfo_liaison_fax'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
# migrations.RemoveField(
|
||||||
|
# model_name='companyinfo',
|
||||||
|
# name='liaison_fax',
|
||||||
|
# ),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='equipment',
|
||||||
|
name='riskact',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='safesite.RiskAct'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -660,6 +660,24 @@ class Relation(models.Model):#各模块关系表,没用到
|
||||||
remark = models.CharField(max_length=1000,null=True,blank=True)
|
remark = models.CharField(max_length=1000,null=True,blank=True)
|
||||||
|
|
||||||
|
|
||||||
|
class RiskAct(models.Model):#风险点表
|
||||||
|
id = models.AutoField(primary_key=True)
|
||||||
|
area = models.ForeignKey(Area,on_delete=models.CASCADE,null=True,blank=True,related_name='riskactarea')
|
||||||
|
place = models.CharField(max_length=50,null=True,blank=True)
|
||||||
|
type = models.ForeignKey(Dickey,on_delete=models.CASCADE,null=True,blank=True)
|
||||||
|
name = models.CharField(max_length=200,null=True,blank=True)
|
||||||
|
createtime = models.DateTimeField(default = timezone.now)
|
||||||
|
level = models.CharField(max_length=50,null=True,blank=True)
|
||||||
|
usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True)
|
||||||
|
qrcode = models.CharField(max_length=200,blank=True,null=True)
|
||||||
|
gkcj = models.CharField(max_length=50,null=True,blank=True)#从此往下以风险点来管控
|
||||||
|
zrbm = models.ForeignKey(Partment,related_name='riskzrbm2',on_delete=models.CASCADE,null=True,blank=True)
|
||||||
|
zrr = models.ForeignKey(User,related_name='riskzrr2',on_delete=models.CASCADE,null=True,blank=True)
|
||||||
|
group = models.ForeignKey(Group,on_delete=models.CASCADE,null=True,blank=True)
|
||||||
|
modifytime = models.DateTimeField(auto_now = True)
|
||||||
|
tasktype = models.IntegerField(default=0)
|
||||||
|
tasktime = models.DateTimeField(null=True,blank=True) #最后任务开始时间
|
||||||
|
|
||||||
class Equipment(models.Model):#设备表
|
class Equipment(models.Model):#设备表
|
||||||
id = models.AutoField(primary_key=True)
|
id = models.AutoField(primary_key=True)
|
||||||
num = models.CharField(max_length=30,null=True,blank=True)
|
num = models.CharField(max_length=30,null=True,blank=True)
|
||||||
|
@ -686,6 +704,7 @@ class Equipment(models.Model):#设备表
|
||||||
zrr = models.ForeignKey(User,on_delete=models.CASCADE,null=True,blank=True)
|
zrr = models.ForeignKey(User,on_delete=models.CASCADE,null=True,blank=True)
|
||||||
img = models.CharField(max_length=1000,blank=True,null=True)
|
img = models.CharField(max_length=1000,blank=True,null=True)
|
||||||
qrcode = models.CharField(max_length=200,blank=True,null=True)
|
qrcode = models.CharField(max_length=200,blank=True,null=True)
|
||||||
|
riskact = models.ForeignKey(RiskAct,null=True,blank=True,on_delete=models.CASCADE)
|
||||||
|
|
||||||
class Inspect(models.Model):#设备巡检记录
|
class Inspect(models.Model):#设备巡检记录
|
||||||
id = models.AutoField(primary_key=True)
|
id = models.AutoField(primary_key=True)
|
||||||
|
@ -697,24 +716,6 @@ class Inspect(models.Model):#设备巡检记录
|
||||||
user = models.ForeignKey(User,blank=True,null=True,on_delete=models.CASCADE)
|
user = models.ForeignKey(User,blank=True,null=True,on_delete=models.CASCADE)
|
||||||
usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True)
|
usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True)
|
||||||
trouble = models.ForeignKey(Trouble,on_delete=models.CASCADE,null=True,blank=True)
|
trouble = models.ForeignKey(Trouble,on_delete=models.CASCADE,null=True,blank=True)
|
||||||
|
|
||||||
class RiskAct(models.Model):#风险点表
|
|
||||||
id = models.AutoField(primary_key=True)
|
|
||||||
area = models.ForeignKey(Area,on_delete=models.CASCADE,null=True,blank=True,related_name='riskactarea')
|
|
||||||
place = models.CharField(max_length=50,null=True,blank=True)
|
|
||||||
type = models.ForeignKey(Dickey,on_delete=models.CASCADE,null=True,blank=True)
|
|
||||||
name = models.CharField(max_length=200,null=True,blank=True)
|
|
||||||
createtime = models.DateTimeField(default = timezone.now)
|
|
||||||
level = models.CharField(max_length=50,null=True,blank=True)
|
|
||||||
usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True)
|
|
||||||
qrcode = models.CharField(max_length=200,blank=True,null=True)
|
|
||||||
gkcj = models.CharField(max_length=50,null=True,blank=True)#从此往下以风险点来管控
|
|
||||||
zrbm = models.ForeignKey(Partment,related_name='riskzrbm2',on_delete=models.CASCADE,null=True,blank=True)
|
|
||||||
zrr = models.ForeignKey(User,related_name='riskzrr2',on_delete=models.CASCADE,null=True,blank=True)
|
|
||||||
group = models.ForeignKey(Group,on_delete=models.CASCADE,null=True,blank=True)
|
|
||||||
modifytime = models.DateTimeField(auto_now = True)
|
|
||||||
tasktype = models.IntegerField(default=0)
|
|
||||||
tasktime = models.DateTimeField(null=True,blank=True) #最后任务开始时间
|
|
||||||
|
|
||||||
class Risk(models.Model):#风险表
|
class Risk(models.Model):#风险表
|
||||||
tasktype_choices = (
|
tasktype_choices = (
|
||||||
|
|
|
@ -64,11 +64,15 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><label>责任部门:</label><input id="zrbm" name="zrbm" /></td>
|
<td><label>责任部门:</label><input id="zrbm" name="zrbm" /></td>
|
||||||
<td><label>责任人员:</label><input id="zrr" class="easyui-combobox" name="zrr" /></td>
|
<td><label>责任人员:</label><input id="zrr" class="easyui-combobox" name="zrr" editable=false/></td>
|
||||||
|
<td><label>关联风险点</label><a onclick="choosefxd()" class="easyui-linkbutton">选择</a>
|
||||||
|
<span style="color: blue;" id="fxdspan"></span>
|
||||||
|
<input type=hidden id="fxdinput" name="riskact">
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><label>技术参数:</label><input id="parameter" class="easyui-textbox" name="parameter"
|
<td colspan="3"><label>技术参数:</label><input id="parameter" class="easyui-textbox" name="parameter"
|
||||||
style="height:100px" data-options="multiline:true" /></td>
|
style="height:100px;width:90%" data-options="multiline:true" /></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a id="savesb" onclick="savesb()" class="easyui-linkbutton" data-options="iconCls: 'fa-save'">保存</a></td>
|
<td><a id="savesb" onclick="savesb()" class="easyui-linkbutton" data-options="iconCls: 'fa-save'">保存</a></td>
|
||||||
|
@ -192,6 +196,13 @@
|
||||||
$('#cate').combobox('setValue', res.cate__dickeyid)
|
$('#cate').combobox('setValue', res.cate__dickeyid)
|
||||||
$('#area').combotree('setValue', res.area__id)
|
$('#area').combotree('setValue', res.area__id)
|
||||||
$('#zrbm').combotree('setValue', res.zrbm__partid)
|
$('#zrbm').combotree('setValue', res.zrbm__partid)
|
||||||
|
$('#fxdinput').val(res.riskact__id)
|
||||||
|
$('#fxdspan').css('color','blue')
|
||||||
|
$('#fxdspan').html(' '+res.riskact__name)
|
||||||
|
if(res.riskact__name==undefined){
|
||||||
|
$('#fxdspan').css('color','red')
|
||||||
|
$('#fxdspan').html(' 未绑定')
|
||||||
|
}
|
||||||
$('#zrr').combobox({ url: 'getuser?partid=' + res.zrbm__partid + '&a=combobox', }).combobox('setValue', res.zrr__userid)
|
$('#zrr').combobox({ url: 'getuser?partid=' + res.zrbm__partid + '&a=combobox', }).combobox('setValue', res.zrr__userid)
|
||||||
if (res.iskey == 1) {
|
if (res.iskey == 1) {
|
||||||
$('#iskey').prop("checked", true);
|
$('#iskey').prop("checked", true);
|
||||||
|
@ -320,4 +331,9 @@
|
||||||
}; //请求完成
|
}; //请求完成
|
||||||
xhr.onerror = function (evt) { $.messager.alert('提示', '失败!文件内容有误'); document.getElementById('drfile').value = ''; }; //请求失败
|
xhr.onerror = function (evt) { $.messager.alert('提示', '失败!文件内容有误'); document.getElementById('drfile').value = ''; }; //请求失败
|
||||||
}
|
}
|
||||||
|
function choosefxd(){
|
||||||
|
var myh = screen.availHeight * 0.8;
|
||||||
|
var area = $('#area').combotree('getValue')
|
||||||
|
opendg('选择风险点','html/riskact/chose?area='+area,myh)
|
||||||
|
}
|
||||||
</script>
|
</script>
|
|
@ -14,14 +14,15 @@
|
||||||
animate: true,
|
animate: true,
|
||||||
checkbox: true,
|
checkbox: true,
|
||||||
lines: true,
|
lines: true,
|
||||||
loadFilter: function (rows) {
|
loadFilter: function (rows) {
|
||||||
return convertmenu(rows);
|
var rows = convertmenu(rows)
|
||||||
|
return rows;
|
||||||
},
|
},
|
||||||
onClick: function (node) {
|
onClick: function (node) {
|
||||||
|
|
||||||
},
|
},
|
||||||
onCheck:function(node){
|
onCheck:function(node){
|
||||||
console.log($('#rightstree').tree('getChecked', ['checked','indeterminate']))
|
//console.log($('#rightstree').tree('getChecked', ['checked','indeterminate']))
|
||||||
},
|
},
|
||||||
onBeforeLoad: function (node, param) {
|
onBeforeLoad: function (node, param) {
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
<div class="easyui-layout" style="width:100%;height:100%;">
|
||||||
|
<div id="riskactbar" style="padding:5px;height:auto">
|
||||||
|
<div>
|
||||||
|
<form id="searchriskactff">
|
||||||
|
<label>区域</label>
|
||||||
|
<input class="easyui-combotree" name="area" data-options="
|
||||||
|
url: 'api/area?a=tree',
|
||||||
|
method: 'get',
|
||||||
|
editable: false,
|
||||||
|
loadFilter: function (rows) {
|
||||||
|
return convert(rows);
|
||||||
|
},
|
||||||
|
formatter: function (node) {
|
||||||
|
var s = node.text;
|
||||||
|
if (node.children) {
|
||||||
|
s += ' <span style=\'color:blue\'>(' + node.children.length + ')</span>';
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
},"/>
|
||||||
|
<a onclick="searchriskact()" class="easyui-linkbutton" data-options="iconCls: 'fa-search',plain:true">查询</a>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<table id="riskacttable" style="height:100%;"></table>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
var area = {{area}};
|
||||||
|
var url = 'api/riskact?a=listall&type=396&area='+area
|
||||||
|
$('#riskacttable').datagrid({
|
||||||
|
url: url,
|
||||||
|
singleSelect:true,
|
||||||
|
rownumbers: true,
|
||||||
|
fitColumns: true,
|
||||||
|
striped: true,
|
||||||
|
method: 'get',
|
||||||
|
toolbar: '#riskactbar',
|
||||||
|
pagination: 'true',
|
||||||
|
pageSize: 20,
|
||||||
|
columns: [[
|
||||||
|
// { field: 'ck', checkbox:true },
|
||||||
|
{ field: 'id', title: 'ID', hidden: true },
|
||||||
|
{ field: 'area__name', title: '区域', width: 100 },
|
||||||
|
{ field: 'type__dickeyname', title: '类型', width: 80 },
|
||||||
|
{ field: 'name', title: '名称', width: 100 },
|
||||||
|
{ field: 'level', title: '级别', width: 80 , styler: function (value, row, index) {
|
||||||
|
switch (value) {
|
||||||
|
case '低风险': return 'background-color:blue;color:white'; break;
|
||||||
|
case '一般风险': return 'background-color:yellow;'; break;
|
||||||
|
case '较大风险': return 'background-color:orange;'; break;
|
||||||
|
case '重大风险': return 'background-color:red;color:white'; break;
|
||||||
|
}
|
||||||
|
}},
|
||||||
|
{ field: 'gkcj', title: '层级', width: 80 },
|
||||||
|
{ field: 'zrbm__partname', title: '责任部门', width: 80 },
|
||||||
|
{ field: 'zrr__name', title: '责任人', width: 80 },
|
||||||
|
{ field: 'group__groupname', title: '岗位', width: 100 },
|
||||||
|
]],
|
||||||
|
onSelect: function (index, data) {
|
||||||
|
$('#fxdspan').css('color','blue')
|
||||||
|
$('#fxdspan').html(' '+data.name)
|
||||||
|
$('#fxdinput').val(data.id)
|
||||||
|
closeForm()
|
||||||
|
}})
|
||||||
|
function searchriskact(){
|
||||||
|
var querydata = $('#searchriskactff').serializeJSON();
|
||||||
|
$('#riskacttable').datagrid('load',querydata);
|
||||||
|
}
|
||||||
|
</script>
|
|
@ -88,6 +88,7 @@ urlpatterns = [
|
||||||
path('html/bhr',views.bhrhtml),
|
path('html/bhr',views.bhrhtml),
|
||||||
path('riskas',views.riskas),
|
path('riskas',views.riskas),
|
||||||
path('html/examhistory/<int:id>/',views.examhistory),
|
path('html/examhistory/<int:id>/',views.examhistory),
|
||||||
|
path('html/riskact/chose',views.riskactchose),
|
||||||
#html页面
|
#html页面
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -95,6 +95,11 @@ def taskdo(req):
|
||||||
return render(req,'taskdo.html')
|
return render(req,'taskdo.html')
|
||||||
def task(req):
|
def task(req):
|
||||||
return render(req,'task.html')
|
return render(req,'task.html')
|
||||||
|
def riskactchose(req):
|
||||||
|
area = 0
|
||||||
|
if req.GET.get('area',None):
|
||||||
|
area = req.GET.get('area')
|
||||||
|
return render(req,'riskactchose.html',locals())
|
||||||
def riskactedit(req,id):
|
def riskactedit(req,id):
|
||||||
return render(req,'riskactedit.html',{'id':id})
|
return render(req,'riskactedit.html',{'id':id})
|
||||||
def riskactadd(req):
|
def riskactadd(req):
|
||||||
|
@ -566,7 +571,7 @@ def apirights(req):
|
||||||
allrights = Group.objects.get(usecomp__partid=companyid,grouptype=0).menulink.split(',')
|
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()
|
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:
|
for i in menus:
|
||||||
if str(i['menuid']) in haverights:
|
if str(i['menuid']) in haverights and i['url'] != None:
|
||||||
i['checked']=True
|
i['checked']=True
|
||||||
else:
|
else:
|
||||||
i['checked']=False
|
i['checked']=False
|
||||||
|
@ -578,6 +583,10 @@ def apirights(req):
|
||||||
rlist = ['11','9']
|
rlist = ['11','9']
|
||||||
for i in data:
|
for i in data:
|
||||||
rlist.append(str(i['id']))
|
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))))
|
Group.objects.filter(groupid=groupid).update(menulink=','.join(list(set(rlist))))
|
||||||
return JsonResponse({"code":1})
|
return JsonResponse({"code":1})
|
||||||
elif a=='have':
|
elif a=='have':
|
||||||
|
@ -4036,6 +4045,12 @@ def apitool(req):
|
||||||
x['id']=i.partid
|
x['id']=i.partid
|
||||||
m.append(x)
|
m.append(x)
|
||||||
return JsonResponse({'wxgs':m})
|
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})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -5353,6 +5368,8 @@ def apiequipment(req):
|
||||||
obj.zrbm = Partment.objects.get(partid=data['zrbm'])
|
obj.zrbm = Partment.objects.get(partid=data['zrbm'])
|
||||||
if data['zrr']:
|
if data['zrr']:
|
||||||
obj.zrr = User.objects.get(userid=data['zrr'] )
|
obj.zrr = User.objects.get(userid=data['zrr'] )
|
||||||
|
if data['riskact']:
|
||||||
|
obj.riskact = RiskAct.objects.get(id=data['riskact'])
|
||||||
obj.parameter = data['parameter']
|
obj.parameter = data['parameter']
|
||||||
obj.usecomp=Partment.objects.get(partid=companyid)
|
obj.usecomp=Partment.objects.get(partid=companyid)
|
||||||
obj.save()
|
obj.save()
|
||||||
|
@ -5370,7 +5387,7 @@ def apiequipment(req):
|
||||||
return JsonResponse({"code":0})
|
return JsonResponse({"code":0})
|
||||||
elif a == 'detail':
|
elif a == 'detail':
|
||||||
id = req.GET.get('id')
|
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')
|
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])
|
return JsonResponse(a[0])
|
||||||
|
|
||||||
|
|
||||||
|
@ -5475,9 +5492,9 @@ def apiriskact(req):
|
||||||
companyid = getcompany(userid)
|
companyid = getcompany(userid)
|
||||||
if a=='listall':
|
if a=='listall':
|
||||||
a = RiskAct.objects.filter(usecomp__partid=companyid)
|
a = RiskAct.objects.filter(usecomp__partid=companyid)
|
||||||
if req.GET.get('area'):
|
if int(req.GET.get('area',0)):
|
||||||
a = a.filter(area__id = req.GET.get('area'))
|
a = a.filter(area__id = req.GET.get('area'))
|
||||||
if req.GET.get('type'):
|
if int(req.GET.get('type',0)):
|
||||||
a = a.filter(type__dickeyid=req.GET.get('type'))
|
a = a.filter(type__dickeyid=req.GET.get('type'))
|
||||||
total = a.count()
|
total = a.count()
|
||||||
startnum,endnum=fenye(req)
|
startnum,endnum=fenye(req)
|
||||||
|
@ -5613,8 +5630,14 @@ def apirisk(req):
|
||||||
data = json.loads(req.body.decode('utf-8'))
|
data = json.loads(req.body.decode('utf-8'))
|
||||||
if req.GET.get('type') == 'equipment':
|
if req.GET.get('type') == 'equipment':
|
||||||
areaid = data['areaid']
|
areaid = data['areaid']
|
||||||
|
equipmentid = data['id']
|
||||||
equipmentname = data['name']
|
equipmentname = data['name']
|
||||||
objs = Risk.objects.filter(usecomp__partid=companyid,riskact__area__id=areaid,riskact__name__contains=equipmentname)
|
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():
|
if objs.exists():
|
||||||
return JsonResponse({'code':1,'steps':list(objs.values('id','step','hazard','result','level','riskact__group__groupname','riskact__zrbm__partname','riskact__zrr__name'))})
|
return JsonResponse({'code':1,'steps':list(objs.values('id','step','hazard','result','level','riskact__group__groupname','riskact__zrbm__partname','riskact__zrr__name'))})
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue