diff --git a/enp/migrations/0020_archives.py b/enp/migrations/0020_archives.py
new file mode 100644
index 00000000..552b18f8
--- /dev/null
+++ b/enp/migrations/0020_archives.py
@@ -0,0 +1,38 @@
+# Generated by Django 2.2.8 on 2022-08-02 13:58
+
+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', '0019_auto_20220517_1717'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Archives',
+ 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='删除标记')),
+ ('title', models.CharField(max_length=50)),
+ ('path', models.CharField(blank=True, max_length=200, null=True)),
+ ('createdate', models.DateTimeField(default=django.utils.timezone.now)),
+ ('deletemark', models.IntegerField(default=1)),
+ ('filepath', models.CharField(blank=True, max_length=200, null=True)),
+ ('reads', models.IntegerField(default='0')),
+ ('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='archives_create_by', to='safesite.User', verbose_name='创建人')),
+ ('createuser', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='safesite.User')),
+ ('type', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='safesite.Dickey')),
+ ('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='archives_update_by', to='safesite.User', verbose_name='最后编辑人')),
+ ],
+ options={
+ 'abstract': False,
+ },
+ ),
+ ]
diff --git a/enp/migrations/0021_remove_archives_filepath.py b/enp/migrations/0021_remove_archives_filepath.py
new file mode 100644
index 00000000..0ad4dc62
--- /dev/null
+++ b/enp/migrations/0021_remove_archives_filepath.py
@@ -0,0 +1,17 @@
+# Generated by Django 2.2.8 on 2022-08-02 14:09
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('enp', '0020_archives'),
+ ]
+
+ operations = [
+ migrations.RemoveField(
+ model_name='archives',
+ name='filepath',
+ ),
+ ]
diff --git a/enp/migrations/0022_archives_usecomp.py b/enp/migrations/0022_archives_usecomp.py
new file mode 100644
index 00000000..1836629f
--- /dev/null
+++ b/enp/migrations/0022_archives_usecomp.py
@@ -0,0 +1,20 @@
+# Generated by Django 2.2.8 on 2022-08-02 14:55
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('safesite', '0396_auto_20220304_1648'),
+ ('enp', '0021_remove_archives_filepath'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='archives',
+ name='usecomp',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='safesite.Partment', verbose_name='所属公司'),
+ ),
+ ]
diff --git a/enp/migrations/0023_archives_note.py b/enp/migrations/0023_archives_note.py
new file mode 100644
index 00000000..b14e155d
--- /dev/null
+++ b/enp/migrations/0023_archives_note.py
@@ -0,0 +1,18 @@
+# Generated by Django 2.2.8 on 2022-08-02 16:48
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('enp', '0022_archives_usecomp'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='archives',
+ name='note',
+ field=models.CharField(blank=True, max_length=500, null=True, verbose_name='备注'),
+ ),
+ ]
diff --git a/enp/models.py b/enp/models.py
index 5f76113a..9590578e 100644
--- a/enp/models.py
+++ b/enp/models.py
@@ -1,6 +1,8 @@
from django.db import models
-from safesite.models import User, Partment
+from safesite.models import User, Partment,Dickey
from utils.models import CommonModel
+
+import django.utils.timezone as timezone
from django.contrib.postgres.fields import JSONField
# Create your models here.
@@ -252,3 +254,17 @@ class Waterequipment(CommonModel):
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='所属公司')
+class Archives(CommonModel):
+ """
+ 档案管理
+ """
+ title = models.CharField(max_length=50)#标题
+ type=models.ForeignKey(Dickey,on_delete=models.CASCADE,null=True,blank=True)#档案类型
+ path = models.CharField(max_length=200,null=True,blank=True)#上传文件
+ createuser = models.ForeignKey(User,on_delete=models.CASCADE)#上传者
+ createdate = models.DateTimeField(default = timezone.now)#上传时间
+ deletemark = models.IntegerField(default=1)#是否删除
+ reads = models.IntegerField(default='0')
+ note = models.CharField('备注', max_length=500, null=True, blank=True)
+ usecomp = models.ForeignKey(Partment, on_delete=models.CASCADE, null=True, blank=True,verbose_name='所属公司')
+
diff --git a/enp/templates/archives.html b/enp/templates/archives.html
new file mode 100644
index 00000000..1ead04d0
--- /dev/null
+++ b/enp/templates/archives.html
@@ -0,0 +1,389 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/enp/urls.py b/enp/urls.py
index 439ff14c..2ea9c59a 100644
--- a/enp/urls.py
+++ b/enp/urls.py
@@ -13,4 +13,7 @@ urlpatterns = [
path('detection/', views.HtmlDetection),
path('fuel/', views.HtmlFuel),
path('waterequipment/', views.HtmlWaterequipment),
+ path('archives/', views.HtmlArchives),
+
+
]
\ No newline at end of file
diff --git a/enp/urls_api.py b/enp/urls_api.py
index 63b41bcd..cc0169e6 100644
--- a/enp/urls_api.py
+++ b/enp/urls_api.py
@@ -21,6 +21,8 @@ urlpatterns = [
path('detection//', views.ApiDetection),#废水污染物检测
path('fuel//', views.ApiFuel),#燃料信息表
path('waterequipment//', views.ApiWaterequipment),#废水监测仪器信息表
+ path('archives//', views.ApiArchives),#档案管理表
+
diff --git a/enp/views.py b/enp/views.py
index e3a205e7..e4546cb4 100644
--- a/enp/views.py
+++ b/enp/views.py
@@ -1,9 +1,11 @@
+import time
+import os
from django.shortcuts import render
from rest_framework.views import APIView
from rest_framework.authentication import BaseAuthentication
-from safesite.models import User
+from safesite.models import User,Dickey,Partment
from rest_framework.exceptions import AuthenticationFailed
-from .models import DWasteHandleRecord, DWasteKeepRecord, DWasteMakeList, DWasteMakeRecord, Drain, GasEmit, NormalWasteRecord, Waste, Facilities,Prevention,abnormal,Detection,Fuel,Waterequipment
+from .models import DWasteHandleRecord, DWasteKeepRecord, DWasteMakeList, DWasteMakeRecord, Drain, GasEmit, NormalWasteRecord, Waste, Facilities,Prevention,abnormal,Detection,Fuel,Waterequipment,Archives
from safesite.views import transjson, fenye, MyEncoder
from django.http import HttpResponse, JsonResponse
import json
@@ -44,8 +46,27 @@ def HtmlWaterequipment(request):
return render(request, 'waterequipment.html')
def HtmlGprevention(request):
return render(request, 'gprevention.html')
+def HtmlArchives(request):
+ return render(request, 'archives.html')
+# 转换为combobox所用string
-
+
+def transstr(obj, str1, str2):
+ keylist = []
+ for i in list(obj):
+ keydictstr = '{"value":"' + str(i[str1])+'","text":"'+i[str2]+'"}'
+ keylist.append(keydictstr)
+ keystr = '['+','.join(keylist)+']'
+ return keystr
+ # 获取user所在公司
+
+
+def getcompany(x):
+ a = User.objects.get(userid=x)
+ if a.ubelongpart.iscompany == 1:
+ return str(a.ubelongpart.partid)
+ else:
+ return a.ubelongpart.partlink.split(',')[1]
def ApiWaste(request, action):
user = User.objects.get(userid=request.session['userid'])
if action == 'list':
@@ -809,6 +830,73 @@ def ApiGasEmit(request,action):
obj.delete()
return JsonResponse({"code":1})
+#档案管理
+def ApiArchives(req,action):
+ userid = req.session['userid']
+ companyid = getcompany(userid)
+ if action =='dic':
+
+ dicclass=req.GET.get('dicclass')
+ a = Dickey.objects.filter(dicparent=dicclass,deletemark=1)
+ a = a.values('dickeyid','dicparent__dicname','dickeyname','dicparent__dicid','detail').order_by('dickeyid')
+ return HttpResponse(transstr(a,'dickeyid','dickeyname'),content_type="application/json")
+ elif action== 'upload':#文件上传
+ username = User.objects.get(userid=req.session['userid']).username
+ file_name = time.strftime('%Y%m%d%H%M%S')+ '_' + req.FILES ['mf'].name
+ user_upload_folder = os.path.join('media/caozuo', username)
+ if not os.path.exists(user_upload_folder):
+ os.mkdir(user_upload_folder)
+ filepath = os.path.join(user_upload_folder, file_name)
+ filepath = filepath.replace('\\','/')
+ with open( filepath, 'wb') as f:
+ f.write(req.FILES['mf'].read())
+ return JsonResponse({"code":1,"filename":file_name,"filepath":filepath})
+ elif action=='create':#新增档案
+
+ obj = Archives()
+ data = json.loads(req.body.decode('utf-8'))
+ obj.title = data['title']
+ obj.note = data['note']
+ if 'type' in data and data['type']:
+ obj.type= Dickey.objects.get(dickeyid=data['type'])
+ if data['filepath']:
+ obj.path=data['filepath']
+ obj.createuser=User.objects.get(userid=userid)
+ if 'createdate' in data and data['createdate']:
+ obj.createdate=data['createdate']
+ obj.usecomp=Partment.objects.get(partid=companyid)
+ obj.save()
+
+ return JsonResponse({"code":1})
+ elif action=='listall':#责任列表
+ startnum,endnum=fenye(req)
+ a = Archives.objects.filter(usecomp=companyid,deletemark=1).order_by('id')
+ total = a.count()
+ startnum,endnum=fenye(req)
+ a = a[startnum:endnum].values('id','title','path','type__dickeyname','createdate','createuser__name','reads','note')
+ return HttpResponse(transjson(total,a),content_type="application/json")
+ elif action == 'delete':
+ data = json.loads(req.body.decode('utf-8'))
+ obj = Archives.objects.get(id=data['id'])
+ obj.delete()
+ return JsonResponse({"code":1})
+
+ elif action == 'update':
+ data = json.loads(req.body.decode('utf-8'))
+ obj = Archives.objects.get(id=data['id'])
+ obj.title = data['title']
+ obj.note = data['note']
+ if 'type' in data and data['type']:
+ obj.type= Dickey.objects.get(dickeyid=data['type'])
+ if data['filepath']:
+ obj.path=data['filepath']
+ obj.createuser=User.objects.get(userid=userid)
+ if 'createdate' in data and data['createdate']:
+ obj.createdate=data['createdate']
+ obj.usecomp=Partment.objects.get(partid=companyid)
+ obj.save()
+ return JsonResponse({"code":1})
+
import numpy as np
from .predict import GM11
def ApiGasPredict(request, element, drainId):
diff --git a/safesite/templates/jianceditu.html b/safesite/templates/jianceditu.html
index 31ce57be..386b2423 100644
--- a/safesite/templates/jianceditu.html
+++ b/safesite/templates/jianceditu.html
@@ -1,9 +1,9 @@
-
-