Sfoglia il codice sorgente

气象站数据转发监视

yf_ymm 5 anni fa
parent
commit
2a0fc6072f
2 ha cambiato i file con 597 aggiunte e 2 eliminazioni
  1. 162 1
      apps/AppInfo/models.py
  2. 435 1
      apps/Equipment/views.py

+ 162 - 1
apps/AppInfo/models.py

@@ -126,6 +126,8 @@ class QXZdata(models.Model):
 # 新气象站状态记录:
 class QXZstatus_New(models.Model):
     equip_id = models.ForeignKey(Equip)
+    is_online = models.CharField(u'在线状态', max_length=5, blank=True,null=True)
+    off_time = models.DateTimeField(u'离线时间', blank=True,null=True)
     upl_time = models.DateTimeField(u'数据上传时间', default=timezone.now)
     e1 = models.CharField(u'通道1', max_length=30, blank=True, null=True)
     e2 = models.CharField(u'通道2', max_length=30, blank=True, null=True)
@@ -141,6 +143,25 @@ class QXZstatus_New(models.Model):
     e12 = models.CharField(u'通道12', max_length=30, blank=True, null=True)
     e13 = models.CharField(u'通道13', max_length=30, blank=True, null=True)
     e14 = models.CharField(u'通道14', max_length=30, blank=True, null=True)
+    e15 = models.CharField(u'通道15', max_length=30, blank=True, null=True)
+    e16 = models.CharField(u'通道16', max_length=30, blank=True, null=True)
+    e17 = models.CharField(u'通道17', max_length=30, blank=True, null=True)
+    e18 = models.CharField(u'通道18', max_length=30, blank=True, null=True)
+    e19 = models.CharField(u'通道19', max_length=30, blank=True, null=True)
+    e20 = models.CharField(u'通道20', max_length=30, blank=True, null=True)
+    e21 = models.CharField(u'通道21', max_length=30, blank=True, null=True)
+    e22 = models.CharField(u'通道22', max_length=30, blank=True, null=True)
+    e23 = models.CharField(u'通道23', max_length=30, blank=True, null=True)
+    e24 = models.CharField(u'通道24', max_length=30, blank=True, null=True)
+    e25 = models.CharField(u'通道25', max_length=30, blank=True, null=True)
+    e26 = models.CharField(u'通道26', max_length=30, blank=True, null=True)
+    e27 = models.CharField(u'通道27', max_length=30, blank=True, null=True)
+    e28 = models.CharField(u'通道28', max_length=30, blank=True, null=True)
+    e29 = models.CharField(u'通道29', max_length=30, blank=True, null=True)
+    e30 = models.CharField(u'通道30', max_length=30, blank=True, null=True)
+    lng = models.CharField(u'经度', max_length=50, blank=True)
+    lat = models.CharField(u'维度', max_length=50, blank=True)
+    qxz_picture = models.ImageField(u'气象站图片', upload_to="qxz_photo/", default="qxz_photo/default.png")
     interval = models.CharField(u'设备数据上传时间间隔', max_length=30, blank=True, null=True)
 
     class Meta:
@@ -170,6 +191,22 @@ class QXZdata_New(models.Model):
     e12 = models.CharField(u'通道12', max_length=30, blank=True, null=True)
     e13 = models.CharField(u'通道13', max_length=30, blank=True, null=True)
     e14 = models.CharField(u'通道14', max_length=30, blank=True, null=True)
+    e15 = models.CharField(u'通道15', max_length=30, blank=True, null=True)
+    e16 = models.CharField(u'通道16', max_length=30, blank=True, null=True)
+    e17 = models.CharField(u'通道17', max_length=30, blank=True, null=True)
+    e18 = models.CharField(u'通道18', max_length=30, blank=True, null=True)
+    e19 = models.CharField(u'通道19', max_length=30, blank=True, null=True)
+    e20 = models.CharField(u'通道20', max_length=30, blank=True, null=True)
+    e21 = models.CharField(u'通道21', max_length=30, blank=True, null=True)
+    e22 = models.CharField(u'通道22', max_length=30, blank=True, null=True)
+    e23 = models.CharField(u'通道23', max_length=30, blank=True, null=True)
+    e24 = models.CharField(u'通道24', max_length=30, blank=True, null=True)
+    e25 = models.CharField(u'通道25', max_length=30, blank=True, null=True)
+    e26 = models.CharField(u'通道26', max_length=30, blank=True, null=True)
+    e27 = models.CharField(u'通道27', max_length=30, blank=True, null=True)
+    e28 = models.CharField(u'通道28', max_length=30, blank=True, null=True)
+    e29 = models.CharField(u'通道29', max_length=30, blank=True, null=True)
+    e30 = models.CharField(u'通道30', max_length=30, blank=True, null=True)
 
     class Meta:
         verbose_name = u'气象站-数据表-新'
@@ -230,7 +267,131 @@ class QXZAutoswitch(models.Model):
         ordering = ['-upl_time']
         get_latest_by = 'upl_time'
 
-        
+
+# 气象站基础信息表
+class QXZ_Base_Info(models.Model):
+    equip_id = models.ForeignKey(Equip)
+    volt = models.CharField(u'电压', max_length=20, blank=True, null=True)
+    rssi = models.CharField(u'信号强度', max_length=20, blank=True, null=True)
+    iccid = models.CharField(u'设备卡号', max_length=50, blank=True, null=True)
+    lng = models.CharField(u'经度', max_length=50, blank=True, null=True)
+    lat = models.CharField(u'纬度', max_length=50, blank=True, null=True)
+    led = models.CharField(u'led点阵屏', max_length=10, blank=True, null=True)
+    ledinfo = models.CharField(u'led屏幕内容', max_length=100, blank=True, null=True)
+    dver = models.CharField(u'设备版本号', max_length=100, blank=True, null=True)
+    auto_locat = models.CharField(u'经纬度判断', max_length=50, default="1")
+    # is_online = models.CharField(u'在线状态', max_length=5, blank=True,null=True)
+    upl_time = models.DateTimeField(u'上报时间', auto_now=True)
+
+    class Meta:
+        verbose_name = u"气象站基础信息表"
+        verbose_name_plural = verbose_name
+        ordering = ['-upl_time']
+        get_latest_by = 'upl_time'
+
+
+# 气象站基础信息表
+class QXZ_Info_Record(models.Model):
+    equip_id = models.ForeignKey(Equip)
+    volt = models.CharField(u'电压', max_length=20, blank=True, null=True)
+    rssi = models.CharField(u'信号强度', max_length=20, blank=True, null=True)
+    # is_online = models.CharField(u'在线状态', max_length=5, blank=True,null=True)
+    upl_time = models.DateTimeField(u'上报时间', auto_now=True)
+
+    class Meta:
+        verbose_name = u"气象站信息历史"
+        verbose_name_plural = verbose_name
+        ordering = ['-upl_time']
+        get_latest_by = 'upl_time'
+
+
+
+# 值#enum#通道
+# 新气象站配置表
+class QXZ_Conf(models.Model):
+    equip_id = models.ForeignKey(Equip)
+    e1 = models.CharField(u'通道1', max_length=30, blank=True, null=True)
+    e2 = models.CharField(u'通道2', max_length=30, blank=True, null=True)
+    e3 = models.CharField(u'通道3', max_length=30, blank=True, null=True)
+    e4 = models.CharField(u'通道4', max_length=30, blank=True, null=True)
+    e5 = models.CharField(u'通道5', max_length=30, blank=True, null=True)
+    e6 = models.CharField(u'通道6', max_length=30, blank=True, null=True)
+    e7 = models.CharField(u'通道7', max_length=30, blank=True, null=True)
+    e8 = models.CharField(u'通道8', max_length=30, blank=True, null=True)
+    e9 = models.CharField(u'通道9', max_length=30, blank=True, null=True)
+    e10 = models.CharField(u'通道10', max_length=30, blank=True, null=True)
+    e11 = models.CharField(u'通道11', max_length=30, blank=True, null=True)
+    e12 = models.CharField(u'通道12', max_length=30, blank=True, null=True)
+    e13 = models.CharField(u'通道13', max_length=30, blank=True, null=True)
+    e14 = models.CharField(u'通道14', max_length=30, blank=True, null=True)
+    e15 = models.CharField(u'通道15', max_length=30, blank=True, null=True)
+    e16 = models.CharField(u'通道16', max_length=30, blank=True, null=True)
+    e17 = models.CharField(u'通道17', max_length=30, blank=True, null=True)
+    e18 = models.CharField(u'通道18', max_length=30, blank=True, null=True)
+    e19 = models.CharField(u'通道19', max_length=30, blank=True, null=True)
+    e20 = models.CharField(u'通道20', max_length=30, blank=True, null=True)
+    e21 = models.CharField(u'通道21', max_length=30, blank=True, null=True)
+    e22 = models.CharField(u'通道22', max_length=30, blank=True, null=True)
+    e23 = models.CharField(u'通道23', max_length=30, blank=True, null=True)
+    e24 = models.CharField(u'通道24', max_length=30, blank=True, null=True)
+    e25 = models.CharField(u'通道25', max_length=30, blank=True, null=True)
+    e26 = models.CharField(u'通道26', max_length=30, blank=True, null=True)
+    e27 = models.CharField(u'通道27', max_length=30, blank=True, null=True)
+    e28 = models.CharField(u'通道28', max_length=30, blank=True, null=True)
+    e29 = models.CharField(u'通道29', max_length=30, blank=True, null=True)
+    e30 = models.CharField(u'通道30', max_length=30, blank=True, null=True)
+    upl_time = models.DateTimeField(u'数据上传时间', default=timezone.now)
+
+    class Meta:
+        verbose_name = u'气象站标题配置'
+        verbose_name_plural = verbose_name
+        ordering = ['-upl_time']
+        get_latest_by = 'upl_time'
+
+
+
+# 值#enum#通道
+# 新气象站配置表
+class QXZ_Default_Conf(models.Model):
+    equip_id = models.ForeignKey(Equip)
+    e1 = models.CharField(u'通道1', max_length=30, blank=True, null=True)
+    e2 = models.CharField(u'通道2', max_length=30, blank=True, null=True)
+    e3 = models.CharField(u'通道3', max_length=30, blank=True, null=True)
+    e4 = models.CharField(u'通道4', max_length=30, blank=True, null=True)
+    e5 = models.CharField(u'通道5', max_length=30, blank=True, null=True)
+    e6 = models.CharField(u'通道6', max_length=30, blank=True, null=True)
+    e7 = models.CharField(u'通道7', max_length=30, blank=True, null=True)
+    e8 = models.CharField(u'通道8', max_length=30, blank=True, null=True)
+    e9 = models.CharField(u'通道9', max_length=30, blank=True, null=True)
+    e10 = models.CharField(u'通道10', max_length=30, blank=True, null=True)
+    e11 = models.CharField(u'通道11', max_length=30, blank=True, null=True)
+    e12 = models.CharField(u'通道12', max_length=30, blank=True, null=True)
+    e13 = models.CharField(u'通道13', max_length=30, blank=True, null=True)
+    e14 = models.CharField(u'通道14', max_length=30, blank=True, null=True)
+    e15 = models.CharField(u'通道15', max_length=30, blank=True, null=True)
+    e16 = models.CharField(u'通道16', max_length=30, blank=True, null=True)
+    e17 = models.CharField(u'通道17', max_length=30, blank=True, null=True)
+    e18 = models.CharField(u'通道18', max_length=30, blank=True, null=True)
+    e19 = models.CharField(u'通道19', max_length=30, blank=True, null=True)
+    e20 = models.CharField(u'通道20', max_length=30, blank=True, null=True)
+    e21 = models.CharField(u'通道21', max_length=30, blank=True, null=True)
+    e22 = models.CharField(u'通道22', max_length=30, blank=True, null=True)
+    e23 = models.CharField(u'通道23', max_length=30, blank=True, null=True)
+    e24 = models.CharField(u'通道24', max_length=30, blank=True, null=True)
+    e25 = models.CharField(u'通道25', max_length=30, blank=True, null=True)
+    e26 = models.CharField(u'通道26', max_length=30, blank=True, null=True)
+    e27 = models.CharField(u'通道27', max_length=30, blank=True, null=True)
+    e28 = models.CharField(u'通道28', max_length=30, blank=True, null=True)
+    e29 = models.CharField(u'通道29', max_length=30, blank=True, null=True)
+    e30 = models.CharField(u'通道30', max_length=30, blank=True, null=True)
+    upl_time = models.DateTimeField(u'数据上传时间', default=timezone.now)
+
+    class Meta:
+        verbose_name = u'气象站标题默认配置'
+        verbose_name_plural = verbose_name
+        ordering = ['-upl_time']
+        get_latest_by = 'upl_time'
+
 
 
 # 监控设备token表

+ 435 - 1
apps/Equipment/views.py

@@ -2987,6 +2987,8 @@ class QXZ_Warning_View(ListView):
         print('user_name=', user_name)
         current_user = MyUser.objects.get(username=user_name)
         equip_list = Equip.objects.filter(equip_user=current_user,equip_type=5)
+        if current_user.is_staff:
+            equip_list = Equip.objects.filter(equip_type=5)
         return render(request, 'backstageNet/warn/warnSet.html', context={"equip_list":equip_list})
     def post(self,request):
         equip_id = request.POST.get('equip_id')
@@ -3017,6 +3019,8 @@ class Production_Set(ListView):
         print('user_name=', user_name)
         current_user = MyUser.objects.get(username=user_name)
         equip_list = Equip.objects.filter(equip_user=current_user,equip_type=5)
+        if current_user.is_staff:
+            equip_list = Equip.objects.filter(equip_type=5)
         return render(request, 'backstageNet/warn/productionset.html', context={"equip_list":equip_list})
     def post(self,request):
         pass
@@ -3909,4 +3913,434 @@ class Equip_Location(ListView):
             equip_obj.lng = lng
             equip_obj.lat = lat
             equip_obj.save()
-        return HttpResponse("1")
+        return HttpResponse("1")
+    
+    
+import json
+class Add_Qxz_Test(ListView):
+    def get(self,request):
+        pass
+    def post(self, request):
+        payload = request.body
+        payload = json.loads(payload.decode())
+        print("payload",payload)
+        print("type",type(payload))
+        if payload.get("cmd") == "terminalData":
+            print("<-----uploading data!----->")
+            extdata = payload.get("ext")
+            print(type(extdata))
+            qxzdata = extdata['data']
+            print(qxzdata)
+            device_id = extdata['StationID']
+            print(device_id)
+            e1 = ''
+            e2 = ''
+            e3 = ''
+            e4 = ''
+            e5 = ''
+            e6 = ''
+            e7 = ''
+            e8 = ''
+            e9 = ''
+            e10 = ''
+            e11 = ''
+            e12 = ''
+            e13 = ''
+            e14 = ''
+            e15 = ''
+            e16 = ''
+            e17 = ''
+            e18 = ''
+            e19 = ''
+            e20 = ''
+            e21 = ''
+            e22 = ''
+            e23 = ''
+            e24 = ''
+            e25 = ''
+            e26 = ''
+            e27 = ''
+            e28 = ''
+            e29 = ''
+            e30 = ''
+            
+            
+            conf1 = ''
+            conf2 = ''
+            conf3 = ''
+            conf4 = ''
+            conf5 = ''
+            conf6 = ''
+            conf7 = ''
+            conf8 = ''
+            conf9 = ''
+            conf10 = ''
+            conf11 = ''
+            conf12 = ''
+            conf13 = ''
+            conf14 = ''
+            conf15 = ''
+            conf16 = ''
+            conf17 = ''
+            conf18 = ''
+            conf19 = ''
+            conf20 = ''
+            conf21 = ''
+            conf22 = ''
+            conf23 = ''
+            conf24 = ''
+            conf25 = ''
+            conf26 = ''
+            conf27 = ''
+            conf28 = ''
+            conf29 = ''
+            conf30 = ''
+            for i in qxzdata:
+                if i['eKey'] == 'e1':
+                    e1 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf1 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e1[0] == "#":
+                        continue
+                elif i['eKey'] == 'e2':
+                    e2 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf2 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e2[0] == "#":
+                        continue
+                elif i['eKey'] == 'e3':
+                    e3 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf3 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e3[0] == "#":
+                        continue
+                elif i['eKey'] == 'e4':
+                    e4 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf4 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e4[0] == "#":
+                        continue
+                elif i['eKey'] == 'e5':
+                    e5 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf5 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e5[0] == "#":
+                        continue
+                elif i['eKey'] == 'e6':
+                    e6 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf6 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e6[0] == "#":
+                        continue
+                elif i['eKey'] == 'e7':
+                    e7 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf7 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e7[0] == "#":
+                        continue
+                elif i['eKey'] == 'e8':
+                    e8 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf8 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e8[0] == "#":
+                        continue
+                elif i['eKey'] == 'e9':
+                    e9 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf9 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e9[0] == "#":
+                        continue
+                elif i['eKey'] == 'e10':
+                    e10 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf10 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e10[0] == "#":
+                        continue
+                elif i['eKey'] == 'e11':
+                    e11 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf11 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e11[0] == "#":
+                        continue
+                elif i['eKey'] == 'e12':
+                    e12 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf12 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e12[0] == "#":
+                        continue
+                elif i['eKey'] == 'e13':
+                    e13 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf13 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e13[0] == "#":
+                        continue
+                elif i['eKey'] == 'e14':
+                    e14 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf14 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e14[0] == "#":
+                        continue
+                elif i['eKey'] == 'e15':
+                    e15 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf15 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e15[0] == "#":
+                        continue
+                elif i['eKey'] == 'e16':
+                    e16 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf16 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e16[0] == "#":
+                        continue
+                elif i['eKey'] == 'e17':
+                    e17 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf17 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e17[0] == "#":
+                        continue
+                elif i['eKey'] == 'e18':
+                    e18 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf18 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e18[0] == "#":
+                        continue
+                elif i['eKey'] == 'e19':
+                    e19 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf19 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e19[0] == "#":
+                        continue
+                elif i['eKey'] == 'e20':
+                    e20 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf20 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e20[0] == "#":
+                        continue
+                elif i['eKey'] == 'e21':
+                    e21 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf21 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e21[0] == "#":
+                        continue
+                elif i['eKey'] == 'e22':
+                    e22 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf22 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e22[0] == "#":
+                        continue
+                elif i['eKey'] == 'e23':
+                    e23 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf23 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e23[0] == "#":
+                        continue
+                elif i['eKey'] == 'e24':
+                    e24 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf24 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e24[0] == "#":
+                        continue
+                elif i['eKey'] == 'e25':
+                    e25 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf25 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e25[0] == "#":
+                        continue
+                elif i['eKey'] == 'e26':
+                    e26 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf26 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e26[0] == "#":
+                        continue
+                elif i['eKey'] == 'e27':
+                    e27 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf27 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e27[0] == "#":
+                        continue
+                elif i['eKey'] == 'e28':
+                    e28 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf28 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e28[0] == "#":
+                        continue
+                elif i['eKey'] == 'e29':
+                    e29 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf29 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e29[0] == "#":
+                        continue
+                elif i['eKey'] == 'e30':
+                    e30 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
+                    conf30 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
+                    if e30[0] == "#":
+                        continue
+            qxz_exist = Equip.objects.filter(equip_id=device_id)
+            # print("extdata:", extdata)
+            # 设备存在,进一步判断状态表是否存在:
+            times = datetime.datetime.now()
+            if qxz_exist.exists():
+                print("<-----this equip is existed!----->")
+                try:
+                    e_id = Equip.objects.get(device_id=device_id)
+                except:
+                    print("<-----this equip didn't exist!----->")      
+                try:
+                    # 设备数据表直接储存数据
+                    # QXZdata.objects.create(equip_id=e_id, qxz_data=extdata)
+                    QXZdata_New.objects.create(device_id=device_id,
+                        e1=e1,e2=e2,e3=e3,e4=e4,e5=e5,e6=e6,e7=e7,e8=e8,e9=e9,e10=e10,
+                        e11=e11,e12=e12,e13=e13,e14=e14,e15=e15,e16=e16,e17=e17,e18=e18,e19=e19,e20=e20,
+                        e21=e21,e22=e22,e23=e23,e24=e24,e25=e25,e26=e26,e27=e27,e28=e28,e29=e29,e30=e30)
+                            
+                    print("<-----data update success!----->")
+                except:
+                    print("<-----data update failed!----->")
+            
+                if QXZstatus_New.objects.filter(equip_id=device_id).exists():
+                    print("<-----this equip's status is existed!----->")
+                    try:
+                        sta = QXZstatus_New.objects.get(equip_id=device_id)
+                        
+                        sta.e1 = e1
+                        sta.e2 = e2
+                        sta.e3 = e3
+                        sta.e4 = e4
+                        sta.e5 = e5
+                        sta.e6 = e6
+                        sta.e7 = e7
+                        sta.e8 = e8
+                        sta.e9 = e9
+                        sta.e10 = e10
+                        sta.e11 = e11
+                        sta.e12 = e12
+                        sta.e13 = e13
+                        sta.e14 = e14
+                        sta.e15 = e15
+                        sta.e16 = e16
+                        sta.e17 = e17
+                        sta.e18 = e18
+                        sta.e19 = e19
+                        sta.e20 = e20
+                        sta.e21 = e21
+                        sta.e22 = e22
+                        sta.e23 = e23
+                        sta.e24 = e24
+                        sta.e25 = e25
+                        sta.e26 = e26
+                        sta.e27 = e27
+                        sta.e28 = e28
+                        sta.e29 = e29
+                        sta.e30 = e30
+                        sta.is_online = "1"
+                        sta.save()
+                        print("<-----status update success!----->")
+                    except:
+                        print("<-----status update failed!----->")
+                else:
+                    # 设备状态表不存在、创建状态表:
+                    print("<-----this equip's status is not existed!----->")
+                    try:
+                        QXZstatus_New.objects.create(equip_id=device_id,
+                            e1=e1,e2=e2,e3=e3,e4=e4,e5=e5,e6=e6,e7=e7,e8=e8,e9=e9,e10=e10,
+                            e11=e11,e12=e12,e13=e13,e14=e14,e15=e15,e16=e16,e17=e17,e18=e18,e19=e19,e20=e20,
+                            e21=e21,e22=e22,e23=e23,e24=e24,e25=e25,e26=e26,e27=e27,e28=e28,e29=e29,e30=e30,is_online="1")
+                        
+                        # QXZstatus.objects.create(equip_id=e_id, qxz_status=extdata)
+                        print("<-----this equip's status table re-create successed!----->")
+                    except:
+                        print("<-----this equip's status table re-create failed!----->")
+                # 判断标题配置表
+                if QXZ_Conf.objects.filter(equip_id=device_id).exists():
+                    print("------conf create default-------")
+                else:
+                    QXZ_Conf.objects.create(equip_id=device_id,
+                        e1=conf1,e2=conf2,e3=conf3,e4=conf4,e5=conf5,e6=conf6,e7=conf7,e8=conf8,e9=conf9,e10=conf10,
+                        e11=conf11,e12=conf12,e13=conf13,e14=conf14,e15=conf15,e16=conf16,e17=conf17,e18=conf18,e19=conf19,e20=conf20,
+                        e21=conf21,e22=conf22,e23=conf23,e24=conf24,e25=conf25,e26=conf26,e27=conf27,e28=conf28,e29=conf29,e30=conf30)
+                    QXZ_Default_Conf.objects.create(equip_id=device_id,
+                        e1=conf1,e2=conf2,e3=conf3,e4=conf4,e5=conf5,e6=conf6,e7=conf7,e8=conf8,e9=conf9,e10=conf10,
+                        e11=conf11,e12=conf12,e13=conf13,e14=conf14,e15=conf15,e16=conf16,e17=conf17,e18=conf18,e19=conf19,e20=conf20,
+                        e21=conf21,e22=conf22,e23=conf23,e24=conf24,e25=conf25,e26=conf26,e27=conf27,e28=conf28,e29=conf29,e30=conf30)
+                    print("------conf create success-------")
+                # 设备状态表存在、刷新状态表: 
+                print("2222222")
+
+            
+            else:
+                print("<-----this equip not existed!----->")
+                # 设备不存在,在设备列表中创建:
+                try:
+                    e_id = Equip.objects.create(equip_id=device_id, equip_type_id="5",addtime=times,uptime=times)
+                    print("<-----this imei add successed!----->")
+                    try:
+                        # 设备数据表直接储存数据
+                        QXZdata_New.objects.create(equip_id=device_id,uptime=times,
+                            e1=e1,e2=e2,e3=e3,e4=e4,e5=e5,e6=e6,e7=e7,e8=e8,e9=e9,e10=e10,
+                            e11=e11,e12=e12,e13=e13,e14=e14,e15=e15,e16=e16,e17=e17,e18=e18,e19=e19,e20=e20,
+                            e21=e21,e22=e22,e23=e23,e24=e24,e25=e25,e26=e26,e27=e27,e28=e28,e29=e29,e30=e30)
+                        # QXZdata.objects.create(equip_id=e_id, qxz_data=extdata)
+                        print("<-----data update success!----->")
+                    except:
+                        print("<-----data update failed!----->")
+                    try:
+                        QXZstatus_New.objects.create(equip_id=device_id,uptime=times,
+                            e1=e1,e2=e2,e3=e3,e4=e4,e5=e5,e6=e6,e7=e7,e8=e8,e9=e9,e10=e10,
+                            e11=e11,e12=e12,e13=e13,e14=e14,e15=e15,e16=e16,e17=e17,e18=e18,e19=e19,e20=e20,
+                            e21=e21,e22=e22,e23=e23,e24=e24,e25=e25,e26=e26,e27=e27,e28=e28,e29=e29,e30=e30,is_online="1")
+                        # QXZstatus.objects.create(equip_id=e_id, qxz_status=extdata)
+                        print("<-----this imei register successed!----->")
+                    except:
+                        print("<-----this imei register failed!----->")
+                    
+                    # 判断标题配置表
+                    if QXZ_Conf.objects.filter(equip_id=device_id).exists():
+                        print("------conf create default-------")
+                    else:
+                        QXZ_Conf.objects.create(equip_id=device_id,uptime=times,
+                            e1=conf1,e2=conf2,e3=conf3,e4=conf4,e5=conf5,e6=conf6,e7=conf7,e8=conf8,e9=conf9,e10=conf10,
+                            e11=conf11,e12=conf12,e13=conf13,e14=conf14,e15=conf15,e16=conf16,e17=conf17,e18=conf18,e19=conf19,e20=conf20,
+                            e21=conf21,e22=conf22,e23=conf23,e24=conf24,e25=conf25,e26=conf26,e27=conf27,e28=conf28,e29=conf29,e30=conf30)
+                        QXZ_Default_Conf.objects.create(equip_id=device_id,
+                            e1=conf1,e2=conf2,e3=conf3,e4=conf4,e5=conf5,e6=conf6,e7=conf7,e8=conf8,e9=conf9,e10=conf10,
+                            e11=conf11,e12=conf12,e13=conf13,e14=conf14,e15=conf15,e16=conf16,e17=conf17,e18=conf18,e19=conf19,e20=conf20,
+                            e21=conf21,e22=conf22,e23=conf23,e24=conf24,e25=conf25,e26=conf26,e27=conf27,e28=conf28,e29=conf29,e30=conf30)
+                        print("------conf create success-------")
+                            
+                except Exception as e:
+                    print(e)
+                    print("<-----this imei add failed!----->")  
+
+            if payload.get("cmd") == "Status":
+                extdata = payload.get("ext")['terminalStatus']
+                print(extdata)
+                try:
+                    volt = extdata["VOLT"]
+                    rssi = extdata["RSSI"]
+                    iccid = extdata["ICCID"]
+                    lng = extdata["longitude"]
+                    lat = extdata["latitude"]
+                    led = extdata["Dotled"]
+                    
+                except:
+                    pass
+                try:
+                    dver = extdata["Version"]
+                except:
+                    dver = ""
+                if qxz_exist.exists():
+                    print("<-----this equip is existed!----->")
+                    try:
+                        e_id = Equip.objects.get(equip_id=device_id)
+                    except:
+                        print("<-----this equip didn't exist!----->")
+                    QXZ_Info_Record.objects.create(equip_id=device_id, volt=volt,rssi=rssi,uptime=times)
+                    if QXZ_Base_Info.objects.filter(equip_id=device_id).exists():
+                        print("<-----this qxz_base_info is existed!----->")
+                        try:
+                            sta = QXZ_Base_Info.objects.get(equip_id=device_id)
+                            sta.volt = volt
+                            sta.rssi = rssi
+                            sta.iccid = iccid
+                            sta.lng = lng
+                            sta.lat = lat
+                            sta.led = led
+                            sta.dver = dver
+                            sta.save()
+                            sta1 = Equip.objects.get(equip_id=device_id)
+                            sta1.lng = lng
+                            sta1.lat = lat
+                            sta1.save()
+                            print("<-----qxz_base_info update success!----->")
+                        except:
+                            print("<-----qxz_base_info update failed!----->")
+                        try:
+                            sta = QXZ_Base_Info.objects.get(equip_id=device_id)
+                            sta.volt = volt
+                            sta.rssi = rssi
+                            sta.save()
+                            print("<-----qxz_base_info update success!!!----->")
+                        except:
+                            pass
+                    else:
+                        # 设备阈值表不存在、创建阈值表:
+                        print("<-----this qxz_base_info is not existed!----->")
+                        try:
+                            QXZ_Base_Info.objects.create(equip_id=device_id, volt=volt,rssi=rssi,iccid=iccid,lng=lng,lat=lat,led=led,uptime=times)
+                            print("<-----this qxz_base_info table re-create successed!----->")
+                        except:
+                            print("<-----this qxz_base_info table re-create failed!----->")
+        
+        
+        return True