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] =?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")