From 65aa6f56498e5e00732eb64d668a5133b65ecf91 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 27 Dec 2021 00:42:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A3=80=E6=9F=A5=E8=A1=A8=E5=92=8C=E6=B4=BE?= =?UTF-8?q?=E5=8F=91=E4=BB=BB=E5=8A=A1=E5=88=9B=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .../migrations/0392_auto_20211226_2132.py | 54 +++ .../migrations/0393_auto_20211227_0001.py | 33 ++ safesite/models.py | 48 +- safesite/templates/checklist_new.html | 419 ++++++++++++++++++ safesite/templates/gridtasksetadd.html | 7 +- safesite/templates/gridtasksetedit.html | 9 +- safesite/urls.py | 2 + safesite/views.py | 209 ++++----- 9 files changed, 645 insertions(+), 137 deletions(-) create mode 100644 safesite/migrations/0392_auto_20211226_2132.py create mode 100644 safesite/migrations/0393_auto_20211227_0001.py create mode 100644 safesite/templates/checklist_new.html diff --git a/.gitignore b/.gitignore index d6b70e8a..f73c576e 100644 --- a/.gitignore +++ b/.gitignore @@ -121,6 +121,7 @@ celerybeat.pid .venv env/ venv/ +venv2/ ENV/ env.bak/ venv.bak/ diff --git a/safesite/migrations/0392_auto_20211226_2132.py b/safesite/migrations/0392_auto_20211226_2132.py new file mode 100644 index 00000000..ea8f3f6c --- /dev/null +++ b/safesite/migrations/0392_auto_20211226_2132.py @@ -0,0 +1,54 @@ +# Generated by Django 2.2.8 on 2021-12-26 21:32 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('safesite', '0391_auto_20211219_1812'), + ] + + operations = [ + migrations.RemoveField( + model_name='checklistitem', + name='checklist', + ), + migrations.AddField( + model_name='risk', + name='content', + field=models.TextField(blank=True, null=True), + ), + migrations.AddField( + model_name='riskact', + name='table_type', + field=models.IntegerField(default=1, help_text='默认风险点,2是普通检查表', verbose_name='表格类型'), + ), + migrations.AddField( + model_name='trouble', + name='riskcheck2', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='trouble_riskcheck2', to='safesite.Riskcheck2', verbose_name='关联检查'), + ), + migrations.AlterField( + model_name='gridtaskset', + name='gridlevel', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='safesite.Dickey', verbose_name='网格化层级'), + ), + migrations.AlterField( + model_name='riskcheck', + name='trouble', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='riskcheck_trouble', to='safesite.Trouble'), + ), + migrations.AlterField( + model_name='riskcheck2', + name='trouble', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='riskcheck2_trouble', to='safesite.Trouble'), + ), + migrations.DeleteModel( + name='CheckList', + ), + migrations.DeleteModel( + name='CheckListItem', + ), + ] diff --git a/safesite/migrations/0393_auto_20211227_0001.py b/safesite/migrations/0393_auto_20211227_0001.py new file mode 100644 index 00000000..361bc722 --- /dev/null +++ b/safesite/migrations/0393_auto_20211227_0001.py @@ -0,0 +1,33 @@ +# Generated by Django 2.2.8 on 2021-12-27 00:01 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('safesite', '0392_auto_20211226_2132'), + ] + + operations = [ + migrations.AlterField( + model_name='risk', + name='riskc', + field=models.DecimalField(blank=True, decimal_places=1, max_digits=6, null=True), + ), + migrations.AlterField( + model_name='risk', + name='riskd', + field=models.DecimalField(blank=True, decimal_places=1, max_digits=6, null=True), + ), + migrations.AlterField( + model_name='risk', + name='riske', + field=models.DecimalField(blank=True, decimal_places=1, max_digits=6, null=True), + ), + migrations.AlterField( + model_name='risk', + name='riskl', + field=models.DecimalField(blank=True, decimal_places=1, max_digits=6, null=True), + ), + ] diff --git a/safesite/models.py b/safesite/models.py index fe1b080f..d7828abe 100644 --- a/safesite/models.py +++ b/safesite/models.py @@ -258,6 +258,9 @@ class Trouble(models.Model): # 隐患排查 submituser = models.ForeignKey(User, related_name='submituser', on_delete=models.CASCADE, null=True, blank=True) # 记录人 + riskcheck2 = models.ForeignKey('safesite.riskcheck2', + verbose_name='关联检查', null=True, blank=True, related_name='trouble_riskcheck2', on_delete=models.SET_NULL) + class TroubleAccess(models.Model): # 隐患流程表 troubleid = models.ForeignKey(Trouble, on_delete=models.CASCADE) @@ -918,7 +921,11 @@ class Relation(models.Model): # 各模块关系表,没用到 remark = models.CharField(max_length=200, null=True, blank=True) -class RiskAct(models.Model): # 风险点表 +class RiskAct(models.Model): + """ + 风险点表/检查表 + """ + table_type = models.IntegerField(default=1, verbose_name='表格类型', help_text='默认风险点,2是普通检查表') kind_choices = ( (1, '工厂'), (2, '矿山'), @@ -1050,6 +1057,7 @@ class Risk(models.Model): # 风险表 ) id = models.AutoField(primary_key=True) order = models.IntegerField(default=1) + content = models.TextField(null=True, blank=True) step = models.TextField(null=True, blank=True) hazard = models.TextField(null=True, blank=True) result = models.TextField(null=True, blank=True) @@ -1068,10 +1076,10 @@ class Risk(models.Model): # 风险表 createtime = models.DateTimeField(default=timezone.now) createuser = models.ForeignKey( User, related_name='riskcjr', on_delete=models.CASCADE, null=True, blank=True) - riskl = models.DecimalField(max_digits=6, decimal_places=1) - riske = models.DecimalField(max_digits=6, decimal_places=1) - riskc = models.DecimalField(max_digits=6, decimal_places=1) - riskd = models.DecimalField(max_digits=6, decimal_places=1) + riskl = models.DecimalField(max_digits=6, decimal_places=1, null=True, blank=True) + riske = models.DecimalField(max_digits=6, decimal_places=1, null=True, blank=True) + riskc = models.DecimalField(max_digits=6, decimal_places=1, null=True, blank=True) + riskd = models.DecimalField(max_digits=6, decimal_places=1, null=True, blank=True) level = models.CharField(max_length=50, null=True, blank=True) usecomp = models.ForeignKey( Partment, related_name='riskusecomp', on_delete=models.CASCADE, null=True, blank=True) @@ -1113,11 +1121,11 @@ class EdulessonWatch(models.Model): # 在线视频观看情况表 class GridTaskSet(models.Model): """ 网格化管理任务制定 - 隐患跟踪任务/风险点排查任务 + 隐患跟踪任务/风险点排查任务/检查表任务 """ riskact = models.ForeignKey(RiskAct, on_delete=models.CASCADE, related_name='gridtaskset_riskact', null=True, blank=True) trouble = models.ForeignKey(Trouble, on_delete=models.CASCADE, related_name='gridtaskset_trouble', null=True, blank=True) - gridlevel = models.ForeignKey(Dickey, on_delete=models.CASCADE, verbose_name='网格化层级') + gridlevel = models.ForeignKey(Dickey, on_delete=models.CASCADE, verbose_name='网格化层级', null=True, blank=True) user = models.ForeignKey(User,on_delete=models.CASCADE,verbose_name='执行人') note = models.TextField('备注', null=True) myschedule = models.ForeignKey(MySchedule,on_delete=models.SET_NULL, null=True, blank=True) @@ -1183,7 +1191,7 @@ class Riskcheck2(models.Model): # 风险排查记录2 Risk, on_delete=models.CASCADE, null=True, blank=True) dotime = models.DateTimeField(null=True, blank=True) trouble = models.ForeignKey( - Trouble, on_delete=models.CASCADE, null=True, blank=True) + Trouble, on_delete=models.CASCADE, null=True, blank=True, related_name='riskcheck2_trouble') note = models.TextField(null=True, blank=True) @@ -1197,7 +1205,7 @@ class Riskcheck(models.Model): # 风险排查记录 Risktask, on_delete=models.CASCADE, null=True, blank=True) dotime = models.DateTimeField(null=True, blank=True) trouble = models.ForeignKey( - Trouble, on_delete=models.CASCADE, null=True, blank=True) + Trouble, on_delete=models.CASCADE, null=True, blank=True, related_name='riskcheck_trouble') note = models.TextField(null=True, blank=True) @@ -1450,24 +1458,4 @@ class SafeFeedBack(models.Model): isdone = models.IntegerField(default=1) # 默认是完成,0是未完成 content = models.TextField('反馈内容') createtime = models.DateTimeField(default=timezone.now, verbose_name="创建时间") - updatetime = models.DateTimeField(auto_now=True) - -class CheckList(models.Model): - """ - 检查表 - """ - name = models.CharField('清单名称', max_length=200) - usecomp = models.ForeignKey(Partment, on_delete=models.CASCADE, verbose_name="所属公司") - qrcode = models.CharField(max_length=200, blank=True, null=True) # 检查表二维码 - createtime = models.DateTimeField(default=timezone.now, verbose_name="创建时间") - updatetime = models.DateTimeField(auto_now=True) - createby = models.ForeignKey(User, on_delete=models.CASCADE, related_name='checklist_createby') - updateby = models.ForeignKey(User, on_delete=models.CASCADE, related_name='checklist_updateby') - deletemark = models.IntegerField(default=1) - -class CheckListItem(models.Model): - """ - 检查表条目 - """ - content = models.TextField('检查项目') - checklist = models.ForeignKey(CheckList, on_delete=models.CASCADE, verbose_name='关联检查表') \ No newline at end of file + updatetime = models.DateTimeField(auto_now=True) \ No newline at end of file diff --git a/safesite/templates/checklist_new.html b/safesite/templates/checklist_new.html new file mode 100644 index 00000000..8566d52d --- /dev/null +++ b/safesite/templates/checklist_new.html @@ -0,0 +1,419 @@ +
+
+
+
+ {% load myfilter %} + + 新增 + + 编辑 + + 删除 +
+
+
+
+
+
+
+
+ + 新增 + + 编辑 + + 删除 + +
+
+
+
+
+ + 新增 + + + 编辑 + + + 暂停/启用派发 + + + 删除 + + +
+
+
+ +
+
+ +
+
+ +
+ +
+
+
检查表二维码
+ +
+
+ 保存 +
+
+
+
+
+ + +
+ +
+
+ 保存 +
+
+
+ + \ No newline at end of file diff --git a/safesite/templates/gridtasksetadd.html b/safesite/templates/gridtasksetadd.html index c5aea91b..36d10635 100644 --- a/safesite/templates/gridtasksetadd.html +++ b/safesite/templates/gridtasksetadd.html @@ -7,7 +7,7 @@
-
+
-
+
= 320: - obj.level = '重大风险' - elif 320 > riskd >= 160: - obj.level = '较大风险' - elif 160 > riskd >= 70: - obj.level = '一般风险' - else: - obj.level = '低风险' + obj.riskl = data.get('riskl', None) + obj.riske = data.get('riskl', None) + obj.riskc = data.get('riskl', None) + obj.content = data.get('content', None) + if obj.riskl and obj.riske and obj.riskc: + riskd = float(data['riskl'])*float(data['riske'])*float(data['riskc']) + obj.riskd = riskd + if riskd >= 320: + obj.level = '重大风险' + elif 320 > riskd >= 160: + obj.level = '较大风险' + elif 160 > riskd >= 70: + obj.level = '一般风险' + else: + obj.level = '低风险' obj.usecomp = Partment.objects.get(partid=companyid) obj.save() try: @@ -7993,61 +8026,29 @@ def apirisk(req): elif a == 'update': data = json.loads(req.body.decode('utf-8')) obj = Risk.objects.get(id=data['id']) - obj.step = data['step'] - obj.hazard = data['hazard'] - obj.result = data['result'] - obj.measure1 = data['measure1'] if data['measure1'] else None - obj.measure2 = data['measure2'] if data['measure2'] else None - obj.measure3 = data['measure3'] if data['measure3'] else None - obj.measure4 = data['measure4'] if data['measure4'] else None - obj.measure5 = data['measure5'] if data['measure5'] else None - obj.createuser = User.objects.get(userid=userid) - obj.riskl = data['riskl'] - obj.riske = data['riske'] - obj.riskc = data['riskc'] - riskd = float(data['riskl'])*float(data['riske'])*float(data['riskc']) - obj.riskd = riskd - if riskd >= 320: - obj.level = '重大风险' - elif 320 > riskd >= 160: - obj.level = '较大风险' - elif 160 > riskd >= 70: - obj.level = '一般风险' - else: - obj.level = '低风险' - obj.usecomp = Partment.objects.get(partid=companyid) - obj.save() - try: - cal_riskact_level(obj.riskact) - except: - pass - return JsonResponse({"code": 1}) - elif a == 'update': - data = json.loads(req.body.decode('utf-8')) - obj = Risk.objects.get(id=data['id']) - obj.step = data['step'] - obj.hazard = data['hazard'] - obj.result = data['result'] - obj.measure1 = data['measure1'] if data['measure1'] else None - obj.measure2 = data['measure2'] if data['measure2'] else None - obj.measure3 = data['measure3'] if data['measure3'] else None - obj.measure4 = data['measure4'] if data['measure4'] else None - obj.measure5 = data['measure5'] if data['measure5'] else None - obj.createuser = User.objects.get(userid=userid) - obj.riskl = data['riskl'] - obj.riske = data['riske'] - obj.riskc = data['riskc'] - riskd = float(data['riskl'])*float(data['riske'])*float(data['riskc']) - obj.riskd = riskd - if riskd >= 320: - obj.level = '重大风险' - elif 320 > riskd >= 160: - obj.level = '较大风险' - elif 160 > riskd >= 70: - obj.level = '一般风险' - else: - obj.level = '低风险' - obj.usecomp = Partment.objects.get(partid=companyid) + obj.step = data.get('step', None) + obj.hazard = data.get('hazard', None) + obj.result = data.get('result', None) + obj.measure1 = data.get('measure1', None) + obj.measure2 = data.get('measure2', None) + obj.measure3 = data.get('measure3', None) + obj.measure4 = data.get('measure4', None) + obj.measure5 = data.get('measure5', None) + obj.riskl = data.get('riskl', None) + obj.riske = data.get('riskl', None) + obj.riskc = data.get('riskl', None) + obj.content = data.get('content', None) + if obj.riskl and obj.riske and obj.riskc: + riskd = float(data['riskl'])*float(data['riske'])*float(data['riskc']) + obj.riskd = riskd + if riskd >= 320: + obj.level = '重大风险' + elif 320 > riskd >= 160: + obj.level = '较大风险' + elif 160 > riskd >= 70: + obj.level = '一般风险' + else: + obj.level = '低风险' obj.save() try: cal_riskact_level(obj.riskact)