From dd402fe5a95b8a8d66e02d4f02867580f5079428 Mon Sep 17 00:00:00 2001
From: shilixia <2309368887@qq.com>
Date: Sun, 26 Apr 2020 15:03:42 +0800
Subject: [PATCH] renwuzuiou
---
.../migrations/0333_auto_20200424_1000.py | 19 +++
safesite/models.py | 1 +
safesite/tasks.py | 2 +-
safesite/templates/checkjob.html | 133 ++++++++++++++----
safesite/templates/checklist.html | 63 ++++++++-
safesite/templates/checklistadd.html | 2 +-
safesite/templates/checklistadd2.html | 102 ++++++++++++++
safesite/templates/trouble.html | 118 ++++++++--------
safesite/urls.py | 1 +
safesite/views.py | 121 +++++++++++++++-
10 files changed, 464 insertions(+), 98 deletions(-)
create mode 100644 safesite/migrations/0333_auto_20200424_1000.py
create mode 100644 safesite/templates/checklistadd2.html
diff --git a/safesite/migrations/0333_auto_20200424_1000.py b/safesite/migrations/0333_auto_20200424_1000.py
new file mode 100644
index 00000000..b1bb8893
--- /dev/null
+++ b/safesite/migrations/0333_auto_20200424_1000.py
@@ -0,0 +1,19 @@
+# Generated by Django 2.2.8 on 2020-04-24 10:00
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('safesite', '0332_auto_20200421_1354'),
+ ]
+
+ operations = [
+
+ migrations.AddField(
+ model_name='checktask',
+ name='taskstate',
+ field=models.IntegerField(default=1),
+ ),
+ ]
diff --git a/safesite/models.py b/safesite/models.py
index 4e4659f9..d4431a26 100644
--- a/safesite/models.py
+++ b/safesite/models.py
@@ -1249,6 +1249,7 @@ class Checktask(models.Model):
tasktype = models.IntegerField(default=0)#任务执行频率(1每天,2每周,3每月,4每季度,5每半年,6每年)
userlist = models.CharField(max_length=200,null=True,)#检查人列表
zxstate = models.IntegerField(default=1)#1同时执行,2一个执行就执行
+ taskstate = models.IntegerField(default=1)#是否暂停,1运行,2暂停
class Checkjob(models.Model):
id=models.AutoField(primary_key=True)#主键
checktask=models.ForeignKey(Checktask,on_delete=models.CASCADE)#关联任务表
diff --git a/safesite/tasks.py b/safesite/tasks.py
index a1f6b72d..6fee05b7 100644
--- a/safesite/tasks.py
+++ b/safesite/tasks.py
@@ -282,7 +282,7 @@ def riskacttask():
@shared_task
def checktask():
nowtime = datetime.datetime.now()
- for i in Checktask.objects.filter(deletemark=1):
+ for i in Checktask.objects.filter(deletemark=1,taskstate=1):
if i.tasktype==1:
if i.checktime:
diff --git a/safesite/templates/checkjob.html b/safesite/templates/checkjob.html
index 94692575..d585dbfe 100644
--- a/safesite/templates/checkjob.html
+++ b/safesite/templates/checkjob.html
@@ -9,36 +9,49 @@
验收任务
全部任务
-
+ 详细筛选
{% load myfilter %}
{% if request|has_permission:'b_checkjob_add' %}
执行任务
{% endif %}
+
+
删除
+
{% if request|has_permission:'b_checkjob_detail' %}
详情
{% endif %}
+
+
\ No newline at end of file
diff --git a/safesite/templates/checklist.html b/safesite/templates/checklist.html
index a2d3bb85..215fb9a7 100644
--- a/safesite/templates/checklist.html
+++ b/safesite/templates/checklist.html
@@ -10,9 +10,13 @@
{% if request|has_permission:'b_checklist_add' %}
发布任务
{% endif %}
+
+ 发布专项任务
+
{% if request|has_permission:'b_checklist_del' %}
删除
{% endif %}
+ 停止
详情
@@ -36,12 +40,12 @@
columns: [[
{ field: 'id', title: 'ID', hidden: true },
{ field: 'checktaskname', title: '任务名称', width: 150 },
- { field: 'checktype__checktitle', title: '检查表', width: 100 },
- { field: 'checktime', title: '更新时间', width: 300 },
+ { field: 'checktype__checktitle', title: '检查表', width: 300 },
+ //{ field: 'checktime', title: '更新时间', width: 300 },
{ field: 'createuser__name', title: '创建人', width: 300 },
{ field: 'createdate', title: '创建时间', width: 300 },
- { field: 'checkplace', title: '检查地点', width: 300 },
+ { field: 'checkplace', title: '检查地点', width: 200 },
{ field: 'tasktype', title: '排查频次', width: 100, formatter: function (value, row, index) {
switch (value) {
@@ -52,6 +56,7 @@
case 4: return '每季度一次'; break;
case 5: return '每半年一次'; break;
case 6: return '每年一次'; break;
+ case 7: return '专项检查'; break;
}
}, styler: function (value, row, index) {
switch (value) {
@@ -62,13 +67,28 @@
case 4: return 'color:green;font-weight:bold'; break;
case 5: return 'color:green;font-weight:bold'; break;
case 6: return 'color:green;font-weight:bold'; break;
+ case 7: return 'color:green;font-weight:bold'; break;
+ }}},
+ { field: 'taskstate', title: '派发状态', width: 100, formatter: function (value, row, index) {
+ switch (value) {
+ case 1: return '正常派发'; break;
+ case 2: return '停止派发'; break;
+ }
+ }, styler: function (value, row, index) {
+ switch (value) {
+
+ case 1: return 'background-color:green;font-weight:bold;color:#fafafa'; break;
+ case 2: return 'background-color:yellow;font-weight:bold;'; break;
+
}}},
-
]]
});
function addcheckrw(){
- opendg('发布检查任务','html/addcheckrw')
+ opendg('发布检查任务','html/addcheckrw')//普通检查任务
+ }
+ function addcheckrw2(){
+ opendg('发布专项检查任务','html/addcheckrw2')//专项检查任务
}
function detailcheck() {
var row = $('#tasktab').datagrid('getSelected');
@@ -79,6 +99,38 @@
$.messager.alert('提示', '请先选择一条数据!');
}
+ }
+ function stopstate(){
+ var row = $('#tasktab').datagrid('getSelected');
+ if (row) {
+ $.messager.confirm('提示', '确定停止该条任务吗?', function (r) {
+ if (r) {
+ $.ajax({
+ type: "GET",
+ url: 'api/checkproject?a=checkstop',
+ data: { 'id': row.id },
+ datatype: "json",
+ beforeSend: function () { },
+ success: function (data) {
+ if (data.code == 1) {
+ $("#tasktab").datagrid('reload');
+ }
+ else {
+ $.messager.alert('提示', '你无权停止该条任务信息!');
+ }
+ },
+ complete: function (XMLHttpRequest, textStatus) {
+ },
+ error: function () {
+ }
+ });
+ }
+ });
+
+ }
+ else {
+ $.messager.alert('提示', '请选择一行数据!');
+ }
}
function deltask() {
var row = $('#tasktab').datagrid('getSelected');
@@ -112,4 +164,5 @@
$.messager.alert('提示', '请选择一行数据!');
}
}
+
\ No newline at end of file
diff --git a/safesite/templates/checklistadd.html b/safesite/templates/checklistadd.html
index 0a39052d..2a09256a 100644
--- a/safesite/templates/checklistadd.html
+++ b/safesite/templates/checklistadd.html
@@ -29,7 +29,6 @@
每季度一次
每半年一次
每年一次
- 专项检查
@@ -67,6 +66,7 @@
})
+
function aaa(x) {
if (x == "participant") {
diff --git a/safesite/templates/checklistadd2.html b/safesite/templates/checklistadd2.html
new file mode 100644
index 00000000..b9d9505a
--- /dev/null
+++ b/safesite/templates/checklistadd2.html
@@ -0,0 +1,102 @@
+
+
\ No newline at end of file
diff --git a/safesite/templates/trouble.html b/safesite/templates/trouble.html
index da902f1e..ca6ce02e 100644
--- a/safesite/templates/trouble.html
+++ b/safesite/templates/trouble.html
@@ -1,12 +1,12 @@
-
快捷查询
-
+ 快捷查询
+
请选择
我的隐患
待办隐患
全部隐患
-
+
详细筛选
@@ -16,14 +16,14 @@
{% endif %}
处理
删除
-
对标
-
+
对标
+
查看详情
{% if request|has_permission:'b_trouble_import' %}
导入待整改隐患
- {% endif %}
+ data-options="iconCls:'fa-upload',plain:true">导入待整改隐患
+ {% endif %}
{% if request|has_permission:'b_trouble_exportdoc' %}
导出Word
{% endif %}
@@ -33,47 +33,49 @@
{% endif %}
-
-
-
+ data-options="iconCls:'fa-search',resizable:true,modal:true,closed:true,border:false">
+
-
+
+
-
请按模板录入后导入
-
点击下载模板
-
录入完成后点击下方按钮上传文件
-
+ data-options="iconCls:'fa-upload',resizable:true,modal:true,closed:true,border:false">
+
请按模板录入后导入
+
点击下载模板
+
录入完成后点击下方按钮上传文件
+
diff --git a/safesite/urls.py b/safesite/urls.py
index 6a856e6d..29e3320a 100644
--- a/safesite/urls.py
+++ b/safesite/urls.py
@@ -111,6 +111,7 @@ urlpatterns = [
path('html/addchecktask',views.addchecktask),#检查任务
path('html/checklist',views.checklist),#检查任务
path('html/addcheckrw',views.addcheckrw),#检查任务
+ path('html/addcheckrw2',views.addcheckrw2),#专项检查任务
path('html/checkjob',views.checkjob),#检查任务
path('html/addcheckjob//',views.addcheckjob),#检查任务
path('html/detailjob//',views.detailjob),#任务详情
diff --git a/safesite/views.py b/safesite/views.py
index 6a9f60c9..dcfc2eba 100644
--- a/safesite/views.py
+++ b/safesite/views.py
@@ -516,6 +516,8 @@ def checklist(req):
return render(req,'checklist.html')
def addcheckrw(req):
return render(req,'checklistadd.html')
+def addcheckrw2(req):
+ return render(req,'checklistadd2.html')
def detailjob(req,id):
return render(req,'checkjobdetail.html',{'id':id})
def updchecktable(req,id):
@@ -2002,6 +2004,7 @@ def troublehandle(req):
obj = a.order_by('-fxsj')[startnum:endnum].values('troubleid', 'fxr__userid', 'fxr__name', 'yhms', 'yhzt', 'fxsj', 'tbsj', 'yhlb__dickeyname',
'todouser__name', 'yhpg__dickeyname', 'yhnum', 'yhdj__dickeyname', 'shresult', 'zgqx', 'yhtp', 'zghtp', 'todouser__userid')
return HttpResponse(transjson(total, obj), content_type="application/json")
+
elif a == 'listarea':
userid = req.session['userid']
companyid = getcompany(userid)
@@ -7765,7 +7768,7 @@ def checkprojects(req):
total = a.count()
startnum, endnum = fenye(req)
- a = a[startnum:endnum].values('id','checktaskname','tasktype','checktype__checktitle','checkplace', 'checktime','createuser__name','createdate')
+ a = a[startnum:endnum].values('id','checktaskname','taskstate','tasktype','checktype__checktitle','checkplace', 'checktime','createuser__name','createdate')
return HttpResponse(transjson(total, a), content_type="application/json")
elif a == 'listall4':
@@ -7889,6 +7892,9 @@ def checkprojects(req):
elif a=='checktablist':
projectlist = Checktable.objects.filter(usecomp__partid=companyid,deletemark=1).values('id', 'checktitle')
return HttpResponse(transstr(projectlist,'id','checktitle'),content_type="application/json")
+ elif a=='checktablist2':
+ projectlist = Checktask.objects.filter(usecomp__partid=companyid,deletemark=1).values('id', 'checktaskname')
+ return HttpResponse(transstr(projectlist,'id','checktaskname'),content_type="application/json")
elif a=='addchecklist':
data = json.loads(req.body.decode('utf-8'))
@@ -7957,6 +7963,70 @@ def checkprojects(req):
}
send_wechatmsgs.delay(postdict, s)
return JsonResponse({"code": 1})
+
+ #专项检查
+ elif a=='addchecklist2':
+ data = json.loads(req.body.decode('utf-8'))
+
+
+ starttime =datetime.strptime(str(data['starttime']), '%Y-%m-%d %H:%M')
+ endtime =datetime.strptime(str(data['endtime']), '%Y-%m-%d %H:%M')
+ obj = Checktask()
+ obj.checktaskname = data['checktaskname']
+ obj.checktime=starttime
+ obj.checkplace=data['checkplace']
+ obj.zxstate=data['zxstate']
+ obj.tasktype=7#专项检查
+ obj.checktype =Checktable.objects.get(id=data['checktabtitle'])
+ obj.createuser = User.objects.get(userid=userid)
+ obj.usecomp=Partment.objects.get(partid=companyid)
+ obj.userlist=data['participant'].split(',')
+ obj.save()
+
+ list = data['participant'].split(',')
+ s=[]
+ for i in list:
+ x = User.objects.get(userid=i)
+ obj.checkname.add(x)
+ objs = Checkjob()
+ objs.checktask=obj
+ objs.checkname=x
+ objs.taskstate=4
+ objs.starttime=starttime
+
+ objs.endtime=endtime
+
+ objs.usecomp=Partment.objects.get(partid=companyid)
+
+ objs.save()
+ s.append(x.openid)
+ postdict = {
+ 'touser': '',
+ 'template_id': 'lOuwSE67vZC3ZVFYPZvz2eb7JdFxqx7ysMFkXrYmYh0',
+ "miniprogram": {"appid": "wx5c39b569f01c27db"},
+ 'data': {
+ 'first': {
+ 'value': '检查任务通知:'
+ },
+ 'keyword1': {
+ 'value':'任务名:'+ obj.checktaskname
+ },
+ 'keyword2': {
+ 'value': '执行时间:'+str(data['starttime'])
+ },
+ 'keyword3': {
+ 'value': '发布人:'+obj.createuser.name
+ },
+ 'remark': {
+ 'value': '请及时查看阅读'
+ }
+ }
+ }
+ send_wechatmsgs.delay(postdict, s)
+ return JsonResponse({"code": 1})
+
+
+
#删除
elif a == 'del':
id =req.GET.get('id')
@@ -7993,6 +8063,17 @@ def checkprojects(req):
return JsonResponse({"code":0})
+ elif a == 'deljob':
+ id =req.GET.get('id')
+ a = Checkjob.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 == 'checkjobdetail':
id = req.GET.get('id')
@@ -8024,4 +8105,40 @@ def checkprojects(req):
x = a.values('checktaskname','zxstate','tasktype','checkplace','checktime','checktype__checktitle','checktype__checkcontent')[0]
x['bcfr'] = uselist
- return HttpResponse(json.dumps(x, cls=MyEncoder), content_type="application/json")
\ No newline at end of file
+ return HttpResponse(json.dumps(x, cls=MyEncoder), content_type="application/json")
+ elif a=='checkstop':
+ id = req.GET.get('id')
+ a = Checktask.objects.get(id=id)
+ if a.createuser==User.objects.get(userid=userid):
+ a.taskstate=2
+ a.save()
+ return JsonResponse({"code":1})
+
+ else:
+
+ return JsonResponse({"code":0})
+#筛选
+ elif a == 'listsearch':
+ a = Checkjob.objects.filter(usecomp=Partment.objects.get(
+ partid=companyid)).exclude(deletemark=0)
+ qssj = req.GET.get('qssj')#开始时间
+ jssj = req.GET.get('jssj')#结束时间
+ checktabtitle = req.GET.get('checktabtitle')#检查表名
+ checktaskname = req.GET.get('checktaskname')#任务名称
+
+ if qssj:
+ a = a.filter(starttime__gte=qssj)
+ if jssj:
+ a = a.filter(starttime__lte=jssj)
+ if checktabtitle:
+ a = a.filter(checktask__checktype__id=checktabtitle)
+ if checktaskname:
+ a = a.filter(checktask__id=checktaskname)
+ total = a.count()
+
+ startnum, endnum = fenye(req)
+
+ a = a.order_by('-starttime')[startnum:endnum].values('id','checktask__checktaskname','jobstate','starttime','endtime','yanshou','checkquestion','zguser__username','zgtime','checktask__checktype__checktitle','checkname__username','checkname__name', 'taskstate','checktask__checktime','createuser__username','createdate')
+
+ return HttpResponse(transjson(total, a), content_type="application/json")
+