Browse Source

设备控制更新

yf_yzl 2 năm trước cách đây
mục cha
commit
a6f54519fd

+ 1 - 1
smartfarming/models/weather.py

@@ -144,7 +144,7 @@ class MongoQXZ_Alarm_Log_New(models.Model):
     id = models.AutoField(primary_key=True)
     device_id = models.CharField(max_length=50, default='') # 设备id
     user_id = models.CharField(u"用户id", max_length=50, default='')
-    warning_name = models.CharField(u"预警设置名称",max_length=50, default='')
+    warning_name = models.CharField(u"预警设置名称",max_length=50, default='')  # 用作存储设备类型ID
     ekey = models.TextField(u'通道号', blank=True)
     warning_content = models.TextField(u"预警内容",default='')
     send_user = models.TextField(u"发送用户",default='')

+ 2 - 2
smartfarming/views/counts_views.py

@@ -267,11 +267,11 @@ class APPAlarmAPIView(APIView):
             pest_serializers = MongoCBDPestWarningSerializers(query, many=True)
             data = pest_serializers.data 
         elif type_id == "5":
-            query = MongoQXZ_Alarm_Log_New.objects.all().order_by("-upl_time")
+            query = MongoQXZ_Alarm_Log_New.objects.filter(warning_name="5").order_by("-upl_time")
             qxz_serializers = MongoQXZAlarmLogNewSerializers(query, many=True)
             data = qxz_serializers.data
         elif type_id == "8":
-            query = MongoQXZ_Alarm_Log_New.objects.all().order_by("-upl_time")
+            query = MongoQXZ_Alarm_Log_New.objects.filter(warning_name="8").order_by("-upl_time")
             qxz_serializers = MongoQXZAlarmLogNewSerializers(query, many=True)
             data = qxz_serializers.data
         return Response({"code": 0, "msg": "success", "data": data})

+ 10 - 3
smartfarming/views/device.py

@@ -206,8 +206,12 @@ class QxzDeviceAddAPIViw(APIView):
             alarm = MongoQXZ_Alarm.objects.filter(device_id=device_id)
             qxz_e_conf = MongoQXZ_Conf.objects.filter(device_id=device_id)
             qxz_e_conf = qxz_e_conf.first() if qxz_e_conf else None 
+            mongo_device = MongoDevice.objects.filter(device_id=device_id)
+            if mongo_device:
+                mongo_device = mongo_device.first()
             if not qxz_e_conf:
-                return Response({"code": 2, "msg": "failer"})
+                logger.error(f"该设备未配置预警阀值: {mongo_device.device_id}")
+                return Response({"code": 2, "msg": "该设备未配置预警阀值"})
             if data:
                 qxz_e_conf = model_to_dict(qxz_e_conf)
                 qx_ek = {}
@@ -244,14 +248,17 @@ class QxzDeviceAddAPIViw(APIView):
                     alarm_new = MongoQXZ_Alarm_Log_New()
                     alarm_new.warning_content = result_tp_fin
                     alarm_new.upl_time = uptime_tp
+                    alarm_new.device_id = mongo_device.id
+                    alarm_new.warning_name = str(mongo_device.device_type_id)  # 设备类型ID
                     alarm_new.save()
-                    logger.warning(f"{device_id}  产生预警")
                 # 30分钟上报一次的数据
                 qx_ek["device_id"] = device_id
                 qx_ek["uptime"] = uptime_tp
                 qxz_data = QXZdata_New(**qx_ek)
                 qxz_data.save()
-                MongoDevice.objects.filter(device_id=device_id).update(uptime=uptime_tp, device_status=1)
+                mongo_device.uptime=uptime_tp 
+                mongo_device.device_status=1
+                mongo_device.save()
                 return Response({"code": 0, "msg": "success"})
             if terminalStatus:
                 base_info_obj, is_created = MongoQXZ_Base_Info.objects.update_or_create(