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,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,Archives from safesite.views import transjson, fenye, MyEncoder from django.http import HttpResponse, JsonResponse import json # Create your views here. def myAuthentication(BaseAuthentication): def authenticate(self, request): user = User.objects.get(userid=request.session['userid']) if user: return (user, None) raise AuthenticationFailed() def HtmlWaste(request): return render(request, 'waste.html') def HtmlDangerousWaste(request): return render(request, 'dangerousWaste.html') def HtmlWgas(request): return render(request, 'wgas.html') def HtmlWwater(request): return render(request, 'wwater.html') 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 HtmlArchives(request): return render(request, 'archives.html') def HtmlZprevention(request): return render(request, 'zprevention.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': objs = Waste.objects.filter(usecomp=user.usecomp, is_deleted=False) objs = objs.filter(type=request.GET.get('type', 1)) total = objs.count() startnum, endnum = fenye(request) objs = objs.order_by('id')[startnum:endnum].values('id', 'number', 'name', 'type') return HttpResponse(transjson(total, objs), content_type="application/json") elif action == 'combobox': objs = Waste.objects.filter(usecomp=user.usecomp, is_deleted=False) objs = objs.filter(type=request.GET.get('type', 1)).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= Waste() obj.number = data['number'] obj.name = data['name'] obj.type = data['type'] 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 = Waste.objects.get(id=data['id']) obj.delete() return JsonResponse({"code":1}) elif action == 'update': data = json.loads(request.body.decode('utf-8')) obj = Waste.objects.get(id=data['id']) obj.number = data['number'] obj.name = data['name'] obj.update_by=user obj.save() return JsonResponse({"code":1}) def ApiNormalWasteRecord(request, action): user = User.objects.get(userid=request.session['userid']) if action == 'list': objs = NormalWasteRecord.objects.filter(usecomp=user.usecomp, is_deleted=False) if request.GET.get('waste', None): objs = objs.filter(waste=request.GET.get('waste')) total = objs.count() startnum, endnum = fenye(request) objs = objs.order_by('-create_time')[startnum:endnum].values('id', 'gen_date', 'dis_date', 'gen_count', 'dis_count', 'operator__name', 'waste__name', 'waste', 'operator', 'inv_count') return HttpResponse(transjson(total, objs), content_type="application/json") elif action == 'create': data = json.loads(request.body.decode('utf-8')) obj = NormalWasteRecord() obj.waste = Waste.objects.get(id=data['waste']) obj.operator = User.objects.get(userid=data['operator']) obj.create_by = user obj.update_by = user obj.usecomp = user.usecomp obj.gen_date = data['gen_date'] obj.dis_date = data['dis_date'] obj.gen_count = data['gen_count'] obj.dis_count = data['dis_count'] obj.inv_count = data['inv_count'] obj.save() return JsonResponse({"code":1}) elif action == 'delete': data = json.loads(request.body.decode('utf-8')) 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) 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', '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': data = json.loads(request.body.decode('utf-8')) obj = Detection() obj.create_by = user obj.update_by = user obj.usecomp = user.usecomp obj.drain = Drain.objects.get(id=data['drain']) 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 ApiZprevention(request, action): user = User.objects.get(userid=request.session['userid']) if action == 'list': objs = Prevention.objects.filter(usecomp=user.usecomp, is_deleted=False,preventiontype=3) total = objs.count() startnum, endnum = fenye(request) objs = objs.order_by('-create_time')[startnum:endnum].values('id', 'name', 'number', 'type', 'cs_name', 'desig_nnumber', 'em_unit', 'start_time', 'end_time', 'state','zlxl','clfs','hdl' ) 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=3 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.zlxl = data['zlxl'] obj.clfs = data['clfs'] obj.hdl = data['hdl'] 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=3 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.zlxl = data['zlxl'] obj.clfs = data['clfs'] obj.hdl = data['hdl'] 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 ApiDWasteMakeList(request,action): user = User.objects.get(userid=request.session['userid']) if action == 'list': objs = DWasteMakeList.objects.filter(usecomp=user.usecomp, is_deleted=False) if request.GET.get('waste', None): objs = objs.filter(waste=request.GET.get('waste')) total = objs.count() startnum, endnum = fenye(request) objs = objs.order_by('-create_time')[startnum:endnum].values('id', 'waste', 'process', 'source', 'goto', 'companyname', 'gen_count', 'license', 'waste__name', 'waste__number', 'create_time') return HttpResponse(transjson(total, objs), content_type="application/json") elif action == 'create': data = json.loads(request.body.decode('utf-8')) obj = DWasteMakeList() obj.waste = Waste.objects.get(id=data['waste']) obj.create_by = user obj.update_by = user obj.usecomp = user.usecomp obj.process = data['process'] obj.source = data['source'] obj.goto = data['goto'] obj.companyname = data['companyname'] obj.gen_count = data['gen_count'] obj.license = data['license'] obj.save() return JsonResponse({"code":1}) elif action == 'delete': data = json.loads(request.body.decode('utf-8')) obj = DWasteMakeList.objects.get(id=data['id']) obj.delete() return JsonResponse({"code":1}) def ApiDWasteMakeRecord(request,action): user = User.objects.get(userid=request.session['userid']) if action == 'list': objs = DWasteMakeRecord.objects.filter(usecomp=user.usecomp, is_deleted=False) if request.GET.get('waste', None): objs = objs.filter(waste=request.GET.get('waste')) total = objs.count() startnum, endnum = fenye(request) objs = objs.order_by('-create_time')[startnum:endnum].values('id', 'waste', 'gen_time', 'gen_count', 'container', 'container_count', 'trans_time', 'trans_count', 'waste__name', 'waste__number', 'goto') return HttpResponse(transjson(total, objs), content_type="application/json") elif action == 'create': data = json.loads(request.body.decode('utf-8')) obj = DWasteMakeRecord() obj.waste = Waste.objects.get(id=data['waste']) obj.create_by = user obj.update_by = user obj.usecomp = user.usecomp obj.gen_time = data['gen_time'] obj.gen_count = data['gen_count'] obj.goto = data['goto'] obj.container = data['container'] obj.container_count = data['container_count'] obj.trans_time = data['trans_time'] obj.trans_count = data['trans_count'] obj.save() return JsonResponse({"code":1}) elif action == 'delete': data = json.loads(request.body.decode('utf-8')) obj = DWasteMakeRecord.objects.get(id=data['id']) obj.delete() return JsonResponse({"code":1}) def ApiDWasteKeepRecord(request,action): user = User.objects.get(userid=request.session['userid']) if action == 'list': objs = DWasteKeepRecord.objects.filter(usecomp=user.usecomp, is_deleted=False) if request.GET.get('waste', None): objs = objs.filter(waste=request.GET.get('waste')) total = objs.count() startnum, endnum = fenye(request) objs = objs.order_by('-create_time')[startnum:endnum].values('id', 'waste', 'in_time', 'in_count', 'source', 'container', 'container_count', 'place', 'out_time', 'out_count', 'waste__name', 'waste__number', 'goto') return HttpResponse(transjson(total, objs), content_type="application/json") elif action == 'create': data = json.loads(request.body.decode('utf-8')) obj = DWasteKeepRecord() obj.waste = Waste.objects.get(id=data['waste']) obj.create_by = user obj.update_by = user obj.usecomp = user.usecomp obj.in_time = data['in_time'] obj.in_count = data['in_count'] obj.source = data['source'] obj.place = data['place'] obj.goto = data['goto'] obj.container = data['container'] obj.container_count = data['container_count'] obj.out_time = data['out_time'] obj.out_count = data['out_count'] obj.save() return JsonResponse({"code":1}) elif action == 'delete': data = json.loads(request.body.decode('utf-8')) obj = DWasteKeepRecord.objects.get(id=data['id']) obj.delete() return JsonResponse({"code":1}) def ApiDWasteHandleRecord(request,action): user = User.objects.get(userid=request.session['userid']) if action == 'list': objs = DWasteHandleRecord.objects.filter(usecomp=user.usecomp, is_deleted=False) if request.GET.get('waste', None): objs = objs.filter(waste=request.GET.get('waste')) total = objs.count() startnum, endnum = fenye(request) objs = objs.order_by('-create_time')[startnum:endnum].values('id', 'waste', 'accept_time', 'accept_count', 'source', 'container', 'container_count', 'handle_time', 'handle_method', 'waste__name', 'waste__number') return HttpResponse(transjson(total, objs), content_type="application/json") elif action == 'create': data = json.loads(request.body.decode('utf-8')) obj = DWasteHandleRecord() obj.waste = Waste.objects.get(id=data['waste']) obj.create_by = user obj.update_by = user obj.usecomp = user.usecomp obj.accept_time = data['accept_time'] obj.accept_count = data['accept_count'] obj.source = data['source'] obj.container = data['container'] obj.container_count = data['container_count'] obj.handle_time = data['handle_time'] obj.handle_method = data['handle_method'] obj.save() return JsonResponse({"code":1}) elif action == 'delete': data = json.loads(request.body.decode('utf-8')) obj = DWasteHandleRecord.objects.get(id=data['id']) obj.delete() return JsonResponse({"code":1}) #排气排放口 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,type=20) 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.type = 20 obj.name = data['name'] 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 = 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': objs = GasEmit.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', 'drain', 'watch_time', 'out_smoke', 'out_o2', 'out_so2', 'out_so2_s', 'out_particle', 'out_particle_s', 'drain__name', 'drain__number' , 'out_nox', 'out_nox_s', 'in_smoke', 'in_o2', 'in_so2', 'in_so2_s', 'in_particle', 'in_particle_s' , 'in_nox', 'in_nox_s') return HttpResponse(transjson(total, objs), content_type="application/json") elif action == 'create': data = json.loads(request.body.decode('utf-8')) obj = GasEmit() obj.drain = Drain.objects.get(id=data['drain']) obj.create_by = user obj.update_by = user obj.usecomp = user.usecomp obj.watch_time = data['watch_time'] obj.out_smoke = data['out_smoke'] obj.out_o2 = data['out_o2'] obj.out_so2 = data['out_so2'] obj.out_so2_s = data['out_so2_s'] obj.out_particle = data['out_particle'] obj.out_particle_s = data['out_particle_s'] obj.out_nox = data['out_nox'] obj.out_nox_s = data['out_nox_s'] obj.in_smoke = data['in_smoke'] obj.in_o2 = data['in_o2'] obj.in_so2 = data['in_so2'] obj.in_so2_s = data['in_so2_s'] obj.in_particle = data['in_particle'] obj.in_particle_s = data['in_particle_s'] obj.in_nox = data['in_nox'] obj.in_nox_s = data['in_nox_s'] obj.save() return JsonResponse({"code":1}) elif action == 'delete': data = json.loads(request.body.decode('utf-8')) obj = GasEmit.objects.get(id=data['id']) 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): element_list = list(GasEmit.objects.filter(is_deleted=False, drain__id=drainId)\ .order_by('-create_time')[0:5].values_list(element, flat=True)) element_list.reverse() if len(element_list)>=3: result = GM11(np.array(element_list), 3) element_list.extend(result['predict']['value']) ret = {"code":1, "data":[round(i,2) for i in element_list]} return JsonResponse(ret) else: return JsonResponse({"code":0, "msg":'至少需要三条记录'})