ソースを参照

物联网卡续存功能增加设备信息

yf_fyh 2 年 前
コミット
10ba8e8bd4
1 ファイル変更39 行追加43 行削除
  1. 39 43
      apps/IOTCard/views.py

+ 39 - 43
apps/IOTCard/views.py

@@ -207,64 +207,60 @@ class PlatformIOTCardViewSet(viewsets.ModelViewSet):
     def card_delivery_filter(self, request, *args, **kwargs):
         file = request.FILES.get('file')
         file_dataframe = pd.read_excel(file)
-        save_data = dict(deviceid=[], fulldeviceid=[], device_type=[], is_recharge=[], backword=[])
+        save_data = dict(deviceid=[], platform=[], device_type=[], order_id=[], owen_user=[], status=[], location=[], sim_1=[],is_recharge_1=[], sim_2=[], is_recharge_2=[])
 
-        for deviceId in file_dataframe["设备ID"]:
+        for deviceId in file_dataframe.get("设备ID",[]):
             if isinstance(deviceId, int):
                 deviceId = str(int(deviceId))
             else:
                 deviceId = deviceId.strip()
-            sim_queryset = self.get_queryset().filter(deviceId__endswith=deviceId, input_type=1)
-            if sim_queryset.count() == 0:
-                fulldeviceid = "未知"
-                device_type = "未知"
-                is_recharge = "未知"
-                backword = "根据表内设备号未找到记录"
-            elif sim_queryset.count() == 1:
-                sim_obj = sim_queryset.first()
-                fulldeviceid = sim_obj.deviceId
-                device_type = sim_obj.device_type
-                if sim_obj.expiry_date == "未知":
-                    is_recharge = "未知"
+            save_data["deviceid"].append(deviceId)
+            device_info_list = DeviceInfoUtils().get_equip_list(d_id=deviceId, isfullId=1)
+            save_data["platform"].append(device_info_list[0]["plat"] if device_info_list else "未知")
+            save_data["device_type"].append(device_info_list[0]["device_type"] if device_info_list else "")
+            save_data["order_id"].append(device_info_list[0]["order_id"] if device_info_list else "")
+            save_data["owen_user"].append(device_info_list[0]["owen_user"] if device_info_list else "")
+            save_data["status"].append(device_info_list[0]["status"] if device_info_list else "")
+            save_data["location"].append(device_info_list[0]["location"] if device_info_list else "")
+
+            sim_1_queryset = self.get_queryset().filter(deviceId=deviceId, input_type=1)
+            if sim_1_queryset.count() == 0:
+                save_data["sim_1"].append("暂无")
+                save_data["is_recharge_1"].append("")
+            else:
+                sim_1_obj = sim_1_queryset[0]
+                save_data["sim_1"].append(sim_1_obj.simId)
+                if sim_1_obj.expiry_date == "未知":
+                    save_data["is_recharge_1"].append("未知")
                 else:
-                    time_difference = time_dif(sim_obj.expiry_date)
+                    time_difference = time_dif(sim_1_obj.expiry_date)
                     if time_difference >= -180:
-                        is_recharge = "是"
-                    else:
-                        is_recharge = "否"
-                backword = "{}".format(sim_obj.simId)
-                if sim_obj.device_type == "孢子仪" or sim_obj.device_type == "测报灯":
-                    sim2_queryset = self.get_queryset().filter(deviceId=fulldeviceid, input_type=2).order_by("-id")
-                    if sim2_queryset:
-                        sim2_obj = sim2_queryset[0]
-                        if sim2_obj.expiry_date == "未知":
-                            is_recharge = "卡1" + is_recharge + ",卡2未知"
-                        else:
-                            time_difference = time_dif(sim2_obj.expiry_date)
-                            if time_difference >= -180:
-                                is_recharge = "卡1" + is_recharge + ",卡2是"
-                            else:
-                                is_recharge = "卡1" + is_recharge + ",卡2否"
-                        backword = "卡1:{};卡2:{}".format(sim_obj.simId, sim2_obj.simId)
+                        save_data["is_recharge_1"].append("是")
                     else:
-                        print("卡二不存在")
+                        save_data["is_recharge_1"].append("否")
 
+            sim_2_queryset = self.get_queryset().filter(deviceId=deviceId, input_type=2)
+            if sim_2_queryset.count() == 0:
+                save_data["sim_2"].append("暂无")
+                save_data["is_recharge_2"].append("")
             else:
-                fulldeviceid = "未知"
-                device_type = "未知"
-                is_recharge = "未知"
-                backword = "根据表内设备号存在多条记录"
-            save_data["deviceid"].append(deviceId)
-            save_data["fulldeviceid"].append(fulldeviceid)
-            save_data["is_recharge"].append(is_recharge)
-            save_data["device_type"].append(device_type)
-            save_data["backword"].append(backword)
+                sim_2_obj = sim_2_queryset[0]
+                save_data["sim_2"].append(sim_2_obj.simId)
+                if sim_2_obj.expiry_date == "未知":
+                    save_data["is_recharge_2"].append("未知")
+                else:
+                    time_difference = time_dif(sim_2_obj.expiry_date)
+                    if time_difference >= -180:
+                        save_data["is_recharge_2"].append("是")
+                    else:
+                        save_data["is_recharge_2"].append("否")
 
         df = pd.DataFrame(data=save_data)
         save_filename = str(uuid.uuid4()) + ".xlsx"
         now_dir = os.path.dirname(__file__)
         save_path = os.path.join(now_dir, "excel_folder", save_filename)
-        df.to_excel(save_path, index=False, header=["设备ID", "完整设备号(自行判断)", "设备类型", "是否需要充值", "说明备注"])
+        df.to_excel(save_path, index=False, 
+        header=["设备ID", "所属平台", "设备类型", "任务单号", "所属用户", "设备状态", "设备位置", "设备自读SIM卡", "是否需要充值", "人工录入SIM卡" "是否需要充值"])
         return Response(save_filename)
 
     @action(methods=['post'], detail=False, url_path='xucun_card_filter', url_name='xucun_card_filter')