# -*- coding: utf-8 -*- from django.shortcuts import render from django.http.response import HttpResponse,HttpResponseBadRequest from django.views.generic import ListView from apps.AppInfoManage.models import Equip, MyUser, User_Log,SCDstatus,CBDstatus, RecentCBDdata, RecentSCDdata, QXZstatus, QXZ_Base_Info from django.http import JsonResponse from django.core.exceptions import ObjectDoesNotExist import json from django.core import serializers import datetime # from apps.AppInfoManage.common import CJSONEncoder from apps.EquipManage.views import CJSONEncoder # 设备列表: class EquipList(ListView): def get(self, request): 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("---用户") nums = Equip.objects.filter(equip_user=current_user).count() elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True: print("---代理商") nums = Equip.objects.filter(equip_agency=current_user.user_agency).count() else: print("---管理员") nums = Equip.objects.all().count() User_Log.objects.create(log_user=request.user.username, log_ip=request.META['REMOTE_ADDR'], log_desc='设备列表') return render(request, 'equiplist/equiplist.html', context={'nums': nums}) def post(self, request): if request.is_ajax(): print("ajax-post!") req = request.POST.get('req') if req == "rename": print("修改名称") equip_id = request.POST.get('eid') print("equip_id:",equip_id) new_name = request.POST.get('ename') print("new_name:",new_name) equip = Equip.objects.get(equip_id=equip_id) # 如果输入的设备名,和当前的设备列表中已存在: try: Equip.objects.get(equip_name=new_name) data = "1" # 输入的设备名不存在,说明是新设备名称 except ObjectDoesNotExist: equip.equip_name = new_name equip.save() if equip.equip_type_id == 2: scdobj = RecentSCDdata.objects.get(equip_id=equip.equip_id) scdobj.equip_name = new_name scdobj.save() elif equip.equip_type_id == 3: cbdobj = RecentCBDdata.objects.get(equip_id=equip.equip_id) cbdobj.equip_name = new_name cbdobj.save() data = "0" print("新设备名称为:", new_name) User_Log.objects.create( log_user=request.user.username, log_ip=request.META['REMOTE_ADDR'], log_desc='设备列表-修改设备名称') return HttpResponse(data) elif req == "addAddr": print("添加位置!") equip_id = request.POST.get('eid') print("equip_id:",equip_id) address = request.POST.get('address') print("address:",address) equip = Equip.objects.get(equip_id=equip_id) equip.equip_location = address equip.save() print("equip.equip_type:",equip.equip_type.type_id) if 2 == equip.equip_type.type_id: print("修改杀虫灯") SCDstatus.objects.filter(equip_id=equip_id).update(equip_location = address) elif 3 == equip.equip_type.type_id: print("修改测报灯") CBDstatus.objects.filter(equip_id=equip_id).update(equip_location = address) data = "2" User_Log.objects.create( log_user=request.user.username, log_ip=request.META['REMOTE_ADDR'], log_desc='设备列表-添加位置') return HttpResponse(data) elif req == "cbdscene": print("添加测报灯场景!") equip_id = request.POST.get('eid') print("equip_id:",equip_id) scene = request.POST.get('scene') print("scene:",scene) equip = Equip.objects.get(equip_id=equip_id) equip.scene = scene equip.save() cbd_obj = RecentCBDdata.objects.get(equip_id=equip) cbd_obj.scene = scene cbd_obj.save() return HttpResponse("0") else: print("unknown request!") return HttpResponseBadRequest() else: print("unknown request!") return HttpResponseBadRequest() # 数据接口: class EquipListData(ListView): def get(self, request): pass def post(self, request): print("数据!!!") if request.is_ajax(): print("ajax-post!") if request.POST.get('req') == "reqdat": 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("---不是管理员") equip_list = Equip.objects.filter(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("---代理商") equip_list = Equip.objects.filter(equip_agency=current_user.user_agency)[(10*(page-1)):(page*10)] else: print("---管理员") equip_list = Equip.objects.all()[(10*(page-1)):(page*10)] data = [] for i in equip_list: sta1 = Equip.objects.filter(equip_id=i.equip_id).select_related() for x in sta1: try: sta2 = {"equip_id": x.equip_id, "equip_user": x.equip_user.username, "scene":x.scene, "equip_name": x.equip_name, "equip_add_time": x.equip_add_time, "equip_type": x.equip_type.type_id, "equip_location": x.equip_location} except AttributeError: sta2 = {"equip_id": x.equip_id, "equip_user": "", "scene":x.scene, "equip_name": x.equip_name, "equip_add_time": x.equip_add_time, "equip_type": x.equip_type.type_id, "equip_location": x.equip_location} data.append(sta2) User_Log.objects.create(log_user=request.user.username,log_ip=request.META['REMOTE_ADDR'], log_desc='设备列表') # data = serializers.serialize("json", equip_list) data = json.dumps(data, cls=CJSONEncoder) # print("data:",data) return HttpResponse(data) else: print("unknown request!") return HttpResponseBadRequest() else: print("unknown request!") return HttpResponseBadRequest() # 筛选接口: import re class EquipListFilter(ListView): def get(self, request): pass def post(self, request): print("筛选!!!") f_type = request.POST.get('f_type') f_id = request.POST.get('f_id') f_tbegin = request.POST.get('f_tbegin') f_tend = request.POST.get('f_tend') page = int(request.POST.get('page')) print("f_type:", f_type) print("f_id:", f_id) print("f_tbegin:", f_tbegin) print("f_tend:", f_tend) 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("---不是管理员") # 000 if f_id == '' and f_type == '0' and f_tbegin == '' and f_tend == '': equip_list = Equip.objects.filter(equip_user=current_user) # 001 elif f_id == '' and f_type == '0' and f_tbegin != '' and f_tend != '': begindate = re.findall(r"\d+\.?\d*", f_tbegin) enddate = re.findall(r"\d+\.?\d*", f_tend) start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2])) end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2])) equip_list = Equip.objects.filter(equip_user=current_user,equip_add_time__range=(start_date, end_date)) # 010 elif f_id == '' and f_type != '0' and f_tbegin == '' and f_tend == '': equip_list = Equip.objects.filter(equip_user=current_user,equip_type=f_type) # 011 elif f_id == '' and f_type != '0' and f_tbegin != '' and f_tend != '': begindate = re.findall(r"\d+\.?\d*", f_tbegin) enddate = re.findall(r"\d+\.?\d*", f_tend) start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2])) end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2])) equip_list = Equip.objects.filter(equip_user=current_user,equip_type=f_type,equip_add_time__range=(start_date, end_date)) # 100 elif f_id != '' and f_type == '0' and f_tbegin == '' and f_tend == '': equip_list = Equip.objects.filter(equip_user=current_user,equip_id__contains=f_id) # 101 elif f_id != '' and f_type == '0' and f_tbegin != '' and f_tend != '': begindate = re.findall(r"\d+\.?\d*", f_tbegin) enddate = re.findall(r"\d+\.?\d*", f_tend) start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2])) end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2])) equip_list = Equip.objects.filter(equip_user=current_user,equip_id__contains=f_id,equip_add_time__range=(start_date, end_date)) # 110 elif f_id != '' and f_type != '0' and f_tbegin == '' and f_tend == '': equip_list = Equip.objects.filter(equip_user=current_user,equip_id__contains=f_id,equip_type=f_type) # 111 # elif f_id != '' and f_type != '0' and f_tbegin != '' and f_tend != '': else: begindate = re.findall(r"\d+\.?\d*", f_tbegin) enddate = re.findall(r"\d+\.?\d*", f_tend) start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2])) end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2])) equip_list = Equip.objects.filter(equip_user=current_user,equip_id__contains=f_id,equip_type=f_type,equip_add_time__range=(start_date, end_date)) elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True: print("---代理商") # 000 if f_id == '' and f_type == '0' and f_tbegin == '' and f_tend == '': equip_list = Equip.objects.filter(equip_agency=current_user.user_agency) # 001 elif f_id == '' and f_type == '0' and f_tbegin != '' and f_tend != '': begindate = re.findall(r"\d+\.?\d*", f_tbegin) enddate = re.findall(r"\d+\.?\d*", f_tend) start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2])) end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2])) equip_list = Equip.objects.filter(equip_agency=current_user.user_agency, equip_add_time__range=(start_date, end_date)) # 010 elif f_id == '' and f_type != '0' and f_tbegin == '' and f_tend == '': equip_list = Equip.objects.filter(equip_agency=current_user.user_agency, equip_type=f_type) # 011 elif f_id == '' and f_type != '0' and f_tbegin != '' and f_tend != '': begindate = re.findall(r"\d+\.?\d*", f_tbegin) enddate = re.findall(r"\d+\.?\d*", f_tend) start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2])) end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2])) equip_list = Equip.objects.filter(equip_agency=current_user.user_agency, equip_type=f_type, equip_add_time__range=(start_date, end_date)) # 100 elif f_id != '' and f_type == '0' and f_tbegin == '' and f_tend == '': equip_list = Equip.objects.filter(equip_agency=current_user.user_agency, equip_id__contains=f_id) # 101 elif f_id != '' and f_type == '0' and f_tbegin != '' and f_tend != '': begindate = re.findall(r"\d+\.?\d*", f_tbegin) enddate = re.findall(r"\d+\.?\d*", f_tend) start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2])) end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2])) equip_list = Equip.objects.filter(equip_agency=current_user.user_agency, equip_id__contains=f_id, equip_add_time__range=(start_date, end_date)) # 110 elif f_id != '' and f_type != '0' and f_tbegin == '' and f_tend == '': equip_list = Equip.objects.filter(equip_agency=current_user.user_agency, equip_id__contains=f_id, equip_type=f_type) # 111 # elif f_id != '' and f_type != '0' and f_tbegin != '' and f_tend != '': else: begindate = re.findall(r"\d+\.?\d*", f_tbegin) enddate = re.findall(r"\d+\.?\d*", f_tend) start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2])) end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2])) equip_list = Equip.objects.filter(equip_agency=current_user.user_agency, equip_id__contains=f_id, equip_type=f_type,equip_add_time__range=(start_date, end_date)) else: print("---管理员") # 000 if f_id == '' and f_type == '0' and f_tbegin == '' and f_tend == '': equip_list = Equip.objects.all() # 001 elif f_id == '' and f_type == '0' and f_tbegin != '' and f_tend != '': begindate = re.findall(r"\d+\.?\d*", f_tbegin) enddate = re.findall(r"\d+\.?\d*", f_tend) start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2])) end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2])) equip_list = Equip.objects.filter(equip_add_time__range=(start_date, end_date)) # 010 elif f_id == '' and f_type != '0' and f_tbegin == '' and f_tend == '': equip_list = Equip.objects.filter(equip_type=f_type) # 011 elif f_id == '' and f_type != '0' and f_tbegin != '' and f_tend != '': begindate = re.findall(r"\d+\.?\d*", f_tbegin) enddate = re.findall(r"\d+\.?\d*", f_tend) start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2])) end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2])) equip_list = Equip.objects.filter(equip_type=f_type,equip_add_time__range=(start_date, end_date)) # 100 elif f_id != '' and f_type == '0' and f_tbegin == '' and f_tend == '': equip_list = Equip.objects.filter(equip_id__contains=f_id) # 101 elif f_id != '' and f_type == '0' and f_tbegin != '' and f_tend != '': begindate = re.findall(r"\d+\.?\d*", f_tbegin) enddate = re.findall(r"\d+\.?\d*", f_tend) start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2])) end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2])) equip_list = Equip.objects.filter(equip_id__contains=f_id,equip_add_time__range=(start_date, end_date)) # 110 elif f_id != '' and f_type != '0' and f_tbegin == '' and f_tend == '': equip_list = Equip.objects.filter(equip_id__contains=f_id,equip_type=f_type) # 111 # elif f_id != '' and f_type != '0' and f_tbegin != '' and f_tend != '': else: begindate = re.findall(r"\d+\.?\d*", f_tbegin) enddate = re.findall(r"\d+\.?\d*", f_tend) start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2])) end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2])) equip_list = Equip.objects.filter(equip_id__contains=f_id).filter(equip_type=f_type,equip_add_time__range=(start_date, end_date)) # data = [] dat = [] for i in equip_list[(10*(page-1)):(page*10)]: sta1 = Equip.objects.filter(equip_id=i.equip_id).select_related() try: for x in sta1: sta2 = {"equip_id": x.equip_id, "equip_user": x.equip_user.username, "scene":x.scene, "equip_name": x.equip_name, "equip_add_time": x.equip_add_time, "equip_type": x.equip_type.type_id, "equip_location": x.equip_location} dat.append(sta2) except AttributeError: for x in sta1: sta2 = {"equip_id": x.equip_id, "equip_user": "", "scene":x.scene, "equip_name": x.equip_name, "equip_add_time": x.equip_add_time, "equip_type": x.equip_type.type_id, "equip_location": x.equip_location} dat.append(sta2) # data = serializers.serialize("json", equip_list) data = {'dat':dat,'nums':equip_list.count()} data = json.dumps(data, cls=CJSONEncoder) # print("data:",data) return HttpResponse(data) # 气象站添加定位 class QXZ_Location(ListView): def get(self, request): e_id = request.GET.get('e_id') imei = Equip.objects.get(equip_id=e_id) if QXZ_Base_Info.objects.filter(equip_id=imei).exists(): equip_obj = QXZ_Base_Info.objects.get(equip_id=e_id) else: QXZ_Base_Info.objects.create(equip_id=imei, volt="",rssi="",iccid="",lng="",lat="",led="") equip_obj = QXZ_Base_Info.objects.get(equip_id=e_id) data = {"lat":equip_obj.lat,"lng":equip_obj.lng} print(data) data = json.dumps(data) return HttpResponse(data) def post(self, request): e_id = request.POST.get('e_id') lng = request.POST.get('lng') lat = request.POST.get('lat') try: equip_obj = QXZ_Base_Info.objects.get(equip_id=e_id) equip_obj.lng = lng equip_obj.lat = lat equip_obj.save() return HttpResponse("0") except: return HttpResponse("1")