|
|
@@ -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')
|