| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419 |
- # -*- coding: utf-8 -*-
- import array
- from django.shortcuts import render
- from django.views.generic.base import View
- from itertools import chain
- import requests
- from requests.auth import HTTPBasicAuth
- from django.core.exceptions import ObjectDoesNotExist
- from django.http import JsonResponse, HttpResponse
- from django.views.generic import ListView
- from django.core import serializers
- from datetime import datetime, date
- from PIL import Image
- import time
- import json
- from io import BytesIO
- from apps.AppInfoManage.models import MyUser, User_Log, Equip, SCDdata, SCDstatus, CBDdata, CBDstatus, YBQdata, YBQstatus, JKdata, BZYstatus, BZYdata, SCDstatus_all, CBDstatus_all,\
- QXZswitchstatus, QXZswitchdata, QXZAutoswitch, QXZstatus, QXZTimingswitch, Msg_Conf, CBDphoto, Equip_SimInfo
- # 引用查询流量接口
- from apps.SimInfo.views import get_siminfo
- # 引用全局变量
- from django.conf import settings
- from django.views.decorators.csrf import csrf_exempt
- # 测报灯管理视图:
- class CBDMsg_View(ListView):
- def get(self, request):
- # x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
- # if x_forwarded_for:
- # ip = x_forwarded_for.split(',')[0]#所以这里是真实的ip
- # print("------------real ip")
- # else:
- # ip = request.META.get('REMOTE_ADDR')#这里获得代理ip
- # print("------------unreal ip")
- # 获取主机名
- # hostname = socket.gethostname()
- # #获取IP
- # ip = socket.gethostbyname(hostname)
- # print("获取的IP为:",ip)
- current_user = request.session.get('username')
- current_user = MyUser.objects.get(username=current_user)
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- print("---用户")
- role = "user"
- nums = CBDstatus.objects.filter(
- equip_id__equip_user=current_user).count()
- elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
- print("---代理商")
- role = "user"
- nums = CBDstatus.objects.filter(
- equip_id__equip_agency=current_user.user_agency).count()
- else:
- print("---管理员")
- role = "superuser"
- nums = CBDstatus.objects.all().count()
- return render(request, 'warnmanage/cbd_list.html', context={"nums": nums,"role": role})
- def post(self, request):
- if request.is_ajax():
- print("ajax-post!")
- req = request.POST.get('req')
- print("req:", req)
- # 请求数据:
- if req == "dat":
- print("---请求数据的post!")
- page = int(request.POST.get('page'))
- print("page:", page)
- current_user = request.session.get('username')
- print("current_user:", current_user)
- current_user = MyUser.objects.get(username=current_user)
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- print("---不是管理员")
- # sta1 = CBDstatus.objects.filter(
- # equip_id__equip_user=current_user, equip_id__equip_type=3)[(10*(page-1)):(page*10)] # .order_by("-equip_id__equip_add_time")
- sta1 = CBDstatus.objects.filter(equip_id__equip_user=current_user)[(10*(page-1)):(page*10)]
- elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
- print("---代理商")
- # sta1 = CBDstatus.objects.filter(
- # equip_id__equip_agency=current_user.user_agency, equip_id__equip_type=3)[(10*(page-1)):(page*10)]
- sta1 = CBDstatus.objects.filter(equip_id__equip_agency=current_user.user_agency)[(10*(page-1)):(page*10)]
- else:
- print("---管理员")
- # sta1 = CBDstatus.objects.filter(equip_id__equip_type=3)[(
- # 10*(page-1)):(page*10)] # .order_by("-equip_id__equip_add_time")
- sta1 = CBDstatus.objects.all()[(10*(page-1)):(page*10)]
- sta2 = [{"cbd_status": x.cbd_status, "upl_time": x.upl_time,
- "paramconf": x.paramconf, "serverconf": x.serverconf,
- "equip_name": x.equip_id.equip_name, "equip_desc": x.equip_id.equip_desc,
- "is_online": x.is_online, "off_time": x.off_time} for x in sta1]
- data = json.dumps(sta2, cls=CJSONEncoder, indent=4)
- # print("data:",data)
- return HttpResponse(data)
- elif req == "filter":
- f_name = request.POST.get('ename')
- print("f_name:", f_name)
- f_id = request.POST.get('f_id')
- print("f_id:", f_id)
- page = int(request.POST.get('page'))
- print("page:", page)
- dver = request.POST.get('dver')
- print("dver",dver)
- is_online = request.POST.get('is_online')
- print("is_online",is_online)
- # 读取当前用户:
- current_user = request.session.get('username')
- print("current_user:", current_user)
- current_user = MyUser.objects.get(username=current_user)
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- print("---不是管理员")
- if f_name == "" and f_id == '':
- sta1 = CBDstatus.objects.filter(
- equip_id__equip_user=current_user)
- elif f_name == "" and f_id != '':
- sta1 = CBDstatus.objects.filter(
- equip_id__equip_user=current_user, equip_id__equip_id__contains=f_id)
- elif f_name != "" and f_id == '':
- sta1 = CBDstatus.objects.filter(
- equip_id__equip_user=current_user, equip_id__equip_name__contains=f_name)
- elif f_name != "" and f_id != '':
- sta1 = CBDstatus.objects.filter(
- equip_id__equip_user=current_user, equip_id__equip_name__contains=f_name, equip_id__equip_id__contains=f_id)
- elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
- print("---代理商")
- if f_name == "" and f_id == '':
- sta1 = CBDstatus.objects.filter(
- equip_id__equip_agency=current_user.user_agency)
- elif f_name == "" and f_id != '':
- sta1 = CBDstatus.objects.filter(
- equip_id__equip_agency=current_user.user_agency, equip_id__equip_id__contains=f_id)
- elif f_name != "" and f_id == '':
- sta1 = CBDstatus.objects.filter(
- equip_id__equip_agency=current_user.user_agency, equip_id__equip_name__contains=f_name)
- elif f_name != "" and f_id != '':
- sta1 = CBDstatus.objects.filter(
- equip_id__equip_agency=current_user.user_agency, equip_id__equip_name__contains=f_name, equip_id__equip_id__contains=f_id)
- else:
- print("---管理员")
- if f_name == "" and f_id == '':
- sta1 = CBDstatus.objects.all()
- elif f_name == "" and f_id != '':
- sta1 = CBDstatus.objects.filter(
- equip_id__equip_id__contains=f_id)
- elif f_name != "" and f_id == '':
- sta1 = CBDstatus.objects.filter(
- equip_id__equip_name__contains=f_name)
- elif f_name != "" and f_id != '':
- sta1 = CBDstatus.objects.filter(
- equip_id__equip_name__contains=f_name, equip_id__equip_id__contains=f_id)
- print("在线状态------------>",is_online)
- # -----------------------------------------------------------------------------------------
- # 版本号筛选设备
- if dver != "" and is_online == "":
- sta3 = []
- for i in sta1:
- fir_v = eval(i.cbd_status)["dver"].split(".")
- if fir_v[0] == dver:
- sta3.append({"cbd_status": i.cbd_status, "upl_time": i.upl_time,
- "paramconf": i.paramconf, "serverconf": i.serverconf,
- "equip_name": i.equip_id.equip_name, "equip_desc": i.equip_id.equip_desc,
- "is_online": i.is_online, "off_time": i.off_time})
- data = {"dat": sta3[(10*(page-1)):(page*10)],
- "nums": len(sta3)}
- print("-------------",len(sta3))
- data = json.dumps(data, cls=CJSONEncoder)
- # print("data:",data)
- return HttpResponse(data)
- # -----------------------------------------------------------------------------------------
- # 在线状态筛选设备
- elif is_online != "" and dver == "":
- sta4 = []
- for i in sta1:
- if is_online == i.is_online:
- sta4.append({"cbd_status": i.cbd_status, "upl_time": i.upl_time,
- "paramconf": i.paramconf, "serverconf": i.serverconf,
- "equip_name": i.equip_id.equip_name, "equip_desc": i.equip_id.equip_desc,
- "is_online": i.is_online, "off_time": i.off_time})
- data = {"dat": sta4[(10*(page-1)):(page*10)],
- "nums": len(sta4)}
- print("-------------",len(sta4))
- data = json.dumps(data, cls=CJSONEncoder)
- # print("data:",data)
- return HttpResponse(data)
- # -----------------------------------------------------------------------------------------
- # 版本号和在线状态同时筛选设备
- elif is_online != "" and dver != "":
- sta3 = []
- for i in sta1:
- fir_v = eval(i.cbd_status)["dver"].split(".")
- if fir_v[0] == dver and i.is_online == is_online:
- sta3.append({"cbd_status": i.cbd_status, "upl_time": i.upl_time,
- "paramconf": i.paramconf, "serverconf": i.serverconf,
- "equip_name": i.equip_id.equip_name, "equip_desc": i.equip_id.equip_desc,
- "is_online": i.is_online, "off_time": i.off_time})
- data = {"dat": sta3[(10*(page-1)):(page*10)],
- "nums": len(sta3)}
- print("-------------",len(sta3))
- data = json.dumps(data, cls=CJSONEncoder)
- # print("data:",data)
- return HttpResponse(data)
- # -----------------------------------------------------------------------------------------
- sta2 = [{"cbd_status": x.cbd_status, "upl_time": x.upl_time,
- "paramconf": x.paramconf, "serverconf": x.serverconf,
- "equip_name": x.equip_id.equip_name, "equip_desc": x.equip_id.equip_desc,
- "is_online": x.is_online, "off_time": x.off_time} for x in sta1]
- data = {"dat": sta2[(10*(page-1)):(page*10)],
- "nums": sta1.count()}
- data = json.dumps(data, cls=CJSONEncoder)
- # print("data:",data)
- return HttpResponse(data)
- elif req == "paramconf":
- equip_id = request.POST.get('id')
- print("equip_id:", equip_id)
- # 读取当前设备的参数配置信息:
- sta1 = CBDstatus.objects.filter(equip_id=equip_id)
- for x in sta1:
- sta2 = {"paramconf": x.paramconf}
- data = json.dumps(sta2, cls=CJSONEncoder)
- print("配置信息的data:", data)
- return HttpResponse(data)
- elif req == "change":
- equip_id = request.POST.get('id')
- print("equip_id:", equip_id)
- equip_desc = request.POST.get('desc')
- equip_obj = Equip.objects.get(equip_id=equip_id)
- try:
- equip_obj.equip_desc = equip_desc
- equip_obj.save()
- data = "0"
- except:
- data = "1"
- return HttpResponse(data)
- # 测报灯短信配置
- class CBDMsg_Conf(ListView):
- def get(self,request):
- pass
- def post(self,request):
- e_id = request.POST.get("e_id")
- try:
- msgconf = Msg_Conf.objects.get(equip_id=e_id)
- data = msgconf.conf
- except:
- data = ""
- return HttpResponse(data)
- # 测报灯短信配置保存
- class MsgConf_Save(ListView):
- def get(self,request):
- pass
- def post(self,request):
- e_id = request.POST.get("e_id")
- e_conf = request.POST.get("conf")
- equip_obj = Equip.objects.get(equip_id=e_id)
- if Msg_Conf.objects.filter(equip_id=equip_obj).exists():
- msgconf = Msg_Conf.objects.get(equip_id=equip_obj)
- msgconf.conf = e_conf
- msgconf.save()
- else:
- Msg_Conf.objects.create(equip_id=equip_obj,conf=e_conf)
- return HttpResponse("0")
- class AlarmRange_View(View):
- def get(self, request):
- e_id = request.GET.get("e_id")
- return render(request, 'warnmanage/alarm_range.html', context={"e_id":e_id})
- def post(self, request):
- e_id = request.POST.get("e_id")
- pest_num = 0
- pest_name = []
- pest_nums = []
- pest_dict = {}
- pest_dict_new = {}
- cbd_list = CBDphoto.objects.filter(equip_id=e_id)
- for x in cbd_list:
- if x.indentify_result == None or x.indentify_result == "":
- pass
- else:
- for a in x.indentify_result.split("#"):
- pest_num = pest_num + int(a.split(",")[1])
- pest_name.append(int(a.split(",")[0]))
- pest_nums.append(int(a.split(",")[1]))
- for xx in range(len(pest_name)):
- c = {pest_name[xx]:pest_nums[xx]}
- for d in c:
- if d in pest_dict:
- pest_dict[d] = pest_dict[d] + c[d]
- else:
- pest_dict.update(c)
- print(pest_dict)
- pest_list = []
- for i in pest_dict:
- pest_list.append(i)
- data = {"pest_list":pest_list}
- data = json.dumps(data)
- return HttpResponse(data)
- class AlarmHistory_View(View):
- def get(self, request):
- current_user = request.session.get('username')
- print("current_user:", current_user)
- current_user = MyUser.objects.get(username=current_user)
- if current_user.is_superuser != True and current_user.is_staff != True: # __username
- print("---不是管理员")
- alarm_record = Alarm_record.objects.filter(equip_id__equip_user=current_user)[0:10]
- else:
- print("---管理员")
- alarm_record = Alarm_record.objects.all()
- return render(request, 'warnmanage/alarm_history.html', context={'alarm_record':alarm_record})
- def alarm_map(request):
- return render(request, 'warnmanage/alarm_map.html', context={})
- # sim卡流量提醒
- class Sim_Flow(ListView):
- def get(self,request):
- return render(request, 'warnmanage/sim_list.html', context={})
- class Sim_Flow_View(ListView):
- def get(self,request):
- current_user = request.session.get('username')
- current_user = MyUser.objects.get(username=current_user)
- page = int(request.GET.get("page"))
- e_id = request.GET.get("e_id")
- iccid = request.GET.get("iccid")
- status = request.GET.get("status")
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- print("---用户")
- if e_id:
- simlist = Equip_SimInfo.objects.filter(equip_id__equip_user=current_user,equip_id__equip_id__contains=e_id)[(10*(page-1)):(page*10)]
- nums = Equip_SimInfo.objects.filter(equip_id__equip_user=current_user,equip_id__equip_id__contains=e_id).count()
- elif iccid:
- simlist = Equip_SimInfo.objects.filter(equip_id__equip_user=current_user,iccid__contains=iccid)[(10*(page-1)):(page*10)]
- nums = Equip_SimInfo.objects.filter(equip_id__equip_user=current_user,iccid__contains=iccid).count()
- elif status:
- status = int(status)
- simlist = Equip_SimInfo.objects.filter(equip_id__equip_user=current_user,account_status=status)[(10*(page-1)):(page*10)]
- nums = Equip_SimInfo.objects.filter(equip_id__equip_user=current_user,account_status=status).count()
- else:
- simlist = Equip_SimInfo.objects.filter(equip_id__equip_user=current_user)[(10*(page-1)):(page*10)]
- nums = Equip_SimInfo.objects.filter(equip_id__equip_user=current_user).count()
- elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
- print("---代理商")
- if e_id:
- simlist = Equip_SimInfo.objects.filter(equip_id__equip_agency=current_user.user_agency,equip_id__equip_id__contains=e_id)[(10*(page-1)):(page*10)]
- nums = Equip_SimInfo.objects.filter(equip_id__equip_agency=current_user.user_agency,equip_id__equip_id__contains=e_id).count()
- elif iccid:
- simlist = Equip_SimInfo.objects.filter(equip_id__equip_agency=current_user.user_agency,iccid__contains=iccid)[(10*(page-1)):(page*10)]
- nums = Equip_SimInfo.objects.filter(equip_id__equip_agency=current_user.user_agency,iccid__contains=iccid).count()
- elif status:
- status = int(status)
- simlist = Equip_SimInfo.objects.filter(equip_id__equip_agency=current_user.user_agency,account_status=status)[(10*(page-1)):(page*10)]
- nums = Equip_SimInfo.objects.filter(equip_id__equip_agency=current_user.user_agency,account_status=status).count()
- else:
- simlist = Equip_SimInfo.objects.filter(equip_id__equip_agency=current_user.user_agency)[(10*(page-1)):(page*10)]
- nums = Equip_SimInfo.objects.filter(equip_id__equip_agency=current_user.user_agency).count()
- else:
- print("---管理员")
- if e_id:
- simlist = Equip_SimInfo.objects.filter(equip_id__equip_id__contains=e_id)[(10*(page-1)):(page*10)]
- nums = Equip_SimInfo.objects.filter(equip_id__equip_id__contains=e_id).count()
- elif iccid:
- simlist = Equip_SimInfo.objects.filter(iccid__contains=iccid)[(10*(page-1)):(page*10)]
- nums = Equip_SimInfo.objects.filter(iccid__contains=iccid).count()
- elif status:
- status = int(status)
- simlist = Equip_SimInfo.objects.filter(account_status=status)[(10*(page-1)):(page*10)]
- nums = Equip_SimInfo.objects.filter(account_status=status).count()
- else:
- simlist = Equip_SimInfo.objects.all()[(10*(page-1)):(page*10)]
- nums = Equip_SimInfo.objects.all().count()
- return render(request, 'warnmanage/siminfoList.html', context={"simlist":simlist,"nums":nums})
- # 手机号保存
- class Sim_Save(ListView):
- def get(self,request):
- pass
- def post(self,request):
- e_id = request.POST.get("e_id")
- mobile = request.POST.get("mobile")
- try:
- sim_obj = Equip_SimInfo.objects.get(equip_id=e_id)
- sim_obj.sim_alarm = mobile
- sim_obj.save()
- except Exception as e:
- print(e)
- return HttpResponse("1")
- return HttpResponse("0")
-
|