فهرست منبع

优化响应结果id

zhangdongming 3 سال پیش
والد
کامیت
1a6f795f4b
2فایلهای تغییر یافته به همراه23 افزوده شده و 45 حذف شده
  1. 8 35
      Controller/EquipmentInfo.py
  2. 15 10
      Service/EquipmentInfoService.py

+ 8 - 35
Controller/EquipmentInfo.py

@@ -1,4 +1,3 @@
-import datetime
 import time
 import traceback
 
@@ -10,7 +9,6 @@ from Model.models import Device_Info, Equipment_Info
 from Model.models import Device_User
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
-from Object.utils import LocalDateTimeUtil
 from Service.CommonService import CommonService
 from Service.EquipmentInfoService import EquipmentInfoService
 from Service.ModelService import ModelService
@@ -171,27 +169,15 @@ class EquipmentInfo(View):
                 count = 0
                 for ei_id in id_list:
                     try:
-                        dt = int(ei_id[0:10])
-                        event_date = datetime.datetime.utcfromtimestamp(dt).date()
-                        ei_id = int(ei_id[10:])
-                        val = LocalDateTimeUtil.format_date_to_week(str(event_date), '%Y-%m-%d')
-                        eq = EquipmentInfoService.get_equipment_info_model('', val)
-                        eq = eq.filter(id=ei_id, event_time=dt)
+                        tab_val = int(ei_id[0:1])
+                        ei_id = int(ei_id[1:])
+                        eq = EquipmentInfoService.get_equipment_info_model('', tab_val)
+                        eq = eq.filter(id=ei_id)
                         if eq.exists():
                             own_dev = ModelService.check_own_device(userID, eq[0].device_uid)
                             if own_dev is True:
                                 count += 1
                                 eq.update(status=1)
-                        if count == 0:
-                            for i in range(2):
-                                week = (7 if val == 1 else val - 1) if i == 0 else (1 if val == 7 else val + 1)
-                                result = EquipmentInfoService.get_equipment_info_model('', week)
-                                result = result.filter(id=ei_id, event_time=dt)
-                                if result.exists():
-                                    own_dev = ModelService.check_own_device(userID, result[0].device_uid)
-                                    if own_dev is True:
-                                        count += 1
-                                        result.update(status=1)
 
                     except Exception as e:
                         print(repr(e))
@@ -207,27 +193,14 @@ class EquipmentInfo(View):
         if param_flag is True:
             try:
                 for ei_id in id_list:
-                    dt = int(ei_id[0:10])
-                    event_date = datetime.datetime.utcfromtimestamp(dt).date()
-                    res = 0
-                    ei_id = int(ei_id[10:])
-                    val = LocalDateTimeUtil.format_date_to_week(str(event_date), '%Y-%m-%d')
-                    eq = EquipmentInfoService.get_equipment_info_model('', val)
-                    eq = eq.filter(id=ei_id, event_time=dt)
+                    tab_val = int(ei_id[0:1])
+                    ei_id = int(ei_id[1:])
+                    eq = EquipmentInfoService.get_equipment_info_model('', tab_val)
+                    eq = eq.filter(id=ei_id)
                     if eq.exists():
                         own_dev = ModelService.check_own_device(userID, eq[0].device_uid)
                         if own_dev is True:
-                            res += 1
                             eq.delete()
-                    if res == 0:
-                        for i in range(2):
-                            week = (7 if val == 1 else val - 1) if i == 0 else (1 if val == 7 else val + 1)
-                            result = EquipmentInfoService.get_equipment_info_model('', week)
-                            result = result.filter(id=ei_id, event_time=dt)
-                            if result.exists():
-                                own_dev = ModelService.check_own_device(userID, result[0].device_uid)
-                                if own_dev is True:
-                                    result.delete()
 
             except Exception as e:
                 errorInfo = traceback.format_exc()

+ 15 - 10
Service/EquipmentInfoService.py

@@ -9,6 +9,8 @@
 import datetime
 import time
 
+from django.db.models import Value, CharField
+
 from Model.models import EquipmentInfoMonday, EquipmentInfoTuesday, EquipmentInfoWednesday, EquipmentInfoThursday, \
     EquipmentInfoFriday, EquipmentInfoSaturday, EquipmentInfoSunday
 from Object.utils import LocalDateTimeUtil
@@ -38,19 +40,19 @@ class EquipmentInfoService:
             week = val
         equipment_info = None
         if week == 1:
-            equipment_info = EquipmentInfoMonday.objects.all()
+            equipment_info = EquipmentInfoMonday.objects.all().annotate(tab_val=Value('1', output_field=CharField()))
         elif week == 2:
-            equipment_info = EquipmentInfoTuesday.objects.all()
+            equipment_info = EquipmentInfoTuesday.objects.all().annotate(tab_val=Value('2', output_field=CharField()))
         elif week == 3:
-            equipment_info = EquipmentInfoWednesday.objects.all()
+            equipment_info = EquipmentInfoWednesday.objects.all().annotate(tab_val=Value('3', output_field=CharField()))
         elif week == 4:
-            equipment_info = EquipmentInfoThursday.objects.all()
+            equipment_info = EquipmentInfoThursday.objects.all().annotate(tab_val=Value('4', output_field=CharField()))
         elif week == 5:
-            equipment_info = EquipmentInfoFriday.objects.all()
+            equipment_info = EquipmentInfoFriday.objects.all().annotate(tab_val=Value('5', output_field=CharField()))
         elif week == 6:
-            equipment_info = EquipmentInfoSaturday.objects.all()
+            equipment_info = EquipmentInfoSaturday.objects.all().annotate(tab_val=Value('6', output_field=CharField()))
         elif week == 7:
-            equipment_info = EquipmentInfoSunday.objects.all()
+            equipment_info = EquipmentInfoSunday.objects.all().annotate(tab_val=Value('7', output_field=CharField()))
         return equipment_info
 
     @classmethod
@@ -189,14 +191,16 @@ class EquipmentInfoService:
         equipment_info_qs = equipment_info_qs.values('id', 'device_uid', 'device_nick_name', 'channel', 'event_type',
                                                      'status', 'alarm',
                                                      'event_time', 'receive_time', 'is_st', 'add_time',
-                                                     'storage_location', 'border_coords')
+                                                     'storage_location', 'border_coords', 'tab_val')
 
         equipment_info_qs = equipment_info_qs.order_by('-event_time')
         qs_page = equipment_info_qs[(page - 1) * size:page * size]
         if qs_page and len(qs_page) > 0:
             for item in qs_page:
-                event_time = item['event_time']
-                item['id'] = int(str(event_time) + str(item['id']))
+                # 星期表值
+                tab_val = item['tab_val']
+                # id = 星期表值+id
+                item['id'] = int(tab_val + str(item['id']))
                 item['devUid'] = item['device_uid']
                 item['devNickName'] = item['device_nick_name']
                 item['Channel'] = item['channel']
@@ -213,4 +217,5 @@ class EquipmentInfoService:
                 item.pop('receive_time')
                 item.pop('add_time')
                 item.pop('border_coords')
+                item.pop('tab_val')
         return qs_page