From b2d079ca7e713b83f0d285a788c9a3abb55b3113 Mon Sep 17 00:00:00 2001
From: "2309368887@qq.com" <2309368887@qq.com>
Date: Mon, 16 May 2022 13:37:07 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E7=8E=AF=E5=A2=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
enp/migrations/0011_facilities.py | 54 +++
...etection_fuel_prevention_waterequipment.py | 158 ++++++
.../0013_prevention_preventiontype.py | 18 +
enp/migrations/0014_auto_20220512_1557.py | 18 +
enp/migrations/0015_auto_20220513_0922.py | 308 ++++++++++++
enp/migrations/0016_auto_20220513_1157.py | 28 ++
enp/migrations/0017_auto_20220516_0858.py | 28 ++
enp/models.py | 127 ++++-
enp/templates/abnormal.html | 146 ++++++
enp/templates/detection.html | 151 ++++++
enp/templates/facilities.html | 192 ++++++++
enp/templates/fuel.html | 164 +++++++
enp/templates/gprevention.html | 193 ++++++++
enp/templates/waterequipment.html | 146 ++++++
enp/templates/wprevention.html | 185 +++++++
enp/urls.py | 9 +
enp/urls_api.py | 13 +-
enp/views.py | 458 +++++++++++++++++-
safesite/forms.py | 7 +
.../migrations/0396_auto_20220304_1648.py | 68 +++
safesite/models.py | 7 +
safesite/views.py | 7 +
22 files changed, 2482 insertions(+), 3 deletions(-)
create mode 100644 enp/migrations/0011_facilities.py
create mode 100644 enp/migrations/0012_abnormal_detection_fuel_prevention_waterequipment.py
create mode 100644 enp/migrations/0013_prevention_preventiontype.py
create mode 100644 enp/migrations/0014_auto_20220512_1557.py
create mode 100644 enp/migrations/0015_auto_20220513_0922.py
create mode 100644 enp/migrations/0016_auto_20220513_1157.py
create mode 100644 enp/migrations/0017_auto_20220516_0858.py
create mode 100644 enp/templates/abnormal.html
create mode 100644 enp/templates/detection.html
create mode 100644 enp/templates/facilities.html
create mode 100644 enp/templates/fuel.html
create mode 100644 enp/templates/gprevention.html
create mode 100644 enp/templates/waterequipment.html
create mode 100644 enp/templates/wprevention.html
create mode 100644 safesite/migrations/0396_auto_20220304_1648.py
diff --git a/enp/migrations/0011_facilities.py b/enp/migrations/0011_facilities.py
new file mode 100644
index 00000000..b45966d3
--- /dev/null
+++ b/enp/migrations/0011_facilities.py
@@ -0,0 +1,54 @@
+# Generated by Django 2.2.8 on 2022-03-07 10:52
+
+from django.db import migrations, models
+import django.db.models.deletion
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('safesite', '0396_auto_20220304_1648'),
+ ('enp', '0010_gasemit'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Facilities',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
+ ('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
+ ('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
+ ('name', models.CharField(max_length=100, verbose_name='生产设施设备名称')),
+ ('number', models.CharField(max_length=100, verbose_name='编码')),
+ ('type', models.CharField(max_length=100, verbose_name='生产设施型号')),
+ ('cs_name', models.CharField(max_length=100, verbose_name='设备参数名')),
+ ('desig_nnumber', models.FloatField(max_length=100, verbose_name='设备设计值')),
+ ('actual_number', models.FloatField(blank=True, max_length=100, null=True, verbose_name='设备实际值')),
+ ('em_unit', models.CharField(max_length=50, verbose_name='设备单位')),
+ ('ability', models.CharField(max_length=200, verbose_name='生产能力')),
+ ('al_unit', models.CharField(max_length=50, verbose_name='生产能力单位')),
+ ('start_time', models.DateTimeField(verbose_name='运行开始时间')),
+ ('end_time', models.DateTimeField(verbose_name='运行结束时间')),
+ ('pdc_Load', models.CharField(max_length=200, verbose_name='生产负荷')),
+ ('zj_product', models.CharField(blank=True, max_length=200, null=True, verbose_name='中间产品')),
+ ('zj_unit', models.CharField(blank=True, max_length=50, null=True, verbose_name='中间产品单位')),
+ ('zz_product', models.CharField(max_length=200, verbose_name='最终产品')),
+ ('zz_unit', models.CharField(max_length=50, verbose_name='最终产品单位')),
+ ('material_name', models.CharField(max_length=200, verbose_name='原辅料名称')),
+ ('material_type', models.CharField(max_length=200, verbose_name='原辅料种类')),
+ ('material_unit', models.CharField(max_length=50, verbose_name='原辅料单位')),
+ ('material_count', models.CharField(max_length=200, verbose_name='原辅料用量')),
+ ('material_composition', models.CharField(max_length=50, verbose_name='有害有毒元素成分')),
+ ('material_account', models.CharField(max_length=200, verbose_name='有害有毒元素占比')),
+ ('material_address', models.CharField(max_length=50, verbose_name='原料来源地')),
+ ('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='facilities_create_by', to='safesite.User', verbose_name='创建人')),
+ ('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='facilities_update_by', to='safesite.User', verbose_name='最后编辑人')),
+ ('usecomp', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='safesite.Partment', verbose_name='所属公司')),
+ ],
+ options={
+ 'abstract': False,
+ },
+ ),
+ ]
diff --git a/enp/migrations/0012_abnormal_detection_fuel_prevention_waterequipment.py b/enp/migrations/0012_abnormal_detection_fuel_prevention_waterequipment.py
new file mode 100644
index 00000000..590225f0
--- /dev/null
+++ b/enp/migrations/0012_abnormal_detection_fuel_prevention_waterequipment.py
@@ -0,0 +1,158 @@
+# Generated by Django 2.2.8 on 2022-05-12 10:24
+
+from django.db import migrations, models
+import django.db.models.deletion
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('safesite', '0396_auto_20220304_1648'),
+ ('enp', '0011_facilities'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Waterequipment',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
+ ('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
+ ('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
+ ('number', models.CharField(max_length=100, verbose_name='排放口编号')),
+ ('type', models.CharField(max_length=100, verbose_name='污染物种类')),
+ ('methods', models.CharField(max_length=300, verbose_name='监测采样方法及个数')),
+ ('count', models.IntegerField(max_length=100, verbose_name='监测次数')),
+ ('identification', models.CharField(max_length=200, verbose_name='鉴定方法')),
+ ('jcyqmodel', models.CharField(max_length=100, verbose_name='监测仪器型号')),
+ ('note', models.CharField(max_length=500, verbose_name='备注')),
+ ('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='waterequipment_create_by', to='safesite.User', verbose_name='创建人')),
+ ('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='waterequipment_update_by', to='safesite.User', verbose_name='最后编辑人')),
+ ('usecomp', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='safesite.Partment', verbose_name='所属公司')),
+ ],
+ options={
+ 'abstract': False,
+ },
+ ),
+ migrations.CreateModel(
+ name='Prevention',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
+ ('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
+ ('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
+ ('name', models.CharField(max_length=100, verbose_name='防治设施名称')),
+ ('number', models.CharField(max_length=100, verbose_name='编码')),
+ ('type', models.CharField(max_length=100, verbose_name='防治设施型号')),
+ ('cs_name', models.CharField(max_length=100, verbose_name='参数名')),
+ ('desig_nnumber', models.FloatField(max_length=100, verbose_name='设计值')),
+ ('em_unit', models.CharField(max_length=50, verbose_name='单位')),
+ ('start_time', models.DateTimeField(verbose_name='运行开始时间')),
+ ('end_time', models.DateTimeField(verbose_name='运行结束时间')),
+ ('state', models.CharField(max_length=100, verbose_name='运行状态')),
+ ('pfyql', models.FloatField(max_length=200, verbose_name='排放烟气量(m3/h)')),
+ ('wryz', models.CharField(max_length=100, verbose_name='污染因子')),
+ ('zlxl', models.FloatField(max_length=200, verbose_name='治理效率')),
+ ('sjly', models.CharField(max_length=100, verbose_name='数据来源')),
+ ('pqtgd', models.FloatField(max_length=200, verbose_name='排气筒高度m')),
+ ('pkwd', models.FloatField(max_length=200, verbose_name='排口温度℃')),
+ ('yl', models.FloatField(max_length=100, verbose_name='压力kPa')),
+ ('pfsj', models.FloatField(max_length=100, verbose_name='排放时间h')),
+ ('hdl', models.FloatField(max_length=100, verbose_name='耗电率kWh')),
+ ('fcpname', models.CharField(max_length=100, verbose_name='副产品名称')),
+ ('fcwcl', models.FloatField(max_length=100, verbose_name='副产物产生量t')),
+ ('yjname', models.CharField(max_length=100, verbose_name='药剂名称')),
+ ('tjtime', models.DateTimeField(verbose_name='添加时间')),
+ ('tjl', models.FloatField(max_length=100, verbose_name='添加量')),
+ ('ckll', models.FloatField(max_length=100, verbose_name='出口流量')),
+ ('pqfx', models.CharField(max_length=50, verbose_name='排放去向')),
+ ('wncsl', models.CharField(max_length=50, verbose_name='污泥产生量')),
+ ('clfs', models.CharField(max_length=100, verbose_name='处理方式')),
+ ('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='prevention_create_by', to='safesite.User', verbose_name='创建人')),
+ ('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='prevention_update_by', to='safesite.User', verbose_name='最后编辑人')),
+ ('usecomp', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='safesite.Partment', verbose_name='所属公司')),
+ ],
+ options={
+ 'abstract': False,
+ },
+ ),
+ migrations.CreateModel(
+ name='Fuel',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
+ ('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
+ ('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
+ ('name', models.CharField(max_length=100, verbose_name='燃料名称')),
+ ('count', models.CharField(max_length=100, verbose_name='用量')),
+ ('dwcount', models.CharField(max_length=100, verbose_name='低位热值')),
+ ('unit', models.FloatField(max_length=200, verbose_name='单位')),
+ ('rmhll', models.FloatField(max_length=200, verbose_name='燃煤含硫量(%)')),
+ ('rmhff', models.FloatField(max_length=200, verbose_name='燃煤挥发分(%)')),
+ ('rmqt', models.CharField(max_length=100, verbose_name='燃煤其他')),
+ ('ryhll', models.FloatField(max_length=200, verbose_name='燃油含硫量(%)')),
+ ('ryqt', models.CharField(max_length=100, verbose_name='燃油其他')),
+ ('rqlhqhl', models.FloatField(max_length=200, verbose_name='燃气硫化氢含量(%)')),
+ ('rqqt', models.CharField(max_length=100, verbose_name='燃气其他')),
+ ('qtrlxgwzhl', models.CharField(max_length=400, verbose_name='其他燃料相关物质含量')),
+ ('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='fuel_create_by', to='safesite.User', verbose_name='创建人')),
+ ('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='fuel_update_by', to='safesite.User', verbose_name='最后编辑人')),
+ ('usecomp', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='safesite.Partment', verbose_name='所属公司')),
+ ],
+ options={
+ 'abstract': False,
+ },
+ ),
+ migrations.CreateModel(
+ name='Detection',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
+ ('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
+ ('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
+ ('number', models.CharField(max_length=100, verbose_name='排放口编号')),
+ ('jcDate', models.DateTimeField(verbose_name='监测日期')),
+ ('jctime', models.DateTimeField(verbose_name='监测时间')),
+ ('ckhxxyl', models.FloatField(max_length=200, verbose_name='出口化学需氧量(mg/L)')),
+ ('ckshxll', models.FloatField(max_length=200, verbose_name='出口生化需氧量(mg/L)')),
+ ('ckad', models.FloatField(max_length=200, verbose_name='出口氨氮(mg/L)')),
+ ('ckxfw', models.FloatField(max_length=200, verbose_name='出口悬浮物(mg/L)')),
+ ('jkhxxyl', models.FloatField(max_length=200, verbose_name='进口化学需氧量(mg/L)')),
+ ('jkshxll', models.FloatField(max_length=200, verbose_name='进口生化需氧量(mg/L)')),
+ ('jkad', models.FloatField(max_length=200, verbose_name='进口氨氮(mg/L)')),
+ ('jkxfw', models.FloatField(max_length=200, verbose_name='进口悬浮物(mg/L)')),
+ ('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='detection_create_by', to='safesite.User', verbose_name='创建人')),
+ ('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='detection_update_by', to='safesite.User', verbose_name='最后编辑人')),
+ ('usecomp', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='safesite.Partment', verbose_name='所属公司')),
+ ],
+ options={
+ 'abstract': False,
+ },
+ ),
+ migrations.CreateModel(
+ name='abnormal',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
+ ('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
+ ('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
+ ('name', models.CharField(max_length=100, verbose_name='防治设施名称')),
+ ('number', models.CharField(max_length=100, verbose_name='编码')),
+ ('start_time', models.DateTimeField(verbose_name='异常情况起始时刻')),
+ ('end_time', models.DateTimeField(verbose_name='异常情况终止时刻')),
+ ('type', models.CharField(max_length=100, verbose_name='污染物种类')),
+ ('pfnd', models.CharField(max_length=100, verbose_name='排放浓度')),
+ ('pffx', models.FloatField(max_length=200, verbose_name='排放方向')),
+ ('sjyy', models.CharField(max_length=100, verbose_name='事件原因')),
+ ('sfbg', models.FloatField(max_length=200, verbose_name='是否报告')),
+ ('ydcs', models.FloatField(max_length=200, verbose_name='应对措施')),
+ ('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='abnormal_create_by', to='safesite.User', verbose_name='创建人')),
+ ('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='abnormal_update_by', to='safesite.User', verbose_name='最后编辑人')),
+ ('usecomp', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='safesite.Partment', verbose_name='所属公司')),
+ ],
+ options={
+ 'abstract': False,
+ },
+ ),
+ ]
diff --git a/enp/migrations/0013_prevention_preventiontype.py b/enp/migrations/0013_prevention_preventiontype.py
new file mode 100644
index 00000000..1dd811e9
--- /dev/null
+++ b/enp/migrations/0013_prevention_preventiontype.py
@@ -0,0 +1,18 @@
+# Generated by Django 2.2.8 on 2022-05-12 14:12
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('enp', '0012_abnormal_detection_fuel_prevention_waterequipment'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='prevention',
+ name='preventiontype',
+ field=models.IntegerField(choices=[(1, '废水'), (2, '废气')], default=1, verbose_name='防治类型'),
+ ),
+ ]
diff --git a/enp/migrations/0014_auto_20220512_1557.py b/enp/migrations/0014_auto_20220512_1557.py
new file mode 100644
index 00000000..52bb7f78
--- /dev/null
+++ b/enp/migrations/0014_auto_20220512_1557.py
@@ -0,0 +1,18 @@
+# Generated by Django 2.2.8 on 2022-05-12 15:57
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('enp', '0013_prevention_preventiontype'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='prevention',
+ name='zlxl',
+ field=models.CharField(max_length=200, verbose_name='治理效率'),
+ ),
+ ]
diff --git a/enp/migrations/0015_auto_20220513_0922.py b/enp/migrations/0015_auto_20220513_0922.py
new file mode 100644
index 00000000..ba4441b4
--- /dev/null
+++ b/enp/migrations/0015_auto_20220513_0922.py
@@ -0,0 +1,308 @@
+# Generated by Django 2.2.8 on 2022-05-13 09:22
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('enp', '0014_auto_20220512_1557'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='abnormal',
+ name='end_time',
+ field=models.DateTimeField(blank=True, null=True, verbose_name='异常情况终止时刻'),
+ ),
+ migrations.AlterField(
+ model_name='abnormal',
+ name='pffx',
+ field=models.FloatField(blank=True, max_length=200, null=True, verbose_name='排放方向'),
+ ),
+ migrations.AlterField(
+ model_name='abnormal',
+ name='pfnd',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='排放浓度'),
+ ),
+ migrations.AlterField(
+ model_name='abnormal',
+ name='sfbg',
+ field=models.FloatField(blank=True, max_length=200, null=True, verbose_name='是否报告'),
+ ),
+ migrations.AlterField(
+ model_name='abnormal',
+ name='sjyy',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='事件原因'),
+ ),
+ migrations.AlterField(
+ model_name='abnormal',
+ name='start_time',
+ field=models.DateTimeField(blank=True, null=True, verbose_name='异常情况起始时刻'),
+ ),
+ migrations.AlterField(
+ model_name='abnormal',
+ name='type',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='污染物种类'),
+ ),
+ migrations.AlterField(
+ model_name='abnormal',
+ name='ydcs',
+ field=models.FloatField(blank=True, max_length=200, null=True, verbose_name='应对措施'),
+ ),
+ migrations.AlterField(
+ model_name='detection',
+ name='ckad',
+ field=models.FloatField(blank=True, max_length=200, null=True, verbose_name='出口氨氮(mg/L)'),
+ ),
+ migrations.AlterField(
+ model_name='detection',
+ name='ckhxxyl',
+ field=models.FloatField(blank=True, max_length=200, null=True, verbose_name='出口化学需氧量(mg/L)'),
+ ),
+ migrations.AlterField(
+ model_name='detection',
+ name='ckshxll',
+ field=models.FloatField(blank=True, max_length=200, null=True, verbose_name='出口生化需氧量(mg/L)'),
+ ),
+ migrations.AlterField(
+ model_name='detection',
+ name='ckxfw',
+ field=models.FloatField(blank=True, max_length=200, null=True, verbose_name='出口悬浮物(mg/L)'),
+ ),
+ migrations.AlterField(
+ model_name='detection',
+ name='jcDate',
+ field=models.DateTimeField(blank=True, null=True, verbose_name='监测日期'),
+ ),
+ migrations.AlterField(
+ model_name='detection',
+ name='jctime',
+ field=models.DateTimeField(blank=True, null=True, verbose_name='监测时间'),
+ ),
+ migrations.AlterField(
+ model_name='detection',
+ name='jkad',
+ field=models.FloatField(blank=True, max_length=200, null=True, verbose_name='进口氨氮(mg/L)'),
+ ),
+ migrations.AlterField(
+ model_name='detection',
+ name='jkhxxyl',
+ field=models.FloatField(blank=True, max_length=200, null=True, verbose_name='进口化学需氧量(mg/L)'),
+ ),
+ migrations.AlterField(
+ model_name='detection',
+ name='jkshxll',
+ field=models.FloatField(blank=True, max_length=200, null=True, verbose_name='进口生化需氧量(mg/L)'),
+ ),
+ migrations.AlterField(
+ model_name='detection',
+ name='jkxfw',
+ field=models.FloatField(blank=True, max_length=200, null=True, verbose_name='进口悬浮物(mg/L)'),
+ ),
+ migrations.AlterField(
+ model_name='fuel',
+ name='count',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='用量'),
+ ),
+ migrations.AlterField(
+ model_name='fuel',
+ name='dwcount',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='低位热值'),
+ ),
+ migrations.AlterField(
+ model_name='fuel',
+ name='qtrlxgwzhl',
+ field=models.CharField(blank=True, max_length=400, null=True, verbose_name='其他燃料相关物质含量'),
+ ),
+ migrations.AlterField(
+ model_name='fuel',
+ name='rmhff',
+ field=models.FloatField(blank=True, max_length=200, null=True, verbose_name='燃煤挥发分(%)'),
+ ),
+ migrations.AlterField(
+ model_name='fuel',
+ name='rmhll',
+ field=models.FloatField(blank=True, max_length=200, null=True, verbose_name='燃煤含硫量(%)'),
+ ),
+ migrations.AlterField(
+ model_name='fuel',
+ name='rmqt',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='燃煤其他'),
+ ),
+ migrations.AlterField(
+ model_name='fuel',
+ name='rqlhqhl',
+ field=models.FloatField(blank=True, max_length=200, null=True, verbose_name='燃气硫化氢含量(%)'),
+ ),
+ migrations.AlterField(
+ model_name='fuel',
+ name='rqqt',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='燃气其他'),
+ ),
+ migrations.AlterField(
+ model_name='fuel',
+ name='ryhll',
+ field=models.FloatField(blank=True, max_length=200, null=True, verbose_name='燃油含硫量(%)'),
+ ),
+ migrations.AlterField(
+ model_name='fuel',
+ name='ryqt',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='燃油其他'),
+ ),
+ migrations.AlterField(
+ model_name='fuel',
+ name='unit',
+ field=models.FloatField(blank=True, max_length=200, null=True, verbose_name='单位'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='ckll',
+ field=models.FloatField(blank=True, max_length=100, null=True, verbose_name='出口流量'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='clfs',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='处理方式'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='cs_name',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='参数名'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='desig_nnumber',
+ field=models.FloatField(blank=True, max_length=100, null=True, verbose_name='设计值'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='em_unit',
+ field=models.CharField(blank=True, max_length=50, null=True, verbose_name='单位'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='end_time',
+ field=models.DateTimeField(blank=True, null=True, verbose_name='运行结束时间'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='fcpname',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='副产品名称'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='fcwcl',
+ field=models.FloatField(blank=True, max_length=100, null=True, verbose_name='副产物产生量t'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='pfsj',
+ field=models.FloatField(blank=True, max_length=100, null=True, verbose_name='排放时间h'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='pfyql',
+ field=models.FloatField(blank=True, max_length=200, null=True, verbose_name='排放烟气量(m3/h)'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='pkwd',
+ field=models.FloatField(blank=True, max_length=200, null=True, verbose_name='排口温度℃'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='pqfx',
+ field=models.CharField(blank=True, max_length=50, null=True, verbose_name='排放去向'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='pqtgd',
+ field=models.FloatField(blank=True, max_length=200, null=True, verbose_name='排气筒高度m'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='preventiontype',
+ field=models.IntegerField(blank=True, choices=[(1, '废水'), (2, '废气')], default=1, null=True, verbose_name='防治类型'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='sjly',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='数据来源'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='start_time',
+ field=models.DateTimeField(blank=True, null=True, verbose_name='运行开始时间'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='state',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='运行状态'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='tjl',
+ field=models.FloatField(blank=True, max_length=100, null=True, verbose_name='添加量'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='tjtime',
+ field=models.DateTimeField(blank=True, null=True, verbose_name='添加时间'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='wncsl',
+ field=models.CharField(blank=True, max_length=50, null=True, verbose_name='污泥产生量'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='wryz',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='污染因子'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='yjname',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='药剂名称'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='yl',
+ field=models.FloatField(blank=True, max_length=100, null=True, verbose_name='压力kPa'),
+ ),
+ migrations.AlterField(
+ model_name='prevention',
+ name='zlxl',
+ field=models.CharField(blank=True, max_length=200, null=True, verbose_name='治理效率'),
+ ),
+ migrations.AlterField(
+ model_name='waterequipment',
+ name='count',
+ field=models.IntegerField(blank=True, max_length=100, null=True, verbose_name='监测次数'),
+ ),
+ migrations.AlterField(
+ model_name='waterequipment',
+ name='identification',
+ field=models.CharField(blank=True, max_length=200, null=True, verbose_name='鉴定方法'),
+ ),
+ migrations.AlterField(
+ model_name='waterequipment',
+ name='jcyqmodel',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='监测仪器型号'),
+ ),
+ migrations.AlterField(
+ model_name='waterequipment',
+ name='methods',
+ field=models.CharField(blank=True, max_length=300, null=True, verbose_name='监测采样方法及个数'),
+ ),
+ migrations.AlterField(
+ model_name='waterequipment',
+ name='note',
+ field=models.CharField(blank=True, max_length=500, null=True, verbose_name='备注'),
+ ),
+ migrations.AlterField(
+ model_name='waterequipment',
+ name='type',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='污染物种类'),
+ ),
+ ]
diff --git a/enp/migrations/0016_auto_20220513_1157.py b/enp/migrations/0016_auto_20220513_1157.py
new file mode 100644
index 00000000..4ea31980
--- /dev/null
+++ b/enp/migrations/0016_auto_20220513_1157.py
@@ -0,0 +1,28 @@
+# Generated by Django 2.2.8 on 2022-05-13 11:57
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('enp', '0015_auto_20220513_0922'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='abnormal',
+ name='pffx',
+ field=models.CharField(blank=True, max_length=200, null=True, verbose_name='排放方向'),
+ ),
+ migrations.AlterField(
+ model_name='abnormal',
+ name='sfbg',
+ field=models.CharField(blank=True, max_length=200, null=True, verbose_name='是否报告'),
+ ),
+ migrations.AlterField(
+ model_name='abnormal',
+ name='ydcs',
+ field=models.CharField(blank=True, max_length=200, null=True, verbose_name='应对措施'),
+ ),
+ ]
diff --git a/enp/migrations/0017_auto_20220516_0858.py b/enp/migrations/0017_auto_20220516_0858.py
new file mode 100644
index 00000000..89993fa8
--- /dev/null
+++ b/enp/migrations/0017_auto_20220516_0858.py
@@ -0,0 +1,28 @@
+# Generated by Django 2.2.8 on 2022-05-16 08:58
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('enp', '0016_auto_20220513_1157'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='fuel',
+ name='count',
+ field=models.FloatField(blank=True, max_length=100, null=True, verbose_name='用量'),
+ ),
+ migrations.AlterField(
+ model_name='fuel',
+ name='dwcount',
+ field=models.FloatField(blank=True, max_length=100, null=True, verbose_name='低位热值'),
+ ),
+ migrations.AlterField(
+ model_name='fuel',
+ name='unit',
+ field=models.CharField(blank=True, max_length=200, null=True, verbose_name='单位'),
+ ),
+ ]
diff --git a/enp/models.py b/enp/models.py
index 14a490e4..1ee756a3 100644
--- a/enp/models.py
+++ b/enp/models.py
@@ -116,4 +116,129 @@ class GasEmit(CommonModel):
in_particle_s = models.FloatField("颗粒物s")
in_nox = models.FloatField("氮氧化物")
in_nox_s = models.FloatField("氮氧化物s")
- usecomp = models.ForeignKey(Partment, on_delete=models.CASCADE, verbose_name='所属公司')
\ No newline at end of file
+ usecomp = models.ForeignKey(Partment, on_delete=models.CASCADE, verbose_name='所属公司')
+class Facilities(CommonModel):
+ """
+ 生产设施信息表
+ """
+ name = models.CharField('生产设施设备名称', max_length=100)
+ number = models.CharField('编码', max_length=100)
+ type = models.CharField('生产设施型号', max_length=100)
+ cs_name = models.CharField('设备参数名', max_length=100)
+ desig_nnumber = models.FloatField('设备设计值', max_length=100)
+ actual_number = models.FloatField('设备实际值',null=True, blank=True, max_length=100)
+ em_unit = models.CharField('设备单位', max_length=50)
+ ability = models.CharField('生产能力', max_length=200)
+ al_unit = models.CharField('生产能力单位', max_length=50)
+ start_time = models.DateTimeField('运行开始时间')
+ end_time = models.DateTimeField('运行结束时间')
+ pdc_Load = models.CharField('生产负荷', max_length=200)
+ zj_product = models.CharField('中间产品',null=True, blank=True, max_length=200)
+ zj_unit = models.CharField('中间产品单位',null=True, blank=True, max_length=50)
+ zz_product = models.CharField('最终产品', max_length=200)
+ zz_unit = models.CharField('最终产品单位', max_length=50)
+ material_name = models.CharField('原辅料名称', max_length=200)
+ material_type = models.CharField('原辅料种类', max_length=200)
+ material_unit = models.CharField('原辅料单位', max_length=50)
+ material_count = models.CharField('原辅料用量', max_length=200)
+ material_composition = models.CharField('有害有毒元素成分', max_length=50)
+ material_account = models.CharField('有害有毒元素占比', max_length=200)
+ material_address = models.CharField('原料来源地', max_length=50)
+ usecomp = models.ForeignKey(Partment, on_delete=models.CASCADE, verbose_name='所属公司')
+class Prevention(CommonModel):
+ """
+ 废气,废水防治设施
+ """
+ type_choices = (
+ (1, '废水'),
+ (2, '废气')
+ )
+ name = models.CharField('防治设施名称', max_length=100)
+ number = models.CharField('编码', max_length=100)
+ type = models.CharField('防治设施型号', max_length=100)
+ preventiontype = models.IntegerField('防治类型', choices=type_choices, default=1, null=True, blank=True)
+ cs_name = models.CharField('参数名', max_length=100, null=True, blank=True)
+ desig_nnumber = models.FloatField('设计值', max_length=100, null=True, blank=True)
+ em_unit = models.CharField('单位', max_length=50, null=True, blank=True)
+ start_time = models.DateTimeField('运行开始时间', null=True, blank=True)
+ end_time = models.DateTimeField('运行结束时间', null=True, blank=True)
+ state = models.CharField('运行状态', max_length=100, null=True, blank=True)
+ pfyql = models.FloatField('排放烟气量(m3/h)', max_length=200, null=True, blank=True)
+ wryz = models.CharField('污染因子', max_length=100, null=True, blank=True)
+ zlxl = models.CharField('治理效率', max_length=200, null=True, blank=True)
+ sjly = models.CharField('数据来源', max_length=100, null=True, blank=True)
+ pqtgd = models.FloatField('排气筒高度m', max_length=200, null=True, blank=True)
+ pkwd = models.FloatField('排口温度℃', max_length=200, null=True, blank=True)
+ yl = models.FloatField('压力kPa', max_length=100, null=True, blank=True)
+ pfsj = models.FloatField('排放时间h', max_length=100, null=True, blank=True)
+ hdl = models.FloatField('耗电率kWh', max_length=100)
+ fcpname = models.CharField('副产品名称', max_length=100, null=True, blank=True)
+ fcwcl = models.FloatField('副产物产生量t', max_length=100, null=True, blank=True)
+ yjname = models.CharField('药剂名称', max_length=100, null=True, blank=True)
+ tjtime = models.DateTimeField('添加时间', null=True, blank=True)
+ tjl = models.FloatField('添加量', max_length=100, null=True, blank=True)
+ ckll = models.FloatField('出口流量', max_length=100, null=True, blank=True)
+ pqfx = models.CharField('排放去向', max_length=50, null=True, blank=True)
+ wncsl = models.CharField('污泥产生量', max_length=50, null=True, blank=True)
+ clfs = models.CharField('处理方式', max_length=100, null=True, blank=True)
+ usecomp = models.ForeignKey(Partment, on_delete=models.CASCADE, verbose_name='所属公司')
+class abnormal(CommonModel):
+ """
+ 防治设施异常情况信息表
+ """
+ name = models.CharField('防治设施名称', max_length=100)
+ number = models.CharField('编码', max_length=100)
+ start_time = models.DateTimeField('异常情况起始时刻', null=True, blank=True)
+ end_time = models.DateTimeField('异常情况终止时刻', null=True, blank=True)
+ type = models.CharField('污染物种类', max_length=100, null=True, blank=True)
+ pfnd = models.CharField('排放浓度', max_length=100, null=True, blank=True)
+ pffx = models.CharField('排放方向', max_length=200, null=True, blank=True)
+ sjyy = models.CharField('事件原因', max_length=100, null=True, blank=True)
+ sfbg = models.CharField('是否报告', max_length=200, null=True, blank=True)
+ ydcs = models.CharField('应对措施', max_length=200, null=True, blank=True)
+ usecomp = models.ForeignKey(Partment, on_delete=models.CASCADE, verbose_name='所属公司')
+class Detection(CommonModel):
+ """
+ 废水污染物检测结果表
+ """
+ number = models.CharField('排放口编号', max_length=100)
+ jcDate = models.DateTimeField('监测日期', null=True, blank=True)
+ jctime = models.DateTimeField('监测时间', null=True, blank=True)
+ ckhxxyl = models.FloatField('出口化学需氧量(mg/L)', max_length=200, null=True, blank=True)
+ ckshxll = models.FloatField('出口生化需氧量(mg/L)', max_length=200, null=True, blank=True)
+ ckad = models.FloatField('出口氨氮(mg/L)', max_length=200, null=True, blank=True)
+ ckxfw = models.FloatField('出口悬浮物(mg/L)', max_length=200, null=True, blank=True)
+ jkhxxyl = models.FloatField('进口化学需氧量(mg/L)', max_length=200, null=True, blank=True)
+ jkshxll = models.FloatField('进口生化需氧量(mg/L)', max_length=200, null=True, blank=True)
+ jkad = models.FloatField('进口氨氮(mg/L)', max_length=200, null=True, blank=True)
+ jkxfw = models.FloatField('进口悬浮物(mg/L)', max_length=200, null=True, blank=True)
+ usecomp = models.ForeignKey(Partment, on_delete=models.CASCADE, verbose_name='所属公司')
+class Fuel(CommonModel):
+ """
+ 燃料信息表
+ """
+ name = models.CharField('燃料名称', max_length=100)
+ count = models.FloatField('用量', max_length=100, null=True, blank=True)
+ dwcount = models.FloatField('低位热值', max_length=100, null=True, blank=True)
+ unit = models.CharField('单位', max_length=200, null=True, blank=True)
+ rmhll = models.FloatField('燃煤含硫量(%)', max_length=200, null=True, blank=True)
+ rmhff = models.FloatField('燃煤挥发分(%)', max_length=200, null=True, blank=True)
+ rmqt = models.CharField('燃煤其他', max_length=100, null=True, blank=True)
+ ryhll = models.FloatField('燃油含硫量(%)', max_length=200, null=True, blank=True)
+ ryqt = models.CharField('燃油其他', max_length=100, null=True, blank=True)
+ rqlhqhl = models.FloatField('燃气硫化氢含量(%)', max_length=200, null=True, blank=True)
+ rqqt = models.CharField('燃气其他', max_length=100, null=True, blank=True)
+ qtrlxgwzhl = models.CharField('其他燃料相关物质含量', max_length=400, null=True, blank=True)
+ usecomp = models.ForeignKey(Partment, on_delete=models.CASCADE, verbose_name='所属公司')
+class Waterequipment(CommonModel):
+ """
+ 废水监测仪器信息表
+ """
+ number = models.CharField('排放口编号', max_length=100)
+ type = models.CharField('污染物种类', max_length=100, null=True, blank=True)
+ methods = models.CharField('监测采样方法及个数', max_length=300, null=True, blank=True)
+ count = models.IntegerField('监测次数', max_length=100, null=True, blank=True)
+ identification = models.CharField('鉴定方法', max_length=200, null=True, blank=True)
+ jcyqmodel = models.CharField('监测仪器型号', max_length=100, null=True, blank=True)
+ note = models.CharField('备注', max_length=500, null=True, blank=True)
+ usecomp = models.ForeignKey(Partment, on_delete=models.CASCADE, verbose_name='所属公司')
diff --git a/enp/templates/abnormal.html b/enp/templates/abnormal.html
new file mode 100644
index 00000000..fa7057c3
--- /dev/null
+++ b/enp/templates/abnormal.html
@@ -0,0 +1,146 @@
+
+
+
+
\ No newline at end of file
diff --git a/enp/templates/detection.html b/enp/templates/detection.html
new file mode 100644
index 00000000..613adc0a
--- /dev/null
+++ b/enp/templates/detection.html
@@ -0,0 +1,151 @@
+
+
+
+
\ No newline at end of file
diff --git a/enp/templates/facilities.html b/enp/templates/facilities.html
new file mode 100644
index 00000000..d248fbc4
--- /dev/null
+++ b/enp/templates/facilities.html
@@ -0,0 +1,192 @@
+
+
+
+
\ No newline at end of file
diff --git a/enp/templates/fuel.html b/enp/templates/fuel.html
new file mode 100644
index 00000000..70557437
--- /dev/null
+++ b/enp/templates/fuel.html
@@ -0,0 +1,164 @@
+
+
+
+
\ No newline at end of file
diff --git a/enp/templates/gprevention.html b/enp/templates/gprevention.html
new file mode 100644
index 00000000..6a0113e9
--- /dev/null
+++ b/enp/templates/gprevention.html
@@ -0,0 +1,193 @@
+
+
+
+
\ No newline at end of file
diff --git a/enp/templates/waterequipment.html b/enp/templates/waterequipment.html
new file mode 100644
index 00000000..589e6b2a
--- /dev/null
+++ b/enp/templates/waterequipment.html
@@ -0,0 +1,146 @@
+
+
+
+
\ No newline at end of file
diff --git a/enp/templates/wprevention.html b/enp/templates/wprevention.html
new file mode 100644
index 00000000..99a4e4ab
--- /dev/null
+++ b/enp/templates/wprevention.html
@@ -0,0 +1,185 @@
+
+
+
+
\ No newline at end of file
diff --git a/enp/urls.py b/enp/urls.py
index 6ecc0ea7..00c6be10 100644
--- a/enp/urls.py
+++ b/enp/urls.py
@@ -6,4 +6,13 @@ urlpatterns = [
path('wgas/', views.HtmlWgas),
path('wwater/', views.HtmlWwater),
path('gaspredict/', views.HtmlGasPredict),
+ path('facilities/', views.HtmlFacilities),
+ path('wprevention/', views.HtmlWprevention),#废水防治设施
+ path('gprevention/', views.HtmlGprevention),#废气防治设施
+ path('abnormal/', views.HtmlAbnormal),
+ path('detection/', views.HtmlDetection),
+ path('fuel/', views.HtmlFuel),
+ path('waterequipment/', views.HtmlWaterequipment),
+
+
]
\ No newline at end of file
diff --git a/enp/urls_api.py b/enp/urls_api.py
index 4514d317..65a58e2d 100644
--- a/enp/urls_api.py
+++ b/enp/urls_api.py
@@ -10,5 +10,16 @@ urlpatterns = [
path('dwastekeeprecord//', views.ApiDWasteKeepRecord),
path('dwastehandlerecord//', views.ApiDWasteHandleRecord),
path('gasemit//', views.ApiGasEmit),
- path('gaspredict///', views.ApiGasPredict)
+ path('gaspredict///', views.ApiGasPredict),
+ path('facilities//', views.ApiFacilities),#环境设施,生产设施
+ path('wprevention//', views.ApiWprevention),#废水防治设施
+ path('gprevention//', views.ApiGprevention),#废水防治设施
+ path('abnormal//', views.ApiAbnormal),#防治设施异常
+ path('detection//', views.ApiDetection),#废水污染物检测
+ path('fuel//', views.ApiFuel),#燃料信息表
+ path('waterequipment//', views.ApiWaterequipment),#废水监测仪器信息表
+
+
+
+
]
\ No newline at end of file
diff --git a/enp/views.py b/enp/views.py
index b16b3635..2a9b7146 100644
--- a/enp/views.py
+++ b/enp/views.py
@@ -3,7 +3,7 @@ from rest_framework.views import APIView
from rest_framework.authentication import BaseAuthentication
from safesite.models import User
from rest_framework.exceptions import AuthenticationFailed
-from .models import DWasteHandleRecord, DWasteKeepRecord, DWasteMakeList, DWasteMakeRecord, Drain, GasEmit, NormalWasteRecord, Waste
+from .models import DWasteHandleRecord, DWasteKeepRecord, DWasteMakeList, DWasteMakeRecord, Drain, GasEmit, NormalWasteRecord, Waste, Facilities,Prevention,abnormal,Detection,Fuel,Waterequipment
from safesite.views import transjson, fenye, MyEncoder
from django.http import HttpResponse, JsonResponse
import json
@@ -30,7 +30,22 @@ def HtmlWwater(request):
def HtmlGasPredict(request):
return render(request, 'gaspredict.html')
+def HtmlFacilities(request):
+ return render(request, 'facilities.html')
+def HtmlWprevention(request):
+ return render(request, 'wprevention.html')
+def HtmlAbnormal(request):
+ return render(request, 'abnormal.html')
+def HtmlDetection(request):
+ return render(request, 'detection.html')
+def HtmlFuel(request):
+ return render(request, 'fuel.html')
+def HtmlWaterequipment(request):
+ return render(request, 'waterequipment.html')
+def HtmlGprevention(request):
+ return render(request, 'gprevention.html')
+
def ApiWaste(request, action):
user = User.objects.get(userid=request.session['userid'])
if action == 'list':
@@ -100,6 +115,447 @@ def ApiNormalWasteRecord(request, action):
obj = NormalWasteRecord.objects.get(id=data['id'])
obj.delete()
return JsonResponse({"code":1})
+#生产设施
+def ApiFacilities(request, action):
+ user = User.objects.get(userid=request.session['userid'])
+ if action == 'list':
+ objs = Facilities.objects.filter(usecomp=user.usecomp, is_deleted=False)
+ total = objs.count()
+ startnum, endnum = fenye(request)
+ objs = objs.order_by('-create_time')[startnum:endnum].values('id', 'name', 'number', 'type', 'cs_name', 'desig_nnumber',
+ 'actual_number', 'em_unit', 'ability', 'al_unit','start_time', 'end_time', 'pdc_Load', 'zj_product', 'zj_unit', 'zz_product',
+ 'zz_unit', 'material_name', 'material_type', 'material_unit','material_count', 'material_composition', 'material_account',
+ 'material_address')
+ return HttpResponse(transjson(total, objs), content_type="application/json")
+ elif action == 'create':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Facilities()
+ obj.create_by = user
+ obj.update_by = user
+ obj.usecomp = user.usecomp
+ obj.name = data['name']
+ obj.number = data['number']
+ obj.type = data['type']
+ obj.cs_name = data['cs_name']
+ obj.desig_nnumber = data['desig_nnumber']
+ obj.actual_number = data['actual_number']
+ obj.em_unit = data['em_unit']
+ obj.ability = data['ability']
+ obj.al_unit = data['al_unit']
+ obj.start_time = data['start_time']
+ obj.end_time = data['end_time']
+ obj.pdc_Load = data['pdc_Load']
+ obj.zj_product = data['zj_product']
+ obj.zj_unit = data['zj_unit']
+ obj.zz_product = data['zz_product']
+ obj.zz_unit = data['zz_unit']
+ obj.material_name = data['material_name']
+ obj.material_type = data['material_type']
+ obj.material_unit = data['material_unit']
+ obj.material_count = data['material_count']
+ obj.material_composition = data['material_composition']
+ obj.material_account = data['material_account']
+ obj.material_address = data['material_address']
+ obj.save()
+ return JsonResponse({"code":1})
+ elif action == 'update':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Facilities.objects.get(id=data['id'])
+ obj.update_by = user
+ obj.usecomp = user.usecomp
+ obj.name = data['name']
+ obj.number = data['number']
+ obj.type = data['type']
+ obj.cs_name = data['cs_name']
+ obj.desig_nnumber = data['desig_nnumber']
+ obj.actual_number = data['actual_number']
+ obj.em_unit = data['em_unit']
+ obj.ability = data['ability']
+ obj.al_unit = data['al_unit']
+ obj.start_time = data['start_time']
+ obj.end_time = data['end_time']
+ obj.pdc_Load = data['pdc_Load']
+ obj.zj_product = data['zj_product']
+ obj.zj_unit = data['zj_unit']
+ obj.zz_product = data['zz_product']
+ obj.zz_unit = data['zz_unit']
+ obj.material_name = data['material_name']
+ obj.material_type = data['material_type']
+ obj.material_unit = data['material_unit']
+ obj.material_count = data['material_count']
+ obj.material_composition = data['material_composition']
+ obj.material_account = data['material_account']
+ obj.material_address = data['material_address']
+ obj.save()
+ return JsonResponse({"code":1})
+ elif action == 'delete':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Facilities.objects.get(id=data['id'])
+ obj.delete()
+ return JsonResponse({"code":1})
+#废气防治设施
+def ApiGprevention(request, action):
+ user = User.objects.get(userid=request.session['userid'])
+ if action == 'list':
+ objs = Prevention.objects.filter(usecomp=user.usecomp, is_deleted=False,preventiontype=2)
+ total = objs.count()
+ startnum, endnum = fenye(request)
+ objs = objs.order_by('-create_time')[startnum:endnum].values('id', 'name', 'number', 'type', 'preventiontype', 'cs_name',
+ 'desig_nnumber', 'em_unit', 'start_time', 'end_time', 'state', 'pfyql', 'wryz', 'zlxl',
+ 'sjly', 'pqtgd', 'pkwd', 'yl','pfsj', 'hdl', 'fcpname', 'fcwcl','yjname', 'tjtime', 'tjl' )
+ return HttpResponse(transjson(total, objs), content_type="application/json")
+ elif action == 'create':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Prevention()
+ obj.create_by = user
+ obj.update_by = user
+ obj.usecomp = user.usecomp
+ obj.name = data['name']
+ obj.number = data['number']
+ obj.preventiontype=2
+ obj.type = data['type']
+ obj.cs_name = data['cs_name']
+ obj.desig_nnumber = data['desig_nnumber']
+ obj.em_unit = data['em_unit']
+ obj.start_time = data['start_time']
+ obj.end_time = data['end_time']
+ obj.state = data['state']
+ obj.pfyql = data['pfyql']
+ obj.wryz = data['wryz']
+ obj.zlxl = data['zlxl']
+ obj.sjly = data['sjly']
+ obj.pqtgd = data['pqtgd']
+ obj.pkwd = data['pkwd']
+ obj.yl = data['yl']
+ obj.pfsj = data['pfsj']
+ obj.hdl = data['hdl']
+ obj.fcpname = data['fcpname']
+ obj.fcwcl = data['fcwcl']
+ obj.yjname = data['yjname']
+ obj.tjtime = data['tjtime']
+ obj.tjl = data['tjl']
+ obj.save()
+ return JsonResponse({"code":1})
+ elif action == 'update':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Prevention.objects.get(id=data['id'])
+ obj.create_by = user
+ obj.update_by = user
+ obj.usecomp = user.usecomp
+ obj.name = data['name']
+ obj.number = data['number']
+ obj.preventiontype=2
+ obj.type = data['type']
+ obj.cs_name = data['cs_name']
+ obj.desig_nnumber = data['desig_nnumber']
+ obj.em_unit = data['em_unit']
+ obj.start_time = data['start_time']
+ obj.end_time = data['end_time']
+ obj.state = data['state']
+ obj.pfyql = data['pfyql']
+ obj.wryz = data['wryz']
+ obj.zlxl = data['zlxl']
+ obj.sjly = data['sjly']
+ obj.pqtgd = data['pqtgd']
+ obj.pkwd = data['pkwd']
+ obj.yl = data['yl']
+ obj.pfsj = data['pfsj']
+ obj.hdl = data['hdl']
+ obj.fcpname = data['fcpname']
+ obj.fcwcl = data['fcwcl']
+ obj.yjname = data['yjname']
+ obj.tjtime = data['tjtime']
+ obj.tjl = data['tjl']
+ obj.save()
+ return JsonResponse({"code":1})
+ elif action == 'delete':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Prevention.objects.get(id=data['id'])
+ obj.delete()
+ return JsonResponse({"code":1})
+#废水防治设施
+def ApiWprevention(request, action):
+ user = User.objects.get(userid=request.session['userid'])
+ if action == 'list':
+ objs = Prevention.objects.filter(usecomp=user.usecomp, is_deleted=False,preventiontype=1)
+ total = objs.count()
+ startnum, endnum = fenye(request)
+ objs = objs.order_by('-create_time')[startnum:endnum].values('id', 'name', 'number', 'type', 'preventiontype', 'cs_name',
+ 'desig_nnumber', 'em_unit', 'start_time', 'end_time', 'state', 'ckll', 'wryz', 'zlxl',
+ 'sjly', 'pqfx', 'wncsl', 'clfs','hdl','yjname', 'tjtime', 'tjl')
+ return HttpResponse(transjson(total, objs), content_type="application/json")
+ elif action == 'create':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Prevention()
+ obj.create_by = user
+ obj.update_by = user
+ obj.usecomp = user.usecomp
+ obj.name = data['name']
+ obj.number = data['number']
+ obj.preventiontype=1
+ obj.type = data['type']
+ obj.cs_name = data['cs_name']
+ obj.desig_nnumber = data['desig_nnumber']
+ obj.em_unit = data['em_unit']
+ obj.start_time = data['start_time']
+ obj.end_time = data['end_time']
+ obj.state = data['state']
+ obj.ckll = data['ckll']
+ obj.wryz = data['wryz']
+ obj.zlxl = data['zlxl']
+ obj.sjly = data['sjly']
+ obj.pqfx = data['pqfx']
+ obj.wncsl = data['wncsl']
+ obj.clfs = data['clfs']
+ obj.hdl = data['hdl']
+ obj.yjname = data['yjname']
+ obj.tjtime = data['tjtime']
+ obj.tjl = data['tjl']
+ obj.save()
+ return JsonResponse({"code":1})
+ elif action == 'update':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Prevention.objects.get(id=data['id'])
+ obj.create_by = user
+ obj.update_by = user
+ obj.usecomp = user.usecomp
+ obj.name = data['name']
+ obj.number = data['number']
+ obj.preventiontype=1
+ obj.type = data['type']
+ obj.cs_name = data['cs_name']
+ obj.desig_nnumber = data['desig_nnumber']
+ obj.em_unit = data['em_unit']
+ obj.start_time = data['start_time']
+ obj.end_time = data['end_time']
+ obj.state = data['state']
+ obj.ckll = data['ckll']
+ obj.wryz = data['wryz']
+ obj.zlxl = data['zlxl']
+ obj.sjly = data['sjly']
+ obj.pqfx = data['pqfx']
+ obj.wncsl = data['wncsl']
+ obj.clfs = data['clfs']
+ obj.hdl = data['hdl']
+ obj.yjname = data['yjname']
+ obj.tjtime = data['tjtime']
+ obj.tjl = data['tjl']
+ obj.save()
+ return JsonResponse({"code":1})
+ elif action == 'delete':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Prevention.objects.get(id=data['id'])
+ obj.delete()
+ return JsonResponse({"code":1})
+#防治设施异常
+def ApiAbnormal(request, action):
+ user = User.objects.get(userid=request.session['userid'])
+ if action == 'list':
+ objs = abnormal.objects.filter(usecomp=user.usecomp, is_deleted=False)
+ total = objs.count()
+ startnum, endnum = fenye(request)
+ objs = objs.order_by('-create_time')[startnum:endnum].values('id', 'name', 'number', 'start_time', 'end_time', 'type',
+ 'pfnd', 'pffx', 'sjyy', 'sfbg', 'ydcs')
+ return HttpResponse(transjson(total, objs), content_type="application/json")
+ elif action == 'create':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = abnormal()
+ obj.create_by = user
+ obj.update_by = user
+ obj.usecomp = user.usecomp
+ obj.name = data['name']
+ obj.number = data['number']
+ obj.start_time = data['start_time']
+ obj.end_time = data['end_time']
+ obj.type = data['type']
+ obj.pfnd = data['pfnd']
+ obj.pffx = data['pffx']
+ obj.sjyy = data['sjyy']
+ obj.sfbg = data['sfbg']
+ obj.ydcs = data['ydcs']
+
+ obj.save()
+ return JsonResponse({"code":1})
+ elif action == 'update':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = abnormal.objects.get(id=data['id'])
+ obj.create_by = user
+ obj.update_by = user
+ obj.usecomp = user.usecomp
+ obj.name = data['name']
+ obj.number = data['number']
+ obj.start_time = data['start_time']
+ obj.end_time = data['end_time']
+ obj.type = data['type']
+ obj.pfnd = data['pfnd']
+ obj.pffx = data['pffx']
+ obj.sjyy = data['sjyy']
+ obj.sfbg = data['sfbg']
+ obj.ydcs = data['ydcs']
+ obj.save()
+ return JsonResponse({"code":1})
+ elif action == 'delete':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = abnormal.objects.get(id=data['id'])
+ obj.delete()
+ return JsonResponse({"code":1})
+#废水污染物检测
+def ApiDetection(request, action):
+ user = User.objects.get(userid=request.session['userid'])
+ if action == 'list':
+ objs = Detection.objects.filter(usecomp=user.usecomp, is_deleted=False)
+ total = objs.count()
+ startnum, endnum = fenye(request)
+ objs = objs.order_by('-create_time')[startnum:endnum].values('id', 'number', 'jcDate', 'jctime', 'ckhxxyl', 'ckshxll',
+ 'ckad', 'ckxfw', 'jkhxxyl', 'jkshxll', 'jkad', 'jkxfw')
+ return HttpResponse(transjson(total, objs), content_type="application/json")
+ elif action == 'create':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Detection()
+ obj.create_by = user
+ obj.update_by = user
+ obj.usecomp = user.usecomp
+ obj.number = data['number']
+ obj.jcDate = data['jcDate']
+ obj.jctime = data['jctime']
+ obj.ckhxxyl = data['ckhxxyl']
+ obj.ckshxll = data['ckshxll']
+ obj.ckad = data['ckad']
+ obj.ckxfw = data['ckxfw']
+ obj.jkhxxyl = data['jkhxxyl']
+ obj.jkshxll = data['jkshxll']
+ obj.jkad = data['jkad']
+ obj.jkxfw = data['jkxfw']
+
+ obj.save()
+ return JsonResponse({"code":1})
+ elif action == 'update':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Detection.objects.get(id=data['id'])
+ obj.create_by = user
+ obj.update_by = user
+ obj.usecomp = user.usecomp
+ obj.number = data['number']
+ obj.jcDate = data['jcDate']
+ obj.jctime = data['jctime']
+ obj.ckhxxyl = data['ckhxxyl']
+ obj.ckshxll = data['ckshxll']
+ obj.ckad = data['ckad']
+ obj.ckxfw = data['ckxfw']
+ obj.jkhxxyl = data['jkhxxyl']
+ obj.jkshxll = data['jkshxll']
+ obj.jkad = data['jkad']
+ obj.jkxfw = data['jkxfw']
+ obj.save()
+ return JsonResponse({"code":1})
+ elif action == 'delete':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Detection.objects.get(id=data['id'])
+ obj.delete()
+ return JsonResponse({"code":1})
+#燃料信息表
+def ApiFuel(request, action):
+ user = User.objects.get(userid=request.session['userid'])
+ if action == 'list':
+ objs = Fuel.objects.filter(usecomp=user.usecomp, is_deleted=False)
+ total = objs.count()
+ startnum, endnum = fenye(request)
+ objs = objs.order_by('-create_time')[startnum:endnum].values('id', 'name', 'count', 'dwcount', 'unit', 'rmhll',
+ 'rmhff', 'rmqt', 'ryhll', 'ryqt', 'rqlhqhl', 'rqqt', 'qtrlxgwzhl')
+ return HttpResponse(transjson(total, objs), content_type="application/json")
+ elif action == 'create':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Fuel()
+ obj.create_by = user
+ obj.update_by = user
+ obj.usecomp = user.usecomp
+ obj.name = data['name']
+ obj.count = data['count']
+ obj.dwcount = data['dwcount']
+ obj.unit = data['unit']
+ obj.rmhll = data['rmhll']
+ obj.rmhff = data['rmhff']
+ obj.rmqt = data['rmqt']
+ obj.ryhll = data['ryhll']
+ obj.ryqt = data['ryqt']
+ obj.rqlhqhl = data['rqlhqhl']
+ obj.rqqt = data['rqqt']
+ obj.qtrlxgwzhl = data['qtrlxgwzhl']
+
+ obj.save()
+ return JsonResponse({"code":1})
+ elif action == 'update':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Fuel.objects.get(id=data['id'])
+ obj.create_by = user
+ obj.update_by = user
+ obj.usecomp = user.usecomp
+ obj.name = data['name']
+ obj.count = data['count']
+ obj.dwcount = data['dwcount']
+ obj.unit = data['unit']
+ obj.rmhll = data['rmhll']
+ obj.rmhff = data['rmhff']
+ obj.rmqt = data['rmqt']
+ obj.ryhll = data['ryhll']
+ obj.ryqt = data['ryqt']
+ obj.rqlhqhl = data['rqlhqhl']
+ obj.rqqt = data['rqqt']
+ obj.rqqt = data['qtrlxgwzhl']
+ obj.save()
+ return JsonResponse({"code":1})
+ elif action == 'delete':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Fuel.objects.get(id=data['id'])
+ obj.delete()
+ return JsonResponse({"code":1})
+ #废水监测仪器信息表
+def ApiWaterequipment(request, action):
+ user = User.objects.get(userid=request.session['userid'])
+ if action == 'list':
+ objs = Waterequipment.objects.filter(usecomp=user.usecomp, is_deleted=False)
+ total = objs.count()
+ startnum, endnum = fenye(request)
+ objs = objs.order_by('-create_time')[startnum:endnum].values('id', 'number', 'type', 'methods', 'count', 'identification',
+ 'jcyqmodel', 'note')
+ return HttpResponse(transjson(total, objs), content_type="application/json")
+ elif action == 'create':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Waterequipment()
+ obj.create_by = user
+ obj.update_by = user
+ obj.usecomp = user.usecomp
+ obj.number = data['number']
+ obj.type = data['type']
+ obj.methods = data['methods']
+ obj.count = data['count']
+ obj.identification = data['identification']
+ obj.jcyqmodel = data['jcyqmodel']
+ obj.note = data['note']
+ obj.save()
+ return JsonResponse({"code":1})
+ elif action == 'update':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Waterequipment.objects.get(id=data['id'])
+ obj.create_by = user
+ obj.update_by = user
+ obj.usecomp = user.usecomp
+ obj.number = data['number']
+ obj.type = data['type']
+ obj.methods = data['methods']
+ obj.count = data['count']
+ obj.identification = data['identification']
+ obj.jcyqmodel = data['jcyqmodel']
+ obj.note = data['note']
+ obj.save()
+ return JsonResponse({"code":1})
+ elif action == 'delete':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Waterequipment.objects.get(id=data['id'])
+ obj.delete()
+ return JsonResponse({"code":1})
+
+
def ApiDWasteMakeList(request,action):
user = User.objects.get(userid=request.session['userid'])
diff --git a/safesite/forms.py b/safesite/forms.py
index ee1b3fe5..b379fdb5 100644
--- a/safesite/forms.py
+++ b/safesite/forms.py
@@ -23,5 +23,12 @@ class CompanyInfoForm(forms.Form):
liaison_phone = forms.CharField(max_length=24, label='联系人电话', widget=forms.TextInput(attrs={'size': '50'}))
enp_number = forms.CharField(max_length=24, label='环评批复文号', widget=forms.TextInput(attrs={'size': '50'}), required=False)
waste_number = forms.CharField(max_length=24, label='排污许可证编号', widget=forms.TextInput(attrs={'size': '50'}), required=False)
+ industry = forms.CharField(max_length=24, label='行业类别', widget=forms.TextInput(attrs={'size': '50'}), required=False)
+ credit = forms.CharField(max_length=24, label='统一社会信用代码', widget=forms.TextInput(attrs={'size': '50'}), required=False)
+ process = forms.CharField(max_length=24, label='生产工艺', widget=forms.TextInput(attrs={'size': '50'}), required=False)
+ product = forms.CharField(max_length=24, label='产品名称', widget=forms.TextInput(attrs={'size': '50'}), required=False)
+ size = forms.CharField(max_length=24, label='生产规模', widget=forms.TextInput(attrs={'size': '50'}), required=False)
+ investment = forms.CharField(max_length=24, label='环保投资', widget=forms.TextInput(attrs={'size': '50'}), required=False)
+ trading = forms.CharField(max_length=24, label='排污权交易文件', widget=forms.TextInput(attrs={'size': '50'}), required=False)
introduce = forms.CharField(label='公司概况', widget=forms.Textarea)
diff --git a/safesite/migrations/0396_auto_20220304_1648.py b/safesite/migrations/0396_auto_20220304_1648.py
new file mode 100644
index 00000000..228e4792
--- /dev/null
+++ b/safesite/migrations/0396_auto_20220304_1648.py
@@ -0,0 +1,68 @@
+# Generated by Django 2.2.8 on 2022-03-04 16:48
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('safesite', '0395_partment_enabled'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='companyinfo',
+ name='credit',
+ field=models.CharField(blank=True, max_length=50, null=True, verbose_name='统一社会信用代码'),
+ ),
+ migrations.AddField(
+ model_name='companyinfo',
+ name='industry',
+ field=models.CharField(blank=True, max_length=50, null=True, verbose_name='行业类别'),
+ ),
+ migrations.AddField(
+ model_name='companyinfo',
+ name='investment',
+ field=models.CharField(blank=True, max_length=50, null=True, verbose_name='环保投资'),
+ ),
+ migrations.AddField(
+ model_name='companyinfo',
+ name='process',
+ field=models.CharField(blank=True, max_length=50, null=True, verbose_name='生产工艺'),
+ ),
+ migrations.AddField(
+ model_name='companyinfo',
+ name='product',
+ field=models.CharField(blank=True, max_length=50, null=True, verbose_name='产品名称'),
+ ),
+ migrations.AddField(
+ model_name='companyinfo',
+ name='size',
+ field=models.CharField(blank=True, max_length=50, null=True, verbose_name='生产规模'),
+ ),
+ migrations.AddField(
+ model_name='companyinfo',
+ name='trading',
+ field=models.CharField(blank=True, max_length=50, null=True, verbose_name='排污权交易文件'),
+ ),
+ migrations.AddField(
+ model_name='mgtsystem',
+ name='qrcode',
+ field=models.CharField(blank=True, max_length=200, null=True),
+ ),
+ migrations.AddField(
+ model_name='operproce',
+ name='qrcode',
+ field=models.CharField(blank=True, max_length=200, null=True),
+ ),
+ migrations.AddField(
+ model_name='resbility',
+ name='qrcode',
+ field=models.CharField(blank=True, max_length=200, null=True),
+ ),
+ migrations.AlterField(
+ model_name='resbility',
+ name='reads',
+ field=models.IntegerField(default=0),
+ ),
+ ]
diff --git a/safesite/models.py b/safesite/models.py
index ccb24971..63efb9ce 100644
--- a/safesite/models.py
+++ b/safesite/models.py
@@ -1246,6 +1246,13 @@ class CompanyInfo(models.Model):
introduce = models.TextField(null=True, blank=True, verbose_name='公司概况')
enp_number = models.CharField(max_length=50, verbose_name='环评批复文号', null=True, blank=True)
waste_number = models.CharField(max_length=50, verbose_name='排污许可证编号', null=True, blank=True)
+ industry = models.CharField(max_length=50, verbose_name='行业类别', null=True, blank=True)
+ credit = models.CharField(max_length=50, verbose_name='统一社会信用代码', null=True, blank=True)
+ process = models.CharField(max_length=50, verbose_name='生产工艺', null=True, blank=True)
+ product = models.CharField(max_length=50, verbose_name='产品名称', null=True, blank=True)
+ size = models.CharField(max_length=50, verbose_name='生产规模', null=True, blank=True)
+ investment = models.CharField(max_length=50, verbose_name='环保投资', null=True, blank=True)
+ trading = models.CharField(max_length=50, verbose_name='排污权交易文件', null=True, blank=True)
createtime = models.DateTimeField(auto_now_add=True)
modifytime = models.DateTimeField(auto_now=True)
# 法律法规分类表
diff --git a/safesite/views.py b/safesite/views.py
index 8d7f5cef..e730f742 100644
--- a/safesite/views.py
+++ b/safesite/views.py
@@ -8502,6 +8502,13 @@ def companyinfo(req):
companyinfo.website = companyinfo_form.cleaned_data.get('website')
companyinfo.enp_number = companyinfo_form.cleaned_data.get('enp_number', None)
companyinfo.waste_number = companyinfo_form.cleaned_data.get('waste_number', None)
+ companyinfo.industry = companyinfo_form.cleaned_data.get('industry', None)
+ companyinfo.credit = companyinfo_form.cleaned_data.get('credit', None)
+ companyinfo.process = companyinfo_form.cleaned_data.get('process', None)
+ companyinfo.product = companyinfo_form.cleaned_data.get('product', None)
+ companyinfo.size = companyinfo_form.cleaned_data.get('size', None)
+ companyinfo.investment = companyinfo_form.cleaned_data.get('investment', None)
+ companyinfo.trading = companyinfo_form.cleaned_data.get('trading', None)
companyinfo.save()
#html = 'companyinfo.html'
# return redirect('/withmenu/', html="companyinfo.html")
From 9380406a69b49407b82b0ae2ed81669eb95eb303 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9B=B9=E5=89=8D=E6=98=8E?= <909355014@qq.com>
Date: Tue, 17 May 2022 17:19:01 +0800
Subject: [PATCH 2/3] =?UTF-8?q?enp=20drain=20=E8=A1=A8=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
enp/migrations/0018_auto_20220517_1654.py | 40 ++++
enp/migrations/0019_auto_20220517_1717.py | 29 +++
enp/models.py | 16 +-
enp/templates/drain_point.html | 0
enp/templates/wwater.html | 225 ++++++++++++++--------
enp/urls.py | 4 +-
6 files changed, 224 insertions(+), 90 deletions(-)
create mode 100644 enp/migrations/0018_auto_20220517_1654.py
create mode 100644 enp/migrations/0019_auto_20220517_1717.py
create mode 100644 enp/templates/drain_point.html
diff --git a/enp/migrations/0018_auto_20220517_1654.py b/enp/migrations/0018_auto_20220517_1654.py
new file mode 100644
index 00000000..1aeab8a3
--- /dev/null
+++ b/enp/migrations/0018_auto_20220517_1654.py
@@ -0,0 +1,40 @@
+# Generated by Django 2.2.8 on 2022-05-17 16:54
+
+import django.contrib.postgres.fields.jsonb
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('enp', '0017_auto_20220516_0858'),
+ ]
+
+ operations = [
+ migrations.RemoveField(
+ model_name='detection',
+ name='number',
+ ),
+ migrations.AddField(
+ model_name='detection',
+ name='drain',
+ field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='enp.Drain', verbose_name='关联排放口'),
+ preserve_default=False,
+ ),
+ migrations.AddField(
+ model_name='drain',
+ name='polygon',
+ field=django.contrib.postgres.fields.jsonb.JSONField(blank=True, null=True, verbose_name='点位坐标'),
+ ),
+ migrations.AddField(
+ model_name='drain',
+ name='type',
+ field=models.PositiveSmallIntegerField(choices=[(10, '排水'), (20, '排气')], default=10, verbose_name='排污口类型'),
+ ),
+ migrations.AlterField(
+ model_name='waterequipment',
+ name='count',
+ field=models.IntegerField(blank=True, null=True, verbose_name='监测次数'),
+ ),
+ ]
diff --git a/enp/migrations/0019_auto_20220517_1717.py b/enp/migrations/0019_auto_20220517_1717.py
new file mode 100644
index 00000000..04de8e39
--- /dev/null
+++ b/enp/migrations/0019_auto_20220517_1717.py
@@ -0,0 +1,29 @@
+# Generated by Django 2.2.8 on 2022-05-17 17:17
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('enp', '0018_auto_20220517_1654'),
+ ]
+
+ operations = [
+ migrations.RenameField(
+ model_name='drain',
+ old_name='polygon',
+ new_name='location',
+ ),
+ migrations.RemoveField(
+ model_name='waterequipment',
+ name='number',
+ ),
+ migrations.AddField(
+ model_name='waterequipment',
+ name='drain',
+ field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='enp.Drain', verbose_name='关联排放口'),
+ preserve_default=False,
+ ),
+ ]
diff --git a/enp/models.py b/enp/models.py
index 1ee756a3..5f76113a 100644
--- a/enp/models.py
+++ b/enp/models.py
@@ -1,6 +1,7 @@
from django.db import models
from safesite.models import User, Partment
from utils.models import CommonModel
+from django.contrib.postgres.fields import JSONField
# Create your models here.
class Waste(CommonModel):
@@ -90,8 +91,14 @@ class Drain(CommonModel):
"""
排放口
"""
+ DRAIN_TYPE_CHOICES = (
+ (10, '排水'),
+ (20, '排气')
+ )
+ type = models.PositiveSmallIntegerField('排污口类型', default=10, choices=DRAIN_TYPE_CHOICES)
number = models.CharField('编号', max_length=100)
name = models.CharField('名称', max_length=100)
+ location = JSONField('点位坐标', null=True, blank=True)
usecomp = models.ForeignKey(Partment, on_delete=models.CASCADE, verbose_name='所属公司')
class GasEmit(CommonModel):
@@ -197,11 +204,12 @@ class abnormal(CommonModel):
sfbg = models.CharField('是否报告', max_length=200, null=True, blank=True)
ydcs = models.CharField('应对措施', max_length=200, null=True, blank=True)
usecomp = models.ForeignKey(Partment, on_delete=models.CASCADE, verbose_name='所属公司')
+
class Detection(CommonModel):
"""
废水污染物检测结果表
"""
- number = models.CharField('排放口编号', max_length=100)
+ drain = models.ForeignKey(Drain, verbose_name='关联排放口', on_delete=models.CASCADE)
jcDate = models.DateTimeField('监测日期', null=True, blank=True)
jctime = models.DateTimeField('监测时间', null=True, blank=True)
ckhxxyl = models.FloatField('出口化学需氧量(mg/L)', max_length=200, null=True, blank=True)
@@ -213,6 +221,7 @@ class Detection(CommonModel):
jkad = models.FloatField('进口氨氮(mg/L)', max_length=200, null=True, blank=True)
jkxfw = models.FloatField('进口悬浮物(mg/L)', max_length=200, null=True, blank=True)
usecomp = models.ForeignKey(Partment, on_delete=models.CASCADE, verbose_name='所属公司')
+
class Fuel(CommonModel):
"""
燃料信息表
@@ -230,14 +239,15 @@ class Fuel(CommonModel):
rqqt = models.CharField('燃气其他', max_length=100, null=True, blank=True)
qtrlxgwzhl = models.CharField('其他燃料相关物质含量', max_length=400, null=True, blank=True)
usecomp = models.ForeignKey(Partment, on_delete=models.CASCADE, verbose_name='所属公司')
+
class Waterequipment(CommonModel):
"""
废水监测仪器信息表
"""
- number = models.CharField('排放口编号', max_length=100)
+ drain = models.ForeignKey(Drain, verbose_name='关联排放口', on_delete=models.CASCADE)
type = models.CharField('污染物种类', max_length=100, null=True, blank=True)
methods = models.CharField('监测采样方法及个数', max_length=300, null=True, blank=True)
- count = models.IntegerField('监测次数', max_length=100, null=True, blank=True)
+ count = models.IntegerField('监测次数', null=True, blank=True)
identification = models.CharField('鉴定方法', max_length=200, null=True, blank=True)
jcyqmodel = models.CharField('监测仪器型号', max_length=100, null=True, blank=True)
note = models.CharField('备注', max_length=500, null=True, blank=True)
diff --git a/enp/templates/drain_point.html b/enp/templates/drain_point.html
new file mode 100644
index 00000000..e69de29b
diff --git a/enp/templates/wwater.html b/enp/templates/wwater.html
index 89bfb15d..ee4cb37a 100644
--- a/enp/templates/wwater.html
+++ b/enp/templates/wwater.html
@@ -1,68 +1,97 @@
-
-
-
新增
-
编辑
-
删除
+
-
-
-
@@ -73,102 +102,103 @@
$('#operator__nameFormItem').textbox('setValue', top.$('#in').attr('show'));
}
}
- var waste_action_url = '/api/enp/waste/create/';
- var record_action_url = '/api/enp/normalwasterecord/create/';
- $('#wasteTable').datagrid({
- url: '/api/enp/waste/list/?type=1',
+ var drain_action_url = '/api/enp/drain/create/';
+ var record_action_url = '/api/enp/gasemit/create/';
+ $('#drainTable').datagrid({
+ url: '/api/enp/drain/list/',
rownumbers: true,
singleSelect: true,
striped: true,
method: 'get',
- toolbar: '#wasteTableBar',
+ toolbar: '#drainTableBar',
border: false,
fitColumns: true,
columns: [[
{ field: 'id', title: 'ID', hidden: true },
- { field: 'number', title: '废物编号', width: 100 },
- { field: 'name', title: '废物名称', width: 100 },
+ { field: 'number', title: '排放口编号', width: 100 },
+ { field: 'name', title: '排放口名称', width: 100 },
]],
onClickRow: function (index, row) {
- $('#normalWasteRecordTable').datagrid({
- url: '/api/enp/normalwasterecord/list/?waste=' + row.id
+ $('#gasEmitTable').datagrid({
+ url: '/api/enp/gasemit/list/?drain=' + row.id
})
}
});
- $('#normalWasteRecordTable').datagrid({
- url: '/api/enp/normalwasterecord/list/',
+ $('#gasEmitTable').datagrid({
+ url: '/api/enp/gasemit/list/',
rownumbers: true,
singleSelect: true,
striped: true,
method: 'get',
- toolbar: '#normalWasteRecordTableBar',
+ toolbar: '#gasEmitTableBar',
border: false,
fitColumns: true,
columns: [[
{ field: 'id', title: 'ID', hidden: true },
- { field: 'operator', title: 'operator', hidden: true },
- { field: 'waste', title: 'waste', hidden: true },
- { field: 'waste__name', title: '废物名称', width: 100 },
- { field: 'gen_date', title: '产生日期', width: 100 },
- { field: 'gen_count', title: '产生数量(吨)', width: 100 },
- { field: 'dis_date', title: '处置日期', width: 100 },
- { field: 'dis_count', title: '委托处置量(吨)', width: 100 },
- { field: 'inv_count', title: '库存量(吨)', width: 100 },
- { field: 'operator__name', title: '经办人', width: 100 },
+ { field: 'drain', title: 'drain', hidden: true },
+ { field: 'drain__name', title: '排放口 ', width: 100 },
+ { field: 'watch_time', title: '监测时间', width: 100 },
+ { field: 'out_smoke', title: '出:干烟含量', width: 100 },
+ { field: 'out_o2', title: '出:氧含量', width: 100 },
+ { field: 'out_so2', title: '出:二氧化硫', width: 100 },
+ { field: 'out_so2_s', title: '出:二氧化硫折标', width: 100 },
+ { field: 'out_particle', title: '出:颗粒物', width: 100 },
+ { field: 'out_particle_s', title: '出:颗粒物折标', width: 100 },
+ { field: 'out_nox', title: '出:氮氧化物', width: 100 },
+ { field: 'out_nox_s', title: '出:氮氧化物折标', width: 100 },
]],
onClickRow: function (index, row) {
}
});
- function addWaste() {
- $('#wasteDialog').dialog('open').dialog('setTitle', '新增一般固废名').window('center');
- $('#wasteForm').form('clear');
- $('#typeFormItem').attr('value',1);
- waste_action_url = '/api/enp/waste/create/'
+ function addDrain() {
+ $('#drainDialog').dialog('open').dialog('setTitle', '新增排放口').window('center');
+ $('#drainForm').form('clear');
+ drain_action_url = '/api/enp/drain/create/'
}
- function addNormalWasteRecord() {
+ function addGasEmitRecord() {
- var row = $('#wasteTable').datagrid('getSelected');
+ var row = $('#drainTable').datagrid('getSelected');
if(row){
- $('#normalWasteRecordDialog').dialog('open').dialog('setTitle', '新增记录').window('center');
- $('#normalWasteRecordForm').form('clear');
- $('#wasteFormItem').attr('value', row.id);
- record_action_url = '/api/enp/normalwasterecord/create/';
+ $('#gasEmitDialog').dialog('open').dialog('setTitle', '新增记录').window('center');
+ $('#gasEmitForm').form('clear');
+ $('#gasEmitForm_drain').attr('value', row.id);
+ record_action_url = '/api/enp/gasemit/create/';
}else{
- $.messager.alert('提示', '请先选择左侧废物!');
+ $.messager.alert('提示', '请先选择左侧排放口!');
}
}
- function editWaste(){
- var row = $('#wasteTable').datagrid('getSelected');
+ function editDrain(){
+ var row = $('#draineTable').datagrid('getSelected');
if(row){
- $('#wasteDialog').dialog('open').dialog('setTitle', '编辑一般固废名').window('center');
- $('#wasteForm').form('load', row);
- waste_action_url = '/api/enp/waste/update/'}
+ $('#drainDialog').dialog('open').dialog('setTitle', '编辑排放口').window('center');
+ $('#drainForm').form('load', row);
+ drain_action_url = '/api/enp/drain/update/'}
else{
$.messager.alert('提示', '请选择一条数据!');
}
}
- function saveWaste() {
- var data = $('#wasteForm').serializeJSON();
+ function saveDrain() {
+ var data = $('#drainForm').serializeJSON();
$.ajax({
type: "POST",
- url: waste_action_url,
+ url: drain_action_url,
data: JSON.stringify(data),
datatype: "json",
processData: false,
contentType: "application/json;charset=utf-8",
beforeSend: function () {
- return $('#wasteForm').form('validate')
+ return $('#drainForm').form('validate')
},
success: function (data) {
- $("#wasteTable").datagrid('reload');
- $("#wasteDialog").dialog("close");
+ $("#drainTable").datagrid('reload');
+ $("#drainDialog").dialog("close");
},
});
}
- function saveNormalWasteRecord() {
- var data = $('#normalWasteRecordForm').serializeJSON();
+ function saveGasEmitRecord() {
+ var data = $('#gasEmitForm').serializeJSON();
$.ajax({
type: "POST",
url: record_action_url,
@@ -177,30 +207,57 @@
processData: false,
contentType: "application/json;charset=utf-8",
beforeSend: function () {
- return $('#normalWasteRecordForm').form('validate')
+ return $('#gasEmitForm').form('validate')
},
success: function (data) {
- $("#normalWasteRecordTable").datagrid('reload');
- $("#normalWasteRecordDialog").dialog("close");
+ $("#gasEmitTable").datagrid('reload');
+ $("#gasEmitDialog").dialog("close");
},
});
}
- function delWaste() {
- var row = $('#wasteTable').datagrid('getSelected');
+ function delDrain() {
+ var row = $('#drainTable').datagrid('getSelected');
if (row) {
$.messager.confirm('提示', '确定删除吗?', function (r) {
if (r) {
var data = { id: row.id }
$.ajax({
type: "POST",
- url: '/api/enp/waste/delete/',
+ url: '/api/enp/drain/delete/',
data: JSON.stringify(data),
datatype: "json",
beforeSend: function () { },
success: function (data) {
if (data.code == 1) {
- $("#wasteTable").datagrid('reload');
- $("#normalWasteRecordTable").datagrid('reload');
+ $("#drainTable").datagrid('reload');
+ // $("#gasEmitTable").datagrid('reload');
+ }
+ else {
+ $.messager.alert('提示', '操作失败!');
+ }
+ },
+ });
+ }
+ });
+ }
+ else { $.messager.alert('提示', '请选择一条数据!'); }
+ }
+ function delGasEmitRecord() {
+ var row = $('#gasEmitTable').datagrid('getSelected');
+ if (row) {
+ $.messager.confirm('提示', '确定删除吗?', function (r) {
+ if (r) {
+ var data = { id: row.id }
+ $.ajax({
+ type: "POST",
+ url: '/api/enp/gasemit/delete/',
+ data: JSON.stringify(data),
+ datatype: "json",
+ beforeSend: function () { },
+ success: function (data) {
+ if (data.code == 1) {
+ $("#gasEmitTable").datagrid('reload');
+ // $("#gasEmitTable").datagrid('reload');
}
else {
$.messager.alert('提示', '操作失败!');
diff --git a/enp/urls.py b/enp/urls.py
index 00c6be10..439ff14c 100644
--- a/enp/urls.py
+++ b/enp/urls.py
@@ -12,7 +12,5 @@ urlpatterns = [
path('abnormal/', views.HtmlAbnormal),
path('detection/', views.HtmlDetection),
path('fuel/', views.HtmlFuel),
- path('waterequipment/', views.HtmlWaterequipment),
-
-
+ path('waterequipment/', views.HtmlWaterequipment),
]
\ No newline at end of file
From 85951fc65b0e1f329a98e7c709bf710828036367 Mon Sep 17 00:00:00 2001
From: "2309368887@qq.com" <2309368887@qq.com>
Date: Thu, 19 May 2022 11:37:42 +0800
Subject: [PATCH 3/3] ceshijiacedian
---
enp/templates/wgas.html | 4 +-
enp/templates/wwater.html | 219 +++++++-------
enp/urls_api.py | 5 +-
enp/views.py | 91 ++++--
safesite/static/safesite/mystatic/js/util.js | 16 +
safesite/templates/areajiance.html | 289 +++++++++++++++++++
safesite/templates/jianceditu.html | 209 ++++++++++++++
safesite/templates/main.html | 23 ++
safesite/urls.py | 2 +
safesite/views.py | 12 +-
10 files changed, 732 insertions(+), 138 deletions(-)
create mode 100644 safesite/templates/areajiance.html
create mode 100644 safesite/templates/jianceditu.html
diff --git a/enp/templates/wgas.html b/enp/templates/wgas.html
index ee4cb37a..4979930c 100644
--- a/enp/templates/wgas.html
+++ b/enp/templates/wgas.html
@@ -1,6 +1,6 @@
-
+
-
+
新增
diff --git a/enp/templates/wwater.html b/enp/templates/wwater.html
index ee4cb37a..ca66c03c 100644
--- a/enp/templates/wwater.html
+++ b/enp/templates/wwater.html
@@ -1,6 +1,6 @@
-
+
-
-
-
@@ -102,10 +81,10 @@
$('#operator__nameFormItem').textbox('setValue', top.$('#in').attr('show'));
}
}
- var drain_action_url = '/api/enp/drain/create/';
+ var drain_action_url = '/api/enp/drains/create/';
var record_action_url = '/api/enp/gasemit/create/';
$('#drainTable').datagrid({
- url: '/api/enp/drain/list/',
+ url: '/api/enp/drains/list/',
rownumbers: true,
singleSelect: true,
striped: true,
@@ -119,33 +98,33 @@
{ field: 'name', title: '排放口名称', width: 100 },
]],
onClickRow: function (index, row) {
- $('#gasEmitTable').datagrid({
- url: '/api/enp/gasemit/list/?drain=' + row.id
+ $('#detectionTable').datagrid({
+ url: '/api/enp/detection/list/?drain=' + row.id
})
}
});
- $('#gasEmitTable').datagrid({
- url: '/api/enp/gasemit/list/',
+ $('#detectionTable').datagrid({
+ url: '/api/enp/detection/list/',
rownumbers: true,
singleSelect: true,
striped: true,
method: 'get',
- toolbar: '#gasEmitTableBar',
+ toolbar: '#detectionTableBar',
border: false,
- fitColumns: true,
columns: [[
- { field: 'id', title: 'ID', hidden: true },
+ { field: 'id', title: 'ID', hidden: true },
{ field: 'drain', title: 'drain', hidden: true },
- { field: 'drain__name', title: '排放口 ', width: 100 },
- { field: 'watch_time', title: '监测时间', width: 100 },
- { field: 'out_smoke', title: '出:干烟含量', width: 100 },
- { field: 'out_o2', title: '出:氧含量', width: 100 },
- { field: 'out_so2', title: '出:二氧化硫', width: 100 },
- { field: 'out_so2_s', title: '出:二氧化硫折标', width: 100 },
- { field: 'out_particle', title: '出:颗粒物', width: 100 },
- { field: 'out_particle_s', title: '出:颗粒物折标', width: 100 },
- { field: 'out_nox', title: '出:氮氧化物', width: 100 },
- { field: 'out_nox_s', title: '出:氮氧化物折标', width: 100 },
+ { field: 'drain__name', title: '排放口 ', width: 200 },
+ { field: 'jcDate', title: '监测日期', width: 200 },
+ { field: 'jctime', title: '监测时间', width: 200 },
+ { field: 'ckhxxyl', title: '出:化学需氧量(mg/L)', width: 200 },
+ { field: 'ckshxll', title: '出:生化需氧量(mg/L)', width: 200 },
+ { field: 'ckad', title: '出:氨氮(mg/L)', width: 200 },
+ { field: 'ckxfw', title: '出:悬浮物(mg/L)', width: 200 },
+ { field: 'jkhxxyl', title: '进:化学需氧量(mg/L)', width: 200 },
+ { field: 'jkshxll', title: '进:生化需氧量(mg/L)', width: 200 },
+ { field: 'jkad', title: '进:氨氮(mg/L)', width: 200 },
+ { field: 'jkxfw', title: '进:悬浮物(mg/L)', width: 200 },
]],
onClickRow: function (index, row) {
@@ -154,27 +133,15 @@
function addDrain() {
$('#drainDialog').dialog('open').dialog('setTitle', '新增排放口').window('center');
$('#drainForm').form('clear');
- drain_action_url = '/api/enp/drain/create/'
- }
- function addGasEmitRecord() {
-
- var row = $('#drainTable').datagrid('getSelected');
- if(row){
- $('#gasEmitDialog').dialog('open').dialog('setTitle', '新增记录').window('center');
- $('#gasEmitForm').form('clear');
- $('#gasEmitForm_drain').attr('value', row.id);
- record_action_url = '/api/enp/gasemit/create/';
- }else{
- $.messager.alert('提示', '请先选择左侧排放口!');
- }
-
+ drain_action_url = '/api/enp/drains/create/'
}
+
function editDrain(){
var row = $('#draineTable').datagrid('getSelected');
if(row){
$('#drainDialog').dialog('open').dialog('setTitle', '编辑排放口').window('center');
$('#drainForm').form('load', row);
- drain_action_url = '/api/enp/drain/update/'}
+ drain_action_url = '/api/enp/drains/update/'}
else{
$.messager.alert('提示', '请选择一条数据!');
}
@@ -197,24 +164,7 @@
},
});
}
- function saveGasEmitRecord() {
- var data = $('#gasEmitForm').serializeJSON();
- $.ajax({
- type: "POST",
- url: record_action_url,
- data: JSON.stringify(data),
- datatype: "json",
- processData: false,
- contentType: "application/json;charset=utf-8",
- beforeSend: function () {
- return $('#gasEmitForm').form('validate')
- },
- success: function (data) {
- $("#gasEmitTable").datagrid('reload');
- $("#gasEmitDialog").dialog("close");
- },
- });
- }
+
function delDrain() {
var row = $('#drainTable').datagrid('getSelected');
if (row) {
@@ -223,7 +173,7 @@
var data = { id: row.id }
$.ajax({
type: "POST",
- url: '/api/enp/drain/delete/',
+ url: '/api/enp/drains/delete/',
data: JSON.stringify(data),
datatype: "json",
beforeSend: function () { },
@@ -242,22 +192,70 @@
}
else { $.messager.alert('提示', '请选择一条数据!'); }
}
- function delGasEmitRecord() {
- var row = $('#gasEmitTable').datagrid('getSelected');
+ //新增
+ function adddetection() {
+ var row = $('#drainTable').datagrid('getSelected');
+ if(row){
+ $('#detectionDialog').dialog('open').dialog('setTitle', '新增记录').window('center');
+ $('#detectionForm').form('clear');
+ $('#gasEmitForm_drain').attr('value', row.id);
+ record_action_url = '/api/enp/detection/create/';
+ }else{
+ $.messager.alert('提示', '请先选择左侧排放口!');
+ }
+
+
+
+ }
+ var detection_action_url = '/api/enp/detection/create/';
+ //保存数据
+ function savedetection() {
+ var data = $('#detectionForm').serializeJSON();
+ $.ajax({
+ type: "POST",
+ url: detection_action_url,
+ data: JSON.stringify(data),
+ datatype: "json",
+ processData: false,
+ contentType: "application/json;charset=utf-8",
+ beforeSend: function () {
+ return $('#detectionForm').form('validate')
+ },
+ success: function (data) {
+ $("#detectionTable").datagrid('reload');
+ $("#detectionDialog").dialog("close");
+
+ },
+ });
+ }
+ //编辑数据
+ function edidetection(){
+ var row = $('#detectionTable').datagrid('getSelected');
+ if(row){
+ $('#detectionDialog').dialog('open').dialog('setTitle', '编辑废水污染物检测结').window('center');
+ $('#detectionForm').form('load', row);
+ detection_action_url = '/api/enp/detection/update/'}
+ else{
+ $.messager.alert('提示', '请选择一条数据!');
+ }
+ }
+ //删除数据
+ function deldetection(){
+ var row = $('#detectionTable').datagrid('getSelected');
if (row) {
$.messager.confirm('提示', '确定删除吗?', function (r) {
if (r) {
var data = { id: row.id }
$.ajax({
type: "POST",
- url: '/api/enp/gasemit/delete/',
+ url: '/api/enp/detection/delete/',
data: JSON.stringify(data),
datatype: "json",
beforeSend: function () { },
success: function (data) {
if (data.code == 1) {
- $("#gasEmitTable").datagrid('reload');
- // $("#gasEmitTable").datagrid('reload');
+ $("#detectionTable").datagrid('reload');
+ $("#detectionTable").datagrid('reload');
}
else {
$.messager.alert('提示', '操作失败!');
@@ -268,5 +266,6 @@
});
}
else { $.messager.alert('提示', '请选择一条数据!'); }
+
}
\ No newline at end of file
diff --git a/enp/urls_api.py b/enp/urls_api.py
index 65a58e2d..63b41bcd 100644
--- a/enp/urls_api.py
+++ b/enp/urls_api.py
@@ -3,7 +3,10 @@ from . import views
urlpatterns = [
path('waste/
/', views.ApiWaste),
- path('drain//', views.ApiDrain),
+ path('drain//', views.ApiDrainq),#排气口
+ path('drains//', views.ApiDrains),#排水口
+ path('draindt//', views.ApiDraindt),#排口地图
+
path('normalwasterecord//', views.ApiNormalWasteRecord),
path('dwastemakelist//', views.ApiDWasteMakeList),
path('dwastemakerecord//', views.ApiDWasteMakeRecord),
diff --git a/enp/views.py b/enp/views.py
index 2a9b7146..e3a205e7 100644
--- a/enp/views.py
+++ b/enp/views.py
@@ -404,9 +404,11 @@ def ApiDetection(request, action):
user = User.objects.get(userid=request.session['userid'])
if action == 'list':
objs = Detection.objects.filter(usecomp=user.usecomp, is_deleted=False)
+ if request.GET.get('drain', None):
+ objs = objs.filter(drain=request.GET.get('drain'))
total = objs.count()
startnum, endnum = fenye(request)
- objs = objs.order_by('-create_time')[startnum:endnum].values('id', 'number', 'jcDate', 'jctime', 'ckhxxyl', 'ckshxll',
+ objs = objs.order_by('-create_time')[startnum:endnum].values('id', 'drain' , 'drain__name', 'drain__number','jcDate', 'jctime', 'ckhxxyl', 'ckshxll',
'ckad', 'ckxfw', 'jkhxxyl', 'jkshxll', 'jkad', 'jkxfw')
return HttpResponse(transjson(total, objs), content_type="application/json")
elif action == 'create':
@@ -415,7 +417,7 @@ def ApiDetection(request, action):
obj.create_by = user
obj.update_by = user
obj.usecomp = user.usecomp
- obj.number = data['number']
+ obj.drain = Drain.objects.get(id=data['drain'])
obj.jcDate = data['jcDate']
obj.jctime = data['jctime']
obj.ckhxxyl = data['ckhxxyl']
@@ -429,25 +431,7 @@ def ApiDetection(request, action):
obj.save()
return JsonResponse({"code":1})
- elif action == 'update':
- data = json.loads(request.body.decode('utf-8'))
- obj = Detection.objects.get(id=data['id'])
- obj.create_by = user
- obj.update_by = user
- obj.usecomp = user.usecomp
- obj.number = data['number']
- obj.jcDate = data['jcDate']
- obj.jctime = data['jctime']
- obj.ckhxxyl = data['ckhxxyl']
- obj.ckshxll = data['ckshxll']
- obj.ckad = data['ckad']
- obj.ckxfw = data['ckxfw']
- obj.jkhxxyl = data['jkhxxyl']
- obj.jkshxll = data['jkshxll']
- obj.jkad = data['jkad']
- obj.jkxfw = data['jkxfw']
- obj.save()
- return JsonResponse({"code":1})
+
elif action == 'delete':
data = json.loads(request.body.decode('utf-8'))
obj = Detection.objects.get(id=data['id'])
@@ -685,11 +669,11 @@ def ApiDWasteHandleRecord(request,action):
obj = DWasteHandleRecord.objects.get(id=data['id'])
obj.delete()
return JsonResponse({"code":1})
-
-def ApiDrain(request, action):
+#排气排放口
+def ApiDrainq(request, action):
user = User.objects.get(userid=request.session['userid'])
if action == 'list':
- objs = Drain.objects.filter(usecomp=user.usecomp, is_deleted=False)
+ objs = Drain.objects.filter(usecomp=user.usecomp, is_deleted=False,type=20)
total = objs.count()
startnum, endnum = fenye(request)
objs = objs.order_by('id')[startnum:endnum].values('id', 'number', 'name')
@@ -702,6 +686,7 @@ def ApiDrain(request, action):
data = json.loads(request.body.decode('utf-8'))
obj= Drain()
obj.number = data['number']
+ obj.type = 20
obj.name = data['name']
obj.create_by = user
obj.update_by = user
@@ -717,11 +702,69 @@ def ApiDrain(request, action):
data = json.loads(request.body.decode('utf-8'))
obj = Drain.objects.get(id=data['id'])
obj.number = data['number']
+ obj.type = 20
obj.name = data['name']
obj.update_by=user
obj.save()
return JsonResponse({"code":1})
+#排水排放口
+def ApiDrains(request, action):
+ user = User.objects.get(userid=request.session['userid'])
+ if action == 'list':
+ objs = Drain.objects.filter(usecomp=user.usecomp, is_deleted=False,type=10)
+ total = objs.count()
+ startnum, endnum = fenye(request)
+ objs = objs.order_by('id')[startnum:endnum].values('id', 'number', 'name')
+ return HttpResponse(transjson(total, objs), content_type="application/json")
+ elif action == 'combobox':
+ objs = Drain.objects.filter(usecomp=user.usecomp, is_deleted=False).order_by('id')
+ data = objs.values('id', 'number', 'name')
+ return JsonResponse(list(data), safe=False)
+ elif action == 'create':
+ data = json.loads(request.body.decode('utf-8'))
+ obj= Drain()
+ obj.number = data['number']
+ obj.name = data['name']
+ obj.type = 10
+ obj.create_by = user
+ obj.update_by = user
+ obj.usecomp = user.usecomp
+ obj.save()
+ return JsonResponse({"code":1})
+ elif action == 'delete':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Drain.objects.get(id=data['id'])
+ obj.delete()
+ return JsonResponse({"code":1})
+ elif action == 'update':
+ data = json.loads(request.body.decode('utf-8'))
+ obj = Drain.objects.get(id=data['id'])
+ obj.number = data['number']
+ obj.type = 10
+ obj.name = data['name']
+ obj.update_by=user
+ obj.save()
+ return JsonResponse({"code":1})
+#排口用于地图
+def ApiDraindt(request, action):
+ user = User.objects.get(userid=request.session['userid'])
+
+ if action == 'list':
+ objs = Drain.objects.filter(usecomp=user.usecomp, is_deleted=False)
+ total = objs.count()
+ startnum, endnum = fenye(request)
+ objs = objs.order_by('id')[startnum:endnum].values('id', 'number', 'name','type','location')
+ return HttpResponse(transjson(total, objs), content_type="application/json")
+#首页展示地图
+ elif action == 'allmap':
+ objs = Drain.objects.filter(usecomp=user.usecomp, is_deleted=False).values('id', 'number', 'name','type','location')
+ return HttpResponse(json.dumps(list(objs)), content_type="application/json")
+ elif action == 'bind':
+ data = json.loads(request.body.decode('utf-8'))
+ Drain.objects.filter(id=data['id']).update(location=data['polygon'])
+ return JsonResponse({"code": 1})
+#排气监测数据
def ApiGasEmit(request,action):
user = User.objects.get(userid=request.session['userid'])
if action == 'list':
diff --git a/safesite/static/safesite/mystatic/js/util.js b/safesite/static/safesite/mystatic/js/util.js
index 2508d228..748ffdd5 100644
--- a/safesite/static/safesite/mystatic/js/util.js
+++ b/safesite/static/safesite/mystatic/js/util.js
@@ -602,6 +602,7 @@ function mapupdate() {
}
})
$.get('/api/mapshow?a=trouble', function (res) {
+
for (let i = 0, len = res.length; i < len; i++) {
var data = res[i]
data.id = data.yhqy__id
@@ -635,6 +636,21 @@ function mapupdate() {
setPoint(data)
}
})
+ //监测地图,排口获取
+ $.get('/api/enp/draindt/allmap', function (res) {
+ console.log(res);
+ for (let i = 0; i < res.length; i++) {
+
+ var data = res[i]
+ data.id = data.id
+ data.number = data.number
+ data.location = data.location
+ data.name = data.name
+ data.type = 'pk'
+ setPoint(data)
+
+ }
+ })
}
}
function checksession(){
diff --git a/safesite/templates/areajiance.html b/safesite/templates/areajiance.html
new file mode 100644
index 00000000..08f5a325
--- /dev/null
+++ b/safesite/templates/areajiance.html
@@ -0,0 +1,289 @@
+
+
\ No newline at end of file
diff --git a/safesite/templates/jianceditu.html b/safesite/templates/jianceditu.html
new file mode 100644
index 00000000..31ce57be
--- /dev/null
+++ b/safesite/templates/jianceditu.html
@@ -0,0 +1,209 @@
+
+
+
+
+
+
diff --git a/safesite/templates/main.html b/safesite/templates/main.html
index 1ca4a69f..f1ac33a8 100644
--- a/safesite/templates/main.html
+++ b/safesite/templates/main.html
@@ -260,6 +260,13 @@ float: left;">
+
+
+
@@ -333,6 +340,7 @@ float: left;">
+
+
{% endif %}