zuoye
This commit is contained in:
parent
783a0cb6ce
commit
21be18b1a4
|
@ -0,0 +1,29 @@
|
|||
# Generated by Django 2.1.5 on 2019-10-08 16:04
|
||||
|
||||
import django.contrib.postgres.fields
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('safesite', '0272_auto_20190925_1657'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
# migrations.AddField(
|
||||
# model_name='area',
|
||||
# name='qrcode',
|
||||
# field=models.CharField(blank=True, max_length=200, null=True),
|
||||
# ),
|
||||
migrations.AddField(
|
||||
model_name='operation',
|
||||
name='todousers',
|
||||
field=django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), blank=True, null=True, size=None),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='operationspjd',
|
||||
name='sprs',
|
||||
field=django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), blank=True, null=True, size=None),
|
||||
),
|
||||
]
|
|
@ -1,7 +1,7 @@
|
|||
from django.db import models
|
||||
import uuid
|
||||
import django.utils.timezone as timezone
|
||||
from django.contrib.postgres.fields import JSONField
|
||||
from django.contrib.postgres.fields import JSONField,ArrayField
|
||||
import jwt
|
||||
import datetime
|
||||
# Create your models here.
|
||||
|
@ -466,6 +466,7 @@ class Operation(models.Model):#作业表
|
|||
zyzt = JSONField()
|
||||
fxcs = models.CharField(max_length=200)
|
||||
todouser = models.ForeignKey(User,related_name='zyclr',on_delete=models.CASCADE,null=True,blank=True)
|
||||
todousers = ArrayField(models.IntegerField(), blank=True,null=True)
|
||||
usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True,default=1)
|
||||
|
||||
class Fxcs(models.Model):#作业分析措施
|
||||
|
@ -508,12 +509,13 @@ class Operzyry(models.Model):#作业确认人
|
|||
modifytime = models.DateTimeField(auto_now = True)
|
||||
submittime = models.DateTimeField(default = timezone.now)
|
||||
|
||||
class Operationspjd(models.Model):#作业审批节点
|
||||
class Operationspjd(models.Model):#作业审批节点配置
|
||||
id = models.AutoField(primary_key=True)
|
||||
zylx = models.ForeignKey(Dickey, on_delete=models.CASCADE,null=True,blank=True)
|
||||
jdmc = models.CharField(max_length=100)
|
||||
spbm = models.ForeignKey(Partment,related_name='spbm',on_delete=models.CASCADE,null=True,blank=True)#审批部门
|
||||
spr = models.ForeignKey(User,related_name='spr',on_delete=models.CASCADE,null=True,blank=True)#审批部门
|
||||
sprs = ArrayField(models.IntegerField(), blank=True,null=True)
|
||||
submittime = models.DateTimeField(u'创建时间',default = timezone.now)
|
||||
modifytime = models.DateTimeField(auto_now = True)
|
||||
usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True)
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
required=true />
|
||||
</div>
|
||||
<div style="margin-bottom:5px">
|
||||
<input id="spr" class="easyui-combobox" name="spr" style="width:480px;" editable="false" data-options="label:'审批人'"
|
||||
<input id="spr" class="easyui-combobox" name="spr" style="width:480px;" editable="false" data-options="label:'审批人',multiple:true"
|
||||
required=true />
|
||||
</div>
|
||||
</form>
|
||||
|
@ -22,9 +22,13 @@
|
|||
<script>
|
||||
$('#spbm').combotree({ url: 'parthandle?a=tree', loadFilter: function(rows){
|
||||
return convert(rows);
|
||||
},onSelect: function (node) { $('#spr').combobox({ url: 'getuser?partid=' + node.id + '&a=combobox', }); } });
|
||||
},onSelect: function (node) { $('#spr').combobox({
|
||||
url: 'getuser?partid=' + node.id + '&a=combobox',
|
||||
}); } });
|
||||
function spjdsubmitForm() {
|
||||
var spjddata = $('#spjdff').serializeJSON();
|
||||
spjddata['spr'] = $('#spr').combobox('getValues')
|
||||
console.log(spjddata)
|
||||
spjddata['zylx'] = $('#zylxlist').datalist('getSelected').value
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
|
|
|
@ -98,7 +98,7 @@
|
|||
field: 'accept', title: '建议状态', width: 80, styler: function (value, row, index) {
|
||||
switch (value) {
|
||||
case 1: return 'background-color:green;'; break;
|
||||
case 0: return 'background-color:yellow;'; break;
|
||||
case 0: return 'background-color:red;'; break;
|
||||
|
||||
}
|
||||
}, formatter: function (value, row, index) {
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
{ field: 'id', title: 'ID', hidden: true },
|
||||
{ field: 'jdmc', title: '节点名称', width: 40 },
|
||||
{ field: 'spbm__partname', title: '审批部门', width: 120 },
|
||||
{ field: 'spr__name', title: '审批人', width: 120 },
|
||||
{ field: 'sprnames', title: '审批人', width: 120 },
|
||||
]]
|
||||
});
|
||||
$('#fxcstable').datagrid({
|
||||
|
|
|
@ -480,6 +480,27 @@ def getspr(ubp):
|
|||
return User.objects.get(ubelongpart=currentpart,issuper=1)
|
||||
return a
|
||||
|
||||
def getsprs(ubp):
|
||||
currentpart=ubp
|
||||
a=getsprs_ubp(currentpart)
|
||||
while a==False:
|
||||
currentpart=currentpart.parentid #已找不到上级部门
|
||||
if currentpart:
|
||||
a=getsprs_ubp(currentpart)
|
||||
else:
|
||||
return User.objects.get(ubelongpart=currentpart,issuper=1)
|
||||
return a
|
||||
|
||||
def getsprs_ubp(ubp):
|
||||
a=ubp
|
||||
if a.bmzg !=',':
|
||||
zgstr = a.bmzg
|
||||
zglist = zgstr.split(',')
|
||||
zglist = list(map(int, list(filter(None, zglist))))
|
||||
return zglist
|
||||
else:
|
||||
return False
|
||||
|
||||
@check_login
|
||||
def menutree(req):
|
||||
userid = req.session['userid']
|
||||
|
@ -1499,13 +1520,15 @@ def troublehandle(req):
|
|||
userid = req.session['userid']
|
||||
if User.objects.get(userid = userid).issuper == 1:
|
||||
a = Trouble.objects.get(troubleid = req.POST.get('troubleid'))
|
||||
a.delete()
|
||||
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.delete()
|
||||
a.deletemark=0
|
||||
a.save()
|
||||
return JsonResponse({"code":1})
|
||||
else:
|
||||
return JsonResponse({"code":0})
|
||||
|
@ -3496,7 +3519,7 @@ def apisuggest(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')
|
||||
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']
|
||||
|
@ -3504,7 +3527,7 @@ def apisuggest(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')
|
||||
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']
|
||||
|
@ -3512,7 +3535,7 @@ def apisuggest(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')
|
||||
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']
|
||||
|
@ -3521,7 +3544,7 @@ def apisuggest(req):
|
|||
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')[0]
|
||||
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:
|
||||
|
@ -3551,7 +3574,7 @@ def apisuggest(req):
|
|||
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')
|
||||
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']
|
||||
|
@ -3987,13 +4010,14 @@ def apioperation(req):
|
|||
obj.zyzt = {'zyzt':'确认中','index':0}
|
||||
obj.save()
|
||||
splc = []
|
||||
splc.append({'jdmc':'作业部门审批','spr':getspr(obj.zybm)})
|
||||
splc.append({'jdmc':'属地部门审批','spr':getspr(obj.sdbm)})
|
||||
splc.append({'jdmc':'作业负责人审批','sprs':[userid]})
|
||||
splc.append({'jdmc':'作业部门审批','sprs':getsprs(obj.zybm)})
|
||||
splc.append({'jdmc':'属地部门审批','sprs':getsprs(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,'spr':i.spr.userid})
|
||||
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)
|
||||
# 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)
|
||||
|
@ -4048,7 +4072,7 @@ def apioperation(req):
|
|||
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))).order_by('-submittime')
|
||||
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')
|
||||
|
@ -4098,72 +4122,79 @@ def apioperation(req):
|
|||
obj.zyzt['index'] = 0
|
||||
index = obj.zyzt['index']
|
||||
obj.zyzt['jdmc'] = obj.zyzt['splc'][index]['jdmc']
|
||||
obj.todouser = User.objects.get(userid=obj.zyzt['splc'][index]['spr'])
|
||||
sprs = obj.zyzt['splc'][index]['sprs']
|
||||
obj.todousers = sprs
|
||||
obj.save()
|
||||
postdict={
|
||||
'touser':'',
|
||||
'template_id':obj.todouser.openid,
|
||||
'data':{
|
||||
'first':{
|
||||
'value':obj.zylx.dickeyname + '作业审批:'
|
||||
},
|
||||
'keyword1':{
|
||||
'value':obj.zynr
|
||||
},
|
||||
'keyword2':{
|
||||
'value':obj.kssj
|
||||
},
|
||||
'keyword3':{
|
||||
'value':obj.zydd
|
||||
},
|
||||
'remark':{
|
||||
'value':'请您及时完成审批!'
|
||||
for i in sprs:
|
||||
postdict={
|
||||
'touser':'',
|
||||
'template_id':User.objects.get(userid=i).openid,
|
||||
'data':{
|
||||
'first':{
|
||||
'value':obj.zylx.dickeyname + '作业审批:'
|
||||
},
|
||||
'keyword1':{
|
||||
'value':obj.zynr
|
||||
},
|
||||
'keyword2':{
|
||||
'value':obj.kssj
|
||||
},
|
||||
'keyword3':{
|
||||
'value':obj.zydd
|
||||
},
|
||||
'remark':{
|
||||
'value':'请您及时完成审批!'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
send_wechatmsg.delay(postdict)
|
||||
send_wechatmsg.delay(postdict)
|
||||
return JsonResponse({"code":1})
|
||||
elif a == 'spzy':
|
||||
userid = req.session['userid']
|
||||
zyid = req.POST.get('zyid')
|
||||
obj = Operation.objects.get(zyid=zyid)
|
||||
oldtodo = obj.todouser
|
||||
oldtodo = obj.todousers
|
||||
oldjdmc = obj.zyzt['jdmc']
|
||||
nextindex = obj.zyzt['index']+1
|
||||
spruser = User.objects.get(userid=userid)
|
||||
try:
|
||||
nextsplc = obj.zyzt['splc'][nextindex]
|
||||
obj.zyzt['zyzt'] = '审批中'
|
||||
obj.zyzt['index'] = nextindex
|
||||
obj.zyzt['jdmc'] = nextsplc['jdmc']
|
||||
obj.todouser = User.objects.get(userid=nextsplc['spr'])
|
||||
obj.todousers = nextsplc['sprs']
|
||||
obj.save()
|
||||
postdict={
|
||||
'touser':'',
|
||||
'template_id':obj.todouser.openid,
|
||||
'data':{
|
||||
'first':{
|
||||
'value':obj.zylx.dickeyname + '作业审批:'
|
||||
},
|
||||
'keyword1':{
|
||||
'value':obj.zynr
|
||||
},
|
||||
'keyword2':{
|
||||
'value':obj.kssj
|
||||
},
|
||||
'keyword3':{
|
||||
'value':obj.zydd
|
||||
},
|
||||
'remark':{
|
||||
'value':'请您及时完成审批!'
|
||||
for i in nextsplc['sprs']:
|
||||
postdict={
|
||||
'touser':'',
|
||||
'template_id':User.objects.get(userid=i).openid,
|
||||
'data':{
|
||||
'first':{
|
||||
'value':obj.zylx.dickeyname + '作业审批:'
|
||||
},
|
||||
'keyword1':{
|
||||
'value':obj.zynr
|
||||
},
|
||||
'keyword2':{
|
||||
'value':obj.kssj
|
||||
},
|
||||
'keyword3':{
|
||||
'value':obj.zydd
|
||||
},
|
||||
'remark':{
|
||||
'value':'请您及时完成审批!'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
send_wechatmsg.delay(postdict)
|
||||
Operspxq.objects.create(oper=Operation.objects.get(zyid=zyid),jdmc=oldjdmc,spr=oldtodo,checked=1,spbm=oldtodo.ubelongpart)
|
||||
send_wechatmsg.delay(postdict)
|
||||
|
||||
Operspxq.objects.create(oper=Operation.objects.get(zyid=zyid),jdmc=oldjdmc,spr=spruser,checked=1,spbm=spruser.ubelongpart)
|
||||
except :
|
||||
obj.zyzt['zyzt'] = '待关闭'
|
||||
obj.todouser = obj.zyfzr
|
||||
obj.todousers = None
|
||||
obj.save()
|
||||
Operspxq.objects.create(oper=Operation.objects.get(zyid=zyid),jdmc=oldjdmc,spr=oldtodo,checked=1,spbm=oldtodo.ubelongpart)
|
||||
Operspxq.objects.create(oper=Operation.objects.get(zyid=zyid),jdmc=oldjdmc,spr=spruser,checked=1,spbm=spruser.ubelongpart)
|
||||
postdict={
|
||||
'touser':'',
|
||||
'template_id':obj.zyfzr.openid,
|
||||
|
@ -4202,7 +4233,7 @@ def apioperation(req):
|
|||
userid = req.session['userid']
|
||||
i = []
|
||||
b = Operzyry.objects.filter(operzyry__userid=userid,checked=0)
|
||||
c = Operation.objects.filter(todouser=User.objects.get(userid=userid))
|
||||
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:
|
||||
|
@ -4286,8 +4317,9 @@ def apioperationspjd(req):
|
|||
zylx = Dickey.objects.get(dickeyid=data['zylx'])
|
||||
jdmc = data['jdmc']
|
||||
spbm = Partment.objects.get(partid=data['spbm'])
|
||||
spr = User.objects.get(userid=data['spr'])
|
||||
Operationspjd.objects.create(jdmc=jdmc,zylx=zylx,spbm=spbm,spr=spr,usecomp=Partment.objects.get(partid=companyid))
|
||||
#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'):
|
||||
|
@ -4296,8 +4328,9 @@ def apioperationspjd(req):
|
|||
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()
|
||||
startnum,endnum=fenye(req)
|
||||
a = a[startnum:endnum].values('id','jdmc','spbm__partname','spr__name')
|
||||
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')
|
||||
|
@ -5138,6 +5171,13 @@ def apiriskact(req):
|
|||
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)
|
||||
|
@ -5501,8 +5541,8 @@ def apiriskacttask(req):
|
|||
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,istask=1)
|
||||
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')
|
||||
|
|
Loading…
Reference in New Issue